我正在使用Qt中的qextserialport类来实现设备之间的串行传输。现在,我需要使用串口在通过USB连接的设备之间发送文件。在过去的几周里,我已经将序列端口用于各种函数,但我不知道从哪里开始实现它。我考虑以事件驱动的方式读取数据,直到没有更多的数据可读,事先确定文件的大小(字节数),并将其与数据一起发送,这样就可以清楚地知道数据是否丢失。我还有一个计算CCIITT 16位校验和的正确函数,所以我也可以用它来进行校验。因此,我的问题是:
有没有人可以给我发一个网站的链接,可以帮助我解决我的问题,并向我解释什么是通过Qt中的qextserialport类发送和接收文件的最简单有效的方法。任何帮助都将是巨大的!
发布于 2014-01-24 14:55:38
你需要一个协议。一个简单的例子可以是:
您可能希望添加诸如文件日期和校验和之类的信息。更高级的方法是将文件拆分成块,这样如果出现传输错误,就不必重新发送所有内容。等。
此外,学习像Kermit,xmodem,zmodem这样的协议,看看它在调制解调器和BBS时代是如何做到的。也许可以使用现有的协议,而不是创建自己的协议。
注意:虽然你可以使用QDataStream,但它需要可靠的通道,所以它并不像一开始看起来那么简单(需要额外的缓冲)。
https://stackoverflow.com/questions/21325314
复制相似问题