package protocol type Packet struct { Code uint8 `json:"code"` Addr uint16 `json:"addr"` Quantity uint16 `json:"quantity"` Resplen uint `json:"resplen"` Cycle uint `json:"cycle"` //采集周期 } //遥测、遥信 type DataUp struct { SID uint16 `json:"sid"` Name string `json:"name"` //英文名称 NameZh string `json:"namezh"` //中文名称 Unit string `json:"unit"` //单位 Endian uint8 `json:"endian"` //大小端规则,0,大端,1小端 Type uint8 `json:"type"` //数据类型,0:uint; 1:int; 2:float; 3:double;4 string Ratio float32 `json:"ratio"` //比率系数 Base float32 `json:"base"` //基数 UpLimit float32 `json:"uplimit"` //上限,用于告警判断 LowLimit float32 `json:"lowlimit"` //下限,用于告警判断 Cid uint8 `json:"cid"` //采集命令 Start uint8 `json:"start"` //从返回的数据0字节开始算起的字节数 Len uint8 `json:"len"` //数据项占几个字节 Alarm uint8 `json:"alarm"` //是否告警,0,不告警;1,告警 Duration uint8 `json:"duration"` //持续时间才告警,防止误判 Desc map[uint8]string `json:"desc,omitempty"` //遥信用,状态描述,类似0表示开,1表示关之类的描述 Bit uint8 `json:"bit"` //遥信用,该字节的多少位 } //遥调、遥控 type DataDown struct { SID uint16 `json:"sid"` Name string `json:"name"` NameZh string `json:"namezh"` //中文名称 Unit string `json:"unit"` Endian uint8 `json:"endian"` //大小端规则,0,大端,1小端 Type uint8 `json:"type"` //数据类型,0:uint; 1:int; 2:float; 3:double;4 string Ratio float32 `json:"ratio"` //比率系数 Base float32 `json:"base"` //基数 Code uint8 `json:"code"` //功能码 Addr uint16 `json:"addr"` //地址 Quantity uint16 `json:"quantity"` //数量 Vallen uint8 `json:"vallen"` //字节数 Maxval float32 `json:"maxval"` Minval float32 `json:"minval"` Desc string `json:"desc"` } type IotModel struct { TID uint16 `json:"tid"` //物模型ID Version uint8 `json:"version"` //物模型版本 Device string `json:"device"` //设备名称 Model string `json:"model"` //设备型号 Protocol string `json:"protocol"` //协议类型,一般为modbus-RTU Packet map[uint8]Packet `json:"packet,omitempty"` //cid->采集命令,下发给设备的命令 DataUp []DataUp `json:"DataUp"` //数据解析及上传至平台 DataDown map[uint16]DataDown `json:"DataDown,omitempty"` //数据解析及下发给设备 }