Logo

BLF_Web_Viewer

CAN Bus Signal Viewer

BLF File

Drag & drop or click to select

DBC File(s)

Drag & drop or click to select (multiple OK)

BLF 解析 & CAN 信号解码原理

本程序如何将 BLF 二进制文件转化为可视化 CAN 信号波形

📄 BLF 文件 Binary Logging Format Vector CANoe / CANalyzer 录制 📋 DBC 文件 CAN 数据库定义 Message ID → Signal 映射 python-can BLFReader 二进制解析 解压 → 逐对象迭代 cantools DBC 文件解析 构建 FrameID → Message 查找表 CAN 帧提取 msg.arbitration_id 帧 ID (如 0x123) msg.data 原始字节 [8] / [64] msg.timestamp 纳秒级时间戳 msg.channel CAN 通道号 DLC 数据长度 (0-64) 按 FrameID 查找 DBC ⚙ 信号解码(DBC Decode) 1 按 bit position + length 提取原始值 2 physical = raw_value × factor + offset 3 输出:{ "Msg.Signal": [(t, value), ...] } 📉 LTTB 降采样 保留波形特征,压缩至 ≤5000 点 📊 ECharts 多信号同步波形图 BLF 二进制结构 File Header (144B) Obj Header CAN Data Obj Header CAN Data … Object N … 逐对象读取 DBC 信号定义示例 BO_ 260 Msg_Engine: 8 SG_ RPM : 7|16@0+ (0.25,0) ↑ bit7起 长16bit 因子0.25 偏移0 SG_ Temp : 23|8@0+ (1,-40)"deg" ↑ bit23起 长8bit 因子1 偏移-40 解析信号映射 处理流程概览 1 文件上传 用户上传 BLF + DBC 文件到服务端 2 BLF 二进制解析 python-can 读取压缩的 BLF 流,逐对象提取 CAN 帧 3 DBC 信号解码 按仲裁 ID 查找信号定义,从原始字节中提取 bit 并转换物理值 4 降采样 & 可视化 LTTB 算法保留波形特征,ECharts 渲染多信号同步时序图