Python解析CANoe录制的asc文件
一、背景
由于很多时候我们需要单纯分析一些报文数据,筛选或者一些故障报文,这个时候,用CANoe打开太占用设备了,而且只能过滤到某一帧报文,当我们能够使用python解析数据的时候,我们可以精确到某一个字节上,这样能够是我们的分析更加精准和高效,所以本文章介绍了如何解析asc文件的方法,便于后面自己使用的时候能有地方可以回顾。
二、了解文件的结构
-
在这里推荐一篇文章介绍的比较细致,点击直达。
-
在我的解析文件中,我只关注了以下属性:
- CAN报文类型(CAN还是CANFD)
- 录制时报文所在的通道
- 报文id
- 报文方向(外发还是接受)
- 报文长度
- 时间戳-报文byte数据(字典)
三、代码主要的架构
- 定义message类,类成员有(二)中提到的关心的属性;
- 定义一个key为报文id,value为message类的字典,将所有解析出来的报文放在这个字典中;
- 解析报文,按照CAN和CANFD两种不同的类型分别创建类,并将相同报文的时间戳和数据放在一个类中,并将字典返回