gRPC server and local detector control

English | 日本語

Verified implementation boundary

MiniPixCtrl is implemented in pixet_ctrl.py and provides local connection, configuration, acquisition, cancellation, frame access, and status APIs. Only pixet_ctrl.py was examined here; the existence or absence of gRPC components elsewhere in the project cannot be established.

Intended architecture (not verified as implemented)

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

Names found in earlier documentation—pixet_grpc_server.py, SyncPixetGrpcClient, and AsyncPixetGrpcClient—are retained as proposed components or components that may exist in other source files. Their classes, RPC methods, ports, and runnable examples have not been verified from the supplied source.

Candidate remote interface based on verified local APIs

Purpose

Verified MiniPixCtrl methods

gRPC exposure

Connection

connect() / disconnect()

Not verified

Configuration

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

Not verified

Acquisition

acquire() / acquire_frames() / acquire_integral()

Not verified

Abort and state

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

Not verified

Frames

get_frame() / get_frames() / get_acq_frames()

Not verified

Frame data uses NumPy arrays. Any gRPC implementation must define shape, dtype, byte order, message limits, exclusive device access, and disconnect behavior. These are design requirements, not features implicitly provided by MiniPixCtrl.

Transparent gRPC frame and API mapping

grpc_frame is a transparent transport frame for local control; it does not add detector-control operations. Remote control is therefore bounded by the operations implemented by the local controller on the server. Whether RPC/client names and signatures exactly match local methods requires the corresponding source code.

Do not interpret older RPC names as independent control features. If an operation is absent from local control, the transparent gRPC frame cannot supply it. Transport implementation and exposed RPC names cannot be verified from pixet_ctrl.py alone.