Vector - CAPL - 检查LIN事件状态(续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响应错误信号

功能:检查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调度表是否与数据库定义一致

功能:检查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);
}

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

车载网络测试

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值