Vector - CAPL - log回放模块函数

Replay log回放模块作为我们常见的问题分析小工具,是大部分车载圈老人的必备工具,不过自从CANoe软件11.0之后的版本变动依然无法阻挡每一个车载人使用的热情,除了我们常见的手动回放log外,我们工作中还有一部分低概率以及极低概率出现的问题,这时候我们就需要通过自动化对这个模块进行预处理,然后让它自动的帮我们复现问题,今天介绍的主要就是replay模块调用的相关函数。

ReplayResume

功能:挂起名称为pName的Replay块后启动它

pName:回放模块名称

返回值:

1:执行成功则返回1

0:pName回放模块不存在或者无法启动

ReplayStart

功能:启动回放模块

pName:回放模块名称

返回值:

1:执行成功则返回1

0:pName回放模块不存在或者无法启动

ReplayStop

功能:停止回放模块为pName的 回放

pName:回放模块名称

返回值:

1:执行成功则返回1

0:pName回放模块不存在或者无法启动

ReplayState

功能:返回回放模块的回放状态

pName:回放模块名称

返回值:

0:重播块已停止(状态:已停止)

1:已开始执行Replay文件(状态:正在运行)

2:Replay文件的执行已停止(状态:挂起)

-1:回放块不存在时

代码示例:

variables
{
char replayName[32] = "ibus_data";
}

on key 'b'
{
    replayStart( replayName);
}
on key 'e'
{
    replayStop( replayName);
}
on key 's'
{
    replaySuspend( replayName);
}
on key 'r'
{
    replayResume( replayName);
}
on key 'w'
{
    writeReplayState( replayName);
}
void writeReplayState( char name[])
{
    switch ( replayState( name))
    {
        case 0:
           write( "Replay Block %s is stopped", replayName);
           break;
        case 1:
           write( "Replay Block %s is running", replayName);
           break;
        case 2:
           write( "Replay Block %s is suspended", replayName);
           break;
        default:
        write( "Error: Replay Block %s has an unknown state!", replayName);
           break;
    };
}

ReplaySuspend

功能:挂起回放模块为pName的回放

pName:回放模块名称

返回值:

1:执行成功则返回1

0:pName回放模块不存在或者无法启动

SetReplayFileName

功能:替换现有Replay块的源文件。函数调用会暂时停止重播,并使用新的源文件重新启动重播块。

如果在文件更改之前重播处于活动状态,则函数调用会暂时停止重播并使用新的源文件重新启动重播块。

函数调用不会修改模拟设置中回复块的配置。保存配置时不会存储新文件。

如果在测量期间在“回复”块的配置对话框中更改源文件,则新文件名将存储在配置中。

注意:如果函数在启动时处理程序中执行,则不会启动重放。要与函数一起启动重放,必须在启动时处理程序之外执行该函数。或者,可以使用ReplayStart开始回放。

nameOfReplayBlock:回放对话框中回放名称字段的内容

fileName:新的源文件(作为配置文件的绝对或相对路径)

fileType:源文件类型(字符串):ASC、BLF;对于CANoe Replay块的选择对话框中可用的所有其他源文件类型,请使用BLF作为fileType参数。

示例代码:

//常见的使用方式
SetReplayFilename("Replay", "replay_test_capl1.asc", "asc");
SetReplayFilename("Replay", "replay_test_capl1.blf", "blf");
//对于CANoe Replay块的选择对话框中可用的所有其他源文件类型,请使用BLF作为fileType参数。
SetReplayFilename("Replay", "replay_test_capl1.mf4", "blf");

SetReplayFileNameAndTimeInterval

功能:将回放模块切换到不同的输入文件,并设置重播的时间间隔。

替换现有Replay块的源文件,并允许设置录制事件的开始和停止时间。

如果在文件更改之前重播处于活动状态,则函数调用会暂时停止重播并使用新的源文件重新启动重播块。

函数调用不会修改模拟设置中应答块的配置。保存配置时不会存储新文件。

如果在测量期间在回复块的配置对话框中更改源文件,则新文件名将存储在配置中。

注意:行为取决于Replay块的设置。如果回放应通过CAPL启动,则必须使用ReplayStart函数功能。如果在活动重放期间使用该功能,则文件的加载时间会导致延迟。

nameOfReplayBlock:回放对话框中回放名称字段的内容

fileName:新的源文件(作为配置文件的绝对或相对路径)

fileType:源文件类型(字符串):ASC、BLF;对于CANoe Replay块的选择对话框中可用的所有其他源文件类型,请使用BLF作为fileType参数。

startTime:日志文件中记录的事件的开始时间(以纳秒为单位)。使用ConvertTimestampToNS转换以天、小时、分钟或秒为单位的时间戳。

endTime:日志文件中记录的事件的结束时间(以纳秒为单位)。使用ConvertTimestampToNS转换以天、小时、分钟或秒为单位的时间戳。

示例代码:

variables
{
  char fileNameBlf[50] = "C:\\anyFolder\\LogFile.blf";
  char fileNameMf4[50] = "C:\\anyFolder\\LogFile.mf4";
  char fileNameAsc[50] = "C:\\anyFolder\\LogFile.asc";
}

on preStart
{
  setReplayFileNameAndTimeInterval("ReplayBlockBlf", fileNameBlf, "blf", 5000000000, 10000000000);
  setReplayFileNameAndTimeInterval("ReplayBlockMf4", fileNameMf4, "blf", 2000000000, 50000000000);
  setReplayFileNameAndTimeInterval("ReplayBlockAsc", fileNameAsc, "asc", 1000000000, 7000000000);
}
on key 'a'
{
  replayStart("ReplayBlockBlf");
}

on key 'b'
{
  replayStart("ReplayBlockMf4");
}

on key 'c'
{
  replayStart("ReplayBlockAsc");
}

StartReplayFile

功能:开始启动回放文件

注意:可以使用配置目录的相对路径或绝对路径来指定重播文件,也可以只指定重播文件的文件名。对于此选项,重播文件必须位于与配置相同的文件夹中。所有事件都在重播文件中记录的同一频道上重播。将丢弃以未配置通道为目标的事件;重放文件中的第一个事件将立即重放,而不考虑其时间戳;重播的开始与调用该函数是及时分离的,因此重播实际上将在该函数返回后开始一个短但不确定的时间跨度。

回放文件类型:

CAN信息

CAN错误帧

CAN过载帧(未发送,仅在测量设置中可见)

诊断请求

GPS事件

信号值

系统变量更新

环境变量更新

特别是,无法使用此功能回放LIN、FlexRay事件。

fileName:回放文件

返回值:作为函数StoptReplayFile的句柄使用

StopReplayFile

功能:停止StartReplayFile启动的回放文件

handle:函数StartReplayFile返回的句柄

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

车载网络测试

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

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

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

打赏作者

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

抵扣说明:

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

余额充值