腾讯云物联网网关功能
网关功能
- 网关负责代理子设备的认证、与云端的数据通信、管理子设备的信息和状态。网关与子设备之间的通信由厂商处理。
- 网关功能通过iot_config.h中的DEVICE_GATEWAY宏来控制。
- GATEWAY_MQTT_COMM_ENABLED开启网关的mqtt网络通道。网关同时支持子设备的一型一密和一机一密。
- 编译生成的执行文件在build/x86_64/bin/gateway_example。
设备拓扑关系
- 直连设备:可直接连接云端
- 网关设备:拥有管理子设备,代理子设备连接云端的能力
- 子设备:通过网关代理连接至云端的设备
子设备发送和接收
- 子设备的上下线由网关通知云端
- 子设备没有心跳,网关有心跳
- 网关需订阅子设备的topic,同步响应
- 网关可批量发送和接收子设备的数据
子设备激活
子设备需要在后台配置拓扑关系,子设备可多次获取DS/ID,子设备需先解除和网关的依赖关系,才可关联其他网关。解除依赖后,原网关清除对子设备的控制能力。
网关功能架构图:
创建新设备
- Intiot_gateway_construct(iot_dev_type_tdev_type,iot_dev_auth_info_tmeta_info);
- 接口说明:创建一个新设备,包括网关和子设备类型。
- 返回值:成功返回设备ID,失败返回FAIL_RETURN
- 参数说明:
- intiot_gateway_connect(intdevid);
- 接口说明:指定设备开启网络连接。
- 返回值:成功返回SUCCESS_RETURN,失败返回FAIL_RETURN
- 参数说明:
- voidiot_gateway_yield(inttimeout_ms);
- 接口说明:接收云端下发事件,并将事件分发到注册的回调方法中。
- 返回值:void
- 参数说明:
- intiot_gateway_destroy(intdevid);
- 接口说明:关闭指定设备网络连接和回收设备资源。
- 返回值:成功返回SUCCESS_RETURN,失败返回FAIL_RETURN
- 参数说明:
- intiot_gateway_report(intdevid,iot_msg_type_tmsg_type,unsignedcharpayload,intpayload_len);
- 接口说明:发送数据到云端。
- 返回值:成功返回信息id,失败返回FAIL_RETURN
- 参数说明:
booliot_gateway_dynamic_auth(iot_dev_auth_info_tmeta_info,iot_cm_init_param_tparams);
接口说明:真对一型一密的子设备获取设备的identifier和devicesecret。
返回值:成功返回true,失败返回false
参数说明:
参数名参数类型必填描述meta_infoiot_dev_auth_info_t是这边的验证信息paramsiot_cm_init_param_t是网络连接的初始参数发送数据到云端
- uint32_tiot_gateway_generate_msgid();
- 接口说明:生成消息id。
- 返回值:成功消息id,失败返回-1