【发布时间】:2019-04-11 20:37:24
【问题描述】:
在 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) 进行测试。
【问题讨论】: