更新时间:2026-05-26
点击次数:17
RESTlike 架构:每个探测器资源(配置参数、状态、命令)都通过URL 进行标识
语义化 HTTP 方法:使用 GET 读取参数、PUT 修改配置或执行命令、DELETE 删除资源
自描述性:所有参数都包含数据类型、取值范围、单位和访问权限信息
一致性:EIGER2、PILATUS 和 POLLUX 系列探测器共享相同的 API 接口
主版本号:不兼容的 API 变更
次版本号:向后兼容的功能新增
补丁号:向后兼容的问题修正
plaintext
://<DCU_IP>/<module>/api/<version>/<task>/<parameter>
<DCU_IP>:探测器控制单元(Detector Control Unit)的 IP 地址
<module>:功能模块(detector、monitor、filewriter、stream、system)
<version>:API 版本号(如 1.8.0)
<task>:操作类型(config、status、command)
<parameter>:具体参数或命令名称
表格
| 模块 | 功能描述 | 基础 URL |
|---|---|---|
| Detector | 探测器配置、状态查询和采集控制 | ://<DCU_IP>/detector/api/1.8.0/ |
| Monitor | 低帧率实时图像监控 | ://<DCU_IP>/monitor/api/1.8.0/ |
| FileWriter | HDF5 文件写入配置和管理 | ://<DCU_IP>/filewriter/api/1.8.0/ |
| Stream | 高速实时数据流传输 | ://<DCU_IP>/stream/api/1.8.0/ |
| System | 系统级配置和管理 | ://<DCU_IP>/system/api/1.8.0/ |
曝光控制:count_time(曝光时间)、frame_time(帧周期)、nimages(图像数量)、trigger_mode(触发模式)
能量设置:photon_energy(光子能量)、threshold_energy(阈值能量)
校正功能:flatfield_correction_applied、countrate_correction_applied、pixel_mask_applied
几何参数:detector_distance(探测器距离)、beam_center_x/beam_center_y(束斑中心)
高级功能:compression(压缩算法)、roi_mode(感兴趣区域)、binning_mode(像素合并)
initialize:初始化探测器(上电或服务重启后必须执行)
arm:加载配置并准备采集
trigger:软件触发采集
disarm:结束采集并写入所有数据
abort:立即中止所有操作
可配置的缓冲区大小(默认 100 帧)
支持 TIFF 格式图像输出
包含完整的元数据(曝光时间、能量、束斑中心等)
超时机制防止请求挂起
mode:启用 / 禁用文件写入
name_pattern:文件式(支持$id变量)
nimages_per_file:每个数据文件的最大图像数
compression_enabled:启用 / 禁用数据压缩
format:HDF5 文件格式
Stream V1:基于 ZeroMQ 的多部分 JSON 消息(端口 9999)
Stream V2:基于 CBOR 编码的单部分消息(端口 31001),性能更高,延迟更低
单消息设计,减少网络开销
CBOR 编码比 JSON 更紧凑、解析更快
支持多客户端连接(轮询分发)
包含完整的元数据和图像数据
网络配置(IP 地址、DNS、MTU 等)
日期时间设置(NTP 同步、时区)
系统命令(重启、关机、日志收集)
DCU_IP = "192.168.0.100"API_VERSION = "1.8.0"# 初始化探测器response = requests.put(f":///detector/api//command/initialize", json={})response.raise_for_status()f":///detector/api//config/count_time", json=)
# 设置采集100帧图像response = requests.put( f":///detector/api//config/nimages", json=)
# 设置触发模式为内部触发response = requests.put( f":///detector/api//config/trigger_mode", json=)
f":///filewriter/api//config/mode", json=)
# 设置文件模式response = requests.put( f":///filewriter/api//config/name_pattern", json=)
time.sleep(15)
# Disarm探测器response = requests.put(f":///detector/api//command/disarm", json={})# 下载HDF5文件master_file = requests.get(f":///data/my_experiment__master.h5")with open(f"my_experiment__master.h5", "wb") as f: f.write(master_file.content)data_file = requests.get(f":///data/my_experiment__data_000001.h5")with open(f"my_experiment__data_000001.h5", "wb") as f: f.write(data_file.content)
threshold/n/energy和threshold/n/mode参数来配置每个阈值的能量和启用状态。对于支持差分模式的探测器,还可以通过threshold/difference/mode参数启用能量差分成像。LZ4:通用高速压缩算法
BSLZ4:DECTRIS 优化的位洗牌 + LZ4 算法,压缩比更高,推荐用于全帧率采集
实验室坐标系:原点在样品中心,Z 轴沿入射束方向,Y 轴向上
探测器坐标系:原点在传感器左上角,X 轴沿快速扫描方向,Y 轴沿慢速扫描方向
detector_orientation(旋转矩阵)和detector_translation(平移向量),确保数据处理软件能够准确计算每个像素的散射角度。专业的技术咨询:根据您的应用需求,推荐最合适的 EIGER2、PILATUS 或 POLLUX 探测器型号
系统集成服务:将 DECTRIS 探测器无缝集成到您的工业检测系统中
API 开发支持:提供 SIMPLON API 的技术培训和定制化开发服务
本地化技术支持:快速响应您的技术问题,提供现场安装和维护服务
备件和维修服务:建立了备件库,确保您的系统持续稳定运行