手机随时阅读
新人专享大礼包¥24
1. tcp/ip协议栈与capl脚本的冲突问题之前维护过一个同事开发的CANoe测试脚本,场景是这样的:外部ECU作为tcp客户端,不停往外发SYN报文。Tbox作为tcp服务器,接受ECU的tcp连接请求,并完成三次握手。连接成功后,ECU发送tcp数据段,Tbox接收数据并回复ACK报文现在需要用CANoe模拟
CANoe TCP/IP协议栈仅在以下情况下可用:CANoe软件版本支持Ethernet当前配置中至少配置了一个Ethernet通道TCP/IP Stack打开后,显示CANoe TCP/IP协议栈和以太网通道上的网络节点的协议栈有几个组件使用IP通信,例如DoIP、XCP和CAPL中的TCP/IP,在这个界面上,可以配置IP通信的基本设置对于每个协议栈,可以配置以下的设置项:协议栈选择可以选择CANoe或网络节点使用哪个TCP/IP协议栈进行通信。有以下选项:单独的TCP/IP
TCP/IP API提供访问TCP/IP网络功能的接口函数。它是在Windows操作系统的本机Winsock 2 API之上实现的。API分为以下几类:IP APIIP API包括用于网络信息检索的通用功能,例如查询已安装的网络接口卡(NIC)、IP地址、地址转换功能、错误处理等。此外,IP API还具有一些用于套接字操作的特殊功能,例如设置套接字选项或绑定IpAddAdapterAddress将地址添加到具有给定索引的网络接口传入的网络接口卡索引参数以1为开始,不是0capl中调用函数.
Selectors说实话,我到现在还是很难理解这个selector应该翻译成什么我把它理解成是类里面的属性,类的实例化对象可以通过:对象.属性,来获取或设置属性MessageCAN/CAN FD消息的属性这里先复习下如何创建CAN/CAN FD消息对象一种是可以通过message关键字定义can或can fd消息用法如下:message 0xA m1;message 100 m2;message EngineData m3; 可以用message id来定义一条can/can
还记得我刚使用CANoe时,最大的难题不是里面繁杂的功能如何使用,而是总线通道的配
Trace Window的目的是记录测量期间的总线活动。在Measurement Setup中Trace窗口的输入处接收到的所有消息在Trace输出窗口中显示为文本行,今天简单看一下Trace窗口里都有哪些功能,为后续的文章做准备先了解如何打开Trace窗口然后查看一个CANoe Demo运行时,在Trace窗口里输出的内容可以看到,除了CAN消息,还有标注着ID为SV的内容,是什么呢,其实它是系
准备工作CANoe工具分为硬件和软件,首先需要把硬件环境搭建好硬件搭建好后,需要在软件环境上配置好仿真节点,首先打开一个空白的configuration 由于连接的ECU使用的是CAN网络高速,且只有一个ECU,所以我们这里选择的是一个通道的500bit/s的高速CAN网络打开工程文件以后,我们打开Test Setup设计界面在这里插入Test Module,怎么插入?首先右击新建一个Test
CANoe-如何制作面板并实现通信 前言“CANoe工具是汽车仿真测试开发中使用最广泛的工具” 01 PanelCANoe工具分为硬件和软件,首先需要把硬件环境搭建好硬件搭建好后,需要在软件环境上配置好仿真节点,首先打开一个空白的configuration由于连接的ECU使用的是CAN网络高速,且只有一个ECU,所以我们这里选择的是一个通道的500bit/s的高速CAN网络打开工程文件以后,我们
CANoe-什么是vTESTstudio vTESTstudio CANoe平台提供了Simulation Setup用于ECU的仿真模拟通信,提供了Test Modules用于ECU的测试序列,虽然它们能为ECU覆盖很多的测试用例,但是却具有不可移植、编写手段不够灵活等缺点vTESTstudiovTESTstudio是一个用于创建自动化ECU测试的强大的开发环境,它可以提高测试设计的效率,并简
新建一个vTESTstudio项目 环境配置 安装和打开vTESTstudiovTESTstudio平台需要安装vTESTstudio插件,可以在Vector官网上下载安装完成后打开vTESTstudio需要注意的是打开的vTESTstudio只有读取的功能,无法进行编辑和创建,如果想编辑和创建,必须要在电脑上插入Vector提供的license 创建一个项目并配置选择File -> Ne
普遍性函数 CompleteStop表示CANoe停止前的preStop阶段的完成这句话什么意思需要结合下面的一个方法一起说明 DeferStop推迟CANoe停止的生效首先需要明白的是,当点击CANoe运行图标时,会经历两个阶段,preStart和start我们可以在capl中用on preStart和on start这两个回调函数来设置CANoe运行时需要的一些条件其中,preStart比s
如同CANoe的xml test module中的variant概念一样,vTESTstudio中也有变体,且在vTESTstudio中的使用更加广泛和灵活可用作测试代码条件读取变体参数值定义依赖变体的测试用例或测试组 定义Variant Property首先在一个vTESTstudio项目上定义变体,例如下面的变体这里有三个变体Country,表示出口到哪个国家的产品Coverage,表示是哪个
python如何操作CANoe按照我以前的想法,如果CANoe想让python调用,就需要基于python开发一个集成各个功能接口的模块,python通过安装导入这个模块以及调用里面的接口实现CANoe的功能后来发现还是我想的简单了,运行在windows系统中的CANoe和python,完全可以借助windows系统提供的COM组件来实现互通性 COMComponent Object Model
vTESTstudio可以把实现在函数中的常数值取出,统一定义在参数文件中,用变量表示,方便更改,而不会影响测试用例的函数体 Parameter在test unit上右击选择Add -> Parameter File,创建参数文件在parameter文件下有两种方式新建参数右击插入状态栏下插入几种类型的参数有 (Scalar) Parameter标量参数,表示一个常数值插入标量参数,通过…来
DBC文件在CAN网络的设计和测试中起着非常重要的作用,通过DBC,可以把CAN网络中大量的数据解析成直观的消息和信号,方便用户分析 DBC 什么是DBCDatabase CAN,CAN网络的数据库文件,定义了CAN网络的节点、消息、信号的所有细节,包括每个节点会发送哪些消息和接收哪些消息,每个消息里里包含哪些信号,每个信号位于消息的哪个位置,值有哪些,每个值代表的含义是什么,等等 DBC的用途是
指令 {…}完整的一段函数体需要用中括号括起来void func1(){ if () { ... }} if…else…判断语句if…else…,一般用来判断是或非两种情况,当然也可以通过else if添加更多情况,一般有三种用法if使用场景:如果…就…void func1(int a){ if (a == 1) { ... }} if…else…使用场景:如果…就
在CANoe的Simulation Setup中,整个系统以图形化的方式显示网络、设备和所有网络节点,可以用CANoe硬件设备连接多路网络总线,同时在CANoe软件上创建所有的总线通道,包括LIN、CAN和Ethernet等,在每条总线上,可以添加多个网络节点或各类型的测试模块,方便测试在总线上右击添加网络节点或测试模块 Network Node在总线上添加网络节点,也就是ECU节点,也可以叫仿真
今天同事在运行capl脚本时遇到一个问题,由于脚本内容太多,我把问题点写成了demo,大概是这样脚本如下void func1(){ int i = 3; write("i value: %d", i); i++;}on key 'y'{ func1(); func1(); func1();}当我在CANoe上点击按键y调用三次func1()函数时,在write窗口打印的结果如下你会发现
声明数据类型的关键字可以用不同的关键字,声明或引用不同类型的数据 byte 声明一个字节的变量 word 声明两个字节的变量 dword 声明四个字节的变量 int 声明两个字节的整数 long 声明四个字节的变量 qword 声明八个字节的变量 char 声明一个字符串 float 声明一个浮点数,8个字节 double 声明一个浮点数,8个字节 定义一个结构体或枚举类型 struct str
获取工程信息%NODE_NAME%仿真节点名称举例on key 'a' { write("the node name: %NODE_NAME%"); } 打印的结果获取的节点名称是%CHANNEL%仿真节点分配的通道举例on key 'a' { write("the channel: %CHANNEL%"); } 打印的结果获取的通道是%NETWORK_NAME%仿真节点分配的网
消息声明在capl中,用关键字message声明消息,格式为message 消息id/消息名称 自定义名称;如果导入了dbc文件,就可以用dbc里的消息名称声明它,如果没有dbc,就需要用消息id来声明,当然,即使有dbc,也可以用消息id声明消息id可以用16进制或10进制表示,都是可以的message 0xA m1; message 100 m2; message EngineData m3
数据库访问 lookupMessage根据消息名(字符串)在数据库中搜索消息,返回消息的dbMsg类型,dbMsg也是数据库中所有消息的类型如果在数据库中未找到对应的消息,或不是唯一的,就会在write窗口中报错,且返回的是无效的dbMsg可以通过在excel之类的消息表中获取字符串来批量命名dbMsg类型的消息 lookupNode在数据库中搜索节点,返回节点的dbNode类型,使用方法和lo
Channel-based access是基于总线搭建车载网络的,就是创建总线通道接入多个ECU节点,这符合LIN或CAN网络的网络布局而对于以太网来说,交换机才是它的标志,所有数据通过以太网端口进行转发,所有的设备连接在交换机的端口上,这就是为什么Network-based access又称为Port-based network access当然CANoe的以太网也可以用Channel-base
回放功能通过调用capl里的函数来操作回放模块 ReplayResume暂停后启动回放模块,是回放模块在暂停后,恢复播放,而不是重头开始播放传入的字符串是回放模块的名称,返回值1表示启动成功,0表示模块不存在或无法重新启动 ReplayStart启动回放模块这个函数是对于停止的回放模块重新播放 ReplayState获取回放模块的状态返回值0表示已停止,1表示正在执行,2表示已暂停,-1表示模块
第一个参数timeSpan是加到测试开始时间上的时间第二个参数time数组是测试开始时间加上这个偏移量时间后的新时间存储的数组数组里每个元素表示时间的一部分 cancelTimer停止一个激活的计时器 convertGPSTimestamp将 GPS 时间戳转换为基于 UTC 的日期和时间信息 convertTimestamp将时间戳转换成多少天多少小时…类似的还有convertTimestam
_
在CAPL学习之路的系列文章中,提及过capl读写文件的相关函数,今天介绍几种capl可读写的文件类型,用到的函数接口如下众所周知,要把大象装冰箱,总共分三步:把冰箱门打开,把大象装进去,把冰箱门关上(这里最好用东北话,更有画面感)串台了串台了,重来,想要读写文件,总共也分三步:打开文件,读写内容,关闭文件根据这种思路,我们一起试着读/写文件内容 txt文件 读取文件首先在电脑上创建一个test.
不管你是测试还是开发人员,一定免不了和总线打交道,对于测试工程师,提bug时经常需要上传log文件,其中就涉及到总线数据的保存;对于软件工程师,分析问题时需要用总线数据文件进行回放复现,这些都离不开记录总线数据的log文件 Log文件类型 BLF文件什么是BLF文件Binary Logging Format(binary format),二进制格式文件由于是二进制文件,又做了压缩,无法通过Note
VBA,Vehicle Bus Analyser,恒润公司开发的一款汽车总线工具,具备对总线数据的监控与分析、节点仿真、报文发送、总线负载统计、离线回放、故障诊断、多媒体数据监控等功能,目前支持的总线类型包含CAN、CANFD、LIN,优势是价格便宜,由于功能较少所以容易上手,缺点嘛,也是功能较少,且不稳定,目前还不支持Ethernet 环境搭建和Vector的CANoe类似,VBA工具也是由软件
Simulated bus/Real bus有时候我们想试验一下CANoe上的某个功能或者是CAPL上的某个函数时,不需要实际的被测件,要如何让CANoe软件运行起来呢比如说我想试一下on key这个事件程序是如何工作的,那么首先打开CANoe软件,创建一个工程文件然后需要在CANoe软件上配置总线通道,先配置有几种总线类型,每种总线有几路通道,0代表没有此类总线配置好总线数量后,选择Simul
Copyright © 2005-2022 51CTO.COM 版权所有 京ICP证060544号