Source code for qcodes.instrument_drivers.HP.HP_83650A

# Driver for microwave source HP_83650A
#
# Written by Bruno Buijtendorp (brunobuijtendorp@gmail.com)
import logging
from typing import Any, Optional

from qcodes import validators as vals
from qcodes.instrument import VisaInstrument

log = logging.getLogger(__name__)


def parsestr(v: str) -> str:
    return v.strip().strip('"')


[docs] class HP83650A(VisaInstrument): """ QCoDeS driver for HP 83650A """ def __init__(self, name: str, address: str, verbose: int = 1, reset: bool = False, server_name: Optional[str] = None, **kwargs: Any): self.verbose = verbose log.debug('Initializing instrument') super().__init__(name, address, **kwargs) self.add_parameter('frequency', label='Frequency', get_cmd='FREQ:CW?', set_cmd='FREQ:CW {}', vals=vals.Numbers(10e6, 40e9), docstring='Microwave frequency, ....', get_parser=float, unit='Hz') self.add_parameter('freqmode', label='Frequency mode', get_cmd='FREQ:MODE?', set_cmd='FREQ:MODE {}', vals=vals.Strings(), get_parser=parsestr, docstring='Microwave frequency mode, ....') self.add_parameter('power', label='Power', get_cmd='SOUR:POW?', set_cmd='SOUR:POW {}', vals=vals.Numbers(-20, 20), get_parser=float, unit='dBm', docstring='Microwave power, ....') self.add_parameter('rfstatus', label='RF status', get_cmd=':POW:STAT?', set_cmd=':POW:STAT {}', val_mapping={'on': '1', 'off': '0'}, vals=vals.Strings(), get_parser=parsestr, docstring='Status, ....') self.add_parameter('fmstatus', label='FM status', get_cmd=':FM:STAT?', set_cmd=':FM:STAT {}', val_mapping={'on': '1', 'off': '0'}, vals=vals.Strings(), get_parser=parsestr, docstring='FM status, ....') self.add_parameter('fmcoup', label='FM coupling', get_cmd=':FM:COUP?', set_cmd=':FM:COUP {}', vals=vals.Strings(), get_parser=parsestr, docstring='FM coupling, ....') self.add_parameter('amstatus', label='AM status', get_cmd=':AM:STAT?', set_cmd=':AM:STAT {}', val_mapping={'on': '1', 'off': '0'}, vals=vals.Strings(), get_parser=parsestr, docstring='AM status, ....') self.add_parameter('pulsestatus', label='Pulse status', get_cmd=':PULS:STAT?', set_cmd=':PULS:STAT {}', val_mapping={'on': '1', 'off': '0'}, vals=vals.Strings(), get_parser=parsestr, docstring='Pulse status, ....') self.add_parameter('pulsesource', label='Pulse source', get_cmd=':PULS:SOUR?', set_cmd=':PULS:SOUR {}', vals=vals.Strings(), get_parser=parsestr, docstring='Pulse source, ....') self.connect_message()
[docs] def reset(self) -> None: log.debug('Resetting instrument') self.write('*RST') self.print_all()
[docs] def print_all(self) -> None: log.debug('Reading all settings from instrument') print(f"{self.rfstatus.label}: {self.rfstatus.get()}") print(f"{self.power.label}: {self.power.get()} {self.power.unit}") print(f"{self.frequency.label}: {self.frequency.get():e} {self.frequency.unit}") print(f"{self.freqmode.label}: {self.freqmode.get()}") self.print_modstatus()
[docs] def print_modstatus(self) -> None: print(f"{self.fmstatus.label}: {self.fmstatus.get()}") print(f"{self.fmcoup.label}: {self.fmcoup.get()}") print(f"{self.amstatus.label}: {self.amstatus.get()}") print(f"{self.pulsestatus.label}: {self.pulsestatus.get()}") print(f"{self.pulsesource.label}: {self.pulsesource.get()}")
class HP_83650A(HP83650A): """ Alias of HP83650A for backwards compatibility. Will eventually be deprecated and removed. """