当前位置: 首页 > news >正文

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


http://www.mrgr.cn/news/57154.html

相关文章:

  • 【Golang】Go语言http编程底层逻辑实现原理与实战
  • python——扑克牌案列
  • MATLAB代码优化
  • TwinCAT3下位机配置EAP通讯传递与接收变量
  • 一次使用LD_DEBUG定位问题的经历
  • JavaCV 图像灰度化处理
  • RHCE时间服务器
  • Vscode + EIDE +CortexDebug 调试Stm32(记录)
  • Kamailio 网络拓扑案例分享
  • C++ set和map的模拟实现
  • Llama Tutor:开源 AI 个性化学习平台,根据主题自动制定学习计划
  • RTDETR 引入 MogaBlock | 多阶门控聚合网络 | ICLR 2024
  • ThinkPad中键打开网页关闭网页失灵
  • 【Linux】线程互斥与同步,生产消费模型(超详解)
  • Redis-05 Redis发布订阅
  • 得物App3D博物馆亮相“两博会”,正品保障助力消费体验升级
  • 10.23Python_matplotlib_乱码问题
  • 三菱FX5U PLC程序容量设置
  • vue3-06-html2canvas使用 + zoom、transform: scale图片缩放适配方案 + 动态引入静态资源(打包上线后也能使用)
  • Java面试题九
  • C语言_动态内存管理
  • 2024年软件设计师中级(软考中级)详细笔记【10】网络与信息安全基础知识(分值5分)
  • 解决RabbitMQ脑裂问题
  • ARM/Linux嵌入式面经(四九):诺瓦星云
  • 特种设备作业G1工业锅炉司炉题库
  • 前端算法:树(力扣144、94、145、100、104题)