自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 CANoe入门:将CAPL代码写在单独的文件中

将部份代码写在单独的文件中,可以方便代码码的管理,特别是一些特别大型的项目中,将一些自定义函数写在单独的文件中,可以方便后期的维护。

2023-06-17 15:36:05 1375 2

原创 CANoe入门:在CAPL中语言中修改诊断服务的参数

在使用CANoe做诊断读取ECU数据的时候,是否有想过这样的一个问题:假设当前有100台车因为某种原因需要读取车上ECU的一些参数或者需要修改某个配置时,如果通过CANoe的诊断功能去一个一个的修改,是不是特别费时费力。另外一个就是,当涉及一些复杂的计算时,每操作一次就必须要计算一次,费时也费力,通过CAPL语言就能解决上述的问题,所以CAPL的用途就是为了减少这种重复的工作而出现的。实际应用中,需要配合Panel面板,通过输入框获取对应的参数,然后将参数转换成CAPL中的变量值写入到诊断请求中。

2023-06-11 21:32:52 2140 1

原创 CAPL入门:结合panel面板实现按钮触发功能

在CANoe的Home选项卡中的Panel选项中,可以调出自定义的Panel组件。操作方法:CANdb++ Editor -> View -> Value Tables ->空白处右键->New ->在弹出的选项卡中填入名称->Value Descriptions->Add ->添加数值表内容->保存。2、在CANOE软件 ->Tool ->CANdb++ Editor ->Environment variables ->NEW ->在打开的编辑界界面中填入对应的参数。1、获取环境变量的值。

2022-12-21 21:45:34 4290

原创 CAPL语言使用示例:报文事件以及将报文数据写入文件中

使用过CANoe的小伙伴都知道,CANoe的trace窗口打印的数据并没有具体的时间,同时如果需要针对性的对报文进行响应,也是需要使用报文事件进行处理的。例如:在电动汽车中的TBOX模块,从远端下发一个开窗指令,需要测试出从ECU接收指令成功后到CAN总线上发出相应指令之间的间隔时,就可以通这种方式进行核查,具体方法为:先执行一个开窗指令,然后核对TBOX接收到指令的时间,再核对CAPL的CAN报文记录时间,两者时间一减就可以算出来。一般情况下,可以通过格式化打印的方式将byte直接打印。

2022-11-29 21:30:26 8812 2

原创 CANOE入门:CAPL语言实现诊断发送和接收

诊断,就是通过问和听的方式,也即发送和接收信号的方式,发送一条指定ID的CAN报文,ECU接收到后回应另一条指定ID的报文来确认当前ECU的相关信息,诊断的本质也是CAN上面的一条报文。在汽车测试中,诊断是非常重要的功能。与ECU相关的信息大部份是通过诊断的方式获取的,比如说,当前ECU软件版本号,ECU工作状态等等。在CAPL中,操作ECU的方式,就是发送一条CAN报文,再接收指定的报文实现诊断功能。CANoe软件中有诊断功能,但是当需要批量测试诊断功能就需要CAPL语言来做了。

2022-11-25 21:50:20 11076 5

原创 CANOE入门:CAPL文件读写示例

fileGetString会把行结束符读取到buff[]中,而fileGetStringSZ则不会把会把行结束符读取到buff[]中。在任何一门编程语言中,文件的读写是必须要掌握的技能。在CAPL中,可以通过往文件中写入数据实现原始数据的记录。此函数用于在指定的文件中写入字符串。buff[]为写入字符串,buffsize为字符串长度,fileHandle为文件位置设置为0即可。如果发生错误,返回值为0,否则为1。路径可以是绝对的,也可以是相对于当前活动配置的。mode=3,在二进制模式的文件末尾附加数据。

2022-11-17 05:38:36 4483 1

原创 CANOE入门:CAPL语言常用事件和函数

上面的示例通过按键s事件触发,如果不想要这种方式,可以通过on start事件触发,可以实现程序启动即触发定时器。由上面可以看出,on signal事件是只要信号值发生改变时都会触发包括信号从无到有的那一次,也即只第一次发送也会触发,因为这种情况下相当天信号从0变为1。简介:output()函数用于往CAN总线上发送CAN报文,入参为message结构体,发送前需要定义所有相关的参数,比如报文ID,报文dlc,data中各个有效字节的内容等等。上面的示例则可以更简洁的完成一些周期性的操作。

2022-11-16 02:44:46 11361 2

原创 CANOE入门:CAPL语言(1)

跟CAN总线上的物理ECU具有一样的功能。Simulation ->Simulation Setup ->选中要添加节点的地方右键->Insert Progran Node ->双击添加的节点->选择已有的CAPL文件或直接输入名称自动创建->保存即可打开编辑界面。Simulation ->Simulation Setup ->选中要添加节点的地方右键->Insert Progran Node ->双击添加的节点->选择已有的CAPL文件或直接输入名称自动创建->保存即可打开编辑界面。

2022-11-15 01:14:27 3176

原创 CANOE入门:DBC创建和编辑

dbc文件的创建可分为以下几个步骤:创建一个DBC数据库文件创建网络Network创建网络节点Network nodes创建Messages创建信号Signals创建Signals用到的数值表Value Tables将Value Tables关联到Signals将Signals关联到Messages将Messages关联到Network nodes

2022-11-13 01:54:18 5675 3

原创 CANOE入门:DBC文件初识

一个完整的DBC文件中,包含五大部份:Networks,ECUs,Networknodes,Messages,Signals。它们的关系可以理解为:一个DBC文件中有多个Networks,一个Networknodes包含多个Messages,一个Messages包含多个Signals。就是一个层级关系。如果以一本书来比喻一个dbc文件,那可以这样理解:书名(Networks),书本章节目录(Networknodes),文章(Messages),段落(Signals)。

2022-11-12 22:00:25 6031 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除