Vector - CAPL - 检查LIN事件状态(续1)

Vector - CAPL - 检查LIN事件状态(续1)_第1张图片

        LIN测试中,我们经常遇到需要检查LIN线的各种状态,对于这种状态的检查又是非常的难搞,那如何进行测试呢?今天他来了。。。

目录

ChkStart_LINHeaderToleranceViolation 

                -- 检查LIN Header传输事件

代码示例

ChkStart_LINMasterInitTimeViolation

                -- 检查LIN Master的初始化时间

代码示例

ChkStart_LINRespErrorSignal 

                -- 检查LIN响应错误信号

常见错误

代码示例

ChkStart_LINSchedTableViolation 

                -- 检查LIN调度表是否与数据库定义一致

代码示例


ChkStart_LINHeaderToleranceViolation 

                -- 检查LIN Header传输事件

功能:检查LIN Header传输事件

说明:如果测得的收割台传输时间超过规定的容差,将生成一个事件;对于LIN 2.0合规性,公差必须在[0..40]%的范围内。

Tolerance:传输时间的允许公差;取值范围:[0..40];单位:百分比[%]

CaplCallback:要对生成的事件调用的CAPL回调函数的名称。在模拟节点中,必须设置此参数。在测试模块中,此参数是可选的。

返回值:

        0:无法创建检查,且不得引用

        >0:检查已成功创建,可以使用返回的(handle-)值进行引用。

代码示例

dword checkId;
// 创建开始检查的传输差
checkId = ChkStart_LINHeaderToleranceViolation(40.0, "LINHeaderToleranceCallback");

// 回调函数
void LINHeaderToleranceCallback (dword aCheckId)
{
   ChkQuery_EventStatusToWrite(aCheckId);
}

ChkStart_LINMasterInitTimeViolation

                -- 检查LIN Master的初始化时间

功能:检查LIN Master的初始化时间。

说明:初始化状态在打开和唤醒时进入,如果初始化时间超出指定范围,将生成一个事件,此功能

仅验证唤醒时的初始化时间,即从获得唤醒信号到主机发送的第一个标头之间的时间。

对于符合LIN 2.0的情况,初始化时间必须在[100..150]ms的范围内。

MinTime:最小检查时间

0 不设置最小初始化时间
>0 允许的最短初始化时间

MaxTime:最大检查时间

0 不设置最大初始化时间
>0 允许的最长初始化时间

CaplCallback:要对生成的事件调用的CAPL回调函数的名称。在模拟节点中,必须设置此参数。在测试模块中,此参数是可选的。

返回值:

        0:无法创建检查,且不得引用

        >0:检查已成功创建,可以使用返回的(handle-)值进行引用。

代码示例

dword checkId;
// 创建并开始检查LIN主机初始化时间违规
checkId = ChkStart_LINMasterInitTimeViolation(100, 150, "LINMasterInitTimeCallback"); 

// 回调函数
void LINMasterInitTimeViolation (dword aCheckId)
{
   ChkQuery_EventStatusToWrite(aCheckId);
}

ChkStart_LINRespErrorSignal 

                -- 检查LIN响应错误信号

Vector - CAPL - 检查LIN事件状态(续1)_第2张图片

功能:检查LIN响应错误信号

说明:检查指定LIN从节点或所有LIN节点的LIN Response_Error信号。如果Response_Error信号值从FALSE(0)变为TRUE(1),将生成一个事件。

ObservedNode:要检查的节点,只允许使用从属节点

CaplCallback:要对生成的事件调用的CAPL回调函数的名称。在模拟节点中,必须设置此参数。在测试模块中,此参数是可选的。

返回值:

        0:无法创建检查,且不得引用

        >0:检查已成功创建,可以使用返回的(handle-)值进行引用。

常见错误

        指定的节点是主节点

        未定义指定节点的Response_Error信号或未定义任何从属节点的信号

        CAPL回调不存在

代码示例

dword checkId;
// 创建并开始检查LIN响应_错误信号
checkId = ChkStart_LINRespErrorSignal("LINRespErrCallback"); 

// 回调函数
void LINRespErrCallback (dword aCheckId)
{
   ChkQuery_EventStatusToWrite(aCheckId);
}

ChkStart_LINSchedTableViolation 

                -- 检查LIN调度表是否与数据库定义一致

Vector - CAPL - 检查LIN事件状态(续1)_第3张图片

功能:检查LIN调度表是否与数据库定义一致。

说明:

        时隙帧被违反,即传输的帧ID与相应时隙中定义的帧ID不匹配

        时隙延迟不满足,即两个连续LIN报头之间的延迟超出了由相应时隙和允许抖动指定的范围。

        只有当指定的计划表已经在运行时,才必须开始检查。这是为了允许运行时同步,这可能需要最多一个调度循环时间。这不是检查诊断时间表的适当功能,因为根据应用程序的不同,可能会出现静默插槽。

TableIndex:要检查的计划表的从零开始的索引。

Jitter:允许偏离时间表定义的时间。对于该值,通常使用Master的抖动。测量的时隙延迟应在以下范围内:

        D-抖动<=M<=D+抖动;其中M是测量的延迟,D是预期的延迟。

        单位:可通过ChkConfig_SetPrecision进行设置。

        默认值:LDF中定义的主机抖动。

CaplCallback:要对生成的事件调用的CAPL回调函数的名称。在模拟节点中,必须设置此参数。在测试模块中,此参数是可选的。

返回值:

        0:无法创建检查,且不得引用

        >0:检查已成功创建,可以使用返回的(handle-)值进行引用。

代码示例

dword checkId;
// 切换到µs精度
ChkConfig_SetPrecision(6); 
// 创建并开始检查索引为0的LIN时间表
checkId = ChkStart_LINSchedTableViolation(0, "LINSchedTableCallback"); 
// 切换精度到默认
ChkConfig_SetPrecision(3); 

// 回调函数
void LINSchedTableCallback (dword aCheckId)
{
   ChkQuery_EventStatusToWrite(aCheckId);
}

你可能感兴趣的:(CAPL入门到入坑,网络,CAPL,vTESTStudio,LIN)