• 10847阅读
  • 4回复

[提问]关于QByteArray中提取数据 [复制链接]

上一主题 下一主题
离线reynoldxu
 

只看楼主 倒序阅读 楼主  发表于: 2011-02-12
有如下数据格式(16进制)
EA   X1  X2  Y1  Y2  Z1 Z2 SUM AE

EA包头,固定

X1,X2为一个16位的二进制补码数(X2高八位,X1低八位)
Y1,Y2为一个16位的二进制补码数(Y2高八位,Y1低八位)
Z1,Z2为一个16位的二进制补码数(Z2高八位,Z1低八位)

SUM=X1+X2+Y1+Y2+Z1+Z2

AE包尾,固定

现在读出串口读出一段数据,存储在QByteArray中(QByteArray temp = myCom->readAll();)
如:
EA EB FF F9 FF 56 00 38 AE
EA E9 FF FD FF 53 00 37 AE
EA E9 FF 00 FF 4C 00 33 AE

问题:
怎么样把里面的XYZ在通过SUM校验正确后,都提取出来?
离线reynoldxu

只看该作者 1楼 发表于: 2011-02-13
顶一下
离线2003wanglian
只看该作者 2楼 发表于: 2011-02-15
楼主问题解决了吗?我也遇到同样的问题
离线roywillow

只看该作者 3楼 发表于: 2011-02-15
从QByteArray提取数据可以直接通过下标访问的啊
要校验应该也得先提取出来一遍吧
XYZ应该是16位数据,并且是Little Endian,你可以自己去处理,或者用QDataStream设置成LittleEndian再读取
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线reynoldxu

只看该作者 4楼 发表于: 2011-02-15
回 3楼(roywillow) 的帖子
谢谢,尝试下
快速回复
限100 字节
 
上一个 下一个