我正在尝试开发一个应用程序来通过串行端口与 pyserial 通信两台计算机。
基本思想是双向发送多个命令。
Computer A ---- INI ----> Computer B
Computer A <--- OKINI --- Computer B
Computer A ---- OK -----> Computer B
计算机 A 的代码是:
s = serial.Serial(port='/dev/ttyUSB0', baudrate=19200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=0, rtscts=0)
s.flushOutput()
s.write("*INI,COMPUTER_A*")
s.flushInput()
data = s.read(18)
if data:
print data
s.flushOutput()
s.write("*OK,COMPUTER_A*")
s.close()
计算机 B 的代码是:
s = serial.Serial(port='/dev/ttyUSB0', baudrate=19200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=0, rtscts=0)
s.flushInput()
data = s.read(16)
if data:
print data
s.flushOutput()
s.write("*OKINI,COMPUTER_B*")
s.flushInput()
data2 = s.read(15)
if data2:
print data2
s.close()
两种代码有时都能正常工作。有时执行会输出垃圾。我不知道是什么问题。使用 PySerial 从串行端口发送和写入我做错了什么?
在串口中读写是否更好实现一个线程程序用一个线程进行监听和读取,一个用于监听,另一个用于写?