Chapter 6 Application Programs Example Program for C and C++

if(bGPIB){ /* For use with GPIB 7 address, use "GPIB::7::INSTR" address format */ strcpy(VISA_address,"GPIB::");

strcat(VISA_address,GPIB_Address); strcat(VISA_address,"::INSTR");

}

else{ /* For use with COM2 port, use "ASRL2::INSTR" address format */ strcpy(VISA_address,"ASRL");

strcat(VISA_address,COM_Address); strcat(VISA_address,"::INSTR");

}

/* Open communication session with the power supply */ ErrorStatus = viOpenDefaultRM(&defaultRM);

ErrorStatus = viOpen(defaultRM,VISA_address,0,0,&power_supply);

CheckError("Unable to open port");

if(!bGPIB)

SendSCPI("System:Remote");

}

void SendSCPI(char* pString)

{

char* pdest;

strcpy(commandString,pString);

strcat(commandString,"\n");

ErrorStatus = viPrintf(power_supply,commandString);

CheckError("Can’t Write to Driver");

 

if (bGPIB == 0)

 

delay(1000);

/* Unit is milliseconds */

pdest = strchr(commandString, ’?’); /* Search for query command */ if( pdest != NULL ){

ErrorStatus = viScanf(power_supply,"%s",&ReadBuffer); CheckError("Can’t Read From Driver"); strcpy(pString,ReadBuffer);

}

}

void ClosePort()

{

/* Close the communication port */ viClose(power_supply); viClose(defaultRM);

}

Continued on next page

137

6

Page 138
Image 138
Agilent Technologies E3633A, E3634A manual On next 137