我目前正在尝试在python脚本中捕获串行数据。我打算开始捕获串行端口上捕获的所有数据的日志,同时脚本的其余部分继续与我正在测试的系统交互。
如果我使用pyserial,我相信它最终将阻止我想要执行的其余测试,直到我完成日志记录。
我考虑的选择是:
我相信我能找到办法让其中任何一种工作,但如果有人知道更直接的做法,那么我很想知道。
提前谢谢。
答案 0 :(得分:6)
为什么要创建另一个从pySerial读取数据的过程? 对于非阻塞读取,您可以在串行类中配置超时。 e.g。
ser = serial.Serial()
ser.baudrate = 19200
ser.port = 0
ser.timeout = 2 #By default, this is set to None
ser.open()
另请参阅包装类以供参考。
http://pyserial.sourceforge.net/examples.html#wrapper-class
您可以运行一个线程来继续从串行读取数据并将其更新到缓冲区。
创建另一个进程会占用IPC的开销,不建议用于此任务。
答案 1 :(得分:3)