【发布时间】:2019-03-09 06:14:33
【问题描述】:
我有一个返回 23 个十六进制值的串行设备。我在 Ignition 中使用 system.serial.readBytes('COM1', 23) 读取了这些值。这将返回 array('b', [-85, 112, 1, 18, -79, 0, 1, 116, -41, 2, -17, 10, 28, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0])。我知道这里的值是有符号 2 补码的十进制值,但我怎样才能得到十进制值?例如 -85 应该是 171,或者十六进制的 0xAB。我更喜欢直接读取十六进制值,但我不知道该怎么做。有什么想法吗?
【问题讨论】:
-
串口模块上没有读取十六进制的方法。即使 readStringAsBytes 仍然会返回一个字节字符串,您必须将其转换为十六进制。
-
请将您的评论转换为答案,以便我将其标记为已回答。
标签: python serial-port hex decimal ignition