CAPL中基本数据类型详解

您所在的位置:网站首页 c中的类型是怎么分配的 CAPL中基本数据类型详解

CAPL中基本数据类型详解

2024-07-10 08:38| 来源: 网络整理| 查看: 265

          CAPL中的基本数据类型

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

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

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

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

CAPL中的系统变量数据类型数据有无符号长度(Byte)写法int有符号32Integer(32bitSigned)无符号32Integer(32bit unsigned)有符号64Integer(64bitSigned)无符号64Double-64Double(64bit)String字符串--Data字节数据-DataIntegerArray---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),此变量不会被CAPL或pannel改变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 命名空间::系统变量名

{

}

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3