如何使用sysvar参数定义CAPL函数

时间:2018-11-08 10:40:00

标签: vector capl canoe

在Vector CANoe中,是否可以定义一个采用系统变量参数的函数,例如系统函数TestWaitForSignalMatch()

在我的用例中,仅提供系统变量的当前值是不够的,因为我想将系统变量传递给TestWaitForSignalMatch()或类似的系统函数。

CANoe帮助似乎显示了示例:

long TestWaitForSignalMatch (Signal aSignal, float aCompareValue, dword aTimeout); // form 1
long TestWaitForSignalMatch (sysvar aSysVar, float aCompareValue, dword aTimeout); // form 3

我尝试过这样

void foo(sysvar aSysvar) {}
         ^

或这个

void foo(sysvar *aSysvar) {}
         ^

但是在两种情况下,我在sysvar关键字的标记位置都遇到了解析错误。

我成功创建了带有信号参数的函数,但是与CANoe帮助中的语法不同,我必须使用指针。 这有效:

void foo(signal *aSignal) {}

很明显,此时帮助中的文档不正确。如帮助中所示,当我省略signal时,它会在*关键字之后导致解析错误:

void bar(signal aSignal) {}
               ^

那么定义带有sysvar参数的函数的正确语法是什么? (如果可能)

如果版本很重要,我目前正在使用CANoe 9.0.53(SP1),9.0.135(SP7)或10.0.125(SP6)进行测试。

1 个答案:

答案 0 :(得分:0)

是的,可以。只是进一步定义您的sysvar类型,而不仅仅是sysvar。

  

系统变量,带有类型和*的指示。可能的类型:   数据,整数,浮点数,字符串,整数数组和浮点数组。例   声明:sysvarFloat * sv

您未指定CANoe SP版本,因此在较早的版本中可能不支持该版本,但是要确保做到这一点,请在“帮助/索引”中搜索 Function参数,然后您应该您可以在当前的CANoe设置中使用的可能功能参数的完整列表。应该这样开始:

  • 整数(字节,字,dword,int,long,qword,int64)示例 声明:长1
  • 整数(字节,字,dword,int,long,qword,int64)示例 声明:长1
  • 单个字符(char)示例声明:char ch
  • 枚举示例声明:枚举Colors c
  • 关联字段声明示例:int m [float]。联想的 字段将自动作为参考转移。

.............

  • 系统变量,带有类型和*的指示。可能的类型: 数据,整数,浮点数,字符串,整数数组和浮点数组。例 声明:sysvarFloat * sv
相关问题