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,638 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,624 Views)