RIGOL DSG3000 Series User Manual

Page 175

Advertising
background image

Chapter 4 Programming Demos

RIGOL

DSG3000 Programming Guide

4-19

ViSession defaultRM;

ViString expr = "?*";

ViPFindList findList = new unsigned long;

ViPUInt32 retcnt = new unsigned long;

ViChar instrDesc[1000];

CString strSrc = "";

CString strInstr = "";

unsigned long i = 0;

bool bFindDSG = false;

status = viOpenDefaultRM(&defaultRM);

if (status < VI_SUCCESS)

{

// Error Initializing VISA...exiting

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

return ;

}

memset(instrDesc,0,1000);

// Find resource

status = viFindRsrc(defaultRM,expr,findList, retcnt, instrDesc);

for (i = 0;i < (*retcnt);i++)

{

// Get instrument name

strSrc.Format("%s",instrDesc);

InstrWrite(strSrc,"*IDN?");

::Sleep(200);

InstrRead(strSrc,&strInstr);

// If the instrument(resource) belongs to the DSG series then jump out from the loop

strInstr.MakeUpper();

if (strInstr.Find("DSG") >= 0)

{

bFindDSG = true;

m_strInstrAddr = strSrc;

break;

}

//Find next instrument

status = viFindNext(*findList,instrDesc);

}

if (bFindDSG == false)

{

MessageBox("Didn't find any DSG!");

}

UpdateData(false);

}

2) Write Operation

void CDSG3000_DEMO_VCDlg::OnSend()

{

// TODO: Add your control notification handler code here

UpdateData(true);

if (m_strInstrAddr.IsEmpty())

{

Advertising