Source code for qcodes.instrument_drivers.HP.HP8133A

from typing import Any

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


[docs]class HP8133A(VisaInstrument): """ This is the code for Hewlett Packard 8133A Pulse Generator """ def __init__( self, name: str, address: str, reset: bool = False, **kwargs: Any): super().__init__(name, address, terminator='\n', **kwargs) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) self.add_parameter(name='output', label='Output', get_cmd='OUTP?', set_cmd='OUTP {}', val_mapping={'OFF': 0, 'ON': 1}) # 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()