From b4913d63b396cadf91473493c22f809d9869fdd2 Mon Sep 17 00:00:00 2001 From: mapleafgo Date: Thu, 19 Dec 2024 10:49:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=84=E8=8C=83=E4=B8=B2=E5=8F=A3=E9=80=9A?= =?UTF-8?q?=E8=AE=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.yml | 26 +++++++++++++------------- demo/relay/main.go | 14 ++++++++++++-- internal/routes/play/push_card.go | 4 ++-- pkg/card_reader/reader.go | 3 ++- pkg/relay/relay.go | 11 ++++++++--- 5 files changed, 37 insertions(+), 21 deletions(-) diff --git a/config.yml b/config.yml index 84770c7..fb3c1cb 100755 --- a/config.yml +++ b/config.yml @@ -1,6 +1,6 @@ location: wushan -point: 5 -relay: /dev/ttyUSB0 +point: 4 +relay: /dev/ttyUSB1 maxTimeout: 60 # 单位 s,必须大于 0 log: level: debug @@ -19,14 +19,14 @@ aliyun: timeout: 10 # 单位 s voice: zhifeng_emo game: - addr: /dev/ttyUSB0 # 点位 5 的串口地址 - # pushGroups: # 点位 4 的发卡器配置 - # - name: gpiochip0 - # outOK: 6 - # lower: 13 - # error: 19 - # empty: 26 - # push: 11 - # reset: 22 - # pull: 27 - # readAddr: /dev/ttyUSB0 # 点位 4 的读卡器配置 \ No newline at end of file + # addr: /dev/ttyUSB0 # 点位 5 的串口地址 + pushGroups: # 点位 4 的发卡器配置 + - name: gpiochip0 + outOK: 12 + lower: 1 + error: 7 + empty: 8 + push: 0 + reset: 5 + pull: 6 + readAddr: /dev/ttyUSB0 # 点位 4 的读卡器配置 \ No newline at end of file diff --git a/demo/relay/main.go b/demo/relay/main.go index fbba104..4d22735 100644 --- a/demo/relay/main.go +++ b/demo/relay/main.go @@ -7,6 +7,7 @@ import ( "os" "os/signal" "syscall" + "time" ) func main() { @@ -19,8 +20,17 @@ func main() { } defer r.Close() - r.On(0) - defer r.Off(0) + for i := 0; i < 4; i++ { + func(num int) { + r.On(num) + defer r.Off(num) + time.Sleep(1 * time.Second) + }(i) + time.Sleep(1 * time.Second) + } + + r.OnAll() + defer r.OffAll() sig := make(chan os.Signal, 1) signal.Notify(sig, os.Interrupt, syscall.SIGTERM) diff --git a/internal/routes/play/push_card.go b/internal/routes/play/push_card.go index e02e61a..1225fa2 100644 --- a/internal/routes/play/push_card.go +++ b/internal/routes/play/push_card.go @@ -48,7 +48,7 @@ func PushCard(ctx context.Context) leaf.HandlerFunc { devices := make([]*card_pusher.Device, 0) for i, group := range g.PushGroups { // 对读卡器初始化配置 - reader.SetSlave(uint8(i + 1)) + reader.SetSlave(byte(i + 1)) err = reader.Init() if err != nil { zap.S().Panicln("读卡器初始配置失败", err) @@ -114,7 +114,7 @@ func PushCard(ctx context.Context) leaf.HandlerFunc { if body.num != 0 { // 若卡片就位,读取卡片信息 if devices[body.num-1].GetOutOk() == 1 { - reader.SetSlave(uint8(body.num)) + reader.SetSlave(byte(body.num)) if info := reader.GetCardInfo(); info != nil { body.CardId = info.ID } diff --git a/pkg/card_reader/reader.go b/pkg/card_reader/reader.go index b9d4053..3d658c8 100644 --- a/pkg/card_reader/reader.go +++ b/pkg/card_reader/reader.go @@ -13,7 +13,8 @@ import ( type Reader interface { io.Closer - SetSlave(uint8) + // SetSlave 设置读卡器的 UnitID + SetSlave(byte) // WriteUnitId 写入读卡器的 UnitID WriteUnitId(uint16) error // Init 初始化读卡器配置 diff --git a/pkg/relay/relay.go b/pkg/relay/relay.go index a29c751..c027b60 100644 --- a/pkg/relay/relay.go +++ b/pkg/relay/relay.go @@ -7,10 +7,15 @@ import ( type Relay interface { io.Closer - SetSlave(slaveID byte) - On(num int) error - Off(num int) error + // SetSlave 设置继电器的 UnitID + SetSlave(byte) + // On 打开继电器 + On(int) error + // Off 关闭继电器 + Off(int) error + // OnAll 打开所有继电器 OnAll() error + // OffAll 关闭所有继电器 OffAll() error }