""" Provide basic class to operate scope Created by Eugeniy E. Mikhailov 2021/11/29 """ from qolab.hardware.scpi import SCPIinstr class Scope: # Minimal set of methods to be implemented by a scope. def __init__(self): self.numberOfChannels = 0 def getTrace(self, chNum, availableNpnts=None, maxRequiredPoints=None): # Should work with minimal arguments list # but might be faster if parameters provided: less IO requests warnings.warn( 'this function is not implemented' ) def getAllTraces(self, availableNpnts=None, maxRequiredPoints=None): allTraces={} for chNum in range(1, self.numberOfChannels+1): allTraces[chNum] = self.getTrace(chNum, availableNpnts, maxRequiredPoints) return( allTraces ) class ScopeSCPI(SCPIinstr, Scope): """ Do not instantiate directly, use rm = pyvisa.ResourceManager() ScopeSCPI(rm.open_resource('TCPIP::192.168.0.2::INSTR')) """ pass def __init__(self, resource): SCPIinstr.__init__(self, resource) Scope.__init__(self) from .sds1104x import SDS1104X