292
Chapter 6 Application Programs
Example: Microsoft Visual C++ for Windows
6
//
// Using the Status Registers
//
printf ("Using the Status Registers\n");
IOObj->Output("apply:sin 10e3,1,0"); // 10kHz Sine wave; 1Vpp
IOObj->Output("trig:sour bus"); // Bus Trigger in Burst
IOObj->Output("burst:ncycles 50000"); // 50000 cycles x 0.1 = 5s
IOObj->Output("burst:stat on"); // Turn ON burst mode
IOObj->Output("*ese 1"); // Operation complete enabled
IOObj->Output("*sre 32"); // Operation complete sets SRQ
Check_Errors(IOObj); // Routine check for errors
IOObj->Output("*trg;*opc"); // *OPC signals end of *TRG
_variant_t Stb;
Stb.vt = VT_I2; //
Force Enter() to convert to Short
while (1)
{
IOObj->Output("*stb?"); // Request Status Byte
IOObj->Enter(&Stb, "K"); // Read Status Byte
if ((short) Stb & 0x40) // Test for Master Summary Bit
{
break;
}
}
printf ("End of Program\n");
}
catch (_com_error &e)
{
_bstr_t dsp = e.Description();
_bstr_t emsg = e.ErrorMessage();
fprintf (stderr, "COM Exception occurred during
processing!\nDescription::%s\nMessage::%s\n",
(char *) dsp, (char *) emsg);
}
CoUninitialize();
return 0;
}