qixiaoning
2025-08-21 e38654fe9eff4562da4f18f8f018aed7879d493c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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)
    }
}