TTCN-3 编码解码相关模块引入2
作者:网络转载 发布时间:[ 2013/12/4 11:21:43 ] 推荐标签:
在编解码例子一中提到了系统例子中提供的 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());
}
}
|
编码函数中,碰到hexstring我们需要做出如下处理:
1.碰到偶数情况与octetstring处理方式相同
2.如果是奇数情况,需要额外多申请一个字节,该字节的高4位是数据、低4位用0填充;同时记录数据位数,继续编码时从低4位开始
在binary_string.c 中添加处理半字节的方法
1.碰到偶数情况与octetstring处理方式相同
2.如果是奇数情况,需要额外多申请一个字节,该字节的高4位是数据、低4位用0填充;同时记录数据位数,继续编码时从低4位开始
在binary_string.c 中添加处理半字节的方法
/* Appends half byte to the end of binary string
* It's assumed that binary string has enough free space
*/
static void append_half_byte (MyBinaryString *string, unsigned char data)
{
unsigned long free_pos;
free_pos = string->string.bits/8;
string->string.data[free_pos] = data;
string->string.bits += 4;
}
|
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南