Reporting Device Data
API Function
This API is used by a directly connected device to report data to the platform or used by a gateway to report data received from an indirectly connected device to the platform.
pcDeviceId, pcRequstId, and pcServiceId of the API Reporting Device Data are assembled by the AgentLite SDK as the header of the message, and pcServiceProperties is assembled as the body of the message. The message is assembled in JSON format.
API Description
1 2 | HW_INT IOTA_ServiceDataReport(HW_UINT uiCookie, const HW_CHAR *pcRequstId,
const HW_CHAR *pcDeviceId, const HW_CHAR *pcServiceId, const HW_CHAR *pcServiceProperties);
|
Parameter Description
| Parameter | Mandatory or Optional | Type | Description |
|---|---|---|---|
| uiCookie | Optional | unsign int | The value ranges from 1 to 65535. |
| pcRequstId | Mandatory | String | Identifier of a request. The request ID is used to match the service command delivered by the platform. This parameter is mandatory if the reported data is the response to the command request initiated by the platform. The value must end with \0. |
| pcDeviceId | Mandatory | String | Identifier of a device. The value must end with \0. |
| pcServiceId | Mandatory | String | Identifier of a service. The value must end with \0. |
| pcServiceProperties | Mandatory | String | Service properties. The value must end with \0. |
Return Value
For details, see Function Return Values.
Output
| Broadcast Name | Broadcast Parameter | Member | Description |
|---|---|---|---|
| IOTA_TOPIC_DATATRANS_REPORT_RSP/{deviceId} | HW_MSG object | EN_IOTA_DATATRANS_IE_RESULT | Data reporting result. The value is 0 or 1.
|
Example
Use JSON components to assemble service properties (pcServiceProperties) based on the format of the product model.
1 2 3 | HW_UINT *uiLen;
IOTA_ServiceDataReport(1211, NULL, "xxxx_xxxx_xxxx_xxxx" , "DoorWindow", "{\"status\":\"OPEN\"}");
|
The device waits for the data reporting result.
1 2 3 4 5 6 7 8 9 10 11 12 | // Call this API to register the function for subsequent processing after the device service data is reported.
HW_iNT Device_DataReportResultHandler(HW_UiNT uiCookie, HW_MSG pstMsg)
{
uiResult = HW_MsgGetUint(pstMsg, EN_IOTA_DATATRANS_IE_RESULT);
if (HW_SUCCESS != uiResult)
{
// retry with uiCookie
return 0;
}
return 0;
}
// After the device is added, register a broadcast to receive the service data reporting result: HW_BroadCastReg ("IOTA_TOPIC_DATATRANS_REPORT_RSP/XXXX_XXXX_XXXX_XXXX", Device_AddResultHandler).
|
Last Article: Deleting a Device
Next Article: Receiving a Command
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.