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 virtual instrument that consists of multiple instruments. The role is similar to meas layer; however, overlay works on the same process / thread with each instrument. Thus, procedures should be implemented as overlay when it needs strictly synchronous behaviour or the best performance (in terms of latency). It is also useful to define application-specific parametrization or fundamental modification to an instrument.

InstOverlay is accessed by meas layer or custom codes via same interface with instrument (usually via Instrument RPC).

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)#

Init Instrument and internal instrument list (_instruments).

Instruments should be added on initialization by add_instruments() in inherited class.

InstrumentOverlay.add_instruments(*insts: Instrument | None)#

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