VTI Instruments Corp.
86
EX1629 Programming
`
Host Computer
EX1629
5
7
0
2
3
HD
LAN
SHUNT
CAL
RES
SHUNT
CAL
RES
SHUNT
CAL
RES
1
4
6
13
15
8
10
11
9
12
14
21
23
16
18
19
17
20
22
29
31
24
26
27
25
28
30
37
39
32
34
35
33
36
38
45
47
40
42
43
41
44
46
PWR
EX1629
time
time
Send:
vtex16
29_tri
g_init
()
reques
t
Send:
vtex16
29_rea
d_fifo
()
reques
t
Send:
vtex16
29_rea
d_fifo
()
reques
t
Rece
ive:
vtex
1629
_tri
g_in
it()
resp
onse
Rece
ive:
vtex
1629
_rea
d_fi
fo()
resp
onse
Rece
ive:
vtex
1629
_rea
d_fi
fo()
resp
onse
F
IGURE
6-1:
R
EAD
FIFO
N
ETWORK
E
XAMPLE
The vtex1629_read_fifo function provides access to the main channel acquisition data and
timestamp information. The following code segment illustrates the basic usage of the
vtex1629_read_fifo function, issuing a FIFO query to return 10 scans of data with all 48 channels
enabled. The maximum number of scans to return is specified, as is the maximum number of data
elements to be returned. The acquisition data, along with the timestamp for each scan, is returned
in three arrays of ViReal64 elements, two for the timestamps (seconds and fractional seconds) and
one for the acquisition data. Each scan of data will contain 1 to 48 channels worth of data,
depending on the scanlist configuration. Scan data is returned sequentially within the acqdata
array, so, for the example below, acqdata[0]…acqdata[47] will contain the first scan of data,
acqdata[48]….acqdata[95] the second scan of data, etc. The timestamp for the first scan will be
contained in seconds[0] and fractseconds[0], the second timestamp in seconds[1] and
fractseconds[1], etc.
#define NUM_SCANS 10
#define NUM_CHANNELS 48
#define MAX_NUM_SAMPLES (NUM_SCANS * NUM_CHANNELS)
#define TIMEOUT_SECS 5
ViSession vi;
ViReal64 seconds[NUM_SCANS];
ViReal64 fractseconds[NUM_SCANS];
ViReal64 acqdata[MAX_NUM_SAMPLES];
ViInt32 numdata, numscans;
result = vtex1629_read_fifo( vi,
NUM_SCANS,
seconds,
fractseconds,
&numscans,
MAX_NUM_SAMPLES,