首页 > 其他分享 >vTESTstudio系列14--vTESTstudio中自定义函数介绍1

vTESTstudio系列14--vTESTstudio中自定义函数介绍1

时间:2024-10-23 18:52:25浏览次数:15  
标签:case return 14 自定义 key factor vTESTstudio 函数

在上篇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的,至于我为什么写这几个函数,且容我先卖个关子,后面再揭晓!!!

标签:case,return,14,自定义,key,factor,vTESTstudio,函数
From: https://blog.csdn.net/qq_41602272/article/details/141825631

相关文章

  • PCIe宽带中频采集回放平台3GS/s 采集14bit 2通道 12.6GS/s回放 16bit 2通道
    PCIe宽带中频采集回放平台3GS/s采集14bit2通道12.6GS/s回放16bit2通道,是一款具备交流耦合和双极性宽带信号输入的高速数据采集卡,它具有2通道,14bit,3GS/s采集和2通道,16bit,12.6GS/s回放特性。板载FPGA具备实时信号处理能力,可实现数字下变频DDC、数字滤波、快速傅立叶变换等......
  • P8814 [CSP-J 2022] 解密 题解
    解方程$题目中说,n=pq,ed=(p-1)(q-1)+1,m=n-ed+2.$$把ed的式子展开,得到:$$ed=p(q-1)-(q-1)+1$$ed=pq-p-q+2$$再把展开后的式子带入m中,得:$$m=n-(pq-p-q+2)+2.$$m=n-pq+p+q-2+2$$\becausen=pq$$\thereforem=pq-pq+p+q-2+2$$m=p+q.$$如果想要求出p和q的值,那么可以再......