I use in the activity ESA-L Series Spectrum Analyzer E4411B. The constant reading of the data from a screen of a spectrum analyzer (401 points) on a hard disk of the computer through GPIB-interface implements. For reading of the data is applied the commands sequence: 1) inquiry for data obtaining and 2) data receiving. For this purpose are used the Visual C++ and NI-488.2 API.
For example, part of the code:
while (iter < 250)
{
ibwrt(esa,":INIT;*OPC?",11L); // Trigger a sweep
ibrd(esa,&ok_trigger,4);
ibwrt (esa,"TRAC:DATA? TRACE1",17L); // Request
ibrd (esa,Data_buffer,Size_buffer); // Data reading
iter++;
}
There was a following problem: the too large receptive period of the d
ata in matching with frequency of updating of the data on a screen of a spectrum analyzer (For example, for 250 measurements at Sweep = 4ms theoretically should be 250 х 4 = 1000ms = 1s, and really receives more 10s).
It is supposed that the delay happens owing to long transaction (commands) processing received by a spectrum analyzer. If it so, that I can undertake in this case? Or can, there are also other reasons of delay? Please, explain!
My hardware and program configuration: PC Intel Mobile Celeron 800 MHz, 64 Mb RAM, Windows 98, National Instruments PCMCIA-GPIB Interface Card, National Instruments PCMCIA-GPIB Cable (2 meters), Visual C ++ 6.0, National Instruments NI-488.2 Version 1.60.
Beforehand is grateful
Aleshka