发布数据
接口功能
当直连设备(网关)有数据需要发布或者非直连设备发布数据到网关时,网关需要调用设备服务数据发布接口将数据发布到物联网平台。其与数据上报功能上的区别在于,发布数据的topic固定为“/cloud/signaltrans/v2/categories/data”;“pbstrServiceData”参数作为消息体(包括header和body),SDK只进行透传,不进行格式调整和组装。
接口描述
1
|
HW_INT IOTA_MqttDataPub (HW_UINT uiCookie, const HW_UCHAR *pucTopic, HW_UINT uiQos,const HW_BYTES *pbstrServiceData); |
参数说明
字段 |
必选/可选 |
类型 |
描述 |
---|---|---|---|
uiCookie |
可选 |
unsign int |
Cookie有效值1-65535。 |
pucTopic |
必选 |
String |
发布数据的Topic,该参数必须带结束符‘\0’。 |
uiQos |
必选 |
unsign int |
Mqtt协议的相关的参数,一般为“1”。 |
pbstrServiceData |
必选 |
HW_BYTES |
发布数据的包体。 |
接口返回值
参见函数标准返回值
返回结果
广播名称 |
广播参数 |
成员 |
描述 |
---|---|---|---|
IOTA_TOPIC_MQTT_DATA_PUB_RSP |
HW_MSG对象 |
EN_IOTA_DATATRANS_IE_RESULT |
数据发布结果。
|
示例
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); |