接收设备命令
接口功能
注册设备命令接收广播来接收处理平台下发的控制命令。
接口描述
1
|
IOTA_TOPIC_SERVICE_COMMAND_RECEIVE/{deviceId}; |
参数说明
枚举项 |
枚举值 |
类型 |
描述 |
---|---|---|---|
EN_IOTA_DATATRANS_IE_RESULT |
0 |
unsigned int |
命令执行返回结果。
|
EN_IOTA_DATATRANS_IE_DEVICEID |
1 |
String |
设备ID。 |
EN_IOTA_DATATRANS_IE_REQUESTID |
2 |
String |
请求ID。 |
EN_IOTA_DATATRANS_IE_SERVICEID |
3 |
String |
服务ID。 |
EN_IOTA_DATATRANS_IE_METHOD |
4 |
String |
服务方法。 |
EN_IOTA_DATATRANS_IE_CMDCONTENT |
5 |
String |
命令内容,以Json格式进行拼装的服务命令参数,开发者根据对应服务命令的定义进行Json解析,从而获取命令参数值。 |
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// 开发者注册该函数进行命令接收的处理 HW_iNT Switch_CommandRecvtHandler(HW_UiNT uiCookie, HW_MSG pstMsg) { HW_cHAR *pcMethod, *pcServiceId, *pcCmdContent, *pcDeviceId; pcDeviceId = HW_MsgGetStr(pstMsg, EN_IOTA_DATATRANS_IE_DEVICEID); pcServiceId = HW_MsgGetStr(pstMsg, EN_IOTA_DATATRANS_IE_SERVICEID); pcMethod = HW_MsgGetStr(pstMsg, EN_IOTA_DATATRANS_IE_METHOD); pcCmdContent = HW_MsgGetStr(pstMsg, EN_IOTA_DATATRANS_IE_CMDCONTENT); if (strcmp(pcServiceId, “switch”)) { //根据Proflie定义的命令参数,使用Json组件解析pcCmdContent //Send command to Switch } return 0; } //在设备添加成功后立即注册设备命令接收广播 HW_BroadCastReg(“IOTA_TOPIC_SERVICE_CMD_RECEIVE/XXXX_XXXX_XXXX_XXXX”, Device_AddResultHandler); |
开发者需要在设备添加成功后注册该设备的命令接收广播,广播主题为 “IOTA_TOPIC_SERVICE_CMD_RECEIVE/设备ID”,Agent Lite收到平台发往给设备的命令后会直接广播给该设备注册的广播处理函数。如果开发者不需要按设备进行分发,直接使用主题名即可,即“ IOTA_TOPIC_SERVICE_CMD_RECEIVE”。