qextserialport在Windows上删除数据我能做些什么?

2024-04-28 14:01:36 发布

您现在位置:Python中文网/ 问答频道 /正文

背景

目前,我使用TelosB motes来收集传感器数据,然后通过其USB串行端口以115200波特传输数据。在

过去,我用Python开发了与MoTE接口的程序,但是Python的吉尔有线程问题,只能通过不使用Python来解决(我需要在最初测试阶段之后的并发),所以我转到C++/Qt。我花了很多时间在Qt上,因为我没有事先的知识,学习了Qt的大多数最佳实践,并使一切都完美地工作。除了这个问题。在

问题

当我试图读取端口时,如果有大量数据通过,一些数据集将神秘地出错,导致我的项目中的丢失率高于预期。在

当我使用qextserialport时会发生这种情况,但使用pySerial时不会发生这种情况。在

这就是我如何用qextserialport初始化端口:

port.setName("COM3");
port.setQueryMode(QextSerialPort::EventDriven);
port.setBaudRate(BAUD115200);
port.setParity(PAR_NONE);
port.setDataBits(DATA_8);
port.setStopBits(STOP_1);
port.setFlowControl(FLOW_OFF);

以及pySerial:

^{pr2}$

问题

所以我怀疑这两个库初始化端口的方式不同,但我没有串行编程的经验,可能是错误的。在

有人知道是什么导致了这个错误吗?在


Tags: 数据端口port错误情况传感器qtusb
1条回答
网友
1楼 · 发布于 2024-04-28 14:01:36

结果我错误地使用了QextSerialPort::bytesAvailable(),而不是{}。我在另一个问题中看到了这一点,它帮助我消除了在等待超时时阻塞应用程序的错误消息,并且

韦斯的评论也解决了我的另一个问题,那就是mote没有足够的内存来存储所有的数据,这导致数据丢失。在

相关问题 更多 >