支持运行中切换目标流量:按 S 进入输入模式,回车生效、Esc 取消

- 输入模式下控制循环照常运行、原目标继续生效,直到回车确认新值
- 输入期间终端输出整体静默(状态行/性能报告均不打印),文件日志与 CSV 照常写入
- 新增 ConsoleGate 过滤器挂到 console_handler,退出路径统一解除静默
- 新增 PerformanceReporter.reset(),切换目标后重新判稳并再次输出性能报告
- 新增 config.TARGET_SWITCH_KEY 配置项,README 同步说明
This commit is contained in:
2026-08-21 03:36:17 +08:00
parent 7732c36c55
commit 292815e907
4 changed files with 124 additions and 3 deletions
+18
View File
@@ -113,6 +113,24 @@ class PerformanceReporter:
if not self._reached and self.target_flow_slm is not None:
self._log("info", "本次运行未达到稳态,未生成控制性能报告")
def reset(self):
"""清空判稳状态,使切换目标后能重新判定稳态并再次输出报告。
``initial_flow_slm`` 一并置空,观察器会在下一个有效样本上重新把它
初始化为切换目标时刻的实测流量,从而保证新目标的超调方向判断正确。
"""
self._reached = False
self.target_flow_slm = None
self.settling_time_s = None
self.steady_mean = None
self.steady_std = None
self.steady_error_slm = None
self._first_timestamp = None
self._peak_flow_slm = None
self._min_flow_slm = None
self.initial_flow_slm = None
self._window.clear()
@property
def steady_reached(self):
"""是否已判定达到稳态(供主循环决定是否自动停止)。"""