Architecture

English | 日本語

Basic structure

The central component of pixet_ctrl.py is MiniPixCtrl.

User Application
    │
    ▼
MiniPixCtrl
    │
    ▼
pypixet / PIXet Python API
    │
    ▼
PIXet core
    │
    ▼
MiniPIX / Timepix detector

MiniPixCtrl is a high-level control layer that provides a thin wrapper around the PIXet Pro Python API. It brings together connection management, pixel configuration, detector parameter settings, exposure, and frame retrieval.

Internal state

MiniPixCtrl primarily maintains the following internal references:

  • _pixet: Main PIXet core object obtained from pypixet.pixet.

  • _dev: Detector object obtained from pixet.devices(); currently the first device is used.

  • _pixcfg: Pixel configuration obtained from _dev.pixCfg().

  • _logger: A supplied logger or the standard logging logger.

Initialization on connection

For Timepix / MPX2 devices, the pixel mode is configured through the pixel configuration rather than through setOperationMode(). Currently, connect() sets every pixel to PX_TPXMODE_TOT immediately after connecting and applies the configuration to the device using setToDevice().

Accordingly, measurement modes are changed through set_mode_all().

Frame acquisition structure

Image acquisition is delegated to PIXet’s doSimpleAcquisition(). After acquisition, frames stored within the PIXet core are retrieved with acqFrameRefInc() and converted to Python dictionaries by _frame_to_dict().

doSimpleAcquisition()
    │
    ▼
PIXet internal acquisition frames
    │
    ▼
acqFrameRefInc(idx)
    │
    ▼
_frame_to_dict(frame)
    │
    ▼
{"name", "width", "height", "data", "subframes"}

_frame_to_dict() reads not only the main frame but also subFrames() when available. Each retrieved frame and subframe is ultimately released using destroy().

Role in a gRPC deployment

For network access, MiniPixCtrl runs on the server, and gRPC clients call equivalent control methods.

Client Program
    │
    ▼
SyncPixetGrpcClient / AsyncPixetGrpcClient
    │
    ▼
gRPC
    │
    ▼
pixet_grpc_server.py
    │
    ▼
MiniPixCtrl
    │
    ▼
PIXet Python API
    │
    ▼
MiniPIX Detector

Direct detector control remains inside the server process connected to the physical hardware; users interact through the client API.