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) { // //}