PicoScope 7 Software
Available on Windows, Mac and Linux
Code: Select all
scope.__init__()
scope.openScope()
if scope.handle != 0:
print('Configuring scope...')
scope.setChannel()
scope.setTrigger()
scope.setDataBuffer()
scope.runStreamingMode()
else: print('Scope not found!')
Code: Select all
#Initialize
def __init__(self):
self.lib = windll.LoadLibrary(LIBNAME)
self.handle = None
self.serial = None
self.chRange = [ None, None ]
self.coupling = [ None, None ]
self.chEnabled = [ None, None ]
self.chName = [ None, None ]
self.timeInterval = None
#Open scope by serial number
def openScope(self):
handlePointer = c_short()
message = self.lib.ps4000OpenUnit(byref(handlePointer))
#serialNullTermStr = c_char_p( bytes(self.serial,'ascii') )
#message = self.lib.ps4000OpenUnitEx( byref(handlePointer), serialNullTermStr )
self.handle = handlePointer.value
print(self.handle)
if message != 0: print('Error openScope:', message)
#Setup channel
def setChannel( self ):
message = self.lib.ps4000SetChannel( self.handle, CHANNEL_A, self.chEnabled[CHANNEL_A], self.coupling[CHANNEL_A], self.chRange[CHANNEL_A] )
#print(self.handle)
if message != 0: print('Error setChannel A:', message)
else: print('Channel A set')
#Setup trigger
def setTrigger( self ):
message = self.lib.ps4000SetSimpleTrigger( self.handle, ENABLED, CHANNEL_A, THRESHOLD, DIR_RISING, DELAY, AUTOTRIGGER_MS )
#print(self.handle)
if message != 0: print('Error setTrigger:', message)
else: print('Trigger set')
#Set data buffer
def setDataBuffer( self ):
#Set channel from which to get data
dataPointerMax = ( c_short * NUMSAMPLES )()
message = self.lib.ps4000SetDataBuffer( self.handle, CHANNEL_A, byref(dataPointerMax), NUMSAMPLES )
if message != 0: print('Error setDataBuffer:', message)
#Start streaming
def runStreamingMode( self ):
sampleInterval = c_long()
message = self.lib.ps4000RunStreaming( self.handle, byref(sampleInterval), PS4000_US, 0, 1000, AUTOSTOP_FALSE, 1, NUMSAMPLES )
if message != 0: print('Error runStreamingMode:', message)