12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package util
- import (
- "smart_tunnel_edge/protocol/envSensor"
- "smart_tunnel_edge/util/config"
- "smart_tunnel_edge/util/logger"
- "sync"
- "time"
- )
- var mu sync.Mutex
- func StartDeviceCollection(dev *config.EnvDev) {
- coverTime := dev.TaskTime
- ticker := time.NewTicker(time.Duration(coverTime) * time.Minute)
- defer ticker.Stop()
- for {
- select {
- case <-ticker.C:
- if dev.WaitTime > 0 {
- time.Sleep(time.Duration(dev.WaitTime) * time.Second)
- }
- //获取指令
- dataPack := envSensor.DataPack{Address: dev.DevAddress, Start: []byte{0x01, 0xF8}, DataLen: []byte{0x00, 0x08}}
- if dev.Name == "光传感器" {
- dataPack = envSensor.DataPack{Address: dev.DevAddress, Start: []byte{0x00, 0x06}, DataLen: []byte{0x00, 0x01}}
- }
- buffer := dataPack.GetEnvGatherCommand()
- mu.Lock()
- port, err := GetSerialPort(dev.SerialId)
- if err != nil {
- logger.Logger.Infof(err.Error())
- continue
- }
- write, err := port.Write(buffer.Bytes())
- mu.Unlock()
- if write < 0 && err != nil {
- logger.Logger.Errorf("设备:%v采集数据失败,错误:%v", dev.Sn, err)
- continue
- }
- }
- }
- }
- // 采集方法
- //func EnvGather(address string) {
- //
- //}
|