123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- package NatsServer
- import (
- "ColdVerify_server/lib"
- "ColdVerify_server/logs"
- "errors"
- "github.com/vmihailenco/msgpack/v5"
- "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)
- type T_Req struct {
- T_sn string
- T_CalibrationTime string
- }
- t_r := T_Req{
- T_sn: T_sn,
- T_CalibrationTime: T_CalibrationExpirationTime,
- }
- b, err := msgpack.Marshal(&t_r)
- if err != nil {
- logs.Error("Nats =>", "msgpack Marshal err", err)
- return err
- }
- msg, err := lib.Nats.Request("Cold_UpdateDevice_CalibrationTime", b, 3*time.Second)
- if err != nil {
- return err
- }
- type T_R struct {
- Code int16 `xml:"Code"`
- Msg string `xml:"Msg"`
- Data interface{} `xml:"Data"`
- }
- var t_R T_R
- err = msgpack.Unmarshal(msg.Data, &t_R)
- if err != nil {
- return err
- }
- if t_R.Code != 200 {
- return errors.New(t_R.Msg)
- }
- 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
- }
|