en ja

版に関する注意:本資料の statistics mode に関する記述は旧実装の検討事項です。現行APIとして記載された Xdm1000Ctrl には start_statistics_mode() が存在しないため、現行の使用方法として解釈しないでください。

実装上の注意事項

ctrl 層に公開しない API

Xdm1000Ctrl には remote()、local()、query()、write() を公開しない。これらは Xdm1000Scpi の低レベル API である。

running 中の API 制限

長時間測定中の測定・設定 API は command queue に積まず、親側で即時拒否する。状態取得、結果取得、停止要求は running 中でも許可する。

stop の扱い

停止要求は command queue ではなく stop event / direct 停止フラグで伝える。停止は即時割り込みではなく、測定ループが停止要求を確認した時点で反映される。

continuous 測定の時刻

continuous 測定の時刻は装置時刻ではなく host 側時刻である。host_time_* は time.time()、read_elapsed と t_rel_* は time.perf_counter() に基づく。

statistics mode の注意

use_process=True の statistics mode は CALCulate:AVERage:ALL? を使う。装置側 statistics の clear/start 条件が未確認であるため、duration 秒の厳密な時間窓平均としては扱わない。

use_process=False の statistics mode は host 側で MEAS1? の値を集め、Python 側で最小・最大・平均を計算する。process 使用時と結果生成方法が異なる。

RATE 値の不一致

SCPI 層の docstring では F、M、L、ctrl 層では F、M、S という表記が混在している。現状の実装は値検証を行わず、指定された rate をそのまま RATE に渡す。最終的な正規値は装置マニュアルと実機応答で確認する必要がある。

Config の SERVER_HOST / SERVER_IP

Config の既定属性と YAML 例には SERVER_HOST がある。一方、SyncXdm1000Client と AsyncXdm1000Client は config から SERVER_IP を参照する。現状のコードに合わせる場合、client へは server_ip を明示するか、SERVER_IP 属性を持つ config を渡す必要がある。

Config のパス解決

Config は相対 YAML パスを呼び出し元ファイル基準で解決する。コンストラクタ呼び出しと classmethod load_yaml() では inspect.stack() の depth が異なる。