from qolab.hardware.scpi import SCPIinstr from qolab.hardware.basic import BasicInstrument class Lockin(BasicInstrument): def __init__(self, *args, **kwds): BasicInstrument.__init__(self, *args, **kwds) self.config["Device type"] = "Lockin" self.config["FnamePrefix"] = "lockin" self.config["Device model"] = "Generic Lockin Without Hardware interface" self.config["FnamePrefix"] = "lockin" self.deviceProperties.update( { "FreqInt", "FreqExt", "Harm", "SinAmpl", "SinOffset", "RefPhase", "Sensitivity", "TimeConstan", "FilterSlope", "EquivalentNoiseBW", } ) # Minimal set of methods to be implemented. pass class LockinSCPI(SCPIinstr, Lockin): """ Do not instantiate directly, use rm = pyvisa.ResourceManager() LockinSCPI(rm.open_resource('TCPIP::192.168.0.2::INSTR')) """ pass def __init__(self, resource, *args, **kwds): SCPIinstr.__init__(self, resource) Lockin.__init__(self, *args, **kwds) self.config["DeviceId"] = str.strip(self.idn)