0

当我的串行设备准备好接收更多数据时,有什么方法可以通知?

我正在实现一个程序,该程序使用QSerialPort的异步API通过串行向伺服控制器提供命令。该程序有效,但似乎我遇到了拥堵。

在我的应用程序中,我保留了一个最新伺服位置的注册表,我希望以尽可能低的延迟与控制器同步。我尝试尽快将新数据推送到串行端口,这让我想到了我认为的数据累积,这使得通信完全中断。

我的问题是,当串行接口准备好以某种方式接收新数据时,我可以QSerialPort异步模式下收到通知吗?

我看到的唯一其他选择是使用同步模式并调用waitForBytesWritten()但我真的不想这样做。

注意:我仔细研究了 Qt5 文档中的串口示例,但是异步写入的示例没有提供我需要的信息,因为它在退出前执行了一次发送。

4

1 回答 1

1

您可以收听信号bytesWritten并检查bytesToWrite以确定写入缓冲区是否为空。两者都继承自QIODevice.

于 2016-04-25T13:25:34.810 回答