在编解码例子一中提到了系统例子中提供的 binary_string.c,binary_string.h 两个操作二进制串的文件,看过代码的童鞋会发现,实现是使用一个char数组来保存数据的,也就是说,每次存入提取都需要以8比特为单位。
在网络数据传输中一般是保证整字节的,但是网络协议的定义往往对每一比特位都“物尽其用”,因此在编解码的过程中往往会出现添加不是整字节单位数据的情况。
考虑下面代码,使用到TTCN-3中hexstring的类型
module Codec_B { //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'H); mtc_port.receive('ABCD'H); mtc_port.send('ABC'H); mtc_port.receive('ABC0'H); setverdict(pass); stop; } //控制部分 control { execute(Basic_TC()); } } |