【技术实现步骤摘要】
遵循通用信息交换协议规范的智能解码方法及解码器
本专利技术属于信息传输与交换领域,具体涉及了一种遵循通用信息交换协议规范的智能解码方法及解码器。
技术介绍
在信息传输与交换领域,信息收发双方(消费者和生产者)在交换信息之前,首先需要建立信息交换协议,按照协议,信息的发方(生产者)对信息进行编码,然后通过约定的信道将信息发送到信息的收方(消费者),收方获取到信息后,按照协议进行解码。收发双方遵循交换协议,确保了收方能够正确解析发方的信息。由于信息传输与交换领域的应用范围非常广泛且各应用的信息结构各不相同,每一种应用均需要建立自己特有的信息交换协议,从而导致产生数量庞大的、类型各异的信息交换协议。针对每一种信息交换协议,信息收发双方均需要单独设计和实现编码器对需要交换的信息进行编码,也需要单独设计和实现解码器对需要交换的信息进行解码,同样导致产生数量庞大的、类型各异的编码器和解码器。一方面,各种不同类型的编码器与解码器的设计和实现存在大量的重复性工作;另一方面,人工设计和实现不同类型的编码器和解码器容易出错、难以调试。总的来说,本领域急需一种遵循通用信息交换协议规范的智能解码方法及解码器,可以仅仅只用一个解码器,就能满足具体应用中结构类型千变万化、信息交换协议各不相同的信息解码需求,大幅度减少各类型解码器设计与实现中的大量重复性工作,并降低解码器的调试难度,提高解码器的可靠性。
技术实现思路
为了解决现有技术中的上述问题,即不同的应用需要构建不同的信息交换协议以及信息解码器的问题,本专利技术提供了一种 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。