首页 > 文化

嵌入式开发中,自定义协议的解析与组包

来源:面包芯语 时间:2023-08-02 00:25:42

比如针对下面的这样一个协议:


(资料图)

数据在发送时涉及到一个大小端的概念,大小端是针对多字节数据的传输,比如上述协议中字段1,假设两字节内容为0x0001,先发送0x01后发送0x00,称为小端模式;先发送0x00后发送0x01,称为大端模式。

假设字段1内容为0x001,字段2内容为0x40533333(对应为3.3)

假设按照小端方式发送,下面是帧数据:

55 AA 01 00 33 33 53 40 ED

下面来看看如何解析:

简单来说就是硬来,按照数组的先后顺序逐个重组解析,如果协议比较长,代码里会充斥着很多的数组下标,一不小心就数错了。而且如果更改协议的话,代码要改动很多地方。

后来有人告诉我可以定义个结构体,然后使用memcpy函数直接复制过去就完事了。

再后来,又见到有人用如下代码实现:

除了上述2个函数,完整的转换包含以下函数,就是将Bytes转换为不同的数据类型,以及将不同的数据类型转换为Bytes。

组包的过程和解析的过程正好相反,这里不再赘述。你在开发中遇到这种问题时,又是如何处理的呢?欢迎留言讨论!

相关稿件

嵌入式开发中,自定义协议的解析与组包

江淮造100万元级MPV

港零售管理协会料需1年时间市道才回复正常

市场监管总局答上证报:企业注销便利化取得明显成效

新华财经|东北:助力乡村振兴 金融惠农瞄向特色产业链

两部门:紧急调用排灌机械设备抢排田间积水

台风“卡努”会影响邯郸吗?(持续更新)

这些账号因蹭炒涉企热点事件、传播涉企不实信息被禁言、关闭

今晚8点,14个项目、2万余张大运会门票开售!

成都大运会男子10米气手枪冠军胡凯 是土生土长的安庆小伙

未来两天计划停水通知!涉及安徽安庆市这两个地方

降价3.7万威力巨大!大众ID.3 7月订单直接破万 连德国人都吃醋了

成都大运会丨篮球——男子预赛A组:中国队不敌中国台北队

天津地铁赠票活动常见疑问解答

未来77天,四大生肖生意顺水行舟,福星高照,迎来出彩新生活

厦门首个质量基础设施服务站点落地灌口

上海黄浦:金融市场交易总额约占上海市70% 汇聚721家持牌金融机构

泉山房地产竞得上海二批次第二轮土拍浦东惠南地块 溢价率约0.28%

6台风卡努将登陆我国 8月1日登陆浙江

吉林好人 引领风尚|李婉薇:志愿服务近十载 温暖家乡数万人

公羊救援队驰援河北涿州,直升机预计下午飞抵

冰箱冷藏室结霜是什么原因造成的 冰箱冷藏室结霜是什么原因引起的

opec是什么组织 opec是什么组织标志含义

全国铁路暑运7月发送旅客超4亿人次

把调研成果转化为解决问题推动发展的实际行动 以新疆高质量发展新成效检验主题教育成果

便血不可轻视 久拖不治危害大

恭喜武汉三镇!告别短板!中超迎2000万巴西高锋霸,冲亚冠决赛

有竹子精神的人有哪些职业(有竹子精神的人)

浙江义乌一车辆撞上路柱起火,警方通报:驾驶员经抢救无效死亡

60年前,毛主席为这个连队写下光辉诗篇《八连颂》