Python 对通过串行端口发送的消息中的位进行计数
我正在试图计算连接的串行设备的比特率。我已将设备配置为以10Hz的速率发送二进制数据。我的计划是看一条来自设备的信息,计算比特数,然后乘以10得到bps 下面是我如何使用一条消息的片段在python中计算位的示例:Python 对通过串行端口发送的消息中的位进行计数,python,binary,serial-port,hex,baud-rate,Python,Binary,Serial Port,Hex,Baud Rate,我正在试图计算连接的串行设备的比特率。我已将设备配置为以10Hz的速率发送二进制数据。我的计划是看一条来自设备的信息,计算比特数,然后乘以10得到bps 下面是我如何使用一条消息的片段在python中计算位的示例: >> message = "\0xdf\0xd0sA_\0xff0D\0x02\0xef0B" >> 8 * sys.getsizeof(message) 512 最后我的问题是:我应该计算十六进制前缀“\0x”吗?也许我应该将消息转换成二进制表示,然后看看
>> message = "\0xdf\0xd0sA_\0xff0D\0x02\0xef0B"
>> 8 * sys.getsizeof(message)
512
最后我的问题是:我应该计算十六进制前缀“\0x”吗?也许我应该将消息转换成二进制表示,然后看看它有多长?如果
消息
是bytestring,那么它的位长度是8*len(消息)
len
返回消息中的字节数(通过串行端口发送的内容)sys.getsizeof
返回Python对象的大小(str
type)(内存中的大小):
注意:'\0'='\x00'
和'\0xdf'!='\xdf'
,len('\0xdf')==4
,len('\xdf')==1
。
>>> len(b'a')
1
>>> sys.getsizeof(b'a')
38