mini_pixの構成と実装境界
実装済みの制御経路
Python application → MiniPixCtrl → pypixet / PIXet core → MiniPIX D08-W0313
添付 pixet_ctrl.py はPIXet SDKを直接呼び出すローカル制御層であり、gRPC通信を内部で実行しない。実機D08-W0313はTimepix・Si 500 µmセンサーで、個体校正値はメーカーの校正記録に従う。connect() は検出された先頭のデバイスを使い、D08-W0313をシリアル番号で自動選択しない。
設計上の拡張経路(未確認)
Application → DeviceProxy → gRPC client → gRPC server → MiniPixCtrl → PIXet
従来のドキュメントにあるgRPCとDeviceProxyの層は、拡張可能なアーキテクチャとして残す。今回の添付ソースではそれらの実装を確認できないため、ローカルAPI実装済みと上位層の設計案・未確認を区別する。
データと制御
acquire_frames() はPIXetのフレーム測定、acquire_integral() はPIXetの積算測定を利用する。測定結果はPythonの辞書とNumPy配列を含む。HDF5/TIFFの保存はローカルクラスで扱うが、ネットワーク転送や遠隔排他制御はこのクラスの責務ではない。
今後gRPC等を追加する場合も、検出器のモード・しきい値・バイアスの単位、測定結果のデータ型をローカルAPIに合わせる。未実装機能の詳細は gRPCサーバー と DeviceProxy を参照。
gRPCの透過性とローカルAPI
grpc_frame はローカル制御APIを透過的に呼び出すための通信基盤であり、検出器制御機能を独自に追加しません。したがって、リモートから実行可能な検出器操作は、サーバー側のローカル制御クラスに実装された操作に限られます。RPCの公開名や引数がローカルメソッドと一致するかは、対応するクライアント・サーバーのソースコードによる確認が必要です。
現行の正式なAPIは pixet_ctrl.py の MiniPixCtrl を基準とします。ローカル制御に存在しない機能を、gRPCだけで提供できるものとして記述しません。通信層の実装状況についても、pixet_ctrl.py だけでは断定しません。