开发指南

项目技术栈

协议网关服务项目(以下简称网关)使用Java语言开发,使用Spring Boot 2和Netty 4搭建开发框架,使用Maven构建项目和管理依赖,使用Lombok简化代码。

点击下载SDK

建议用户使用Intellij IDEA进行二次开发,将/src/main/resource文件夹标记为Resources Root,项目中以Sample开头的Java类文件为实例代码。

项目启动主类为/src/main/java/com/cmiot/gateway/ProtocolGatewayService.java

先决条件

  • 在OneNET平台上创建了MQTT物联网套件(新版)产品和OneNET设备;
  • 在OneNET平台上创建了协议网关服务。

配置协议网关服务

网关配置默认使用配置文件方式。默认从Java工程默认资源文件路径(默认位置为/src/main/resource/config)下的gateway.conf中读取网关配置文件。同时,网关项目支持配置自定义,只需实现网关配置信息读取接口(接口默认位置为/src/main/java/com/cmiot/gateway/config),并将其注解为Spring Bean。

默认文件配置

网关使用typesafe.config解析配置文件,网关配置文件参数说明如下表

参数是否必须说明
connectionHostOneNET平台MQTT接入服务地址,默认为”tcp://183.230.40.96:1883”,需要注意的是此地址需和tlsSupport参数匹配。
serviceId协议网关服务ID。
instanceName协议网关服务实例名称,serviceId和instanceName二元组共同标识了实例的唯一性,当二元组重复时,仅会在最新启动的实例上建立网关控制连接。
instanceKey协议网关服务实例,用于鉴权。
transports协议网关服务协议中心,格式为”transport:port, transport:port”,如”tcp:10086”,目前网关仅支持TCP协议,默认开启端口为10086。
tlsSupport与OneNET平台MQTT接入服务之间的连接是否使用TLS加密,默认为false,即不使用TLS加密。

实现自定义协议编解码器

自定义协议编解码的作用是实现设备数据和协议内部数据之间的相互转换,需用户自主实现。其中,协议内部数据用于与OneNET平台MQTT接入服务之间的通信。

默认位置为/src/main/java/com/cmiot/gateway/custom。

自定义解码器

自定义解码器是将自定义协议数据(二进制数组)解码为网关内部数据(ProtocolMessage)。网关根据ProtocolMessage中MessageType的不同进行不同的动作,如:LOGIN-设备登陆、LOGOUT-设备登出,等等,详情请见MessageType小节。

自定义编码器

自定义解码器是将网关内部数据(ProtocolMessage)编码为自定义协议数据(二进制数组)。用户可以根据内部数据MessageType的不同对内部数据实现不同的编码,然后推送给设备或者进行下一步处理。

MessageType

网关根据网关内部数据中MessageType对数据进行不同的处理,MessageType可分为数据上行和下行两类,其中上行数据用于设备到OneNET平台MQTT接入服务的数据上行,如设备主动登陆登出、数据点上传等,下行数据用于MQTT接入服务对上行数据的响应以及数据的主动下发。MessageType详解如下表:

MessageType上行/下行说明
LOGIN上行代理设备主动登录
LOGOUT上行代理设备主动登出
DP上行数据点上传
CMD_REPLY上行命令回复
IMAGE_UPDATE上行设备镜像更新
IMAGE_GET下行设备镜像获取
LOGIN_ACCEPTED_RESPONSE下行代理设备主动登录成功响应
LOGIN_REJECTED_RESPONSE下行代理设备主动登录失败响应
LOGOUT_ACCEPTED_RESPONSE下行代理设备主动登出成功响应
LOGOUT_NOTIFY_RESPONSE下行代理设备被平台主动登出响应
DP_ACCEPTED_RESPONSE下行代理设备上传数据点成功响应
DP_REJECTED_RESPONSE下行代理设备上传数据点失败响应
DOWN_LINK_CMD下行代理设备收到平台下发命令
CMD_REPLY_ACCEPTED_RESPONSE下行代理设备回复命令成功的平台响应
CMD_REPLY_REJECTED_RESPONSE下行代理设备回复命令失败的平台响应
IMAGE_UPDATE_ACCEPTED_RESPONSE下行代理设备更新镜像成功响应
IMAGE_UPDATE_REJECTED_RESPONSE下行代理设备更新镜像失败响应
IMAGE_GET_ACCEPTED_RESPONSE下行代理设备获取镜像成功响应
IMAGE_GET_REJECTED_RESPONSE下行代理设备获取镜像失败响应
IMAGE_DELTA下行代理设备收到平台下发的镜像delta消息
UNKNOWN\未知类型型

个搜索结果,搜索内容 “

    0 个搜索结果,搜索内容 “