遵循通用信息交换协议规范的智能解码方法及解码器技术

技术编号:25051332 阅读:34 留言:0更新日期:2020-07-29 05:39
本发明专利技术属于信息传输与交换领域,具体涉及了一种遵循通用信息交换协议规范的智能解码方法及解码器,旨在解决现有技术不同的应用需要构建不同的信息交换协议以及信息解码器的问题。本发明专利技术包括:预设通用信息交换协议规范;根据该规范制定信息交换协议,并在协议不满足规范时发出错误提示信息进行协议修改;输入待解码二进制信息实例;通过智能解码算法将待解码二进制信息实例解码为可读的信息实例。本发明专利技术用户可根据规范编写各种满足不同需求的信息交换协议,不需要重新设计或调整解码器就能够智能识别不同的信息交换协议,采用同样的解码器进行解码,节省了大量的时间。

【技术实现步骤摘要】
遵循通用信息交换协议规范的智能解码方法及解码器
本专利技术属于信息传输与交换领域,具体涉及了一种遵循通用信息交换协议规范的智能解码方法及解码器。
技术介绍
在信息传输与交换领域,信息收发双方(消费者和生产者)在交换信息之前,首先需要建立信息交换协议,按照协议,信息的发方(生产者)对信息进行编码,然后通过约定的信道将信息发送到信息的收方(消费者),收方获取到信息后,按照协议进行解码。收发双方遵循交换协议,确保了收方能够正确解析发方的信息。由于信息传输与交换领域的应用范围非常广泛且各应用的信息结构各不相同,每一种应用均需要建立自己特有的信息交换协议,从而导致产生数量庞大的、类型各异的信息交换协议。针对每一种信息交换协议,信息收发双方均需要单独设计和实现编码器对需要交换的信息进行编码,也需要单独设计和实现解码器对需要交换的信息进行解码,同样导致产生数量庞大的、类型各异的编码器和解码器。一方面,各种不同类型的编码器与解码器的设计和实现存在大量的重复性工作;另一方面,人工设计和实现不同类型的编码器和解码器容易出错、难以调试。总的来说,本领域急需一种遵循通用信息交换协议规范的智能解码方法及解码器,可以仅仅只用一个解码器,就能满足具体应用中结构类型千变万化、信息交换协议各不相同的信息解码需求,大幅度减少各类型解码器设计与实现中的大量重复性工作,并降低解码器的调试难度,提高解码器的可靠性。
技术实现思路
为了解决现有技术中的上述问题,即不同的应用需要构建不同的信息交换协议以及信息解码器的问题,本专利技术提供了一种遵循通用信息交换协议规范的智能解码方法,该智能解码方法包括:步骤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.一种遵循通用信息交换协议规范的智能解码方法,其特征在于,该智能解码方法包括:/n步骤B10,获取预设的通用信息交换协议规范、用户制定的信息交换协议以及待解码二进制信息实例;/n步骤B20,基于所述通用信息交换协议规范,判断所述用户制定的信息交换协议是否符合规范,若符合,则跳转步骤B40;否则,发出协议错误提示信息;/n步骤B30,基于所述协议错误提示信息修改所述用户制定的信息交换协议,并跳转步骤B20;/n步骤B40,通过预设的智能解码方法对所述待解码二进制实例进行解码,获得解码成功的信息实例。/n

【技术特征摘要】
1.一种遵循通用信息交换协议规范的智能解码方法,其特征在于,该智能解码方法包括:
步骤B10,获取预设的通用信息交换协议规范、用户制定的信息交换协议以及待解码二进制信息实例;
步骤B20,基于所述通用信息交换协议规范,判断所述用户制定的信息交换协议是否符合规范,若符合,则跳转步骤B40;否则,发出协议错误提示信息;
步骤B30,基于所述协议错误提示信息修改所述用户制定的信息交换协议,并跳转步骤B20;
步骤B40,通过预设的智能解码方法对所述待解码二进制实例进行解码,获得解码成功的信息实例。


2.根据权利要求1所述的遵循通用信息交换协议规范的智能解码方法,其特征在于,所述预设的通用信息交换协议规范,其根元素包括顺序元素、循环元素、条件元素中的一个或多个。


3.根据权利要求1所述的遵循通用信息交换协议规范的智能解码方法,其特征在于,所述用户制定的信息交换协议基于所述预设的通用信息交换协议规范制定。


4.根据权利要求1所述的遵循通用信息交换协议规范的智能解码方法,其特征在于,所述预设的智能解码方法为:
步骤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,通过条件解码算法进行所述待解码二进制信息实例的解码,获得解码成功的信息实例。


5.根据权利要求4所述的遵循通用信息交换协议规范的智能解码方法,其特征在于,“基于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直至解码完成。


6.根据权利要求5所述的遵循通用信息交换协议规范的智能解码方法,其特征在于,“基于e、root_doc以及空白...

【专利技术属性】
技术研发人员:廖名学高嘉欣
申请(专利权)人:中国科学院自动化研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1