ni.com is currently undergoing scheduled maintenance.

Some services may be unavailable at this time. Please contact us for help or try again later.

Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

Simple Serial Port Operation using VISA

Can someone point me to a tutorial on how to use VISA in C++ ( MFC project in measurement studio pro - ..NET) to make simple reads and writes to the serial port? I just can't seem to get the hang of it using the paramater assistant.
 
Thanks
 
Joe
0 Kudos
Message 1 of 2
(3,773 Views)

 ViSession viRM;
 ViSession vi;
 ViStatus vs;


 vs = viOpenDefaultRM( &viRM);
 vs = viOpen( viRM, "ASRL1::INSTR", VI_NO_LOCK, 0, &vi);

 short iIntfType;
 vs = viGetAttribute( vi, VI_ATTR_INTF_TYPE, &iIntfType);
 if( iIntfType == VI_INTF_ASRL) {
  vs = viSetAttribute( vi, VI_ATTR_ASRL_BAUD, 19200);
  vs = viSetAttribute( vi, VI_ATTR_ASRL_DATA_BITS, 8); 
  vs = viSetAttribute( vi, VI_ATTR_ASRL_PARITY, VI_ASRL_PAR_NONE);  
  vs = viSetAttribute( vi, VI_ATTR_ASRL_STOP_BITS, VI_ASRL_STOP_ONE); 
  //vs = viSetAttribute( vi, VI_ATTR_ASRL_FLOW_CNTRL, VI_ASRL_FLOW_DTR_DSR); 
  //vs = viSetAttribute( vi, VI_ATTR_ASRL_FLOW_CNTRL, VI_ASRL_FLOW_RTS_CTS); 
  //vs = viSetAttribute( vi, VI_ATTR_ASRL_FLOW_CNTRL, VI_ASRL_FLOW_XON_XOFF); 
 }
 
 vs = viSetAttribute( vi, VI_ATTR_TMO_VALUE, 3000); 
 vs = viSetAttribute( vi, VI_ATTR_WR_BUF_OPER_MODE, VI_FLUSH_ON_ACCESS);
 vs = viSetAttribute( vi, VI_ATTR_RD_BUF_OPER_MODE, VI_FLUSH_ON_ACCESS);


 vs = viPrintf( vi, "*IDN?\n");
 char szIDN[64];
 vs = viScanf( vi, "%[^\n]", szIDN);

 vs = viClose( vi);
 vs = viClose( viRM);

0 Kudos
Message 2 of 2
(3,759 Views)