跳转至

合宙 IOT 通用报文协议 AirProtcl -- 1.0

五、AirProtcl 和遥测的关系

遥测的目的是检测设备的 mobile 信息,证明设备还活着,还具备通信能力;

AirProtcl 协议,目的是合宙设备驱动的业务,都有被记录到数据库的机会。

六、支持的通信承载

6.1 TCP

TCP server 收到数据后,直接发起写入数据库动作。

TCP server 在接受了 socket 连接后,等待设备的鉴权请求,如果超时或者鉴权请求不通过,主动发起断链。

6.2 MQTT

6.2.1 MQTT 角色

有三个角色: 设备,Broker,ServClient。

6.2.2 MQTT 主题

ServClient 订阅所有主题,设备只订阅跟自己相关的主题。

设备的主题名字为: /AirPro/DeviceID/ServType

其中, AirPro 是固定字符串;

DeviceID 是设备的 ID, 内容和消息头的 设备 ID 相同;

ServType 包括两种:

(1)auth

(2)all

其中, auth 是指鉴权报文, all 是指所有其他报文。

6.2.3 鉴权

设备和Broker建立MQTT 连接后,首先设备要发起鉴权,Broker把鉴权请求转发给ServClient,ServClient审核后,回复鉴权通过或者鉴权失败。

如果回复的是鉴权失败,ServClent需要在10秒钟之内通知Broker,把发起鉴权的设备进行断链处理。

如果设备超时没有发起鉴权,ServClient也要通知Broker,把设备断链。

6.3 UDP

AirProtcl 当前不推荐 UDP 协议。

如果必须要用 UDP 的话,需要在消息标识的第 6 个 bit 设为 1, 并在消息头和 TLV 中间,放置 64 字节的 key。

服务器需要对每个 UDP 消息,进行 key 的合法性检查。

6.4 HTTP

AirProtcl 当前不支持 HTTP UDP 协议。

七、云端后台实现

7.1 云端后台记录

所有上报的数据,都记录到数据库

7.2 日志查询

提供 web 表单查询日志,并且可以导出到文件。

7.3 可视化展现

可视化展现,和数据存储做分离的实现。

7.4 API 查询

提供 web 后台的查询接口,后端和前端的实现可以分离。

八,扩展库实现

exiot 扩展库, 调用 socket 核心库,mqtt 核心库,exnetif 扩展库。

扩展卡包含如下成员函数:

1, init(): 初始化参数,设备 ID,流水号初始化,指定协议版本,

2, auth_req(), 携带对收到鉴权回复的回调,以及超时的回调。

3, data_report(), 上报设备数据。