0
当我的串口设备准备好接收更多数据时,有什么方法可以通知吗?如何知道QSerialPort何时准备好Qt5中的更多数据?
我正在实现一个程序,该程序通过使用异步 API的QSerialPort通过串行向伺服控制器发送命令。该计划有效,但似乎我正在经历拥堵。
在我的应用程序中,我保持最新伺服位置的注册表,我希望尽可能以低延迟与控制器同步。我试图以最快的速度将新数据推送到串行端口,这导致了我所认为的数据累积,导致通信全部中断。
我的问题是,当串行接口准备好接收新数据时,我可以通知QSerialPort
在异步模式?
我看到的唯一的其他选择是使用同步模式并致电waitForBytesWritten()但我真的不想这样做。
注意:我已仔细研究了serial port examples in the Qt5 documentation,但example for asynchronous write未提供我需要的信息,因为它在退出前执行一次性发送。
你的意思是从bytesWritten处理程序中检查bytesToWrite? –
是的。可以多次调用bytesWritten处理程序,但只有当bytesToWrite达到零时,写入缓冲区才会为空。 –
我已经让自己的计数器不知道bytesWritten(),但是这并不能很好地工作。只需将该变量替换为该调用,并且一切都很华丽。 –