Source code for qblox_instruments.qcodes_drivers.spi_rack_modules.spi_module_base

# ----------------------------------------------------------------------------
# Description    : SPI Module Base Class
# Git repository : https://gitlab.com/qblox/packages/software/qblox_instruments.git
# Copyright (C) Qblox BV (2021)
# ----------------------------------------------------------------------------

from qcodes.instrument.channel import InstrumentChannel
from qcodes.instrument.parameter import ManualParameter
from qblox_instruments.native.spi_rack_modules import (
    SpiModuleBase as SpiModuleBaseNative,
)


[docs] class SpiModuleBase(SpiModuleBaseNative, InstrumentChannel): """ Defines an abstract base class for SPI modules. All module drivers should inherit from this class. This class defines no actual functionality but rather serves to provide a common interface shared among all modules. Parameters ---------- parent Reference to the :class:`~qblox_instruments.SpiRack` parent object. This is handled by the :func:`~qblox_instruments.SpiRack.add_spi_module` function. name : str Name given to the InstrumentChannel. address : int Module number set on the hardware (set internally on the module itself with a jumper). Returns ---------- Raises ---------- """
[docs] def __init__(self, parent, name: str, address: int, **kwargs): super().__init__(parent, name, address) InstrumentChannel.__init__(self, parent, name)
class DummySpiModule(SpiModuleBase): """ A dummy implementation of module driver, used for mock implementations. """ def __init__(self, parent, name: str, address: int): super().__init__(parent, name, address) self.add_parameter( "output", unit="A", parameter_class=ManualParameter, docstring="This is a simple manual parameter that can be used " "during testing. The user is able to get and set values to/from " "it but no actual functionality is associated with it.", ) def set_dacs_zero(self) -> None: self.output(0)