背景
目前,我使用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}$问题
所以我怀疑这两个库初始化端口的方式不同,但我没有串行编程的经验,可能是错误的。在
有人知道是什么导致了这个错误吗?在
结果我错误地使用了}。我在另一个问题中看到了这一点,它帮助我消除了在等待超时时阻塞应用程序的错误消息,并且
QextSerialPort::bytesAvailable()
,而不是{韦斯的评论也解决了我的另一个问题,那就是mote没有足够的内存来存储所有的数据,这导致数据丢失。在
相关问题 更多 >
编程相关推荐