Description of encode API
Input parameters of the encode API are commands or responses in JSON format delivered by the IoT platform.
Downstream packets of the IoT platform are classified into commands sent by the IoT platform and responses sent by the IoT platform for data reported by devices (corresponding to messages 2 and 3 in the following figure). The encoding output fields vary depending on the downstream packet.
Field |
Type |
Description |
Mandatory or Optional |
---|---|---|---|
identifier |
String |
Identifier of the device in the application protocol. The IoT platform obtains the parameter over the decode API, encodes the parameter over the encode API, and places the parameter in a stream. |
Optional |
msgType |
String |
This field has a fixed value of cloudReq, which indicates that the IoT platform delivers a request. |
Mandatory |
serviceId |
String |
Identifier of a service. |
Mandatory |
cmd |
String |
Name of a service command. For details about the service command definition, see the profile file. |
Mandatory |
paras |
ObjectNode |
Command parameters. Detailed fields are defined in the profile file. |
Mandatory |
hasMore |
Int |
Whether the IoT platform has subsequent commands to deliver.
Subsequent commands indicate that the IoT platform still needs to deliver commands, and the hasMore field is used to tell the device not to sleep. The hasMore field is valid only in PSM mode with the downstream message indication function enabled. |
Mandatory |
mid |
Int |
A 2-byte unsigned command ID that is allocated by the IoT platform. (The value ranges from 1 to 65535.) When the IoT platform delivers a command over the encode API, the IoT platform places the MID allocated by the IoT platform into a stream and delivers the stream to the device together with the command. When the device reports the command execution result (deviceRsp), the device returns the MID to the IoT platform. In this way, the IoT platform associates the delivered command with the command execution result (deviceRsp) and updates the command delivery status accordingly. |
Mandatory |
Example:
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}
}
|
Field |
Type |
Description |
Mandatory or Optional |
---|---|---|---|
identifier |
String |
Identifier of the device in the application protocol. The IoT platform obtains the parameter over the decode API, encodes the parameter over the encode API, and places the parameter in a stream. |
Optional |
msgType |
String |
This field has a fixed value of cloudRsp, which indicates that the IoT platform sends a response for data reported by a device. |
Mandatory |
request |
byte[] |
Data reported by the device. |
Mandatory |
errcode |
int |
Request processing result code. The IoT platform determines the command delivery status based on this field.
|
Mandatory |
hasMore |
int |
Whether the IoT platform has subsequent messages to deliver.
Subsequent messages indicate that the IoT platform still needs to deliver commands, and the hasMore field is used to tell the device not to sleep. The hasMore field is valid only in PSM mode with the downstream message indication function enabled. |
Mandatory |
If msgType is set to cloudRsp and null is returned by the codec detection tool, the codec does not define the response to the reported data and the IoT platform does not need to respond.
Example:
1 2 3 4 5 6 7 8 9 10 |
{
"identifier": "123",
"msgType": "cloudRsp",
"request": [
1,
2
],
"errcode": 0,
"hasMore": 0
}
|
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot