# diff_md_tracer **Repository Path**: maxie776/diff_md_tracer ## Basic Information - **Project Name**: diff_md_tracer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-10 - **Last Updated**: 2026-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 日志解析与可视化工具 用于解析 .log 格式的日志文件并生成交互式数据可视化图表的 Python 工具。 ## 功能特性 - **日志解析**: 从日志文件中自动识别并提取电机转速数据(L_RPMSet、RPM、R_RPMSet) - **数据处理**: 数据验证、统计分析(最小值、最大值、平均值、标准差) - **可视化**: 使用 Plotly 生成交互式图表,支持缩放、平移、悬停查看数值 - **GUI 界面**: 图形化界面,支持选择文件、自动打开生成的图表 - **模块化设计**: 分离日志解析、数据处理和可视化功能,便于维护和扩展 ## 工程结构 ``` diff_md_tracer/ ├── main.py # 命令行主程序入口 ├── gui.py # GUI 主程序入口 ├── log_parser.py # 日志解析模块 ├── data_processor.py # 数据处理模块 ├── visualizer.py # 可视化模块 ├── build_mac.sh # macOS 打包脚本 ├── default.log # 示例日志文件 ├── README.md # 说明文档 └── dist/ # 打包输出目录 └── LogVisualizer/ └── LogVisualizer.app # 打包后的 macOS 应用 ``` ### 模块说明 | 文件 | 功能描述 | |------|----------| | `main.py` | 命令行主程序入口,整合各模块,提供命令行接口 | | `gui.py` | GUI 主程序入口,图形化界面 | | `log_parser.py` | 解析日志文件,使用正则表达式提取电机转速数据 | | `data_processor.py` | 数据验证、过滤、统计分析 | | `visualizer.py` | 使用 Plotly 生成交互式 HTML 图表 | | `build_mac.sh` | macOS 打包脚本 | ## 安装依赖 ```bash pip install plotly pyinstaller ``` ## 使用方法 ### GUI 方式(推荐) 直接运行 GUI 程序: ```bash python3 gui.py ``` 或使用打包后的应用: ```bash open dist/LogVisualizer/LogVisualizer.app ``` GUI 功能: - 点击"选择文件"按钮选择 .log 日志文件 - 点击"开始处理"按钮进行分析 - 处理完成后自动在浏览器中打开生成的 HTML 图表 - 图表自动保存在日志文件相同目录下 ### 命令行方式 ```bash python3 main.py <日志文件路径> ``` #### 命令行参数 | 参数 | 说明 | 默认值 | |------|------|--------| | `log_file` | 日志文件路径(必填) | - | | `-o, --output` | 输出 HTML 文件路径 | `motor_data_visualization.html` | | `--show` | 在浏览器中直接显示图表 | 否 | | `-v, --verbose` | 显示详细日志 | 否 | #### 使用示例 ```bash # 基本用法 python3 main.py default.log # 指定输出文件 python3 main.py default.log -o output.html # 在浏览器中显示图表 python3 main.py default.log --show # 显示详细日志 python3 main.py default.log -v ``` ## macOS 打包 ### 打包步骤 1. 确保已安装 PyInstaller: ```bash pip install pyinstaller ``` 2. 运行打包脚本: ```bash ./build_mac.sh ``` 3. 打包完成后,应用位于:`dist/LogVisualizer/LogVisualizer.app` ### 启动打包后的应用 ```bash open dist/LogVisualizer/LogVisualizer.app ``` ## 输出示例 运行程序后会输出以下信息: 1. **解析统计信息**: 总处理行数、匹配行数、提取数据点数量 2. **数据验证统计**: 有效记录数、验证通过率 3. **数据统计**: 各参数的最小值、最大值、平均值、标准差 4. **原始数据预览**: 显示前 10 条提取的数据 ## 日志格式 程序识别以下格式的日志行: ``` cnt:39932,L_RPMSet:208.2,RPM:120.0,Curt:8.0,R_RPMSet:206.4,RPM:110.0,Curt:7.5 ``` 提取的四个关键数据: - `L_RPMSet`: 左轮设置转速 - `RPM` (第一个): 左轮反馈转速 - `R_RPMSet`: 右轮设置转速 - `RPM` (第二个): 右轮反馈转速 ## 生成图表 生成的 HTML 文件包含交互式图表,支持: - 鼠标悬停查看具体数值 - 缩放和平移 - 图例显示/隐藏 - 响应式布局,自动适应浏览器窗口大小 ## 许可证 MIT License