如何知道 QSerialPort 何时准备好接收 Qt5 中的更多数据?
How to know when QSerialPort is ready for more data in Qt5?
当我的串行设备准备好接收更多数据时,有什么方法可以通知我吗?
我正在实施一个程序,使用 QSerialPort 的 异步 API 通过串行向伺服控制器提供命令。程序可以运行,但我似乎遇到了拥塞。
在我的应用程序中,我保留了一个注册表,其中包含我希望以尽可能低的延迟与控制器同步的最新伺服位置。我尝试尽快将新数据推送到串行端口,这让我导致了我认为是数据的堆积,导致通信完全中断。
我的问题是,在异步模式下使用QSerialPort
时,当串口准备好以某种方式接收新数据时,我能收到通知吗?
我看到的唯一其他选择是使用 同步 模式并调用 waitForBytesWritten() 但我真的不想那样做。
注意:我研究过 serial port examples in the Qt5 documentation carefully, but the example for asynchronous write 没有提供我需要的信息,因为它在退出前执行一次性发送。
您可以收听信号 bytesWritten
并检查 bytesToWrite
以确定写入缓冲区是否为空。两者都继承自QIODevice
.
当我的串行设备准备好接收更多数据时,有什么方法可以通知我吗?
我正在实施一个程序,使用 QSerialPort 的 异步 API 通过串行向伺服控制器提供命令。程序可以运行,但我似乎遇到了拥塞。
在我的应用程序中,我保留了一个注册表,其中包含我希望以尽可能低的延迟与控制器同步的最新伺服位置。我尝试尽快将新数据推送到串行端口,这让我导致了我认为是数据的堆积,导致通信完全中断。
我的问题是,在异步模式下使用QSerialPort
时,当串口准备好以某种方式接收新数据时,我能收到通知吗?
我看到的唯一其他选择是使用 同步 模式并调用 waitForBytesWritten() 但我真的不想那样做。
注意:我研究过 serial port examples in the Qt5 documentation carefully, but the example for asynchronous write 没有提供我需要的信息,因为它在退出前执行一次性发送。
您可以收听信号 bytesWritten
并检查 bytesToWrite
以确定写入缓冲区是否为空。两者都继承自QIODevice
.