Chapter 2 73
Programming Examples
LAN Programming Examples
// Read the power level
status = viRead(instr, (ViBuf)buffer, MAX_COUNT, &retCount);
buffer[retCount]= '\0'; // Indicate the end of the string
printf("Power level = "); // Print header to the screen
printf(buffer); // Print the queried power level
printf("\n");
status = viClose(instr); // Close down the system
status = viClose(defaultRM);
return 0;
}
Sockets LAN Programming using C
The program listing shown in “Setting Parameters and Sending Queries Using Sockets and C” on page 75
consists of two files; lanio.c and getopt.c. The lanio.c file has two main functions; int main() and an int
main1().
The int main() function allows communication with the signal generator interactively from the command
line. The program reads the signal generator's hostname from the command line, followed by the SCPI
command. It then opens a socket to the signal generator, using port 7777, and sends the command. If the
command appears to be a query, the program queries the signal generator for a response, and prints the
response.
The int main1(), after renaming to int main(), will output a sequence of commands to the signal generator.
You can use the format as a template and then add your own code.
This program is available on the PSG Documentation CD-ROM as lanio.c
Sockets on UNIX
In UNIX, LAN communication via sockets is very similar to reading or writing a file. The only difference is
the openSocket() routine, which uses a few network library routines to create the TCP/IP network
connection. Once this connection is created, the standard fread() and fwrite() routines are used for network
communication. The following steps outline the process:
1. Copy the lanio.c and getopt.c files to your home UNIX directory. For example, /users/mydir/.
2. At the UNIX prompt in your home directory type: cc -Aa -O -o lanio lanio.c
3. At the UNIX prompt in your home directory type: ./lanio xxxxx “*IDN?” where xxxxx is the
hostname for the signal generator. Use this same format to output SCPI commands to the signal
generator.