CPAL脚本自动化测试 ———— Signal Check&Reset系列函数及使用

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

  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);

  • 3
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
diagRequest是一个函数,用于发送诊断请求给目标ECU。它是在CAPL中使用的一个成熟的函数,可以帮助实现自动化测试。具体的格式如下: ``` diagRequest PAS3.* pasDiagReqst; dword diagLen; diagLen = stringToBytes(diagString, rawDiagReqst); diagResize(pasDiagReqst, diagLen); ``` 这个函数主要用于调整诊断对象的大小以匹配指定的参数迭代,或将总线消息的大小设置为给定的字节数。在上述示例中,首先将诊断请求字符串转换为字节数组,然后使用diagResize函数调整诊断对象的大小。 另外,还有其他与诊断相关的函数,如diagResponse用于处理诊断服务的响应,diagSetTarget用于设定诊断目标ECU,diagGenerateKeyFromSeed用于根据种子生成密钥等等。这些函数可以帮助我们完成日常的测试场景的覆盖。\[1\]\[2\] #### 引用[.reference_title] - *1* [CPAL脚本自动化测试 ———— Diag系列常用函数使用](https://blog.csdn.net/qq_42957717/article/details/117077022)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [CAPL诊断函数解释](https://blog.csdn.net/seekshero/article/details/113863812)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小趴菜_自动驾驶搬砖人

谢谢大爷赏饭吃

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值