我正在试图找出连接的串行设备的比特率。我已将设备配置为以10Hz的速率发送二进制数据。我的计划是查看来自设备的一条消息,计算位数,然后乘以10得到bps。
以下是我如何使用一条消息的片段计算python中的位数的示例:
>> message = "\0xdf\0xd0sA_\0xff0D\0x02\0xef0B"
>> 8 * sys.getsizeof(message)
512
最后我的问题是:我应该计算十六进制前缀“\ 0x”吗?也许我应该将消息转换为二进制表示,然后看看它有多长?
答案 0 :(得分:1)
如果message
是字节串,则其位长为8 * len(message)
。
len
返回message
中的字节数(通过串口发送的内容)。 sys.getsizeof
返回Python对象(str
类型)的大小(内存大小):
>>> len(b'a')
1
>>> sys.getsizeof(b'a')
38