mahos.inst.overlay.overlay.InstrumentOverlay#

class mahos.inst.overlay.overlay.InstrumentOverlay(name: str, conf: dict | None = None, prefix: str | None = None)#

Base class for InstrumentOverlay.

InstrumentOverlay provides a way to define a virtual instrument that consists of multiple instruments. The role is similar to the meas (measurement) layer nodes; however, overlays run in the same process/thread as each instrument. Thus, procedures should be implemented as overlays when they need strictly synchronous behavior or the best performance (in terms of latency). This is also useful for application-specific parameterization or fundamental modification of an instrument.

InstrumentOverlay is accessed by the measurement layer or custom code through the same interface as an instrument (usually via instrument RPC).

Instruments should be registered during initialization by calling add_instruments() in inherited classes.

InstrumentOverlay is subclass of mahos.inst.instrument.Instrument. See Standard Instrument APIs for APIs.

Additional Methods

InstrumentOverlay.__init__(name: str, conf: dict | None = None, prefix: str | None = None)#
InstrumentOverlay.add_instruments(*insts: Instrument | None)#

Add instruments. If None is contained, it is silently ignored.