Skip to content

XGLab

Support for XGLab controllers.

Dante

Dante can run single point or continuous (aka mapping) acquisitions.

Mosca to Dante

The conversion from run_mode/stop_trigger/gate_mode to gating_mode is done in the function mosca.devices.xglab.dantehw.mosca_to_dante.

Source code in mosca/devices/xglab/dantehw.py
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
def mosca_to_dante(run_mode, stop_trigger, gate_mode):
    gating_mode = None
    if run_mode == RunModes.REALTIME:
        gating_mode = GatingModes.FreeRunning
    elif run_mode == RunModes.FREERUN:
        if gate_mode == GateModes.HIGH:
            gating_mode = GatingModes.GatedHigh
        elif gate_mode == GateModes.LOW:
            gating_mode = GatingModes.GatedLow
        elif stop_trigger == ControlTriggers.FALLING:
            gating_mode = GatingModes.TriggerFalling
        elif stop_trigger == ControlTriggers.RISING:
            gating_mode = GatingModes.TriggerRising
        elif stop_trigger == ControlTriggers.BOTH:
            gating_mode = GatingModes.TriggerBoth
    if gating_mode is None:
        raise RuntimeError(f"Combination not supported: {run_mode.name} / {stop_trigger.name}  / {gate_mode.name}")

    return gating_mode

Single point acquisition

To configure the hardware to run a single point acquisition gate_mode must be set to REALTIME. The acquisition starts when the hardware is started, and runs for the given number of seconds(acq_realtime, measured by the hardware).

Mosca Value
acq_realtime time in s
run_mode REALTIME

This translates into the following Dante settings:

Dante Value
acq_time acq_realtime
gating_mode "FreeRunning"

Continuous (mapping) acquisition

To configure the hardware to run a single point acquisition gate_mode must be set to FREERUN. acq_nb_points, gate_mode and stop_trigger are then used to control the acquisition.

Mosca Value
acq_nb_points >= 1
run_mode FREERUN
gate_mode HIGH
LOW
n/a
block_size >= 1
stop_trigger FALLING
RISING
BOTH
NONE

This translates into the following Dante settings:

Warning

gate_mode takes precedence over stop_trigger.

Dante Notes
points acq_nb_oints
gating_mode
  • gate_mode is HIGH"GatedHigh"
  • gate_mode is LOW"GatedLow"
  • gate_mode is NONE, stop_trigger is:
    • FALLING"TriggerFalling"
    • RISING"TriggerRising"
    • BOTH"TriggerBoth"

block_size

This parameter doesn't translate into a Dante parameter, it just tells the polling function that it should wait until block_size points are available before downloading them (or that the acquisition is finished).