vTESTstudio系列14--vTESTstudio中自定义函数介绍1
在上篇vTESTstudio系列的文章中,我们基于osek_tp.dll实现了诊断的发送和回复的最基本的脚本,但是我们可以看出来,这样的脚本是不具有普适性的,为了生成一个普适性的诊断请求回复的函数,接下来本系列的几篇文章会开始介绍一些优自定义的小函数,Let's Go!!!
目录
1. 自定义函数:
1.1字符串转10进制:
1.2字符串转16进制:
1.3字符串阵列转字节:
2. Debug结果:
2.1 on key:
2.2 检测结果:
1. 自定义函数:
1.1字符串转10进制:
dword char2dec (char c, int factor)
{switch(c){case 'F':case 'f': return 15 * factor;case 'E':case 'e': return 14 * factor;case 'D':case 'd': return 13 * factor;case 'C':case 'c': return 12 * factor;case 'B':case 'b': return 11 * factor;case 'A':case 'a': return 10 * factor;case '9': return 9 * factor;case '8': return 8 * factor;case '7': return 7 * factor;case '6': return 6 * factor;case '5': return 5 * factor;case '4': return 4 * factor;case '3': return 3 * factor;case '2': return 2 * factor;case '1': return 1 * factor;}return 0;
}
1.2字符串转16进制:
byte char2hex(char c)
{switch(c){case 'F':case 'f': return 15;case 'E':case 'e': return 14;case 'D':case 'd': return 13;case 'C':case 'c': return 12;case 'B':case 'b': return 11;case 'A':case 'a': return 10;case '9': return 9;case '8': return 8;case '7': return 7;case '6': return 6;case '5': return 5;case '4': return 4;case '3': return 3;case '2': return 2;case '1': return 1;}return 0;
}
1.3字符串阵列转字节:
void CharArray2Byte(char convertable_array[])
{int i;char c1,c2;int strIndex;strIndex = 0;for (i = 0; i < elcount(RqTxStringData); i++){RqTxStringData[i] = 0;} for (i = 0; i < elcount(convertable_array); i++){RqTxStringData[i] = convertable_array[i]; }ByteSize = 0; for (i = 0; i < (strlen(RqTxStringData)/2); i++){strIndex = i * 2; c1 = RqTxStringData[strIndex];c2 = RqTxStringData[strIndex + 1];RqTxData[i] = char2byte(c1, 16) + char2byte(c2, 1);ByteSize++;}
}
2. Debug结果:
上述三个函数都是涉及到字符串的转化,因为这不是我们定义的export testfunction,所以这次我们采用"on key"和“write”的方式去验证我们的自定义函数:
2.1 on key:
on key是一个事件处理函数,用于处理按键事件。当用户按下或释放一个按键时,on key函数会被调用,并且可以执行相应的操作。该函数可以接收按键的信息,如按键的键码、按键的状态(按下或释放)等。通过在on key函数中编写逻辑代码,可以实现按键事件的处理和响应。
针对上述三个自定义函数,我使用如下的三个“on key”来实现验证逻辑,也是自己编辑自定义函数的常用方式:
on key 'A'
{write("char2dec is %x",char2dec('c',1));
}
on key 'B'
{write("char2byte is %x",char2byte('D',1));
}on key 'C'
{CharArray2Byte("2E3F4D5G");
}
2.2 检测结果:
启动CANoe工程后,在键盘依次按下大写的“A”,“B”,“C”,然后再打开“Write”窗口,可以在窗口中看到debug信息:
成功验证我们自定义的函数是OK的,至于我为什么写这几个函数,且容我先卖个关子,后面再揭晓!!!