我正在尝试按照这个教程:https://cylab.be/blog/92/measure-ambient-temperature-with-temper-and-linux来获取TEMPer USB传感器来测量环境温度,这样我就可以将其合并到一个Perl脚本中,以提醒我房间的环境温度。在教程的示例中,它们转换来自设备的以下字节的数据:
Response from device (8 bytes):
80 80 0b 92 4e 20 00 00
致:
In the response, the Bytes 3 and 4 (so 0b 92) indicate the ambient temperature:
0b 92 converted into decimal is 2932
2932 divided by 100 is 29.32 C
有人知道如何使用Perl将这样的数据字节转换为十进制,从而转换为摄氏温度吗?
1条答案
按热度按时间mnemlml81#
Perl的hex函数可以将文本中的十六进制数字转换为Perl数字,然后可以用任何方式表示这些数字:
但是,听起来你可能是在从设备阅读原始数据,并且你想要的数字是两个八位字节,读取这些数据并使用unpack(使用符合八位字节顺序的适当格式)将其转换为Perl数字: