更新时间:2024-07-01 GMT+08:00
分享

添加设备

接口功能

当有新设备接入网关后,通过调用设备添加接口将非直连设备接入物联网平台,并且获得平台分配的唯一设备逻辑ID。

接口描述

1
HW_INT IOTA_HubDeviceAdd(HW_UINT uiCookie, const ST_IOTA_DEVICE_INFO *pstDeviceInfo);

参数说明

字段

必选/可选

类型

描述

uiCookie

可选

HW_UINT

Cookie有效值为1-65535。

pstDeviceInfo

必选

ST_IOTA_DEVICE_INFO

设备信息,pstDeviceInfo结构体中的成员变量必须带结束符‘\0'。

ST_IOTA_DEVICE_INFO:

字段

必选/可选

类型

描述

pcNodeId

必选

String

关键参数,对接平台的网关下设备唯一标识,设备填写,平台用于判重。

pcName

可选

String

设备名称。

pcDescription

可选

String

设备描述。

pcManufacturerId

必选

String

厂商ID。

pcManufacturerName

可选

String

厂商名。

pcMac

可选

String

设备MAC地址。

pcLocation

可选

String

设备的位置。

pcDeviceType

必选

String

设备类型。

pcModel

必选

String

型号。

  • 直连设备:与Profile中定义的model保持一致即可。
  • Z-Wave设备: ProductType + ProductId,格式(使用16 进制): XXXX-XXXX 补0对齐,如001A-0A12,其他协议再定。

pcSwVersion

可选

String

软件版本。

Z-Wave:主版本号.次版本号, 如:1.1

pcFwVersion

可选

String

固件版本。

pcHwVersion

可选

String

硬件版本。

pcProtocolType

必选

String

协议类型 :Z-Wave。

pcBridgeId

可选

String

表示设备通过哪个Bridge接入平台。

pcStatus

可选

String

表示设备是否在线。

  • ONLINE 在线。
  • OFFLINE 离线。

statusDetail

可选

String

状态详情,如果pcStatus不为空,则该参数必选。

参数值:

  • 无:NONE。
  • 配置等待:CONFIGURATION_PENDING。
  • 通信错误:COMMUNICATION_ERROR。
  • 配置错误:CONFIGURATION_ERROR。
  • 桥接器离线:BRIDGE_OFFLINE。
  • 固件升级:FIRMWARE_UPDATING。
  • 循环任务:DUTY_CYCLE。
  • 未激活:NOT_ACTIVE。

pcMute

可选

String

表示设备是否被屏蔽。

  • TRUE
  • FALSE

接口返回值

参见函数标准返回值

返回结果

广播名称

广播参数

成员

描述

IOTA_TOPIC_HUB_ADDDEV_RSP

HW_MSG对象

EN_IOTA_HUB_IE_TYPE

返回设备添加结果,如果添加成功则返回设备ID。

EN_IOTA_HUB_IE_TYPE:

枚举项

枚举值

类型

描述

EN_IOTA_HUB_IE_RESULT

0

EN_IOTA_HUB_RESULT_TYPE

添加/删除执行结果。

EN_IOTA_HUB_IE_DEVICEID

1

String

添加成功后分配的设备ID。

EN_IOTA_HUB_RESULT_TYPE:

枚举项

枚举值

描述

EN_IOTA_HUB_RESULT_SUCCESS

0

添加/删除执行成功。

EN_IOTA_HUB_RESULT_DEVICE_EXIST

1

设备已存在。

EN_IOTA_HUB_RESULT_DEVICE_NOTEXIST

2

设备不存在。

EN_IOTA_HUB_RESULT_DEVICE_FAILED

255

执行失败。

示例

1
2
3
4
5
6
7
8
9
// 开发者调用该接口进行设备添加 
ST_IOTA_DEVICE_INFO stDeviceInfo 
stDeviceInfo.pcNodeId = SN Number; 
stDeviceInfo.pcManufacturerId = Huawei; 
stDeviceInfo.pcDeviceType = Camera; 
stDeviceInfo.pcModel = HW_CAM101; 
stDeviceInfo.pcProtocolType = ONVIF;

IOTA_HubDeviceAdd(29011, &stDeviceInfo);

结果处理:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
// 开发者注册该函数进行设备添加后的处理 
HW_iNT Device_AddResultHandler(HW_UiNT uiCookie, HW_MSG pstMsg) 
{
    uiResult = HW_MsgGetUint(pstMsg, EN_IOTA_HUB_IE_RESULT);
    if (EN_IOTA_HUB_RESULT_SUCCESS != uiResult) 
    {
        // retry with uiCookie 
        return 0;
    }
    return 0;
}
//绑定广播接收处理函数 HW_BroadCastReg(“IOTA_TOPIC_HUB_ADDDEV_RSP”, Device_AddResultHandler);

相关文档