Device gated stage

class pymoa.stage.gate.AnalogGateStage(min=0.0, max=0.0, **kwargs)

Bases: pymoa.stage.gate.GateStage

Stage that waits until a analog device enters a range of values.

class pymoa.stage.gate.DigitalGateStage(exit_state=False, **kwargs)

Bases: pymoa.stage.gate.GateStage

Stage that waits until a digital device becomes exit_state.

exit_state: bool = False

The state the device has to be on in order to exit from this stage.

class pymoa.stage.gate.GateStage(device=None, state_prop='state', hold_time=0, use_initial=True, **kwargs)

Bases: pymoa.stage.MoaStage

Stage that waits until a device reaches some state.

This stage waits for updates on the device state and responds accordingly. If the device is executing remotely, state updates may have some delay. Since hold_time is computed using the local clock and not timestamp, this adds further latency. To wait for a device more precisely, use a custom stage that waits on the device remotely.

device: pymoa.device.Device = None

The input device.

hold_time: float = 0

How long the state must be held to finish.

state_prop: str = 'state'

The name of the attr in device to bind.

use_initial: bool = True

Whether we can complete the stage if when entering, the channel is already at this exit_state.