# DiagnosticStack **Repository Path**: will_start/diagnostic-stack ## Basic Information - **Project Name**: DiagnosticStack - **Description**: DiagnosticStack:一个专注于诊断和性能分析的开源项目,提供多种工具和库,帮助开发者快速定位和解决系统问题,提升应用性能。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-22 - **Last Updated**: 2026-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Diagnostic Stack 基于 AUTOSAR Adaptive 的诊断协议栈实现,支持 UDS (ISO 14229) 和 DoIP (ISO 13400) 协议。 ## 项目结构 ``` DiagnosticStack/ ├── CMakeLists.txt # 顶层构建文件 ├── README.md # 项目说明 ├── app/ # 诊断服务应用层 │ └── diag_service_app/ # 诊断服务应用 ├── ara_api/ # AUTOSAR Adaptive API 头文件 ├── platform/ # 平台组件实现 │ ├── diag/ # 诊断管理器 │ │ ├── dcm/ # 诊断通信管理 │ │ ├── dem/ # 诊断事件管理 │ │ └── doip/ # DoIP 传输层 │ ├── com/ # 通信管理 │ └── exec/ # 执行管理 ├── runtime/ # 运行时环境 ├── config/ # 配置文件 ├── scripts/ # 构建脚本 ├── test/ # 测试代码 ├── external/ # 第三方依赖 └── docs/ # 设计文档 ``` ## 编译要求 - CMake >= 3.16 - GCC >= 8.0 (支持 C++17) - Linux 环境 ## 编译步骤 ### 方法一:使用构建脚本 ```bash cd diagnostic-stack ./scripts/build.sh ``` ### 方法二:手动编译 ```bash cd diagnostic-stack mkdir -p build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release make -j$(nproc) make install ``` ### 编译选项 | 选项 | 描述 | 默认值 | |------|------|--------| | `BUILD_TESTS` | 构建测试用例 | ON | | `BUILD_EXAMPLES` | 构建示例应用 | ON | | `ENABLE_LOGGING` | 启用日志功能 | ON | | `CMAKE_BUILD_TYPE` | 构建类型 (Debug/Release) | Release | | `CMAKE_INSTALL_PREFIX` | 安装目录 | install/ | ### 自定义编译示例 ```bash cmake .. \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_INSTALL_PREFIX=/opt/diag-stack \ -DBUILD_TESTS=OFF ``` ## 运行测试 ```bash cd build ctest -v ``` ## 运行诊断服务应用 ```bash ./install/bin/diag_service_app ``` ## 项目组件 ### DCM (Diagnostic Communication Manager) - UDS 服务请求分发 - 会话管理 (默认/编程/扩展/安全会话) - 安全解锁 (Seed/Key) ### DEM (Diagnostic Event Manager) - DTC 存储与管理 - 事件状态机 - 故障检测计数器 ### DoIP (Diagnostic over IP) - 车辆发现与公告 - 路由激活 - 诊断消息传输 - 保活检测 ## 支持的 UDS 服务 | 服务 ID | 服务名称 | 状态 | |---------|----------|------| | 0x10 | DiagnosticSessionControl | 已实现 | | 0x11 | ECUReset | 已实现 | | 0x22 | ReadDataByIdentifier | 已实现 | | 0x2E | WriteDataByIdentifier | 已实现 | | 0x27 | SecurityAccess | 已实现 | | 0x19 | ReadDTCInformation | 已实现 | | 0x14 | ClearDiagnosticInformation | 已实现 | | 0x3E | TesterPresent | 已实现 | ## 许可证 MIT License