物聯網平臺為設備端開發提供了Link SDK,并在SDK中封裝了設備端與物聯網平臺交互通信的Alink協議。您可以直接使用設備端Link SDK開發設備。如果嵌入式環境復雜,已提供的設備端Link SDK不能滿足您的需求,您也可以自行封裝Alink協議數據,建立設備與物聯網平臺的通信。
概述
Alink協議是針對物聯網開發領域設計的一種數據交換規范,數據格式是JSON,用于設備端和物聯網平臺的雙向通信,更便捷地實現和規范了設備端和物聯網平臺之間的業務數據交互。
物聯網平臺為設備端開發提供的各語言Link SDK及功能特性說明,請參見功能特性。
物聯網平臺各功能的Alink協議說明,如下表所示。
功能 | 數據格式說明 |
---|---|
設備接入 | |
消息通信 | |
設備管理 | |
監控運維 |
以下為您介紹Alink協議下,設備的上線流程和數據上下行原理。
上線流程
設備在物聯網平臺的上線流程,可以按照設備類型,分為直連設備與子設備的接入流程。主要包括:設備注冊、激活上線和數據上報三個流程。
直連設備接入有兩種方式:
- 使用一機一密方式提前燒錄設備證書(ProductKey、DeviceName和DeviceSecret),注冊設備,上線,然后上報數據。
- 使用一型一密動態注冊提前燒錄產品證書(ProductKey和ProductSecret),注冊設備, 上線,然后上報數據。
子設備接入流程通過網關發起,具體接入方式有兩種:
- 使用一機一密提前燒錄設備證書(ProductKey、DeviceName和DeviceSecret),子設備上報設備證書給網關,網關添加拓撲關系,復用網關的通道上報數據。
- 使用動態注冊方式提前燒錄ProductKey,子設備上報ProductKey和DeviceName給網關,物聯網平臺校驗DeviceName成功后,下發DeviceSecret。子設備將獲得的設備證書信息上報網關,網關添加拓撲關系,通過網關的通道上報數據。
設備上報屬性或事件
- 透傳格式(透傳/自定義)數據
序號 說明 1 設備通過透傳格式數據的Topic,上報透傳數據。Topic說明,請參見設備屬性、事件、服務。 1.1 物聯網平臺通過數據解析腳本先對設備上報的數據進行解析:調用腳本中的 rawDataToProtocol
方法,將設備上報的數據轉換為物聯網平臺標準數據格式(Alink JSON格式)。數據解析的詳細內容,請參見數據解析。
1.2 物聯網平臺使用轉換后的Alink JSON格式數據進行業務處理。 若配置了規則引擎,則會根據數據流轉規則,將數據流轉到數據目的地(其他Topic或云產品)中。
1.3 物聯網平臺調用數據解析腳本中的 protocolToRawData
方法,對結果數據進行格式轉換,將數據解析為設備可以接收的數據格式。1.4 物聯網平臺推送解析后的數據給設備。 2 您可以通過物聯網平臺接口QueryDevicePropertyData查詢設備上報的屬性歷史數據,通過物聯網平臺接口QueryDeviceEventData查詢設備上報的事件歷史數據。 - 非透傳格式(Alink JSON)數據
序號 說明 1 設備通過非透傳格式數據的Topic,上報透傳數據。Topic說明,請參見設備屬性、事件、服務。 1.1 物聯網平臺進行業務處理。 若配置了規則引擎,則會根據數據流轉規則,將數據流轉到數據目的地(其他Topic或云產品)中。
1.2 物聯網平臺返回處理結果給設備。 2 您可以通過物聯網平臺接口QueryDevicePropertyData查詢設備上報的屬性歷史數據,通過物聯網平臺接口QueryDeviceEventData查詢設備上報的事件歷史數據。
調用設備服務或設置屬性
- 異步服務調用或屬性設置
序號 說明 1 在物聯網平臺進行服務調用。 - 設置屬性:通過物聯網平臺接口SetDeviceProperty為設備設置具體屬性。
- 調用服務:通過物聯網平臺接口InvokeThingService來異步調用服務。
定義服務時,調用方式選擇為異步的服務即為異步調用。
1.1 物聯網平臺對您提交的參數進行校驗。 1.2 物聯網平臺采用異步調用方式下發數據給設備,并返回調用操作結果。若沒有報錯,則結果中攜帶下發給設備的消息ID。 對于透傳格式(透傳/自定義)數據,則會先調用數據解析腳本中的
protocolToRawData
方法,對數據進行數據格式轉換,再將轉換后的數據下發給設備。2 設備收到數據后,進行業務處理。 說明 透傳格式(透傳/自定義)和非透傳格式(Alink JSON)數據,處理消息的Topic不同,詳細說明,請參見設置設備屬性和設備服務調用(異步調用)。3 設備完成業務處理后,返回處理結果給物聯網平臺。 物聯網平臺收到處理結果的后續操作:
- 若是透傳格式數據,將調用數據解析腳本中的
rawDataToProtocol
方法,對設備返回的結果進行數據格式轉換。 - 若配置了規則引擎,則會根據數據流轉規則,將數據流轉到數據目的地(其他Topic或云產品)中。
- 同步服務調用
序號 說明 1 通過物聯網平臺接口InvokeThingService,來調用同步服務(定義服務時,調用方式選擇為同步的服務即為同步調用)。 1.1 物聯網平臺對您提交的參數進行校驗。 1.2 使用同步調用方式,調用RRPC的Topic,下發數據給設備。 對于透傳格式(透傳/自定義)數據,則會先調用數據解析腳本中的
protocolToRawData
方法,對數據進行數據格式轉換,再將轉換后的數據下發給設備。1.3 物聯網平臺同步等待設備返回結果。 2 設備完成業務處理后,返回處理結果給物聯網平臺。若超時,則返回超時的錯誤信息。 2.1 物聯網平臺收到設備處理結果后,返回結果給調用者。 若是透傳格式數據,將調用數據解析腳本中的
rawDataToProtocol
方法,對設備返回的結果進行數據格式轉換。
拓撲關系
序號 | 說明 | |
---|---|---|
1 | 子設備連接到網關。 若添加拓撲關系需要第三方介入,可通過下面的步驟通知網關添加拓撲關系。 | |
1.1 | 網關通過發現設備列表的Topic:/sys/${productKey}/${deviceName}/thing/list/found ,上報發現的子設備信息。物聯網平臺收到上報數據后,若配置了規則引擎,則會根據數據流轉規則,將數據流轉到數據目的地(云產品)中。 | |
1.2 | 您可從云產品中獲取子設備數據。 | |
1.3 | 您可決定是否添加網關與子設備的拓撲關系。 如果需要添加拓撲關系,可以調用物聯網平臺接口NotifyAddThingTopo,通過Topic: | |
2 |
| |
3 | 您刪除網關與子設備的拓撲關系:網關通過刪除拓撲關系的Topic:/sys/${productKey}/${deviceName}/thing/topo/delete ,來刪除網關和子設備的拓撲關系。 | |
4 | 您可以調用物聯網平臺接口GetThingTopo,通過Topic:/sys/${productKey}/${deviceName}/thing/topo/get 來獲取網關和子設備的拓撲關系。 |