ArC2Control UI Signals

During ArC2Control startup a set of Qt signals will be initialised. These are used to pass messages between the UI and various constituent components as well as internal and external modules. Current set of signals includes arc2 status changes (connection and configuration) as well as data updates to be propagated to the UI. Modules can connect and trigger all modules here although practically connection and configuration signals need not be triggered explicitly. If you are subclassing BaseModule then all the required signals are preconnected and the values they correspond to are exposed directly as object properties or methods. You can still connect to them but it’s not recommended to emit them explicitly.

To trigger a signal call its emit method with the correct configuration of arguments (see Signature on each signal for details).

arc2control.signals.arc2ConfigChanged = <bound PYQT_SIGNAL arc2ConfigChanged of __Signals object>

Current ArC2 configuration changed. This typically means that either idle mode or default connection configuration (ground or idle) has changed.

Caution

It’s not recommended to emit this signal from modules.

Signature: arc2ConfigChanged(status: bool, arc: pyarc2.ArC2Config, /)

arc2control.signals.arc2ConnectionChanged = <bound PYQT_SIGNAL arc2ConnectionChanged of __Signals object>

Current connection to ArC2 changed. This means that an instrument has been connected or disconnected.

Signature: arc2ConnectionChanged(connected: bool, arc: weakref(pyarc2.Instrument), /)

arc2control.signals.crossbarSelectionChanged = <bound PYQT_SIGNAL crossbarSelectionChanged of __Signals object>

Current crosspoint selection changed. This is typically emitted after a user selected a different set of crosspoints. Please not that this is not triggered when the same devices have been selected.

Caution

It’s not recommended to emit this signal from modules.

Signature: crossbarSelectionChanged(selection: set)

arc2control.signals.dataDisplayUpdate = <bound PYQT_SIGNAL dataDisplayUpdate of __Signals object>

Data display update request on specific crosspoint. Emit this signal to request a plot update for the specific crosspoint. Note that this operation is independent of the data storage facility that is triggered by the valueUpdate and valueBulkUpdate signals. When doing fast operation it’s recommended that you cap your data display update requests to about 5-10 per second otherwise delays will be incurred.

Signature: dataDisplayUpdate(word: int, bit: int)

arc2control.signals.datastoreReplaced = <bound PYQT_SIGNAL datastoreReplaced of __Signals object>

The current HDF5 datast has been replaced with a new one. This signal should only really be used internally and it’s triggered when a new dataset is opened or when a new dataset is created

Signature: datastoreReplaced(dataset: weakref)

arc2control.signals.readoutVoltageChanged = <bound PYQT_SIGNAL readoutVoltageChanged of __Signals object>

Selected read-out voltage changed. This is emitted when the global read-out voltage has been altered.

Caution

It’s not recommended to emit this signal from modules, unluess you want to change the global read-out voltage (which is, of course, not recommended).

Signature: readoutVoltageChanged(voltage: float)

arc2control.signals.valueBulkUpdate = <bound PYQT_SIGNAL valueBulkUpdate of __Signals object>

Specified crosspoint status changed (multiple values). Emit this signal to store multiple values in the timeseries data of the selected crosspoint.

Signature: valueUpdate(word: int, bit: int, current: ndarray, vpulse: ndarray, pulse_width: ndarray, vread: ndarray, optype: ndarray)

arc2control.signals.valueUpdate = <bound PYQT_SIGNAL valueUpdate of __Signals object>

Specified crosspoint status changed (single update). Emit this signal to store a value in the timeseries data of the selected crosspoint.

Signature: valueUpdate(word: int, bit: int, current: float, vpulse: float, pulse_width: float, vread: float, optype: arc2control.h5utils.OpType)