PicoScope 7 Software
Available on Windows, Mac and Linux
Code: Select all
sourceDetails = PS2000A_TRIGGER_CHANNEL_PROPERTIES(
trigger_Voltage_adc_incs, # thresholdUpper
256*10, # thresholdUpperHysteresis
trigger_Voltage_adc_incs, # thresholdLower
256*10, # thresholdLowerHysteresis
pico.PS2000A_CHANNEL['PS2000A_CHANNEL_A'], # channel
pico.PS2000A_THRESHOLD_MODE['PS2000A_LEVEL']) # mode
res1 = pico.ps2000aSetTriggerChannelProperties( self.hnd,
ctypes.byref(sourceDetails),
1,
0,
0)
conditions = PS2000A_TRIGGER_CONDITIONS(
pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_TRUE'], # Channel A
pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE'], # Channel B
pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE'], # Channel C
pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE'], # Channel D
pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE'], # external
pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE'], # aux
pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_TRUE'], # PWQ
pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']) # digital
res2 = pico.ps2000aSetTriggerChannelConditions( self.hnd, ctypes.byref(conditions), 1)
res3 = pico.ps2000aSetTriggerChannelDirections(self.hnd,
pico.PS2000A_THRESHOLD_DIRECTION['PS2000A_FALLING_LOWER'], # Channel A
pico.PS2000A_THRESHOLD_DIRECTION['PS2000A_NONE'], # Channel B
pico.PS2000A_THRESHOLD_DIRECTION['PS2000A_NONE'], # Channel C
pico.PS2000A_THRESHOLD_DIRECTION['PS2000A_NONE'], # Channel D
pico.PS2000A_THRESHOLD_DIRECTION['PS2000A_NONE'], # ext
pico.PS2000A_THRESHOLD_DIRECTION['PS2000A_NONE']) # aux
pwq_conds = PS2000A_PWQ_CONDITIONS(
pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_TRUE'], # Channel A
pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE'], # Channel B
pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE'], # Channel C
pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE'], # Channel D
pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE'], # ext
pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE'], # aux
pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE'] ) # digital
ret4 = pico.ps2000aSetPulseWidthQualifier( self.hnd, # handle
ctypes.byref(pwq_conds), # conditions
1, # nConditions
pico.PS2000A_THRESHOLD_DIRECTION['PS2000A_FALLING'], # dir
pulseduration_min_samples, # lower
pulseduration_max_samples, # upper
4 ) # type (PS2000A_PW_TYPE_OUT_OF_RANGE)
Code: Select all
sourceDetails = (PS2000A_TRIGGER_CHANNEL_PROPERTIES * 2)()
sourceDetails[0].thresholdUpper = trigVoltage
sourceDetails[0].thresholdUpperHysteresis = 256*0
sourceDetails[0].thresholdLower = trigVoltage
sourceDetails[0].thresholdLowerHysteresis = 256*0
sourceDetails[0].channel = i
sourceDetails[0].thresholdMode = pico.PS2000A_THRESHOLD_MODE['PS2000A_LEVEL']
sourceDetails[1].thresholdUpper = trigVoltage
sourceDetails[1].thresholdUpperHysteresis = 256*0
sourceDetails[1].thresholdLower = trigVoltage
sourceDetails[1].thresholdLowerHysteresis = 256*0
sourceDetails[1].channel = i
sourceDetails[1].thresholdMode = pico.PS2000A_THRESHOLD_MODE['PS2000A_LEVEL']
res1 = pico.ps2000aSetTriggerChannelProperties(self.hnd, # handle
ctypes.byref(sourceDetails), # channelProperties
2, # nChannelProperties
0, # auxOutputEnable
0) # autoTriggerMilliseconds
trig_conds = (PS2000A_TRIGGER_CONDITIONS * 2)()
trig_conds[0].channelA = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_TRUE']
trig_conds[0].channelB = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
trig_conds[0].channelC = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
trig_conds[0].channelD = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
trig_conds[0].external = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
trig_conds[0].aux = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
trig_conds[0].pulseWidthQualifier = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_TRUE']
trig_conds[0].digital = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
trig_conds[1].channelA = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
trig_conds[1].channelB = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_TRUE']
trig_conds[1].channelC = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
trig_conds[1].channelD = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
trig_conds[1].external = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
trig_conds[1].aux = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
trig_conds[1].pulseWidthQualifier = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_TRUE']
trig_conds[1].digital = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
res2 = pico.ps2000aSetTriggerChannelConditions( self.hnd, ctypes.byref(trig_conds), 2)
res3 = pico.ps2000aSetTriggerChannelDirections(
self.hnd,
pico.PS2000A_THRESHOLD_DIRECTION['PS2000A_FALLING_LOWER'], # Channel A
pico.PS2000A_THRESHOLD_DIRECTION['PS2000A_FALLING_LOWER'], # Channel B
pico.PS2000A_THRESHOLD_DIRECTION['PS2000A_NONE'], # Channel C
pico.PS2000A_THRESHOLD_DIRECTION['PS2000A_NONE'], # Channel D
pico.PS2000A_THRESHOLD_DIRECTION['PS2000A_NONE'], # ext
pico.PS2000A_THRESHOLD_DIRECTION['PS2000A_NONE']) # aux
pwq_conds = (PS2000A_PWQ_CONDITIONS * 2)()
pwq_conds[0].channelA = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_TRUE']
pwq_conds[0].channelB = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
pwq_conds[0].channelC = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
pwq_conds[0].channelD = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
pwq_conds[0].external = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
pwq_conds[0].aux = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
pwq_conds[0].digital = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
pwq_conds[1].channelA = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
pwq_conds[1].channelB = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_TRUE']
pwq_conds[1].channelC = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
pwq_conds[1].channelD = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
pwq_conds[1].external = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
pwq_conds[1].aux = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
pwq_conds[1].digital = pico.PS2000A_TRIGGER_STATE['PS2000A_CONDITION_DONT_CARE']
ret4 = pico.ps2000aSetPulseWidthQualifier( self.hnd, # handle
ctypes.byref(pwq_conds), # conditions
2, # nConditions
pico.PS2000A_THRESHOLD_DIRECTION['PS2000A_FALLING'], # dir
, # lower
, # upper
4 () ) # type