gRPCサーバーとローカル制御の関係

English | 日本語

実装確認の範囲

MiniPixCtrl は pixet_ctrl.py に実装されたローカル制御クラスである。connect()、設定、測定、停止、フレーム取得、状態取得は確認できる。一方、今回確認したソースは pixet_ctrl.py のみであり、gRPCサーバー実装・RPC定義の有無をプロジェクト全体について断定しない。

想定する構成(設計資料・実装未確認)

Remote client → gRPC server → MiniPixCtrl → pypixet / PIXet → MiniPIX D08-W0313

過去のドキュメントに記載された pixet_grpc_server.py、SyncPixetGrpcClient、AsyncPixetGrpcClient は構想または別ソースに存在する可能性のあるコンポーネントとして残す。添付ソースからはクラスの存在、RPC名、ポート番号、実行例の動作を確認できないため、実装済みAPIとして扱わない。

公開を検討するローカルAPI

用途

MiniPixCtrl の確認済みメソッド

gRPC公開状況

接続

connect() / disconnect()

未確認

設定

set_mode_all() / set_threshold() / set_clock() / set_bias()

未確認

測定

acquire() / acquire_frames() / acquire_integral()

未確認

中断・状態

stop() / is_running() / is_aborting() / state()

未確認

画像

get_frame() / get_frames() / get_acq_frames()

未確認

画像データはNumPy配列である。gRPC公開時にはshape、dtype、バイトオーダー、フレームサイズ、転送制限、排他制御、切断時の動作を明示する必要がある。これらは設計課題であり、現行の MiniPixCtrl が自動的に提供する機能ではない。

gRPCの透過性とローカルAPI

grpc_frame はローカル制御APIを透過的に呼び出すための通信基盤であり、検出器制御機能を独自に追加しません。したがって、リモートから実行可能な検出器操作は、サーバー側のローカル制御クラスに実装された操作に限られます。RPCの公開名や引数がローカルメソッドと一致するかは、対応するクライアント・サーバーのソースコードによる確認が必要です。

現行の正式なAPIは pixet_ctrl.py の MiniPixCtrl を基準とします。ローカル制御に存在しない機能を、gRPCだけで提供できるものとして記述しません。通信層の実装状況についても、pixet_ctrl.py だけでは断定しません。