在Python

时间:2017-08-15 11:28:49

标签: python bitarray parity

我想使用pigpio库使用bit-banging通过串行链路发送和接收8位二进制数据。另一方期望并发送带有有效奇偶校验位的字节。不幸的是,pigpio库中没有奇偶校验处理。但是,pigpio库接受任意长度的数据块,因此我可以在将 my 代码中的奇偶校验位添加到每个数据字节,然后将9位块提供给发送例程(或接收9比特块并验证奇偶校验)。要发送的消息在缓冲区中为8位二进制字节。 我正在研究BitArray函数,但是我如何能够利用奇偶校验位扩展每个消息字节,并用Python中的9位数据填充一个bitarray。有人有建议吗?

2 个答案:

答案 0 :(得分:0)

根据wave_add_serial()的文档,您需要设置bb_bits=9

http://abyz.co.uk/rpi/pigpio/python.html#wave_add_serial

然后:

  

对于bb_bits 9-16,每个字符将有两个字节。

因此,您需要提供使用9位数据格式化的数据以及双字节对中的7位无关数据。这应该让你的生活变得轻松,因为你的真实数据将被简单地扩展到原来的两倍字节,奇偶校验存储在每隔一个字节的第一位。

答案 1 :(得分:-1)

查看struct模块。您可以使用它来打包和解压缩二进制数据。