文档首页 > > API参考> Agent Lite API参考(C)> 接收设备命令

接收设备命令

分享
更新时间: 2019/11/12 GMT+08:00

接口功能

注册设备命令接收广播来接收处理平台下发的控制命令。

接口描述

1
IOTA_TOPIC_SERVICE_COMMAND_RECEIVE/{deviceId};

参数说明

枚举项

枚举值

类型

描述

EN_IOTA_DATATRANS_IE_RESULT

0

unsigned int

命令执行返回结果。

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

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”

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区