設計方針
本ライブラリは、SCPI コマンド送受信、測定器としての上位操作、長時間測定、FastAPI 公開を分離する。
基本方針
xdm1000_scpi.pyは低レベル SCPI ドライバである。xdm1000_ctrl.pyは測定器として扱う上位制御クラスである。xdm1000_worker.pyはuse_process=Trueの長時間測定と SCPI 実行を担う子プロセス側実装である。server_fastapi/はXdm1000Ctrlを ese774_frame で透過公開する別レイヤである。remote()/local()/query()/write()は SCPI 層の責務であり、ctrl 層には公開しない。
config 優先規則
Xdm1000Scpi と Xdm1000Ctrl は、config が渡された場合に PORT、TIMEOUT、BAUDRATE を config から取得する。config とコンストラクタ引数が同時に指定された場合は config を優先する。
use_process
Xdm1000Ctrl は use_process を持つ。
use_process=True: worker process を起動し、SCPI 通信を子プロセスへ隔離する。use_process=False: 同一プロセスでXdm1000Scpiを直接生成する。長時間測定は呼び出し元スレッドをブロックする。
測定設定キャッシュ
測定種別、レンジ、レートはキャッシュされる。前回設定と同じ場合は不要な CONFigure:* と RATE の再発行を避ける。kind、range_value、rate を省略した API では、現在キャッシュまたは既定値を使う。
既定値は次である。
kind = voltage_dc
range_value = AUTO
rate = F
長時間測定
長時間測定は start_continuous_meas() と start_statistics_mode() で開始する。use_process=True では開始要求は短時間で戻り、結果は get_continuous_result() または get_statistics_result() で取得する。use_process=False では同じ API 名だが、呼び出し元で測定ループを実行する。