123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- package NatsServer
- import (
- "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
- }
|