User`s guide
94
Programming Your Instruments
Example Programs
psa = SafeArrayCreate (VT_I2, 1, &bounds);
// Populate the safearray
SHORT* Waveform;
SafeArrayAccessData(psa, (void**) &Waveform);
for (i = 1; i<= 16000; i++)
{
if(i < 14000)
{
Waveform[i-1] = (short)(sin(2.0 * pi * (double)Ncycles *
(double)i / 14000) * 2047
* exp(Damp_factor * (double)i / 14000) + 0.5);
}
else
{
Waveform[i-1] = 0;
}
}
SafeArrayUnaccessData(psa);
// Download data points to volatile memory
fprintf(stderr,"Downloading Arb...\n");
Fgen->ArbitraryWaveform->SetDataDAC(&psa);
Fgen->System->IO->WriteString("*OPC?", VARIANT_TRUE);
Fgen->System->IO->ReadString();
fprintf(stderr,"Download Complete\n");
// Download data points to volatile memory
Fgen->ArbitraryWaveform->CopyData("DAMP_SIN"); // Copy arb to
non-volatile memory
Fgen->ArbitraryWaveform->User = "DAMP_SIN"; // Select the active
arb waveform
Fgen->Output->Function = Agilent33220OutputFunctionUser; // Output
the selected arb waveform
Fgen->Output->State = VARIANT_TRUE;// Enable Output
Fgen->Close();
exit(0);
}