# ECU-Diagnostic-Tool **Repository Path**: MagicHand/ecu-diagnostic-tool ## Basic Information - **Project Name**: ECU-Diagnostic-Tool - **Description**: 基于 WPF (.NET Framework 4.7.2) 的 ECU 诊断工具,支持型号管理、DID 比对、UDS 指令配置、DTC 读取与比对等功能。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-13 - **Last Updated**: 2026-09-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ECUDiagnosticTool 基于 WPF (.NET Framework 4.7.2) 的 ECU 诊断工具,支持型号管理、DID 比对、UDS 指令配置、DTC 读取与比对等功能。 ## 功能特性 - **型号管理** — 创建、编辑、复制、删除 ECU 型号,统一管理通信参数、比对信息、UDS 指令和允许 DTC 列表 - **ECU 比对执行** — 选择型号后一键读取 ECU 信息,自动执行 DID 比对并以颜色标记 Pass/Fail/Error 状态 - **比对信息配置** — 在型号下管理 DID 数据项,配置地址、解析规则、期望值等 - **UDS 指令配置** — 在型号下管理 UDS 诊断指令序列,支持排序、Padding 等设置 - **DTC 管理** — 管理允许 DTC 列表,读取 ECU DTC 后自动比对标记允许/不允许状态 - **UDS 调试** — 手动发送 UDS 指令并查看响应,支持数据解析 - **系统配置** — 配置硬件类型、通道、波特率、设备选择 - **UDS 监控** — 实时监控 CAN 总线报文 - **国际化** — 支持中文/英文切换 ## 界面截图 ### 主界面 ![主界面](docs/screenshots/main_window.png) ### 型号配置(比对信息 + UDS 指令 + DTC + 通信参数) ![型号配置](docs/screenshots/ecu_config1.png) ![型号配置](docs/screenshots/ecu_config2.png) ### 系统配置 ![系统配置](docs/screenshots/system_config.png) ### UDS 调试 ![UDS调试](docs/screenshots/uds_debug.png) ## 技术栈 | 技术 | 说明 | |------|------| | .NET Framework 4.7.2 | 运行时框架 | | WPF | UI 框架 | | HandyControl | UI 控件库 | | MVVM | 架构模式 | | Microsoft.Extensions.DependencyInjection | 依赖注入 | | Newtonsoft.Json | JSON 序列化 | | log4net | 日志框架 | | ValueCAN | CAN 硬件通信 | ## 项目结构 ``` ECUDiagnosticTool/ ├── Main/ # UI 层 (WPF MVVM) │ ├── ViewModels/ # 视图模型 │ │ ├── EcuConfigViewModel # 型号配置 ViewModel │ │ ├── EcuComparisonInfoVM # ECU 比对执行 ViewModel │ │ ├── SystemConfigViewModel # 系统配置 ViewModel │ │ ├── UdsDebugViewModel # UDS 调试 ViewModel │ │ └── UdsMonitorViewModel # UDS 监控 ViewModel │ ├── Views/ # 视图 │ ├── Commands/ # 命令 │ ├── Converters/ # 值转换器 │ └── Services/ # UI 服务 ├── BusinessService/ # 业务层 │ ├── Models/ # 领域模型 │ │ ├── EcuModel # 型号聚合根 │ │ ├── ComparisonInfoItem # 比对信息项 │ │ ├── UdsInstructionItem # UDS 指令项 │ │ └── CommunicationParams # 通信参数 │ ├── Interfaces/ # 服务接口 │ ├── Services/ # 业务服务 │ ├── Protocol/ # UDS 协议层 │ ├── HardwareAbstraction/ # 硬件抽象层 │ └── Common/ # 工具类 ├── Plugins/ # 硬件插件层 │ └── ValueCanPlugin/ # ValueCAN 硬件插件 ├── Config/ # 配置文件 └── docs/ # 文档 ``` ## 架构设计 项目采用分层架构 + MVVM 模式: ``` ┌─────────────────────────────────────────────┐ │ Main (UI 层) │ │ View ← ViewModel ← Service │ ├─────────────────────────────────────────────┤ │ BusinessService (业务层) │ │ Models / Services / Interfaces / Protocol │ ├─────────────────────────────────────────────┤ │ Plugins (硬件插件层) │ │ ICanHardware → ValueCAN │ └─────────────────────────────────────────────┘ ``` 核心设计决策: - **EcuModel 聚合根** — 将通信参数、比对信息、UDS 指令、允许 DTC 列表统一组织在型号下 - **Repository 模式** — 型号数据通过 `IEcuModelRepository` 接口持久化,Service 层专注业务逻辑 - **插件式硬件** — 通过 `ICanHardware` 接口抽象 CAN 硬件,ValueCAN 作为插件实现 ## 快速开始 ### 环境要求 - Windows 10/11 - .NET Framework 4.7.2 - Visual Studio 2019+ (开发) - ValueCAN 硬件 (生产使用) ### 构建 ```bash dotnet build ECUDiagnosticTool.sln ``` ### 运行 ```bash dotnet run --project Main/Main.csproj ``` 或直接运行编译产物: ```bash Main\bin\Debug\Main.exe ``` ## 使用流程 1. **系统配置** — 菜单「配置 → 参数配置」,选择硬件类型、通道、波特率,连接设备 2. **创建型号** — 菜单「配置 → 型号配置」,新建型号并配置通信参数、比对信息、UDS 指令、允许 DTC 列表 3. **执行比对** — 菜单「配置 → ECU比对信息」,选择型号后点击「读取ECU信息」执行比对 4. **查看结果** — 比对结果以颜色标记显示,DTC 列表标记允许/不允许状态 ## 许可证 [MIT License](LICENSE)