RIGOL DSG3000 Series User Manual

Page 173

Advertising
background image

Chapter 4 Programming Demos

RIGOL

DSG3000 Programming Guide

4-17

6. Encapsulate the read and write operations of VISA.

1) Encapsulate the write operation of VISA for easier operation.

bool CDSG3000_DEMO_VCDlg::InstrWrite(CString strAddr, CString strContent)

//write function

{

ViSession defaultRM,instr;

ViStatus status;

ViUInt32 retCount;

char * SendBuf = NULL;

char * SendAddr = NULL;

bool bWriteOK = false;

CString str;

//Change the address's data style from CString to char*

SendAddr = strAddr.GetBuffer(strAddr.GetLength());

strcpy(SendAddr,strAddr);

strAddr.ReleaseBuffer();

//Change the command's data style from CString to char*

SendBuf = strContent.GetBuffer(strContent.GetLength());

strcpy(SendBuf,strContent);

strContent.ReleaseBuffer();

//open the VISA instrument

status = viOpenDefaultRM(&defaultRM);

if (status < VI_SUCCESS)

{

AfxMessageBox("No VISA instrument was opened !");

return false;

}

status = viOpen(defaultRM, SendAddr, VI_NULL, VI_NULL, &instr);

//write command to the instrument

Advertising