Agilent Technologies N5183A Portable Generator User Manual


 
Agilent N518xA, E8663B, E44x8C, and E82x7D Signal Generators Programming Guide 223
Creating and Downloading Waveform Files
Downloading Waveform Data
9 Calculate the total number of bytes, and store the value in the integer variable defined in line 8.
In this code, numsamples contains the number of waveform points, not the number of bytes. Because it takes
four bytes of data, two I bytes and two Q bytes, to create one waveform point, we have to multiply
numsamples by four. This is shown in the following example:
numsamples = 500 waveform points
numsamples × 4 = 2000 (four bytes per point)
bytesToSend = 2000 (numsamples × 4)
For information on setting the number of waveform points, see “1. Create I and Q data.” on page 213.
10 Create a string large enough to hold the bytesToSend value as characters. In this code, string s is set to 20
bytes (20 characters—one character equals one byte)
11 Create a string and set its length (cmd[200]) to hold the SCPI command syntax and parameters. In this code,
we define the string length as 200 bytes (200 characters).
12 Store the value of bytesToSend in string s. For example, if bytesToSend = 2000; s = ”2000”
sprintf() is a standard function in C++, which writes string data to a string variable.
13 Store the SCPI command syntax and parameters in the string cmd. The SCPI command prepares the signal
generator to accept the data.
strlen() is a standard function in C++, which returns length of a string.
If bytesToSend = 2000, then s = “2000”, strlen(s) = 4, so
cmd = :MEM:DATA ”WFM1:FILE1\” #42000.
14 Send the SCPI command stored in the string cmd to the signal generator, which is represented by the session
id.
iwrite() is a SICL function in Agilent IO library, which writes the data (block data) specified in the string
cmd to the signal generator (id).
The third argument of iwrite(), strlen(cmd), informs the signal generator of the number of bytes in the
command string. The signal generator parses the string to determine the number of I/Q data bytes it
expects to receive.
The fourth argument of iwrite(), 0, means there is no END of file indicator for the string. This lets the
session remain open, so the program can download the I/Q data.
Line Code Description—Download the I/Q data