blob: 87af41983baf936cafebeaed4aa3ecbcc867a1a4 [file] [log] [blame]
from multiprocessing import Process
import LVPM
import sampleEngine
import Operations as op
import HVPM
import pmapi
def testHVPM(serialno=None,Protocol=pmapi.USB_protocol()):
HVMON = HVPM.Monsoon()
HVMON.setup_usb(serialno,Protocol)
print("HVPM Serial Number: " + repr(HVMON.getSerialNumber()))
HVMON.fillStatusPacket()
HVMON.setVout(3)
HVengine = sampleEngine.SampleEngine(HVMON)
HVengine.enableCSVOutput("HV Main Example.csv")
HVengine.ConsoleOutput(True)
numSamples=sampleEngine.triggers.SAMPLECOUNT_INFINITE #Don't stop based on sample count, continue until the trigger conditions have been satisfied.
HVengine.setStartTrigger(sampleEngine.triggers.GREATER_THAN,0) #Start when we exceed 0 s
HVengine.setStopTrigger(sampleEngine.triggers.GREATER_THAN,20) #Stop when we exceed 5 s.
HVengine.setTriggerChannel(sampleEngine.channels.timeStamp) #Start and stop judged by the timestamp channel.
HVengine.startSampling(numSamples)
HVMON.closeDevice();
def testLVPM(serialno=None,Protcol=pmapi.USB_protocol()):
Mon = LVPM.Monsoon()
Mon.setup_usb(serialno,Protcol)
print("LVPM Serial number: " + repr(Mon.getSerialNumber()))
Mon.fillStatusPacket()
Mon.setVout(4.5)
engine = sampleEngine.SampleEngine(Mon)
engine.enableCSVOutput("Main Example.csv")
engine.ConsoleOutput(True)
#test main channels
numSamples=sampleEngine.triggers.SAMPLECOUNT_INFINITE #Don't stop based on sample count, continue until the trigger conditions have been satisfied.
engine.setStartTrigger(sampleEngine.triggers.GREATER_THAN,0) #Start when we exceed 0 s
engine.setStopTrigger(sampleEngine.triggers.GREATER_THAN,5) #Stop when we exceed 5 s.
engine.setTriggerChannel(sampleEngine.channels.timeStamp) #Start and stop judged by the timestamp channel.
engine.startSampling(numSamples)
#Disable Main channels
engine.disableChannel(sampleEngine.channels.MainCurrent)
engine.disableChannel(sampleEngine.channels.MainVoltage)
engine.setStartTrigger(sampleEngine.triggers.GREATER_THAN,0)
engine.setStopTrigger(sampleEngine.triggers.GREATER_THAN,10)
engine.setTriggerChannel(sampleEngine.channels.timeStamp)
#Take measurements from the USB Channel
Mon.setVout(0)
#Set USB Passthrough mode to 'on,' since it defaults to 'auto' and will turn off when sampling mode begins.
Mon.setUSBPassthroughMode(op.USB_Passthrough.On)
#Enable USB channels
engine.enableChannel(sampleEngine.channels.USBCurrent)
engine.enableChannel(sampleEngine.channels.USBVoltage)
engine.enableCSVOutput("USB Test.csv")
engine.startSampling(5000)
#Enable every channel, take measurements
engine.enableChannel(sampleEngine.channels.MainVoltage)
engine.enableChannel(sampleEngine.channels.MainCurrent)
#Enable Aux channel
engine.enableChannel(sampleEngine.channels.AuxCurrent)
Mon.setVout(2.5)
engine.enableCSVOutput("All Test.csv")
engine.startSampling(5000)
#Enable every channel, take measurements, and retrieve them as a Python list.
engine.disableCSVOutput()
engine.startSampling(5000)
samples = engine.getSamples()
Mon.closeDevice();
def droppedSamplesTest(ser=None,Prot=pmapi.USB_protocol()):
Mon = HVPM.Monsoon()
Mon.setup_usb(ser,Prot)
Mon.setVout(4.0)
engine = sampleEngine.SampleEngine(Mon)
#engine.enableCSVOutput(repr(ser) + ".csv")
engine.ConsoleOutput(False)
# test main channels
engine.enableChannel(sampleEngine.channels.MainCurrent)
numSamples = 1000000 # Don't stop based on sample count, continue until the trigger conditions have been satisfied.
engine.setTriggerChannel(sampleEngine.channels.timeStamp) # Start and stop judged by the timestamp channel.
engine.startSampling(numSamples)
samps = engine.getSamples()
sampleCount = len(samps[0])
print(repr(ser) + ": SampleCount: " + repr(sampleCount) + " Percent dropped: " + repr((engine.dropped/sampleCount)*100))
def multiHVPMTest(serialnos):
for serial in serialnos:
p = Process(target=droppedSamplesTest,args=(serial,pmapi.CPP_Backend_Protocol()))
p.start()
serialnos = [11500, 20019, 20486, 20487]
multiHVPMTest(serialnos)
#testLVPM(60001,pmapi.USB_protocol())
#testHVPM(60000,pmapi.CPP_Backend_Protocol())
testHVPM()