74 lines
2.4 KiB
C
74 lines
2.4 KiB
C
/*********************************************************************/
|
|
/* This example demonstrates opening a simple TCPIP connection and */
|
|
/* does a read and checks a few properties. */
|
|
/* */
|
|
/* The general flow of the code is */
|
|
/* Open Resource Manager */
|
|
/* Open a session to the TCP/IP site at NI */
|
|
/* Perform a read, and check properties */
|
|
/* Close all VISA Sessions */
|
|
/*********************************************************************/
|
|
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
#include "visa.h"
|
|
|
|
static char outputBuffer[VI_FIND_BUFLEN];
|
|
static ViSession defaultRM, instr;
|
|
static ViStatus status;
|
|
static ViUInt32 count;
|
|
static ViUInt16 portNo;
|
|
|
|
int main(void)
|
|
{
|
|
/* First we will need to open the default resource manager. */
|
|
status = viOpenDefaultRM (&defaultRM);
|
|
if (status < VI_SUCCESS)
|
|
{
|
|
printf("Could not open a session to the VISA Resource Manager!\n");
|
|
exit (EXIT_FAILURE);
|
|
}
|
|
|
|
/* Now we will open a session via TCP/IP to ni.com */
|
|
status = viOpen (defaultRM, "TCPIP0::ftp.ni.com::21::SOCKET", VI_NULL, VI_NULL, &instr);
|
|
if (status < VI_SUCCESS)
|
|
{
|
|
printf ("An error occurred opening the session to TCPIP0::ftp.ni.com::21::SOCKET\n");
|
|
viClose(defaultRM);
|
|
exit (EXIT_FAILURE);
|
|
}
|
|
|
|
viSetAttribute (instr, VI_ATTR_TCPIP_NODELAY, VI_TRUE);
|
|
|
|
status = viRead (instr, (ViBuf)outputBuffer, 25, &count);
|
|
if (status < VI_SUCCESS)
|
|
{
|
|
printf("viRead failed with error code %x \n",status);
|
|
viClose(defaultRM);
|
|
exit (EXIT_FAILURE);
|
|
}
|
|
|
|
printf("The server response is:\n %s\n\n",outputBuffer);
|
|
status = viGetAttribute (instr, VI_ATTR_TCPIP_ADDR, outputBuffer);
|
|
printf(" Address: %s\n",outputBuffer);
|
|
|
|
status = viGetAttribute (instr, VI_ATTR_TCPIP_HOSTNAME, outputBuffer);
|
|
printf(" Host Name: %s\n",outputBuffer);
|
|
|
|
status = viGetAttribute (instr, VI_ATTR_TCPIP_PORT, &portNo);
|
|
printf(" Port: %d\n",portNo);
|
|
|
|
status = viGetAttribute (instr, VI_ATTR_RSRC_CLASS, outputBuffer);
|
|
printf(" Resource Class: %s\n",outputBuffer);
|
|
|
|
status = viClose (instr);
|
|
status = viClose (defaultRM);
|
|
printf ("\nHit enter to continue.");
|
|
fflush(stdin);
|
|
getchar();
|
|
|
|
return 0;
|
|
}
|