在接收到代理設備上線請求後,用戶可對代理設備進行鑒權和許可權認證(可選,詳情見下一小節),認證通過後,在自訂協議數據解碼器解碼相關方法中構造並返回MessageType為LOGIN的ProtocolMessage,並填充OneNET設備Id、設備名稱、設備Key、設備所屬的產品Id等信息。 閘道項目預設提供了代理設備配置信息讀取介面(介面預設位置為/src/main/java/com/cmiot/gateway/config)及其預設實現,用於配置和讀取代理設備信息到OneNET設備信息的映射。
代理設備配置預設使用設定檔方式。默認從Java工程預設資源檔路徑(預設位置為/src/main/resources/config)下的devices.conf中讀取代理設備設定檔。同時,閘道項目支援代理設備配置自訂,只需實現代理設備配置信息讀取介面(介面預設位置為/src/main/java/com/cmiot/gateway/config),並將其注解為Spring Bean,然後可通過
IDeviceConfig deviceConfig = ExtensionUtils.getDeviceConfig();
獲取代理設備配置。
閘道設定檔參數說明如下表
參數 | 是否必須 | Description |
---|---|---|
originalIdentity | Yes | 設備原始身份識別字,用戶可通過此識別字建立代理設備到OneNET的映射關係。 |
productId | Yes | 代理設備所屬的OneNET產品Id |
deviceName | Yes | OneNET設備名稱。 |
deviceId | Yes | OneNET設備Id。 |
deviceKey | Yes | OneNET設備Key,用於設備在平台側的鑒權。 |
閘道項目以可選的擴展工具的形式提供了設備鑒權和許可權認證能力,相關介面和預設實現在Java工程中的目錄路徑為/src/main/java/com/cmiot/gateway/security。 用戶可根據自己的業務實現鑒權和許可權策略介面,並將其注解為Spring Bean,然後可通過擴展工具類ExtensionUtil獲取並使用。
閘道解析MessageType為LOGIN後,會發送代理設備的主動上線請求,OneNET平台MQTT接入服務收到主動上線請求後對上線請求進行處理並返回設備登入成功/失敗回應,用戶可以實現下行數據處理介面DownLinkHandler(默認位置為/src/main/java/com/cmiot/gateway/custom)。
用戶可通過DownLinkChannelHandler中pushToDevice方法主動推送數據給設備。 需要注意的是,推送方法傳入的閘道內部數據(ProtocolMessage)並不是最終推送給設備的數據,仍需要用戶自主編寫自訂協議編碼器將內部數據轉換為最終推送給設備的數據。
用戶可通過內部數據中MessageType的不同實現相應的業務邏輯。
注:DownLinkChannelHandler同時提供了主動斷開設備連接的方法。