Vector - CAPL - logging相关函数

测试过程中logging绝对占有不可或缺的地位,那我们如何将测试中的log真正的帮助到我们呢?比如和测试报告对应起来;对每天测试case进行进行log区分等都是能够帮助我们更好的开展工作,下面我们就介绍下log处理的一些相关函数,大家可以发挥想象怎么样能够更好的解决工作中的问题。

setLogFileName

功能:设置日志文件的名称。

说明:设置日志文件的名称。如果给定了有效的扩展名,则还会更改文件类型。

注意:此功能在独立模式下不可用。

fileName:名称可以是绝对路径、单个文件名或相对路径。如果提供了绝对路径或相对路径,则将创建该路径的所有不存在的目录。如果提供了单个文件名,则日志文件将放在当前配置的目录中;如果提供了相对路径,则日志将放在配置文件的相对路径中。路径的目录必须用反斜杠(“\”)分隔。文件名可以包含文件扩展名。如果未输入扩展名,将自动设置上次使用的文件类型。如果给定了无效的扩展名,该函数将不会执行任何操作。

在字符串文本中,必须设置第二个反斜杠。

新名称只能通过新的setLogFileName调用或日志文件配置对话框中的相应条目更改。

如果日志记录块未记录(日志记录未激活),则立即更改名称。

如果日志记录块记录(日志记录处于活动状态),则新名称将在下一个触发事件或新的测量开始时被接管。

保存配置时,不会保存使用setLogFileName函数设置的名称。只有在日志文件的配置对话框中设置的名称将被接管。

strLoggingBlockName:日志记录块的名称

Demo示例

...
setLogFileName("Logging1", "newlog");
...
Sets the name of the logging file to "newlog" in the directory of the current configuration.

...
setLogFileName("Logging1", "c:\\canw\\demo\\automot\\newlog");
...
Sets the absolute path of the logging file.

...
setLogFileName("Logging1", "..\\Logging\\newlog");
...
Sets the relative path of the logging file.

...
setLogFileName( "newlog.blf" );
...
Sets the name of the logging file to newlog and the file type blf
...
setLogFileName( "newlog.notSupportedExtension" );
...
Does nothing //file extension not valid

setPostTrigger

功能:设置日志的后触发器。

说明设置日志的后触发器。使用此函数设置的后触发器在测量结束或下一次调用此函数之前有效。

注意:函数stopLogging()不考虑函数“setPostTrigger”的设置,请改用CAPL函数trigger()。

返回值:如果后触发器设置为给定值,则为1,否则则为0

Demo示例

on start
{
   SetPreTrigger(5000);
   SetPostTrigger(5000);
}

on key 'x'
{
  //使用触发前和触发后设置启动和停止所有CAPL触发/记录块
   trigger();
}

setPreTrigger

功能:设置日志的预触发

说明:设置日志的预触发。使用此函数设置的预触发在测量结束或下一次调用此函数之前有效。

注意:函数startLogging()不考虑函数setPreTrigger的设置,而是使用CAPL函数trigger()。

返回值:如果后触发器设置为给定值,则为1,否则则为0

preTriggerTime:新的预触发值(毫秒)

Demo示例

on start
{
   SetPreTrigger(5000);
}
on key 'x'
{
  //使用触发前和触发后设置启动和停止所有CAPL触发/记录块
   trigger();
}

startLogging

功能:启动log记录功能;保存trace中出现的所有log信息到指定文件中;可以设置保存log的名称以及触发时间

strLoggingBlockName:设置保存log的名称;如果在独立模式下使用该功能,并且在独立模式配置设置中激活了日志记录和触发块,则可以通过传递空字符串作为参数来解决在这种情况下可用的(单个)日志记录块。

preTriggerTime:预触发时间间隔(单位:毫秒);在使用preTriggerTime时,请注意记录块的触发器配置对话框中的缓冲区大小是相应设置的,以便可以记录给定时间间隔的所有事件。

Demo示例:

startLogging();
// 启动所有log模块保存
startLogging( "Logging 1");
// 启动log名称为 "Logging 1"的保存
startLogging( "Logging 1", 2000);
// 在2000毫秒后启动log名称为 "Logging 1" 的log保存

stopLogging

功能:停止log记录功能;保存trace中出现的所有log信息到指定文件中;可以设置保存log的名称以及停止log时间

strLoggingBlockName:设置保存log的名称;如果在独立模式下使用该功能,并且在独立模式配置设置中激活了日志记录和触发块,则可以通过传递空字符串作为参数来解决在这种情况下可用的(单个)日志记录块。

preTriggerTime:预触发时间间隔(单位:毫秒);在使用preTriggerTime时,请注意记录块的触发器配置对话框中的缓冲区大小是相应设置的,以便可以记录给定时间间隔的所有事件。

Demo示例:

stopLogging();
// 停止所有log的保存
stopLogging( "Logging 1");
// 停止log名称为 "Logging 1"的保存
stopLogging( "Logging 1", 1000);
// 在1000毫秒后启动log名称为 "Logging 1" 的log保存

trigger

功能:激活/停用所有记录和触发块的记录触发

说明:向所有CANoe日志记录或触发块发送触发事件,对于日志记录块,触发器事件开始和停止日志记录,具体取决于触发模式(单触发或拨动触发)、开关的触发条件、在该块的触发器配置对话框中设置。

对于触发块,触发事件启动和停止整个分析分支或单个分析窗口的数据流(如过滤器),这取决于触发配置对话框中的触发模式和触发条件。

Demo示例

on message 100 
{
  write("logging start");
  trigger(); // start logging
  setTimer(logging,1000); // for 1000 ms
}

on timer logging
{
  trigger(); // Stop logging
}

triggerEx

功能:激活/停用特殊记录或触发块的记录触发。

说明:向名称指定的CANoe日志记录或触发块发送触发事件。对于日志记录块,触发器事件开始和停止日志记录,具体取决于触发模式(单触发或拨动触发)、开关的触发条件、在该块的触发器配置对话框中设置。对于触发块,触发事件启动和停止整个分析分支或单个分析窗口的数据流(如过滤器),这取决于触发配置对话框中的触发模式和触发条件。如果未输入名称,则事件将发送到测量设置中CAPL函数triggerEx()位于CAPL节点后面的所有触发器和记录块。如果希望CAPL节点对所有触发块都有效,则必须将CAPL节点直接放置在联机/脱机切换之后。

name:日志记录或触发器块的名称。

Demo示例

on message 100 
{
  write("logging starts in Logging Block ""Logging""");
  triggerEx("Logging"); // start logging
  setTimer(logging,1000); // for 1000 ms
}

on timer logging
{
  triggerEx("Logging"); // Stop logging
}

writeToLog

功能:将输出字符串写入ASCII日志文件。

说明:编译器无法检查格式字符串。非法的格式条目将导致未定义的结果。与writeToLogEx函数不同,将在每行开头打印注释字符(“//”)和时间戳。

参数介绍:

CAPL Type

Display Description

Format Windows

Format Linux

int

int型显示

%d

%d

long

long型显示

%ld

%d

int64

int64型显示

%I64d or %lld

%ld or %lld

byte/word

无符号显示

%u

%u

dword

无符号显示

%lu

%u

qword

无符号显示

%I64u or %llu

%lu or %llu

byte/word/int

十六进制显示

%x

%x

dword/long

十六进制显示

%lx

%x

qword/int64

十六进制显示

%I64x or %llx

%lx or %llx

byte/word/int

十六进制显示(大写)

%X

%X

dword/long

十六进制显示(大写)

%lX

%X

qword/int64

十六进制显示(大写)

%I64X or %llX

%lX or %llX

byte/word/int

八进制显示

%o

%o

dword/long

八进制显示

%lo

%o

qword/int64

八进制显示

%I64o or %llo

%lo or %llo

float/double

浮点型显示

%g or %f

%g or %f

字符型显示

%c

%c

字符串显示

%s

%s

%字符的显示

%%

%%

dword

32-bit pointer (without implicit pointer format 0xABABABAB)

%p

%08x

32-bit pointer (with implicit pointer format 0xABABABAB)

%#p

%p

qword

64-bit pointer (without implicit pointer format 0xABABABABABABABAB)

%I64p

%016lx

64-bit pointer (with implicit pointer format 0xABABABABABABABAB)

%#I64p

%p

Demo示例

void MarkLogFile(int marker) 
{
    // 用整数标记ASCII日志文件的行
    writeToLog("===> %d",marker);
}

writeToLogEx

功能:将输出字符串写入ASCII日志文件。

说明:编译器无法检查格式字符串。非法的格式条目将导致未定义的结果。与writeToLog函数不同,注释字符(“//”)和时间戳都不会打印在行的开头。结果字符串的最大长度限制为1024个字符,将没有注释字符的自生成行导入CANoe可能会导致问题

Demo示例

// 将带有当前日期和时间的标记写入日志文件
void MarkLogFileWithTimeString(void)
{
    char timeBuffer[64];
    getLocalTimeString(timeBuffer);
    writeToLogEx("===> %s",timeBuffer);
}

以上是对于Trace log中的一些操作,当然实际使用中我们可以跟其他的一些函数相互使用,比如我们将函数getLocalTime和startLogging组合起来就可以对每一条测试testcase的log进行保存而不会被覆盖,并且能够跟测试报告中的内容进行一一对应,对于时候分析报告、确认问题非常方便,更多的使用方法欢迎评论区交流。

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vector CAPL培训是一种专门针对Vector CAPL语言的培训课程。CAPL(Communication Access Programming Language)是Vector公司开发的一种用于开发和测试汽车通信系统的脚本语言。 Vector CAPL培训可以帮助学习者掌握CAPL语言的基本语法、数据类型、变量和函数的使用方法,以及与通信系统的集成和调试。通过这种培训,学习者可以了解如何使用CAPL来编写自动化测试脚本,以及如何利用CAPL进行模拟和仿真。 在Vector CAPL培训中,学习者将会通过理论和实践相结合的方式进行学习。培训课程通常包括讲座、实验、案例分析和项目实践等形式,以帮助学习者深入理解CAPL的原理和实际应用。 通过参加Vector CAPL培训,学习者可以获得以下益处: 1. 熟悉CAPL语言:学习者可以掌握CAPL语言的基本语法和概念,能够编写CAPL脚本来实现自动化测试、数据分析和仿真等功能。 2. 提高工作效率:掌握CAPL语言可以帮助学习者更高效地开发和调试汽车通信系统,提高工作效率,并减少错误和漏洞的出现。 3. 扩展职业技能:具备CAPL语言的应用能力可以为学习者提供更多的职业发展机会,使其在汽车通信系统的开发和测试领域有更广阔的发展空间。 总的来说,Vector CAPL培训可以帮助学习者全面了解CAPL语言,提高其在汽车通信系统领域的工作能力,并为其职业发展打下坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

车载网络测试

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

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

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

打赏作者

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

抵扣说明:

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

余额充值