在上篇vTESTstudio系列的文章中,我们基于osek_tp.dll实现了诊断的发送和回复的最基本的脚本,但是我们可以看出来,这样的脚本是不具有普适性的,为了生成一个普适性的诊断请求回复的函数,接下来本系列的几篇文章会开始介绍一些优自定义的小函数,Let's Go!!!
目录
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的,至于我为什么写这几个函数,且容我先卖个关子,后面再揭晓!!!
标签:case,return,14,自定义,key,factor,vTESTstudio,函数 From: https://blog.csdn.net/qq_41602272/article/details/141825631