Updated on 2022-02-24 GMT+08:00

Reporting Device Service Data

API Function

This API is used by the gateway to report data of directly connected devices or indirectly connected devices to the IoT platform.

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

Identifies a request. The request ID is used to match the service command delivered by the IoT platform. This parameter is mandatory if the reported data is the response to the command request initiated by the IoT platform. The value must end with \0.

pcDeviceId

Mandatory

String

Identifies a device. The value must end with \0.

pcServiceId

Mandatory

String

Identifies a service. The value must end with \0.

pcServiceProperties

Mandatory

String

Specifies the service attribute. The value must end with \0.

Return Value

For details, see 4.2 Function Return Values.

Output

Broadcast Name

Broadcast Parameter

Member

Description

IOTA_TOPIC_DATATRANS_REPORT_RSP/{deviceId}

HW_MSG object

EN_IOTA_DATATRANS_IE_RESULT

Specifies the data reporting result. The value is 0 or 1.

  • 0: indicates that the data is reported.
  • 1: indicates that the data reporting fails.

Example

A user uses JSON components to assemble service attributes (pcServiceProperties) based on the format of profiles.

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
//Developers 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).