Vector-常用CAN工具 - CANoe入门到精通_05

news2024/11/25 18:26:12

 CAPL Test  Module

        在“Vector-常用CAN工具 - CANoe入门到精通”的第4/4篇中介绍了作为Server端的Network Node节点以及相应的一些常用函数,今天我们来介绍下当前依然有很多人在用的自动化脚本开发编译器 - CAPL Test  Module,这个基本能满足单个功能模块的自动化脚本和使用;因此也是一个功能相当强大的工具,而且开发语言也是CAPL,今天也是我们CANoe工具使用的第六章了。下面就来介绍它的使用。

六、CAPL Test  Module使用及配置

1、创建CAPL Test  Module节点

Simulation -> Simulation Setup -> 右键选择CAPL Test  Module

点击铅笔的位置,就能打开一个编辑面板(如果为首次创建则需要创建后才可以)

创建代码文件:选择放置文件的文件夹,然后设置名称即可(这里可以需要选择一个.can作为主编辑文件,如果想要将多类函数分类,或者单个文件太大,可选择创建.cin文件进行包含即可)

CAPL编辑面板,这里我们可以看到有三个分区,分别是功能区、代码编辑区、信号|函数区;乍一看好像跟NetworkNode编辑好像没什么太大区别,不过仔细观察下,在功能区还是有蛮大的改变的,新增了Test Function、Test Case、Test Control、Map Windows等脚本开发专用功能。

大家可以对比下NetWorkNode节点的编辑面板:

 2、CAPL编辑介绍

        如上图,在编辑区,我们首先看到的是include,学过c语言的都知道,这在c中也是一个经典的包含,不过这里包含的文件主要是.can和.cin类型的文件,当然也会有一些.dll文件(这个作为较难懂的,如果有需要我们后续专门进行分享)。

        variable,这个就是我们.can的里面的全局变量了,大家一定要注意这个是在.can文件中的全局变量,关于全局变量和局部变量我们不再这里进行过多的赘述,大家如果有兴趣可以搜索下c语言相关的,会有非常多的介绍。在variable中,我们一般会把一些公共的参数放在这里,方便各个函数间的调用,不过使用的时候一定要注意初始化,否则出现问题可是不太容易排查的。

        Function,定义的功能函数,实现某一特定的功能或者动作。

void test_function()
{
  write("开始执行test_function函数");
}

        testfunction,定义测试函数。测试函数跟function类似也是一个函数,不过它可以(重新)用于»测试用例和»测试序列。这是与function函数功能不同的地方,testfunction在测试报告中自动生成报告模块。如下图:

testfunction test_functions()
{
  write("开始执行test_functions函数");
}
<testcase title=" Name of test case" ident="ID of test case">
  ...
  <capltestfunction
       name="CAPL name of test function"
      title="Display name for CAPL test function">
    <caplparam name="Parameter name"
               type="float|int|string|signal|envvar|sysvar">Parameter value</caplparam>
  </capltestfunction>
  ...
</testcase>

         testcase,这个就很明显了,就是对应我们测试用例的一条测试脚本,以testcase为条目,一个一个的编写猜测脚本,最终添加到testcontrol中,形成一个完整的测试模块。

testcase test_cases1()
{
  write("开始执行test_functions函数");
}
testcase test_cases2()
{
  write("开始执行test_functions函数");
}
testcase test_cases3()
{
  write("开始执行test_functions函数");
}

        Test Control,即最终的测试模块控制集合;

void MainTest ()
{
  test_cases1();
  test_cases2();
  test_cases3();
}

3、常用工具栏功能介绍

Inport Environment:导入同步变量,这里用的主要是CANoe设置的变量在这里可以进行一键同方便使用。其他的都是常规的,我感觉没什么难度,就不一一介绍。

4、编译

在完成CAPL功能编程后进行保存,然后在此处进行在日编译导入,如果没有报错,就可以进行使用了。

5、 导入到CANoe工程的TestModule

Test -> Test Module -> 添加即可

        这里就完成了最简单的一个Test Module,在执行的时候我们就可以直接全部执行。但是如果想要做成可选择的,就比较麻烦;因为vector现在已经删除了xml文件的编辑工具,因此如果真的想做只能通过找一个并且按照它的格式去编写,这种方式太难,不建议使用。另外一种方式就是做系统变量,通过系统变量和编译文件中的testcase链接,另外一端和Panel面板配置,实现两端的联通,最终实现可选择;不过无论是哪种实现方式对于小白来说都不适合,如果大家有需要可以单独联系我一起聊下这块。

下期预告:介绍Test Module常用的函数以及编程方法、注意事项等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/84105.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

KingbaseES V8R6备份恢复案例之---sys_waldump解析wal日志PITR恢复

​案例说明&#xff1a; 复现用户删除表(drop table)误操作&#xff0c;通过wal日志解析找到误操作时间点&#xff0c;执行基于时间点的恢复(PITR)。适用版本&#xff1a; KingbaseES V8R6 一、模拟业务现场操作 1、查看当前对象信息 prod# \dList of relationsSchema | …

R语言逻辑回归预测分析付费用户

对于某企业新用户&#xff0c;会利用大数据来分析该用户的信息来确定是否为付费用户&#xff0c;弄清楚用户属性&#xff0c;从而针对性的进行营销&#xff0c;提高运营人员的办事效率。 相关视频&#xff1a;R语言逻辑回归&#xff08;Logistic回归&#xff09;模型分类预测病…

javaScript内存管理及监控

1.1 内存定义 内存由可读写单元组成&#xff0c;表示一片可操作空间&#xff0c;开发者主动申请空间、使用空间、释放空间。内存主要存储变量等数据&#xff0c;局部变量当程序执行结束&#xff0c;且没有引用的时候就会随着消失&#xff0c;全局对象会始终存活到程序运行结束。…

【简单项目实战】用C++实现学生成绩管理系统

目录 ●功能介绍 ●案例 ●代码展示 ●结果展示 ●功能介绍 用 C设计一个程序&#xff0c;能提供下列功能: 1. 录入学生成绩信息。按照学号&#xff0c;姓名&#xff0c;语文&#xff0c;数学&#xff0c;英语的格式录入学生的成绩。 2.展示目前录入学生的成绩信息。以…

MeterSphere使用mock基础

目录 一、添加mock数据 1、进入页面添加 2、 添加单个mock 3、添加多个mock数据 二、运行mock 1、选择设置接口的TEST 2、选择mock环境 3、设置定义的mock参数运行 一、添加mock数据 1、进入页面添加 在接口定义页面&#xff0c;按下图1-2-3顺序添加 2、 添加单个mock…

[附源码]Nodejs计算机毕业设计基于JAVA人事管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

如何利用TL431设计一个可调电压源

TL431是一个三脚电压可控的稳压器件&#xff0c;常用的封装有TO-92&#xff0c;SOT-23&#xff0c;SOT-89&#xff0c;电路符号是这个&#xff0c; TL431常被用在参考电压/基准电压电路&#xff0c;用来替代稳压管 其中1脚是reference,2脚是Anode&#xff0c;3脚是Cathode TL4…

基于微信小程序的校园二手交易-计算机毕业设计

项目介绍 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;校园二手交易被用户普遍使用&#xff0c;为方便用户能…

最新版网络组件包:Rebex Total Pack for .NET

Rebex Total Pack for .NET 组件包&#xff1a; Rebex 的所有 .NET 组件都在一个包中&#xff1a;SFTP、FTP、HTTPS、IMAP、POP3、SMTP、EWS、SNTP/Time/Daytime、Mail、MSG、TLS、SSH Shell、Telnet、终端仿真、安全、Syslog、WebSocket、 ZIP 压缩&#xff0c;SFTP/SSH 服务…

Java之final相关内容详解【面试题】

1、final关键字除了修饰类之外&#xff0c;还有哪些用法呢&#xff1f; &#xff08;1&#xff09;final修饰的变量&#xff0c;一旦赋值&#xff0c;不可重新赋值&#xff1b; &#xff08;2&#xff09; 如果引用为引用数据类型&#xff0c;比如对象、数组&#xff0c;则该对…

生成模型(二):VAE

自动编码器的发明是为了重建高维数据&#xff08;这可能不是变异自动编码器的真实情况&#xff09;。一个很好的副产品是降维&#xff1a;瓶颈层捕获了一个压缩的潜在编码。这样的低维表示可以作为各种应用中的嵌入向量&#xff08;如搜索&#xff09;&#xff0c;帮助数据压缩…

计算机研究生就业方向之大厂销售(营销)

我一直跟学生们说你考计算机的研究生之前一定要想好你想干什么&#xff0c;如果你只是转码&#xff0c;那么你不一定要考研&#xff0c;至少以下几个职位研究生是没有啥优势的&#xff1a; 1&#xff0c;软件测试工程师&#xff08;培训一下就行&#xff09; 2&#xff0c;前…

世界杯---人生就是一届又一届世界杯

注意&#xff1a;下面有视频看到文章会有声音&#xff0c;如果打扰到您非常抱歉&#xff0c;视频在文章最下面&#xff0c;还望观众老爷们不要在意&#xff0c;蟹蟹理解~ &#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石. &a…

OTP语音芯片是用什么软件来编程,以及如何烧录的?

目录 OTP语音芯片的开发环境&#xff1a; 也就是一般的客户想自己开发&#xff0c;基本不可能了&#xff0c;因为前期的培训成本、工具成本都是比较高的 OTP语音芯片的烧录方法&#xff1a; 第1步&#xff0c;是开发编译好程序之后&#xff0c;生成了对应的bin文件&#xf…

15、Redis集群

文章目录15、Redis集群15.1 问题15.2 什么是集群15.3 删除持久化数据15.4 制作6个实例15.4.1 配置基本信息15.4.2. redis cluster配置修改15.4.3. 修改好redis6379.conf文件&#xff0c;拷贝多个redis.conf文件15.4.4 使用查找替换修改另外5个文件15.4.5 启动6个redis服务15.5 …

MySQL innodb引擎架构分析- Double Write Buffer

文章目录系列文章目录前言一、Double Write Buffer是什么&#xff1f;二、Double Write Buffer步骤步骤对性能的影响总结系列文章目录 1. MySQL innodb引擎架构分析-Buffer Pool 2. MySQL innodb引擎架构分析-Redo log 3. MySQL innodb引擎架构分析- Double Write Buffer 前言…

java基于ssm+vue+elementUI实验报告管理系统

BS的实验报告管理系统是针对目前大学推广与交流的实际需求&#xff0c;从实际工作出发&#xff0c;对过去的实验报告管理系统存在的问题进行分析&#xff0c;完善用户的使用体会。采用计算机系统来管理信息&#xff0c;取代人工管理模式&#xff0c;查询便利&#xff0c;信息准…

鸡血篇:网络工程师为什么要学Python,如何学Python

两个多月之前写了一篇“送给打算考IE&#xff0c;正在学网络&#xff0c;纠结要不要转行学网络的你们”的文章&#xff0c;意外地收到了不少小伙伴的私信&#xff0c;大多咨询如何学习网络工程&#xff0c;以及什么方向的IE更有前景之类的问题。其实IE的话题我不想再多说&#…

Redis缓存一致性问题

目录 1、背景 2、缓存读写模式 2.1、Cache-Aside Pattern(旁路缓存模式) 2.2、Read-Through/Write-Through&#xff08;读写穿透模式&#xff09; 2.3、Write Behind Pattern(异步缓存写入) 3、数据不一致的几种场景 3.1、先删缓存&#xff0c;再更新数据库 3.2、先更新…

豆瓣评分9.1!据说入门Python的人都读过

前言 你是否正在寻找一本适合初学者入门Python的书籍呢&#xff1f; 如果是&#xff0c;那你来对地方了&#xff0c;以我个人经验&#xff0c;开始学习一门新的编程语言是相当困难和耗时的&#xff0c;这也是我今天要和大家分享这本书的原因&#xff0c;不卖关子了&#xff0…