在汽车总线网络(如CAN/CANFD/LIN/Ethernet)的开发、测试和分析过程中,工程师经常需要对测试过程中的报文进行录制保存,方便定位分析排查问题。VBA监控分析模块中的Logger模块可以实现报文的自动录制,手动录制和通过脚本动态控制录制。本文主要介绍如何通过VBA脚本实现报文录制的动态控制,通过该功能可实现特定工况下报文的分段录制。
本文关键词:自动录制 ,手动录制,脚本动态控制录制
logger基本配置
在VBA Monitors模块下选中Logger模块,右键选择New Logger,可以创建一个报文录制模块logger。Logger的基本配置包括:logger的启用/禁用,文件名称,文件命名格式,存储上限,自动录制和手动录制。
- logger的启用/禁用:选择True启用logger,可以正常录制报文;选择False禁用logger,报文录制不起作用
- 文件名称:可以设置录制报文的名称格式,可以自定义名称+时间
- 文件命名格式:可以设置报文的格式,常用的报文格式包括BLF、ASC、PCAP
- 存储上限:可以设置单个报文录制的上限,运行过程中,超过上限后,会另生成一个数据文件。勾选自动录制或手动录制,可以控制logger报文录制形式

录制的报文文件位于VBA Monitors模块下的Records模块,右键Records,选择Configure Path可以设置报文的存放位置;右键Records,选择Import可以将之前录制好的报文,导入Records模块下,导入后会生成一个新的文件夹。

右键文件夹下的文件,可选择离线运行单记录,对数据文件进行分析,也可选择打开文件目录,查看数据文件所在位置。

自动录制
勾选自动录制,启动VBA工程,在Recorders中会生成一个文件夹, VBA工程停止时,会生成一个数据文件。后续可以选中该文件,右键离线运行单记录,进行回放分析。
手动录制
选择手动录制时可以设置启用快捷键(如k键),启动后报文的录制不会随工程运行开始,只有按下k键后才会开始录制报文。当再次按下k键时,则会停止录制报文。同样会在Recorders生成一个文件夹,文件夹下会生成一个数据文件。

脚本动态控制录制
VBA提供了动态控制报文录制的接口函数startLogging和stopLogging,利用这两个接口函数可以动态的控制报文的开始录制和停止录制。这两个接口函数配合自动化测试模块(TestModules),可以实现开始录制报文,执行测试序列,停止录制报文,将对应测试序列的报文数据存储下来,方便后续分析查看。
- 函数接口示意
- startLogging("界面上logger的名字",file_name = '生成的录制文件名',loggerConfig = None)
- stopLogging("界面上logger的名字", file_name = '生成的录制文件名',loggerConfig = None)
DEMO示例一:用例开始执行时,给APA_ButtonPress值设置1,获取该信号的值,判断是否为1,如果是,则用例执行成功,否则失败,最后停止 录制报文。
DEMO示例二:用例开始执行时,给APA_ButtonPress值设置0,获取该信号的值,判断是否为0,如果是,则用例执行成功,否则失败,最后停止录制报文。

在testModule1执行界面执行测试用例,会在records模块下生成对应用例的报文数据。

结论
自动录制、手动录制和通过脚本动态录制是VBA中报文录制常用的方法,各适用于不同的测试场景,用户可根据自己的需要选择使用不同的方法录制报文数据。