gRPCサーバーとローカル制御の関係
実装確認の範囲
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
用途 |
|
gRPC公開状況 |
|---|---|---|
接続 |
|
未確認 |
設定 |
|
未確認 |
測定 |
|
未確認 |
中断・状態 |
|
未確認 |
画像 |
|
未確認 |
画像データはNumPy配列である。gRPC公開時にはshape、dtype、バイトオーダー、フレームサイズ、転送制限、排他制御、切断時の動作を明示する必要がある。これらは設計課題であり、現行の MiniPixCtrl が自動的に提供する機能ではない。
gRPCの透過性とローカルAPI
grpc_frame はローカル制御APIを透過的に呼び出すための通信基盤であり、検出器制御機能を独自に追加しません。したがって、リモートから実行可能な検出器操作は、サーバー側のローカル制御クラスに実装された操作に限られます。RPCの公開名や引数がローカルメソッドと一致するかは、対応するクライアント・サーバーのソースコードによる確認が必要です。
現行の正式なAPIは pixet_ctrl.py の MiniPixCtrl を基準とします。ローカル制御に存在しない機能を、gRPCだけで提供できるものとして記述しません。通信層の実装状況についても、pixet_ctrl.py だけでは断定しません。