User Manual 3162A/B
Using The Instrument 3-32
if ((error = viRead(vi, (unsigned char *) readbuf, RI3162_READ_LEN, &cnt)) < 0)
return( error );
/* try again */
if (readbuf[0] != '1')
{
if ((error = viPrintf(vi, "*OPC?\n")) < 0)
return( error );
if ((error = viRead(vi, (unsigned char *) readbuf, RI3162_READ_LEN, &cnt)) < 0)
return( error );
if (readbuf[0] != '1')
return( RI3162_BINARY_DOWNLOAD_FAILED );
}
error = viEnableEvent(vi, VI_EVENT_IO_COMPLETION, VI_QUEUE, VI_NULL);
error = viMoveAsync (vi, VI_LOCAL_SPACE, (ViBusAddress)data_pts, VI_WIDTH_16,
VI_A24_SPACE, 0L, VI_WIDTH_16, number_of_points, &job);
if (error < 0) {
viPrintf(vi, ":SMEM:STATE OFF\n");
return( RI3162_INVALID_FILE_DATA );
}
error = viWaitOnEvent (vi, VI_EVENT_IO_COMPLETION, 10000, &etype, &event);
if (error < 0) {
viTerminate( vi, VI_NULL, job );
viWaitOnEvent( vi, VI_EVENT_IO_COMPLETION, 0, &etype, &event );
viDiscardEvents( vi, etype, VI_ALL_MECH );
viPrintf(vi, ":SMEM:STATE OFF\n");
return( RI3162_INVALID_FILE_DATA );
}
viDiscardEvents( vi, etype, VI_ALL_MECH );
return( viPrintf(vi, ":SMEM:STATE OFF\n") );
}
int main (int argc, char *argv[]) {
/* Define a 24-point square wave */
ViInt16 data_pts[24] = {
4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0
};
ViSession vi;
if (InitCVIRTE (0, argv, 0) == 0) /* Needed if linking in external compiler; harmless otherwise */
return -1; /* out of memory */
/* Initialize 3162 in slot 7 */
ri3162_init ("VXI::7::INSTR", 1, 1, &vi);
/* Select Arbitrary waveform mode */
ri3162_select_waveform_mode (vi, RI3162_MODE_ARB);
/* Turn Output on */
ri3162_output (vi, RI3162_OUTPUT_ON);
/* Define Segment 1 */
ri3162_define_arb_segment (vi, 1, 24, 1);
Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com