[发明专利]一种二进制报文的声明式报文解码方法在审
申请号: | 202211421698.5 | 申请日: | 2022-11-14 |
公开(公告)号: | CN115834736A | 公开(公告)日: | 2023-03-21 |
发明(设计)人: | 李书红 | 申请(专利权)人: | 四川启睿克科技有限公司 |
主分类号: | H04L69/22 | 分类号: | H04L69/22;H04L1/00 |
代理公司: | 四川省成都市天策商标专利事务所(有限合伙) 51213 | 代理人: | 刘兴亮 |
地址: | 610000 四川省成都市中国(四川)*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 二进制 报文 声明 解码 方法 | ||
本发明公开了一种二进制报文的声明式报文解码方法,通过报文编码协议定义解析规则,然后调用解码方法即可完成对二进制报文的解析,且解析结果采用结构化方式保存,有利于解码数据的使用。解码规则描述数据结构让使用者声明式定义解码规则,当报文协议发生变化时,只需更改解码规则描述内容即可,使程序易于维护;不同协议报文可复用同一套解码方法库,使用者不必编写报文解析代码,可极大提高实现效率;与此同时,由于使用者不必编写报文解析代码,就不会产生因报文解析导致的BUG。
技术领域
本发明涉及通讯技术领域,尤其涉及一种二进制报文的声明式报文解码方法。
背景技术
在嵌入式应用领域,嵌入式产品内部各模块、模组间因协同任务需要而进行通讯的情况是非常普遍的,嵌入式产品内部模组间通讯会采用诸如:UART、I2C、SPI等通讯技术,这些通讯技术普遍存在通讯效率较低的问题,因此,在通讯时一般会尽量收缩通讯载荷。基于此,嵌入式软件在处理通讯逻辑时,一般都会将载荷要传递的信息项以按位、有序、LSB(或FSB)的模式编码成二进制报文后进行传输,且在部分信息项值较大或较小时(超过可用数位可表示范围)的情况下,需在编码前对数值进行简单的加、减、剩、除运算,将数值调整到数位可表范围内再编码成二进制数。当对端接模块收到二进制报文后,通常采用的方法为使用编程语言参照报文协议文档逐项获取二进制数位值,然后使用位移、四则运算等方式完成载荷数据的解析。
上述处理方式和流程可以很好完成协议解析任务,但缺点在于针对每一个协议都需要使用编程语言按协议规定以硬编码的方式来解码,有多少个协议就要硬编码多少次,协议有所变动时需要定位并修改源代码才能匹配上协议,而实现解码功能的编程过程中进行大量、重复的位操作和四则运算都容易使程序产生BUG。总而方之,传统的解码方法和过程效率不高,且极易产生BUG,其主要原因在于没有抽象出一种可以描述数据项解码规则的数据结构,并利用这样的数据结构去复用位运算和四则运算等动作。
发明内容
本发明提供一种二进制报文的声明式报文解码方法,针对传统二进制报文解析方法因没有抽象和定义报文解码规则进行自动解码,导致报文解码实现效率不高、易产生BUG、不易维护等问题,定义了一种描述二进制报文解码描述方法,并以该方法为基础,利用动态编程语言可动态定义类成员变量的语言特性,实现了一个自动解码的算法库,以彻底解决二进制报文解码实现效率不高、易产生BUG、不易维护等问题。本发明仅需根据报文编码协议定义解析规则,然后调用解码方法即可完成对二进制报文的解析,且解析结果采用结构化方式保存,有利于解码数据的使用。
本发明通过以下技术方案来实现上述目的:
一种二进制报文的声明式报文解码方法,包括以下步骤:
步骤1,定义解码规则,解码规则包括如下元素:
元素一:报文信息项占用的最大索引值,整数类型,名为:maxDataIndex;
元素二:解码规则集,字典类型,key为信息项名称,值为该信息项的“信息项解码规则”,该元素命名为:rule;
步骤2,合并和分类所有解码规则;
步骤3,接收报文数据;
步骤4,根据报文头选择对应的解码规则;
根据报文编码规则,从报文数据中取出当前报文的“指令类型”信息,然后从步骤2所产生的规则集中选择出当前报文“指令类型”对应的解码规则;
步骤5,执行解码过程。
进一步方案为,所述步骤1中,信息项解码规则包含如下元素:
若信息项数据类型为字符串,则包括:“起始字节索引值”和“所占字节数”两个元素;
若信息项数据类型为数值,则至少包括:“起始字节索引值”、“起始位索引值”和“所占比特位数”三个元素;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川启睿克科技有限公司,未经四川启睿克科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211421698.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种车载充电桩的充电订单管理方法
- 下一篇:一种通断控制装置