我目前正在使用以下命令在 Mac OS 终端中显示嵌入式设备的串行输出
screen /dev/tty.SLAB_USBtoUART 115200
我不想在终端中显示输出,而是希望能够在我的 C++ (qt) 应用程序中逐行读取它,以便我可以处理它并在 GUI 中显示它。
我试图创建一个 QProcess 对象来运行上面的 screen 命令,但 screen 失败,说“必须连接到终端”。
有没有办法可以“伪造”与终端的连接,以便 QProcess 能够成功运行 screen 命令?我不需要输入任何命令,我只需要捕获嵌入式设备正在写入的输出。
最佳答案
您可以使用 boost serial port读取传入的数据。请注意,这必须在线程中或使用 Qt Concurrent 完成。 .您可以从此线程发送 signals连接到数据显示器的正确插槽的那个将获取数据并显示它。但是,Qt 还提供了一个可以使用的串行端口类:QSerialPort .我建议使用 QTextEdit作为您的显示小部件和 QTextEdit::append为您的插槽。
关于c++ - 如何在不将 'screen' 连接到终端的情况下运行它,以便我可以在 C++ (qt) 应用程序中捕获输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55805338/