当前位置: 首页> 健康> 知识 > 桂林微物网络科技有限公司_杭州建设网考试信息网_口碑好网络营销电话_站内推广方案

桂林微物网络科技有限公司_杭州建设网考试信息网_口碑好网络营销电话_站内推广方案

时间:2025/7/12 19:53:27来源:https://blog.csdn.net/weixin_43441058/article/details/145518876 浏览次数:0次
桂林微物网络科技有限公司_杭州建设网考试信息网_口碑好网络营销电话_站内推广方案

文章目录

  • 前言
  • 1、linChangeSchedTable切换调度表
  • 2、linStartScheduler开启调度表
  • 3、linStopScheduler停止调度表


前言

在LIN调度表Schedule Table文章中,详细介绍了LIN调度表的信息,那么如何在CAPL脚本测试中进行LIN调度表的操作呢?


1、linChangeSchedTable切换调度表

从当前调度表切换到另一个调度表。
通过在 on preStart事件中调用此函数,可以指定从哪个调度表开始。
函数使用时需要注意:

  1. 如果在启动新的调度表之前多次调用此函数,则只有最近的调用才会起作用。
  2. 如果没有仿真主节点或没有定义调度表,则此函数将不起作用。
long linChangeSchedTable(dword tableIndex);
long linChangeSchedTable(dword tableIndex, dword slotIndex);
long linChangeSchedTable(dword tableIndex, dword slotIndex, dword onSlotIndex);

参数说明
tableIndex:要切换到的调度表索引。如下图在LDF文件中,有4个调度表,InitTable的索引为0,依次到Table4的索引为3,这样去用。
slotIndex:在新的调度表中要启动的slot。默认值为0。也就是默认从新调度表的第一帧开始启动。
onSlotIndex:在更改到新的调度表之前,当前调度表中要发送的最后一个slot的索引。默认值:-2,表示立即修改。-1表示在到达当前进度表结束时进行更改。
在这里插入图片描述
返回值:当前调度表的索引;如果不存在调度表或失败,则返回-1。

2、linStartScheduler开启调度表

从Vector Help文档中翻译来看:该函数启动内部调度程序,该程序开始对最后配置的调度表进行循环遍历。如果这是调度程序第一次启动,则使用第一个找到的调度表,即索引为为0的调度表。没有必要在测试开始之前调用此函数,因为调度器是自动启动的。

怎么去理解呢?以上图为例说明:当使用函数linChangeSchedTable(2)将调度表切换到CollisionResolver2表并停止调度,这个时候如果开启调度表,使用linStartScheduler(),就会执行CollisionResolver2表调度表的报文。如果没有调用linChangeSchedTable函数切换调度表,测试执行时默认使用索引为0的第一个调度表InitTable,这时linStartScheduler()也就开启InitTable调度表。

3、linStopScheduler停止调度表

从Vector Help文档中翻译来看:该函数停止内部调度器。这样就停止了对当前调度表的循环遍历。调度程序可以通过调用linStartScheduler()函数重新启动。
使用时需要注意:

  1. 在on preStart事件中调用此函数,可防止调度器在测试开始时启动。
  2. 如果没有仿真主节点或没有定义调度表,则此函数将不起作用用。

测试场景:总线静默4-10s判断ECU是否休眠。

  • 唤醒ECU,正常进行LIN调度表的报文通信;
  • 调用linStopScheduler();停止调度;
  • testwaitfortimeout(10000)等待10s;
  • 检查ECU是否休眠。
关键字:桂林微物网络科技有限公司_杭州建设网考试信息网_口碑好网络营销电话_站内推广方案

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: