设备接入 IoTDA-离线开发插件:encode接口说明
encode接口说明
encode接口的入参是JSON格式的数据,是平台下发的命令或应答。
平台的下行报文可以分为两种情况:
- 平台对设备上报数据的应答(对应图中的消息②)
表2 平台收到设备的上报数据后对设备的应答encode接口的入参结构定义 字段名
类型
参数描述
是否必填
identifier
String
设备在应用协议里的标识, 物联网平台 通过decode接口解析码流时获取该参数,通过encode接口编码时将该参数放入码流。
否
msgType
String
固定值"cloudRsp",表示平台收到设备的数据后对设备的应答。
是
request
byte[]
设备上报的数据。
是
errcode
int
请求处理的结果码,物联网平台根据该参数判断命令下发的状态。
0表示成功,1表示失败。
是
hasMore
int
表示平台是否还有后续消息下发,0表示没有,1表示有。
后续消息是指,平台还有待下发的消息,以hasMore字段告知设备不要休眠。hasMore字段仅在PSM模式下生效,且需要“下行消息指示”开启。
是
LwM2M协议的命令下发格式和MQTT协议的命令下发格式不一样
注:在cloudRsp场景下编解码插件检测工具显示返回null时,表示插件未定义上报数据的应答,设备侧不需要物联网平台给予响应。
示例:
{ "identifier": "123", "msgType": "cloudRsp", "request": [ 1, 2 ], "errcode": 0, "hasMore": 0 }
- 平台命令下发(对应图中的消息③)
表3 平台下发命令encode接口的入参结构定义 字段名
类型
参数描述
是否必填
identifier
String
设备在应用协议里的标识,物联网平台通过decode接口解析码流时获取该参数,通过encode接口编码时将该参数放入码流。
否
msgType
String
固定值"cloudReq",表示平台下发的请求。
是
serviceId
String
服务的id。
是
cmd
String
服务的命令名,参见产品模型的服务命令定义。
是
paras
ObjectNode
命令的参数,具体字段由产品模型定义。
是
hasMore
Int
表示平台是否还有后续命令下发,0表示没有,1表示有。
后续命令是指,平台还有待下发的消息,以hasMore字段告知设备不要休眠。hasMore字段仅在PSM模式下生效,且需要“下行消息指示”开启。
是
mid
Int
2字节无符号的命令id,由物联网平台内部分配(范围1-65535)。
物联网平台在通过encode接口下发命令时,把物联网平台分配的mid放入码流,和命令一起下发给设备;设备在上报命令执行结果(deviceRsp)时,再将此mid返回物联网平台。否则物联网平台无法将下发命令和命令执行结果(deviceRsp)进行关联,也就无法根据命令执行结果(deviceRsp)更新命令下发的状态(成功或失败)。
是
示例:
{ "identifier": "123", "msgType": "cloudReq", "serviceId": "NBWaterMeterCommon", "mid": 2016, "cmd": "SET_TEMPERATURE_READ_PERIOD", "paras": { "value": 4 }, "hasMore": 0} }