部署指南

在实际实验环境中部署和运行 Quatm 框架的指南。

部署架构

Quatm 的通信基于通用 TCP/IPC 通道,支持灵活的网络拓扑:

┌──────────────────┐        TCP/IPC       ┌──────────────────┐
│  控制端 (实验室)   │ ◄──────────────────► │  客户端 (办公)    │
│  • 设备驱动        │                      │  • GUI 浏览器     │
│  • 实验引擎        │                      │  • 参数编辑器     │
│  • 数据采集        │                      │  • 数据监视器     │
└──────────────────┘                      └──────────────────┘

核心服务

服务模块功能
数据管理datamgr.DataSummary接收、存储实验数据为 HDF5
数据记录datalogger实时数据流记录
图像记录imagelogger图像数据存储
属性管理properties.Properties分布式属性同步
配置读取configreader路径和配置管理
消息转发xsub_xpubXSUB/XPUB 消息代理
Web 服务webhub浏览器端实验控制台(quatm.web,含移动端适配)

单机部署

所有组件在同一台计算机上运行:

git clone https://github.com/quatm/quatm.git
cd quatm
pip install -r requirements.txt
# 编辑 configuration/device_db.py
python -m quatm.GUI.browser

分离部署

控制端运行实验引擎,客户端远程连接:

# 控制端(实验室计算机)
python -m quatm.servers.experiment_server --port 7777

# 客户端(办公计算机)
python -m quatm.GUI.browser --connect 192.168.1.100:7777

系统服务(Linux)

[Unit]
Description=Quatm Experiment Server
After=network.target

[Service]
Type=simple
User=labuser
WorkingDirectory=/home/labuser/quatm
ExecStart=/home/labuser/.venv/bin/python -m quatm.servers.experiment_server
Restart=always

[Install]
WantedBy=multi-user.target

数据存储

  • 本地:HDF5 格式,保存在 Data/年-月-日/ 目录
  • 远程:支持 InfluxDB 推送(配置 properties.json

Web 远程控制平台

实验 PC 上启动 Web Hub 服务后,局域网内任何设备(含手机)通过浏览器即可 控制实验,与桌面 GUI 共享同一套 Hub 与属性系统:

# 随 quatm 核心安装,命令行直接启动
python -m quatm.web --project <用户项目> --port 8000
# 浏览器打开 http://<实验PC>:8000

远程(实验室外)访问推荐 SSH 隧道,Hub 本身无认证、仅建议内网使用:

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

详见 Web 远程控制