aboutsummaryrefslogtreecommitdiff
path: root/qolab/hardware/power_supply/keysight_e3612a.py
diff options
context:
space:
mode:
Diffstat (limited to 'qolab/hardware/power_supply/keysight_e3612a.py')
-rw-r--r--qolab/hardware/power_supply/keysight_e3612a.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/qolab/hardware/power_supply/keysight_e3612a.py b/qolab/hardware/power_supply/keysight_e3612a.py
new file mode 100644
index 0000000..5c5bab0
--- /dev/null
+++ b/qolab/hardware/power_supply/keysight_e3612a.py
@@ -0,0 +1,51 @@
+from qolab.hardware.basic import BasicInstrument
+from qolab.hardware.power_supply import PowerSupplySCPI
+import re
+import numpy as np
+
+class KeysightE3612A(PowerSupplySCPI):
+ """ Keysight E3612A power supply """
+ def __init__(self, resource, *args, **kwds):
+ super().__init__(resource, *args, **kwds)
+ # self.resource.read_termination='\n'
+ self.config['Device model'] = 'Keysight E3612A'
+ self.numberOfChannels = 1
+ # self.channelProperties = {'Vlimit', 'Ilimit', 'Vout', 'Iout' }
+ self.channelProperties = {'Vout', }
+
+ def chanOn(self, chNum):
+ self.write(f'OUTP ON,(@{chNum})')
+
+ def chanOff(self, chNum):
+ self.write(f'OUTP OFF,(@{chNum})')
+
+ @BasicInstrument.tsdb_append
+ def getChanState(self, chNum):
+ qstr = f'OUTP? (@{chNum})'
+ rstr = self.query(qstr)
+ return( bool(float(rstr)) )
+
+ @BasicInstrument.tsdb_append
+ def getChanVout(self, chNum):
+ qstr = f'MEAS:VOLT? (@{chNum})'
+ rstr = self.query(qstr)
+ return( float(rstr) )
+
+ @BasicInstrument.tsdb_append
+ def getChanIout(self, chNum):
+ qstr = f'MEAS:CURR? (@{chNum})'
+ rstr = self.query(qstr)
+ return( float(rstr) )
+
+
+if __name__ == '__main__':
+ import pyvisa
+ print("testing")
+ rm = pyvisa.ResourceManager()
+ print(rm.list_resources())
+ instr=rm.open_resource('USB0::10893::4354::MY61001869::0::INSTR')
+ ps = KeysightE3612A(instr)
+ print('------ Header start -------------')
+ print(str.join('\n', ps.getHeader()))
+ print('------ Header ends -------------')
+