CN108366050A - 一种通用通信协议处理方法 - Google Patents
一种通用通信协议处理方法 Download PDFInfo
- Publication number
- CN108366050A CN108366050A CN201810071576.5A CN201810071576A CN108366050A CN 108366050 A CN108366050 A CN 108366050A CN 201810071576 A CN201810071576 A CN 201810071576A CN 108366050 A CN108366050 A CN 108366050A
- Authority
- CN
- China
- Prior art keywords
- protocol
- file
- word
- general xml
- communication protocol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/03—Protocol definition or specification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种通用通信协议处理方法,包括以下步骤:S1、构建通用通信协议处理***;S2、所述构建模块构建包含所有通信协议的通用XML协议文件;S3、所述关联数组获取模块将所述通用XML协议文件装入C++标准模板库的二维关联数组中,从而得到包含所述通用XML协议文件的关联数组;S4、当应用程序收到通信数据后,通用通信协议读取模块按照该通信数据的报文头选择关联数组中对应的协议,首先按照对应协议中字的起始/终止字节和起始/终止位获得字的十六进制值,再按照通信数据类型获得字的实际值;至此,完成通用通信协议处理。本方法取消了纸质协议的中间环节,可以有效降低协议解析错误率,降低人力和时间成本,同时避免了应用程序架构臃肿。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种通用通信协议处理方法。
背景技术
随着计算机自动化处理的飞速发展,各种应用程序越来越多,而应用程序之间数据交换依靠各种各样的协议才能正常工作。由于自动化处理业务种类的千差万别,导致协议种类也多种多样。传统的解决方式是进行数据交换的程序设计人员首先在纸面上形成数据交换协议,再进一步将纸质协议变成代码。由于计算机不能直接阅读纸质协议,这个设计过程需要经过设计思想—纸质协议—软件代码的工作过程。当协议众多的时候,由于设计思想—纸质协议和纸质协议—软件代码过程可能产生不匹配的情况,给应用程序引入错误。
发明内容
基于以上背景技术,本发明提供一种通用通信协议处理方法,解决现有方法工作量大、解析错误率高和容易导致应用程序结构臃肿的问题。
为实现上述目的,本发明采用以下技术方案:
一种通用通信协议处理方法,包括以下步骤:
S1、构建通用通信协议处理***;
所述通用通信协议处理***包括:用以构建通用XML协议文件的构建模块,用以获取包含通用XML协议文件信息的关联数组的关联数组获取模块,以及用以对通用XML协议文件进行读取的通用通信协议读取模块;
S2、所述构建模块构建包含所有通信协议的通用XML协议文件;
S3、所述关联数组获取模块将所述通用XML协议文件装入C++标准模板库的二维关联数组中,从而得到包含所述通用XML协议文件的关联数组;
S4、当应用程序收到通信数据后,通用通信协议读取模块按照该通信数据的报文头选择关联数组中对应的协议,首先按照对应协议中字的起始/终止字节和起始/终止位获得字的十六进制值,再按照通信数据类型获得字的实际值;
至此,完成通用通信协议处理。
优选地,S2中通用XML协议文件的构建具体为:应用程序间所有通信协议构成一个协议族,由于XML文件的标签能够自行定义且能够被计算机直接识别,因此构建模块将协议族转变为通用XML协议文件。
更优选地,构建模块将协议族转变为通用XML协议文件包括以下步骤:使用构建模块在通用XML协议文件中建立根节点、一级节点、二级节点和三级节点;所述根节点包含属性Name,其值为该协议族的标识;所述一级节点为每个独立的通信协议,所述二级节点为对应每个通信协议中的字,所述三级节点为对应字的属性;从而构建出包含所有通信协议的通用XML协议文件。
优选地,S3中由于通用XML协议文件是外存储介质上的文件,不易检索,因此关联数组获取模块将通用XML协议文件装入C++标准模板库的二维关联数组中具体包括:将第一维数组对应特定的通信协议,第一维数组的关键字确定为该特定协议在通用XML协议文件中一级节点的名称;将第二维数组对应特定的字,第二维数组的关键字确定为该特定的字在通用XML协议文件中二级节点的名称,第二维数组的关键字的值是一个结构,该结构中包含通用XML协议文件中相应三级节点的内容-对应字的属性;从而获取包含通用XML协议文件的关联数组。
本发明的有益效果
本发明提供的通用通信协议处理方法取消了纸质协议的中间环节,可以有效降低协议解析错误率,降低人力和时间成本,同时避免了应用程序架构臃肿。
具体实施方式
下面通过实施例对本发明进行具体描述,有必要在此指出的是本实施例只用于对本发明进行进一步说明,不能理解为对本发明保护范围的限制,该领域的技术熟练人员可以根据以上发明的内容做出一些非本质的改进和调整。在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明的通用通信协议分解方法的具体步骤为:
第一步构建通用通信协议处理***;所述通用通信协议处理***包括:用以构建通用XML协议文件的构建模块,用以获取包含通用XML协议文件信息的关联数组的关联数组获取模块,以及用以对通用XML协议文件进行读取的通用通信协议读取模块。
第二步建立通用XML协议文件;
本发明中使用的包含三级节点的XML文件表示一个协议族,根节点包含属性Name,其值为该协议族的标识,一级节点为每个独立的通信协议,二级节点为对应每个通信协议中的字。三级节点为对应每个字的名称、位置、类型等属性。三级节点项目对于每个字是完全一致的。
XML文件的一个例子如下:
<?xml version="1.0"encoding="gb2312"?>
=<Procotol Name="FL-1通信协议">
=<bc2trt Name="指控***到发射转塔***报文协议">
=<PackHdr>
<WordNo>0x471</WordNo>
<Name>报文头</Name>
<StartByte>0</StartByte>
<EndByte>0</EndByte>
<StartBit>0</StartBit>
<EndBit>7</EndBit>
<Sign>1</Sign>
<Type>1</Type>
<UnitVal>1</UnitVal>
<MinVal>0x7e</MinVal>
<MaxVal>0x7e</MaxVal>
<Note/>
</PackHdr>
</trt2bc>
</Procotol>
根节点Procotol是协议族,其名称可用其属性Name进一步说明。一级节点bc2trt是指控***到发射转塔***报文协议。二级节点PackHdr是标识协议中粒度最小的独立数据结构——字。三级节点包括编号(WordNo)、名称(Name)、在通信数据中的位置(StartByte、EndByte、StartBit、EndBit)、数据的类型(Sign、Type)、量化单位(UnitVal)、值域(MinVal、MaxVal)、说明(Note)等属性。通过字在通信数据中的位置、类型、量化单位可以获得字的实际值和类型,通过值域可以对数据有效性进行验证。字的实际值和类型的分解和获得见第三步。数据类型支持小于等于8字节的变量,包括有无符号的char、short、int和long、float、double以及字符串类型。XML文件三级节点内容是固定的。
第三步将通用XML协议文件读入关联数组;
当有应用程序使用本方法时,会建立一个协议族对象,该对象构造时将通用XML协议文件作为参数,通过通用XML协议文件建立协议族数据结构的关联数组。通过对通用XML协议文件的解析,遍历文件各级节点将通用XML协议文件内容装入关联数组,数组的每个变量是一个结构用来存贮每个字所对应三级节点中的所有属性。
使用通用的XML文件解析工具可以很方便的得到XML文件的每一级节点的值和属性。将一级节点的名称作为map关联数组的一维下标,二级节点名称作为map关联数组的二维下标,二维关联数组的每个变量是一个结构,这个结构用于存放协议中字的编号、名称、在通信数据中的位置、数据的类型、量化单位、值域、说明信息。获得字的属性结构变量值的方式如下:
bank[nodePrtc->name()][nodeWord->name()].EndByte=atoi(nodeWordInfo->value());
第四步使用通用协议分解方法得到要求的数据中字的值和数据类型;
使用通用接口协议分解中间件通过一级和二级节点名称可以检索到具体的字,通过通用协议分解方法可以得到计算机处理所需要字的数据类型和值。
上例中说明变量value是协议族中bc2trt协议的一个字PackHdr,它存放在通信数据data中。根据它的bank[prtc][word].Sign、bank[prtc][word].type确定变量类型,根据通信数据中的位置、数据的类型、量化单位得到字的最终值。
显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护范围。
Claims (4)
1.一种通用通信协议处理方法,其特征在于,包括以下步骤:
S1、构建通用通信协议处理***;
所述通用通信协议处理***包括:用以构建通用XML协议文件的构建模块,用以获取包含通用XML协议文件信息的关联数组的关联数组获取模块,以及用以对通用XML协议文件进行读取的通用通信协议读取模块;
S2、所述构建模块构建包含所有通信协议的通用XML协议文件;
S3、所述关联数组获取模块将所述通用XML协议文件装入C++标准模板库的二维关联数组中,从而得到包含所述通用XML协议文件的关联数组;
S4、当应用程序收到通信数据后,通用通信协议读取模块按照该通信数据的报文头选择关联数组中对应的协议,首先按照对应协议中字的起始/终止字节和起始/终止位获得字的十六进制值,再按照通信数据类型获得字的实际值;
至此,完成通用通信协议处理。
2.根据权利要求1所述的通用通信协议处理方法,其特征在于,S2中通用XML协议文件的构建具体为:应用程序间所有通信协议构成一个协议族,构建模块将协议族转变为通用XML协议文件。
3.根据权利要求2所述的通用通信协议处理方法,其特征在于,构建模块将协议族转变为通用XML协议文件包括以下步骤:使用构建模块在通用XML协议文件中建立根节点、一级节点、二级节点和三级节点;所述根节点包含属性Name,其值为该协议族的标识;所述一级节点为每个独立的通信协议,所述二级节点为对应每个通信协议中的字,所述三级节点为对应字的属性;从而构建出包含所有通信协议的通用XML协议文件。
4.根据权利要求1所述的通用通信协议处理方法,其特征在于,S3中关联数组获取模块将通用XML协议文件装入C++标准模板库的二维关联数组中具体包括:将第一维数组对应特定的通信协议,第一维数组的关键字确定为该特定协议在通用XML协议文件中一级节点的名称;将第二维数组对应特定的字,第二维数组的关键字确定为该特定的字在通用XML协议文件中二级节点的名称,第二维数组的关键字的值是一个结构,该结构中包含通用XML协议文件中相应三级节点的内容-对应字的属性;从而获取包含通用XML协议文件的关联数组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810071576.5A CN108366050A (zh) | 2018-01-25 | 2018-01-25 | 一种通用通信协议处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810071576.5A CN108366050A (zh) | 2018-01-25 | 2018-01-25 | 一种通用通信协议处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108366050A true CN108366050A (zh) | 2018-08-03 |
Family
ID=63006880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810071576.5A Pending CN108366050A (zh) | 2018-01-25 | 2018-01-25 | 一种通用通信协议处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108366050A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109561104A (zh) * | 2018-12-28 | 2019-04-02 | 深圳市创梦天地科技有限公司 | 一种通信协议转换方法及装置 |
CN109818926A (zh) * | 2018-12-25 | 2019-05-28 | 西安长远电子工程有限责任公司 | 一种无需预先规划的通信方法 |
CN110225076A (zh) * | 2019-04-16 | 2019-09-10 | 深圳壹账通智能科技有限公司 | 文件交互方法、装置、电子设备及存储介质 |
CN110839022A (zh) * | 2019-10-31 | 2020-02-25 | 四川航天***工程研究所 | 一种基于xml语言的车载控制软件通信协议解析方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101383824A (zh) * | 2008-10-16 | 2009-03-11 | 南京大学 | 一种基于atom协议的远程对象交换方法 |
US8056109B2 (en) * | 2006-04-07 | 2011-11-08 | Samsung Electronics Co., Ltd. | System and method for transmitting broadcast contents over DLNA network |
CN104503864A (zh) * | 2014-11-20 | 2015-04-08 | 北京世纪高蓝科技有限公司 | 一种基于局域网的文件备份方法和装置 |
CN105068854A (zh) * | 2015-08-07 | 2015-11-18 | 杭州古北电子科技有限公司 | 一种使用相同规则实现对不同产品的控制的方法 |
CN105337968A (zh) * | 2015-10-19 | 2016-02-17 | 江苏中威科技软件***有限公司 | 一种跨平台通讯协议代码的转换方法及其*** |
-
2018
- 2018-01-25 CN CN201810071576.5A patent/CN108366050A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8056109B2 (en) * | 2006-04-07 | 2011-11-08 | Samsung Electronics Co., Ltd. | System and method for transmitting broadcast contents over DLNA network |
CN101383824A (zh) * | 2008-10-16 | 2009-03-11 | 南京大学 | 一种基于atom协议的远程对象交换方法 |
CN104503864A (zh) * | 2014-11-20 | 2015-04-08 | 北京世纪高蓝科技有限公司 | 一种基于局域网的文件备份方法和装置 |
CN105068854A (zh) * | 2015-08-07 | 2015-11-18 | 杭州古北电子科技有限公司 | 一种使用相同规则实现对不同产品的控制的方法 |
CN105337968A (zh) * | 2015-10-19 | 2016-02-17 | 江苏中威科技软件***有限公司 | 一种跨平台通讯协议代码的转换方法及其*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109818926A (zh) * | 2018-12-25 | 2019-05-28 | 西安长远电子工程有限责任公司 | 一种无需预先规划的通信方法 |
CN109561104A (zh) * | 2018-12-28 | 2019-04-02 | 深圳市创梦天地科技有限公司 | 一种通信协议转换方法及装置 |
CN110225076A (zh) * | 2019-04-16 | 2019-09-10 | 深圳壹账通智能科技有限公司 | 文件交互方法、装置、电子设备及存储介质 |
CN110839022A (zh) * | 2019-10-31 | 2020-02-25 | 四川航天***工程研究所 | 一种基于xml语言的车载控制软件通信协议解析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108366050A (zh) | 一种通用通信协议处理方法 | |
US7043686B1 (en) | Data compression apparatus, database system, data communication system, data compression method, storage medium and program transmission apparatus | |
US8176084B2 (en) | Structure based storage, query, update and transfer of tree-based documents | |
CN101222476B (zh) | 一种可扩展标记语言文件编辑器、文件传输方法及*** | |
US20050144556A1 (en) | XML schema token extension for XML document compression | |
US20060212467A1 (en) | Encoding of hierarchically organized data for efficient storage and processing | |
CN105450232A (zh) | 编码、解码方法以及编码装置和解码装置 | |
CN109697278B (zh) | 将根据模式以人类可读的文本格式化的数据编码为二进制 | |
KR20020064941A (ko) | Mpeg-7 인스턴스의 바이너리 포맷 | |
CN103246857A (zh) | 一种使用形式化解码规则解析异构编码获得物品信息的方法 | |
CN108052320A (zh) | 一种将二进制结构体转换为json对象的方法 | |
JP2007206945A (ja) | 構造化文書検索システムおよび構造化文書検索方法 | |
CN101794318A (zh) | Url解析方法及设备 | |
CN108664546A (zh) | Xml数据结构转换方法和装置 | |
CN110096626A (zh) | 合同文本数据的处理方法、装置、设备及存储介质 | |
CN112287642B (zh) | 树形结构自增数据节点id及其路径链二进制编码方法 | |
CN110059085A (zh) | 一种面向Web 2.0的JSON数据解析与建模方法 | |
CN104484337B (zh) | Xml文档的存储方法 | |
CN102073662B (zh) | 一种解析和创建xml数据的方法及*** | |
CN108241658A (zh) | 一种日志模式发现方法及*** | |
CN105488171B (zh) | 一种基于ssh的在线教育网站的试题批量上传方法 | |
CN114372097B (zh) | 一种数据集列序列化的高效连接比对实现方法及装置 | |
CN113887182A (zh) | 表格生成方法、装置、设备及存储介质 | |
CN111597801B (zh) | 一种基于自然语言处理的文本自动结构化方法和*** | |
CN107222461A (zh) | 通信处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180803 |
|
RJ01 | Rejection of invention patent application after publication |