Skip to content

仓库结构

以下为当前仓库实际目录结构:

unet-dt-scheduler/
├── docs/                           # VitePress 文档站
│   ├── .vitepress/                  #   站点配置
│   ├── architecture/                #   架构文档(本分区)
│   ├── dev/                         #   开发文档
│   ├── frontend/                    #   前端文档
│   ├── srs/                         #   需求规格文档
│   └── tech/                        #   关键技术分析
├── scenarios/                       # 场景 YAML 定义文件
├── runs/                            # 运行产物自动生成(不入库)
├── scripts/                         # 辅助脚本(测试/修复/诊断)
├── tests/                           # 测试代码
├── src/unet_dt/                     # Python 源码根
│   ├── __init__.py
│   ├── logging_config.py            # 日志配置(文件 + 控制台)
│   ├── api/                         # FastAPI 服务
│   │   ├── __init__.py
│   │   ├── main.py                  #   应用工厂 create_app()
│   │   ├── deps.py                  #   FastAPI 依赖注入函数
│   │   ├── middleware.py            #   请求日志中间件
│   │   ├── schemas.py               #   Pydantic v2 请求/响应模型
│   │   ├── catalog.py               #   场景目录解析
│   │   ├── artifact_reader.py       #   CSV/报告产物读取
│   │   ├── ws.py                    #   WebSocket 广播器 + 路由
│   │   └── routes/                  #   路由模块
│   │       ├── __init__.py
│   │       ├── health.py            #     四层健康检查
│   │       ├── runs.py              #     运行 CRUD + 控制
│   │       ├── scenarios.py         #     场景 CRUD + 导入导出
│   │       ├── strategies.py        #     策略自动发现
│   │       └── config.py            #     系统配置查询 + 位置初始化
│   ├── config/                      # 配置模块
│   │   ├── load.py                  #   场景 YAML 加载
│   │   ├── schema.py                #   场景 Pydantic schema
│   │   └── settings.py              #   RuntimeSettings 环境配置
│   ├── metrics/                     # 指标模块
│   │   ├── trace.py                 #   trace 采集
│   │   ├── compute.py               #   指标计算
│   │   └── export.py                #   CSV/报告导出
│   ├── orchestrator/                # 编排器
│   │   ├── runner.py                #   run_demo() 主循环
│   │   ├── clock.py                 #   仿真时钟
│   │   ├── barrier.py               #   步间同步屏障
│   │   ├── trace_collector.py       #   trace 收集器
│   │   └── gateway_preflight.py     #   PHY 预检流程
│   ├── persistence/                 # 持久层
│   │   ├── __init__.py
│   │   ├── db.py                    #   Database 引擎 + auto-migrate
│   │   ├── models.py                #   SQLAlchemy ORM 6表模型
│   │   ├── repo.py                  #   RunRepository(run/summary/events)
│   │   ├── trace_repo.py            #   TraceRepository(traces/metrics)
│   │   └── scenario_repo.py         #   ScenarioRepository(CRUD + YAML 同步)
│   ├── protocol/                    # 协议层
│   │   ├── __init__.py
│   │   └── payload_header.py        #   帧头定义与解析
│   ├── scheduler/                   # 调度策略
│   │   ├── __init__.py
│   │   ├── base.py                  #   Strategy 抽象基类
│   │   ├── round_robin.py           #   轮询调度
│   │   └── adaptive_qos.py          #   自适应 QoS 调度
│   ├── service/                     # 业务服务层
│   │   ├── __init__.py
│   │   ├── run_service.py           #   RunService 业务编排
│   │   ├── execution_worker.py      #   ExecutionWorker 后台线程
│   │   └── location_initializer.py  #   LocationInitializer 位置初始化
│   ├── unet_adapter/                # UNET 适配层
│   │   ├── base.py                  #   UnetAdapter 抽象基类 + UnetInstance
│   │   ├── factory.py               #   detect_backend() + get_adapter()
│   │   ├── fjagepy_impl.py          #   fjagepy 网关适配器
│   │   ├── fjagepy_helpers.py       #   fjagepy 辅助函数
│   │   ├── arlpy_impl.py            #   arlpy 日志适配器
│   │   ├── logonly_impl.py          #   纯日志 mock 适配器
│   │   ├── rx_parse.py              #   接收帧解析
│   │   └── utils.py                 #   适配器工具函数
│   └── ui/                          # React SPA 前端
│       ├── package.json
│       ├── vite.config.ts           #   Vite 配置(proxy → 后端)
│       ├── tsconfig.json
│       └── src/
│           ├── main.tsx             #   入口
│           ├── App.tsx              #   路由定义(10 条)
│           ├── api/
│           │   └── client.ts        #   API 客户端封装
│           ├── hooks/
│           │   ├── usePolling.ts    #   通用轮询 hook
│           │   ├── useRunPolling.ts #   运行状态轮询
│           │   └── useWebSocket.ts  #   WebSocket hook
│           ├── components/          #   共享组件(11 个)
│           │   ├── Layout.tsx
│           │   ├── Sidebar.tsx
│           │   ├── PageHeader.tsx
│           │   ├── Card.tsx
│           │   ├── MetaCard.tsx
│           │   ├── StatusBadge.tsx
│           │   ├── RunsTable.tsx
│           │   ├── BarChart.tsx
│           │   ├── Pagination.tsx
│           │   ├── TabGroup.tsx
│           │   └── HealthStrip.tsx
│           ├── pages/               #   页面组件(10 个)
│           │   ├── Dashboard.tsx
│           │   ├── CreateRun.tsx
│           │   ├── RunDetail.tsx
│           │   ├── LiveMonitor.tsx
│           │   ├── ABCompare.tsx
│           │   ├── SystemConfig.tsx
│           │   ├── HealthCheck.tsx
│           │   ├── ScenarioList.tsx
│           │   └── ScenarioEditor.tsx
│           └── types/
│               ├── run.ts
│               └── scenario.ts

说明

  • docs/ 用于持续维护版本;提交版 report.md 可视为阶段性快照。
  • runs/ 目录为运行产物,应在 .gitignore 中忽略。
  • ui/ 为独立的 React SPA 项目,通过 Vite proxy 将 /api 请求转发至后端。