上报设备数据
接口功能
当直连设备(网关)有数据需要上报或者非直连设备上报数据到网关时,网关需要调用设备服务数据上报接口将数据上报到物联网平台。
上报设备数据接口的pcDeviceId、pcRequstId和pcServiceId由SDK组装为消息的header;pcServiceProperties由SDK组装为消息的body。消息组装格式为JSON。
接口描述
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); |
参数说明
字段 |
必选/可选 |
类型 |
描述 |
---|---|---|---|
uiCookie |
可选 |
unsign int |
Cookie有效值1-65535。 |
pcRequstId |
必选 |
String |
请求ID,用来匹配之前平台下发的服务命令。当该次数据上报为此前某一次命令请求的响应时,需要填写此次命令请求的请求ID,该参数必须带结束符‘\0’。 |
pcDeviceId |
必选 |
String |
设备ID,该参数必须带结束符‘\0’。 |
pcServiceId |
必选 |
String |
服务ID,该参数必须带结束符‘\0’。 |
pcServiceProperties |
必选 |
String |
服务属性,该参数必须带结束符‘\0’。 |
接口返回值
参见函数标准返回值
返回结果
广播名称 |
广播参数 |
成员 |
描述 |
---|---|---|---|
IOTA_TOPIC_DATATRANS_REPORT_RSP/{deviceId} |
HW_MSG对象 |
EN_IOTA_DATATRANS_IE_RESULT |
数据上报结果。
|
示例
用户根据Profile格式使用Json组件拼装服务属性的内容(pcServiceProperties)。
1 2 3 |
HW_UINT *uiLen; IOTA_ServiceDataReport(1211, NULL, "xxxx_xxxx_xxxx_xxxx" , "DoorWindow", “{\“status\”:\“OPEN\”}”); |
数据上报结果接收。
1 2 3 4 5 6 7 8 9 10 11 12 |
//开发者注册该函数进行设备服务数据上报后的处理 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; } //在设备添加成功后立即注册服务数据上报结果接收广播 HW_BroadCastReg(“IOTA_TOPIC_DATATRANS_REPORT_RSP/XXXX_XXXX_XXXX_XXXX”, Device_AddResultHandler); |