数据存储
HDF5 数据管理:订阅、定时/手动保存与历史回读,含绘图一体化面板。
概述
quatm/GUI/h5storage/ 提供 HDF5 数据存储 GUI(由旧单文件拆出的包,公开符号在
包级再导出):汇总 / 单流 / 图像三类数据管理器订阅数据,按预约时刻、周期或
Looper 指令自动保存,也可手动把当前快照后台写入 .h5 文件并从文件回读历史测量
。
组件
| 组件 | 模块 | 说明 |
|---|---|---|
H5StorageGui | main_window.py | 主窗口:数据标签页、保存/定时保存控件与 plot 管理 |
H5StorageDataMgr | data_manager.py | 三类数据管理器宿主:订阅管理、保存/回读、清空 |
H5SaveWorker | workers.py | 工作线程写 .h5,磁盘 I/O 不阻塞 Qt 事件循环 |
H5DataPlotter / EventPlotter | plotters.py | 测量数据 / 事件数据的绘图标签页 |
XAxisWidget / YAxisWidget | axes.py | x 轴与各 y 轴的数据选择、过滤链配置 |
BinningWidget / FilterWidget / FittingWidget | widgets.py / fitting.py | binning、过滤与 ODR 拟合处理链 |
保存方式(H5StorageDataMgr)
| 方法 | 说明 |
|---|---|
toggle_scheduled_save | 开关预约时刻保存(到时自动保存并提示) |
toggle_regular_save | 开关每 N 小时的周期自动保存 |
scheduled_save_by_looper | 响应 Looper 的保存指令(final / intermittent) |
savetoFile | 把当前数据快照后台写入 .h5 文件 |
loadFromFile | 从既有 .h5 文件加载历史测量并刷新界面 |
selectDatadir | 自选 h5 目标文件(避免回滚到每日默认名) |
clear | 清空三类数据管理器的全部缓存 |
用法
from quatm.GUI.h5storage import H5StorageGui # 包级再导出
win = H5StorageGui(parent=parent)
win.show()
数据保存由后台 H5SaveWorker 完成:GUI 线程先拷贝数据快照再交给 worker,因此
HDF5 磁盘写入不会卡住界面。