更新時間:2026-05-26
點擊次數:112
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 的技術培訓和定制化開發服務
本地化技術支持:快速響應您的技術問題,提供現場安裝和維護服務
備件和維修服務:建立了備件庫,確保您的系統持續穩定運行