【发布时间】:2013-11-16 09:40:56
【问题描述】:
当我从 COM 端口读取 QByteArray 类型的对象中的字节流后,我现在遇到一种情况,并且只有 1 个字节的数据。但是一个非常不友好的协议需要从 COM 端口读取数据后有 9 位数据。
但根据win32API函数:ReadFile(....)我只能从COM流中读取字节= 1,2,3.....
所以 - 这就是为什么我在这个函数的帮助下只读取 8 位 = 1 个字节,并且在一些奇偶校验位操作的帮助下,我正在计算广义数据的第 9 位的值...
所以一方面我有 1 个字节(8 位)的正确(真实)数据 - 另一方面我有第 9 位的值(0 或 1); 2 对象总之必须创造广义数据的价值。
如何将这些对象组合成一个最终的QByteArray 对象?因为全局函数ReadComData 可以而且必须只返回QByteArray 对象。
【问题讨论】:
-
我不确定我是否理解正确。如果您的 COM 端口中只有 9 位数据,您似乎根本无法读取它们。但如果端口中有许多 9 位项,则可以将它们读入 QByteArray。它将包含所有数据,但很难访问每个 9 位项目,因为项目在两个字节之间共享并且未对齐。这是你的问题吗?
-
he-he)) 我可以通过函数 ReadFile() 读取 9 位数据 - 像往常一样 8 位。我可以从奇偶校验位中获得第 9 位。所以 - 不要在黑盒子里找到黑猫,尤其是在根本没有猫的时候))。问题是关于将包含 8 位 = 1 字节的 QByteArray 对象与独立的数据位 - 0 或 1 相结合的能力。那么 - 如何做到这一点?如何编写操作 QByteArray = QByteArray+BitOfData.
标签: qt qbytearray