""" provide basic class to operate Lock-in """ import pyvisa class SCPIinstr: """ Basic class which support SCPI commands """ """ Do not instantiate directly, use rm = pyvisa.ResourceManager() SCPIinstr(rm.open_resource('TCPIP::192.168.0.2::INSTR')) """ def __init__(self, resource): print(resource) self.resource = resource # convenience pyvisa functions self.write = self.resource.write self.read = self.resource.read self.query = self.resource.query #self.query_values = self.resource.query_values @property def idn(self): return self.query("*IDN?") def clear_status(self): self.write("*CLS") def set_event_status_enable(self): self.write("*ESE") def query_event_status_enable(self): self.query("*ESE?") def query_event_status_register(self): self.query("*ESR?") def set_wait_until_finished(self): self.query("*OPC") def wait_until_finished(self): self.query("*OPC?") def reset(self): self.write("*RST") def set_service_request_enable(self): self.write("*SRE") def query_service_request_enable(self): self.query("*SRE?") def query_status_byte(self): self.query("*STB?") def self_test_result(self): self.query("*TST?") def wait(self): self.write("*WAI") class LockIn(SCPIinstr): """ Do not instantiate directly, use rm = pyvisa.ResourceManager() LockIn(rm.open_resource('TCPIP::192.168.0.2::INSTR')) """ def __init__(self, resource): super().__init__(resource) self.resource.read_termination='\n' if __name__ == '__main__': print("testing") rm = pyvisa.ResourceManager() print(rm.list_resources()) instr=rm.open_resource('TCPIP::192.168.0.51::INSTR') lckn = LockIn(instr) # lckn = LockIn(rm, 'TCPIP::192.168.0.51::INSTR') print(lckn.query('*idn?')) print(lckn.idn)