CANoe使用教程

news/2024/10/30 19:34:35/

目录

1.CAN IG使用

 2.Visual Sequence 自动发送报文序列,可以设置多个visual sequence,可用于重复的网络模拟和write窗口输出,比IG灵活,比CAPL简单

3.CANoe中的系统变量和环境变量都是一种用于存储和传递数据的变量,它们有以下区别和使用场景:

4.Panel Design

5.CAPL编程


1.CAN IG使用

 2.Visual Sequence 自动发送报文序列,可以设置多个visual sequence,可用于重复的网络模拟和write窗口输出,比IG灵活,比CAPL简单

3.CANoe中的系统变量环境变量都是一种用于存储和传递数据的变量,它们有以下区别和使用场景:

  • 系统变量是在CANoe中定义的变量,它们可以在不同的节点、面板、图表等之间共享数据。系统变量可以有多种数据类型,例如整数、浮点数、字符串、结构体等。系统变量可以通过@$符号来访问,也可以通过CAPL函数来读写。系统变量适用于需要在CANoe内部进行数据交换的场景,例如控制和监视网络通信、执行测试用例、显示和记录数据等。
  • 环境变量是在CAN数据库中定义的变量,它们可以在不同的网络节点之间共享数据。环境变量只有有限的数据类型,例如整数、浮点数、枚举等。环境变量可以通过envVar事件或CAPL函数来读写。环境变量适用于需要在CAN网络上进行数据交换的场景,例如模拟和控制网络节点、发送和接收诊断请求、实现网络管理等。

CANoe运行的时候可以通过symbol panel实时修改变量的值(修改后不影响初始值):

 CANoe运行的时候可以通过Node panel实时修改节点相关的值:

Signal的值,改完之后立即生效
Message的值,改完之后点击update生效

4.Panel Design

在Panel design的时候,把系统变量或者 网络变量(Network symbols)直接拖拽到panel上的控件上即可关联起来

 

控件的属性修改:

 Panel中一个控件多个状态切换的设置:

 Panel之间切换,CANoe运行停止控件:

5.CAPL编程

CAPL是事件驱动型的,事件发生才会执行对应代码

CAPL 程序结构:头文件includes,全局变量variables,事件处理(on 开始)

局部变量是静态的,点一次闪电运行,只初始化一次

message,timer,ms Timer 是数据类型关键字

Switch 要和break搭配使用

CAPL实现发送CAN message:一种是 自定义报文;一种是发送数据库自带的报文

5.1发送自定义报文(Raw Message)

增加一个网络节点

 

 5.2发送一条数据库里已定义的报文

可以直接对相应的信号进行赋值

 注意:在CAPL编程中,对应数据库自定义的报文,如果输入报文(message)名称,例如"msg2."后没有下拉框可以选择signal,可能是由于这个CAPL文件没有保存,保存后再试一下就可以了。

5.3 signal 报文有两种,一种是信号值发送改变时触发-signal,另一种时信号发送到总线上时触发-signal_update

 

 

CAPL中的Value Object是一种用于存储和传递数据的对象,它们有以下几种类型:

  • 信号(Signal):信号是CAN或其他网络上的消息中的一个数据字段,它们可以表示物理量或状态。信号可以通过on signalon signal_update事件来响应,也可以通过getSignalsetSignal函数来读写。信号可以使用数据库中定义的符号名称或值表。
  • 环境变量(Environment Variable):环境变量是CAN数据库中定义的变量,它们可以在不同的网络节点之间共享数据。环境变量可以通过on envVar事件来响应,也可以通过getValueputValue函数来读写。环境变量可以使用数据库中定义的符号名称或值表。
  • 系统变量(System Variable):系统变量是在CANoe中定义的变量,它们可以在不同的节点、面板、图表等之间共享数据。系统变量可以通过on sysVar事件来响应,也可以通过@$符号或CAPL函数来读写。系统变量可以有多种数据类型,例如整数、浮点数、字符串、结构体等。

以下是每一种类型的Value Object的使用示例:

  • 信号(Signal):
// 响应信号EngineSpeed的变化
on signal EngineSpeed
{// 打印信号的物理值write("Engine speed is %f rpm", this.phys);
}// 设置信号EngineTemp的物理值为80
setSignal(EngineTemp, 80);

复制

  • 环境变量(Environment Variable):
// 响应环境变量Switch的变化
on envVar Switch
{// 打印环境变量的原始值write("Switch value is %d", this.raw);
}// 设置环境变量Light的原始值为1
putValue(Light, 1);

复制

  • 系统变量(System Variable):
// 响应系统变量IO::DI_0的变化
on sysVar IO::DI_0
{// 打印系统变量的原始值write("IO value is %d", this.raw);
}// 设置系统变量Debug::MotorValues::EngineSpeed的物理值为2000
@Debug::MotorValues::EngineSpeed = 2000;

http://www.ppmy.cn/news/78468.html

相关文章

网络安全证书合集

网络安全作为2022年十大高新紧缺技能之一,足以证明网络安全的重要性,作为网络安全工程师更是责任重大,证书作为能力证明的一方面,也是尤为重要,本文将着重盘点一下网络安全证书合集。 国家注册渗透测试工程师&#xf…

项目风险应对策略:项目经理应对不确定性的指南

风险应对是项目经理管理项目未来的工具箱。它可以帮助管理人员弄清楚可能会出现什么问题,并让他们有机会为这些问题做好准备。 对抗负面风险的5种策略 如果没有风险管理计划,项目可能会因意外问题或不良风险而迅速脱轨。什么策略可以用来对抗负面风险&…

【老王读SpringMVC-6】Controller method 的正常返回值处理

handler method 的返回值处理包含两个方面: 一是:返回值对象的处理; 二是:视图的渲染。 返回值对象的处理 通过前面的分析,我们知道, 被 RequestMapping 标记 handler method 的执行是通过调用 RequestMa…

Pytest模式执行python脚本不生成allure测试报告

1.安装allure 下载allure的zip安装包将allure.zip解压到python的lib目录中将allure的bin路径添加到环境变量path中(注意:配置环境变量后,一定要重启电脑。因为环境变量没生效,我搞了半天在pycharm不能生成报告,在cmd中可以生成报…

Linux中的 loop设备

loop设备是一种伪设备(pseudo-device),或者说是仿真设备。它可以使我们在类UNIX系统上像块设备一样访问一个文件。loop设备必须与一个文件进行连接,才能被使用。通过这种方式,文件可以被mount为块设备,并像…

C/C++ 数据结构设计与应用(四):C++数据压缩与传输:从理论到实践的全景解析

C数据压缩与传输:从理论到实践的全景解析 一、数据压缩的策略与方法 (Strategies and Methods of Data Compression)1.1 数据压缩的基本概念与原理 (Basic Concepts and Principles of Data Compression)1.2 C中的数据压缩技术 (Data Compression Techniques in C)1…

【无标题】ELISA-3(加装跟踪装置)—让群体协作更智能!

群体智能是近年来发展迅速的一个人工智能学科领域,通过对蚂蚁、蜜蜂等为代表的社会性昆虫群体行为的研究,实现分布式等智能行为。作为新一代人工智能的重要方向,群体智能通常用于无人机、机器人集群的协同作业。目前,群体智能在基…

2023年国内CDGA/CDGP数据治理认证考试报名入口

DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业…