hdr |
length
in bytes |
start at byte |
Description |
pdevMainHdr |
32*4=128 |
0 |
general info |
sp1Hdr |
56*2=112 |
128 |
fpga spectral line
register setup |
aoHdr |
240 |
ao hdr holding
pointing,time,freq info |
|
freespace |
696 |
328 |
unused space at end of
1024 byte header block |
name |
value |
description |
magic_num |
0xfeffbeef |
magic number identifying
filetype |
magic_sp |
0x2e83fb01 |
magic number for fpga sp
section that follows main header.
|
adcf |
17203200 |
measured adc clock
frequency (it will be in error by a few %). |
byteswapCode |
2 |
The spectrometer uses a
power pc (bigendian) while the fileservers are intel little endian. The
byteswap code is used by the spectrometer to put the power pc data in
the little endian format:
|
blkSize |
block, record length on
ouput. spectral output:
|
|
nblksdumped |
Number of requested blocks
to dump. This is not the actual number written since the datataking
could stop prematurely |
|
beam |
0 - 6 |
The alfa beam or single
pixel band. The |
subband |
0,1 |
Which of the pdevbox
subands this data comes from.
|
lo1mix |
0 |
lo1 mixer value used to
mix from sky to first IF.. Unfotunately it doesn't always fit in a 32
bit integer. The value is normally set to 0. |
lo2mix0 |
175000000 |
(hz) 2nd LO used to
complex mix IF1 to baseband (s0 lower IF1 BAND) |
lo2mix1 |
325000000 |
(hz) 2nd LO used to
complex mix IF1 to baseband (s1 Upper IF1 band)
|
adcclk |
172032000 |
(hz) requested adc clock
frequency. This should be exact. |
time |
1300879274 |
(secs) Start time (unix
time seconds from 1970) for start of this scan. Will be time at the 1
second tick start. |
resv1 |
1 |
|
pdevAoMagic |
0x12345678 |
if 0x12345678 in this
location, then pdevAo header follows the sp1 header. |
if1 |
250000000 |
(hz) center of IF1
frequency. |
fill(16) longs |
name |
description |
fmtWid |
0 8 bit,1-16 bit,
2-32bit data |
fmtType |
|
len |
fftlen used |
dumpstrt |
1st channel dumped
count from 0 |
dumpstop |
last channel dumped count
from 0 |
FCNT |
number of ffts to
accumulate
|
DCNT |
number ffts to drop
between accumulated spectra
|
arsel |
dig sel
0=adc0,1=adc1,2=adc2,3=adc3,4-test,5=0 |
aisel |
|
brsel |
|
bisel |
|
arneg |
1-> negate voltage |
aineg |
|
brneg |
|
bineg |
|
pfbby |
bypass low pass filter of
polyphase filter bank |
pshift |
bit telling whether or not
to downshift before each butterfly stage (1--> downshfit)
|
vshift |
bits to upshift after fft, power (before accumulation) |
Dshift_S0 |
bits to downshift data
prior to integration. |
Dshift_S1 |
|
Dshift_S2 |
|
Dshift_S3 |
|
Ashift_S0 |
upshift accumulated data
before packing. 0..7 bits. |
Ashift_S1 |
|
Ashift_S2 |
|
Ashift_S3 |
|
Ashift_SI |
|
fftDropSt |
fft to drop at the start. |
tsPhase |
test signal info (if
xxsel=3) |
tsFreqH |
|
tsFreqL |
|
tsCwA |
|
tsCwB |
|
tsNoiseA |
|
tsNoiseB |
|
dLo |
digital mixing lo |
dLoPhase |
for pos a,b phase
difference |
hrMode |
hires mode
|
hrDec |
hires decimation
|
hrShift |
hires upshift:
|
hrOffset |
dlpf offset |
hrLpf |
Not 0 --> time domain
sampling (and hr_mode=1)
|
hrDwell |
|
hrInc |
|
blanksel |
gpio pin for extern blank
0xffff=none |
blankper |
0-use extBlnkTime.>0#
ticks to blank afte |
ovfadc_thr |
adcOvf before blank.
0xffff=off |
ovfadc_dwell |
ticks to blank after
ovfadc occurs |
calsel |
gpio pin for cal input.
0xf--> no cal |
calphase |
0 to FCNT-1 when cal
transitions in dump |
calctl |
B0=1 cal on, B1=1 -->
winking cal |
calon |
dumps for cal on |
caloff |
dumps for cal off |
name |
type |
description |
hdrVer |
char*4 |
'1.00' no null
termination. 000 --> not valid header |
bandIncrFreq |
uint*4 |
|
cfrHz |
double*8 |
freq center (Hz) of band
(topocentric) |
bandWdHz |
double*8 | bandwidth in hz
(1/samplefreq) |
object |
char*16 |
source name from observing
file . no null termination |
frontEnd |
char*8 |
frontend name
(receiver name) no null termination
|
raJDeg |
double*8 | ra J2000 start of
scan in deg |
decJDeg |
double*8 | dec J2000 start of scan in deg |
azDeg |
double*8 | azimuth (deg) near start
of scan |
zaDeg |
double*8 | zenith angle (deg) near start of scan |
imjd |
int*4 |
integral mjd day (utc)
at start of scan |
isec |
int*4 |
integral seconds midnite
form imjd at start of scan. Since hardware tick start, the start second is always integral. |
byte 0,1 |
byte 2,3 |
byte 4 |
byte 4 |
byte 5 |
byte 5 |
byte 6 |
byte 6 |
byte 7 |
byte 7 |
16 bits |
16 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
seqnum |
fftaccum |
calon |
adcovr |
pfbovr |
vshft |
accs2s3 |
accs0s1 |
ashfts2s3 |
ashfts0s1 |
name |
type |
description |
seqnum |
ushort |
counts spectra modulo 65536 |
fftaccum |
ushort |
number off fft's actually
accumulated this integration. Can be less then requested if blanking is
in on. |
calon |
4bits |
cal on =1, caloff =0 |
the
overflow,saturation counts (that follow) are coded as the log base 2 of
the number of errors:
|
||
adcovr |
4bits | adc blanking overflow
count |
pfbovr | 4bits | polyphase filter bank
overflow count |
vshft | 4bits | saturation count on vshift
upshift |
accs2s3 | 4bits | saturation count
accumulating stokes u,v |
accs0s1 | 4bits | saturation count
accumulating polA,polB |
ashfts2s3 | 4bits | saturation count
upshifting stokes U,V for packing (after accumulation) |
ashfts0s1 | 4bits | saturation count
upshifting pola,b for packing (after accumulation) |
bits/pol |
B0 |
B1 |
B2 |
B3 |
B4 |
B5 |
B6 |
B7 |
B8 |
B9 |
B10 |
B11 |
B12 |
B13 |
B14 |
B15 |
16 A |
Ia0 |
Qa0 |
Ia1 |
Qa1 |
||||||||||||
16 AB |
Ia0 |
Qa0 |
Ib0 |
Qb0 |
Ia1 |
Qa1 |
Ib1 |
Qb1 |
||||||||
8 A |
Ia0 |
Qa0 |
Ia1 |
Qa1 |
||||||||||||
8AB |
Ia0 |
Qa0 |
Ib0 |
Qb0 |
Ia1 |
Qa1 |
Ib1 |
Qb1 |
||||||||
4A |
Ia0,Qa0 |
Ia1,Qa1 |
||||||||||||||
4Ab |
Ia0,Qa0 |
Ib0,Qb0 |
Ia1,Qa1 |
Ib1,Qb1 |