Source code for qcodes.instrument_drivers.HP.HP_8133A

from typing import TYPE_CHECKING

from qcodes.instrument import VisaInstrument, VisaInstrumentKWArgs
from qcodes.validators import Numbers

if TYPE_CHECKING:
    from typing import Unpack

    from qcodes.parameters import Parameter


[docs] class HP8133A(VisaInstrument): """ QCoDeS driver for Hewlett Packard 8133A Pulse Generator. """ default_terminator = "\n" def __init__( self, name: str, address: str, reset: bool = False, **kwargs: "Unpack[VisaInstrumentKWArgs]", ): super().__init__(name, address, **kwargs) self.frequency: Parameter = self.add_parameter( name="frequency", label="Frequency", unit="Hz", get_cmd="FREQ?", set_cmd="FREQ {}", get_parser=float, vals=Numbers(min_value=31.3e6, max_value=3.5e9), ) """Parameter frequency""" self.period: Parameter = self.add_parameter( name="period", label="Period", unit="s", get_cmd="PER?", set_cmd="PER {}", get_parser=float, vals=Numbers(min_value=286e-12, max_value=31.949e-9), ) """Parameter period""" self.phase: Parameter = self.add_parameter( name="phase", label="Phase", unit="deg", get_cmd="PHAS?", set_cmd="PHAS {}", get_parser=float, vals=Numbers(min_value=-3.6e3, max_value=3.6e3), ) """Parameter phase""" self.duty_cycle: Parameter = self.add_parameter( name="duty_cycle", label="Duty cycle", unit="%", get_cmd="DCYC?", set_cmd="DCYC {}", get_parser=float, vals=Numbers(min_value=0, max_value=100), ) """Parameter duty_cycle""" self.delay: Parameter = self.add_parameter( name="delay", label="Delay", unit="s", get_cmd="DEL?", set_cmd="DEL {}", get_parser=float, vals=Numbers(min_value=-5e-9, max_value=5e-9), ) """Parameter delay""" self.width: Parameter = self.add_parameter( name="width", label="Width", unit="s", get_cmd="WIDT?", set_cmd="WIDT {}", get_parser=float, vals=Numbers(min_value=1e-12, max_value=10.5e-9), ) """Parameter width""" self.amplitude: Parameter = self.add_parameter( name="amplitude", label="Amplitude", unit="V", get_cmd="VOLT?", set_cmd="VOLT {}", get_parser=float, vals=Numbers(min_value=0.1, max_value=3.3), ) """Parameter amplitude""" self.amplitude_offset: Parameter = self.add_parameter( name="amplitude_offset", label="Offset", unit="V", get_cmd="VOLT:OFFS?", set_cmd="VOLT:OFFS {}", get_parser=float, vals=Numbers(min_value=-2.95, max_value=3.95), ) """Parameter amplitude_offset""" self.output: Parameter = self.add_parameter( name="output", label="Output", get_cmd="OUTP?", set_cmd="OUTP {}", val_mapping={"OFF": 0, "ON": 1}, ) """Parameter output""" # resets amplitude and offset each time user connects self.amplitude(0.1) self.amplitude_offset(0) self.add_function("reset", call_cmd="*RST") self.connect_message()