354 Keysight Signal Generators Programming Guide
Creating and Downloading User–Data Files 
Pattern RAM (PRAM) Data Downloads (E4438C and E8267D) 
Line Code—Download PRAM File Data
1
2
3
4
5
6
7
8
9
int bytesToSend;
bytesToSend = numbytes;
char s[4];
char cmd[200];
sprintf(s, "%d", bytesToSend);
sprintf(cmd, ":MEM:DATA:PRAM:FILE:BLOCk \"FILE1\", #%d%d", strlen(s),bytesToSend);
iwrite(id, cmd, strlen(cmd), 0, 0);
iwrite(id, databuffer, bytesToSend, 0, 0);
iwrite(id, "\n", 1, 1, 0);
Line Code Description—Download PRAM File Data
1 Define an integer variable (bytesToSend) to store the number of bytes to send to the signal 
generator.
2 Store the total number of PRAM bytes in the integer variable defined in line 1. numbytes 
contains the length of the databuffer array referenced in line 8.
3 Create a string large enough to hold the bytesToSend value as characters plus a null character 
value. In this code, string s is set to 4 bytes (3 characters for the bytesToSend value and one 
null character—one character equals one byte).
4 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).
5 Store the value of bytesToSend in string s. For this example, bytesToSend = 240; s = ”240”
6 Store the SCPI command syntax and parameters in the string cmd. The SCPI command prepares 
the signal generator to accept the data.
• sprintf()  is a standard function in C++, which writes string data to a string variable.
• strlen() is a standard function in C++, which returns length of a string.
• bytesToSend = 240, then s = “240” plus the null character, strlen(s) = 4, so 
cmd = :MEM:DATA:PRAM:FILE:BLOCk ”FILE1\” #3240.
7 Send the SCPI command stored in the string cmd to the signal generator contained in the 
variable  id.
• iwrite()  is a SICL function in Keysight IO library, which writes the data (block data) 
specified in the string cmd to the signal generator.
• 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 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 PRAM file data.