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