这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

Web 远程控制平台

quatm.web:与桌面 GUI 同源的浏览器端实验控制平台,支持手机移动端, 随时随地掌握实验全局。

quatm.web 是 Quatm 核心包的内置子包(quatm/web/),随 pip install quatm 一起安装,无需额外组件。它把桌面 GUI 的全部核心能力搬进浏览器,并在桌面端 与手机移动端分别做了适配。

平台定位

Quatm 桌面 GUI 功能强大,但实验室外、路途中或手机上无法使用。quatm.web 把实验控制延伸到任何有浏览器的设备:

  • 桌面电脑:完整的实验操作台,布局与桌面 GUI 对齐;
  • 手机/平板:专为触屏优化的紧凑界面,随时查看实验状态、调整参数、启停任务;
  • 零安装:客户端只需浏览器,无需安装任何软件或依赖。

Web 服务由实验 PC 上的 webhub 提供,通过 ZeroMQ 直连实验的 Hub 网络,与桌面 GUI 共享同一套状态:实验队列、扫描定义、任务暂存、逻辑循环、属性树全部同源。

一键启动

Web 服务已封装为进程管理器的一个 Servers 条目,开箱即用:

"Servers": {
    "Web Hub": {
        "active": false,
        "script": "../quatm/servers/webhub.py",
        "host": "0.0.0.0",
        "port": 8000
    }
}

active 改为 true(或在进程管理器中点击 Web Hub),浏览器打开 http://<实验PC>:8000 即可。也可命令行启动:

python -m quatm.web --project <用户项目> --port 8000

功能总览

Web 平台共九个功能页,逐一复刻桌面 GUI 的核心窗口:

页面对应桌面 GUI能力
监控Datastream Monitor / Image Monitor实时曲线(通道/序列/数组)、消息日志、相机图像
实验Browser + Experiment Window + ExperimentQ实验文件列表、参数表单、运行/停止;与桌面实验队列双向同步(桌面 Browser 在线时任务交由其队列执行器运行,状态实时回传)
仪表盘Dashboard按设备分组渲染参数控件,带单位/范围/步进元数据,直接写回属性库
数据h5storage实时运行追踪(每个 run 完成即累积、X/Y 任选字段绘制实时扫描图)+ HDF5 归档浏览、8 种拟合模型、CSV 导出
属性Property Editor完整属性树浏览与编辑(与桌面 GUI 共享同一属性系统)
分析Analysis Manager启动/停止分析脚本,与桌面 GUI 的勾选状态互通
时间线Experiment Timeline解析 AdWin 序列:TTL 位掩码拆解、device_db 反向映射、多通道阶梯图
通知Notification Editor推送通知配置(Webhook),实验完成/异常自动推送
进程Process Manager远程查看与启停实验 PC 上的服务/驱动/GUI 进程

实验页进一步对齐桌面 Browser 的顶部 dock,提供 队列管理 / 任务暂存 / 逻辑循环 三个 标签页:

  • 实验队列:与桌面 Browser 的队列执行器双向同步(Web 提交 → 桌面队列执行, 状态实时回传;桌面排队任务在 Web 同样可见);
  • 实验暂存:与桌面 GUI 共用同一份 prepfile.json,任务暂存、推送、排序;
  • 实验逻辑:与桌面 GUI 共用同一份 loopfile.json,任务循环 + 数据条件分支, 支持最大次数/最大连续次数终止。

与桌面 GUI 同源的实验操作

Web 实验窗口完整复刻桌面实验窗口的操作逻辑:

  • 参数保存/加载:与桌面 GUI 同目录、同格式(experiment_params/<实验>/<日期>/ ),桌面保存的参数集 Web 可直接加载;
  • 参数扫描:Scan 下拉与桌面 scanCombo 同源(属性树),SequenceEditor 式 编辑器在浏览器中直接创建/编辑扫描(参数、起止、步数、随机化、Snake/nD 模式);
  • 实验窗口按钮行:提交 / Run Next / Prep / Save / Load,与桌面布局一致。

移动端特调

在手机/平板上打开同一地址,界面自动切换为触屏优化布局:

  • 导航横向滚动,所有页面一屏可达;
  • 布局自动堆叠为单列,图表高度适配小屏;
  • 按钮与输入控件放大到触控友好尺寸(≥38px);
  • 参数网格、进程列表、表格等自动重排。

远程访问

实验 PC 与远程客户端共用同一套 configuration/configfile/configfile.json 约定。生成服务器侧(Hub 绑定 tcp://*:56xx)与客户端侧(端点指向实验 PC)配置:

# 实验 PC:Hub 开放到局域网
python -m quatm.web endpoints --project <项目> --server --out server_config.json

# 远程机器:端点指向实验 PC
python -m quatm.web endpoints --project <项目> --remote-host 10.5.78.161 --out client_config.json

也可通过 SSH 隧道安全访问(Hub 本身无认证,建议仅在内网/VPN 使用):

ssh -L 5601:localhost:5601 -L 8000:localhost:8000 user@experiment-pc

架构

浏览器(桌面/手机)──HTTP/WebSocket──► webhub(quatm.servers.webhub)
                                          │ ZeroMQ 直连实验 Hub 网络
                    ┌─────────────────────┼──────────────────────┐
                    ▼                     ▼                      ▼
              Data/Image Hub        Property Hub           Message Hub
                    │                     │                      │
              实验数据实时流          与桌面 GUI 共享          实验日志与
               (含实时追踪)          的属性系统            异常通知

Web 服务与桌面 GUI 使用完全相同的 Hub 端点与消息协议,因此两者可以同时在线、 协同操作:桌面提交的任务在手机端可见,手机端修改的参数在桌面 GUI 实时同步。