2017-08-06 61 views
0

我的問題是關於將loriot網絡服務器連接到IBM Watson IoT平臺。 我設法將loriot後端與Watson物聯網平臺連接,並看到一些數據通過。但是,數據是十六進制格式。關於如何將這個十六進制數據轉換爲人類可讀的想法?IBM watson IoT平臺 - 十六進制數據

+0

在這個配方(https://developer.ibm.com/recipes/tutorials/connecting-your-device-with-ibm-watson-iot-using -a-thingpark-lorawan-network /)他們使用網橋解碼器來完成轉換。您可能還想檢查可能能夠幫助轉換的節點紅色節點中的任何節點。 – ValerieLampkin

+0

此視頻https://www.youtube.com/watch?v=H18pVF8qIaY顯示如何使用multitech管道配置LoRa可能對您有所幫助 – ValerieLampkin

回答

0

如果通過Watson IoT Platform的數據採用JSON格式,但包含的值屬於十六進制值,則可以使用功能將這些事件中的數據轉換爲設備狀態。屬性映射表達式中使用的表達式語言包括一個$ unpack函數,可用於將字符串和十六進制八位字節轉換爲數字值。當與$ substring函數結合使用時,可以從大十六進制值中提取特定字符串並將其轉換爲數字。

舉個例子,假設你有以下入站事件:

{ 
    "propertyA": "valueA", 
    "propertyB": "valueB", 
    "data": "3b45940201000000010e4601" 
} 

...你可以使用類似於下面的映射表達式對設備狀態映射值的屬性:

$unpack($substring($event.data, 0, 8), "l32f") 
$unpack($substring($event.data, 8, 2), "l8") 
$unpack($substring($event.data, 10, 8), "l32") 

以上三個表達式的對應輸出爲:

2.1786381830505485E-37 
1 
16777216 

數據管理功能進行了記載:

https://console.bluemix.net/docs/services/IoT/GA_information_management/ga_im_device_twin.html#device_twins