The Kvaser Memorator Light HS v2具备一个CAN通道,但有两个CAN报文缓存 – 使用环形(FIFO)缓存。一个缓存区记录总线上的所有报文,另一个缓存区分别记录在任何错误帧出现之前和出现之后的约1000条报文。Kvaser Memorator Light HS v2还能自动判断正确的CAN总线比特率,因此无需配置。
将Kvaser Memorator Light HS v2连接到Kvaser Memorator配置工具时,每个记录文件都会被标记为存储“Err(错误帧)”或“All(所有报文)”,依据该记录文件来自哪一个缓存。
图1:查看Kvaser Memorator配置工具中Kvaser Memorator Light HS v2存储的两种不同类型的记录文件。
读取记录文件的方式与通过任何Kvaser Memorator读取记录文件的方式相同,唯一的区别是‘logfile.log_type‘现在为源自错误帧缓存区的文件提供“Err”标记,该缓存仅在错误帧出现时被触发(约分别记录错误帧出现前后的1000个报文)。
# 01_list_loggfiles.py
from canlib import EAN, Device
from canlib import kvmlib
#通过 EAN 73-30130-01058-1连接到我们的 Kvaser Memorator Light HS v2
# 并加到存储区
dev = Device.find(ean=EAN('01058-1'))
memo = kvmlib.openDevice(dev.channel_number(), mount=True)
fileCount = len(memo.log)
print('Found {} file{} on card.'.format(
fileCount,
"s" if fileCount > 1 else "")
)
# 将所有记录文件包括进来并写上关于它们的信息
for i, logfile in enumerate(memo.log):
track = logfile.log_type # 标注该文件来自哪一个缓存区
events = logfile.event_count_estimation()
start = logfile.start_time.isoformat(' ')
stop = logfile.end_time.isoformat(' ')
print("%s: %s %s events, start: %s, stop: %s" % (i, track, events, start, stop))
# 读取第一个事件来获取EAN/系列号
for event in logfile:
print(str(event)[10:]) # 再次使用内嵌格式化, 移除
time part
break # 我们仅对第一个事件感兴趣,所以跳过其他步骤
# 关闭Kvaser Memorator
memo.close()
列表 1: 把记录下来的文件列入stdout
运行该程序报告的信息与Kvaser Memorator配置工具中显示的信息相同。
Found 7 files on card.
0: LogFileType.ERR 1420 events, start: 2019-08-22 13:13:06, stop: 2019-08-22 13:13:30
- EAN:73-30130-01058-1 s/n:204 FW:v3.16.100 LIO:v4.0
1: LogFileType.ERR 2140 events, start: 2019-08-22 13:13:30, stop: 2019-08-22 13:13:49
- EAN:73-30130-01058-1 s/n:204 FW:v3.16.100 LIO:v4.0
2: LogFileType.ERR 2940 events, start: 2019-08-22 13:14:11, stop: 2019-08-22 13:14:56
- EAN:73-30130-01058-1 s/n:204 FW:v3.16.100 LIO:v4.0
3: LogFileType.ERR 2900 events, start: 2019-08-22 13:15:24, stop: 2019-08-22 13:15:43
- EAN:73-30130-01058-1 s/n:204 FW:v3.16.100 LIO:v4.0
4: LogFileType.ALL 3500 events, start: 2019-08-22 13:13:05, stop: 2019-08-22 13:13:49
- EAN:73-30130-01058-1 s/n:204 FW:v3.16.100 LIO:v4.0
5: LogFileType.ALL 2500 events, start: 2019-08-22 13:14:08, stop: 2019-08-22 13:14:56
- EAN:73-30130-01058-1 s/n:204 FW:v3.16.100 LIO:v4.0
6: LogFileType.ALL 2500 events, start: 2019-08-22 13:15:13, stop: 2019-08-22 13:15:43
- EAN:73-30130-01058-1 s/n:204 FW:v3.16.100 LIO:v4.0