CANPro2blf

CANPro2blf # 工具下载一个面向 Windows 10 的小工具用于把周立功 / ZLG CANPro 记录的.can日志文件转换为Vector.blf文件。当前项目已经具备三种交付形态canpro_can_to_blf.py命令行转换脚本canpro_blf_gui.pyTkinter 图形界面版本CANPro2blf.specbuild_exe.batPyInstaller EXE 打包方案1. 项目现状当前版本已经基于真实样本完成验证真实样本.can文件成功解析转出的.blf文件可被 Vector 工具正常打开实测源.can与输出.blf帧数一致Windows 10 上 GUI 运行正常Windows 10 上 PyInstaller 已成功打包 EXEEXE 启动正常转换功能正常已验证的样本结论时间戳优先采用Byte4~Byte7时间单位按0.1 ms解释Byte9 0xFF按RX处理BLF 写入采用正常的 container 批量封装方式这几条是当前脚本能够正确工作的关键。2. 数据格式参考来源本工具的.can格式解析参考了如下资料并结合真实样本做了修正验证参考文章https://blog.csdn.net/jaysur/article/details/97924774请注意网络文章可作为字段布局参考但不能直接保证适用于所有真实 CANPro 记录文件。本项目最终采用的时间戳解释方式是在真实样本基础上校正后的结果。如果后续遇到其他来源的.can文件建议先使用 GUI 的“预览前几帧”或脚本的调试能力先做检查。3. 文件说明发布包内主要文件如下canpro_can_to_blf.py核心转换脚本负责解析.can并写出.blfcanpro_blf_gui.py图形界面程序适合直接双击使用run_canpro_blf_gui.batWindows 下双击启动 GUIbuild_exe.batWindows 下双击执行 EXE 打包CANPro2blf.specPyInstaller 的 spec 文件版本可直接基于 spec 构建canpro2blf.icoGUI / EXE 使用的图标文件canpro2blf_icon.png图标预览 PNG4. 命令行脚本用法4.1 最简单的单文件转换python canpro_can_to_blf.py input.can output.blf例如python canpro_can_to_blf.py wheelGAP_REC.can wheelGAP_REC.blf4.2 查看帮助python canpro_can_to_blf.py--help4.3 常用增强功能当前脚本支持单文件转换目录批量转换递归扫描子目录仅检查/不生成 BLF调试摘要输出调试 CSV 导出时间源选择通道号设置压缩等级设置例如python canpro_can_to_blf.py input.can output.blf--debug导出调试 CSVpython canpro_can_to_blf.py input.can output.blf--debug--debug-csv debug.csv --debug-csv-limit1000批量转换目录python canpro_can_to_blf.py input_dir out_dir--recursive仅检查解析不生成 BLFpython canpro_can_to_blf.py input.can --inspect-only手动指定时间源python canpro_can_to_blf.py input.can output.blf --time-source t100us时间源可选值autot100usauxms其中当前已验证样本推荐auto或t100us5. GUI 使用说明5.1 启动方式在 Windows 10 下双击run_canpro_blf_gui.bat或者命令行启动python canpro_blf_gui.py5.2 GUI 功能图形界面支持选择单个.can文件选择目录批量转换指定单文件输出.blf指定批量输出目录递归扫描子目录选择时间源设置 BLF 通道号设置压缩等级设置起始 Unix 时间戳仅检查解析结果导出调试 CSV文件概览统计前 20 帧预览日志查看打开输出目录5.3 使用建议如果拿到的是一个新的.can来源文件建议先这样操作打开 GUI选择.can文件点击“预览前几帧”查看帧数是否合理ID 范围是否合理时间跨度是否合理再执行正式转换这样可以减少因为格式差异导致的误转风险。6. EXE 打包说明6.1 依赖环境建议环境Windows 10Python 3.12.xpython命令可用已安装或可在线安装 PyInstaller用户实测成功环境Windows 10Python 3.12.7PyInstaller 6.20.06.2 一键打包直接双击build_exe.bat该脚本会自动检查python检查关键文件是否存在安装/升级pip与pyinstaller清理旧的build/、dist/基于CANPro2blf.spec构建 EXE检查dist\CANPro2blf.exe是否生成成功6.3 手工命令方式打包如果希望手工执行可在当前目录运行python-mPyInstaller--noconfirm--cleanCANPro2blf.spec6.4 EXE 输出位置默认输出dist\CANPro2blf.exe6.5 关于 PyInstaller 的 PermissionError 警告在某些 Windows 10 环境中PyInstaller 构建阶段可能出现类似提示Execution of update_exe_pe_checksum failed on attempt #N / 20: PermissionError(13, Permission denied)当前已知情况该 warning 在用户实机上出现过最终 EXE 仍然成功生成EXE 可以正常启动和转换可能原因通常包括杀毒软件临时扫描输出文件Windows 文件占用或索引干扰构建目录权限抖动如果最终日志显示Build complete! The results are available in: ...\dist并且dist\CANPro2blf.exe确实存在、可以启动则通常可以视为非阻断 warning。7. 已验证结果基于真实样本当前版本已验证源.can总帧数168948输出.blf写入帧数168948帧数完全一致Vector 工具可正常读取这说明当前版本已经具备实际可用性。8. 后续建议如果后续还要继续完善可以考虑增加自定义.ico多套风格支持保存 GUI 最近使用配置支持拖拽文件到窗口增加最近文件列表增加深色主题切换增加更多异常样本兼容策略9. 免责声明本工具是基于公开资料 真实样本校验实现的工程化转换工具不代表官方格式文档。如果后续遇到新的 CANPro.can版本、设备型号或记录格式差异可能需要继续针对样本做适配。因此在正式批量使用前建议先用少量样本做一次验证。