[发明专利]基于协议模型的协议编解码方法无效
申请号: | 201010189023.3 | 申请日: | 2010-05-27 |
公开(公告)号: | CN101854231A | 公开(公告)日: | 2010-10-06 |
发明(设计)人: | 舒念 | 申请(专利权)人: | 武汉虹信通信技术有限责任公司 |
主分类号: | H04L1/00 | 分类号: | H04L1/00 |
代理公司: | 武汉开元知识产权代理有限公司 42104 | 代理人: | 唐正玉 |
地址: | 430074 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 协议 模型 解码 方法 | ||
技术领域
本发明涉及通信和控制领域中有关协议的处理方法,尤其涉及协议的编解码方法。
背景技术
协议编解码是基于协议进行交互通信和控制应用中涉及到的一个处理过程。一般的协议定义采用面向字节的形式,包含各种内容的数据被定义为字节形式组织在协议帧中,并在协议帧中从前向后依序排列。传统协议编解码方法为协议规定的字节位顺序在协议帧中从前向后依序逐字节做编码和解码,由于编码时需要对协议帧逐字节编写代码,并且对于协议中重复出现并具有相同格式的字节位(例如1字节无符号整数、布尔型等),仍然需要再次编写代码,因此这种协议编解码方法代码量大、冗余度高、复用性差。另外,当协议变更时,这种协议编解码方法需要重写更改代码,不利于代码维护和更新升级。
因此,有必要提供一种改进的协议编解码方法来克服现有技术的缺陷。
发明内容
本发明的目的是提供一种基于协议模型的协议编解码方法,编码时代码量小、冗余度低、复用性好,并能进行程序的升级和维护。
为了实现上述目的,本发明提供了一种基于协议模型的协议编解码方法,包括如下步骤:(1)对协议内容的数据进行分类,将同类数据作为一种数据类型字段,将协议内容表示成多个连续的数据类型字段,形成协议模型;(2)按照从前至后的顺序,对协议模型的数据类型字段进行排序得到数据类型字段的排列顺序号,归纳同排列顺序号数据类型字段的数据长度,采用数据类型字段的排列顺序号、数据类型、数据长度的链接形式存储协议模型;(3)根据与协议模型中的排列顺序号对应的数据长度和数据类型对对应数据类型字段的数值进行编码,形成子帧,按照排列顺序号从小到大的顺序拼接所述子帧形成协议编码后的协议帧;(4)按照排列顺序号从小到大的顺序,读取排列顺序号对应数据类型字段的数据类型和数据长度,在协议帧中读取对应所述排列顺序号并满足所述数据长度的协议帧数据,根据所述数据长度和所述数据类型对读取的协议帧数据进行反向解码,得到一字段值,顺序号读取完毕后所有字段值为协议解码后的协议帧。
在本发明的一个实施例中,所述步骤(1)中对协议内容的数据进行分类具体为:对协议内容的数据按照数据类型进行分类,所述数据类型包括数值型、字符串型、布尔型、比特型。
在本发明的另一个实施例中,所述步骤(1)中对协议内容的数据进行分类具体为:将协议内容中不属于常规数据类型的数据自定义为多种数据类型;将协议内容中不属于常规数据类型的数据按照自定义的类型进行分类。
在本发明的再一实施例中,所述步骤(3)具体为:将初始子桢定义为空;按照协议模型中排列顺序号从小到大的顺序,读取当前排列顺序号对应数据类型字段的数据类型和数据长度;根据数据长度和数据类型的编码格式对对应数据类型字段的数值进行编码,形成一子帧;将该子桢拼接在上一子桢的帧尾部,直至排列顺序号读取完毕,所有子帧拼接形成的帧为协议编码后的协议帧。
在本发明的又一实施例中,所述步骤(4)具体为:按照协议模型中排列顺序号从小到大的顺序,读取当前排列顺序号对应数据类型字段的数据类型和数据长度;将数据读取指针指向协议帧首字节,在协议帧中从当前数据读取指针处读取满足所述数据长度的协议帧数据,根据所述数据长度和所述数据类型的编码格式对读取的协议帧数据进行反向解码,得到一字段值;以所述数据长度为幅度移动数据读取指针,直至排列顺序号读取完毕,所有字段值为协议解码后的协议帧。
与现有技术相比,本发明基于协议模型的协议编解码方法将协议内容看作是一串具有特定信息格式字段(数据类型字段)的集合,进而将协议内容定义为具有这些数据类型字段的协议模型,通过对协议模型的数据类型字段进行编码得到协议帧进而实现协议编码,通过对编码后的协议帧进行解码实现协议解码。本方法将协议中相同格式的字节位归纳为数据类型字段描述,其编解码可以在同一段代码中实现,避免了重复编写,大大减少代码量及冗余度,复用性较好。另外,采用定义协议模型的灵活方式取代现有逐字节对位式的硬编码方法,把协议结构与协议编解码过程相分离,并且模式化代码相对稳定,当协议变更时,只需修改协议模型,无须修改模式化代码以及基于协议模型的编解码流程,使程序代码易于维护和更新升级。
通过以下的描述并结合附图,本发明将变得更加清晰,这些附图用于解释本发明的实施例。
附图说明
图1为本发明基于协议模型的协议编解码方法的流程图。
图2展示了图1所示基于协议模型的协议编解码方法中协议内容的数据和协议模型之间的对应关系。
图3为图1所示基于协议模型的协议编解码方法中的协议模型记录表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉虹信通信技术有限责任公司,未经武汉虹信通信技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010189023.3/2.html,转载请声明来源钻瓜专利网。