我是靠谱客的博主 壮观时光,最近开发中收集的这篇文章主要介绍阿里云物联网平台C-SDK网关子设备如何上报物模型?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简介: 物联网设备很多都是微型嵌入式级别的,集成SDK一方面耗费资源、影响设备性能、增加成本,另一方面对于商家来说新入网一款设备带来极大的不便,集成SDK要进行开发(设备厂家要进行额外的定制),需要更新固件程序。所以阿里云物联网平台提供了一种网关-子设备的入网模式,为商家新入网设备提供便利。网关设备属于和物联网平台直连设备,子设备不和物联网平台连接,那么子设备又是如何进行物模型上报(物模型上报指的是设备端将物模型数据发送给物联网平台)呢?尤其是C-SDK(网关集成SDK),官方没有现成的Demo。 此篇文章将阐述C-SDK4.X版本网关子设备上报物模型的业务流程原理和Demo源码。

业务场景

1、子设备与子设备、网关与子设备之间通过业务协议进行通信(ZigBee、wifi、蓝牙等)
2、网关设备连接物联网平台,创建物理通道,并代理子设备上线创建逻辑通道
3、子设备通过逻辑通道与物联网平台进行通信,但是实际不建立任何物理上的连接。

原理介绍
1、子设备上报物模型,首先得满足网关-子设备架构,先要创建网关和子设备产品

关于网关产品和子设备的产品创建这里就不过多赘述。物模型上报,首先肯定得有物模型的定义吧。

2、子设备和网关要建立一种关联关系,建立网关与子设备的topo结构。(这样网关和平台才知道,谁是这个网关的子设备)
(1)可以直接在控制台上进行操作

(2)可以通过云端API进行操作
 

(3)可以通过SDK的接口进行操作

components/subdev/aiot_subdev_api.h

3、网关设备创建与物联网平台的链路,再代理子设备进行上线(注意:这些操作都是在网关上完成)

网关设备如同普通直连设备一样,与物联网平台建立连接,即网关-子设备架构中的物理通道

代理子设备上线,帮助子设备与物联网平台建立逻辑通道

components/subdev/aiot_subdev_api.h

4、子设备通过网关与物联网平台的物理链路上报消息到物联网平台(注意:这些操作都是在网关上完成,子设备只需要提供三元组信息)

不管是MQTT API还是物模型API,他们的底层原理都是一样的,网关设备和物联网平台进行直连,存在唯一的一条物理通道,而子设备通过网关代理上线,使用逻辑通道与平台进行通信,复用的是网关的物理通道

官网说明:

可以看到这里有两种方式,分别是基于MQTT API的接口
和基于物模型API的接口。

那么aiot_mqtt_pub和aiot_dm_send又是如何体现
物理通道和逻辑通道呢?
(1) MQTT API aiot_mqtt_pub()接口方式

core/aiot_mqtt_api.h

直接调用aiot_mqtt_pub传入带子设备信息的Topic

(2) 物模型API aiot_dm_send()接口方式
在aiot_dm_send()的两个参数中handle使用网关代理上线后的那个handle,msg携带子设备的信息,完成逻辑通道的消息传输。

components/data-model/aiot_dm_api.h

这个接口里面优先使用的是msg里面携带的product key和devicename来组装topic

这个msg结果如下aiot_dm_msg_t

最后

以上就是壮观时光为你收集整理的阿里云物联网平台C-SDK网关子设备如何上报物模型?的全部内容,希望文章能够帮你解决阿里云物联网平台C-SDK网关子设备如何上报物模型?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部