package device import ( "encoding/json" "fmt" "net" MQTT "github.com/eclipse/paho.mqtt.golang" "vamicro/iotData-service/model" "vamicro/iotData-service/mqtt" "basic.com/valib/logger.git" ) const RT02_MQTT_MSG_TOPIC = "/demo/device/helmetPos" func RT02MsgServer() { // 订阅mqtt信息 msgChan := make(chan MQTT.Message, 10) go mqtt.Client.Subscribe(RT02_MQTT_MSG_TOPIC, msgChan) for { select { case msg := <-msgChan: var devInfo model.Device var warnInfo model.Warning payload := msg.Payload() if err := json.Unmarshal(payload, &devInfo); err != nil { logger.Error(err) } else { // 上报数据 CollectorMsgChan <- devInfo logger.Debug("接收到 安全帽 msg", string(payload)) // 项目测试推送安全帽数据 RT02DataPush(payload) warnInfo.Battery = devInfo.Battery warnInfo.SN = devInfo.SN warnInfo.GpsType = devInfo.GpsType warnInfo.High = devInfo.High warnInfo.Lat = devInfo.Lat warnInfo.Lng = devInfo.Lng devInfo.LocateState = "单向定位" devInfo.Mac = "ec:da:da:da:ed:98" devInfo.Ip = "192.168.1.2" // if err := devInfo.HandleDevice(); err != nil { // fmt.Println(err) // } if err := warnInfo.HandleWarning(); err != nil { fmt.Println(err) } } } } } // 安全帽数据推送测试 func RT02DataPush(data []byte) { var serverAddr = "113.205.255.118:8888" conn, err := net.Dial("tcp", serverAddr) if err != nil { logger.Error(err) return } _, err = conn.Write(data) if err != nil { logger.Error(err) } }