CAPL 语言和C语言基本语法很相似,只是没有指针,list, set 等概念。

如何通过CANOE 创建自动测试节点

1.      创建一个CANoe configuration

2.      点击viewàSimulation Setup

3.      点击右键->insert xml test moudle

4.       右键点击新创建的XMLNode->Configuration

5.      Test Script添加Test CaseXML

6.       点击TAB Components 进行创建或添加Test case files(.can)

7.      点击确认返回

8.      右键XML NODE->Edit *.can 进行编辑Test Casefile(.can)

整体结构

通过CAPL 语言编写的测试用例与方法需要以 .can 为扩展名的文件打开

属性页

Includes

同C语言中Includes 一样,可以包含其他.can文件,进而引用其他文件的内容

Variables

全局变量定义区域,主要分为以下几种类型

Integers

Ø  byte

Ø  word

Ø  dword

Ø  int

Ø  long

Ø  qword

Ø  int64

Floating point numbers

Ø  float

Ø  double

Individual characters

Ø  char

Map

float m[float];

m[4.1] = 5.5; //key is 4.1 (float)  and value is 5.5 (float)

m[5.3] = 6.6;

write ("4.1 is mapped to %2.2lf",m[4.1]);

write ("5.3 is mapped to %2.2lf",m[5.3]);

for (float mykey : m)

{

write("%2.2lf is mapped to %2.2lf.", mykey, m[mykey]);

}

Enum

和C语言定义Enum 类型一致

Struct

和C语言定义结构体类型一致

注意:结构体属性只能是基本数据类型,不能是message类型,即使编译不存在问题

Message

Error Frame

System

与System相关的事件触发器

可以通过CANBrower 添加System事件触发器

CAN

与CAN相关的事件触发器

可以通过CANBrower 添加CAN 事件触发器

on message

The event procedure on message is called onthe receipt of a valid CAN message.

如何定义 message 事件触发

on message 123

React to message 123 (dec, standard identifier), regardless of receiving chip

on message 123x

React to message 123 (dec, extended identifier), regardless of receiving chip

on message 0x123

React to message 123 (hex, standard identifier), regardless of receiving chip

on message 0x123x

React to message 123 (hex, extended identifier), regardless of receiving chip

on message EngineData

React to message EngineData

on message CAN1.123

React to message 123 if it is received by CAN1 chip

on message *

React to all messages

on message CAN2.*

React to all messages received by CAN2 chip

on message 0,1,10-20

React to messages 0, 1 and 10 through 20

如何判断收到message 类型

on message * {
if (this.DIR == RX) {
write("This is RX message");
}
if (this.DIR == TX) {
write("This is TX message ");
}
}

on errorFrame

The event procedure on errorframe is calledwhen an error state (Error Frame) occurs on the bus.

如果通过errorcode进行区分

on errorFrame
{
   switch (this.ecc & 0x20)
   {
      case (0x20): // in case of reception error
         write ("%d Ch %dRxErr", this.time, this.can);
         return;
      case (0): // in case of transmission error
         write ("%d Ch %dTxErr", this.time, this.can);
         return;
   };
}

on errorActive

CAN controller goes to ErrorActive.

重要属性,通过this 进行访问

errorCountRX (Receive error counter)

errorCountTX (Transmit error counter)

can (Assign the channel)

on errorPassive

CAN controller goes to ErrorPassive.

重要属性,通过this 进行访问

errorCountRX (Receive error counter)

errorCountTX (Transmit error counter)

can (Assign the channel)

on warningLimit

CAN controller reaches the Warning Limit.

重要属性,通过this 进行访问

errorCountRX (Receive error counter)

errorCountTX (Transmit error counter)

can (Assign the channel)

on busOff

CAN controller goes to Bus Off.

重要属性,通过this 进行访问

errorCountRX (Receive error counter)

errorCountTX (Transmit error counter)

can (Assign the channel)

Function

定义全局方法

格式: 返回类型  方法名(参数….)

Test Cases

定义全局测试用例

格式:testcase 名称

重要的系统API

Message Functions

Signal Functions

Test Functions

Wait Functions

String Functions

Time Functions

Trigonometric and Mathematical Functions

File Functions

Memory Functions

CANoe and CANDB Functions

CAPL创建与语法简介相关推荐

  1. ROS Learning-032 (提高篇-010 Launch)Launch 深入研究 --- (启动文件编程)ROS 的 XML语法简介...

    ROS 提高篇 之 Launch 深入研究 - 01 - 启动文件的编程 - ROS 的 XML语法简介 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubu ...

  2. javascript语法_JavaScript传播语法简介

    javascript语法 by Ashay Mandwarya ?️?? 由Ashay Mandwarya提供吗? JavaScript传播语法简介 (An introduction to Sprea ...

  3. [EasyHexo 专栏] #1 - Markdown 编辑器推荐与语法简介

    EasyHexo? 轻松使用 Hexo 搭建你的博客 EasyHexo GitHub Repo? EasyHexo/Easy-Hexo 本篇作者:ChungZH 前言 Hexo 默认是使用 Markd ...

  4. PostgreSQL修炼之道:从小工到专家. 3.1 SQL语句语法简介

    3.1 SQL语句语法简介 3.1.1 语句的分类 SQL命令一般分为DQL.DML.DDL几类. DQL:数据查询语句,基本就是SELECT查询命令,用于数据查询. DML:Data Manipul ...

  5. MySQL常用操作之创建存储过程语法详解

    MySQL常用操作之创建存储过程语法详解 前言 简介 语法 创建结构 变量结构 入参变量和出参变量 流程控制 判断(IF 语句) 判断(CASE 语句) 循环(LOOP 语句) 循环(WHILE 语句 ...

  6. 一步步编写操作系统 77 内联汇编与ATT语法简介

    内联汇编 之前和大家介绍过了一种汇编方法,就是C代码和汇编代码分别编译,最后通过链接的方式结合在一起形成可执行文件. 另一种方式就是在C代码中直接嵌入汇编语言,强大的GCC无所不能,咱们本节要学习的就 ...

  7. 正则表达式语法简介说明

    转自: 正则表达式语法简介说明 正则表达式通过自己的一套模式规则,可从字符串中匹配出相应的字符串,那么正则表达式的语法是怎样的呢? 下文将一一道来,如下所示: 字符 备注说明 \ 将下一字符标记为特殊 ...

  8. MySQL创建视图语法,MySQL视图的作用

    MySQL创建视图语法,MySQL视图的作用 一.语法 1. MySQL创建视图语法如下: CREATE VIEW view_name AS SELECT * FROM table_name ; 2. ...

  9. mysql 创建视图语法_MySQL创建视图的语法格式

    视图,具有简化查询语句.安全性和保证逻辑数据独立性等作用 创建视图的语法格式 视图中,包含SELECT查询的结果,因此,视图的创建基于SELECT语句,和已经存在的数据表,视图可以建立在一张表上,也可 ...

最新文章

  1. 预训练BERT学习笔记_Storm*Rage的博客
  2. Android NDK开发之 NEON基础介绍
  3. python速成一小时_Python学习|一小时快速入门python(一)
  4. java大数模板_java大数模板
  5. mysql active_GitHub - vipshop/drc: MySQL active-active replication solution.
  6. java swing 图片旋转_Java图片旋转,背景透明化
  7. 斯坦福大学发布 2019 人工智能指数报告
  8. 德媒:外景代替了现实 中国人拍婚纱照跑到很远地方
  9. 嵌入式系统功能概要设计说明_嵌入式软件架构设计实际该怎么做?
  10. 计算机共享wf,电脑怎么共享wifi网络
  11. 计算机二级新年来临贺卡步骤,2021新年贺卡怎么做步骤图片
  12. Tryhackme-New Year
  13. fiddler抓APP的htpps請求,全部都是Tunnel to ......CONNECT...443的解决办法
  14. 图像显著性论文(六)—Saliency Filters Contrast Based Filtering for Salient Region Detection
  15. 动态模糊神经网络用于自学习
  16. 百度网盘直接下载文件方法
  17. android健身app毕设,基于Android技术的菲特健身房app系统的设计与实现.zip
  18. Ranger学习笔记
  19. 【adb】 win11 配置 adb环境 史上最详细
  20. 【Unity Shader】unity海边波浪效果的实现

热门文章

  1. printf输出bool值 | printf转换符
  2. JavaScript时间日期
  3. 软件测评师知识点(2020.09.11)
  4. 微信公众号用户与网站用户的绑定方案
  5. 微信小程序--轮播图
  6. Chrome浏览器自带截长图功能,只需两个快捷键!
  7. 配置PHP运行环境的方法步骤
  8. 矩阵范数,向量范数,奇异值有什么用?
  9. MITK中窗宽窗位相关代码
  10. 树的数据结构代码_如何以无代码方式学习树数据结构