CN111510159B - 遵循通用信息交换协议规范的智能编码方法及编码器 - Google Patents
遵循通用信息交换协议规范的智能编码方法及编码器 Download PDFInfo
- Publication number
- CN111510159B CN111510159B CN202010403289.7A CN202010403289A CN111510159B CN 111510159 B CN111510159 B CN 111510159B CN 202010403289 A CN202010403289 A CN 202010403289A CN 111510159 B CN111510159 B CN 111510159B
- Authority
- CN
- China
- Prior art keywords
- information
- information exchange
- exchange protocol
- protocol
- coded
- 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 description 55
- 230000009191 jumping Effects 0.000 claims description 20
- 125000004122 cyclic group Chemical group 0.000 claims description 12
- 230000008676 import Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 9
- 229910002056 binary alloy Inorganic materials 0.000 abstract 1
- 230000008569 process Effects 0.000 description 9
- 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
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Communication Control (AREA)
Abstract
本发明属于信息传输与交换领域,具体涉及了一种遵循通用信息交换协议规范的智能编码器,旨在解决不同的应用需要构建不同的信息交换协议以及信息编码器的问题。本发明包括:预设通用信息交换协议规范;根据该规范制定信息交换协议,并在协议不满足规范时发出错误提示信息进行协议修改;输入符合信息交换协议的待编码信息实例,并在实例不满足协议时报错;通过智能编码算法将待编码信息实例编码为二进制信息实例。本发明将信息实例编码为二进制,提高信息传输效率,并且用户可根据规范编写各种满足不同需求的信息交换协议,不需要重新设计或调整编码器就能够智能识别不同的信息交换协议,采用同样的编码器进行编码,节省了大量的时间。
Description
技术领域
本发明属于信息传输与交换领域,具体涉及了一种遵循通用信息交换协议规范的智能编码方法及编码器。
背景技术
在信息传输与交换领域,信息收发双方(消费者和生产者)在交换信息之前,首先需要建立信息交换协议,按照协议,信息的发方(生产者)对信息进行编码,然后通过约定的信道将信息发送到信息的收方(消费者),收方获取到信息后,按照协议进行解码。收发双方遵循交换协议,确保了收方能够正确解析发方的信息。
由于信息传输与交换领域的应用范围非常广泛且各应用的信息结构各不相同,每一种应用均需要建立自己特有的信息交换协议,从而导致产生数量庞大的、类型各异的信息交换协议。针对每一种信息交换协议,信息收发双方均需要单独设计和实现编码器对需要交换的信息进行编码,也需要单独设计和实现解码器对需要交换的信息进行解码,同样导致产生数量庞大的、类型各异的编码器和解码器。一方面,各种不同类型的编码器与解码器的设计和实现存在大量的重复性工作;另一方面,人工设计和实现不同类型的编码器和解码器容易出错、难以调试。
总的来说,本领域急需一种遵循通用信息交换协议规范的智能编码方法及编码器,可以仅仅只用一个编码器,就能满足具体应用中结构类型***、信息交换协议各不相同的信息编码需求,大幅度减少各类型编码器设计与实现中的大量重复性工作,并降低编码器的调试难度,提高编码器的可靠性。
发明内容
为了解决现有技术中的上述问题,即不同的应用需要构建不同的信息交换协议以及信息编码器的问题,本发明提供了一种遵循通用信息交换协议规范的智能编码方法,该智能编码方法包括:
步骤B10,获取预设的通用信息交换协议规范、用户制定的信息交换协议以及待编码信息实例;
步骤B20,基于所述通用信息交换协议规范,判断所述用户制定的信息交换协议是否符合规范,若符合,则跳转步骤B40;否则,发出协议错误提示信息;
步骤B30,基于所述协议错误提示信息修改所述用户制定的信息交换协议,并跳转步骤B20;
步骤B40,判断所述待编码信息实例是否符合所述用户制定的信息交换协议,若符合,则跳转步骤B60;否则,则发出实例错误提示信息;
步骤B50,基于所述实例错误提示信息修改所述待编码信息实例,并跳转步骤B40;
步骤B60,通过预设的智能编码方法对所述待编码实例进行编码,获得编码成功的二进制信息实例。
在一些优选的实施例中,所述预设的通用信息交换协议规范,其根元素包括顺序元素、循环元素、条件元素中的一个或多个。
在一些优选的实施例中,所述用户制定的信息交换协议基于所述预设的通用信息交换协议规范制定。
在一些优选的实施例中,所述预设的智能编码方法为:
步骤S10,获取符合预设的通用信息交换协议规范的用户制定的信息交换协议和待编码信息实例,并初始化要输出的字节数组binary_data的起始字节与比特位置;
步骤S20,分别解析所述用户制定的信息交换协议和待编码的信息实例的根元素r1和根元素r2,并检查r1与r2的一致性,若一致,则跳转步骤S30;否则,发出错误提示信息;
步骤S30,对所述根元素r1中的每一个子元素e1,获取其在所述根元素r2中匹配的子元素e2,判断并执行:
若e1为顺序元素,则基于e1、e2以及binary_data,通过顺序算法进行所述待编码信息实例的编码,获得编码成功的二进制信息实例;
若e1为循环元素,则基于e1、e2以及binary_data,通过循环算法进行所述待编码信息实例的编码,获得编码成功的二进制信息实例;
若e1为条件元素,则基于e1、e2以及binary_data,通过条件算法进行所述待编码信息实例的编码,获得编码成功的二进制信息实例。
在一些优选的实施例中,“基于e1、e2以及binary_data,通过顺序算法进行所述待编码信息实例的编码”,其方法为:
步骤S311,从所述用户制定的信息交换协议的协议元素e1中获取当前要编码的比特长度length以及数据类型T,并获取e1对应的实例元素e2;
步骤S312,若T为int,则从e2中获取元素值,并转换为int类型数据i;若T为float,则从e2中获取元素值,并转换为float类型数据f;T为string,则从e2中获取元素值,并转换为string类型数据s;
步骤S313,按照所述当前要编码的比特长度length,将转换后的i/f/s按照比特位从低到高顺次添加到binary_data后面。
在一些优选的实施例中,“基于e1、e2以及binary_data,通过循环算法进行所述待编码信息实例的编码”,其方法为:
步骤S321,从所述用户制定的信息交换协议的协议元素e1中获取循环名称name以及循环次数元素名称loop_number_name,并获取e1对应的实例元素的父元素e2;
步骤S322,若loop_number_name为整数,则计算获取循环次数loop_number;否则,统计e2中元素名与所述循环名称name一致的元素的数量作为循环次数loop_number;
步骤S323,从协议元素e1中获取循环次数元素e,并从e中提取loop_number的编码比特长度后,将loop_number按照比特位从低到高顺次添加到binary_data后面;
步骤S324,对于e1除循环名称name以及循环次数元素名称loop_number_name之外的每一个子元素pce,获取其对应的e2的子元素xcce,若xcce为顺序元素,则通过顺序算法编码;若xcce为循环元素,则通过循环算法编码;若xcce为条件元素,则通过条件算法编码。
在一些优选的实施例中,“基于e1、e2以及binary_data,通过条件算法进行所述待编码信息实例的编码”,其方法为:
步骤S331,从所述用户制定的信息交换协议的协议元素e1中属性值,并获取e1对应的实例元素的父元素e2;
步骤S332,判断e2的信息是否符合expression的描述,若不符合,则返回;否则,从e2中获取e1的name属性指示元素condition_element;
步骤S333,对于e1的每一个子元素pce,从condition_element中获取pce元素的name属性指示的实例元素xce;
步步骤S334,若pce为顺序元素,则通过顺序算法进行xce编码;若pce为循环元素,则通过循环算法进行xce编码;若pce为条件元素,则通过条件算法进行xce编码。
本发明的另一方面,提出了一种遵循通用信息交换协议规范的智能编码器,该智能编码器包括协议规范导入模块、用户协议录入接口、协议检查模块、用户信息实例输入接口、信息实例检查模块、智能编码模块;
所述协议规范导入模块,用于导入预设的通用信息交换协议规范;
所述用户协议录入接口,用于导入用户制定的信息交换协议以及根据所述协议检查模块的错误提示信息进行所述信息交换协议的修改;
所述协议检查模块,基于所述通用信息交换协议规范,判断所述用户制定的信息交换协议/修改后的信息交换协议是否符合规范,若不符合,则发送错误提示信息至所述用户协议录入接口;否则,发送实例获取信息至所述用户信息实例输入接口;
所述用户信息实例输入接口,用于在收到实例获取信息后导入待编码信息实例;
所述信息实例检查模块,基于所述用户制定的信息交换协议/修改后的信息交换协议,判断所述待编码信息实例是否符合协议,若不符合,则发出报错信息;否则,将待编码信息实例发送至所述智能编码模块;
所述智能编码模块,基于预设的智能编码方法进行所述待编码信息实例的编码,并输出编码成功的二进制信息实例。
本发明的第三方面,提出了一种存储装置,其中存储有多条程序,所述程序适于由处理器加载并执行以实现上述的遵循通用信息交换协议规范的智能编码方法。
本发明的第四方面,提出了一种处理装置,包括处理器、存储装置;所述处理器,适于执行各条程序;所述存储装置,适于存储多条程序;所述程序适于由处理器加载并执行以实现上述的遵循通用信息交换协议规范的智能编码方法。
本发明的有益效果:
本发明遵循通用信息交换协议规范的智能编码方法及编码器,在遵循通用信息交换协议规范的条件下,根据用户制定的协议把用户提供的、符合用户制定协议的、基于文本的信息实例编码成二进制的信息实例。由此,用户不需要针对每一种信息交换协议,设计、实现和调试自己特有的编码器,从而大大降低用户的开发和调试工作量。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本发明遵循通用信息交换协议规范的智能编码方法的工作流程示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本发明提供一种遵循通用信息交换协议规范的智能编码方法,首先,根据预设的通用信息交换协议规范对输入的用户制定的信息交换协议进行检查:若信息交换协议不符合规范,则报错,用户需修改信息交换协议以符合规范;若信息交换协议符合规范,则用户根据信息交换协议输入基于文本的待编码信息实例。然后,检查待编码信息实例是否符合信息交换协议:若不符合信息交换协议,则报错;若符合协议,则根据预设的智能编码方法执行编码,获得编码成功的二进制信息实例。。
本发明的一种遵循通用信息交换协议规范的智能编码方法,该智能编码方法包括:
步骤B10,获取预设的通用信息交换协议规范、用户制定的信息交换协议以及待编码信息实例;
步骤B20,基于所述通用信息交换协议规范,判断所述用户制定的信息交换协议是否符合规范,若符合,则跳转步骤B40;否则,发出协议错误提示信息;
步骤B30,基于所述协议错误提示信息修改所述用户制定的信息交换协议,并跳转步骤B20;
步骤B40,判断所述待编码信息实例是否符合所述用户制定的信息交换协议,若符合,则跳转步骤B60;否则,则发出实例错误提示信息;
步骤B50,基于所述实例错误提示信息修改所述待编码信息实例,并跳转步骤B40;
步骤B60,通过预设的智能编码方法对所述待编码实例进行编码,获得编码成功的二进制信息实例。
为了更清晰地对本发明遵循通用信息交换协议规范的智能编码方法进行说明,下面结合图1对本发明实施例中各步骤展开详述。
本发明一种实施例的遵循通用信息交换协议规范的智能编码方法,包括步骤B10-步骤B60,各步骤详细描述如下:
步骤B10,获取预设的通用信息交换协议规范、用户制定的信息交换协议以及待编码信息实例。
预设的通用信息交换协议规范,其根元素包括顺序元素、循环元素、条件元素中的一个或多个。
信息交换协议规范的根元素protocol,根元素必须包含顺序元素sequence、循环元素loop或条件元素condition中至少一个,可以包含多个,并且每个元素可多次、任意顺序地出现。
本发明一个实施例中,预设的通用信息交换协议规范为:
用户制定的信息交换协议为收发双方都认可的,为后续信息交换提供依据的文件。该协议为根据上述的通用信息交换协议规范所制定的协议:为描述了一段目标位置信息共享的协议,包括目标名称、经纬度等信息,协议中也用到了顺序元素和条件元素。
本发明一个实施例中,用户制定的信息交换协议为:
步骤B20,基于所述通用信息交换协议规范,判断所述用户制定的信息交换协议是否符合规范,若符合,则跳转步骤B40;否则,发出协议错误提示信息。
步骤B30,基于所述协议错误提示信息修改所述用户制定的信息交换协议,并跳转步骤B20。
如果用户制定的信息交换协议满足通用信息交换协议规范则进行下一步;如不满足,则发出错误提示信息,用户需要对信息交换协议做出相应的修改。
只有信息交换协议满足这种规范时,***才能进行正常的编码工作。
步骤B40,判断所述待编码信息实例是否符合所述用户制定的信息交换协议,若符合,则跳转步骤B60;否则,则发出实例错误提示信息。
步骤B50,基于所述实例错误提示信息修改所述待编码信息实例,并跳转步骤B40。
待编码信息实例就是用户想要发送的信息,它需要满足收发双方制定的信息交换协议,本发明一个实施例中,待编码信息实例为:
该待编码信息实例整体为一个信息实例,用来描述一个目标,描述的信息包括目标的名称、经纬度等,符合前文制定的信息交换协议,可读性也较强。
步骤B60,通过预设的智能编码方法对所述待编码实例进行编码,获得编码成功的二进制信息实例。
预设的智能编码方法以符合预设的通用信息交换协议规范的用户制定的信息交换协议protocol以及符合用户制定的信息交换协议的待编码信息实例instance为输入,以与protocol及instance匹配的二进制信息实例文件及其字节数组binary为输出,其编码过程为:
步骤S10,获取符合预设的通用信息交换协议规范的用户制定的信息交换协议protocol和待编码信息实例instance,并初始化要输出的字节数组binary_data的起始字节与比特位置。
读入protocol及instance,并初始化binary的起始字节与比特位置。
步骤S20,分别解析所述用户制定的信息交换协议和待编码的信息实例的根元素r1和根元素r2,并检查r1与r2的一致性,若一致,则跳转步骤S30;否则,发出错误提示信息。
解析protocol的根元素r1及instance的根元素r2,并检查根元素r1与根元素r2的一致性。
步骤S30,对所述根元素r1中的每一个子元素e1,获取其在所述根元素r2中匹配的子元素e2,判断并执行:
若e1为顺序元素,则基于e1、e2以及binary_data,通过顺序算法SEQUENCE_Encode(e1,e2,binary)进行所述待编码信息实例的编码,获得编码成功的二进制信息实例。
若e1为循环元素,则基于e1、e2以及binary_data,通过循环算法LOOP_Encode(e1,r2,binary)进行所述待编码信息实例的编码,获得编码成功的二进制信息实例。
若e1为条件元素,则基于e1、e2以及binary_data,通过条件算法CONDITION_Encode(e1,r2,binary)进行所述待编码信息实例的编码,获得编码成功的二进制信息实例。
协议与实例的一致性是指二者的根元素具有相同的名称,通常,根元素用作区分不同的协议,任何符合协议的实例的根元素必须要有与协议根元素相同的名称。
本发明一个实施例中,在初始化字节数组时,假定编码后的字节数量不会超过32位整数所能表示的最大值。
顺序算法SEQUENCE_Encode以协议元素pe(即e1)、与协议元素pe对应的实例元素xe(即e2)、要输出的二进制数据binary_data为输入,以编码完成后的binary为输出,其编码过程为:
步骤S311,从所述用户制定的信息交换协议的协议元素pe中获取要编码的比特长度length以及数据类型T,并获取pe对应的实例元素xe。
步骤S312,若T为int,则从xe中获取元素值,并转换为int类型数据i;若T为float,则从xe中获取元素值,并转换为float类型数据f;T为string,则从xe中获取元素值,并转换为string类型数据s;
步骤S313,按照所述当前要编码的比特长度length,将转换后的i/f/s按照比特位从低到高顺次添加到binary_data后面。
上述编码过程中,如果比特长度是直接量,则获取即得;如果比特长度是间接量,则通过计算pe元素的关联元素值获取。
循环算法LOOP_Encode以协议元素pe(即e1)、与协议元素pe对应的实例元素的父元素xe(即e2)、要输出的二进制数据binary_data为输入,以编码完成后的binary为输出,其编码过程为:
步骤S321,从所述用户制定的信息交换协议的协议元素pe中获取循环名称name以及循环次数元素名称loop_number_name,并获取pe对应的实例元素的父元素xe;
步骤S322,若loop_number_name为整数,则计算获取循环次数loop_number;否则,统计xe中元素名与所述循环名称name一致的元素的数量作为循环次数loop_number;
步骤S323,从协议元素pe中获取循环次数元素e,并从e中提取编码比特长度后,将loop_number按照比特位从低到高顺次添加到binary_data后面;
步骤S324,对于pe除循环名称name以及循环次数元素名称loop_number_name之外的每一个子元素pce,获取其对应的xe的子元素xcce,若xcce为顺序元素,则通过顺序算法SEQUENCE_Encode(pce,xcce,binary)编码;若xcce为循环元素,则通过循环算法LOOP_Encode(pce,xce,binary)编码;若xcce为条件元素,则通过条件算法CONDITION_Encode(pce,xce,binary)编码。
条件算法CONDITION_Encode以协议元素pe(即e1)、与协议元素pe对应的实例元素的父元素xe(即e2)、要输出的二进制数据binary_data为输入,以编码完成后的binary为输出,其编码过程为:
步骤S331,从所述用户制定的信息交换协议的协议元素pe中属性值,并获取pe对应的实例元素的父元素xe;
步骤S332,调用算法EXPRESSION_Eval(xe,expression)判断e2的信息是否符合expression的描述,若不符合,则返回;否则,从xe中获取pe的name属性指示元素condition_element;
步骤S333,对于pe的每一个子元素pce,从condition_element中获取pce元素的name属性指示的实例元素xce;
步骤S334,若pce为顺序元素,则通过顺序算法SEQUENCE_Encode(pce,xce,binary)进行xce编码;若pce为循环元素,则通过循环算法LOOP_Encode(pce,xce,binary)进行xce编码;若pce为条件元素,则通过条件算法CONDITION_Encode(pce,xce,binary)进行xce编码。
本发明第二实施例的遵循通用信息交换协议规范的智能编码器,该智能编码器包括协议规范导入模块、用户协议录入接口、协议检查模块、用户信息实例输入接口、信息实例检查模块、智能编码模块;
所述协议规范导入模块,用于导入预设的通用信息交换协议规范;
所述用户协议录入接口,用于导入用户制定的信息交换协议以及根据所述协议检查模块的错误提示信息进行所述信息交换协议的修改;
所述协议检查模块,基于所述通用信息交换协议规范,判断所述用户制定的信息交换协议/修改后的信息交换协议是否符合规范,若不符合,则发送错误提示信息至所述用户协议录入接口;否则,发送实例获取信息至所述用户信息实例输入接口;
所述用户信息实例输入接口,用于在收到实例获取信息后导入待编码信息实例;
所述信息实例检查模块,基于所述用户制定的信息交换协议/修改后的信息交换协议,判断所述待编码信息实例是否符合协议,若不符合,则发出报错信息;否则,将待编码信息实例发送至所述智能编码模块;
所述智能编码模块,基于预设的智能编码方法进行所述待编码信息实例的编码,并输出编码成功的二进制信息实例。
导入预设的通用信息交换协议规范,是为了辅助和约束用户制定相应的信息交换协议,它规定了信息实例中信息的组织结构、包含的元素、以及相关元素的一些长度或类型的限制等。
导入用户制定的一种信息交换协议,是指本***为用户提供一个信息交换协议输入的接口,用户根据前面的协议规范和自身传输数据的需求,制定出相应的信息交换协议,然后在这个接口中输入协议,这个协议也为信息实例提供了依据。
***将根据导入的预设的通用信息交换协议规范对用户制定的信息交换协议进行检查,是指本***会根据预设的通用信息交换协议规范检查用户制定的信息交换协议是否满足规范定义的文本组织结构,以及其子元素是否满足规范定义的一些限制。如果满足,***才能进行下一步的工作,否则***会报错,并给出错误提示信息,用户可以根据错误提示信息对信息交换协议进行修改,然后把修改好的信息交换协议重新通过信息交换协议输入接口导入。
用户根据信息交换协议输入基于文本的信息实例,即待编码信息实例,是指本***为用户提供一个信息实例输入的接口,用户将其符合前面所述的信息交换协议的需要传输的信息实例输入到***。
***检查信息实例是否符合协议,是指本***会根据用户制定的信息交换协议对用户输入的待编码信息实例进行检查,检查该信息实例是否满足信息交换协议。只有满足信息交换协议,***才能进行下一步的编码工作,否则***会报错。
***根据智能编码方法执行编码,是指在信息交换协议满足协议规范,且信息实例满足信息交换协议时,***会依照智能编码方法对待编码信息实例进行编码,把信息实例编码成二进制的形式,压缩数据传输量,提高传输效率。
本发明针对传统信息传输与交换中存在的编码器繁多、效率较低的问题,设计实现了一种智能编码器,包括了一种通用信息交换协议规范,根据该规范,用户能够编写信息交换协议与基于文本的信息实例;然后,智能编码器可将该信息实例编码为基于二进制的信息实例,提高信息传输效率。而且,用户可根据本发明提出的通用信息交换协议规范,编写各种满足不同需求的信息交换协议,但不需要重新设计或调整编码器,智能编码器就能够智能识别这些不同的信息交换协议,采用同样的编码器进行编码,节省了大量的编码器开发时间。
需要说明的是,上述实施例提供的遵循通用信息交换协议规范的智能编码器,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块名称,仅仅是为了区分各个模块,不视为对本发明的不当限定。
本发明第三实施例的一种存储装置,其中存储有多条程序,所述程序适于由处理器加载并执行以实现上述的遵循通用信息交换协议规范的智能编码方法。
本发明第四实施例的一种处理装置,包括处理器、存储装置;处理器,适于执行各条程序;存储装置,适于存储多条程序;所述程序适于由处理器加载并执行以实现上述的遵循通用信息交换协议规范的智能编码方法。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的模块、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件模块、方法步骤对应的程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。
术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
Claims (7)
1.一种遵循通用信息交换协议规范的智能编码方法,其特征在于,该智能编码方法包括:
步骤B10,获取预设的通用信息交换协议规范、用户制定的信息交换协议以及待编码信息实例;所述预设的通用信息交换协议规范,其根元素包括顺序元素、循环元素、条件元素中的一个或多个,每个元素可一次或多次地出现在任意位置;所述用户制定的信息交换协议基于所述预设的通用信息交换协议规范制定;
步骤B20,基于所述通用信息交换协议规范,判断所述用户制定的信息交换协议是否符合规范,若符合,则跳转步骤B40;否则,发出协议错误提示信息;
步骤B30,基于所述协议错误提示信息修改所述用户制定的信息交换协议,并跳转步骤B20;
步骤B40,判断所述待编码信息实例是否符合所述用户制定的信息交换协议,若符合,则跳转步骤B60;否则,则发出实例错误提示信息;
步骤B50,基于所述实例错误提示信息修改所述待编码信息实例,并跳转步骤B40;
步骤B60,通过预设的智能编码方法对所述待编码实例进行编码,获得编码成功的二进制信息实例;
其中,所述预设的智能编码方法为:
步骤S10,获取符合预设的通用信息交换协议规范的用户制定的信息交换协议和待编码信息实例,并初始化要输出的字节数组binary_data的起始字节与比特位置;
步骤S20,分别解析所述用户制定的信息交换协议和待编码的信息实例的根元素r1和根元素r2,并检查r1与r2的一致性,若一致,则跳转步骤S30;否则,发出错误提示信息;
步骤S30,对所述根元素r1中的每一个子元素e1,获取其在所述根元素r2中匹配的子元素e2,判断并执行:
若e1为顺序元素,则基于e1、e2以及binary_data,通过顺序算法进行所述待编码信息实例的编码,获得编码成功的二进制信息实例;
若e1为循环元素,则基于e1、e2以及binary_data,通过循环算法进行所述待编码信息实例的编码,获得编码成功的二进制信息实例;
若e1为条件元素,则基于e1、e2以及binary_data,通过条件算法进行所述待编码信息实例的编码,获得编码成功的二进制信息实例。
2.根据权利要求1所述的遵循通用信息交换协议规范的智能编码方法,其特征在于,“基于e1、e2以及binary_data,通过顺序算法进行所述待编码信息实例的编码”,其方法为:
步骤S311,从所述用户制定的信息交换协议的协议元素e1中获取当前要编码的比特长度length以及数据类型T,并获取e1对应的实例元素e2;
步骤S312,若T为int,则从e2中获取元素值,并转换为int类型数据i;若T为float,则从e2中获取元素值,并转换为float类型数据f;T为string,则从e2中获取元素值,并转换为string类型数据s;
步骤S313,按照所述当前要编码的比特长度length,将转换后的i/f/s按照比特位从低到高顺次添加到binary_data后面。
3.根据权利要求2所述的遵循通用信息交换协议规范的智能编码方法,其特征在于,“基于e1、e2以及binary_data,通过循环算法进行所述待编码信息实例的编码”,其方法为:
步骤S321,从所述用户制定的信息交换协议的协议元素e1中获取循环名称name以及循环次数元素名称loop_number_name,并获取e1对应的实例元素的父元素e2;
步骤S322,若loop_number_name为整数,则计算获取循环次数loop_number;否则,统计e2中元素名与所述循环名称name一致的元素的数量作为循环次数loop_number;
步骤S323,从协议元素e1中获取循环次数元素e,并从e中提取loop_number的编码比特长度后,将loop_number按照比特位从低到高顺次添加到binary_data后面;
步骤S324,对于e1除循环名称name以及循环次数元素名称loop_number_name之外的每一个子元素pce,获取其对应的e2的子元素xcce,若xcce为顺序元素,则通过顺序算法编码;若xcce为循环元素,则通过循环算法编码;若xcce为条件元素,则通过条件算法编码。
4.根据权利要求3所述的遵循通用信息交换协议规范的智能编码方法,其特征在于,“基于e1、e2以及binary_data,通过条件算法进行所述待编码信息实例的编码”,其方法为:
步骤S331,从所述用户制定的信息交换协议的协议元素e1中属性值,并获取e1对应的实例元素的父元素e2;
步骤S332,判断e2的信息是否符合expression的描述,若不符合,则返回;否则,从e2中获取e1的name属性指示元素condition_element;
步骤S333,对于e1的每一个子元素pce,从condition_element中获取pce元素的name属性指示的实例元素xce;
步骤S334,若pce为顺序元素,则通过顺序算法进行xce编码;若pce为循环元素,则通过循环算法进行xce编码;若pce为条件元素,则通过条件算法进行xce编码。
5.一种遵循通用信息交换协议规范的智能编码器,其特征在于,该智能编码器包括协议规范导入模块、用户协议录入接口、协议检查模块、用户信息实例输入接口、信息实例检查模块、智能编码模块;
所述协议规范导入模块,用于导入预设的通用信息交换协议规范;所述预设的通用信息交换协议规范,其根元素包括顺序元素、循环元素、条件元素中的一个或多个,每个元素可一次或多次地出现在任意位置;
所述用户协议录入接口,用于导入用户制定的信息交换协议以及根据所述协议检查模块的错误提示信息进行所述信息交换协议的修改;所述用户制定的信息交换协议基于所述预设的通用信息交换协议规范制定;
所述协议检查模块,基于所述通用信息交换协议规范,判断所述用户制定的信息交换协议/修改后的信息交换协议是否符合规范,若不符合,则发送错误提示信息至所述用户协议录入接口;否则,发送实例获取信息至所述用户信息实例输入接口;
所述用户信息实例输入接口,用于在收到实例获取信息后导入待编码信息实例;
所述信息实例检查模块,基于所述用户制定的信息交换协议/修改后的信息交换协议,判断所述待编码信息实例是否符合协议,若不符合,则发出报错信息;否则,将待编码信息实例发送至所述智能编码模块;
所述智能编码模块,基于预设的智能编码方法进行所述待编码信息实例的编码,并输出编码成功的二进制信息实例;
其中,所述预设的智能编码方法为:
步骤S10,获取符合预设的通用信息交换协议规范的用户制定的信息交换协议和待编码信息实例,并初始化要输出的字节数组binary_data的起始字节与比特位置;
步骤S20,分别解析所述用户制定的信息交换协议和待编码的信息实例的根元素r1和根元素r2,并检查r1与r2的一致性,若一致,则跳转步骤S30;否则,发出错误提示信息;
步骤S30,对所述根元素r1中的每一个子元素e1,获取其在所述根元素r2中匹配的子元素e2,判断并执行:
若e1为顺序元素,则基于e1、e2以及binary_data,通过顺序算法进行所述待编码信息实例的编码,获得编码成功的二进制信息实例;
若e1为循环元素,则基于e1、e2以及binary_data,通过循环算法进行所述待编码信息实例的编码,获得编码成功的二进制信息实例;
若e1为条件元素,则基于e1、e2以及binary_data,通过条件算法进行所述待编码信息实例的编码,获得编码成功的二进制信息实例。
6.一种存储装置,其中存储有多条程序,其特征在于,所述程序适于由处理器加载并执行以实现权利要求1-4任一项所述的遵循通用信息交换协议规范的智能编码方法。
7.一种处理装置,包括
处理器,适于执行各条程序;以及
存储装置,适于存储多条程序;
其特征在于,所述程序适于由处理器加载并执行以实现:
权利要求1-4任一项所述的遵循通用信息交换协议规范的智能编码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010403289.7A CN111510159B (zh) | 2020-05-13 | 2020-05-13 | 遵循通用信息交换协议规范的智能编码方法及编码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010403289.7A CN111510159B (zh) | 2020-05-13 | 2020-05-13 | 遵循通用信息交换协议规范的智能编码方法及编码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111510159A CN111510159A (zh) | 2020-08-07 |
CN111510159B true CN111510159B (zh) | 2022-03-08 |
Family
ID=71871894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010403289.7A Active CN111510159B (zh) | 2020-05-13 | 2020-05-13 | 遵循通用信息交换协议规范的智能编码方法及编码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111510159B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003014917A1 (en) * | 2001-08-09 | 2003-02-20 | Primelayer Software Inc. | A universal driver apparatus and method |
CN101820418A (zh) * | 2010-03-19 | 2010-09-01 | 上海博康智能网络科技有限公司 | 可扩展协议的通用安防设备控制方法及*** |
CN102325129A (zh) * | 2011-07-14 | 2012-01-18 | 广州致远电子有限公司 | 一项用于测量分析仪器的自定义协议解码技术 |
CN103001971A (zh) * | 2012-12-25 | 2013-03-27 | 成都科来软件有限公司 | 一种网络数据包解析方法 |
CN105049256A (zh) * | 2015-08-10 | 2015-11-11 | 北京思特奇信息技术股份有限公司 | 一种通用自定义接口报文实现方法及*** |
CN105812368A (zh) * | 2016-03-15 | 2016-07-27 | 山东超越数控电子有限公司 | 一种多种通讯协议通用编程方法 |
CN107547574A (zh) * | 2017-10-31 | 2018-01-05 | 哈尔滨工业大学 | 一种基于通用协议的通信***及方法 |
CN108076017A (zh) * | 2016-11-16 | 2018-05-25 | 腾讯科技(深圳)有限公司 | 一种数据包的协议解析方法及装置 |
CN109150676A (zh) * | 2018-09-14 | 2019-01-04 | 杭州若奇技术有限公司 | 智能设备的应用编码、解码方法和装置以及应用*** |
CN110708307A (zh) * | 2019-09-29 | 2020-01-17 | 北京明略软件***有限公司 | 转码器生成方法和装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6996833B1 (en) * | 2001-03-27 | 2006-02-07 | Microsoft Corporation | Protocol agnostic request response pattern |
BR112015009944A2 (pt) * | 2012-11-08 | 2017-10-03 | Q Factor Communications Corp | Aparelhos de transmissão de pacotes, sistema de comunicação para transmitir ou receber pacote, métodos para transferir confiavelmente dados de fonte de dados a receptor de dados, algoritmo e método para transmitir blocos de dados. |
-
2020
- 2020-05-13 CN CN202010403289.7A patent/CN111510159B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003014917A1 (en) * | 2001-08-09 | 2003-02-20 | Primelayer Software Inc. | A universal driver apparatus and method |
CN101820418A (zh) * | 2010-03-19 | 2010-09-01 | 上海博康智能网络科技有限公司 | 可扩展协议的通用安防设备控制方法及*** |
CN102325129A (zh) * | 2011-07-14 | 2012-01-18 | 广州致远电子有限公司 | 一项用于测量分析仪器的自定义协议解码技术 |
CN103001971A (zh) * | 2012-12-25 | 2013-03-27 | 成都科来软件有限公司 | 一种网络数据包解析方法 |
CN105049256A (zh) * | 2015-08-10 | 2015-11-11 | 北京思特奇信息技术股份有限公司 | 一种通用自定义接口报文实现方法及*** |
CN105812368A (zh) * | 2016-03-15 | 2016-07-27 | 山东超越数控电子有限公司 | 一种多种通讯协议通用编程方法 |
CN108076017A (zh) * | 2016-11-16 | 2018-05-25 | 腾讯科技(深圳)有限公司 | 一种数据包的协议解析方法及装置 |
CN107547574A (zh) * | 2017-10-31 | 2018-01-05 | 哈尔滨工业大学 | 一种基于通用协议的通信***及方法 |
CN109150676A (zh) * | 2018-09-14 | 2019-01-04 | 杭州若奇技术有限公司 | 智能设备的应用编码、解码方法和装置以及应用*** |
CN110708307A (zh) * | 2019-09-29 | 2020-01-17 | 北京明略软件***有限公司 | 转码器生成方法和装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111510159A (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100614677B1 (ko) | 구조화된 문서를 압축/복원하기 위한 방법 | |
CN101841515B (zh) | 可变目标的协议数据单元编解码代码自动生成的实现方法 | |
CN110445860B (zh) | 一种报文发送方法、装置、终端设备及存储介质 | |
CN111131403A (zh) | 一种物联网设备的消息编解码方法及装置 | |
CN111147462A (zh) | 一种基于FPGA的step协议解析方法、***、终端及存储介质 | |
CN110060158B (zh) | 基于变长编码的智能合约执行方法和装置 | |
CN101807205A (zh) | 用于处理xml数据的处理模块、设备和方法 | |
CN101202736B (zh) | 一种基于抽象语法标记实现编解码的方法 | |
CN112188211A (zh) | 一种转码实现方法和装置 | |
CN114331416A (zh) | 数据处理的方法、装置、电子设备及存储介质 | |
CN114327477A (zh) | 智能合约执行方法、装置、电子装置和存储介质 | |
US10282400B2 (en) | Grammar generation for simple datatypes | |
CN112911024B (zh) | 一种物联网数据采集的方法、***、电子装置和存储介质 | |
CN114492316B (zh) | 数据交换编解码方法和*** | |
CN111510159B (zh) | 遵循通用信息交换协议规范的智能编码方法及编码器 | |
CN114169292A (zh) | 一种字节流数据转换方法、装置、设备及存储介质 | |
CN115495082B (zh) | Tlv格式数据自动转换方法及相关设备 | |
CN116775599A (zh) | 数据迁移方法、装置、电子设备、存储介质 | |
CN111464565B (zh) | 遵循通用信息交换协议规范的智能解码方法及解码器 | |
CN101101606A (zh) | 用于嵌入式浏览器的网页编码语言自动识别方法及装置 | |
CN103631983A (zh) | 一种战术数据报文模拟方法及*** | |
CN109885549A (zh) | 一种日志收集方法、装置、***及计算机存储介质 | |
CN112698825B (zh) | 编程积木块转换方法、装置、处理设备及存储介质 | |
CN116431117B (zh) | 使用结构化数据与嵌入式主机通信的方法和*** | |
CN112001156A (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 |