0

在 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) 进行测试。

4

1 回答 1

0

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

系统变量,带有类型和 *. 可能的类型:Data、Int、Float、String、IntArray 和 FloatArray。示例声明:sysvarFloat * sv

您没有指定 CANoe SP 版本,因此旧版本可能不支持它,但为确保这一点,请在帮助/索引中搜索函数参数,然后您应该获得可以使用的可能函数参数的完整列表在您当前的 CANoe 设置中。应该这样开始:

  • 整数(byte、word、dword、int、long、qword、int64) 示例声明:long 1
  • 整数(byte、word、dword、int、long、qword、int64) 示例声明:long 1
  • 单个字符 (char) 示例声明:char ch
  • 枚举示例声明:枚举颜色 c
  • 关联字段 示例声明:int m[float]。关联字段作为参考自动传输。

......

  • 系统变量,带有类型和 *. 可能的类型:Data、Int、Float、String、IntArray 和 FloatArray。示例声明:sysvarFloat * sv
于 2018-11-09T07:42:47.170 回答