全部文档
OneOS简介 硬件支持 快速开发指南 编译构造工具 API参考文档 高级语言 用户编程手册 OnePos定位 应用笔记 FAQ

OneNET-MQTT-Kit用户指南


简介

OneNET-MQTT组件是基于Paho mqtt Embedded C v1.1.0源码包上做的开发,提供自动注册设备、平台接入、主题订阅、消息发布、命令下发、心跳保持、离线重连,并支持TLS加密传输。

目录结构

OneNET-MQTT 源代码目录结构如下表所示:

目录 说明
mqtts_device mqtt设备相关接口实现及主业务实现
authorization 鉴权相关接口实现
cert 存放平台根证书

架构设计

为了保证设备在异常状态下实现快速重连,设计框架如下:

onenet_mqtts

  • 获取设备信息。包含OneNET平台MQTTS物联网套件上注册的产品ID,产品access_key,设备名称,非自动化注册设备还需要获取设备ID和设备key。
  • 初始化。包含MQTT网络相关接口的初始化、MQTT客户端初始化、订阅相关接口初始化(主题和相应的消息回调初始化)、发布消息队列初始化。
  • 设备注册。设备向注册服务器注册一个设备,用户只提供产品ID,产品accesskey,设备名, 其中设备名需要保证唯一,可以采用SN、IMEI等,支持数字、字母、字符''和'-',长度不超过64。设备支持反复注册。注册前会计算API访问的Token。
  • 网络和设备连接。开启TLS加密传输时,需要用到平台CA证书,网络连接成功后进行设备连接。设备连接前会计算设备连接的Token(默认过期时间是2032/1/1,可根据用户需求更改),作为MQTT接入平台时的客户端密码。
  • 订阅。根据初始化的订阅主题(目前5个主题)进行订阅,每个主题最多尝试3次,每个主题订阅成功后,注册该主题的回调函数。若此5个主题中有任何一个订阅不成功,会关闭客户端,关闭网络,重新进行网络和设备连接。
  • 发布。会查询发布消息队列中是否有消息(消息队列中的消息结构体包含主题类型、数据和数据长度),有消息就会将要发布的消息发布到对应的主题。消息的服务质量默认为Qos1(用户可修改),因此发布后会同步等待ACK,若超时则判断为失败,会关闭客户端和网络,重新进行网络和设备连接。
  • 消息接收及心跳处理。订阅的5个主题,若平台有发布此5个主题的消息,则会接收到并执行主题消息回调函数。心跳包会在用户配置的心跳间隔时间发送,以保持设备的长连接。若消息接收失败,会关闭客户端和网络,重新进行网络和设备连接。

OneNET平台相关

OneNET支持的订阅Topic :

系统topic 用途 QoS 可订阅
1 $sys/{pid}/{device-name}/dp/post/json/accepted 系统通知"设备上传数据点成功" 0
2 $sys/{pid}/{device-name}/dp/post/json/rejected 系统通知"设备上传数据点失败" 0
3 $sys/{pid}/{device-name}/cmd/request/+ 系统向设备下发命令 0
4 $sys/{pid}/{device-name}/cmd/response/+/+ 系统回复"设备命令应答成功或失败" 0
5 $sys/{pid}/{device-name}/image/# 设备镜像相关所有主题 0

OneNET支持的发布Topic :

系统topic 用途 QoS 可发布
1 $sys/{pid}/{device-name}/dp/post/json 设备上传数据点 0/1
2 $sys/{pid}/{device-name}/cmd/response/{cmdid} 设备回复命令应答 0/1
3 $sys/{pid}/{device-name}/image/update 设备更新镜像中属性 0/1
4 $sys/{pid}/{device-name}/image/get 设备镜像信息查询 0/1

加密与非加密

连接协议 地址 端口 说明
MQTT 183.230.40.16 8883 加密接口
MQTT 183.230.40.96 1883 非加密接口

使用说明

图形化配置

使用OneNET MQTT套件需要通过Menuconfig的图形化工具进行配置选择,配置的路径如下所示:

(Top) → Components → Cloud → OneNET → MQTT Kit
[*] Enable onenet mqtt-kit
[ ]     Enable onenet device auto register
[ ]     Enable mqtt-kit TLS encrypt

进行OneNET MQTT Kit 选项配置需要先在Menuconfig中选中Enable onenet mqtt-kit,然后再进行其他的配置选择。

  • Enable onenet device auto register:使能自动完成OneNET平台的设备注册。
  • Enable mqtt-kit TLS encrypt:使能OneNET MQTT的加密传输。

API使用说明手册

OneNET MQTT Kit API使用说明手册

注意事项

1. 关闭OneNET MQTT组件

开启OneNET MQTT组件后会自动勾选Paho MQTT组件,当用户反向取消该组件时记得手动关闭Paho MQTT组件。

2. 关闭OneNET MQTT的加密传输

开启OneNET MQTT的加密传输功能后会自动勾选Paho MQTT组件和mbedtls加密组件,当用户反向取消OneNET MQTT的加密传输功能时记得手动关闭Paho MQTT的加密配置项,并同时关闭mbedtls组件。

results matching ""

    No results matching ""

    返回顶部