使用pyserial检查奇偶校验错误

时间:2014-10-08 15:43:55

标签: python serial-port pyserial

我目前正在python中编写一个小工具来监控串行线路上的通信。这用于调试通过rs232连接的一些硬件,因此能够看到完全通过线路的内容是非常重要的。如何使用pyserial检查奇偶校验错误?

具体而言,我想知道是否存在使用pyserial查找奇偶校验位值的平台无关方式。我非常希望不需要termios来执行此操作,因为这在某些Windows机器上使用。

1 个答案:

答案 0 :(得分:0)

我用Pi上的GPIO4逐位监控了奇偶校验。

灵感here

我的解决方案是在第二个字节中输出奇偶校验位,并将其全部写入文件:

import time
import pigpio # http://abyz.me.uk/rpi/pigpio/python.html

RXD=4 # number of GPIO pin

pi = pigpio.pi()

if not pi.connected:
    exit(0)

pigpio.exceptions = False # Ignore error if already set as bit bang read.

handle = pi.file_open("/home/pi/Documents/bit_bang_output.txt",pigpio.FILE_WRITE) #assuming that the file /opt/pigpio/access (yes without extension) contains a line /home/pi/Domcuments/* w

pi.bb_serial_read_open(RXD, 9600,9) # Set baud rate and number of data bits here. Reading 9 data bits will read the parity bit.

pigpio.exceptions = True

stop = time.time() + 5.0 # recording 5.0 seconds

while time.time() < stop:

    (count, data) = pi.bb_serial_read(RXD)
    if count:
        #print(data.hex(),end="")
        pi.file_write(handle, data.hex())

pi.bb_serial_read_close(RXD)

pi.stop()