beautypg.com

RIGOL DP832A User Manual

Page 204

background image

RIGOL

Chapter 4 Programming Demos

4-16

DP800 Programming Guide

return false;

}

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

//write command to the instrument

status = viWrite(instr, (unsigned char *)SendBuf, strlen(SendBuf), &retCount);

//close the instrument

status = viClose(instr);

status = viClose(defaultRM);

return bWriteOK;

}

2) Encapsulate the read operation of VISA for easier operation.

bool CDP800_DEMO_VCDlg::InstrRead(CString strAddr, CString *pstrResult)

//Read from the instrument

{

ViSession defaultRM,instr;

ViStatus status;

ViUInt32 retCount;

char * SendAddr = NULL;

unsigned char RecBuf[MAX_REC_SIZE];

bool bReadOK = false;

CString str;

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

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

strcpy(SendAddr,strAddr);

strAddr.ReleaseBuffer();

memset(RecBuf,0,MAX_REC_SIZE);

//open the VISA instrument

status = viOpenDefaultRM(&defaultRM);

if (status < VI_SUCCESS)

{

// Error Initializing VISA...exiting

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

return false;

}

//open the instrument

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

//read from the instrument

status = viRead(instr, RecBuf, MAX_REC_SIZE, &retCount);

//close the instrument

status = viClose(instr);

status = viClose(defaultRM);

(*pstrResult).Format("%s",RecBuf);

return bReadOK;

}

This manual is related to the following products: