| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | package NatsServerimport (	"Cold_GoodsOrder/lib"	"Cold_GoodsOrder/models/Device"	"errors"	"fmt"	"github.com/vmihailenco/msgpack/v5"	"time")func ReadDeviceByT_sn(T_sn string) (d Device.Device, err error) {	msg, err := lib.Nats.Request("Cold_ReadDeviceByT_sn", []byte(T_sn), 3*time.Second)	if err != nil {		return d, err	}	//fmt.Printf("Cold_ReadDeviceByT_sn: %s\n", string(msg.Data))	type T_R struct {		Code int16         `xml:"Code"`		Msg  string        `xml:"Msg"`		Data Device.Device `xml:"Data"` // 泛型	}	var t_R T_R	err = msgpack.Unmarshal(msg.Data, &t_R)	if err != nil {		fmt.Println("Cold_ReadDeviceByT_sn err : %+v\n", t_R)		return d, err	}	if t_R.Code != 200 {		return d, errors.New(t_R.Msg)	}	return t_R.Data, nil}func ReadDeviceSensorALLByT_sn(T_sn string) (d []Device.DeviceSensor) {	msg, err := lib.Nats.Request("Cold_ReadDeviceSensorALLByT_sn", []byte(T_sn), 3*time.Second)	if err != nil {		return d	}	//fmt.Printf("Cold_ReadDeviceSensorALLByT_sn: %s\n", string(msg.Data))	type T_R struct {		Code int16                 `xml:"Code"`		Msg  string                `xml:"Msg"`		Data []Device.DeviceSensor `xml:"Data"` // 泛型	}	var t_R T_R	err = msgpack.Unmarshal(msg.Data, &t_R)	if err != nil {		return d	}	return t_R.Data}func ReadDeviceDataListBy_T_snid(T_snid string, Time_start string, Time_end string, page int, page_z int) (r []Device.DeviceData_R, cnt int64) {	type T_Req struct {		T_snid     string `xml:"T_snid"`		Time_start string `xml:"Time_start"`		Time_end   string `xml:"Time_end"`		Page       int    `xml:"Page"`		Page_z     int    `xml:"Page_z"`	}	t_Req := T_Req{		T_snid:     T_snid,		Time_start: Time_start,		Time_end:   Time_end,		Page:       page,		Page_z:     page_z,	}	b, _ := msgpack.Marshal(&t_Req)	// 请求-响应, 向 verification 发布一个 `ToKey` 请求数据,设置超时间3秒,如果有多个响应,只接收第一个收到的消息	msg, err := lib.Nats.Request("Cold_ReadDeviceDataListBy_T_snid", b, 3*time.Second)	//fmt.Printf("Cold_ReadDeviceDataListBy_T_snid : %s\n", string(msg.Data))	if err != nil {		return r, cnt	}	type T_R struct {		Code  int16                 `xml:"Code"`		Msg   string                `xml:"Msg"`		Count int64                 `xml:"Count"`		Data  []Device.DeviceData_R `xml:"Data"` // 泛型	}	var t_R T_R	err = msgpack.Unmarshal(msg.Data, &t_R)	if err != nil {		return r, cnt	}	//fmt.Printf("Cold_ReadDeviceDataListBy_T_snid : %+v\n", t_R)	return t_R.Data, t_R.Count}
 |