mpylab.device.signalgenerator module

Base signal-generator driver with shared command helpers and tests.

class mpylab.device.signalgenerator.SIGNALGENERATOR(SearchPaths=None)

Bases: DRIVER

Base class for signal-generator drivers.

The parent class is mpylab.device.driver.DRIVER.

Parameters:

SearchPaths (sequence of path-like, optional) – Directories searched for device INI files and referenced data files.

AMOff()

Switch amplitude modulation off.

Returns:

(status, 0).

Return type:

tuple of int

AMOn()

Switch amplitude modulation on.

Returns:

(status, 0).

Return type:

tuple of int

AM_LFOut = ('OFF', 'ON')
AM_sources = ('INT1', 'INT2', 'EXT1', 'EXT2', 'EXT_AC', 'EXT_DC', 'TWOTONE_AC', 'TWOTONE_DC', 'OFF')
AM_waveforms = ('SINE', 'SQUARE', 'TRIANGLE', 'NOISE', 'SAWTOOTH')
ATT_modes = ('AUTO', 'FIXED')
ConfAM(source, freq, depth, waveform, LFOut)

Configure amplitude modulation.

Parameters:
  • source (str) – Modulation source, selected from AM_sources.

  • freq (float) – Modulation frequency in hertz.

  • depth (float) – Linear modulation depth from zero to one.

  • waveform (str) – Modulation waveform, selected from AM_waveforms.

  • LFOut (str) – Low-frequency output state, "ON" or "OFF".

Returns:

Device status; zero indicates success.

Return type:

int

Raises:

ValueError – If frequency or modulation depth is outside its valid range.

ConfPM(source, freq, pol, width, delay)

Configure pulse modulation.

Parameters:
  • source (str) – Modulation source, selected from PM_sources.

  • freq (float) – Pulse repetition frequency in hertz.

  • pol (str) – Pulse polarity, selected from PM_pol.

  • width (float) – Pulse width in the unit expected by the concrete driver.

  • delay (float) – Pulse delay in the unit expected by the concrete driver.

Returns:

Device status; zero indicates success.

Return type:

int

Raises:

ValueError – If frequency, width, or delay is outside its valid range.

GetFreq()

Read the RF output frequency.

Returns:

(status, frequency) with the frequency in hertz.

Return type:

tuple

GetLevel()

Read the RF output level.

Returns:

(status, level) where level is a scuq.Quantity, or None if communication failed.

Return type:

tuple

PARAMETER_SETS = {'AM_LFOut': ('OFF', 'ON'), 'AM_sources': ('INT1', 'INT2', 'EXT1', 'EXT2', 'EXT_AC', 'EXT_DC', 'TWOTONE_AC', 'TWOTONE_DC', 'OFF'), 'AM_waveforms': ('SINE', 'SQUARE', 'TRIANGLE', 'NOISE', 'SAWTOOTH'), 'ATT_modes': ('AUTO', 'FIXED'), 'PM_pol': ('NORMAL', 'INVERTED'), 'PM_sources': ('INT', 'EXT1', 'EXT2', 'OFF')}
PMOff()

Switch pulse modulation off.

Returns:

(status, 0).

Return type:

tuple of int

PMOn()

Switch pulse modulation on.

Returns:

(status, 0).

Return type:

tuple of int

PM_pol = ('NORMAL', 'INVERTED')
PM_sources = ('INT', 'EXT1', 'EXT2', 'OFF')
RFOff()

Switch the RF output off.

Returns:

(status, 0).

Return type:

tuple of int

RFOn()

Switch the RF output on.

Returns:

(status, 0).

Return type:

tuple of int

SetAM(state)

Set the amplitude-modulation state.

Parameters:

state (str or bool-like) – "on" enables AM; every other value disables it.

Returns:

(status, 0).

Return type:

tuple of int

SetFreq(freq)

Set and read back the RF output frequency.

Parameters:

freq (float) – Requested frequency in hertz.

Returns:

(status, frequency) with the read-back frequency in hertz.

Return type:

tuple

Raises:

ValueError – If freq is not finite and positive. Validation happens before any instrument command is sent.

SetLevel(lv)

Set and read back the RF output level.

Parameters:

lv (scuq.Quantity) – Requested power or voltage level. Conversion between voltage and power assumes 50 ohms when required by the device’s internal unit. For a complex scalar quantity, its magnitude is used.

Returns:

(status, level) where level is a scuq.Quantity, or None if communication failed.

Return type:

tuple

Raises:
  • TypeError – If lv is not a scuq.Quantity.

  • ValueError – If the quantity is non-scalar, non-finite, or incompatible with the device’s internal unit. Validation happens before any instrument command is sent.

SetPM(state)

Set the pulse-modulation state.

Parameters:

state (str or bool-like) – "on" enables PM; every other value disables it.

Returns:

(status, 0).

Return type:

tuple of int

SetState(state)

Set the RF output state.

Parameters:

state (str or bool-like) – "on" enables the output; every other value disables it.

Returns:

(status, 0).

Return type:

tuple of int

conftmpl = {'channel_%d': {'attenuation': <class 'float'>, 'attmode': <class 'str'>, 'level': <class 'float'>, 'levellimit': <class 'float'>, 'leveloffset': <class 'float'>, 'name': <class 'str'>, 'outputstate': <class 'str'>, 'unit': <class 'str'>}, 'description': {'description': <class 'str'>, 'deviceid': <class 'str'>, 'driver': <class 'str'>, 'serialnr': <class 'str'>, 'type': <class 'str'>, 'vendor': <class 'str'>}, 'init_value': {'fstart': <class 'float'>, 'fstep': <class 'float'>, 'fstop': <class 'float'>, 'gpib': <class 'int'>, 'virtual': <function strbool>, 'visa': <class 'str'>}}
mpylab.device.signalgenerator.test_normal()

Run manual integration test against configured driver.

mpylab.device.signalgenerator.test_signalgenerator_virtual()

Run internal virtual-driver smoke test.