from qolab.hardware.basic import BasicInstrument from qolab.hardware.lockin import LockinSCPI class SRS_SR865A(LockinSCPI): """ SRS SR865A lockin """ def __init__(self, resource, *args, **kwds): super().__init__(resource, *args, **kwds) self.config['Device model']='SRS SR865A' self.resource.read_termination='\n' self.deviceProperties.extend(['TimeBaseMode']) @BasicInstrument.tsdb_append def getFreqInt(self): qstr = f'FreqInt?' rstr = self.query(qstr) return(float(rstr)) @BasicInstrument.tsdb_append def setFreqInt(self, freq): cstr = f'FreqInt {freq}' rstr = self.write(cstr) # this one has only getter @BasicInstrument.tsdb_append def getFreqExt(self): qstr = f'FreqExt?' rstr = self.query(qstr) return(float(rstr)) @BasicInstrument.tsdb_append def getHarm(self): qstr = f'Harm?' rstr = self.query(qstr) return(int(rstr)) @BasicInstrument.tsdb_append def setHarm(self, harm): cstr = f'Harm {harm}' rstr = self.write(cstr) @BasicInstrument.tsdb_append def getSinAmpl(self): qstr = f'SLVL?' rstr = self.query(qstr) return(float(rstr)) @BasicInstrument.tsdb_append def setSinAmpl(self, ampl): cstr = f'SLVL {ampl}' rstr = self.write(cstr) @BasicInstrument.tsdb_append def getSinOffset(self): qstr = f'SOFF?' rstr = self.query(qstr) return(float(rstr)) @BasicInstrument.tsdb_append def setSinOffset(self, offset): cstr = f'SOFF {offset}' rstr = self.write(cstr) @BasicInstrument.tsdb_append def getSensetivity(self): return(int(self.query(f'SCAL?'))) @BasicInstrument.tsdb_append def setSensetivity(self, val): rstr = self.write(f'SCAL {val}') @BasicInstrument.tsdb_append def getTimeConstan(self): return(int(self.query(f'OFLT?'))) @BasicInstrument.tsdb_append def setTimeConstan(self, val): rstr = self.write(f'OFLT {val}') @BasicInstrument.tsdb_append def getFilterSlope(self): return(int(self.query(f'OFSL?'))) @BasicInstrument.tsdb_append def setFilterSlope(self, val): rstr = self.write(f'OFSL {val}') # this one has only getter @BasicInstrument.tsdb_append def getEquivalentFileterBW(self): return(float(self.query(f'ENBW?'))) @BasicInstrument.tsdb_append def getTimeBaseMode(self): return(int(self.query(f'TBMODE?'))) @BasicInstrument.tsdb_append def setTimeBaseMode(self, val): rstr = self.write(f'TBMODE {val}') @BasicInstrument.tsdb_append def getRefPhase(self): return(float(self.query(f'PHAS?'))) @BasicInstrument.tsdb_append def setRefPhase(self, val): rstr = self.write(f'PHAS {val}') if __name__ == '__main__': import pyvisa print("testing") rm = pyvisa.ResourceManager() print(rm.list_resources()) instr=rm.open_resource('TCPIP::192.168.0.51::INSTR') lockin = SRS_SR865A(instr) print('------ Header start -------------') print(str.join('\n', lockin.getHeader())) print('------ Header ends -------------')