TTCN-3 编码解码相关模块引入

先来看看项目结构



ttcn代码如下:

module Codec_A {

	//1.端口定义 
    type port common_port message {
		inout all
	} 
	
	//2.成分定义
	type component MyMTC{
	   port common_port mtc_port;
	   } 

	type component MySUT{
	   port common_port sut_port;
	   } 
	
	// 定义测试例
	testcase Basic_TC () runs on MyMTC system MySUT
	{
		mtc_port.clear;
		
		//不能操作sut_port,这个端口在SUT,并不在MTC的控制下
		//sut_port.clear;

		map(mtc:mtc_port, system:sut_port);

		mtc_port.start;
		//不能操作sut_port,这个端口在SUT,并不在MTC的控制下
		//sut_port.start;

		mtc_port.send('ABCD'O);
					
		mtc_port.receive('ABCD'O)
		setverdict(pass);
		stop;
	
	}

	//控制部分
	control {
		execute(Basic_TC());
	}

} // Module Codec_A end

在这个例子里面,mtc通过端口发送‘ABCD’,然后检测自己是否接收到了‘ABCD’,然后判断测试例通过。

要完成该例子,在t3tri_template.c文件中需要将triSAReset(),triExecuteTestcase(),triEndTestcase(),triMap()返回值设为TRI_OK,

另外在triSend()函数中加入 语句

triEnqueueMsg(tsiPortId, sutAddress, componentId, sendMessage);

并设返回值为TRI_OK,上面语句的实现将发送的数据放到自身接收队列之中。


接下来就是主要的编解码模块实现了。

在该例子中,测试例子运行时会经过下列几步:1,将‘ABCD’O这中TTCN-3数据类型转换成二进制码,添加到发送队列中;2,通过发送端口发送二进制数据;3,接收端口接收到二进制数据,将其解码为TTCN-3数据类型;4,进行匹配并判断测试例是否通过

二进制码与TTCN-3数据格式之间的转换就是编解码模块完成的工作,当然TTCN-3有不同的很多数据类型,在此例子中以octetstring

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值