QSerialPort:如何使用接收到的字节数调整 readysignal 的发射时间
QSerialPort: how to adjust the emiting time of readysignal using number of bytes received
我正在使用 Qserialport 每 10 毫秒接收一个 7 字节的数据。波特率为 115200。我使用信号(readyread)和插槽(单独函数中的 readLine)方法。 ready read 信号仅每 16ms 发出一次。但我的设备以 10 毫秒的间隔发送数据。如何以 10ms 的间隔接收样本。如何使 readyread 信号以 10ms 的间隔发出。谢谢
一般情况下,即使接收到一个字节,也会发出readyread
信号。但响应时间取决于许多因素,例如驱动程序、CPU 负载或 Qt 事件循环的繁忙程度。
当串口检测到接收时,将读取驱动缓冲区中的所有数据,然后发出信号readyRead()
。从驱动程序检测到接收到它尝试读取所有缓冲区的那一刻起,可能会有更多的字节到达端口。
如果你想在一定的时间间隔读取数据,你不需要使用readyRead
信号。您可以让 QTimer
具有 10 毫秒的间隔,并将其 timeout
信号连接到您通过调用 readAll()
.
读取数据的某个插槽
我正在使用 Qserialport 每 10 毫秒接收一个 7 字节的数据。波特率为 115200。我使用信号(readyread)和插槽(单独函数中的 readLine)方法。 ready read 信号仅每 16ms 发出一次。但我的设备以 10 毫秒的间隔发送数据。如何以 10ms 的间隔接收样本。如何使 readyread 信号以 10ms 的间隔发出。谢谢
一般情况下,即使接收到一个字节,也会发出readyread
信号。但响应时间取决于许多因素,例如驱动程序、CPU 负载或 Qt 事件循环的繁忙程度。
当串口检测到接收时,将读取驱动缓冲区中的所有数据,然后发出信号readyRead()
。从驱动程序检测到接收到它尝试读取所有缓冲区的那一刻起,可能会有更多的字节到达端口。
如果你想在一定的时间间隔读取数据,你不需要使用readyRead
信号。您可以让 QTimer
具有 10 毫秒的间隔,并将其 timeout
信号连接到您通过调用 readAll()
.