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

时间:2017-02-24 15:58:57

标签: qt serial-port

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

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

如何让我的程序以10Hz读取一个完整的数据包。我一直在查看这些示例,但它们似乎都没有处理以固定速率接收数据的问题。我只是在寻找一个教程或一些代码示例,展示如何以特定间隔接收数据。

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

听起来您需要控制数据的发送方式,而不是控制数据的接收方式。如果arduino一直在不停地推送数据,那么尝试隔离其中一个"数据包"会更加尴尬。每100毫秒。

所以你需要让arduino每100毫秒发送一个数据包,从Qt你需要准确读取每个"数据包"是。如果你的"包"大小是统一的和固定的,那么你可以使用静态大小。如果没有,请在每个"数据包"。

中首先发送数据包的长度

可能仍然可以接收比您预期的更多或更少的数据,在这种情况下,您有责任切断或附加以生成单个"数据包"。