当我的串口设备准备好接收更多数据时,有什么方法可以收到通知吗?
我正在实施一个程序,使用QSerialPort的异步 API通过串口向伺服控制器提供命令。该计划有效,但似乎我遇到了拥堵。
在我的应用程序中,我保留了一个最新伺服位置的注册表,我希望与控制器同步,并尽可能降低延迟。我试图尽可能快地将新数据推送到串口,这让我想到了一种数据的积累,这使得通信完全崩溃。
我的问题是,在异步模式下使用QSerialPort
时,如果串行接口准备好以某种方式接收新数据,我是否可以收到通知?
我看到的唯一其他选项是使用同步模式并调用waitForBytesWritten()但我真的不想这样做。
注意:我仔细研究了serial port examples in the Qt5 documentation,但example for asynchronous write没有提供我需要的信息,因为它在退出前执行一次性发送。
答案 0 :(得分:1)
您可以收听信号bytesWritten
并检查bytesToWrite
以确定写缓冲区是否为空。两者都继承自QIODevice
。