Image Saves with Autonumbers

Example Script

Copy

image-save-autonumbers.py

# -*- coding: utf-8 -*-
""" Installs simulated module in slot 1 of FlexDCA or FlexPLL. Saves 4 screen
images using a custom filename with autonumber. Then saves 4 screen images
using standard filename. """

import pyvisa as visa  # import VISA library

ADDRESS = 'TCPIP0::localhost::hislip0,4880::INSTR'  # for FlexDCA


def open_flexdca_connection(address):
    """ Opens visa connection to FlexFlexDCA. """
    print('Connecting to Flexdca ...')
    try:
        rm = visa.ResourceManager()
        connection = rm.open_resource(address)
        connection.timeout = 20000  # Set connection timeout to 20s
        connection.read_termination = '\n'
        connection.write_termination = '\n'
        inst_id = connection.query('*IDN?')
        print('\nFlexDCA connection established to:\n' + inst_id, flush=True)
    except (visa.VisaIOError, visa.InvalidSession):
        print('\nVISA ERROR: Cannot open instrument address.\n', flush=True)
        return None
    except Exception as other:
        print('\nVISA ERROR: Cannot connect to instrument:', other, flush=True)
        print('\n')
        return None
    return connection


def install_simulated_module(FlexDCA):
    """ Install simulated module """
    FlexDCA.query(':SYSTem:DEFault;*OPC?')
    FlexDCA.write(':SYSTem:MODE EYE')
    FlexDCA.write(':EMODules:SLOT1:SELection QEMini')
    FlexDCA.write(':CHAN1A:DISPlay ON')
    FlexDCA.query(':SYSTem:AUToscale;*OPC?')


def demo_custom_name_with_autonumber(FlexDCA):
    """ Save image file. Custom name and autonumber starting at 100 """
    print('\nFour custom filenames with autonumbers.')
    filename = '%USER_DATA_DIR%\Screen Images\DUT_1'
    FlexDCA.write(':DISK:SIMage:FNAME "' + filename + '.png"')
    for i in range(1, 5):
        FlexDCA.query(':DISK:SIMage:SAVE;*OPC?')
        print('Saved: ' + FlexDCA.query(':DISK:SIMage:FNAME?'))
        FlexDCA.write(':DISK:SIMage:FNAMe:AUPDate')


def demo_standard_name(FlexDCA):
    """ Save four images file using standard name """
    print('\nFour standard filenames with autonumbers.')
    FlexDCA.write(':DISK:SIMage:FNAMe:USTandard')
    for i in range(1, 5):
        FlexDCA.query(':DISK:SIMage:SAVE;*OPC?')
        print('Saved: ' + FlexDCA.query(':DISK:SIMage:FNAME?'))
        FlexDCA.write(':DISK:SIMage:FNAMe:AUPDate')


FlexDCA = open_flexdca_connection(ADDRESS)
install_simulated_module(FlexDCA)
demo_custom_name_with_autonumber(FlexDCA)
demo_standard_name(FlexDCA)
FlexDCA.write(':SYSTem:GTLocal')
FlexDCA.close()