计算通过串行端口发送的消息中的位

时间:2014-03-08 20:41:10

标签: python binary serial-port hex baud-rate

我正在试图找出连接的串行设备的比特率。我已将设备配置为以10Hz的速率发送二进制数据。我的计划是查看来自设备的一条消息,计算位数,然后乘以10得到bps。

以下是我如何使用一条消息的片段计算python中的位数的示例:

>> message = "\0xdf\0xd0sA_\0xff0D\0x02\0xef0B"
>> 8 * sys.getsizeof(message)
512

最后我的问题是:我应该计算十六进制前缀“\ 0x”吗?也许我应该将消息转换为二进制表示,然后看看它有多长?

1 个答案:

答案 0 :(得分:1)

如果message是字节串,则其位长为8 * len(message)

len返回message中的字节数(通过串口发送的内容)。 sys.getsizeof返回Python对象(str类型)的大小(内存大小):

>>> len(b'a')
1
>>> sys.getsizeof(b'a')
38