Quatm 通过 configuration/device_db.py 统一管理所有仪器设备,支持三种接入模式。
设备类型
| type | 行为 | 适用场景 |
|---|---|---|
local | 实例化驱动类,作为完整对象使用 | 实时控制器、相机等需要方法调用的设备 |
attr | 将通道映射为 Python 属性 | DAC 输出、TTL 数字信号 |
generic_attr | 调用驱动的任意函数 | DDS 频率设置等灵活映射 |
属性设备详解
TTLOut — 数字输出
映射硬件控制器的 TTL 通道为实验属性,支持正/反逻辑:
"cooling_aom": {
"type": "attr",
"module": "quatm.experiment.attributes",
"class": "TTLOut",
"arguments": {"channel": 5, "logic": "a"},
}
实验中直接赋值:self.cooling_aom = True
DAC — 模拟输出
映射硬件控制器的 DAC 通道,支持校准曲线:
"trap_x": {
"type": "attr",
"module": "quatm.experiment.attributes",
"class": "DAC",
"arguments": {"channel": 2, "gauge": "gauge-trap-x.txt"},
}
校准文件
对于非线性设备,使用两列文本文件校准。第一列为期望物理量,第二列为实际 DAC 值。系统自动线性插值。
自定义驱动
编写驱动类后在 device_db 中以 type: "local" 注册:
"my_laser": {
"type": "local",
"module": "my_lab.laser_driver",
"class": "LaserController",
"arguments": {"port": "/dev/ttyUSB0"},
}
驱动类建议实现 is_ready() 方法用于状态检查。
已内置驱动
| 驱动 | 模块路径 | 用途 |
|---|---|---|
| ADwin | quatm.drivers.adwin | FPGA 实时控制与数据采集 |
| BlackFly | quatm.drivers.blackfly | FLIR 工业相机 |
| Valon 5009 | quatm.drivers.valon | 微波频率合成器 |
| Andor | quatm.drivers.andor | iCCD、EMCCD |
| Rigol | quatm.drivers.rigol | 信号发生器、直流源、示波器 |
| Thorlabs | quatm.drivers.thorlabs | 位移台、功率计 |
| Pi Stage | quatm.drivers.pistage | 精密位移台 |
| DDS AD9959 | quatm.drivers.dds | 直接数字频率合成 |