:DISK:FILE:ASCii:READ?

Instrument:
DCA-X
DCA-M
Meas. mode:
Scope
Eye
Jitter
TDR
Flex Apps:
FlexDCA
FlexRT

Query Syntax

:DISK:FILE:ASCii:READ? "filename"

Description

Returns the requested text file. The file must be smaller than 256,000 characters. If the file does not contain text, the return string will be terminated at the first zero (0) values byte in the file. To return a binary file, use the :DISK:FILE:READ? command. To return the size of a file that is on the DCA-X, use the :DISK:FILE:SIZE? query.

Requires FlexDCA revision A.05.30 and above.

Example 1

This program demonstrates transferring ASCII data from a file on the 86100D to the PC. The query takes the filename of the ASCII source file as the argument. The PyVisa query() method is used to return the data. The program then places the data in a new ASCii file in the PC's C:\Temp folder. The program transfers the file's data and not the file. The program uses the same filename for the saved file on the PC, but any filename could have been used. To confirm that the data has been correctly transfered, simply open the file in a text editor.

Python strings use a newline character '\n' to indicate the end of a line and the newline character is automatically translated to '\r\n' when written to a text file. Since the returned data includes '\r\n' at the end of every line, these characters become '\r\r\n' in the saved file. To avoid this the program replaces every instance of '\r\n' with '\n'.

Before running this program, you must:

  1. Edit the hislip address the FlexDCA.open_resource() command to be that of your 86100D.
  2. The PC folder “C:\Temp” must exist.
  3. Keysight's free I/O libraries that includes VISA and Keysight's Connection Expert application must be installed.
  4. PyVISA which is a Python front end for the VISA library must be installed.
import visa # import VISA library

def return_text_file(FlexDCA):
    print('Getting an ASCII mask file from 86100D.', flush=True)
    path = 'C:\\Program Files\\Keysight\\FlexDCA\\Demo\\Masks\\OIF\\'
    mask = '006.3750 - OIF_CEI-6G-LR.mskx'
    filename = path + mask
    try:
        data = FlexDCA.query(':DISK:FILE:ASCii:READ? "' + filename + '"')
    except:
        error = FlexDCA.query(':SYSTem:ERRor:NEXT?')
        if error[0] != '0': # Error occurred
            print('Error occurred during file read:')
            print(' ERROR: ' + error)
        return
    data = data.replace('\r\n', '\n') # use Python's line termination character
    filename = 'C:\\Temp\\' + mask
    fout = open(filename, 'wt')
    fout.write(data)
    fout.close()
    print(filename, ' is saved.')

rm = visa.ResourceManager() # Create an instance of PyVISA's ResourceManager
FlexDCA=rm.open_resource('TCPIP0::K-86100D-20108::hislip0,4880::INSTR')
FlexDCA.timeout = 5000 # Set connection timeout to 5s
s = FlexDCA.query('*IDN?')
print('\nConnection established to:\n\t' + s) # Identify FlexDCA
return_text_file(FlexDCA)
FlexDCA.write(':SYSTem:GTLocal')
FlexDCA.close()
print('Connection closed.')

Example 2

This Python script (with PyVISA) tests if a specific limit-line file exists and prints the files contents on the console window. Click here to learn about controlling FlexDCA using Python.

# -*- coding: utf-8 -*-
"""
Checks is file exists and returns its size in bytes.
"""
import visa

rm = visa.ResourceManager()
FlexDCA = rm.open_resource("TCPIP0::localhost::hislip0::INSTR")

#Set Timeout - 10 seconds
FlexDCA.timeout =  10000
FlexDCA.read_termination = '\n'

filePath = '"%USER_DATA_DIR%\\Limit Lines\\TDR Filter S21.lltx"'
if FlexDCA.query(':DISK:FILE:EXISts? ' + filePath) == '1':
    print('File exists!')
    contents = FlexDCA.query(':DISK:FILE:ASCii:READ? ' + filePath)
    print('File contents:\n\n', contents)
else:
    print('File not found.')
FlexDCA.write(':SYSTem:GTLocal')
FlexDCA.close()