我目前正在python中编写一个小工具来监控串行线路上的通信。这用于调试通过rs232连接的一些硬件,因此能够看到完全通过线路的内容是非常重要的。如何使用pyserial检查奇偶校验错误?
具体而言,我想知道是否存在使用pyserial查找奇偶校验位值的平台无关方式。我非常希望不需要termios
来执行此操作,因为这在某些Windows机器上使用。
答案 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()