我的问题是关于将 loriot 网络服务器连接到 IBM Watson IoT Platform。我已经成功地将 loriot 后端与 Watson IoT Platform 连接起来,并看到了一些数据。但是,数据是十六进制格式。关于如何将这个十六进制数据转换为人类可读的任何想法?
问问题
151 次
1 回答
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
此处记录了数据管理功能:
于 2018-03-10T10:08:30.087 回答