|
@@ -8,6 +8,42 @@ import (
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
+
|
|
|
+type Device struct {
|
|
|
+ T_sn string // 设备序列号
|
|
|
+ T_pid int // Account.Company 绑定公司
|
|
|
+ T_devName string // 设备名称 20字
|
|
|
+ T_protocol int // 冷链通讯协议 1 :1.0协议 2 :2.0协议 3 :3.0协议
|
|
|
+ T_mqttid string // MQTT 服务ID
|
|
|
+ T_VerifyTime time.Time // 验证时间
|
|
|
+ T_CalibrationTime time.Time // 校准时间
|
|
|
+ T_PatrolTime time.Time // 巡检时间
|
|
|
+ T_abandonTime time.Time // 弃用时间
|
|
|
+ T_ist int // 温度 1开启 2关闭
|
|
|
+ T_ish int // 湿度 1开启 2关闭
|
|
|
+
|
|
|
+ T_State int // 0 屏蔽 1 正常 (屏蔽后 只有内部管理员才能看到,用户 输入SN\名称 搜索时 也能看到)
|
|
|
+
|
|
|
+ // 设备同步参数
|
|
|
+ T_Dattery int // 电量
|
|
|
+ T_Site string // GPS
|
|
|
+ T_monitor int // 监控状态 0 未监控 1 监控 停止记录
|
|
|
+ T_online int // 在线状态 0 未启用 1 在线 2 离线
|
|
|
+ T_online_s int // 在线状态-备用 0 未启用 1 在线 2 离线
|
|
|
+
|
|
|
+ // 硬件信息
|
|
|
+ T_model string // KF200BG 设备型号
|
|
|
+ T_sver string // "1.0.0",//软件版本
|
|
|
+ T_hver string // "1.0.0",//硬件版本
|
|
|
+ T_imei string // "867387060327718",//模组imei
|
|
|
+ T_iccid string // "89860477102170049750",//sim卡号
|
|
|
+ T_rssi string // "80",//信号强度
|
|
|
+
|
|
|
+ CreateTime time.Time //auto_now_add 第一次保存时才设置时间
|
|
|
+ UpdateTime time.Time //auto_now 每次 model 保存时都会对时间自动更新
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
func Cold_UpdateDevice_CalibrationTime(T_sn, T_CalibrationExpirationTime string) error {
|
|
|
logs.Println("Nats =>", lib.FuncName(), T_sn, T_CalibrationExpirationTime)
|
|
|
|
|
@@ -47,3 +83,30 @@ func Cold_UpdateDevice_CalibrationTime(T_sn, T_CalibrationExpirationTime string)
|
|
|
}
|
|
|
return nil
|
|
|
}
|
|
|
+
|
|
|
+func Cold_ReadDeviceByT_sn(T_sn string) (data Device, err error) {
|
|
|
+
|
|
|
+ msg, err := lib.Nats.Request("Cold_ReadDeviceByT_sn", []byte(T_sn), 3*time.Second)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ type T_R struct {
|
|
|
+ Code int16 `xml:"Code"`
|
|
|
+ Msg string `xml:"Msg"`
|
|
|
+ Data Device `xml:"Data"` // 泛型
|
|
|
+ }
|
|
|
+ var t_R T_R
|
|
|
+
|
|
|
+ err = msgpack.Unmarshal(msg.Data, &t_R)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if t_R.Code != 200 {
|
|
|
+ err = errors.New(t_R.Msg)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ data = t_R.Data
|
|
|
+
|
|
|
+ return data, nil
|
|
|
+}
|