一种基于TTCN3的编解码通信方法技术

技术编号:10435918 阅读:101 留言:0更新日期:2014-09-17 12:52
本发明专利技术公开了一种基于TTCN3的编解码通信方法,包括:设置通信接口、编码发送流程和解码接收流程,具体地:设置通信接口:定义目标语言可识别的数据结构类型,将TTCN3指针类型的结构体转化为目标语言可识别的结构体;编码发送流程:调用消息编码函数将TTCN3格式码流转换成目标语言格式码流,并将目标语言格式码流通过send函数发送给目标语言实体;解码接收流程:接收目标语言实体发送的消息并按消息标识压到对应的消息队列中,从消息队列中读取接收的码流并调用解码函数将码流压到解码函数中解码。如果解码后的码流与TTCN3期望的消息码流一致则解码成功,否则解码失败。本发明专利技术减少了工作量,使编解码功能实现更简洁方便。

【技术实现步骤摘要】
一种基于TTCN3的编解码通信方法
本专利技术涉及一种基于TTCN3的编解码通信方法,属于软件工程

技术介绍
目前,通信软件技术蓬勃发展,国际标准日趋完善,TTCN3(TreeandTabularCombinedNotation)成为国际标准中协议一致性测试框架的一部分,该语言力求适应测试需求的不断变化,为像ODP,CORBA,TINA,DCE等新的软件架构,以及下一代网络协议提供新的测试概念、测试架构和功能强大的测试规范。基于TTCN3的测试系统有如下优点:支持外部自定义函数、支持定时器启动、提供了一种可编程的测试结构以及开发方便、简洁、同时具有良好的可维护性。TTCN3的这些优点与特性,使其使用越来越广泛,从实际应用角度出发,将其转化为一个现实可用的系统是一项重要的工作。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是:如何提供TTCN3与C实体通信的实现方法。(二)技术方案为解决上述技术问题,本专利技术提供了一种基于TTCN3的编解码通信方法,包括:设置通信接口、编码发送流程和解码接收流程,具体如下:设置通信接口:定义目标语言可识别的数据结构类型,将TTCN3指针类型的结构体转化为目标语言识别的结构体;编码发送流程:调用消息编码函数将TTCN3格式码流转换成目标语言格式码流;将目标语言格式码流通过send函数发动给目标语言实体;解码接收流程:接收目标语言实体发送的消息并按消息标识压到对应的消息队列中;从消息队列中读取接收的码流并调用解码函数将码流压到解码函数中解码;如果解码后的码流与TTCN3所期望消息的码流一致则解码成功,否则解码失败。其中较优地,所述调用消息编码函数将TTCN3格式码流转换成目标语言格式码流的步骤进一步包括:通过子成员TTCN3结构名字来判断此子成员是否是空口消息,如果是空口消息则进行ASN.1编码,否则按数据类型进行递归编码。其中较优地,所述按数据类型进行递归编码的步骤进一步包括:TTCN3的码流中获取当前待编码成员的类型,按照当前编码成员类型编码;如果是基本类型,按照基本类型将其赋值给定义的目标语言结构体;如果是union类型,先获取成员的序列号,将序列号值赋给自定义结构体的成员序列号指示位,指示当前union结构体哪个成员存在,其次对被选中的成员进行按类型递归编码,直至所有结点成员均为基本类型;如果是record类型,先获取成员的个数,按成员个数对每一个子成员进行递归编码,直至每个结点成员均为基本类型;如果是set类型,先获取成员的个数,按成员个数对每一个子成员进行递归编码,直至每个结点成员均为基本类型。其中较优地,所述union类型递归编码的步骤进一步包括:获取union的字节长度;对union进行前端对齐;然后获取TTCN3此类型中选取子成员的序列号,并将序列号值赋给自定义结构体的成员序列号指示位,说明当前选取的子成员存在,其他子成员均不存在;对选取的子成员进行按类型递归,直至结点成员为基本类型;对基本类型进行赋值;进行末端对齐。其中较优地,所述record类型递归编码的步骤进一步包括:获取成员个数,对record进行前端对齐;按成员个数对每个子成员IE进行递归编码;判断子成员是否存在;如果子成员存在,则对此子成员进行递归编码,直至结点成员为基本类型,且将值赋值给目标结构体;如果子成员不存在,则将当前子成员所占大小用0补齐;最后进行末端对齐。其中较优地,所述调用解码函数将码流压到解码函数中解码的步骤进一步包括:通过成员TTCN3结构名字来判断此子成员是否是空口消息,如果是空口消息则进行ASN.1解码,否则进行按类型的递归解码。其中较优地,所述进行按类型的递归解码的步骤进一步包括:从TTCN3的码流中获取当前待解码成员的类型;如果是基本类型,将目标码流的对应值设置到TTCN3中相对应的位置;如果是union类型,从目标码流当前位置取出指示当前成员序列号,并将指示当前成员序列号设置到TTCN3中,对被解码的成员进行按类型递归编码,直至所有结点成员均为基本类型,并将目标语言结构中基本类型的实际值设置到TTCN3中;若为record类型,获一级子成员的数量,对每一个子成员进行递归编码,直至每个结点成员均为基本类型,并将目标语言结构中基本类型的实际值设置到TTCN3中;若为set类型,先获一级子成员的数量,对每一个子成员进行递归编码,直至每个结点成员均为基本类型,并将目标语言结构中基本类型的实际值设置到TTCN3中。其中较优地,所述union类型归递解码的步骤进一步包括:从目标语言码流当前位置取出指示当前成员序列号,并将指示当前成员序列号设置到TTCN3当前目标码流中,根据TTCN被解码的成员的类型递归编码,直至所有结点成员均为基本类型;将目标语言结构中基本类型的实际值设置到TTCN3中。其中较优地,所述record类型归递解码的步骤进一步包括:首先从TTCN中获取成员个数;根据成员个数对每一个子成员进行递归解码;判断当前成员是否存在;如果当前成员不存在,将TTCN3中代表不存在的值置入TTCN3中;如果当前成员存在则对当前成员进行递归解码,直至每个结点成员均为基本类型,并将目标语言结构中基本类型的实际值设置到TTCN3中。其中较优地,所述目标语言是C语言。(三)有益效果本专利技术提供的基于TTCN3的编解码通信方法,实现了TTCN3与C语言实体的通信,使TTCN3这种特有的测试语言可以和C结合起来,完成现实可用的系统。附图说明图1为本专利技术技术方案所提供的接收发送码流流程示意图;图2为本专利技术技术方案所提供的编码流程示意图;图3为本专利技术技术方案所提供的union类型编码流程示意图;图4为本专利技术技术方案所提供的record类型编码流程示意图;图5为本专利技术技术方案所提供的解码流程示意图;图6为本专利技术技术方案所提供的union类型解码流程示意示意图;图7为本专利技术技术方案所提供的record类型解码流程示意图。具体实施方式下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。TTCN3是一种独立的测试语言,有其独特的使用方法和结构体,怎样将TTCN3与C实体联通起来,实现与C语言的正常通信,完成整个现实系统就是本专利技术的意义所在,本专利技术提供了TTCN3编解码及接口定义。一方面提供与TTCN3能够进行通信的C接口,为信息码流提供载体;另一方面为码流提供编解码,使TTCN3的t3rt_value指针类型的结构体能够通过编解码转换成自定义的结构体,被C语言识别,完成正常通信。如图1所示,本专利技术提供一种基于TTCN3的编解码通信方法,包括:设置通信接口、编码发送流程和解码接收流程,具体如下:设置通信接口:设置通信接口:定义目标语言可识别的数据结构类型,将TTCN3指针类型的结构体转化为目标语言识别的结构体;编码发送流程:调用消息编码函数将TTCN3格式码流转换成目标语言格式码流;将目标语言格式码流通过send函数发动给目标语言实体;解码接收流程:接收目标语言实体发送的消息并按消息标识压到对应的消息队列中;从消息队列中读取接收的码流并调用解码函数将码流压到解码函数中解码;如果解码后的码流与TTCN3所期望消息的码流一本文档来自技高网...
一种基于TTCN3的编解码通信方法

【技术保护点】
一种基于TTCN3的编解码通信方法,其特征在于包括:设置通信接口、编码发送流程和解码接收流程,具体如下:设置通信接口:定义目标语言可识别的数据结构类型,将TTCN3指针类型的结构体转化为目标语言识别的结构体;编码发送流程:调用消息编码函数将TTCN3格式码流转换成目标语言格式码流;将目标语言格式码流通过send函数发动给目标语言实体;解码接收流程:接收目标语言实体发送的消息并按消息标识压到对应的消息队列中;从消息队列中读取接收的码流并调用解码函数将码流压到解码函数中解码;如果解码后的码流与TTCN3所期望消息的码流一致则解码成功,否则解码失败。

【技术特征摘要】
1.一种基于TTCN3的编解码通信方法,其特征在于包括:设置通信接口、编码发送流程和解码接收流程,具体如下:设置通信接口:定义目标语言可识别的数据结构类型,将TTCN3指针类型的结构体转化为目标语言识别的结构体;编码发送流程:调用消息编码函数将TTCN3格式码流转换成目标语言格式码流;将目标语言格式码流通过send函数发送给目标语言实体;解码接收流程:接收目标语言实体发送的消息并按消息标识压到对应的消息队列中;从消息队列中读取接收的码流并调用解码函数将码流压到解码函数中解码;如果解码后的码流与TTCN3所期望消息的码流一致则解码成功,否则解码失败;其中,所述调用消息编码函数将TTCN3格式码流转换成目标语言格式码流的步骤进一步包括:通过子成员TTCN3结构名字来判断此子成员是否是空口消息,如果是空口消息则进行ASN.1编码,否则按数据类型进行递归编码;其中,所述按数据类型进行递归编码的步骤进一步包括:TTCN3的码流中获取当前待编码成员的类型,按照当前编码成员类型编码;如果是基本类型,按照基本类型将其赋值给定义的目标语言结构体;如果是union类型,先获取成员的序列号,将序列号值赋给自定义结构体的成员序列号指示位,指示当前union结构体哪个成员存在,其次对被选中的成员进行按类型递归编码,直至所有结点成员均为基本类型;如果是record类型,先获取成员的个数,按成员个数对每一个子成员进行递归编码,直至每个结点成员均为基本类型;如果是set类型,先获取成员的个数,按成员个数对每一个子成员进行递归编码,直至每个结点成员均为基本类型。2.如权利要求1所述的编解码通信方法,其特征在于,所述union类型递归编码的步骤进一步包括:获取union的字节长度;对union进行前端对齐;然后获取TTCN3此类型中选取子成员的序列号,并将序列号值赋给自定义结构体的成员序列号指示位,说明当前选取的子成员存在,其他子成员均不存在;对选取的子成员进行按类型递归,直至结点成员为基本类型;对基本类型进行赋值;进行末端对齐。3.如权利要求1所述的编解码通信方法,其特征在于,所述record类型递归编码的步骤进一步包括:获取成员个数,对record进行前端对齐;按成员个数对每个子成员IE进行递归编码;判断子...

【专利技术属性】
技术研发人员:王立娜范志成
申请(专利权)人:北京星河亮点技术股份有限公司
类型:发明
国别省市:北京;11

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

1