» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[其他] C++编程又遇到难题了,求大神提示解决思路。。。。。。

PC通过串口链接下位机传数据,就是类似:
0x11 0x22 0x33 0x44.....

要解析成可读的数据,但是每次传输过来解析的方式都不一样,要根据一个配置文件来处理。

比如某次通信,过来100个byte,这里面可能有int32,int16,float,double等等,但是类型,字节位置,乃至高低字节都不固定!

可能1~4字节组一个float,8~5是组一个int32,9~10组一个uint16等等,下次通信的时候可能又都变了!

这些东西是靠一个ini文件规定的(具体内容还可以跟甲方再商量)

[globe]
length=100
[1]
type = float
name = XXX
start_byte =1
end_byte =4
[2]
type = int32
name = YYY
start_byte =8
length_byte =5
[3]
type = uint16
name = ZZZ
start_byte = 9
length_byte = 12

要弄成这样是因为甲方还有很多甲方,甲方要适应各种情况。。。

求各位大神给个解决思路。。。

小弟拜谢。。


TOP

posted by wap, platform: iPad
引用:
原帖由 @装个逼就跑  于 2016-6-17 00:41 发表
斗胆给个建议,求楼下高手们轻喷。
规定发送格式,让甲方每次发一个数据前先发个字符串说明数据类型,比如1是int 2是float 3是字符串之类,然后再发数据,你这边只要做成选择判断然后进入对应的程序段就可以了,这么做的好处是后续也容易进行维护,有新情况的时候临时加一块程序段就行了。
琢磨了一下,如果每发一个数据就要说数据类型太麻烦了,可以这样,比如有十个数据,前三个都是int16,那么发第一个的时候说明数据类型就行了,第二个第三个不用说明,你这边默认还是int16,等第四个数据类型发生变化的时候再声明一次就行了。
但是如果你做的系统不支持长跳转的话我也没啥好办法了……

本帖最后由 装个逼就跑 于 2016617 00:48 通过手机版编辑
数据和说明不是一个渠道。。。

数据是串口

说明是一个文件,存在本地硬盘里

数据那头不能定制,接a设备就需要搭配a的ini,接b设备就需要搭配b的ini(同一设备也可能有若干工作模式,对应不同ini)



TOP

posted by wap, platform: Android
引用:
原帖由 @kpf190  于 2016-6-17 01:32 发表
你不是有解决方法了吗?还要什么建议?
这些都是甲方给的输入。。

现在数据和ini都读进来了,后面不知道该怎么办了,用代码怎么实现?


TOP

发新话题
     
官方公众号及微博