Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对通过串行端口发送的消息中的位进行计数_Python_Binary_Serial Port_Hex_Baud Rate - Fatal编程技术网

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”吗?也许我应该将消息转换成二进制表示,然后看看

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

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

>> 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