gpt4 book ai didi

python - 在后台进程中捕获串行数据

转载 作者:行者123 更新时间:2023-11-28 20:09:10 25 4
gpt4 key购买 nike

我目前正在尝试在 python 脚本中捕获串行数据。我打算开始捕获串行端口上捕获的所有数据的日志,同时脚本的其余部分继续与我正在测试的系统交互。

如果我使用 pyserial,我相信它最终会阻止我想执行的其余测试,直到我完成日志记录。

我考虑过的选项是:

  • 编写另一个脚本以使用 pyserial 捕获日志,使用 subprocess.Popen() 调用此脚本
  • 使用内置的 unix 工具,例如 tail 或 cat,并使用 subprocess.Popen() 调用它们

我确信我可以找到一种方法让其中任何一个发挥作用,但如果有人知道更直接的方法,那么我很想知道。

提前谢谢你。

最佳答案

为什么要创建另一个进程来从 pySerial 读取数据?对于非阻塞读取,您可以在串行类中配置超时。例如

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 的开销,因此不推荐用于此任务。

关于python - 在后台进程中捕获串行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11609994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com