信号测试类函数主要适用于检测、操作信号、变量的数值。下面列举一些在平时会经常使用到的一些函数。

  1. checkSignalInRange / testValidateSignalInRange 函数
    在这里插入图片描述
    作用均是确认信号/变量的值是否处于规定的范围(aLowLimit <= Value <= aHighLimit)内。如果未处于规定的范围内,该函数的值返回为非1。
    不同点在于testValidateSignalInRange 函数多了一个参数aTestStep[]。也就是说这个参数可以定义该函数的确认结果对测试过程中的哪一步产生直接的影响。也就是在测试报告中存在着差异。
    用例:
// validates the value of the signal against the given range
long result;
result = testValidateSignalInRange("Check Velocity", Node_SUT::Velocity, 60, 100);
if (result != 0)
TestStepFail("Error occurred!");

  1. testValidateSignalOutsideRange 函数
    在这里插入图片描述
    作用是确认信号/变量的值是否不处于规定的范围(Value < aLowLimit or Value > aHighLimit)内。如果处于规定的范围内,该函数的值返回为非1。该函数与 testValidateSignalInRange 函数是逻辑非的关系。
    用例:
// validates the value of the signal against the given range
long result;
result = testValidateSignalOutsideRange("Check Velocity", Node_SUT::Velocity, 60, 100);
if (result != 0)
TestStepFail("Error occurred!");

  1. CheckSignalMatch / TestValidateSignalMatch 函数
    在这里插入图片描述
    作用是确认信号/变量是否与给定值相匹配。如果匹配,则返回值1。不同点也 TestValidateSignalMatch 函数多了一个参数可以定义测试报告中的测试步骤。
    用例:
testfunction SignalCheck(signal * sig, float compareValue)
{
// checks if the value of the signal matches a specified value
long result;
result = CheckSignalMatch(sig, compareValue);
if (result != 1)
TestStepFail("Value of signal matches not the value");
}

  1. GetRawSignal / getSignal 函数
    在这里插入图片描述
    这里GetRawSignal / getsignal的格式在使用的过程中是一致的。但是存在一定的区别。区别在于GetRawSignal 是获取到的信号原始值;getsignal是获取到信号物理值。原始值我认为是在DBC格式里面定义的区间[最小值,最大值];物理值我认为是在CAN网络中经过DBC处理之后的数据,这之间存在着Offset,Factor的差异。如果想了解DBC相关的知识,请看另一篇文章
    用例:
float value;
//Node and signal
value = getSignal(LightSwitch::OnOff);

//Channel and signal
value = getSignal(CAN1::Status);

  1. SetRawSignal / SetSignal 函数
    在这里插入图片描述
    这里SetRawSignal / SetSignal的格式在使用的过程中是一致的。但是存在一定的区别。区别在于SetRawSignal 是设置到的信号原始值;SetSignal 是设置到信号物理值
    用例:
//Node and signal
setSignal(LightSwitch::OnOff, 1.0)

//Channel and signal
setSignal(CAN1::Status, 1)

  1. TestResetEnvVarValue 函数
    在这里插入图片描述
    该函数用来重置环境变量为初始值。如果该环境变量不存在初始值,则会置0或者""。这里是NULL,并不是空格。 设置成功后,函数返回0。
    用例:
// check reaction of signal “LockState” after crash
@EnvErrorCrashDetected = 1;
TestWaitForTimeout(100);
if ($LockState != Unlocked)
    TestStepFail(“Doors are locked after crash is detected!”);

// reset the crash environment variable
TestResetEnvVarValue(EnvErrorCrashDetected);
TestWaitForTimeout(200);

  1. TestResetNamespaceSysVarValues 函数
    在这里插入图片描述
    用于将同一系统变量族下面的系统变量/子系统变量族的系统变量重置为初始值。这里需要说明的是使用该函数则会对系统变量族里面所有的变量。如果只需要重置某一个系统变量,请使用TestResetSysVarValue 函数。与环境变量不同的是,如果系统变量没有定义初始值,则系统变量不会被重置。
    用例:
// check the warning lights
@sysvar::Lights::SysVarWarningLights = 1;
TestWaitForTimeout(100);
if (@sysvar::Lights::SysVarWarningLightsDsp != 1)
    TestStepFail(“Warning lights do not flash!”);

// reset all “Lights” system variables
TestResetNamespaceSysVarValues(“Lights”);
TestWaitForTimeout(200);

  1. TestResetSignalValue 函数
    在这里插入图片描述
    该函数用来将信号重置为初始值。
    用例:
// check reaction of signal “LockState” after crash
$CrashDetected = 1;
TestWaitForTimeout(100);
if ($LockState != Unlocked)
    TestStepFail(“Doors are locked after crash is detected!”);

// reset test signals
TestResetSignalValue(CrashDetected);
TestResetSignalValue(LockState);
TestWaitForTimeout(200);

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐