实验任务循环管理器
条件循环执行器:按测量结果自动重复/跳转/终止任务组循环。
概述
quatm/GUI/looper/ 提供实验任务循环管理器(Looper):以“循环组(标签页)”
组织任务条目,按顺序执行组内条目,并根据测量结果决定跳转或终止。LoopManager 在
后台线程运行循环;循环定义持久化在 loopfile.json,与 Web 远程控制平台共用。
核心逻辑
LoopManager.run_loop():从起始组开始,无限循环直到 terminate
└─→ 按顺序执行组内条目
├─ Task:提交到实验队列,等待完成后推进(可设最大次数)
└─ Conditional:读数据流字段比较 → 满足跳转 / 不满足走 else
组件
| 组件 | 说明 |
|---|---|
LoopGroup | 循环组(一个标签页) |
TaskItem / ListItem | 任务条目 / 任务列表条目 |
ConditionalItem 等 | 数据条件、到达序号、时间等条件条目 |
Baustelle | 组内条目的添加/删除/编辑面板 |
DataManager | 订阅数据流、累积最新测量值 |
LoopManager | 循环执行器(run_loop() / terminate(),后台线程) |
用法
from quatm.GUI.looper import Looper
looper = Looper(parent=browser) # 浏览器顶部 dock 的循环器标签页
更完整说明见 循环器。