qmi.instruments.quantum_opus.amp_sim_module

Instrument driver for the Quantum Opus amp-sim module.

Classes

AmpSimModule(context, name, sim_900, port)

Instrument driver for the Quantum Opus amp-sim module.

class qmi.instruments.quantum_opus.amp_sim_module.AmpSimModule(context: QMI_Context, name: str, sim_900: Sim900, port: int)

Instrument driver for the Quantum Opus amp-sim module.

get_module_id() str

Query module identification string.

Returns:

Module identification string.

get_device_bias_current() int

Query device bias current.

Query device bias in DAC units (0 ─ 65535) for 0 to 2.5 V bias through 100 kΩ bias resistor (0-25 μA bias current)

Returns:

Query device bias in DAC units.

set_device_bias_current(dac_units: int) None

Set device bias current.

Set device bias current in DAC units (d = 0 ─ 65535, integer values). 0 = off, 65535 = 25μA. The bias current defaults to zero upon power-up.

Parameters:

dac_units – Device bias in DAC units.

set_adc_low_gain_mode() None

Set ADC gain to low_gain mode.

set_adc_high_gain_mode() None

Set ADC gain to high_gain mode.

get_device_voltage() int

Query device voltage.

Query device voltage in ADC units. If module is in high-gain mode (setting 0) the voltage (in volts) is calculated as (ADC units)/65535*1.1. If the module is in low-gain mode (setting 1) the voltage (in volts) is calculated as (ADC units)/65535*5.0

Returns:

Query device bias in ADC units.

set_reset_event_duration(duration: int) None

Set reset event duration.

Set the Reset Event duration (d = 0 ─ 255, integer). Sets the length of time the device bias is set to zero when a latch condition (i.e., device in non-superconducting state) is detected. The duration is calculated in units of 10 ms.

Parameters:

duration – Duration in units of 10ms.

get_reset_event_duration() int

Query Reset Event duration.

Query the presently set Reset Event duration.The duration is represented in units of 10 ms.

Returns:

Duration in units of 10ms.

set_auto_reset_enabled(enabled_flag: bool) None

Enable or disable the auto-reset function.

Enable or disable the auto-reset function. When enabled the module will monitor the voltage on the nanowire device and if it exceeds an internally set value indicating the device is no longer superconducting, an auto-reset event will be triggered. If disabled, a latch condition will be persistent until manually cleared by front-panel operation or by initiating a reset event through software.

Parameters:

enabled_flag – Boolean flag to enable or disable the auto-reset function.

get_auto_reset_enabled() bool

Query the auto-reset function.

Returns:

Return value is True if enabled, False if disabled.

initiate_reset_event() None

Initiate a Reset Event.

Initiate a Reset Event. The device bias is reduced to zero, held at zero for the Reset Event duration, and then returned to its previously set value.

initiate_auto_bias_function() None

Initiate the auto-bias function.

Initiate the auto-bias function. The device bias current is swept up from zero until a latch condition is detected. This latching current is measured. A Reset Event is initiated and then the bias is increased back up to approximately 95% of the measured latching current. This function is most reliable when the incoming light on the device is minimized as incoming photons can cause a slightly lower measured latching current. Note: The auto-bias function can result in slightly different bias currents each time it is run.

store_bias_current_in_non_volatile_memory(dac_current: int) None

Store a bias DAC value into non-volatile memory.

Store a bias DAC value into non-volatile memory (d = 0 ─ 65535, integer values). 0=off, 65535=25μA. This value will be written into internal non-volatile memory for reproducible biasing of the device through the use_device_bias_from_non_volatile_memory.

Note: The internal non-volatile memory is only guaranteed to survive for 100,000 write functions. This limit can be easily exceeded if an external program repeatedly calls this function.

Parameters:

dac_current – Bias current that needs to be stored in non-volatile memory in units of 25μA.

get_bias_current_from_non_volatile_memory() int

Query DAC bias value stored in non-volatile memory.

Return the value of the DAC bias stored in non-volatile memory. The bias value is stored in units of 25μA.

Returns:

Bias value stored in non-voletile memory in units of 25μA.

use_device_bias_from_non_volatile_memory() None

Sets the device bias to the value stored in non-volatile memory.

close() None

Close the connection to the instrument hardware and release associated resources.

When this method returns, the instrument must not be used again unless it is first re-opened by calling the open() method.

Subclasses can extend this method if they have specific resources to close. If they do, they should call super().close() as a last statement.

force_unlock() None

Forcefully unlock the remote object.

This unlocks the object, regardless of who owns the lock. This allows you to unlock an object if the locking proxy has been destroyed without unlocking.

Use this with care.

Do not override this stub method in subclasses. It has already been implemented in QMI_RpcProxy.

classmethod get_category() str | None

Return the optional name of the category this object belongs to.

A category name is a free-form string that has no special significance. Its purpose is to distinguish between groups of RPC objects that fulfill similar roles.

get_name() str

Return the name of this object.

Returns:

name attribute.

get_signals() list[SignalDescription]

Return a list of signals that can be published by this object.

Returns:

List consisting of qmi_signals attributes.

is_locked() bool

Query if the remote object is locked.

Do not override this stub method in subclasses. It has already been implemented in QMI_RpcProxy.

is_open() bool

Return True if the instrument is open (ready for interaction).

lock(timeout: float = 0.0, lock_token: str | None = None) bool

Lock the remote object. If timeout is given, try every 0.1s within the given timeout value. The remote object can be locked with an optional custom lock token by giving a string into lock_token keyword argument.

If successful, this proxy is the only proxy that can invoke RPC methods on the remote object; other proxies will receive an “object is locked” response. The return value indicates if the lock was granted; a denied lock means the object was already locked by another proxy.

Do not override this stub method in subclasses. It has already been implemented in QMI_RpcProxy.

open() None

Connect to the instrument hardware.

When this method returns, the instrument must be ready for interaction via calls to instrument-specific methods.

Subclasses can extend this method to implement instrument-specific initialization. If they do, they should call super().open() as a last statement.

release_rpc_object() None

Give a warning if the instrument is removed while still open.

unlock(lock_token: str | None = None) bool

Unlock the remote object.

Without optional parameters, this is only allowed by the proxy that initially locked the object. By giving the lock token as an input parameter, the specific object locked by this token can be unlocked. The return value indicates if the unlocking was successful.

Do not override this stub method in subclasses. It has already been implemented in QMI_RpcProxy.