From 0b07767cbe0d0bc6f27e82445b32fc3a2adc5ecd Mon Sep 17 00:00:00 2001 From: Pieter Date: Thu, 9 Mar 2017 12:46:24 +0100 Subject: [PATCH 01/10] add driver for HP-83650A --- qcodes/instrument_drivers/HP/HP_83650A.py | 122 ++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 qcodes/instrument_drivers/HP/HP_83650A.py diff --git a/qcodes/instrument_drivers/HP/HP_83650A.py b/qcodes/instrument_drivers/HP/HP_83650A.py new file mode 100644 index 000000000000..757f084f0d0a --- /dev/null +++ b/qcodes/instrument_drivers/HP/HP_83650A.py @@ -0,0 +1,122 @@ +# Driver for microwave source HP_83650A +# +# Written by Bruno Buijtendorp (brunobuijtendorp@gmail.com) + + +import logging +from qcodes import VisaInstrument +from qcodes import validators as vals + +def parsestr(v): + return v.strip().strip('"') + +class HP_83650A(VisaInstrument): + def __init__(self, name, address, verbose=1, reset=False,server_name=None, **kwargs): + """ Driver for HP_83650A + + Also see: [xxxx] + """ + self.verbose = verbose + logging.debug(__name__ + ' : 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, + units='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, + units='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, ....') + + def reset(self): + logging.info(__name__ + ' : Resetting instrument') + self.write('*RST') + self.getall() + + def getall(self): + logging.info(__name__ + ' : reading all settings from instrument') + print(self.rfstatus.label + ':',self.rfstatus.get()) + print(self.power.label + ':',self.power.get(),self.power.units) + print(self.frequency.label + ': %e' %self.frequency.get(),self.frequency.units) + print(self.freqmode.label + ':',self.freqmode.get()) + self.getmodstatus() + #self.get_modstatus() + #self.get_modsource() + #self.get_FM() + + def getmodstatus(self): + print(self.fmstatus.label + ':',self.fmstatus.get()) + print(self.fmcoup.label + ':',self.fmcoup.get()) + print(self.amstatus.label + ':',self.amstatus.get()) + print(self.pulsestatus.label + ':',self.pulsestatus.get()) + print(self.pulsesource.label + ':',self.pulsesource.get()) From 3877aa4dd5144946c1d284e267d6de6400369d38 Mon Sep 17 00:00:00 2001 From: Pieter Date: Thu, 9 Mar 2017 12:47:30 +0100 Subject: [PATCH 02/10] autopep --- qcodes/instrument_drivers/HP/HP_83650A.py | 39 ++++++++++++----------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/qcodes/instrument_drivers/HP/HP_83650A.py b/qcodes/instrument_drivers/HP/HP_83650A.py index 757f084f0d0a..f024802d25c7 100644 --- a/qcodes/instrument_drivers/HP/HP_83650A.py +++ b/qcodes/instrument_drivers/HP/HP_83650A.py @@ -7,13 +7,15 @@ from qcodes import VisaInstrument from qcodes import validators as vals + def parsestr(v): return v.strip().strip('"') + class HP_83650A(VisaInstrument): - def __init__(self, name, address, verbose=1, reset=False,server_name=None, **kwargs): + def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kwargs): """ Driver for HP_83650A - + Also see: [xxxx] """ self.verbose = verbose @@ -50,7 +52,7 @@ def __init__(self, name, address, verbose=1, reset=False,server_name=None, **kwa label='RF status', get_cmd=':POW:STAT?', set_cmd=':POW:STAT {}', - val_mapping={'on':'1','off':'0'}, + val_mapping={'on': '1', 'off': '0'}, vals=vals.Strings(), get_parser=parsestr, docstring='Status, ....') @@ -59,7 +61,7 @@ def __init__(self, name, address, verbose=1, reset=False,server_name=None, **kwa label='FM status', get_cmd=':FM:STAT?', set_cmd=':FM:STAT {}', - val_mapping={'on':'1','off':'0'}, + val_mapping={'on': '1', 'off': '0'}, vals=vals.Strings(), get_parser=parsestr, docstring='FM status, ....') @@ -76,7 +78,7 @@ def __init__(self, name, address, verbose=1, reset=False,server_name=None, **kwa label='AM status', get_cmd=':AM:STAT?', set_cmd=':AM:STAT {}', - val_mapping={'on':'1','off':'0'}, + val_mapping={'on': '1', 'off': '0'}, vals=vals.Strings(), get_parser=parsestr, docstring='AM status, ....') @@ -85,7 +87,7 @@ def __init__(self, name, address, verbose=1, reset=False,server_name=None, **kwa label='Pulse status', get_cmd=':PULS:STAT?', set_cmd=':PULS:STAT {}', - val_mapping={'on':'1','off':'0'}, + val_mapping={'on': '1', 'off': '0'}, vals=vals.Strings(), get_parser=parsestr, docstring='Pulse status, ....') @@ -105,18 +107,19 @@ def reset(self): def getall(self): logging.info(__name__ + ' : reading all settings from instrument') - print(self.rfstatus.label + ':',self.rfstatus.get()) - print(self.power.label + ':',self.power.get(),self.power.units) - print(self.frequency.label + ': %e' %self.frequency.get(),self.frequency.units) - print(self.freqmode.label + ':',self.freqmode.get()) + print(self.rfstatus.label + ':', self.rfstatus.get()) + print(self.power.label + ':', self.power.get(), self.power.units) + print(self.frequency.label + + ': %e' % self.frequency.get(), self.frequency.units) + print(self.freqmode.label + ':', self.freqmode.get()) self.getmodstatus() - #self.get_modstatus() - #self.get_modsource() - #self.get_FM() + # self.get_modstatus() + # self.get_modsource() + # self.get_FM() def getmodstatus(self): - print(self.fmstatus.label + ':',self.fmstatus.get()) - print(self.fmcoup.label + ':',self.fmcoup.get()) - print(self.amstatus.label + ':',self.amstatus.get()) - print(self.pulsestatus.label + ':',self.pulsestatus.get()) - print(self.pulsesource.label + ':',self.pulsesource.get()) + print(self.fmstatus.label + ':', self.fmstatus.get()) + print(self.fmcoup.label + ':', self.fmcoup.get()) + print(self.amstatus.label + ':', self.amstatus.get()) + print(self.pulsestatus.label + ':', self.pulsestatus.get()) + print(self.pulsesource.label + ':', self.pulsesource.get()) From a78d7076e6c623437c88afd2ecb18448fc8f5b16 Mon Sep 17 00:00:00 2001 From: Pieter Date: Thu, 9 Mar 2017 12:50:07 +0100 Subject: [PATCH 03/10] remove doc --- qcodes/instrument_drivers/HP/HP_83650A.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/qcodes/instrument_drivers/HP/HP_83650A.py b/qcodes/instrument_drivers/HP/HP_83650A.py index f024802d25c7..2ff2c4c00a1b 100644 --- a/qcodes/instrument_drivers/HP/HP_83650A.py +++ b/qcodes/instrument_drivers/HP/HP_83650A.py @@ -15,8 +15,7 @@ def parsestr(v): class HP_83650A(VisaInstrument): def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kwargs): """ Driver for HP_83650A - - Also see: [xxxx] + """ self.verbose = verbose logging.debug(__name__ + ' : Initializing instrument') From e1d9ecea1780d16f0b486a4f68ba3f64f9e7840d Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Thu, 9 Mar 2017 23:52:15 +0100 Subject: [PATCH 04/10] some fixes from PR comments --- qcodes/instrument_drivers/HP/HP_83650A.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/qcodes/instrument_drivers/HP/HP_83650A.py b/qcodes/instrument_drivers/HP/HP_83650A.py index 2ff2c4c00a1b..a7f67d32dd57 100644 --- a/qcodes/instrument_drivers/HP/HP_83650A.py +++ b/qcodes/instrument_drivers/HP/HP_83650A.py @@ -7,18 +7,21 @@ from qcodes import VisaInstrument from qcodes import validators as vals +log = logging.getLogger(__name__) + def parsestr(v): return v.strip().strip('"') class HP_83650A(VisaInstrument): + def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kwargs): """ Driver for HP_83650A - + """ self.verbose = verbose - logging.debug(__name__ + ' : Initializing instrument') + log.debug(__name__ + ' : Initializing instrument') super().__init__(name, address, **kwargs) self.add_parameter('frequency', @@ -100,21 +103,18 @@ def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kw docstring='Pulse source, ....') def reset(self): - logging.info(__name__ + ' : Resetting instrument') + log.info(__name__ + ' : Resetting instrument') self.write('*RST') self.getall() def getall(self): - logging.info(__name__ + ' : reading all settings from instrument') + log.debug(__name__ + ' : reading all settings from instrument') print(self.rfstatus.label + ':', self.rfstatus.get()) print(self.power.label + ':', self.power.get(), self.power.units) print(self.frequency.label + ': %e' % self.frequency.get(), self.frequency.units) print(self.freqmode.label + ':', self.freqmode.get()) self.getmodstatus() - # self.get_modstatus() - # self.get_modsource() - # self.get_FM() def getmodstatus(self): print(self.fmstatus.label + ':', self.fmstatus.get()) From dfa485454c34f45f8f7f471a37457e4c8e4126e5 Mon Sep 17 00:00:00 2001 From: Pieter Date: Tue, 14 Mar 2017 11:37:59 +0100 Subject: [PATCH 05/10] rename units to unit --- qcodes/instrument_drivers/HP/HP_83650A.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qcodes/instrument_drivers/HP/HP_83650A.py b/qcodes/instrument_drivers/HP/HP_83650A.py index a7f67d32dd57..4c488431bb41 100644 --- a/qcodes/instrument_drivers/HP/HP_83650A.py +++ b/qcodes/instrument_drivers/HP/HP_83650A.py @@ -31,7 +31,7 @@ def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kw vals=vals.Numbers(10e6, 40e9), docstring='Microwave frequency, ....', get_parser=float, - units='Hz') + unit='Hz') self.add_parameter('freqmode', label='Frequency mode', @@ -47,7 +47,7 @@ def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kw set_cmd='SOUR:POW {}', vals=vals.Numbers(-20, 20), get_parser=float, - units='dBm', + unit='dBm', docstring='Microwave power, ....') self.add_parameter('rfstatus', From f9e2dabdab3fedfcdf9fe7cbd7a3e1fd94f99f04 Mon Sep 17 00:00:00 2001 From: Pieter Date: Thu, 16 Mar 2017 17:03:07 +0100 Subject: [PATCH 06/10] fix all pull request review comments --- qcodes/instrument_drivers/HP/HP_83650A.py | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/qcodes/instrument_drivers/HP/HP_83650A.py b/qcodes/instrument_drivers/HP/HP_83650A.py index 4c488431bb41..827c041a854a 100644 --- a/qcodes/instrument_drivers/HP/HP_83650A.py +++ b/qcodes/instrument_drivers/HP/HP_83650A.py @@ -7,21 +7,18 @@ from qcodes import VisaInstrument from qcodes import validators as vals -log = logging.getLogger(__name__) - def parsestr(v): return v.strip().strip('"') class HP_83650A(VisaInstrument): - def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kwargs): """ Driver for HP_83650A - + """ self.verbose = verbose - log.debug(__name__ + ' : Initializing instrument') + logging.debug(__name__ + ' : Initializing instrument') super().__init__(name, address, **kwargs) self.add_parameter('frequency', @@ -31,7 +28,7 @@ def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kw vals=vals.Numbers(10e6, 40e9), docstring='Microwave frequency, ....', get_parser=float, - unit='Hz') + units='Hz') self.add_parameter('freqmode', label='Frequency mode', @@ -47,7 +44,7 @@ def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kw set_cmd='SOUR:POW {}', vals=vals.Numbers(-20, 20), get_parser=float, - unit='dBm', + units='dBm', docstring='Microwave power, ....') self.add_parameter('rfstatus', @@ -103,20 +100,20 @@ def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kw docstring='Pulse source, ....') def reset(self): - log.info(__name__ + ' : Resetting instrument') + logging.debug(__name__ + ' : Resetting instrument') self.write('*RST') - self.getall() + self.print_all() - def getall(self): - log.debug(__name__ + ' : reading all settings from instrument') + def print_all(self): + logging.debug(__name__ + ' : reading all settings from instrument') print(self.rfstatus.label + ':', self.rfstatus.get()) print(self.power.label + ':', self.power.get(), self.power.units) print(self.frequency.label + ': %e' % self.frequency.get(), self.frequency.units) print(self.freqmode.label + ':', self.freqmode.get()) - self.getmodstatus() + self.print_modstatus() - def getmodstatus(self): + def print_modstatus(self): print(self.fmstatus.label + ':', self.fmstatus.get()) print(self.fmcoup.label + ':', self.fmcoup.get()) print(self.amstatus.label + ':', self.amstatus.get()) From 0d799edee1ed66fce8ec5040eb855cf6c1bb1db6 Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Sun, 19 Mar 2017 11:56:59 +0100 Subject: [PATCH 07/10] autopep8 --- qcodes/instrument_drivers/HP/HP_83650A.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qcodes/instrument_drivers/HP/HP_83650A.py b/qcodes/instrument_drivers/HP/HP_83650A.py index 827c041a854a..3c3f33c9b9c0 100644 --- a/qcodes/instrument_drivers/HP/HP_83650A.py +++ b/qcodes/instrument_drivers/HP/HP_83650A.py @@ -13,9 +13,10 @@ def parsestr(v): class HP_83650A(VisaInstrument): + def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kwargs): """ Driver for HP_83650A - + """ self.verbose = verbose logging.debug(__name__ + ' : Initializing instrument') From 3ca5483709a8496dac6f23fddae2d66f33718792 Mon Sep 17 00:00:00 2001 From: Pieter Eendebak Date: Sun, 19 Mar 2017 17:49:11 +0100 Subject: [PATCH 08/10] fix changes made in (e1d9ece) --- qcodes/instrument_drivers/HP/HP_83650A.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/qcodes/instrument_drivers/HP/HP_83650A.py b/qcodes/instrument_drivers/HP/HP_83650A.py index 3c3f33c9b9c0..1848a0d5d6ea 100644 --- a/qcodes/instrument_drivers/HP/HP_83650A.py +++ b/qcodes/instrument_drivers/HP/HP_83650A.py @@ -7,6 +7,8 @@ from qcodes import VisaInstrument from qcodes import validators as vals +log = logging.getLogger(__name__) + def parsestr(v): return v.strip().strip('"') @@ -19,7 +21,7 @@ def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kw """ self.verbose = verbose - logging.debug(__name__ + ' : Initializing instrument') + log.debug(__name__ + ' : Initializing instrument') super().__init__(name, address, **kwargs) self.add_parameter('frequency', @@ -29,7 +31,7 @@ def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kw vals=vals.Numbers(10e6, 40e9), docstring='Microwave frequency, ....', get_parser=float, - units='Hz') + unit='Hz') self.add_parameter('freqmode', label='Frequency mode', @@ -45,7 +47,7 @@ def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kw set_cmd='SOUR:POW {}', vals=vals.Numbers(-20, 20), get_parser=float, - units='dBm', + unit='dBm', docstring='Microwave power, ....') self.add_parameter('rfstatus', @@ -101,12 +103,12 @@ def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kw docstring='Pulse source, ....') def reset(self): - logging.debug(__name__ + ' : Resetting instrument') + log.debug(__name__ + ' : Resetting instrument') self.write('*RST') self.print_all() def print_all(self): - logging.debug(__name__ + ' : reading all settings from instrument') + log.debug(__name__ + ' : reading all settings from instrument') print(self.rfstatus.label + ':', self.rfstatus.get()) print(self.power.label + ':', self.power.get(), self.power.units) print(self.frequency.label + From c43ef45e2953d56f5196498bd86790915dd2c657 Mon Sep 17 00:00:00 2001 From: Bruno Date: Tue, 21 Mar 2017 09:52:52 +0100 Subject: [PATCH 09/10] change units to unit in print methods --- qcodes/instrument_drivers/HP/HP_83650A.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qcodes/instrument_drivers/HP/HP_83650A.py b/qcodes/instrument_drivers/HP/HP_83650A.py index 1848a0d5d6ea..c563a4f97bb8 100644 --- a/qcodes/instrument_drivers/HP/HP_83650A.py +++ b/qcodes/instrument_drivers/HP/HP_83650A.py @@ -110,9 +110,9 @@ def reset(self): def print_all(self): log.debug(__name__ + ' : reading all settings from instrument') print(self.rfstatus.label + ':', self.rfstatus.get()) - print(self.power.label + ':', self.power.get(), self.power.units) + print(self.power.label + ':', self.power.get(), self.power.unit) print(self.frequency.label + - ': %e' % self.frequency.get(), self.frequency.units) + ': %e' % self.frequency.get(), self.frequency.unit) print(self.freqmode.label + ':', self.freqmode.get()) self.print_modstatus() From c43bd190879df4cca56cc4caaf6f140381ddc599 Mon Sep 17 00:00:00 2001 From: Bruno Date: Tue, 21 Mar 2017 11:30:07 +0100 Subject: [PATCH 10/10] remove __name__ from debug --- qcodes/instrument_drivers/HP/HP_83650A.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qcodes/instrument_drivers/HP/HP_83650A.py b/qcodes/instrument_drivers/HP/HP_83650A.py index c563a4f97bb8..8400aba6fca2 100644 --- a/qcodes/instrument_drivers/HP/HP_83650A.py +++ b/qcodes/instrument_drivers/HP/HP_83650A.py @@ -21,7 +21,7 @@ def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kw """ self.verbose = verbose - log.debug(__name__ + ' : Initializing instrument') + log.debug('Initializing instrument') super().__init__(name, address, **kwargs) self.add_parameter('frequency', @@ -103,12 +103,12 @@ def __init__(self, name, address, verbose=1, reset=False, server_name=None, **kw docstring='Pulse source, ....') def reset(self): - log.debug(__name__ + ' : Resetting instrument') + log.debug('Resetting instrument') self.write('*RST') self.print_all() def print_all(self): - log.debug(__name__ + ' : reading all settings from instrument') + log.debug('Reading all settings from instrument') print(self.rfstatus.label + ':', self.rfstatus.get()) print(self.power.label + ':', self.power.get(), self.power.unit) print(self.frequency.label +