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

Releasing Data

API Function

This API is used by the gateway to release data of directly connected devices or indirectly connected devices to the IoT platform. For data releasing scenarios, the released data can be defined as a topic. In addition, the package body needs to be assembled to the input parameters. The data is transparently transmitted internally instead of being assembled.

API Description

1
HW_INT IOTA_MqttDataPub (HW_UINT uiCookie, const HW_UCHAR *pucTopic, HW_UINT uiQos, const HW_BYTES *pbstrServiceData);

Parameter Description

Parameter

Mandatory or Optional

Type

Description

uiCookie

Optional

unsign int

The value ranges from 1 to 65535.

pucTopic

Mandatory

String

Specifies the topic for releasing data. The value must end with \0.

uiQos

Mandatory

unsign int

Specifies the value of MQTT. Default value: 1

pbstrServiceData

Mandatory

HW_BYTES

Specifies the package for releasing data.

Return Value

For details, see 4.2 Function Return Values.

Output

Broadcast Name

Broadcast Parameter

Member

Description

IOTA_TOPIC_MQTT_DATA_PUB_RSP

HW_MSG object

EN_IOTA_DATATRANS_IE_RESULT

Specifies the data release result.

  • 0: indicating that the data is released.
  • 1: indicates that the data releasing fails.

Example

1
2
3
HW_BYTES bstrBody; 
...
IOTA_MqttDataPub (1211, "/huawei/v1/devices/336d9bac-9ebf-44e9-95cf-efac5f05da3a/services/Storage", 1, bstrBody);

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_DataPubResultHandler(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_MQTT_DATA_PUB_RSP", Device_AddResultHandler);