CN111464565B - 遵循通用信息交换协议规范的智能解码方法及解码器 - Google Patents
遵循通用信息交换协议规范的智能解码方法及解码器 Download PDFInfo
- Publication number
- CN111464565B CN111464565B CN202010403285.9A CN202010403285A CN111464565B CN 111464565 B CN111464565 B CN 111464565B CN 202010403285 A CN202010403285 A CN 202010403285A CN 111464565 B CN111464565 B CN 111464565B
- Authority
- CN
- China
- Prior art keywords
- decoding
- information exchange
- information
- exchange protocol
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 125000004122 cyclic group Chemical group 0.000 claims description 20
- 230000009191 jumping Effects 0.000 claims description 8
- 229910002056 binary alloy Inorganic materials 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 3
- 230000008676 import Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
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/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- 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
-
- 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/24—Negotiation of communication capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明属于信息传输与交换领域,具体涉及了一种遵循通用信息交换协议规范的智能解码方法及解码器,旨在解决现有技术不同的应用需要构建不同的信息交换协议以及信息解码器的问题。本发明包括:预设通用信息交换协议规范;根据该规范制定信息交换协议,并在协议不满足规范时发出错误提示信息进行协议修改;输入待解码二进制信息实例;通过智能解码算法将待解码二进制信息实例解码为可读的信息实例。本发明用户可根据规范编写各种满足不同需求的信息交换协议,不需要重新设计或调整解码器就能够智能识别不同的信息交换协议,采用同样的解码器进行解码,节省了大量的时间。
Description
技术领域
本发明属于信息传输与交换领域,具体涉及了一种遵循通用信息交换协议规范的智能解码方法及解码器。
背景技术
在信息传输与交换领域,信息收发双方(消费者和生产者)在交换信息之前,首先需要建立信息交换协议,按照协议,信息的发方(生产者)对信息进行编码,然后通过约定的信道将信息发送到信息的收方(消费者),收方获取到信息后,按照协议进行解码。收发双方遵循交换协议,确保了收方能够正确解析发方的信息。
由于信息传输与交换领域的应用范围非常广泛且各应用的信息结构各不相同,每一种应用均需要建立自己特有的信息交换协议,从而导致产生数量庞大的、类型各异的信息交换协议。针对每一种信息交换协议,信息收发双方均需要单独设计和实现编码器对需要交换的信息进行编码,也需要单独设计和实现解码器对需要交换的信息进行解码,同样导致产生数量庞大的、类型各异的编码器和解码器。一方面,各种不同类型的编码器与解码器的设计和实现存在大量的重复性工作;另一方面,人工设计和实现不同类型的编码器和解码器容易出错、难以调试。
总的来说,本领域急需一种遵循通用信息交换协议规范的智能解码方法及解码器,可以仅仅只用一个解码器,就能满足具体应用中结构类型千变万化、信息交换协议各不相同的信息解码需求,大幅度减少各类型解码器设计与实现中的大量重复性工作,并降低解码器的调试难度,提高解码器的可靠性。
发明内容
为了解决现有技术中的上述问题,即不同的应用需要构建不同的信息交换协议以及信息解码器的问题,本发明提供了一种遵循通用信息交换协议规范的智能解码方法,该智能解码方法包括:
步骤B10,获取预设的通用信息交换协议规范、用户制定的信息交换协议以及待解码二进制信息实例;
步骤B20,基于所述通用信息交换协议规范,判断所述用户制定的信息交换协议是否符合规范,若符合,则跳转步骤B40;否则,发出协议错误提示信息;
步骤B30,基于所述协议错误提示信息修改所述用户制定的信息交换协议,并跳转步骤B20;
步骤B40,通过预设的智能解码方法对所述待解码二进制实例进行解码,获得解码成功的信息实例。
在一些优选的实施例中,所述预设的通用信息交换协议规范,其根元素包括顺序元素、循环元素、条件元素中的一个或多个。
在一些优选的实施例中,所述用户制定的信息交换协议基于所述预设的通用信息交换协议规范制定。
在一些优选的实施例中,所述预设的智能解码方法为:
步骤S10,获取符合预设的通用信息交换协议规范的用户制定的信息交换协议和待解码二进制信息实例;
步骤S20,根据所述用户制定的信息交换协议的根元素root的属性name的值创建根元素root_doc,并创建空白解码文件doc;
步骤S30,对于根元素root的每一个子元素e,判断并执行:
若e为顺序元素,则基于e、root_doc以及空白解码文件doc,通过顺序解码算法进行所述待解码二进制信息实例的解码,获得解码成功的信息实例;
若e为循环元素,则基于e、root_doc以及空白解码文件doc,通过循环解码算法进行所述待解码二进制信息实例的解码,获得解码成功的信息实例;
若e为条件元素,则基于e、root_doc以及空白解码文件doc,通过条件解码算法进行所述待解码二进制信息实例的解码,获得解码成功的信息实例。
在一些优选的实施例中,“基于e、root_doc以及空白解码文件doc,通过顺序解码算法进行所述待解码二进制信息实例的解码”,其方法为:
步骤S311,从所述用户制定的信息交换协议的协议元素e中获取e的name属性值以及length属性值;
步骤S312,基于所述e的name属性值在所述空白解码文件doc的parent下创建新的XML数据元素e_d;
步骤S313,若length属性值为整数,则解析该整数值;若length属性值为字符串,则按照其指示的路径获取间接引用的元素节点n,并解析n的内容所代表的整数值;
步骤S314,基于解析的整数值以及待解码二进制实例字节流的当前位置,获取本次元素构建所需要的字节数组buffer;
步骤S315,获取协议元素e的type属性值t并写入e_d的属性,判断并执行:若t为int,则从buffer中解析整数值并写入e_d的元素值内容中;若t为float,则从buffer中解析浮点值并写入e_d的元素值内容中;若t为string,则从buffer中解析字符串并写入e_d的元素值内容中;
步骤S316,根据length值,更新待解码二进制实例字节流的当前位置,重复执行步骤S314-步骤S316直至解码完成。
在一些优选的实施例中,“基于e、root_doc以及空白解码文件doc,通过循环解码算法进行所述待解码二进制信息实例的解码”,其方法为:
步骤S321,从所述用户制定的信息交换协议的协议元素e中获取e的name属性值name_attribute及number属性值;
步骤S322,若number属性值为整数,则解析该整数值;若number属性值为字符串,则按照其指示的路径获取间接引用的元素节点n,并解析n的length属性值;
步骤S323,从待解码二进制实例字节流的当前位置,获取解析length个比特所需要的字节数组buffer;
步骤S324,解析buffer代表的整数值,并在空白解码文件doc的parent元素之下创建名为name_attribute的元素data_n;
步骤S325,对于协议元素e的每一个子元素child,判断并执行:若child为顺序元素,则通过顺序解码算法解码并放至data_n;若child为循环元素,则通过循环解码算法解码并放至data_n;若child为条件元素,则通过条件解码算法解码并放至data_n。
在一些优选的实施例中,“基于e、root_doc以及空白解码文件doc,通过条件解码算法进行所述待解码二进制信息实例的解码”,其方法为:
步骤S331,从所述用户制定的信息交换协议的协议元素e中获取e的expression属性值exp,并创建元素parent作为doc中元素的父节点;
步骤S332,判断parent的信息是否满足exp的描述,若不符合,则返回;否则,从e中获取e的name属性值name_attr;
步骤S333,在doc的parent元素之下创建名为name_attr的元素e_d;
步骤S334,对于协议元素e的每一个子元素child,判断并执行:若child为顺序元素,则通过顺序解码算法解码并放至e_d的元素值内容中;若child为循环元素,则通过循环解码算法解码并放至e_d的元素值内容中;若child为条件元素,则通过条件解码算法解码并放至e_d的元素值内容中。
本发明的另一方面,提出了一种遵循通用信息交换协议规范的智能解码器,该智能解码器包括协议规范导入模块、用户协议录入接口、协议检查模块、用户二进制信息实例输入接口、智能解码模块;
所述协议规范导入模块,用于导入预设的通用信息交换协议规范;
所述用户协议录入接口,用于导入用户制定的信息交换协议以及根据所述协议检查模块的错误提示信息进行所述信息交换协议的修改;
所述协议检查模块,基于所述通用信息交换协议规范,判断所述用户制定的信息交换协议/修改后的信息交换协议是否符合规范,若不符合,则发送错误提示信息至所述用户协议录入接口;否则,发送实例获取信息至所述用户二进制信息实例输入接口;
所述用户二进制信息实例输入接口,用于在收到实例获取信息后导入待解码二进制信息实例;
所述智能解码模块,基于预设的智能解码方法进行所述待解码二进制信息实例的解码,并输出解码成功的信息实例。
本发明的第三方面,提出了一种存储装置,其中存储有多条程序,所述程序适于由处理器加载并执行以实现上述的遵循通用信息交换协议规范的智能解码方法。
本发明的第四方面,提出了一种处理装置,包括处理器、存储装置;所述处理器,适于执行各条程序;所述存储装置,适于存储多条程序;所述程序适于由处理器加载并执行以实现上述的遵循通用信息交换协议规范的智能解码方法。
本发明的有益效果:
本发明遵循通用信息交换协议规范的智能解码方法及解码器,在遵循通用信息交换协议规范的条件下,根据用户制定的协议把用户提供的、符合用户制定协议的、基于二进制的信息实例解码成可读的文本的信息实例。由此,用户不需要针对每一种信息交换协议,设计、实现和调试自己特有的解码器,从而大大降低用户的开发和调试工作量。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本发明遵循通用信息交换协议规范的智能解码方法的工作流程示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本发明提供一种遵循通用信息交换协议规范的智能解码方法,首先,根据预设的通用信息交换协议规范对输入的用户制定的信息交换协议进行检查:若信息交换协议不符合规范,则报错,用户需修改信息交换协议以符合规范;若信息交换协议符合规范,则用户根据信息交换协议输入待解码二进制信息实例。然后,根据预设的智能解码方法执行解码,获得解码成功的可读的文本的信息实例。
本发明的一种遵循通用信息交换协议规范的智能解码方法,该智能解码方法包括:
步骤B10,获取预设的通用信息交换协议规范、用户制定的信息交换协议以及待解码二进制信息实例;
步骤B20,基于所述通用信息交换协议规范,判断所述用户制定的信息交换协议是否符合规范,若符合,则跳转步骤B40;否则,发出协议错误提示信息;
步骤B30,基于所述协议错误提示信息修改所述用户制定的信息交换协议,并跳转步骤B20;
步骤B40,通过预设的智能解码方法对所述待解码二进制实例进行解码,获得解码成功的信息实例。
为了更清晰地对本发明遵循通用信息交换协议规范的智能解码方法进行说明,下面结合图1对本发明实施例中各步骤展开详述。
本发明一种实施例的遵循通用信息交换协议规范的智能解码方法,包括步骤B10-步骤B40,各步骤详细描述如下:
步骤B10,获取预设的通用信息交换协议规范、用户制定的信息交换协议以及待解码二进制信息实例。
预设的通用信息交换协议规范,其根元素包括顺序元素、循环元素、条件元素中的一个或多个。
信息交换协议规范的根元素protocol,根元素必须包含顺序元素sequence、循环元素loop或条件元素condition中至少一个,可以包含多个,并且每个元素可多次、任意顺序地出现。
本发明一个实施例中,预设的通用信息交换协议规范为:
用户制定的信息交换协议为收发双方都认可的,为后续信息交换提供依据的文件。该协议为根据上述的通用信息交换协议规范所制定的协议:为描述了一段目标位置信息共享的协议,包括目标名称、经纬度等信息,协议中也用到了顺序元素和条件元素。
本发明一个实施例中,用户制定的信息交换协议为:
步骤B20,基于所述通用信息交换协议规范,判断所述用户制定的信息交换协议是否符合规范,若符合,则跳转步骤B40;否则,发出协议错误提示信息。
步骤B30,基于所述协议错误提示信息修改所述用户制定的信息交换协议,并跳转步骤B20。
如果用户制定的信息交换协议满足通用信息交换协议规范则进行下一步;如不满足,则发出错误提示信息,用户需要对信息交换协议做出相应的修改。
只有信息交换协议满足这种规范时,系统才能进行正常的解码工作。
步骤B40,通过预设的智能解码方法对所述待解码二进制实例进行解码,获得解码成功的信息实例。
待解码二进制信息实例就是用户想要解码的信息,本发明一个实施例中,待解码二进制信息实例为:
该二进制实例数据也包含了目标名称、经纬度信息,进过解码器解码后,可变成可读性较强的文本信息实例。
预设的智能解码方法以符合预设的通用信息交换协议规范的用户制定的信息交换协议protocol以及待解码二进制信息实例binary为输入,以与protocol及binary匹配的文本信息实例doc为输出,其解码过程为:
步骤S10,获取符合预设的通用信息交换协议规范的用户制定的信息交换协议protocol和待解码二进制信息实例binary。
步骤S20,根据protocol的根元素root的属性name的值在doc中创建一个根元素root_doc,并创建空白解码文件doc。
步骤S30,对于根元素root的每一个子元素e,判断并执行:
若e为顺序元素,则基于e、root_doc以及空白解码文件doc,通过顺序解码算法SEQUENCE_Decode(doc,root_doc,e)进行所述待解码二进制信息实例的解码,获得解码成功的信息实例;
若e为循环元素,则基于e、root_doc以及空白解码文件doc,通过循环解码算法LOOP_Decode(doc,root_doc,e)进行所述待解码二进制信息实例的解码,获得解码成功的信息实例;
若e为条件元素,则基于e、root_doc以及空白解码文件doc,通过条件解码算法CONDITION_Decode(doc,root_doc,e)进行所述待解码二进制信息实例的解码,获得解码成功的信息实例。
顺序解码算法SEQUENCE_Dncode以协议元素pe(即e)、空白解码文件doc及元素parent(创建元素parent作为doc元素的父节点)为输入,以解码完成后与二进制实例一致的文本信息实例doc为输出,其解码过程为:
步骤S311,从所述用户制定的信息交换协议的协议元素pe中获取pe的name属性值以及length属性值;
步骤S312,基于所述pe的name属性值在所述空白解码文件doc的parent下创建新的XML数据元素e_d;
步骤S313,若length属性值为整数,则解析该整数值;若length属性值为字符串,则按照其指示的路径获取间接引用的元素节点n,并解析n的内容所代表的整数值;
步骤S314,根据length的属性值(即上述解析的整数值)以及待解码二进制实例字节流的当前位置,获取本次元素构建所需要的字节数组buffer,按照length,截除buffer中不必要的比特,并将所有比特对齐放到缓冲区的低位位置上;
字节数组buffer原本的比特长度是8的倍数,但length的属性值未必是8的倍数,所以buffer中含有冗余的比特。比如buffer原本比特长度是16,但length的属性值为13,这样的话buffer只需取前13个比特位,截除后3位。
步骤S315,获取协议元素pe的type属性值t并写入e_d的属性,判断并执行:若t为int,则从buffer中解析整数值并写入e_d的元素值内容中;若t为float,则从buffer中解析浮点值并写入e_d的元素值内容中;若t为string,则从buffer中解析字符串并写入e_d的元素值内容中;
步骤S316,根据length值,更新待解码二进制实例字节流的当前位置,重复执行步骤S314-步骤S316直至解码完成。
循环解码算法LOOP_Decode以协议元素pe(即e)、空白解码文件doc及元素parent(创建元素parent作为doc元素的父节点)为输入,以解码完成后与二进制实例一致的文本信息实例doc为输出,其解码过程为:
步骤S321,从所述用户制定的信息交换协议的协议元素pe中获取pe的name属性值name_attribute及number属性值;
步骤S322,若number属性值为整数,则解析该整数值;若number属性值为字符串s,则按照s指示的路径获取间接引用的元素节点n,并解析n的length属性值(length表示二进制数据中记录loop_number的比特位数);
步骤S323,将direct赋值为假,从待解码二进制实例字节流的当前位置,获取解析length个比特所需要的字节数组buffer,按照length,截除buffer中不必要的比特,并将所有比特对齐放到缓冲区的低位位置上;
步骤S324,解析buffer代表的整数值,根据length值,更新binary字节流的当前位置,并在空白解码文件doc的parent元素之下创建名为name_attribute的元素data_n;
步骤S325,对于协议元素pe的每一个子元素child,判断并执行:若child为顺序元素,则通过顺序解码算法SEQUENCE_Decode(doc,data_n,child)解码并放至data_n;若child为循环元素,则通过循环解码算法LOOP_Decode(doc,data_n,child)解码并放至data_n;若child为条件元素,则通过条件解码算法CONDITION_Decode(doc,data_n,child)解码并放至data_n。
条件解码算法CONDITION_Dncode以协议元素pe(即e)、空白解码文件doc及元素parent(创建元素parent作为doc元素的父节点)为输入,以解码完成后与二进制实例一致的文本信息实例doc为输出,其解码过程为:
步骤S331,从所述用户制定的信息交换协议的协议元素pe中获取pe的expression属性值exp,并创建元素parent作为doc中元素的父节点;
步骤S332,通过表达式求值算法EXPRESSION_Eval(parent,exp)判断parent的信息是否满足exp的描述,若不符合,则返回;否则,从pe中获取pe的name属性值name_attr;
步骤S333,在doc的parent元素之下创建名为name_attr的元素e_d;
步骤S334,对于协议元素pe的每一个子元素child,判断并执行:若child为顺序元素,则通过顺序解码算法SEQUENCE_Decode(doc,e_d,child)解码并放至e_d的元素值内容中;若child为循环元素,则通过循环解码算法LOOP_Decode(doc,e_d,child)解码并放至e_d的元素值内容中;若child为条件元素,则通过条件解码算法CONDITION_Decode(doc,e_d,child)解码并放至e_d的元素值内容中。
本发明针对信息传输与交换问题,在指定的信息交换协议规范下,根据用户制定的协议把用户要传输来的待解码二进制信息实例解码成文本的信息实例,恢复了信息的可读性。
本发明第二实施例的遵循通用信息交换协议规范的智能解码器,该智能解码器包括协议规范导入模块、用户协议录入接口、协议检查模块、用户二进制信息实例输入接口、智能解码模块;
所述协议规范导入模块,用于导入预设的通用信息交换协议规范;
所述用户协议录入接口,用于导入用户制定的信息交换协议以及根据所述协议检查模块的错误提示信息进行所述信息交换协议的修改;
所述协议检查模块,基于所述通用信息交换协议规范,判断所述用户制定的信息交换协议/修改后的信息交换协议是否符合规范,若不符合,则发送错误提示信息至所述用户协议录入接口;否则,发送实例获取信息至所述用户二进制信息实例输入接口;
所述用户二进制信息实例输入接口,用于在收到实例获取信息后导入待解码二进制信息实例;
所述智能解码模块,基于预设的智能解码方法进行所述待解码二进制信息实例的解码,并输出解码成功的信息实例。
导入预设的通用信息交换协议规范,是为了辅助和约束用户制定相应的信息交换协议,它规定了信息实例中信息的组织结构、包含的元素、以及相关元素的一些长度或类型的限制等。
导入用户制定的一种信息交换协议,是指本系统为用户提供一个信息交换协议输入的接口,用户根据前面的协议规范和自身传输数据的需求,制定出相应的信息交换协议,然后在这个接口中输入协议。
系统将根据导入的预设的通用信息交换协议规范对用户制定的信息交换协议进行检查,是指本系统会根据预设的通用信息交换协议规范检查用户制定的信息交换协议是否满足规范定义的文本组织结构,以及其子元素是否满足规范定义的一些限制。如果满足,系统才能进行下一步的工作,否则系统会报错,并给出错误提示信息,用户可以根据错误提示信息对信息交换协议进行修改,然后把修改好的信息交换协议重新通过信息交换协议输入接口导入。
用户根据信息交换协议输入基于二进制的信息实例,即待解码二进制信息实例,是指本系统为用户提供一个信息实例输入的接口,用户在这个接口输入待解码二进制信息实例。
系统根据智能解码方法执行解码,是指在信息交换协议满足协议规范时,系统会依照智能解码方法对待解码二进制信息实例进行解码,把二进制信息实例解码成文本信息实例的形式,回复了数据的可读性。
本发明针对传统信息传输与交换中存在的解码器繁多、效率较低的问题,设计实现了一种智能解码器,包括了一种通用信息交换协议规范,根据该规范,用户能够编写信息交换协议与基于二进制的信息实例;然后,智能解码器可将该二进制信息实例解码为基于文本的信息实例,回复数据的可读性。而且,用户可根据本发明提出的通用信息交换协议规范,编写各种满足不同需求的信息交换协议,但不需要重新设计或调整解码器,智能解码器就能够智能识别这些不同的信息交换协议,采用同样的解码器进行解码,节省了大量的解码器开发时间。
需要说明的是,上述实施例提供的遵循通用信息交换协议规范的智能解码器,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块名称,仅仅是为了区分各个模块,不视为对本发明的不当限定。
本发明第三实施例的一种存储装置,其中存储有多条程序,所述程序适于由处理器加载并执行以实现上述的遵循通用信息交换协议规范的智能解码方法。
本发明第四实施例的一种处理装置,包括处理器、存储装置;处理器,适于执行各条程序;存储装置,适于存储多条程序;所述程序适于由处理器加载并执行以实现上述的遵循通用信息交换协议规范的智能解码方法。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的模块、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件模块、方法步骤对应的程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。
术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
Claims (7)
1.一种遵循通用信息交换协议规范的智能解码方法,其特征在于,该智能解码方法包括:
步骤B10,获取预设的通用信息交换协议规范、用户制定的信息交换协议以及待解码二进制信息实例;所述通用信息交换协议规范,其根元素包括顺序元素、循环元素、条件元素中的一个或多个,每个元素可一次或多次地出现在任意位置;所述用户制定的信息交换协议基于所述预设的通用信息交换协议规范制定;
步骤B20,基于所述通用信息交换协议规范,判断所述用户制定的信息交换协议是否符合规范,若符合,则跳转步骤B40;否则,发出协议错误提示信息;
步骤B30,基于所述协议错误提示信息修改所述用户制定的信息交换协议,并跳转步骤B20;
步骤B40,通过预设的智能解码方法对所述待解码二进制信息 实例进行解码,获得解码成功的信息实例;
其中,所述预设的智能解码方法为:
步骤S10,获取符合预设的通用信息交换协议规范的用户制定的信息交换协议和待解码二进制信息实例;
步骤S20,根据所述用户制定的信息交换协议的根元素root的属性name的值创建根元素root_doc,并创建空白解码文件doc;
步骤S30,对于根元素root的每一个子元素e,判断并执行:
若e为顺序元素,则基于e、root_doc以及空白解码文件doc,通过顺序解码算法进行所述待解码二进制信息实例的解码,获得解码成功的信息实例;
若e为循环元素,则基于e、root_doc以及空白解码文件doc,通过循环解码算法进行所述待解码二进制信息实例的解码,获得解码成功的信息实例;
若e为条件元素,则基于e、root_doc以及空白解码文件doc,通过条件解码算法进行所述待解码二进制信息实例的解码,获得解码成功的信息实例。
2.根据权利要求1所述的遵循通用信息交换协议规范的智能解码方法,其特征在于,“基于e、root_doc以及空白解码文件doc,通过顺序解码算法进行所述待解码二进制信息实例的解码”,其方法为:
步骤S311,从所述用户制定的信息交换协议的协议元素e中获取e的name属性值以及length属性值;
步骤S312,基于所述e的name属性值在所述空白解码文件doc的parent下创建新的XML数据元素e_d;
步骤S313,若length属性值为整数,则解析该整数值;若length属性值为字符串,则按照其指示的路径获取间接引用的元素节点n,并解析n的内容所代表的整数值;
步骤S314,基于解析的整数值以及待解码二进制实例字节流的当前位置,获取本次元素构建所需要的字节数组buffer;
步骤S315,获取协议元素e的type属性值t并写入e_d的属性,判断并执行:若t为int,则从buffer中解析整数值并写入e_d的元素值内容中;若t为float,则从buffer中解析浮点值并写入e_d的元素值内容中;若t为string,则从buffer中解析字符串并写入e_d的元素值内容中;
步骤S316,根据length值,更新待解码二进制实例字节流的当前位置,重复执行步骤S314-步骤S316直至解码完成。
3.根据权利要求2所述的遵循通用信息交换协议规范的智能解码方法,其特征在于,“基于e、root_doc以及空白解码文件doc,通过循环解码算法进行所述待解码二进制信息实例的解码”,其方法为:
步骤S321,从所述用户制定的信息交换协议的协议元素e中获取e的name属性值name_attribute及number属性值;
步骤S322,若number属性值为整数,则解析该整数值;若number属性值为字符串,则按照其指示的路径获取间接引用的元素节点n,并解析n的length属性值;
步骤S323,从待解码二进制实例字节流的当前位置,获取解析length个比特所需要的字节数组buffer;
步骤S324,解析buffer代表的整数值,并在空白解码文件doc的parent元素之下创建名为name_attribute的元素data_n;
步骤S325,对于协议元素e的每一个子元素child,判断并执行:若child为顺序元素,则通过顺序解码算法解码并放至data_n;若child为循环元素,则通过循环解码算法解码并放至data_n;若child为条件元素,则通过条件解码算法解码并放至data_n。
4.根据权利要求3所述的遵循通用信息交换协议规范的智能解码方法,其特征在于,“基于e、root_doc以及空白解码文件doc,通过条件解码算法进行所述待解码二进制信息实例的解码”,其方法为:
步骤S331,从所述用户制定的信息交换协议的协议元素e中获取e的expression属性值exp,并创建元素parent作为doc中元素的父节点;
步骤S332,判断parent的信息是否满足exp的描述,若不符合,则返回;否则,从e中获取e的name属性值name_attr;
步骤S333,在doc的parent元素之下创建名为name_attr的元素e_d;
步骤S334,对于协议元素e的每一个子元素child,判断并执行:若child为顺序元素,则通过顺序解码算法解码并放至e_d的元素值内容中;若child为循环元素,则通过循环解码算法解码并放至e_d的元素值内容中;若child为条件元素,则通过条件解码算法解码并放至e_d的元素值内容中。
5.一种遵循通用信息交换协议规范的智能解码器,其特征在于,该智能解码器包括协议规范导入模块、用户协议录入接口、协议检查模块、用户二进制信息实例输入接口、智能解码模块;
所述协议规范导入模块,用于导入预设的通用信息交换协议规范;所述通用信息交换协议规范,其根元素包括顺序元素、循环元素、条件元素中的一个或多个,每个元素可一次或多次地出现在任意位置;
所述用户协议录入接口,用于导入用户制定的信息交换协议以及根据所述协议检查模块的错误提示信息进行所述信息交换协议的修改;所述用户制定的信息交换协议基于所述预设的通用信息交换协议规范制定;
所述协议检查模块,基于所述通用信息交换协议规范,判断所述用户制定的信息交换协议/修改后的信息交换协议是否符合规范,若不符合,则发送错误提示信息至所述用户协议录入接口;否则,发送实例获取信息至所述用户二进制信息实例输入接口;
所述用户二进制信息实例输入接口,用于在收到实例获取信息后导入待解码二进制信息实例;
所述智能解码模块,基于预设的智能解码方法进行所述待解码二进制信息实例的解码,并输出解码成功的信息实例;
其中,所述预设的智能解码方法为:
步骤S10,获取符合预设的通用信息交换协议规范的用户制定的信息交换协议和待解码二进制信息实例;
步骤S20,根据所述用户制定的信息交换协议的根元素root的属性name的值创建根元素root_doc,并创建空白解码文件doc;
步骤S30,对于根元素root的每一个子元素e,判断并执行:
若e为顺序元素,则基于e、root_doc以及空白解码文件doc,通过顺序解码算法进行所述待解码二进制信息实例的解码,获得解码成功的信息实例;
若e为循环元素,则基于e、root_doc以及空白解码文件doc,通过循环解码算法进行所述待解码二进制信息实例的解码,获得解码成功的信息实例;
若e为条件元素,则基于e、root_doc以及空白解码文件doc,通过条件解码算法进行所述待解码二进制信息实例的解码,获得解码成功的信息实例。
6.一种存储装置,其中存储有多条程序,其特征在于,所述程序适于由处理器加载并执行以实现权利要求1-4任一项所述的遵循通用信息交换协议规范的智能解码方法。
7.一种处理装置,包括
处理器,适于执行各条程序;以及
存储装置,适于存储多条程序;
其特征在于,所述程序适于由处理器加载并执行以实现:
权利要求1-4任一项所述的遵循通用信息交换协议规范的智能解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010403285.9A CN111464565B (zh) | 2020-05-13 | 2020-05-13 | 遵循通用信息交换协议规范的智能解码方法及解码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010403285.9A CN111464565B (zh) | 2020-05-13 | 2020-05-13 | 遵循通用信息交换协议规范的智能解码方法及解码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111464565A CN111464565A (zh) | 2020-07-28 |
CN111464565B true CN111464565B (zh) | 2021-09-28 |
Family
ID=71680324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010403285.9A Active CN111464565B (zh) | 2020-05-13 | 2020-05-13 | 遵循通用信息交换协议规范的智能解码方法及解码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111464565B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101188561A (zh) * | 2007-12-20 | 2008-05-28 | 北京大学 | 基于自定义模板的通用业务数据通讯方法与系统 |
CN103001971A (zh) * | 2012-12-25 | 2013-03-27 | 成都科来软件有限公司 | 一种网络数据包解析方法 |
CN104866404A (zh) * | 2015-05-19 | 2015-08-26 | 北京控制工程研究所 | 一种通用的数据监视方法 |
CN106209830A (zh) * | 2016-07-08 | 2016-12-07 | 中国人民解放军国防科学技术大学 | 一种基于xml网络协议表示的报文构造方法 |
CN108076017A (zh) * | 2016-11-16 | 2018-05-25 | 腾讯科技(深圳)有限公司 | 一种数据包的协议解析方法及装置 |
CN108737212A (zh) * | 2018-05-18 | 2018-11-02 | 中国人民解放军61062部队科技装备处 | 一种传输协议符合性检测装置、系统及方法 |
CN110708307A (zh) * | 2019-09-29 | 2020-01-17 | 北京明略软件系统有限公司 | 转码器生成方法和装置、电子设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8068245B2 (en) * | 2004-10-15 | 2011-11-29 | Fujifilm Dimatix, Inc. | Printing device communication protocol |
CN102594833B (zh) * | 2012-03-09 | 2016-01-06 | 北京思特奇信息技术股份有限公司 | 一种通信协议适配方法和系统 |
BG111201A (bg) * | 2012-04-25 | 2012-09-28 | "Дейтавенд" Оод | Метод и устройство за комуникиране с автомат за продажба на стоки и услуги |
CN106230826B (zh) * | 2016-08-02 | 2019-03-29 | 哈尔滨工业大学 | 应用系统接口协议自动解析装置 |
CN106598581B (zh) * | 2016-12-06 | 2020-01-03 | 成都能通科技有限公司 | 基于xml的asterix报文解析代码生成方法 |
CN109873820A (zh) * | 2019-02-21 | 2019-06-11 | 温瑭玮 | 一种可自定义数据传输协议的数据采集及执行方法 |
-
2020
- 2020-05-13 CN CN202010403285.9A patent/CN111464565B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101188561A (zh) * | 2007-12-20 | 2008-05-28 | 北京大学 | 基于自定义模板的通用业务数据通讯方法与系统 |
CN103001971A (zh) * | 2012-12-25 | 2013-03-27 | 成都科来软件有限公司 | 一种网络数据包解析方法 |
CN104866404A (zh) * | 2015-05-19 | 2015-08-26 | 北京控制工程研究所 | 一种通用的数据监视方法 |
CN106209830A (zh) * | 2016-07-08 | 2016-12-07 | 中国人民解放军国防科学技术大学 | 一种基于xml网络协议表示的报文构造方法 |
CN108076017A (zh) * | 2016-11-16 | 2018-05-25 | 腾讯科技(深圳)有限公司 | 一种数据包的协议解析方法及装置 |
CN108737212A (zh) * | 2018-05-18 | 2018-11-02 | 中国人民解放军61062部队科技装备处 | 一种传输协议符合性检测装置、系统及方法 |
CN110708307A (zh) * | 2019-09-29 | 2020-01-17 | 北京明略软件系统有限公司 | 转码器生成方法和装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111464565A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572122A (zh) | 一种软件应用数据的生成装置及方法 | |
CN111131403A (zh) | 一种物联网设备的消息编解码方法及装置 | |
CN107566090B (zh) | 一种定长/变长的文本报文处理方法及装置 | |
CN110399306B (zh) | 软件模块自动化测试方法及装置 | |
CN109460220A (zh) | 报文预定义代码生成方法、装置、电子设备和存储介质 | |
CN109063091B (zh) | 混合编码的数据迁移方法、数据迁移装置和存储介质 | |
CN110955714A (zh) | 一种将非结构化文本转化为结构化文本的方法及装置 | |
CN112860264B (zh) | 一种抽象语法树重构方法及装置 | |
CN101202736B (zh) | 一种基于抽象语法标记实现编解码的方法 | |
Currier | Protocol buffers | |
CN113901083A (zh) | 基于多解析器的异构数据源操作资源解析定位方法和设备 | |
CN110554857B (zh) | JavaBean生成方法、装置、系统及可读存储介质 | |
CN111464565B (zh) | 遵循通用信息交换协议规范的智能解码方法及解码器 | |
CN114169292A (zh) | 一种字节流数据转换方法、装置、设备及存储介质 | |
CN117573139A (zh) | 代码自动生成方法、装置、设备及介质 | |
EP1710718A2 (en) | Systems and methods for performing streaming checks on data format for UDTs | |
CN109992293B (zh) | Android系统组件版本信息的组装方法及装置 | |
CN111026604A (zh) | 一种日志文件解析方法及装置 | |
CN111510159B (zh) | 遵循通用信息交换协议规范的智能编码方法及编码器 | |
CN112698825B (zh) | 编程积木块转换方法、装置、处理设备及存储介质 | |
CN114968917A (zh) | 一种文件数据快速导入方法及装置 | |
CN114860566A (zh) | 源代码测试方法、装置、电子设备及存储介质 | |
CN107038188A (zh) | 一种基于业务的全局id生成方法及系统 | |
CN108733353B (zh) | 一种界面构造方法和装置 | |
CN100562008C (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |