更新时间:2022-02-24 GMT+08:00

数据发布

接口功能

当直连设备(网关)有数据需要发布或者非直连设备发布数据到网关时,网关需要调用设备服务数据发布接口将数据发布到物联网平台。其与数据上报功能上的区别在于,发布的数据可以自己规定Topic,同时包体需要自己组装给入参,内部只是透传,不对json体进行拼装。

接口描述

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

参数说明

字段

必选/可选

类型

描述

uiCookie

可选

unsign int

Cookie有效值1-65535。

pucTopic

必选

String

发布数据的Topic,该参数必须带结束符‘\0’。

uiQos

必选

unsign int

Mqtt协议的相关的参数,一般为“1”

pbstrServiceData

必选

HW_BYTES

发布数据的包体。

接口返回值

参见2. 函数标准返回值

返回结果

广播名称

广播参数

成员

描述

IOTA_TOPIC_MQTT_DATA_PUB_RSP

HW_MSG对象

EN_IOTA_DATATRANS_IE_RESULT

数据发布结果。

  • 成功:0。
  • 失败:1。

示例

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

数据上报结果接收

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
//开发者注册该函数进行设备服务数据上报后的处理 
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;
}
//在设备添加成功后立即注册服务数据上报结果接收广播 HW_BroadCastReg(“IOTA_TOPIC_MQTT_DATA_PUB_RSP”, Device_AddResultHandler);