-
Notifications
You must be signed in to change notification settings - Fork 0
/
push_device.go
151 lines (140 loc) · 3.76 KB
/
push_device.go
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
package IOTMQTTClient
import (
"encoding/json"
"errors"
"fmt"
CoreSQLConfig "github.com/fotomxq/weeekj_core/v5/core/sql/config"
IOTDevice "github.com/fotomxq/weeekj_core/v5/iot/device"
)
// ArgsPushDeviceOnline 设备在线情况更正参数
type ArgsPushDeviceOnline struct {
//配对密钥
Keys IOTDevice.ArgsCheckDeviceKey `json:"keys"`
//目标设备ID
DeviceID int64 `json:"deviceID"`
//是否在线
IsOnline bool `json:"isOnline"`
}
// PushDeviceOnline 设备在线情况更正
// device/online
func PushDeviceOnline(args ArgsPushDeviceOnline) (err error) {
//打包数据集合
var dataByte []byte
dataByte, err = json.Marshal(args)
if err != nil {
err = errors.New("json error, " + err.Error())
return
}
//推送数据
topic := "device/online"
err = mqttClient.PublishWait(topic, 0, false, dataByte)
if err != nil {
err = errors.New(fmt.Sprint("mqtt push base online, ", err))
return
}
return
}
// ArgsPushDeviceInfosUpdate 全量更新设备数据
type ArgsPushDeviceInfosUpdate struct {
//配对密钥
Keys IOTDevice.ArgsCheckDeviceKey `json:"keys"`
//目标设备ID
DeviceID int64 `json:"deviceID"`
//数据集合
Params CoreSQLConfig.FieldsConfigsType `json:"params"`
}
// PushDeviceInfosUpdate 全量更新设备数据
// device/infos/update
func PushDeviceInfosUpdate(args ArgsPushDeviceInfosUpdate) (err error) {
//打包数据集合
var dataByte []byte
dataByte, err = json.Marshal(args)
if err != nil {
err = errors.New("json error, " + err.Error())
return
}
//推送数据
topic := "device/infos/update"
err = mqttClient.PublishWait(topic, 0, false, dataByte)
if err != nil {
err = errors.New(fmt.Sprint("mqtt push base online, ", err))
return
}
return
}
// ArgsPushDeviceInfoUpdate 分量更新设备数据参数
type ArgsPushDeviceInfoUpdate struct {
//配对密钥
Keys IOTDevice.ArgsCheckDeviceKey `json:"keys"`
//目标设备ID
DeviceID int64 `json:"deviceID"`
//数据集合
Params CoreSQLConfig.FieldsConfigsType `json:"params"`
}
// PushDeviceInfoUpdate 分量更新设备数据
// device/info/update
func PushDeviceInfoUpdate(args ArgsPushDeviceInfoUpdate) (err error) {
//打包数据集合
var dataByte []byte
dataByte, err = json.Marshal(args)
if err != nil {
err = errors.New("json error, " + err.Error())
return
}
//推送数据
topic := "device/info/update"
err = mqttClient.PublishWait(topic, 0, false, dataByte)
if err != nil {
err = errors.New(fmt.Sprint("mqtt push base online, ", err))
return
}
return
}
// ArgsPushDeviceFindData 分量更新设备数据参数
type ArgsPushDeviceFindData struct {
//配对密钥
Keys IOTDevice.ArgsCheckDeviceKey `json:"keys"`
}
// PushDeviceFindData 分量更新设备数据
// device/find
func PushDeviceFindData(args ArgsPushDeviceFindData) (err error) {
//打包数据集合
var dataByte []byte
dataByte, err = json.Marshal(args)
if err != nil {
err = errors.New("json error, " + err.Error())
return
}
//推送数据
topic := "device/find"
err = mqttClient.PublishWait(topic, 0, false, dataByte)
if err != nil {
err = errors.New(fmt.Sprint("mqtt push base online, ", err))
return
}
return
}
// ArgsPushDeviceGroupFindData 分量更新设备数据参数
type ArgsPushDeviceGroupFindData struct {
//配对密钥
Keys IOTDevice.ArgsCheckDeviceKey `json:"keys"`
}
// PushDeviceGroupFindData 分量更新设备数据
// group/find
func PushDeviceGroupFindData(args ArgsPushDeviceGroupFindData) (err error) {
//打包数据集合
var dataByte []byte
dataByte, err = json.Marshal(args)
if err != nil {
err = errors.New("json error, " + err.Error())
return
}
//推送数据
topic := "group/find"
err = mqttClient.PublishWait(topic, 0, false, dataByte)
if err != nil {
err = errors.New(fmt.Sprint("mqtt push base online, ", err))
return
}
return
}