CAPL
文章平均质量分 77
CANoe 工具自带的编程语言的介绍和整理
小趴菜_自动驾驶搬砖人
自动驾驶领域小白,希望跟大家一起学习自动驾驶相关内容。
展开
-
CAPL脚本介绍系列完结篇
用例篇CPAL脚本自动化测试 ———— testcase系列函数及使用CPAL脚本自动化测试 ———— testcase的排版设计函数篇CPAL脚本自动化测试 ———— 信号测试系列函数及使用CPAL脚本自动化测试 ———— Flexray系列函数及使用CPAL脚本自动化测试 ———— FDX系列函数及使用CPAL脚本自动化测试 ———— 诊断模块之参数赋值功能篇CPAL脚本自动化测试 ———— Message的相关属性CPAL脚本自动化测试 ———— 诊断模块的安全解锁函数分析..原创 2021-04-29 15:40:35 · 12599 阅读 · 2 评论 -
CPAL脚本自动化测试 ———— System Variables 系列函数
文章目录General FunctionssysDefineNamespace使用方法函数作用sysUndefineNamespace使用方法函数作用sysUndefineVariable使用方法函数作用Define VariablessysDefineVariableData使用方法函数作用sysDefineVariableFloat使用方法函数作用sysDefineVariableFloatArray使用方法函数作用sysDefineVariableInt使用方法函数作用sysDefineVariabl原创 2021-12-22 09:01:34 · 10755 阅读 · 1 评论 -
CPAL脚本自动化测试 ———— Panel & Variables 系列函数
文章目录callAllOnEnvVar使用方法函数作用示例ClockControlReset使用方法函数作用示例ClockControlStart使用方法函数作用示例ClockControlStop使用方法函数作用示例closePanel使用方法函数作用DeleteControlContent使用方法函数作用示例enableControl使用方法函数作用示例getValueSize使用方法函数作用示例MakeRGB使用方法函数作用示例MakeARGB使用方法函数作用示例openPanel使用方法函数作用pu原创 2021-12-15 13:16:47 · 8100 阅读 · 0 评论 -
CPAL脚本自动化测试 ———— 字符串处理函数
文章目录ConvertString使用格式函数作用示例DecodeString使用格式函数作用示例EncodeString使用格式函数作用示例ltoa使用格式函数作用示例mbstrlen使用格式函数作用示例mbstrncmp / mbstrncmp_off使用格式函数作用示例mbstrncpy / mbstrncpy_off使用格式函数作用示例mbstrstr / mbstrstr_off使用格式函数作用示例mbsubstr_cpy / mbsubstr_cpy_off使用格式函数作用示例ConvertS原创 2021-12-08 10:08:02 · 4266 阅读 · 0 评论 -
CPAL脚本自动化测试 ———— log 系列函数
文章目录setLogFileName使用方法函数作用示例setPostTrigger使用方法函数作用示例setPreTrigger使用方法函数作用示例StartLogging使用方法函数作用示例StopLogging使用方法函数作用示例trigger使用方法函数作用示例triggerEx使用方法函数作用示例writeToLog使用方法函数作用示例writeToLogEx使用方法函数作用示例setLogFileName使用方法函数作用 设置日志文件的名称。 如果给出有效的扩展名,它也会更改文件类型。原创 2021-12-01 08:45:11 · 4564 阅读 · 3 评论 -
CPAL脚本自动化测试 ———— file 系列函数
文章目录前言函数介绍fileClose使用方法函数作用fileGetBinaryBlock使用方法函数作用fileGetString使用方法函数作用fileGetStringSZ使用方法函数作用filePutString使用方法函数作用fileRewind使用方法函数作用fileWriteBinaryBlock使用方法函数作用getOfflineFileName使用方法函数作用示例getNumOfflineFiles使用方法函数作用示例getAbsFilePath使用方法函数作用示例getProfileAr原创 2021-11-24 15:17:35 · 5197 阅读 · 0 评论 -
CPAL脚本自动化测试 ———— 函数与测试函数对测试报告的影响
文章目录普通函数命名方式报告输出测试函数命名方式报告输出总结 在编写测试脚本的过程中,我们无法避免的需要自己定义一些API函数完成指定的目标。在CAPL库中,存在着两大类的函数:一种是普通函数,一种是测试函数。这篇文章主要是介绍这两种函数的之间的区别以及自己在使用过程中的一些常用场景。这两种函数并没有高下之分,只是在处理不同问题上有自己的优势而已。普通函数命名方式 以下方的函数为例。这里先定义了函数类型为 int 型,后面则是函数名和参数名。int func_Comm_SetSig_Chk(sig原创 2021-09-15 14:40:19 · 4399 阅读 · 1 评论 -
CPAL脚本自动化测试 ———— Diagnostic 系列函数
该系列文章之前有写过一篇文章:CPAL脚本自动化测试 ———— Diag系列常用函数及使用。上面这篇文章主要是针对于在实现诊断模块的自动化测试过程中经常使用到的函数。这篇文章主要是想对 CANoe 工具里面支持的诊断函数做一个汇总和整理。Diagnostic CAPL Functions ModuleNameDescriptionCommentEvent Procedures on diagRequest 在 ECU 模拟中收到诊断请求时调用为 ECU 配置了附加诊断描述,原创 2021-07-22 08:36:50 · 11004 阅读 · 0 评论 -
CPAL脚本自动化测试 ———— TCP 系列函数
TCP/IP 传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP 传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且,TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。TCP/IP传输协议是严格来说是一个四层的体系结构,应用层、传输层、网络层和数据链路层都包含其中。TCP/IP协议是Internet最基本的协议,其中应用层的主要协议有Telnet、FTP、SMTP等,是用来接收来自传输层的数据或者按不同应用要求与方式将数据传原创 2021-07-14 08:31:41 · 2566 阅读 · 5 评论 -
CPAL脚本自动化测试 ———— UDP 系列函数
UDP 是 User Datagram Protocol 的简称, 中文名是用户数据报协议,是 OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768 是UDP的正式规范。UDP 在 IP 报文的协议号是17。UDP 协议与 TCP 协议一样用于处理数据包,在 OSI 模型中,两者都位于传输层,处于 IP 协议的上一层。UDP 有不提供数据包分组、组装和不能对数据包进行排序的缺点,也原创 2021-07-13 08:20:53 · 2439 阅读 · 1 评论 -
CPAL脚本自动化测试 ———— IP 系列函数
TCP/IP 传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP 传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且,TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。TCP/IP传输协议是严格来说是一个四层的体系结构,应用层、传输层、网络层和数据链路层都包含其中。TCP/IP协议是Internet最基本的协议,其中应用层的主要协议有Telnet、FTP、SMTP等,是用来接收来自传输层的数据或者按不同应用要求与方式将数据传原创 2021-07-12 08:51:57 · 1504 阅读 · 0 评论 -
CPAL脚本自动化测试 ———— lookup 系列函数
在进行自动化脚本的过程中,我们会涉及到对一些数据的处理,也有可能会使用到结构体。在结构体中,我们定义好一个信号,这个时候,它的类型是 char。但是,对 CAPL 中的信号处理函数来说,它是无法处理 char 型的字符串的。所以,这个时候需要我们将 char 型的字符串通过另一套系列函数将其处理之后变成函数可识别的信号。同样的, CAPL 函数库中由定义好的相关的系列函数,这里对其做一个介绍。格式转换(lookup)系列函数NameStructDescriptionCommentl原创 2021-07-07 08:35:01 · 1941 阅读 · 2 评论 -
CPAL脚本自动化测试 ———— IL 系列函数
IL 是 Interaction Layer 的缩写,也就是主要针对于交互层。在CAN网络中,交互层负责管理传输模型并执行以下任务: 1. 提供基于信号的接口。 2. 根据信号和消息的发送类型控制消息的传输。 3. 提供根据请求发送消息的可能性(使用信号或消息作为触发对象)。 4. 提供故障注入接口以影响消息的发送。 由于交互层的函数较多,而且在当前阶段我并没有对该系列函数有多的涉及,所以这里主要是对各种函数进行一个汇总。具体的函数与功能,请查看下表:Interaction Lay原创 2021-06-03 08:21:20 · 4743 阅读 · 0 评论 -
CPAL脚本自动化测试 ———— Diag系列常用函数及使用
诊断模块在CAPL中还是比较成熟的,而且有大量封装好的系列函数可以帮助我们在平时的测试过程中实现自动化测试。这里我就着重介绍一些我们会进场使用到的函数来完成我们日常的测试场景的覆盖。diagResize 函数具体的格式如下。主要是调整诊断对象的大小以匹配指定的参数迭代,或将总线消息的大小设置为给定的字节数。用例:diagRequest PAS3.* pasDiagReqst;dword diagLen;diagLen = stringToBytes(diagString, rawDia原创 2021-05-22 21:09:12 · 9352 阅读 · 3 评论 -
CPAL脚本自动化测试 ———— FDX系列函数及使用
在构建HIL测试环境过程中,FDX协议是一个常用的协议来传输数据。在调试的过程中,CAPL的函数库里面也存在一些已有的FDX系列相关的函数,我们可以直接使用来实现一些操作。FDXClientHandleUdp函数该函数的使用格式如下。此函数为具有指定地址的FDX客户端创建FDX客户端连接。先决条件是将UPD / IPv4或UDP / IPv6配置为FDX功能的传输层FDXConfigureSequenceCounting函数该函数的使用格式如下。此函数为填写FDX数据报头中的字段seqNrO原创 2021-03-25 15:30:43 · 1419 阅读 · 0 评论 -
CPAL脚本自动化测试 ———— CAPL编译环境的介绍
在使用CANoe工程实现自动化的过程中,我们必然会使用到CAPL脚本。CAPL脚本的保存格式一般有两种,一种是.can,另一种是.cin。这两种格式之间最主要的区别是: .cin格式主要用来充当头文件,有点类似于C语言中的头文件;.can文件一般是存放编译的脚本,也可以充当头文件。如何用好CAPL,我们首先需要了解和明白CAPL的编译环境 —— CAPL Browser。启动页面打开页面如下。我将整个区域划分为3个大的模块。1 —— 菜单栏2 —— 导航栏3 —— 工作区菜单栏File 菜单原创 2021-05-12 13:48:01 · 12282 阅读 · 0 评论 -
CPAL脚本自动化测试 ———— RC232 系列函数及使用
在测试过程中,我们可能还涉及到电压的变化。在这边,我们可以采用使用程控电源并通过RC232来控制程控电源的输出与变化。我一般是用较多的是TOE8592,在CAPL的函数库中,同时也支持RC232这系列函数。所以,我们就可以通过RC232实现对程控电源的输出与控制。RS232Close 函数使用格式如下。主要运用于关闭串口。串行端口将对所有节点关闭。一个端口和同一端口可能被多个节点(或重复)关闭。 关闭后,其他程序可能会使用串行端口。关闭串行端口后,端口的配置将丢失。下次打开该端口时,将使用系统默认值进原创 2021-05-11 14:46:07 · 2705 阅读 · 2 评论 -
CPAL脚本自动化测试 ———— 数学函数&字符串处理函数
函数功能用例结果arccos计算反余弦值double x; x = arccos(0);90°arcsin计算反正弦值double x;x = arcsin(1);90°arctan计算正切值double x;x = arctan(1);0°_ceil求出不小于的最小整数float x;x = _ceil(3.6);4_floor求出不大于的最大整数float x;x = _floor(3.6);3_Log取自然对数函数...原创 2021-04-29 11:00:33 · 2986 阅读 · 5 评论 -
CPAL脚本自动化测试 ———— Write函数的使用与输出格式
在运行工程的过程中,我们不一定每一次都可以完美的契合我们所需要的目标。这里可能会存在着问题或者偏差,这个时候就需要我们去调试脚本。关于调试脚本,CANoe支持两种不同的方式,一种是进入debug模式进入调试,另一种是通过打印的方式来分析和调试脚本。CANoe的输出打印窗口是有一个单独的打印窗口的,叫做 "Write"窗口。进入方式为Home -> Write。对于截图中的内容来说,这边记录了多次的诊断请求与诊断响应。系统的启动也会有一些内容打印,这样我们就可以类似于通过分析打印的log来分析程序的执原创 2021-04-28 10:36:53 · 11048 阅读 · 9 评论 -
CPAL脚本自动化测试 ———— Test Report系列函数及使用
在完成了测试用例的设计之后,最终的测试用例执行结果将会以Test Report形式展示。可能测试步骤中并没有包含我们所需要的信息,那这个时候test report系列函数将帮助我们完成这个功能。TestReportAddEngineerInfo/TestReportAddSetupInfo/TestReportAddSUTInfo 函数使用格式如下。主要用于在测试报告中添加一些信息(测试员、测试配置、待测样品)。用例: // add information to SUT information原创 2021-04-27 16:08:15 · 3830 阅读 · 0 评论 -
CPAL脚本自动化测试 ———— Test Step系列函数及使用
在设计测试用例的过程中,我们可能会使用到测试步骤的函数。这个时候,CAPL的库中也存在着一系列的TestStep函数。这里对一些常用的函数进行一个阐述说明。TestStep 函数使用格式如下。主要是用来报告测试步骤的相关描述,对测试结果没有任何的影响。用例:TestStep("1.0", "Communication prepared"); // create neutral entry in report fileTestStepPass 函数使用格式如下。主要是用于描述某个测试步骤原创 2021-04-22 08:47:39 · 5584 阅读 · 14 评论 -
CPAL脚本自动化测试 ———— Signal Wait系列函数及使用
等待指示类(Wait Instruction Functions)主要运用于为用户提供动作设置、等待测试等功能。TestValidateForTesterConfirmation 函数使用格式如下。主要运用于创建一个弹出窗口,将给定的字符串提供给测试人员。 测试人员可以通过“是”,“否”或“不清楚”来确认该窗口。该窗口包含用于输入注释的字段,该注释将自动应用于测试报告中。TestWaitForEnvVar 函数使用格式如下。等待指定环境变量的出现。 如果事件在规定时间到期之前未发生,则等待条件仍原创 2021-04-20 14:25:56 · 5145 阅读 · 3 评论 -
CPAL脚本自动化测试 ———— Signal Check&Reset系列函数及使用
信号测试类函数主要适用于检测、操作信号、变量的数值。下面列举一些在平时会经常使用到的一些函数。checkSignalInRange / testValidateSignalInRange 函数作用均是确认信号/变量的值是否处于规定的范围(aLowLimit <= Value <= aHighLimit)内。如果未处于规定的范围内,该函数的值返回为非1。不同点在于testValidateSignalInRange 函数多了一个参数aTestStep[]。也就是说这个参数可以定义该函数的确原创 2021-04-12 15:14:53 · 5033 阅读 · 3 评论 -
CPAL脚本自动化测试 ———— testcase的排版设计
在CAPL中,我们可以使用testcase函数来定义每一个测试用例。对于状态机的测试来说,同一状态的切换存在着多个条件。一旦case数量比较多时,后续的case维护则存在着一定的麻烦和不便利性。因为哪怕每一个case都具有唯一的名称,但是找起来还是存在着麻烦。我们可以通过实现打包case组来实现case的快速寻找和打包。下图是我已经实现的testcase打包排版。首先,创建一个类似于文件夹的case组名。以上图的为例,这样子就创建了一个叫Block2_Failure的case组。/// <Blo原创 2021-03-31 11:49:36 · 7833 阅读 · 1 评论 -
CPAL脚本自动化测试 ———— Message的相关属性
在使用CANoe的过程中,我们不可避免的会跟Message打交道。对于一个初学者了来说,message有什么属性,我们要怎么用好这个message在实现自动化的过程中还是很重要的。.can 定义接收帧的传输通道或通道。具体的使用例子如下。例子定义了message 0x100的通道为CAN 1.message 0x100 msg = {dlc = 2, word(0) = 0x1234};on key '1' { write("sende via CAN 1"); msg.CAN = 1;原创 2021-03-30 13:27:25 · 13959 阅读 · 14 评论 -
CPAL脚本自动化测试 ———— Flexray系列函数及使用
现在,CANoe能支持的协议已经越来越多了,Flexray也逐步被使用到了整车网络中。既然可以使用以太网进行通信,那也需要对Flexray进行一定的操作。CANoe 内部存在着Flexray系列函数,现在来介绍一下如何使用。frEnableGateway函数该函数的使用格式如下。功能是激活网关。frEnableNodeTx函数该函数的使用格式如下。功能是启用/禁用指定节点的所有 TX帧 / PDU。启用后,将 传输帧/ PDU的默认数据。frGetConfiguration函数该函数的使用原创 2021-03-30 12:49:27 · 4269 阅读 · 5 评论 -
CPAL脚本自动化测试 ———— testcase系列函数及使用
函数1:Testcomment函数的格式和规范如下:其中,我们最常使用到的格式如下:TestCaseComment("Initialization of system completed");注意点:1.该函数不会对最终的执行结果做更改。2. 双引号之间的文本会最终写入到测试报告中。具体测试报告的输出如下:函数2:Testcasedescription函数的格式和规范如下:使用的方式非常简便,比如:TestCaseDescription("This test case simulat原创 2020-07-27 21:35:17 · 6709 阅读 · 0 评论 -
CPAL脚本自动化测试 ———— 诊断模块的安全解锁函数分析
第一步:定义参数。包括请求种子的请求(SeedReq_1),发送密钥的请求(KeySend_1),发送时间限制,响应时间限制(上述两个时间参数根据实际项目的不同而设置),种子数组,密钥数组,变量和ipOption等相关重要参数。第二步:发送种子请求,将响应的seed存储在seedArray中。在此对函数DiagGetRespPrimitiveByte做一个简单的介绍。具体的结构和格式要求如下:因为UDS协议中关于27服务的定义中,响应帧的byte 0 和byte 1 为Request SID 和原创 2020-07-08 21:25:40 · 8975 阅读 · 12 评论 -
CPAL脚本自动化测试 ———— 诊断模块之参数赋值
诊断功能自动化的执行过程中,涉及到写入和更改请求的部分参数,主要是通过两个函数来完成,分别是diagSetParameterRaw和diagSetParameter。下面对这两个函数的区别做一个介绍。diagSetParameter函数的结构和格式如下:格式1:格式2:两种格式的区别在于你所赋值的类型。diagSetParameterRaw函数的结构和格式如下:相比于diagSetParameter函数,参数结构不同。功能上diagSetParameter函数只能更改一个参数的值diagSe原创 2020-07-08 21:18:28 · 5437 阅读 · 1 评论