Source code for qcodes_contrib_drivers.drivers.Lakeshore.modules.moduleBase
from qcodes.instrument import Instrument, InstrumentChannel
[docs]
class moduleBase(InstrumentChannel):
""" Base class for all M81 SSM modules"""
def __init__(self, parent: Instrument, name: str, Channel: str, **kwargs) -> None:
super().__init__(parent, name, **kwargs)
self.module_name = Channel
self.command_prefix = self._get_prefix()
self.add_parameter(name='model',
label='model',
get_cmd=self._param_getter('MODel?'),
get_parser = lambda resp: resp.strip('"')
)
self.add_parameter(name='serial',
label='serial',
get_cmd=self._param_getter('SERial?'),
get_parser = lambda resp: resp.strip('"')
)
def _get_prefix(self) -> str:
match self.module_name:
case 'S1': return "SOURce1"
case 'S2': return "SOURCe2"
case 'S3': return "SOURCe3"
case 'M1': return "SENSe1"
case 'M2': return "SENSe2"
case 'M3': return "SENSe3"
case _: raise ValueError('Channel must be either S[1-3] or M[1-3]')
def _param_getter(self, get_cmd: str) -> str:
return f"{self.command_prefix}:{get_cmd}"
def _param_setter(self, set_cmd: str, value: str) -> str:
return f"{self.command_prefix}:{set_cmd} {value}"
[docs]
def reset_to_default(self) -> None:
self.write(f"{self.command_prefix}:PRESet")