""" Provide basic class to operate scope Created by Eugeniy E. Mikhailov 2021/11/29 """ from qolab.hardware.scpi import SCPIinstr from qolab.data.trace import TraceSetSameX 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=TraceSetSameX('scope traces') for chNum in range(1, self.numberOfChannels+1): allTraces.addTrace( 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