要完成该例子,在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,八进制串为例
  首先是binary_string.h,binary_string.c,codec_plugin.c这三个文件,我们可以直接从系统例子中的ttcn3tciCD项目里面取来用,
  codec_plugin.c 在系统中注册编解码函数,一般无需更改
  binary_string.h及其实现函数设置了一个结构体及相关处理二进制串的函数,使用起来比较方便
  我们主要需要实现的是tci_codec.c文件
  该文件一般实现的结构如下:
  编码*************************
  BinaryString tciEncode(TciValue value) //编码器接口函数,每次对ttcn-3类型数据编码时进行调用
  void encode(MyBinaryString *msg, TciValue value) // 编码工厂函数,根据不同的类型调用具体函数函数进行编码
  void encode_octetstring(MyBinaryString *msg, String str) // 具体编码函数,如该函数对octetstring类型进行编码
  。。。 // 其它数据类型具体编码函数,根据项目中使用到的来定
  解码*************************
  解码的结构与编码类似,同样是三层:对外接口函数,工厂函数,以及具体解码函数
  编码器相关函数如下所示:
//对octetstring类型的数据进行编码
void encode_octetstring(MyBinaryString *msg, String str)
{
unsigned char * binstr;
unsigned char binvalue;
unsigned long len;
int i,k;
printf(" In function encode_octetstring() ");
//输入的字符串中含有前后双引号和O,将它们去掉
len = strlen(str);
for(i=0;i<len-3;i++)
str[i]=str[i+1];
str[i]='';
//开始编码
len=strlen(str);
if(len%2==0)
{
binstr =(unsigned char *)malloc(len);
//encoding two charactor at a time
for(i=0,k=0;i<len;i=i+2)
{
//encoding the first charactor
if(((str[i]-'0')>=0)&&((str[i]-'9')<=0)) {
binvalue = (str[i]-'0')*16;
} else if(((str[i]-'A')>=0)&&((str[i]-'F')<=0)) {
binvalue = (str[i]-'A'+10)*16;
} else if(((str[i]-'a')>=0)&&((str[i]-'f')<=0)) {
binvalue = (str[i]-'a'+10)*16;
} else {
tci_assert(0, "Wrong octet string: the value should be between 0~9, a~f");
}
//encoding the second charactor
if(((str[i+1]-'0')>=0)&&((str[i+1]-'9')<=0)) {
//use the plus operation!
binvalue += (str[i+1]-'0');
} else if(((str[i+1]-'A')>=0)&&((str[i+1]-'F')<=0)) {
//use the plus operation!
binvalue += (str[i+1]-'A'+10);
} else if(((str[i+1]-'a')>=0)&&((str[i+1]-'f')<=0)) {
//use the plus operation!
binvalue += (str[i+1]-'a'+10);
} else {
tci_assert(0, "Wrong octet string: the value should be between 0~9, a~f");
}
binstr[k] = binvalue;
k++;
}//for
binstr[k]='';
}
else
{
tci_assert(0, "Wrong octet string: the length of the string should be an even number");
}//if
binary_string_append_bytes(msg, binstr, k);
printf(" Leave function encode_octetstring() ");
}