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