model.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package protocol
  2. type Packet struct {
  3. Code uint8 `json:"code"`
  4. Addr uint16 `json:"addr"`
  5. Quantity uint16 `json:"quantity"`
  6. Resplen uint `json:"resplen"`
  7. Cycle uint `json:"cycle"` //采集周期
  8. }
  9. //遥测、遥信
  10. type DataUp struct {
  11. SID uint16 `json:"sid"`
  12. Name string `json:"name"` //英文名称
  13. NameZh string `json:"namezh"` //中文名称
  14. Unit string `json:"unit"` //单位
  15. Endian uint8 `json:"endian"` //大小端规则,0,大端,1小端
  16. Type uint8 `json:"type"` //数据类型,0:uint; 1:int; 2:float; 3:double;4 string
  17. Ratio float32 `json:"ratio"` //比率系数
  18. Base float32 `json:"base"` //基数
  19. UpLimit float32 `json:"uplimit"` //上限,用于告警判断
  20. LowLimit float32 `json:"lowlimit"` //下限,用于告警判断
  21. Cid uint8 `json:"cid"` //采集命令
  22. Start uint8 `json:"start"` //从返回的数据0字节开始算起的字节数
  23. Len uint8 `json:"len"` //数据项占几个字节
  24. Alarm uint8 `json:"alarm"` //是否告警,0,不告警;1,告警
  25. Duration uint8 `json:"duration"` //持续时间才告警,防止误判
  26. Desc map[uint8]string `json:"desc,omitempty"` //遥信用,状态描述,类似0表示开,1表示关之类的描述
  27. Bit uint8 `json:"bit"` //遥信用,该字节的多少位
  28. }
  29. //遥调、遥控
  30. type DataDown struct {
  31. SID uint16 `json:"sid"`
  32. Name string `json:"name"`
  33. NameZh string `json:"namezh"` //中文名称
  34. Unit string `json:"unit"`
  35. Endian uint8 `json:"endian"` //大小端规则,0,大端,1小端
  36. Type uint8 `json:"type"` //数据类型,0:uint; 1:int; 2:float; 3:double;4 string
  37. Ratio float32 `json:"ratio"` //比率系数
  38. Base float32 `json:"base"` //基数
  39. Code uint8 `json:"code"` //功能码
  40. Addr uint16 `json:"addr"` //地址
  41. Quantity uint16 `json:"quantity"` //数量
  42. Vallen uint8 `json:"vallen"` //字节数
  43. Maxval float32 `json:"maxval"`
  44. Minval float32 `json:"minval"`
  45. Desc string `json:"desc"`
  46. }
  47. type IotModel struct {
  48. TID uint16 `json:"tid"` //物模型ID
  49. Version uint8 `json:"version"` //物模型版本
  50. Device string `json:"device"` //设备名称
  51. Model string `json:"model"` //设备型号
  52. Protocol string `json:"protocol"` //协议类型,一般为modbus-RTU
  53. Packet map[uint8]Packet `json:"packet,omitempty"` //cid->采集命令,下发给设备的命令
  54. DataUp []DataUp `json:"DataUp"` //数据解析及上传至平台
  55. DataDown map[uint16]DataDown `json:"DataDown,omitempty"` //数据解析及下发给设备
  56. }