1342
Keysight InfiniiVision M9241/42/43A PXIe Oscilloscopes SCPI Programmer's Guide
37
Status Reporting
# Method 3: Determine if armed using :OPER? query.
# ----------------------------------------------------------------
# Define bit masks for the Operation Status Event Register
ARM_BIT = 5
# 1 leftshift 5 = 32 (bit 5 in the Operation Status Event
# Register)
ARM_MASK = 1 << ARM_BIT
# Define armed criteria.
ARMED = 1 << ARM_BIT
# 1 leftshift 5 = 32
# Test for armed.
STATUS_REGISTER = int(KsInfiniiVisionX.query(":OPER?"))
ARMED_STATUS = STATUS_REGISTER & ARM_MASK
# Wait indefinitely until armed.
while ARMED_STATUS != ARMED:
# Check the status again after small delay.
time.sleep(0.1)
# 100 ms delay to prevent excessive queries.
STATUS_REGISTER = int(KsInfiniiVisionX.query(":OPER?"))
ARMED_STATUS = STATUS_REGISTER & ARM_MASK
print "Oscilloscope is armed (method 3, using :OPER? query)!"
print "It took " + str(time.clock() - now) +\
" seconds to arm.\n"
# ====================================================================
# Main
# ====================================================================
# Connect and initialize oscilloscope
# --------------------------------------------------------------------
# Define VISA Resource Manager & Install directory
rm = visa.ResourceManager('C:\\Windows\\System32\\agvisa32.dll')
# Define and open the oscilloscope using the VISA address
KsInfiniiVisionX = rm.open_resource(VISA_ADDRESS)
# Set the Global Timeout
KsInfiniiVisionX.timeout = GLOBAL_TOUT
# Clear the instrument bus
KsInfiniiVisionX.clear()
# Reset the oscilloscope.
KsInfiniiVisionX.write("*RST")
# Autoscale to set up vertical scale and trigger level on Probe Comp.
KsInfiniiVisionX.write(":CHANnel1:DISPlay OFF")
KsInfiniiVisionX.write(":CHANnel2:DISPlay ON")
KsInfiniiVisionX.write(":AUToscale:CHANnels DISPlayed")
KsInfiniiVisionX.write(":AUToscale")
# Ensure a "long" time to arm (5 seconds) and not trigger immediately.
# --------------------------------------------------------------------