00-需求总览.md 4.6 KB

00 · 需求总览(总纲,勿删)

新任务:operate / control 双进程拆分。旧任务(三项目合并改造 M0–M8)代码完成、真机验收整体未做、有 operate 侧降级遗留(见 进度/待验证清单.md M-01~M-07 与 需求文档/操作端逻辑与配置全景.md §八);旧文档已清空,本体系为新任务重建。 本文件是总纲,指向各专题文档。续接靠"进度/"三件套(见第五节)。

一、新任务是什么(一句话)

把 control(机器驱动:串口/拍照/换气/对焦/上传)从 operate 进程内剥离成独立常驻进程,让 operate(操作界面)可随时开关而 control 持续驱动机器;装机/用户视角仍是一个软件、只启动 operate

二、为什么做(背景)

operate 与 control 原是两个独立软件,"合并"只为代码管理方便,把 control 塞进了 operate 进程内,引入三个问题:

  1. 生命周期冲突:control 必须 7×24 常驻(胚胎培养不能断),operate 只是 UI 想关就关;同进程导致——operate 关 UI 进程退不掉(残留进程)、重开又起一套 control 抢串口。
  2. 监控功能没写全:operate 的"服务监控"页本应跨进程看 control 状态,合并时只做了同进程直读、内容不全。
  3. 调试串口占用:control 常驻占串口,operate 进调试页要用串口时冲突。

三、目标与范围

目标:

  • 运行时回归两个独立进程:control.exe 常驻驱动机器,operate.exe 可随时开关。
  • 用户/装机仍是一个软件:只装、只启动 operate;control 由 operate 自动管理。
  • operate 关闭 → control 继续驱动机器、采集、上传。
  • 补全监控页(跨进程读 control 真实状态)。
  • 解决调试串口占用(跨进程借用/归还)。

范围:只动 operate 与 control。front(管理端 ivf_tl_Manage)保持现状不动。control 的采集/换气/对焦/上传业务逻辑零改动(只动进程边界与本地通信)。

四、关键决策(已与用户确认)

# 决策 选定
1 进程模型 operate / control 两个独立进程;一个解决方案管理,装机是一个软件
2 进程间通信 control 开本地 HTTP 小服务(127.0.0.1),operate 调
3 谁拉起 control operate 按需拉起 + operate 开机自启 + control 用 Mutex 单实例
4 调试让串口 operate 调 /serial/pause+/resume,复用 HouseGate 闸门,control 不死、调完恢复
5 整体停止 control 监控页受护栏按钮(二次确认 + 工程师口令 tl13579)→ /shutdown
6 监控页补全 补:各舱实时活动、后台线程健康/心跳、串口借用状态
7 实现节奏 分阶段:①独立进程骨架 ②监控/借串口/停止 ③清理老壳

五、文档地图(按需深入)

  • 本文件 00-需求总览.md —— 总纲(勿删)。
  • 需求文档/specs/2026-06-22-operate-control-双进程拆分-design.md —— 架构设计(做什么/怎么连,9 章含拓扑图、HTTP 契约、生命周期、分阶段)。
  • 需求文档/control-逻辑与配置全景.md —— 现状基线(control 全部逻辑 + 全部配置参数,标 file:line;接手代码的全图)。
  • 需求文档/操作端逻辑与配置全景.md —— 现状基线(operate 侧)(启动时序 / 业务模块逐功能 / operate↔control 交接面 / HTTP 接口全表 / 配置 + §八 合并改动·降级·待验证登记,标 file:line)。
  • 系统业务流程详图.html —— ★开发上手总文档(单页·可视化·汇总入口):给刚接手的开发一篇读懂「为什么改造→改成什么样→现在什么样→接下来改什么→怎么上手」。汇总自背景/架构设计/两份全景/阶段1计划/降级登记,细化到每个功能、标 file:line;浏览器直接打开。
  • 开发计划/2026-06-22-阶段1-control独立进程骨架.md —— 阶段1 实现计划(7 个 bite-sized 任务,可执行)。
  • 进度/ —— 续接三件套 + 实时面板:
    • 进度状态.yaml = 轻断点(现在干到哪、下一步)。开机先读这个。
    • 工作计划表.md = 阶段真实状态。
    • 交接卡.md = 追加式历史(每步追加,不覆盖)。
    • 待验证清单.md = 真机门控项。
    • 进度数据.js / 监控面板.html = 实时面板。
  • 开发环境/ —— 本机环境、账号、连接配置、换服务器必读(编译部署先查这里)。

六、续接方式

每次新会话按序读:① 进度/进度状态.yaml(断点)→ ② 开发计划/2026-06-22-阶段1-control独立进程骨架.md(当前阶段计划)→ ③ 需求文档/specs/...-design.md(架构)→ ④ 交接卡.md 末尾(最近细节)。按需再读 control 全景。