实验框架

实验运行体系:任务队列/执行引擎、循环、序列编辑、时序查看与运行监视。

概述

实验框架覆盖实验从编写、调度到运行的完整链条:

  • 实验脚本:继承 Experiment 并实现 build / run(入门见 编写第一个实验,设备映射见 配置仪器设备);
  • 调度执行:实验队列(ExperimentQueue)→ 执行引擎(ExperimentManager)按 优先级/预约时间取任务执行,准备台与循环器参与入队;
  • 编辑与监视:序列编辑/模拟、FPGA 时序查看、运行监视、多线程任务框架与基础 窗口控件。

调度与执行

页面模块说明
实验队列管理器experiment/experiment_queue表格化任务队列
实验任务运行管理器experiment/experiment_manager执行引擎(测量/序列/运行)
实验运行调度管理器experiment/调度机制综述
实验预处理experiment/prepstation准备台(暂存/推送)
实验任务循环管理器looper/条件循环执行
实验集合管理器entries/processmanager进程启停面板

编辑、时序与监视

页面模块说明
实验序列编辑器editors/editor_sequencer代码编辑 + 序列模拟
实验时间线查看器entries/experiment_timelineFPGA 时序可视化
实验运行监视器streammonitor/数据/消息监视
实验控制浏览器browser/主程序浏览器

控件与工具

页面模块说明
数据类控件widgets/arg_boxes参数输入控件
实验参数管理器entries/dashboard默认参数系统
实验任务折叠管理widgets/theexpandables可折叠分区
实验任务预备队列管理器widgets/models队列/预备表格模型
多线程任务管理器widgets/browser_workersWorker 线程
多线程处理框架widgets/helper_workersWorker 线程
自动保存编辑器editors/auto_save_editor周期保存时刻
实验窗口控件类widgets/quatmQtGUI 基础控件

数据类控件

实验参数编辑控件:FloatBox/BoolBox/ComboBox,改动即写回参数属性。

实验窗口控件类

GUI 基础控件:BWidget/BFrame/BMainWindow 与可搜索组合框等。

实验序列编辑器

实验代码编辑与序列模拟:语法高亮、解析与输出通道时序可视化。

实验任务运行管理器

核心实验执行引擎:从队列取任务,按测量/序列/运行层级调度执行。

实验控制浏览器

主程序浏览器:文件树、队列/准备台/循环器与 MDI 实验窗口。

实验队列管理器

表格化实验任务队列:任务字典、优先级排序、暂停/终止与预约执行。

多线程任务管理器

QRunnable 多线程任务:Worker 回调执行 + WorkerSignals 信号回主线程。

自动保存编辑器

周期 h5 自动保存时间点列表编辑器:勾选 + 日期时间的保存时刻配置。

实验时间线查看器

FPGA 实验时序可视化:DAC/TTL 输出通道随时间变化的阶梯图查看器。

多线程处理框架

QRunnable 多线程处理框架:Worker 回调执行 + WorkerSignals 信号回主线程。

实验任务循环管理器

条件循环执行器:按测量结果自动重复/跳转/终止任务组循环。

实验任务预备队列管理器

预备任务(准备台)的表格模型:PrepModel 列表模型与队列 ScheduleModel。

实验运行调度管理器

运行调度机制:队列集中入队,worker 按优先级/预约时间取任务执行。

实验预处理

准备台:任务发往队列前的暂存、编辑、排序与推送(prepfile 持久化)。

实验集合管理器

分布式进程面板:按 Servers/Driver/GUI/Viewer/Monitor 分类启停后台进程。

实验参数管理器

默认实验参数系统:DefaultExp 聚合设备参数,Dashboard 按设备分组编辑。

实验运行监视器

数据流监控 GUI:数据/图像/命令/消息多标签监视与单流面板。

实验任务折叠管理

可折叠分区对话框:SectionExpandButton 切换 + CollapsibleDialog 定义分区。