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