CAPL中基本数据类型详解-基本数据类型和系统变量

          CAPL中的基本数据类型

说明:CAPL支持的正常类型都可以作为函数参数(这里的正常

类型,是指Byte
的整数倍的数据类型)

数据类型数据有无符号长度(Byte)范围(十进制)
Byteunsigned10-255
wordunsigned20-65535
dwordunsigned40-4294 9672 95
qwordunsigned80-1844 6744 0737 0955 1615
char signed1(-125-125)
intsigned2(-32768-32767)
int64signed8(-9223 372 036 854 775 808
-9223 372 036 854 775 807)
floatsigned8无限接近于0-1.7*10^308
doublesigned8无限接近于0-1.7*10^308

我刚刚开始接触CAPL时,对于CAPL不支持unsigned非常耿耿于怀,接触一段时间后发现,CAPL

取消unsigned关键字,是有一定他的道理的。

表中标红的是CAPL中新添加的数据类型,本质上是一些c中的类型变量的平替。

CAPL平替
无符号平替(CAPL)等价于C中的说明
char byteunsigned char 
intwordunsigned int 

CAPL编译器,将int为2个Byte

但是非常特殊的是,在Sysvar(系统变量中)

int又变为32bit,即4Byte


long int
int64(等价于unsigned long int 

CAPL中的系统变量(sysvar)类型详解

CAPL中的系统变量
数据类型数据有无符号长度(Byte)写法
int有符号32Integer(32bitSigned)
无符号32Integer(32bit unsigned)
有符号64Integer(64bitSigned)
无符号64
Double-64Double(64bit)
String字符串--
Data字节数据-Data
IntegerArray---
Double Array---

重点关注Data和String数据:

1:Data数据

编辑界面如下:

第一个框选择数据类型,第二个框可以选择InitValue:初始数据类型。数据类型默认十六进制,

0x YY,YY表示只能是2位。且看图知道,数据默认是16进制,且不能加上前缀0x,且不能是添加字符如:‘a’

且需要了解的是,Data好像类似于整形数组,但是CAPL中支持的整形数组,必须是固定长度的。DATA更类似于可变长度的数组。

注意C语言中规定 数组定义时不是必须要写数组长度,如:int Arr_1[]={10,20,30,40};注意这不是可变长度数组,此种情况下,必须定义时,赋初值。赋完初值后,编译器根据初始化时,赋值给数组的元素个数,定义了数组的长度,后续对数组的,改写,删除,添加,等操作均不能改变数组的大小。而可变长度数组,是可以任意时刻改变数组长度。

2:string数组

可以看到,系统变量中的String类型是可以包含各种符号,数字和字母(包含大写和小写)都是合法的操作。

接下来介绍关于Access and Event的相关属性

系统变量的属性设置
属性名称属性说明
OnlyUsedinAnalysis指示变量是否仅在测量设置中可用。
ReadOnly只读(不可被改写,相当于C中的const),此变量不会被CAPLpannel改变
Multi-CANoe Write Access在这里,您可以为Multi-CANoe操作选择可以写入变量的CANoe设备。其他CANoe设备会自动接收此变量的值更改。
如果该字段为空,则它是一个局部系统变量。值更改不会提供给其他CANoe设备。
EventOnValueAssignment系统变量被赋值时的事件

介绍其中几个比较难懂的点

1:OnlyUsed in Analysis  只在Analysis中使用,也就是说,在MeasurementSetup中可以添加program node(也就是编程功能节点),只在这里使用。但是不推荐勾选这个选项,这样无论是Analysis和CAPL编程中都可以使用。

2:Multi-CANoe Write Access,这个选项其实就是将系统变量,与CANoe硬件(如VN1640,VN 5620强制绑定)写权限,只有此CANoe才有写权限,一般情况下,推荐也不勾选。(此处,我认为是为了工程对外保密使用的,但是CANoe本身就提供了encrypted加密功能)

3:EventOnValueAssignment,是指系统变量,同一时刻收到多个值,所触发的事件。如我们代码中设置了此系统变量的一个

on sysvar 命名空间::系统变量名

{

}

同一时刻收到多个值,我们可以选择触发多次,或只触发最近的一次赋值

  • 23
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值