• 14306阅读
  • 6回复

[提问]如何提取QbyteArray中的某些数据 [复制链接]

上一主题 下一主题
离线200300969
 

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

现在读出串口读出一段数据,存储在QByteArray中(QByteArray temp = myCom->readAll();)


EA代表一个类型,EB代表另一个类型,NUM 代表后面几个数据的个数,


判断EA/EB,并根据后面NUM的数值,提取后面几位数据,分类存放显示后面的X、Y、Z。


应该怎么做,小弟才接触不久求指点!越详细越好!感谢!


离线roywillow

只看该作者 1楼 发表于: 2012-12-25
QByteArray::at()可用来访问特定的字节
或者mid()截取一段
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线200300969

只看该作者 2楼 发表于: 2012-12-26
回 1楼(roywillow) 的帖子
大哥,有没有例子……

总感觉无从下手……新人
离线roywillow

只看该作者 3楼 发表于: 2012-12-26
回 2楼(200300969) 的帖子
quint8 qtcn = temp.at(0);//取得第0个字节
QByteArray part = temp.mid(3, 2);//从第3个字节开始取出2个字节
大概就这意思
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线200300969

只看该作者 4楼 发表于: 2012-12-27
回 3楼(roywillow) 的帖子
非常感谢!我回去学习下!
离线200300969

只看该作者 5楼 发表于: 2012-12-27
回 3楼(roywillow) 的帖子
请问前辈,如何知道AE是第几位字符的代码?谢谢! 我用temp.compare("AE")==0用不了……
离线roywillow

只看该作者 6楼 发表于: 2012-12-27
回 5楼(200300969) 的帖子
看文档
你从哪编出来的一个compare函数啊……
找找QByteArray有没有find函数
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个