mpylab.device.signalgenerator module¶
Base signal-generator driver with shared command helpers and tests.
- class mpylab.device.signalgenerator.SIGNALGENERATOR(SearchPaths=None)
Bases:
DRIVERBase 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)wherelevelis ascuq.Quantity, orNoneif 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)wherelevelis ascuq.Quantity, orNoneif communication failed.- Return type:
tuple
- Raises:
TypeError – If
lvis not ascuq.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.