pnetctl- controlling pdev from cima

LAST MOD:20may10

todo
history.
pnetctl description
    datatking diagram
message protocol
pnetctl commands
conf keywords
pset keywords
Setup info needed for fits file
Debugging problems.

Other pdev info


Terminology:


todo  (top)



history: (top)



PNETCTL description   (top)

     pnetctl is the program that cima (the gui) uses to control the pdev software. It controls/talks to:
    pnetctl specs are:
    The sequence of events to take data with pnetctl are:
  1. send a conf command to pnetctl to configure a particular group. For alfa there can be  2 groups. This allows for the piggy backing of experiments. Each conf command will setup to run a copy of pnet. If multiple groups are used, you need to send multiple conf commands, and then multiple copies of pnet will be started when the start command is issued.
  2. adjust the power levels
  3. send pset command for each group. (note 2,3 can come in the reversed order if desired). This sends info to bpOut for the fits file.
  4. send the start data taking command.
  5. wait for data taking to end or send the stop command to terminate it prematurely.
  6. go back to 1,2,3, or 4 or send exit command.


 Datatking program diagram.  (top)

    Who starts what is listed below.


Message protocol:   (top)

    Message types:

        pnetctl can handle 3 different kinds of message formats:        The all ascii format are for debugging or maybe driving it from a scripting language. Cima will use the messageBinary format.
The I/O  in pnetctl is done via select.


PNETCTL COMMANDS:  (top)

 Message commands are in ascii. They span 4 bytes in the message. If the command is less than 4 bytes then it should be padded with spaces.  The message follows the 4th byte of the message command.   The commands for pnetctl are:

PNETCTL COMANDS (18apr08)
command
params
Description
ADJP
rmsVal
adjust power levels
adjp
replyMsg
sent back after power adjusted and new values measured. takes about 6 secs for 7 boxes.
Each brd info separated by a newline. First line includes the adjpok  .
Example reply: time for 14 boards: 5.38 seconds
adjpok  b0s0g0  rms:A  30.1   28.1 B  29.6   29.5 mn:A   0.3    0.1 B   0.7    0.3 gn: 11 11
 b0s1g0  rms:A  30.8   29.5 B  28.4   30.3 mn:A  -0.0   -0.0 B  -0.1   -0.2 gn:  2  2
 b1s0g0  rms:A  31.1   29.8 B  29.2   29.2 mn:A  -0.0    0.5 B  -0.1    0.3 gn:  7  7
 b1s1g0  rms:A  32.1   29.7 B  31.2   31.0 mn:A   0.6   -0.1 B   0.1   -0.3 gn:  2  2
 b2s0g0  rms:A  28.9   28.9 B  30.4   29.1 mn:A   0.2    0.2 B  -0.2    0.7 gn: 10 11
 b2s1g0  rms:A  27.7   28.3 B  32.3   30.1 mn:A  -0.1   -0.7 B  -0.4    0.1 gn:  1  3
 b3s0g0  rms:A  26.3   29.4 B  30.1   27.6 mn:A   0.6   -0.1 B   0.6    0.2 gn:  6  7
 b3s1g0  rms:A  30.0   29.3 B  28.2   29.2 mn:A  -0.4    0.6 B   0.4   -0.1 gn:  1  1
 b4s0g0  rms:A  28.5   27.4 B  28.6   28.9 mn:A   0.7   -0.0 B   0.4    0.8 gn: 10 11
 b4s1g0  rms:A  32.5   29.4 B  30.1   28.9 mn:A   0.1    0.2 B   0.3    1.2 gn:  2  3
 b5s0g0  rms:A  29.2   29.8 B  28.1   30.0 mn:A   0.6    0.7 B   0.2    1.2 gn: 11 13
 b5s1g0  rms:A  28.9   28.5 B  28.1   28.4 mn:A   0.4    0.8 B  -0.2   -0.3 gn:  0  2
 b6s0g0  rms:A  32.4   30.1 B  30.8   32.3 mn:A   0.4    0.5 B   0.4    0.3 gn:  9 12
 b6s1g0  rms:A  31.8   29.6 B  30.7   30.3 mn:A   0.1    0.3 B   0.7   -0.1 gn:  0  3
CONF
see conf Configure a group
conf
replyMsg
Sent back when configuration is complete:
 example reply:
confok 
DALL

dump current program info back to caller



dall
replyMsg
Debuging info sent back. each line separated by a newline. This data can change as more debug info added.
Example reply:
dallok  tkDataCnt:0 grpList:g0
 grp:g0 stat:0 tmDump:0.1  nDumps:0
   boxesList:b0 b1 b2 b3 b4 b5 b6
   Fnm:pnet.conf :/dump/pdev/files/pnetg0.conf
   Fnm:boxes.conf:/dump/pdev/files/boxesg0.conf
   box:b0 pdevH:pdev-110 psrvH:pdevs1 bandNms:b0s0g0 b0s1g0 suNms:
   box:b1 pdevH:pdev-109 psrvH:pdevs2 bandNms:b1s0g0 b1s1g0 suNms:
   box:b2 pdevH:pdev-107 psrvH:pdevs3 bandNms:b2s0g0 b2s1g0 suNms:
   box:b3 pdevH:pdev-118 psrvH:pdevs4 bandNms:b3s0g0 b3s1g0 suNms:
   box:b4 pdevH:pdev-116 psrvH:pdevs5 bandNms:b4s0g0 b4s1g0 suNms:
   box:b5 pdevH:pdev-104 psrvH:pdevs6 bandNms:b5s0g0 b5s1g0 suNms:
   box:b6 pdevH:pdev-113 psrvH:pdevs7 bandNms:b6s0g0 b6s1g0 suNms:
   pnetbld cmd:/usr/local/pdev/bin/pnetbld
     --pipe
     --fbtempl=/usr/local/pdev/etc/boxes.conf.templ
     --fptempl=/usr/local/pdev/etc/pnet.conf.templ
     --fcal=/usr/local/pdev/etc/cal.conf 
     --box="g0 0 1 2 3 4 5 6"
     --spctype='AB  '
     --adcclk=172.032000
     --tmdump=.1
     --fpnet=/dump/pdev/files/pnetg0.conf
     --fboxes=/dump/pdev/files/boxesg0.conf
 ComInfo struct:
   ioName:masR ioType:msgB ioDir:R
   ioName:masW ioType:msgB ioDir:W
   ioName:pdevs1 ioType:msgB ioDir:RW
   ioName:pdevs2 ioType:msgB ioDir:RW
   ioName:pdevs3 ioType:msgB ioDir:RW
   ioName:pdevs4 ioType:msgB ioDir:RW
   ioName:pdevs5 ioType:msgB ioDir:RW
   ioName:pdevs6 ioType:msgB ioDir:RW
   ioName:pdevs7 ioType:msgB ioDir:RW

GETP
rms gain
query the current power levels. by default it returns the rms,mean, and gain leves. The params rms or gain will limit the value returned (it will speed things up bit).
getp
replyMsg
sent back after power/gain measured. The format of the message is the same as adjp except that it starts with getpok  .
All fields are always returned. If yu only asked for gain, the the rms, mean fields will have 0's.
Examle reply to GETP: time for 14 boards:4.02 seconds
getpok  b0s0g0  rms:A  57.8   53.5 B  59.4   59.4 mn:A   0.4    0.1 B   0.7    0.5 gn: 11 11
 b0s1g0  rms:A  57.6   55.4 B  55.9   59.7 mn:A  -0.1    0.0 B  -0.2   -0.3 gn:  2  2
 b1s0g0  rms:A  58.5   56.0 B  58.0   58.2 mn:A  -0.1    0.5 B  -0.3    0.4 gn:  7  7
...
Example reply to GETPrms:
time for 14 boards:3.98 seconds
getpok  b0s0g0  rms:A  53.9   49.9 B  57.8   57.8 mn:A   0.4    0.2 B   0.7    0.5 gn:  0  0
 b0s1g0  rms:A  53.0   50.9 B  53.5   57.1 mn:A  -0.1   -0.0 B  -0.1   -0.3 gn:  0  0
 b1s0g0  rms:A  53.8   51.4 B  55.8   56.1 mn:A  -0.2    0.7 B  -0.3    0.5 gn:  0  0
...
Example reply to GETPgain: time for14 boards=.95 seconds
getpok  b0s0g0  rms:A   0.0    0.0 B   0.0    0.0 mn:A   0.0    0.0 B   0.0    0.0 gn: 11 11
 b0s1g0  rms:A   0.0    0.0 B   0.0    0.0 mn:A   0.0    0.0 B   0.0    0.0 gn:  2  2
 b1s0g0  rms:A   0.0    0.0 B   0.0    0.0 mn:A   0.0    0.0 B   0.0    0.0 gn:  7  7
...
NOP

nop command.
nop
replyMsg
reply from nop command
Example reply:
nop ok
PSET

Send set parameter block. This should be done after a successful conf command There should be 1 PSET command for each group that is being configured.
pset
replyMsg
Reply message from PSET command
Example reply:
psetok
STAR
scanDuration startTm
Start datataking.  It will start all groups that have been configured. MParams:
  • ScanDuration: how long to take data (in seconds). It will be rounded to a multiple of dumps.
  • startTm: Time when the observation should start. If not supplied then the observation starts as soon as possible (on a 1 second tick). The time format is:
    • hhmmss (ast). Program will cross ast midnite correctly. If it is 235958 and you want to start in 5 seconds you should enter 000003.
    • unix time. seconds from 1970.
star
replyMsg
the reply for start datataking. It will be sent after all groups have been instructed to start. It will not wait for the actual start of  datataking since the start time could be far in the future. An asynchronous stat message will be sent when each group starts.
Example reply:
starok 
STOP

Stop datataking before the requested scanDuration has completed.
stop
replyMsg
Reply for STOP. It is sent after all of the connections to pnet (all groups) have been closed.
Example reply:
stopok 


ASYNCHRONOUS REPLIES
Asynchonous replies use the standard reply format of:|msglen|cmd|status|msg. The only difference is that they are generated by pnetctl and sent to the master (cima) (they are not the reply from some command from the master).
info
asyncMsg
Whenever pnetctl receives an unsolicited msg, it will pass it back as an info mesage. An example would be the pnet  messages that are output after datataking is started. The msg format is the standard reply format:msgLen|cmd|status|msg . For messages from pnet the source pnetg0 or pnetg1 is prepended to the message.
Example info messages after datataking started:
infook  pnetg0:Connected to all
infook  pnetg0:Connected to all psrv
infook  pnetg0:First dump sequence number is 01000
infook  pnetg0:10.00 integrations per second
infook  pnetg0:Estimated dump time 100.0 s
infook  pnetg0:Estimated total dump size 0.92 GB
infook  pnetg0:Spectrometer box bandwidth estimates:
infook  pnetg0:    pdev-104   1.31 MB/s
infook  pnetg0:    pdev-107   1.31 MB/s
infook  pnetg0:    pdev-109   1.31 MB/s
infook  pnetg0:    pdev-110   1.31 MB/s
infook  pnetg0:    pdev-113   1.31 MB/s
infook  pnetg0:    pdev-116   1.31 MB/s
infook  pnetg0:    pdev-118   1.31 MB/s
infook  pnetg0:Fileserver bandwidth and dump size estimates:
infook  pnetg0:    pdevs1     1.31 MB/s, 0.13 GB
infook  pnetg0:    pdevs2     1.31 MB/s, 0.13 GB
infook  pnetg0:    pdevs3     1.31 MB/s, 0.13 GB
infook  pnetg0:    pdevs4     1.31 MB/s, 0.13 GB
infook  pnetg0:    pdevs5     1.31 MB/s, 0.13 GB
infook  pnetg0:    pdevs6     1.31 MB/s, 0.13 GB
infook  pnetg0:    pdevs7     1.31 MB/s, 0.13 GB
infook  pnetg0:Observation begins at 1209496349.01 Tue Apr 29 15:12:29 2008
infook  pnetg0:All spectrometers running...
infook  pnetg0:0.00 MB/s 0.00 MB [0:0]/1000 blocks  (0.0%)

stat
asyncMsg
stat messages are sent when the state of pnetctl changes.  The current list of stat messages are:
  • started starttime (unix time). Sent after datataking started. One messages is sent for each group that starts.
    • statok  started unixtime pnetg0
  • done   sent when a scan has completed. The done message is sent once after all groups have completed. Note: A stat done is not sent after a stop request.
    • statok  kdone



PNETCTL conf KEYWORDS:  (top)

    These are the values defined in the configure command to pnetctl.
The conf command configures a set of spectrometer boxes. Each conf command will map to a single group. The format is:
confkey1=value1 value2;a ..:key2=value1 value2;b..:key3=value1 value2;a ..
.
KeywordCodes:
Keywords used in conf command to pnetctl
pnetctl conf
keyword
CODE
pdevParms
Notes
adcclkhz
SVA
IMP
adcclk
clock value for pdev spectrometer in Hz.
170000384 is good for 1 sec. 172032000 is good for 1 millisecond.
No code to control synths yet
bits
SVG
IMP
fmtwid,hr_lpf Determine bits to use for output. Values are:
  • 4,8,16 if time domain sampling
  • 8,16,32 if spectra
Needs to be a single value for the entire group since the byteswapping is keyed off of bits, and byteswap is in the dump section that has a single value for all of pnet.conf setup file.
blankatod
MV
IMP
OVFACD_THRESH
Spectra Blanking using a/d overflow.
  • The user specifies the number of a/d overflows need for blanking to occur
  • If the threshold is met then the fft computed will not be included in the sum.
  • If the keyword is omitted, no adc blanking will occur.
  • example:blankatod=0..65535 
    • A value of 0 or > 8192 disables blanking.
    • blankatd=1 will blank any spectra with at least 1 adc overflow
boxes
SVG
IMP

  • There are 14 spectrometer boxes split into two sets:
    • group0  0 thru 6  
    • group1  0 thru 6
  • Each box has a low band (a) and a high band (b).
  • If you place a ;x after a box then this box will use configuration x eg 0;a is config a. You can assign a single band of 1 box to a config with : 0a;c  .. box 0, band a, config c.
  • The first value of the boxes command specifies the group that this conf command refers to. For alfa there can be 2 groups of 7 boxes each. For single pixel there can be more than two groups.
  • Each conf command will configure a single group. If multiple groups are needed then multiple conf commands (and pset commands) must be sent.
  • example:
    • boxes=g0 0 1 2 3    .. group 0 boxes 0,1,2,3
    • boxes=g1 0 1 3 4 5 6   .. group 1 boxes 0 .. 6
    • boxes=g0 0 1 2;a  3a;b 3b;c
    • group 0. boxes 0,1 are the standard config, box 2 is config a, box 3a is config b, and box 3b is config c
bwmhz
MV
IMP
hr_dec,hr_mode,
lpf_cN
Set the bandwidth (MHz) to use. Values are limited by:
  • adcclkhz defines the clock rate.
  • Progran rounds to the closest bandwidth that is a submultiple of the adclk rate.
  • The submultiples of the clock rate can be 1 to 1024.
calctl
SVN
IMP
cal_ctl
calon
cal_off
calphase
Control the cal. Values are:
  • disable - cal is off, cal input is ignored
  • c0: output cal value of 0, look at input value
  • c1: output cal value of 1 , look at input value
  • w Non Noff fract: winking cal. arguments are:
    • Non number of dumps for cal to be on
    • Noff number of dumps for cal to be off
    • fract value 0..1 where cal should transition in the last dump of each state.
    • Winking cal starts with the calOff then calOn sections.
If you want to drive the cal from a separate source (interim correlator, wapps, etc..), set the cal multiplexor in the control room to select that device and then set calctl to c0 or c1 (since the output value is then ignored).
Note: single pixel: Winking cal not supported.
  • single pixel uses the 2nd band (fpga2 or gxb). The winking cal signal only comes from  fpga1 (or gxa). If you the first band is not used, then no winking cal output is generated.

datatype
MV
IMP
fmttype
hr_lpf
dcnt
Type of data to record. Values are:
  • AB  : record spectra polA and polb
  • I      : record spectra: sum of polA and polb
  • STOKES: record spectra: polA/2, polB/2, stokesU,V
  • TMDMA: record time domain data polA only.
  • TMDMAB: record time domain data polA and polB
For time domain data the bits recorded are determined by the bits keyword.
digfreqoffhz
MV
IMP

Digital mixer offset in Hz.
  • The pdevlohz keyword maps the IF to the center of the spectra where it is then sampled at the adcclk frequency.
  • A digital mixer will then offset digfreqoffhz from this center. It actually rotates the band this amount. digffreqoffhz becomes the new center of the band.
  • The direction (+/-) is at the IF frequency and not the RF frequency (beware of band flip from hi side LO'S).
  • This should only be used if you are reducing the bandwith from the maximum.
dumptmsec
SVG
IMP
fcnt
number of seconds to accumulate ffts for 1 dump. Values are:
  • Must have at least 4 ffts in an accumulation
  • May not have more that 65535 ffts in 1 accumlulation
  • The time is nffts*fftlen/(adcclkhz). this is the wall time.The actual integration time can be less if blanking is enabled.
  • The wall time will be 1 fftlen*adcclkhz seconds longer if stokes spectra with 32 bits (DCNT is set to 1 in the spectrometer for this config).
  • The dump time must be the same for all configurations within a group.
emaskacc
MV
IMP
err3,4_thresh
limit the number of 40 bit accumulate overflow errors in a dump before reporting a message. The values 0..n are for errors counts 2^n. Since the err3,4_thresh is a 4 bit register, setting errmaskacc to 16 will completely block messages.
emaskadc
MV
IMP
err0_thresh
limit the number of adc overflow errors in a dump before reporting a message. The values 0..n are for errors counts 2^n. Since the err0_thresh is a 4 bit register, setting errmaskadc to 16 will completely block messages.
emaskash
MV
IMP
err5,6_thresh
limit the number of  40 bit accumulator upshift  overflow errors in a dump before reporting a message. The values 0..n are for errors counts 2^n. Since the err5,6_thresh is a 4 bit register, setting errmaskash to 16 will completely block messages.
emaskpfb
MV
IMP
err1_thresh
limit the number of polyphase fitlerband  overflow errors in a dump before reporting a message. The values 0..n are for errors counts 2^n. Since the err1_thresh is a 4 bit register, setting errmaskpfb to 16 will completely block messages.
fftlen
MV
IMP
len
Length of fft to compute. Values are:
  • 16 .. 8192 in powers of 2.
fileprefix
SVG
IMP
name
file prefix to use for disc files. This can include any subdirectories under the default /dump/pdev/ file directory.
  • fileprefix=a2334      filename is then /dump/pdev/a2334.20080430.b0s0g0.000001.fits
  • fileprefix=phil/sineTest  filename is: /dump/pdev/phil/sineTest.20080430.b0s0g0.00001.fits
grprem
SVG
IMP

remove an already configured group using the group name specified in the boxes keyword.  The grprem keyword allows you to remove an already defined group.
  • It only works on already defined groups.
  • If grprem= keyword is present in the conf request then it will be the only keyword acted on in the request. This means that to remove a group you should call conf with just the grprem keyword:
Examples:
CONFgrprem=g0
maxfilesizemb
SVA
IMP
-
maximum size of an output file before switching to another file (during a single scan).
This is in units of 2^20. so 2048 is a 2Gb file.
pdevif1hz
SVG
IMP

center of the IF frequency (hz) used by pdev.
When using both upper and lower bands,: 250000000
When using single pixel upper band only : 325000000
pdevlohz
SVA
IMP

The LOs to use for the pdev spectrometer. The two values specified are shared by all spectrometer boxes (we only have two synths that are split 14 ways).
  • There is 1 LO for the LOWif band and 1 value for the  HIGH if band. (you need to always specify 2 values.
  • example: 175000000 325000000
  • The LO value maps the IF to the center of the spectra. The digfreqoffhz then offsets from this value
  • The low,high values are limited by the hardware filters and IQ phase generator.
pshift
MV
IMP
PSHIFT
How often to down shift in the butterfly stages of the fft. 0 to 13 bits. If a bit is present then downshift after the  butterfly stage. If a bit is 0, then don't downshift.
  • Bit 0 is the last butterfly stage.
  • Bit N is the 1st butterfly stage where fftlen=2^(N+1)
  • If not supplied then pshift will computed automatically. The keyword has been added for debugging.
-

DumpStart
dumpStop
channels within spectra to dump. hardcoded to entire fftlen
-

DCNT
computed by pnetctl. 0 unless 32 bit stokes where it is set to 1.
Not yet implemented
blankenable

BLANKSEL
0: no blankg, 1: blanking enabled.
blankPeriod

BLANKPER
Number of usecs to blank starting at the rising edge of the blanking signal.
Only valid if blankenable is 1.
If blankPeriod is 0, then the blanking is determined by the length of the blanking signal.


lo1mix
this is upstairs synth1.. either pass it in or we can grab it from scramnet.


pset command keywords.  (top)



pnetctl pset
keyword
CODE
FORMAT in
Fits file
Description
frontend SVA
char[8] receiver name. names are:"327","430","610","lbw","sbn","sbw","sbh","cb","cbh","xb","alfa","ch"
object
SVG
char[16] source name
obsnm
SVG
char[24] observer name
projid
SVG
char[8] project id. eg "a2314"
28oct11 see above. This is now ignored if fileprefix was defined for this group.
commensal observing wanted the projid in header to match the projid of file.
topoafreqhz
MV
double
topocentric freq center pixel of lo band. units-hz
topobfreqhz
MV
double
topocentric freq center pixel of high band. units=hz
restafreqhz
MV
double
rest freq center pixel of low band. units=hz
restbfreqhz
MV
double
rest freq center pixel of high band. units=hz.
patternid
SVG
int*4
pattern id. Ydddnnnnn  where Y is last digit of the year, ddd is the daynumber. This increments on every new pattern.
scanid
SVG
int*4
scannumber Ydddnnnnn  nnnnn increments each scan . Y is the last digit of the year.
req_sys
SVG
char[8]
Requested velocity coordinate system. values are:
"TOPOCENT","GEOCENTR","BARYCENT","LSRK","UNKNOWN"
req_vel
SVG
double

req_vel_unit
SVG
char[8]
unit of req_vel. "m/s" or "Z"
req_vel_type
SVG
char[8]
values are:"VOPT-F2W","ZOPT-F2W","ZRAD-F2V", or "UNKNOWN"
caltype
SVG
char[8]
type of cal used."lcorcal","hcorcal","lcal","hcal","lxcal","hxcal","l90cal,"h90cal
obsmode
SVG
char[8]
Observing pattern used. Some names are:
"ON","ONOFF","DPS","RADECMAP","DECRAMAP","BASKET","FIXEDAZ"
scantype
SVG
char[8]
Each observing pattern is made up of one or more scans. scantype names the type of scan within a pattern. Some names are: "ON","OFF","UP","DOWN". Patterns that have a single scantype are usually labeled with "ON".
prfeed
SVA
int*4
alfa beam that is being used to point the telescope. Values 0..6.
psetgrp SVG - not in structure
specifies which group this pset config belongs to. If no psetgrp is given then it defaults to g0.
Example:
psetgrp=g0:
filetype
MV
not in
structure
The type of output file to generate. An integer value:
  • 0 don't change the current filetype (default if not provided)
  • 1 generate fits files (aofits)..
  • 2 generate .pdev files (jeff mocks format). This is needed for time domain data
  • 3 psr .. psrfits format 
NOTE:

Setup info needed for the fits file:   (top)

    Last modifed 30apr08
STATUS KEYS:

FIELD
bpCmd
Location
Src
Description
From pnet open command
baseFilename FILEI
fname[]
filepre
conf
Program will increment 5 digit index number if more than 1 file is needed per scan.
dumpsToWrite
FILEI
blkstoWrite
start command
How many dumps to output for this scan.
maxBytesFile
FILEI
maxBytesFile
conf
When output file gets this large, switch to new file. 0 --> stay with one file
nextSeqNumber
FILEI
nxtSeqNum[]
pnet
Next sequence number for start of scan.
From sp1 header sent via pnet
dataType
FILEI[]

B byte, I short,J int,E float,D double. This is the datatype to be stored in fits header.
dumpsPerRec
FILEI[]

Number of dumps per output record.
exposure
FITSINIT

integration time in seconds. From FCNT,adckHz in sp1 hdr.
polPerDump
FILEI[]

from sp1 fmttype. Can be 1,2, or 4.




From pnetctl PSET  via bpCmd
frontend
char[8]

receiver name. alfa is : "alfa" .. not necessarily null terminated.
object
char[16]

source name. does not have to be null terminated.
obsNm
char[24]

observers name or initials.
projid
char[8]

like a1723 .
topoFreq
double[2]

frequency center of band. crval1 Hz. Low, hi band
restfreq
double[2]

rest frequency center of band  Hz. Low, hi band.
pattern_id
int*4

pattern Id Ydddnnnnn this increments on every new pattern.
scan_id
int*4

scannumber Ydddnnnnn  nnnnn increments each scan . Y is the last digit of the year.
req_sys
char[8]

"TOPOCENT","GEOCENTR","BARYCENT","LSRK","UNKNOWN"
req_vel
char[8]


req_vel_unit
char[8]

unit of req_vel. "m/s" or "Z"
req_vel_type
char[8]

values are:"VOPT-F2W","ZOPT-F2W","ZRAD-F2V", or "UNKNOWN"
caltype
char[8]

type of cal used."lcorcal","hcorcal","lcal","hcal","lxcal","hxcal","l90cal,"h90cal
obsmode
char[8]

Observing pattern used. Some names are:
"ON","ONOFF","DPS","RADECMAP","DECRAMAP","BASKET","FIXEDAZ"
scantype
char[8]

Each observing pattern is made up of one or more scans. scantype names the type of scan within a pattern. Some names are: "ON","OFF","UP","DOWN". Patterns that have a single scantype are usually labeled with "ON".
backendmask
int[8]

one entry for each box. low band is lower 4 bits, upper band is upper 4 bits.
4bit coding:
1- polA,B or stokes I only
3 - pola, polB
15- stokes
pcalctl
int

0 caloff always, 1 cal on always, 2 winking cal
wcalon
int

dumps for winking cal on
wcaloff
int

dumps for winking cal off
wcalphase
double

0 to 1. where the cal transition should occur in the last dump of calon or caloff.


<- page up

home_~phil