Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
让QT接收以10Hz发送的串行数据_Qt_Serial Port - Fatal编程技术网

让QT接收以10Hz发送的串行数据

让QT接收以10Hz发送的串行数据,qt,serial-port,Qt,Serial Port,我是QT的新手,参与了一个项目,我们正在编写一个应用程序,通过X-Bee无线电接收来自多个传感器的数据。我一直在使用测试传感器和Arduino Mega ADK。Arduino设置为从传感器接收数据,然后通过串行端口将其转发到我的QT应用程序 我目前能够接收此传感器数据,并正在努力正确存储数据,以满足应用程序的需要。 问题是,我希望接收一个“数据包”,但缓冲区似乎有多个数据块堆叠起来,准备读取 如何让我的程序以10Hz的频率读取一个完整的数据包。我已经看过了这些示例,但它们似乎都没有处理以固定速

我是QT的新手,参与了一个项目,我们正在编写一个应用程序,通过X-Bee无线电接收来自多个传感器的数据。我一直在使用测试传感器和Arduino Mega ADK。Arduino设置为从传感器接收数据,然后通过串行端口将其转发到我的QT应用程序

我目前能够接收此传感器数据,并正在努力正确存储数据,以满足应用程序的需要。 问题是,我希望接收一个“数据包”,但缓冲区似乎有多个数据块堆叠起来,准备读取

如何让我的程序以10Hz的频率读取一个完整的数据包。我已经看过了这些示例,但它们似乎都没有处理以固定速率接收数据的问题。我只是想找一个教程或一些代码示例来说明如何以特定的间隔接收数据

(我过去问过一些不好的问题,如果这个问题不好,请告诉我如何改进)


提前感谢。

听起来您需要控制数据的发送方式,而不是控制数据的接收方式。如果arduino一直在推送数据,那么每100毫秒尝试隔离一个这样多的“数据包”将更加困难

因此,您需要让arduino每100毫秒发送一个数据包,并且从Qt您需要准确读取每个“数据包”的字节数。如果您的“数据包”大小是统一和固定的,那么您可以使用静态大小。如果不是,则在每个“数据包”中首先发送数据包的长度


接收的数据可能比您预期的多或少,在这种情况下,您有责任删除或附加数据以生成单个“数据包”。

谢谢,这是有意义的。因此,我应该在我的应用程序中创建一个缓冲区,该缓冲区的大小与我的静态长度数据包的大小相同。当缓冲区已满时,抓取缓冲区中的数据,以便捕获下一个数据包?也请记住不要丢弃多余的数据,这些数据将形成下一个数据包。