首页 > 能源

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

来源:面包芯语 时间:2023-08-02 10:59:38

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

数据在发送时涉及到一个大小端的概念,大小端是针对多字节数据的传输,比如上述协议中字段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。

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

相关稿件

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

吉林省水利厅将水旱灾害防御应急响应提升至Ⅲ级

大运会射击赛场各国青年同台竞技

2023昆明网球公开赛火热开拍

永葆军人本色 荷塘区举行欢庆“八一”主题联欢会活动

2023西城男孩苏州演唱会有直播吗?在哪看

经济观察:工业上扬9.7%,制造大市打破转型“天花板”

泗县为高校毕业生送上就业“暖心礼包”

电报解读|巨无霸ETF规模再创新高 大金融板块受资金关注

山东港口日照港王恩新:退伍不褪色,扎根一线书写老兵风采

健康中国丨暴雨、洪水过后,如何防病保健康?

邮储银行沧州市分行 金融赋能企业制造变智造

北京连续强降雨,通信抢修人员已就位,多家上市公司回应生产情况

和田青白玉不润

孝昌陡山:种出“黄金果” “桃”醉在陆山

芯丝翠倍舒润肤乳“酸”超标被罚

中英藏印条款(拉萨条约及中英续订藏印条约)

镇江推出定制盲文“暖心电卡”服务

三星开始为iPhone 15量产OLED显示屏

鸢尾植物过冬指南送女儿一个难忘的十四岁礼物

中植企业集团:有不法分子以“中植集团退款”等为名实施诈骗

国铁集团:针对部分地区严重汛情果断采取主动避险措施

太平洋健康险推出税收优惠型终身防癌医疗险,可为带病体终身保障

首次长三角水鸟同步调查结果出炉 记录到全球受胁物种16种

科技助力国网北京增强防汛数字化指挥能力

练塘这座元代古桥修缮完工,快来古镇走走!

多部门出台促进民营经济发展近期若干举措

八一访“神兵”:南麂岛上,23年海防坚守一线

俯可以组什么词(俯可以怎么组词)

北京暴雨到底从哪里来的?华北暴雨接踵而至,极端天气何时休?