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 = 3 # self.channelProperties = {'Vlimit', 'Ilimit', 'Vout', 'Iout' } self.channelProperties = {'State', 'Vout', 'Iout', } def setChanOn(self, chNum): self.write(f'OUTP ON,(@{chNum})') def setChanOff(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 -------------')