aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qolab/hardware/multimeter/hp_34401.py58
1 files changed, 40 insertions, 18 deletions
diff --git a/qolab/hardware/multimeter/hp_34401.py b/qolab/hardware/multimeter/hp_34401.py
index 2d9abdd..ef9c647 100644
--- a/qolab/hardware/multimeter/hp_34401.py
+++ b/qolab/hardware/multimeter/hp_34401.py
@@ -1,28 +1,34 @@
from qolab.hardware.basic import BasicInstrument
from qolab.hardware.multimeter import MultimeterSCPI
-from qolab.hardware.scpi import SCPI_PROPERTY
+from qolab.hardware.scpi import SCPI_PROPERTY
from pyvisa import constants as pyvisa_constants
import time
+
class HP_34401(MultimeterSCPI):
- """ HP 34401 multimeter (same as Agilent) """
+ """HP 34401 multimeter (same as Agilent)"""
+
"""
rm = pyvisa.ResourceManager()
instr=rm.open_resource('ASRL/dev/ttyUSB0::INSTR')
"""
+
def __init__(self, resource, *args, **kwds):
super().__init__(resource, *args, **kwds)
- self.config['Device model']='HP 34401'
- self.resource.read_termination = '\r\n'
+ self.config["Device model"] = "HP 34401"
+ self.resource.read_termination = "\r\n"
self.resource.baud_rate = 9600
self.resource.data_bits = 8
self.resource.parity = pyvisa_constants.Parity.none
self.resource.stop_bits = pyvisa_constants.StopBits.one
self.resource.timeout = 5000
- self.switchTime = 0.5 # switch time in seconds for Function/Measurement change
- self.deviceProperties.update({'Function'})
+ self.switchTime = 0.5 # switch time in seconds for Function/Measurement change
+ self.deviceProperties.update({"Function"})
- rawFunction = SCPI_PROPERTY(scpi_prfx='SENSe:FUNCtion', ptype=str, doc="""
+ rawFunction = SCPI_PROPERTY(
+ scpi_prfx="SENSe:FUNCtion",
+ ptype=str,
+ doc="""
Current measurement function (Voltmeter DC/AC, Currentmeter DC/AC, etc.
Important! When assigning, string should be quoted, i.e. use:
Function=\'"VOLT:DC"\'
@@ -39,8 +45,8 @@ class HP_34401(MultimeterSCPI):
"PERiod"
"CONTinuity"
"DIODe"
- """
- )
+ """,
+ )
def getFunction(self):
rfunc = self.rawFunction
@@ -76,20 +82,27 @@ class HP_34401(MultimeterSCPI):
def isSensing(self, test):
return test == self.rawFunction
- Reading = SCPI_PROPERTY(scpi_prfx='SYSTem:REMote; :READ', ptype=float, doc='Report current measurement', no_setter=True)
+ Reading = SCPI_PROPERTY(
+ scpi_prfx="SYSTem:REMote; :READ",
+ ptype=float,
+ doc="Report current measurement",
+ no_setter=True,
+ )
# HP 34401 is tricky
# when reading over serial interface the value of measurement/function,
# the device need to be switched to REMOTE mode, but this leaves screen blank and unusable
# so we have to do the dance with toRemote and toLocal
- def getReadingWithSettingFunction(self, desired_function_string, function_internal_name):
+ def getReadingWithSettingFunction(
+ self, desired_function_string, function_internal_name
+ ):
"""
Get the reading but first check if we are set to do specific function/measurement.
If the instrument set to do different function, set to desired one
Note: the function name should be in quotes, i.e. '"Volt"'
"""
if not self.isSensing(function_internal_name):
- self.rawFunction=desired_function_string
+ self.rawFunction = desired_function_string
time.sleep(self.switchTime)
# self.toRemote() # this is done inside of Reading
ret = self.Reading
@@ -99,39 +112,48 @@ class HP_34401(MultimeterSCPI):
@BasicInstrument.tsdb_append
def getVdc(self):
return self.getReadingWithSettingFunction('"VOLTage:DC"', '"VOLT"')
+
@BasicInstrument.tsdb_append
def getVac(self):
return self.getReadingWithSettingFunction('"VOLTage:AC"', '"VOLT:AC"')
+
@BasicInstrument.tsdb_append
def getAdc(self):
return self.getReadingWithSettingFunction('"CURRent:DC"', '"CURR"')
+
@BasicInstrument.tsdb_append
def getAac(self):
return self.getReadingWithSettingFunction('"CURRent:AC"', '"CURR:AC"')
+
@BasicInstrument.tsdb_append
def getResistance(self):
return self.getReadingWithSettingFunction('"RESistance"', '"RES"')
+
@BasicInstrument.tsdb_append
def getResistance4Wires(self):
return self.getReadingWithSettingFunction('"FRESistance"', '"FRES"')
+
@BasicInstrument.tsdb_append
def getDiode(self):
return self.getReadingWithSettingFunction('"DIODe"', '"DIOD"')
+
@BasicInstrument.tsdb_append
def getFreq(self):
return self.getReadingWithSettingFunction('"FREQuency"', '"FREQ"')
+
@BasicInstrument.tsdb_append
def getPeriod(self):
return self.getReadingWithSettingFunction('"PERiod"', '"PER"')
-if __name__ == '__main__':
+if __name__ == "__main__":
import pyvisa
+
print("testing")
rm = pyvisa.ResourceManager()
- print(rm.list_resources())
- instr=rm.open_resource('ASRL/dev/ttyUSB0::INSTR')
+ print(rm.list_resources())
+ instr = rm.open_resource("ASRL/dev/ttyUSB0::INSTR")
multimeter = HP_34401(instr)
- print('------ Header start -------------')
- print(str.join('\n', multimeter.getHeader()))
- print('------ Header ends -------------')
+ print("------ Header start -------------")
+ print(str.join("\n", multimeter.getHeader()))
+ print("------ Header ends -------------")