# Architecture: Gpulse.WCT.DataAnalyzer > 无线充电参数采集系统。从 log 文件解析 Qfod/Ploss 数据 → 本地分析库 → 汇总生成正式充电参数数据库 → 导出 CSV。 --- ## 数据流 ```text log 文件 → parse → local.db(本地解析库) → aggregate → release.db(正式发布库) → export → WCT-ChargingParameterDatabase.csv ``` | 阶段 | 命令 | 存储 | 说明 | |------|------|------|------| | 解析 | `parse` | `local.db` | 本地日志解析库,保存原始 Qfod/Ploss 记录 | | 汇总 | `aggregate` | `release.db` | 从 local.db 汇总生成正式充电参数记录 | | 导出 | `export` | CSV | 读取 release.db,输出固定格式 CSV | ## 文档索引 | 文档 | 说明 | |------|------| | [技术选型](./技术选型.md) | 技术栈、决策记录 | | [模块划分](./模块划分.md) | 分层架构、目录结构、模块职责 | | [数据处理流程](./数据处理流程.md) | 解析→汇总→导出完整流程 | | [CLI 命令设计](./CLI命令设计.md) | 命令行接口 | | [配置管理](./配置管理.md) | 配置结构与双数据库配置 | | [数据库支持](./database/概览.md) | 本地/发布双数据库架构 | | [安全架构](./安全架构.md) | 路径校验、安全策略 | | [解析器设计](./parser/概览.md) | Qfod/Ploss 解析器 | ## 架构分层 ```text ┌──────────────────────────────────────────────────────────────────────┐ │ CLI Entry Point │ │ (Program.cs / System.CommandLine) │ ├──────────────────────────────────────────────────────────────────────┤ │ Application Layer │ │ ┌───────────────┐ ┌──────────────┐ ┌────────────┐ ┌──────────────┐ │ │ │ LocalIngestion│ │ Publishing │ │ Exporting │ │Administration│ │ │ │ ParseService │ │AggregationSvc│ │ExportSvc │ │ CleanService │ │ │ │ ScenarioSvc │ │ThresholdCalc │ │ │ │ CleanService │ │ │ │ DimensionSvc │ │ │ │ │ │ │ │ │ └───────────────┘ └──────────────┘ └────────────┘ └──────────────┘ │ │ ┌──────────────────────────────────────────────────────────────────┐ │ │ │ Parsing │ │ │ │ QfodParser │ PlossParser │ FileNameParser │ │ │ └──────────────────────────────────────────────────────────────────┘ │ ├──────────────────────────────────────────────────────────────────────┤ │ Domain Layer │ │ ┌─────────────────────────┐ ┌──────────────────────────────────────┐ │ │ │ Local/ (本地实体) │ │ Release/ (发布实体) │ │ │ │ TxPanel, TxHardware │ │ ChargingParameterRecord │ │ │ │ TxSoftware, RxType │ │ │ │ │ │ TestScenario │ │ │ │ │ │ QfodRecord, PlossRecord │ │ │ │ │ └─────────────────────────┘ └──────────────────────────────────────┘ │ ├──────────────────────────────────────────────────────────────────────┤ │ Infrastructure Layer │ │ ┌───────────────┐ ┌──────────────┐ ┌────────────┐ ┌──────────────┐ │ │ │ LocalData │ │ ReleaseData │ │Configuration│ │ Security │ │ │ │ WctMinerDbCtx │ │ReleaseDbCtx │ │AppSettings │ │PathValidator │ │ │ │ DbCtxFactory │ │ReleaseDbCtxF │ │ │ │ │ │ │ │ SeedData │ │ │ │ │ │ │ │ │ └───────────────┘ └──────────────┘ └────────────┘ └──────────────┘ │ └──────────────────────────────────────────────────────────────────────┘ ``` ## 核心设计原则 | 原则 | 说明 | |------|------| | 技术栈 | .NET 8.0 + C# 12.0 + EF Core 8.0 | | 数据库 | local.db / release.db 两个独立 SQLite 数据库 | | 本地/发布隔离 | 无外键、无导航属性、无数据库级关联 | | 解析模式 | 批处理,正则表达式 | | CLI | System.CommandLine,命令模式 | | 汇总规则 | 按业务键分组取平均值,缺失字段允许为空 | ## 目录结构 ```text src/ ├── Gpulse.WCT.DataAnalyzer/ # CLI 入口 │ ├── Commands/ # 命令实现 │ │ ├── ParseCommand.cs │ │ ├── AggregateCommand.cs │ │ ├── ExportCommand.cs │ │ └── CleanCommand.cs │ ├── Program.cs │ └── appsettings.json │ └── Gpulse.WCT.DataAnalyzer.Core/ # 核心库 ├── Application/ # 应用层 │ ├── Parsing/ # 解析器 │ │ ├── IParser.cs │ │ ├── QfodParser.cs │ │ ├── PlossParser.cs │ │ └── FileNameParser.cs │ ├── LocalIngestion/ # 本地日志解析 │ │ ├── ParseService.cs │ │ ├── ScenarioService.cs │ │ └── DimensionService.cs │ ├── Publishing/ # 发布汇总 │ │ ├── AggregationService.cs │ │ └── ThresholdCalculator.cs │ ├── Exporting/ # 导出 │ │ └── ExportService.cs │ └── Administration/ # 管理 │ └── CleanService.cs ├── Domain/ # 领域实体 │ └── Models/ │ ├── TxPanel.cs # 本地-维度 │ ├── TxHardware.cs │ ├── TxSoftware.cs │ ├── RxType.cs │ ├── TestScenario.cs │ ├── QfodRecord.cs │ ├── PlossRecord.cs │ └── ChargingParameterRecord.cs # 发布-实体 └── Infrastructure/ # 基础设施 ├── LocalData/ # 本地数据库 │ ├── WctMinerDbContext.cs │ ├── DbContextFactory.cs │ ├── IDbContextFactory.cs │ ├── SeedData.cs │ └── Configurations/ ├── ReleaseData/ # 发布数据库 │ ├── ReleaseDbContext.cs │ ├── ReleaseDbContextFactory.cs │ ├── IReleaseDbContextFactory.cs │ └── Configurations/ ├── Configuration/ # 配置 │ └── AppSettings.cs ├── Security/ # 安全 │ ├── PathValidator.cs │ └── SecurityConstants.cs └── Extensions/ # DI 扩展 └── ServiceCollectionExtensions.cs ```