開發指南

項目技術棧

協議閘道服務項目(以下簡稱閘道)使用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解析設定檔,閘道設定檔參數說明如下表

參數 是否必須 說明
connectionHost No OneNET平台MQTT接入服務地址,預設為”tcp://183.230.40.96:1883”,需要注意的是此地址需和tlsSupport參數匹配。
serviceId Yes 協議閘道服務ID。
instanceName Yes 協議閘道服務實例名稱,serviceId和instanceName二元組共同標識了實例的唯一性,當二元組重複時,僅會在最新啟動的實例上建立閘道控制連接。
instanceKey Yes 協議閘道服務實例,用於鑒權。
transports No 協議閘道服務協議中心,格式為”transport:port, transport:port”,如”tcp:10086”,目前閘道僅支援TCP協議,預設開啟埠為10086。
tlsSupport No 與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 个搜索结果,搜索内容 “