CN103716127B - 一种基于ttcn‑3的压缩编解码的方法和系统 - Google Patents
一种基于ttcn‑3的压缩编解码的方法和系统 Download PDFInfo
- Publication number
- CN103716127B CN103716127B CN201310632203.8A CN201310632203A CN103716127B CN 103716127 B CN103716127 B CN 103716127B CN 201310632203 A CN201310632203 A CN 201310632203A CN 103716127 B CN103716127 B CN 103716127B
- Authority
- CN
- China
- Prior art keywords
- module
- data
- coding
- ttcn
- data structure
- 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
Landscapes
- Communication Control (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于TTCN‑3的压缩编解码方法和系统,其中方法包括:测试模块向被测试模块发送数据前,通过测试模块中的第一编码模块完成对待发送数据从适合测试模块的数据结构到通用数据结构的转换;被测试模块接收到数据后,通过第二解码模块进行解码,将其从通用数据结构转换为适合被测试模块的数据结构;被测试模块向测试模块发送数据前,通过被测试模块中的第二编码模块完成对待发送数据从适合被测试模块的数据结构到通用数据结构的转换;测试模块接收到数据后,通过第一解码模块进行解码,将其从通用数据结构转换为适合测试模块的数据结构。该方法通过较少的附加信息位去除用于对齐的填充信息,减少对无效信息数据的传输,提高传输和测试效率。
Description
技术领域
本发明涉及软件技术领域,尤其涉及一种基于TTCN-3的压缩编解码的方法和系统。
背景技术
在通信技术快速发展的今天,通信测试仪表也成为新技术研发和验证的关键一环。在测试功能的开发上,TTCN-3(Testing and Test Control Notation,一种标注测试语言)以其简洁的语法,丰富的基本功能库和快捷的测试模型构建,被3GPP(3rd GenerationPartnership Project,第三代合作伙伴计划)作为专业的测试语言进行推广。一般在测试系统中,TTCN-3通常用于构造测试模块,是测试功能的核心所在,被测模块通常是由C语言实现的承担实际功能的模块。因此,测试功能的实施要求TTCN-3模块和C模块之间的有效通信。TTCN-3有自己独特的语法,其包含的一些基本类型和C之间有一定的对应关系,但实际数据内容的存放是根据统一的标准由开发平台封装实现的,对于用户不可见,但是平台需要针对不同的基本类型提供对应的接口函数来供用户获取其中存放的具体内容。同时平台提供针对具体基本类型的注册编解码机制,即提供API(Application ProgrammingInterface,应用程序编程接口)对特定类型使用的编解码函数在程序运行时进行注册,在执行相应类型编解码时会调用用户注册的编解码函数,从而实现了用户自定义的编解码。基于此特点,测试模块(即TTCN-3模块)和被测模块(即C模块)之间可以根据测试需要灵活定义数据接口,实现测试模块和被测模块之间的信息传递。
基于TTCN-3的数据结构特点,TTCN-3可以通过针对基本类型递归的方式来按序提取成员的实际内容。传统编解码方法通常情况下,将TTCN-3模块和C模块之间的传输数据结构定义为与TTCN-3数据类型相对应的C结构体,并在TTCN-3适配模块通过递归方式将TTCN结构直接编码为C结构体。在C模块的接收处可以将接收数据强转为C结构体,然后再做进一步的解析。同时TTCN-3模块接收处理也是针对C结构体进行,从C结构体中获取成员的具体取值,并通过TTCN-3提供的API将其存储为对应的TTCN-3数据类型。
上述传统的编解码方法在待传结构体的体积较小时可以达到简单快捷的效果,但是对于目前的应用系统,例如在通信测试系统中,通常需要定义包含小区信息和无线资源配置等众多信息在内的数据类型,并且可能会包含大维度的可变长结构体数组。如果按照传统的结构定义传输数据结构,会使得传输的结构体体积非常大,从而降低传输和测试效率。
发明内容
(一)要解决的技术问题
针对上述缺陷,本发明要解决的技术问题是如何在TTCN-3模块和C模块之间进行大结构的数据传输,同时具备相对较高的数据传输效率和较少的传输时间。
(二)技术方案
为解决上述问题,本发明提供了一种基于TTCN-3的压缩编解码方法,包括:
S1、测试模块向被测试模块发送数据前,通过测试模块中的第一编码模块完成对待发送数据从适合测试模块的数据结构到通用数据结构的转换;
S2、被测试模块接收到数据后,通过第二解码模块进行解码,将其从通用数据结构转换为适合被测试模块的数据结构;
S3、被测试模块向测试模块发送数据前,通过被测试模块中的第二编码模块完成对待发送数据从适合被测试模块的数据结构到通用数据结构的转换;
S4、测试模块接收到数据后,通过第一解码模块进行解码,将其从通用数据结构转换为适合测试模块的数据结构。
进一步地,所述测试模块和所述被测试模块是两种不同的进程,其中测试模块为TTCN-3模块,适合TTCN-3模块的数据结构为TTCN-3结构体,被测试模块为C模块,适合C模块的数据结构为C结构体。
进一步地,所述第一编码模块和第二编码模块中转换为通用数据结构,具体包括:
去除用于结构体对齐的填充位,并在每种基本类型的有效数据前添加附加信息位,所述附加信息位用于标记结构体数据的长度,并根据所述附加信息位动态分配存储内容所占用空间。
进一步地,所述测试模块中的第一编码模块、第一解码模块以及被测试模块中的第二编码模块和第二解码模块均基于递归方法进行编码和解码,具体的:
第一编码模块基于递归方法,在每种基本类型的有效信息前编入对应的附加信息位,同时删除每种基本类型的数据编码后用于C结构体对齐的计算和填充;
第一解码模块基于递归方法,在解码每种基本类型的具体信息时,根据所述附加信息位获取TTCN-3结构体的有效信息;
第二编码模块基于递归方法,将C结构体转换为通用数据结构;
第二解码模块根据通用数据结构携带的附加信息位还原出当前传输的C结构体。
进一步地,所述第二编码模块通过本地存储的对应通用数据结构的附加信息位字典来实现,其中附加信息位字典通过TTCN-3模块中对应的数据基本类型在所述第二编码模块中不对具体类型的取值进行编码,而仅对附加信息位进行编码生成。
为解决上述技术问题,本发明还提供了一种基于TTCN-3的压缩编解码系统,包括测试模块和被测试模块,测试模块和被测试模块的内部均有编码模块和解码模块,测试模块中包括第一编码模块和第一解码模块,被测试模块中包括第二编码模块和第二解码模块;
其中第一编码模块用于测试模块向被测试模块发送数据前,通过测试模块中的第一编码模块完成对待发送数据从适合测试模块的数据结构到通用数据结构的转换;
第一解码模块用于测试模块接收到数据后,通过第一解码模块进行解码,将其从通用数据结构转换为适合测试模块的数据结构;
第二编码模块用于被测试模块向测试模块发送数据前,通过被测试模块中的第二编码模块完成对待发送数据从适合被测试模块的数据结构到通用数据结构的转换;
第二解码模块用于被测试模块接收到数据后,通过第二解码模块进行解码,将其从通用数据结构转换为适合被测试模块的数据结构。
进一步地,其中测试模块为TTCN-3模块,适合TTCN-3模块的数据结构为TTCN-3结构体,被测试模块为C模块,适合C模块的数据结构为C结构体。
进一步地,所述第一编码模块和第二编码模块中转换为通用数据结构,具体包括:
去除用于结构体对齐的填充位,并在每种基本类型的有效数据前添加附加信息位,所述附加信息位用于标记结构体数据的长度,并根据所述附加信息位动态分配存储内容所占用空间。
(三)有益效果
本发明提供了一种基于TTCN-3的压缩编解码方法和系统,其中方法包括:测试模块向被测试模块发送数据前,通过测试模块中的第一编码模块完成对待发送数据从适合测试模块的数据结构到通用数据结构的转换;被测试模块接收到数据后,通过第二解码模块进行解码,将其从通用数据结构转换为适合被测试模块的数据结构;被测试模块向测试模块发送数据前,通过被测试模块中的第二编码模块完成对待发送数据从适合被测试模块的数据结构到通用数据结构的转换;测试模块接收到数据后,通过第一解码模块进行解码,将其从通用数据结构转换为适合测试模块的数据结构。该方法通过较少的附加信息位去除用于对齐的填充信息,减少传统C结构体传输过程中对无效信息数据的传输,对于可变长类型可以根据实际传输内容动态调整传输结构,提高对于大结构数据的传输效率和测试效率。
附图说明
图1为本发明实施例一提供的一种基于TTCN-3的压缩编解码方法的步骤流程图;
图2为本发明实施例一提供的TTCN-3模块与C模块进行通信时的收发整体处理过程示意图;
图3为本发明实施例一提供的TTCN-3模块与C模块之间通信时定义的通用数据结构描述和TTCN-3的基本类型相对应,每种类型前根据其自身的特点添加特定的附加位信息;
图4为本发明实施例一提供的TTCN-3模块中的递归编码过程,其中对每个基本类型进行编码时遵循图2中数据结构要求;
图5为本发明实施例一提供的TTCN-3模块中递归解码过程,其中对每个基本类型解析时以图2中数据结构为依据;
图6为本发明实施例一提供的C模块中基于TTCN-3提供的附加信息进行的由C结构体到通用数据结构的编码过程,其中递归的关键在于本地存储的TTCN-3附加信息词典,在递归过程中对长度,结构体大小和实际取值内容根据当前传输数据内容进行调整;
图7为本发明实施例一提供的C模块中对于依据传输数据中的附加信息进行递归解码,还原出当前数据对应的C结构体;
图8为本发明实施例二提供的一种基于TTCN-3的压缩编解码系统的组成示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
实施例一
本发明实施例一提供了一种基于TTCN-3的压缩编解码方法,步骤流程如图1所示,具体包括以下步骤:
步骤S1、测试模块向被测试模块发送数据前,通过测试模块中的第一编码模块完成对待发送数据从适合测试模块的数据结构到通用数据结构的转换。
步骤S2、被测试模块接收到数据后,通过第二解码模块进行解码,将其从通用数据结构转换为适合被测试模块的数据结构。
步骤S3、被测试模块向测试模块发送数据前,通过被测试模块中的第二编码模块完成对待发送数据从适合被测试模块的数据结构到通用数据结构的转换。
步骤S4、测试模块接收到数据后,通过第一解码模块进行解码,将其从通用数据结构转换为适合测试模块的数据结构。
上述基于TTCN-3的压缩编解码方法,基于TTCN-3递归方式,通过定义新的传输数据结构,减少了传统C结构体传输过程中无效信息的传输,对于可变长类型可以根据实际传输内容动态调整传输结构,从而解决TTCN-3测试系统中定义的大结构数据的传输效率问题,同时本发明提供的通过附加信息位实现优化结构体传输大小的方法也可以作为通用的方法扩展到一般的模块间接口定义和传输过程中。
优选地本实施例中第一编码模块和第二编码模块中转换为通用数据结构,具体包括:
去除用于结构体对齐的填充位,并在每种基本类型的有效数据前添加附加信息位,附加信息位用于标记结构体数据的长度,并根据附加信息位动态分配存储内容所占用空间。
优选地,本实施例中测试模块和被测试模块是两种不同的进程,本实施例中以通信测试仪为例,其中测试模块为TTCN-3模块,适合TTCN-3模块的数据结构为TTCN-3结构体,被测试模块为C模块,适合C模块的数据结构为C结构体。
进一步地,测试模块中的第一编码模块、第一解码模块以及被测试模块中的第二编码模块和第二解码模块均基于递归方法进行编码和解码,具体的:
第一编码模块基于递归方法,在每种基本类型的有效信息前编入对应的附加信息位,同时删除每种基本类型的数据编码后用于C结构体对齐的计算和填充;
第一解码模块基于递归方法,在解码每种基本类型的具体信息时,根据附加信息位获取TTCN-3结构体的有效信息;
第二编码模块基于递归方法,将C结构体转换为通用数据结构;
第二解码模块根据通用数据结构携带的附加信息位还原出当前传输的C结构体。
其中上述新的数据传输结构为在不同TTCN-3基本类型的有效数据内容前添加特定附加信息,该特定附加信息就是附加信息位,用于标记结构体数据的长度;删除传输数据结构中为了满足传统C结构体对齐的填充信息;对于长度可变的数据类型,根据当前传输的数据内容动态分配存储内容所占用空间,通过附加信息中的长度指示位来标识,从而减少了按统一长度进行结构定义时造成的无效信息传输和空间与传输资源的浪费。
在TTCN-3模块基于递归解码方法,在每种基本类型解码时依据附加信息内容,获取有效信息,并通过TTCN-3模块提供的API的将内容设置到TTCN-3数据结构中,完成通用数据结构到TTCN-3数据结构的转换。其中C模块中的第二解码模块基于递归方法,通过调用解码函数,完成通用传输结构到传统C结构的转换;C模块中的第二编码模块基于递归方法,通过调用编码方法,完成传统C结构到通用传输结构的转换。
优选地,本实施例中第二编码模块通过本地存储的对应通用数据结构的附加信息位字典来实现,附加信息位字典通过TTCN-3模块中对应的数据基本类型在所述第二编码模块中不对具体类型的取值进行编码,而仅对附加信息位进行编码生成,其中基本类型为Boolean、enumerated、integer、btstring、octetstring、hexstring、Union、Record和Record of。
本实施例中以一种通信测试系统中TTCN-3模块作为测试模块,C模块作为被测试模块为例,两者之间数据传输时的通用数据结构定义,并基于该通用数据结构给出TTCN-3模块和C模块在发送和接收数据时所进行的编解码过程。图2描述的是该通用过程,其中,包含3大部分,分别为:传输数据的结构定义,TTCN-3模块的编解码过程和C模块的编解码过程。
TTCN-3语言是一种专门用于测试的语言,有系统的语法定义。在使用TTCN-3进行开发时,一般都是基于某个具体的开发工具,开发工具会提供TTCN-3语言到某种通用语言的适配框架,即提供不同功能的API,包含获取TTCN-3中基本类型的具体取值,关键字对应的API,Log输出,外部函数实现等,本实施例中所使用的开发工具优选IBM rationalsystem tester。在TTCN-3开发工具的适配框架中,都会提供用户自己定义编解码的功能,IBM rational system tester的适配框架中提供的是注册函数机制,用户可以使用API为具体的TTCN-3类型注册自定义的编解码函数。编码函数通过特定的API获取TTCN-3数据结构中的具体取值,并存储为目标语言数据结构;解码函数将接收数据结构中的取值设置为对应的TTCN-3数据类型的取值。同时IBM rational system tester还提供注册Log机制和用于自定义收发过程的API等,本实施例描述的是数据传输过程,核心内容为编解码的特殊实现,因此图2中仅列出通信相关的编解码模块,其余在本实施例中没有进行描述。
具体通信过程如下:
在TTCN-3模块向C模块发送数据时,通过TTCN-3编码模块完成TTCN-3数据结构到通用传输结构的转换,在用户注册的自定义编码函数中实现。然后通过特定的通信方式发送到C模块,由于本实施例中TTCN-3和C模块为windows中的不同进程,优选地,通信方式为读写共享文件。在C模块接收到数据后通过调用C解码函数完成通用数据结构到一般C结构体的转换。
C模块向TTCN-3模块发送数据时,调用C编码函数和本地存储的待传输数据的通用附加信息位,完成本地C结构体到通用数据结构的快速转换,然后通过写共享文件将通知TTCN-3模块读取数据。在TTCN-3模块接收到数据后,通过TTCN-3解码模块完成通用传输结构到TTCN-3数据结构的转换。
根据数据传输过程的描述,首先进行的是通用传输数据结构的定义。图3是对通用数据结构的具体描述,包含了一般测试系统中使用到的TTCN-3数据类型对应的通用传输结构描述,这些基本类型是,boolean、enumerated、integer、btstring、octetstring、hexstring、Union、Record以及Record of。
所有类型在编码时均编入4字节的类型信息,主要用于在C模块实现基于类型的递归编解码函数。
其中Boolean、enumerated、integer在类型标识(即Type kind,占用4个字节)之后直接存储有效内容(即Int value,占4个字节);
Bitstring、octetstring和hexstring类型标识(即Type kind,占用4个字节)之后,再增加一占4个字节的整形长度指示位(即String length),长度分为bit、octet和hex长度,和三种类型相对应,用于指示存储内容的长度,其中bitstring指bit长度,Octetstring指octet长度,Hexstring指hex长度,之后存储实际传输的串内容(即Stringvalue,占n个字节);
Union类型在类型标识(即Type kind,占用4个字节)之后共有3个附加信息,按顺序为SubIE Count,Union index,SubIE_Structsize。其中SubIE Count占4个字节,用整形记录Union中包含的子成员数,Union index占4个字节,用整形记录当前传输数据中选用的子成员的下标值,SubIE_Structsize占4个字节,用整形记录所选成员类型所占结构体大小,用于在C模块端解码时确定需要为当前类型申请内存的大小。在附加信息位之后就是所选SubIE的内容(即SubIE_X,占n个字节),其子成员通常为Record类型,则SubIE内容遵循Record中描述格式要求;
Record和C中的结构体对应,在类型标识(即Type kind,占用4个字节)之后依次添加结构体对齐值(IE Alignment value)和结构体子成员个数(即SubIE Count)两个附加信息,均以4字节整形表示,之后按序为每个SubIE的内容,即SubIE_0,SubIE_1……SubIE_X,分别占用n个字节。其中每个SubIE内容与Union中不同的是添加了P和Pf两个附加信息,均为1字节的char型,其中P用于表示当前子成员是否为可选,0表示不可选,1表示可选。如果为P取值1可选,在P之后会有Pf位来表示当前传输数据中该类型是否存在,0表示不存在,1表示存在。如果Pf为1,则在之后为当前类型的具体内容,如果为复合类型则其内容仍然按照对应类型的格式进行编码;
Record of相当于C中的结构体数组,在类型标识位(即Type kind,占用4个字节)之后添加结构体数组中子成员个数(即SubIE count)和SubIE_structSize,均为4字节整形表示,其中SubIE_structSize和Union中的结构体作用相同。在附加信息之后依次是数组每个成员的具体内容,其内容仍然按照对应类型的格式进行编码。
定义好通用传输结构后,需要分别实现TTCN-3模块中的编解码函数和C模块中的编解码函数。TTCN-3中的编解码模块实现基于原自定义编解码函数实现,在沿用原基于基本类型递归的基础上,对输出结构的内容按照通用传输结构进行调整。图4即为TTCN-3编码函数实现过程的描述,主要是基于TTCN-3结构体中自带的类型信息按照基本类型进行递归,对于Union,Record,Record of复合类型增加附加信息位的编码,对于基本类型编码附加信息位和实际取值,编码过程不进行编码结构体对齐。图5为TTCN-3解码模块,同样基于TTCN-3结构体自带的类型信息按照基本类型进行递归。对于Record of类型,跳过4字节的类型标识,获取SubIE count,作为再次调用解码函数的循环次数,解码函数中的类型为对应的Record类型,之后再跳过4字节的SubIE_structsize,剩余数据再次作为解码函数的输入。对于Union类型,跳过8字节的类型标识和SubIE count,通过Union index确定其后递归调用解码函数时的待解码类型,之后的数据再次作为解码函数的输入。对于Record类型,跳过8字节的类型标识和IE Aliment value,获取SubIE count,作为再次调用解码函数的循环次数,每次循环调用解码函数时待解码类型为Record的第i个成员。对Bitstring、Octetstring,Hexstring类型,跳过4字节类型标识,获取长度信息,根据长度指示从之后的码流中取出相应长度的内容赋值给对应的TTCN-3类型。对enumerated、integer、boolean类型,跳过4字节类型标识,直接取出之后的4字节整形值,设置为TTCN-3对应类型的取值。
C模块的编码递归的过程依赖于通用传输结构中的附加信息位。图6为C编码模块的具体过程。该模块的递归是通过本地存储的对应传输数据类型的附加信息字典来实现。附加信息字典的生成是通过TTCN-3模块来完成的,在TTCN-3中下发对应类型的数据,在编码模块中不编码具体类型的取值,仅编码附加信息位,输出即为C编码模块中使用的附加信息字典。在C模块编码时,判断附加信息词典的第一个4字节的类型标识,如果为Record of类型,获取SubIEcount,作为再次调用C编码函数的循环次数,之后再跳过4字节的SubIE_structsize,接着SubIE_1中的类型标识信息。如果为union类型,将C结构体中使用的Union成员所对应结构体大小和下标值分别对附加信息词典中的SubIE_structsize和Unionindex进行更新,并继续查询SubIE_X成员的信息进行编码;如果为Record类型,获取SubIEcount,然后遍历查询每个SubIE的类型信息,并编码实际取值信息;如果为Bitstring、Octetstring,Hexstring类型,使用当前C结构中对应类型的长度对长度标识位进行更新,并编入实际取值内容;如果为enumerated、integer、Boolean类型,直接在类型标识位之后编入实际取值。
C解码模块的功能为从通用传输结构中还原出对应的C结构体。图7为该过程的具体处理过程。该模块是根据传输数据中携带的附加信息按照类型标识进行递归。如果为Record of类型,获取SubIE count,作为再次调用解码函数的循环次数,并申请SubIE_structsize大小的内存空间来存放第i个SubIE中的内容。如果为Union类型,SubIE_structsize确定当前传输Union成员所占空间大小,通过SubIE count确定Union中的最大可选成员数,通过Union index确定C结构体中待编码Union成员结构;如果为Record类型,存储IE Aliment value,获取SubIE count,确定Record之后包含的子成员信息个数,在完成每个子成员的解码后,使用IE Aliment value对结构体进行对齐;如果为Bitstring、Octetstring、Hexstring类型,获取长度信息,根据长度确定之后码流的长度并分配相应的空间;对enumerated、integer、Boolean类型,直接取出之后的4字节整形值,设置为C结构体对应成员的赋值。基本类型在解码为对应C结构时,对于解码前后的码流也都要进行内存对齐的操作,其中enumerated和integer的对齐值为固定为4字节,char为1字节。
通过上述基于TTCN-3的压缩编解码方法,基于TTCN-3递归方式,通过定义新的传输数据结构,减少了传统C结构体传输过程中无效信息的传输,对于可变长类型可以根据实际传输内容动态调整传输结构,从而解决TTCN-3测试系统中定义的大结构数据的传输效率问题,同时本实施例提供的通过附加信息位优化结构体传输大小的方法也可以作为通用的方法扩展到一般的模块间接口定义和传输过程中。
实施例二
本发明实施例二提供了一种基于TTCN-3的压缩编解码系统,组成示意图如图8所示,包括测试模块10和被测试模块20,测试模块10和被测试模块20的内部均有编码模块和解码模块,测试模块10中包括第一编码模块11和第一解码模块12,其中第一编码模块11用于测试模块向被测试模块发送数据前,通过测试模块中的第一编码模块11完成对待发送数据从适合测试模块的数据结构到通用数据结构的转换;
第一解码模块12用于测试模块接收到数据后,通过第一解码模块21进行解码,将其从通用数据结构转换为适合测试模块的数据结构;
被测试模块20中包括第二编码模块21和第二解码模块22,第二编码模块21用于被测试模块向测试模块发送数据前,通过被测试模块中的第二编码模块21完成对待发送数据从适合被测试模块的数据结构到通用数据结构的转换;
第二解码模块22用于被测试模块接收到数据后,通过第二解码模22块进行解码,将其从通用数据结构转换为适合被测试模块的数据结构。
优选地,本实施例中测试模块为TTCN-3模块,适合TTCN-3模块的数据结构为TTCN-3结构体,被测试模块为C模块,适合C模块的数据结构为C结构体。
优选地,本实施例中第一编码模块11和第二编码模块21中转换为通用数据结构,具体包括:
去除用于结构体对齐的填充位,并在每种基本类型的有效数据前添加附加信息位,附加信息位用于标记结构体数据的长度,并根据附加信息位动态分配存储内容所占用空间。
通过使用上述基于TTCN-3的压缩编解码系统,基于TTCN-3递归方式,通过定义新的传输数据结构,减少了传统C结构体传输过程中无效信息的传输,对于可变长类型可以根据实际传输内容动态调整传输结构,从而解决TTCN-3测试系统中定义的大结构数据的传输效率问题,同时本实施例提供的通过附加信息位优化结构体传输大小的方法也可以作为通用的方法扩展到一般的模块间接口定义和传输过程中。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (6)
1.一种基于TTCN-3的压缩编解码方法,其特征在于,包括:
S1、测试模块向被测试模块发送数据前,通过测试模块中的第一编码模块完成对待发送数据从适合测试模块的数据结构到通用数据结构的转换;
S2、被测试模块接收到数据后,通过第二解码模块进行解码,将其从通用数据结构转换为适合被测试模块的数据结构;
S3、被测试模块向测试模块发送数据前,通过被测试模块中的第二编码模块完成对待发送数据从适合被测试模块的数据结构到通用数据结构的转换;
S4、测试模块接收到数据后,通过第一解码模块进行解码,将其从通用数据结构转换为适合测试模块的数据结构,其中:
所述第一编码模块和第二编码模块中转换为通用数据结构,具体包括:
去除用于结构体对齐的填充位,并在每种基本类型的有效数据前添加附加信息位,所述附加信息位用于标记结构体数据的长度,并根据所述附加信息位动态分配存储内容所占用空间。
2.根据权利要求1所述的基于TTCN-3的压缩编解码方法,其特征在于,所述测试模块和所述被测试模块是两种不同的进程,其中测试模块为TTCN-3模块,适合TTCN-3模块的数据结构为TTCN-3结构体,被测试模块为C模块,适合C模块的数据结构为C结构体。
3.根据权利要求2所述的基于TTCN-3的压缩编解码方法,其特征在于,所述测试模块中的第一编码模块、第一解码模块以及被测试模块中的第二编码模块和第二解码模块均基于递归方法进行编码和解码,具体的:
第一编码模块基于递归方法,在每种基本类型的有效信息前编入对应的附加信息位,同时删除每种基本类型的数据编码后用于C结构体对齐的计算和填充;
第一解码模块基于递归方法,在解码每种基本类型的具体信息时,根据所述附加信息位获取TTCN-3结构体的有效信息;
第二编码模块基于递归方法,将C结构体转换为通用数据结构;
第二解码模块根据通用数据结构携带的附加信息位还原出当前传输的C结构体。
4.根据权利要求1或3所述的基于TTCN-3的压缩编解码方法,其特征在于,所述第二编码模块通过本地存储的对应通用数据结构的附加信息位字典来实现,其中附加信息位字典通过TTCN-3模块中对应的数据基本类型在所述第二编码模块中不对具体类型的取值进行编码,而仅对附加信息位进行编码生成。
5.一种基于TTCN-3的压缩编解码系统,其特征在于,包括测试模块和被测试模块,测试模块和被测试模块的内部均有编码模块和解码模块,测试模块中包括第一编码模块和第一解码模块,被测试模块中包括第二编码模块和第二解码模块;
其中第一编码模块用于测试模块向被测试模块发送数据前,通过测试模块中的第一编码模块完成对待发送数据从适合测试模块的数据结构到通用数据结构的转换;
第一解码模块用于测试模块接收到数据后,通过第一解码模块进行解码,将其从通用数据结构转换为适合测试模块的数据结构;
第二编码模块用于被测试模块向测试模块发送数据前,通过被测试模块中的第二编码模块完成对待发送数据从适合被测试模块的数据结构到通用数据结构的转换;
第二解码模块用于被测试模块接收到数据后,通过第二解码模块进行解码,将其从通用数据结构转换为适合被测试模块的数据结构,其中:
所述第一编码模块和第二编码模块中转换为通用数据结构,具体包括:
去除用于结构体对齐的填充位,并在每种基本类型的有效数据前添加附加信息位,所述附加信息位用于标记结构体数据的长度,并根据所述附加信息位动态分配存储内容所占用空间。
6.根据权利要求5所述的基于TTCN-3的压缩编解码系统,其特征在于,其中测试模块为TTCN-3模块,适合TTCN-3模块的数据结构为TTCN-3结构体,被测试模块为C模块,适合C模块的数据结构为C结构体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310632203.8A CN103716127B (zh) | 2013-12-02 | 2013-12-02 | 一种基于ttcn‑3的压缩编解码的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310632203.8A CN103716127B (zh) | 2013-12-02 | 2013-12-02 | 一种基于ttcn‑3的压缩编解码的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103716127A CN103716127A (zh) | 2014-04-09 |
CN103716127B true CN103716127B (zh) | 2017-05-17 |
Family
ID=50408750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310632203.8A Active CN103716127B (zh) | 2013-12-02 | 2013-12-02 | 一种基于ttcn‑3的压缩编解码的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103716127B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052575B (zh) * | 2014-05-22 | 2017-09-22 | 北京星河亮点技术股份有限公司 | 一种基于ttcn3的编解码通信方法 |
CN111752840B (zh) * | 2020-06-28 | 2023-08-08 | 中电长城(长沙)信息技术有限公司 | 一种跨系统的金融自助设备sp自动测试方法、设备及介质 |
CN113098529B (zh) * | 2021-03-30 | 2022-06-21 | 中山大学 | 基于循环移位的额外信息传输方法、系统及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI258073B (en) * | 2004-11-05 | 2006-07-11 | Inst Information Industry | System and method for automated test-case generation |
CN101179580B (zh) * | 2007-12-12 | 2010-08-11 | 北京北方烽火科技有限公司 | 一种用于实现WiMAX系统消息编解码的方法 |
CN103346927A (zh) * | 2013-07-02 | 2013-10-09 | 工业和信息化部电信传输研究所 | 一种终端一致性测试系统及方法 |
-
2013
- 2013-12-02 CN CN201310632203.8A patent/CN103716127B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103716127A (zh) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101841515B (zh) | 可变目标的协议数据单元编解码代码自动生成的实现方法 | |
US8812643B2 (en) | Conversion of hierarchical infoset type data to binary data | |
CN112188211B (zh) | 一种转码实现方法和装置 | |
CN1859359B (zh) | 用抽象语法规则描述的通信协议的实现方法及其装置 | |
CN103716127B (zh) | 一种基于ttcn‑3的压缩编解码的方法和系统 | |
CN109831409A (zh) | 数据传输方法、装置、计算机可读存储介质及电子设备 | |
US20060205420A1 (en) | System, method and apparatus for optimized wireless messaging | |
CN111884660A (zh) | 一种哈夫曼编码设备 | |
CN105103192A (zh) | 用于顶点误差校正的方法和装置 | |
CN110060158A (zh) | 基于变长编码的智能合约执行方法和装置 | |
CN105843663B (zh) | 适用于asn.1递归解析数据结构描述的编解码方法 | |
CN100505743C (zh) | 通用消息解释器的实现方法 | |
CN103036641A (zh) | 数据交换方法、系统及反序列化方法 | |
CN113162977B (zh) | 一种信息处理方法及装置、设备、存储介质 | |
CN116208667B (zh) | 一种可变长高压缩的比特报文编解码方法 | |
CN105635160B (zh) | 一种多变数据网络通信的设计方法 | |
CN108347292A (zh) | 一种物理编码子层的数据编解码方法和装置 | |
CN103856396B (zh) | 插件间的报文传递方法及装置、代理插件 | |
CN103631983B (zh) | 一种战术数据报文模拟方法及系统 | |
CN104281632B (zh) | 基于对象协议映射的编码解码方法及系统 | |
CN108633326A (zh) | 利用ldpc码的交织器的位置 | |
CN110601794B (zh) | 一种asn.1编解码模块、报文数据编解码方法 | |
CN109213710A (zh) | 高速串行接口装置与其数据传输方法 | |
CN1319301C (zh) | 在一个帧内结构性信息的信道编码或者译码的方法和装置 | |
CN111064560B (zh) | 数据加密传输方法及装置、终端、数据加密传输系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |