The registers of each board are listed below using the following columns:
board.name[dimension] permissions DescriptionThe permissions are combinations of:
frame.nsnap rwai The number of averaged 25.6us samples
covered by each frame. This is a
combination of the hardware integration
time and the archive file integration
time. The monitor stream interface
automatically divides integrated register
values by this number to yield averages.
As a special case, nsnap is not itself
treated in this way (otherwise it would
always appear to be unity to monitor
clients).
frame.record r-a- The scanner record number of the last
record in an archived frame.
frame.mjd r-a- The Modified Julian Day number of the last
record an archived frame (UTC).
frame.utc[2] r-a- The UTC expressed as a Modified Julian Date.
The first element of the register records
the Modified Julian Day number, and the
second records the number of milli-seconds
into the day.
frame.lst r-a- The local sidereal time corresponding to
local.mjd,local.utc (milli-seconds).
frame.features r-au This contains the union of up to 32 arbitrary
feature-designation bits received from the
control program during the period covered
by the containing archive frame.
tgen.psmod[13] -wa- Phase switch modulation function (0..31).
tgen.psdmod[13] -wa- Phase switch demodulator function (0..31).
tgen.interval -wa- Integration time 0 - 15.
Given a value T, the physical integration
time used by the system timing generator is
8.192e-4 x 2^T seconds. This sets the
interval between data-strobe interrupts.
Some of the integration accumulators will
overflow for T>11. So the maximum practical
hardware integration time is approximately
1.68 seconds.
tgen.inhibit -wa- Inhibit integration if 1, allow integration
if 0. This enables or disables the
date-strobe interrupt that tells the
real-time scanner task to take a new
snapshot of the CBI registers.
tgen.reload -wa- Reload chips.
Any write to this register will prompt all
of the CBI FPGA's to reload their programs.
Beware that this will result in the control
tasks that handle the corresponding boards
having an incosistent view of how the
boards are currently configured, so to
reconfigure them use the unflag command on
each effected board.
chzr.id r-a- The manufacturer's board id = 0x2000.
chzr.csr rwa- The board control/status register. Its 32
bits are assigned as follows (0-31).
0-7 - Ignored. These bits remain low
regardless of what is written to
them.
8-10 - Are interpreted as a 3-bit
integer that sets the
debounce delay applied to the
digital inputs. This can either
be zero, which turns off the
debounce delay, or a number N
between 1 and 7 which sets the
delay to 2**(7+N) microseconds.
11-12 - These bits are recorded in the
register and and can be read back
but they are otherwise ignored by
the board.
13 - This bit must be set to 1 to
allow signals from the input
connector to appear in the input
register.
14 - This bit must be set to 1 to
allow the value of the output
register to be latched to the
output conntector.
15 - This controls the fail-led on the
face-plate of the board. The LED
is turned on by setting this bit
to 0.
chzr.input[4] rwa- 4 single byte digital input registers.
Note that negative logic is used, so
a high signal on the input connector is
represented by a low bit in the input
register. If we consider the 4 bytes to
form a contiguous 32 bit big-endian
integer, the bits are assigned as follows:
0-9 - The lock bits of each of the
synthesizers of the 10 bands.
10 - The 100MHz reference synthesizer
lock bit.
chzr.output[4] rwa- 4 single byte digital output registers.
Note that negative logic is used, so
after computing a bit pattern using the
documentation below, be sure to take its
complement before writing to the register.
If we consider the 4 bytes to form a
contiguous 32 bit big-endian integer, the
bits are assigned as follows:
0-3 - The antenna to address (0-12).
This reflects both the data
available in the input register,
and the intepretation of the
following output bits.
4-7 - The band to address (0..9). This
reflects both the data available
in the input register, and the
intepretation of the following
output bits.
8-12 - The attenuation to insert in
the signal path of the
addressed antenna/band (0-32 db).
13 - Turn the IF of the addressed
antenna/band off=1,on=0.
14 - Spare output to the channelizer.
15 - Strobe. The attenuation values
in bits 0-4 and the IF on/off
state in bit 5 will be ignored
by the channelizer until this
bit changes from low to high.
16 - Turn off=1,on=0 all IFs.
17 - Reload PLA's.
ngen.id r-a- The manufacturer's board id = 0x2000.
ngen.csr rwa- The board control/status register. Its 32
bits are assigned as follows (0-31).
0-7 - Ignored. These bits remain low
regardless of what is written to
them.
8-10 - Are interpreted as a 3-bit
integer that sets the
debounce delay applied to the
digital inputs. This can either
be zero, which turns off the
debounce delay, or a number N
between 1 and 7 which sets the
delay to 2**(7+N) microseconds.
11-12 - These bits are recorded in the
register and and can be read back
but they are otherwise ignored by
the board.
13 - This bit must be set to 1 to
allow signals from the input
connector to appear in the input
register.
14 - This bit must be set to 1 to
allow the value of the output
register to be latched to the
output conntector.
15 - This controls the fail-led on the
face-plate of the board. The LED
is turned on by setting this bit
to 0.
ngen.input[4] rwa- 4 single byte digital input registers.
These are currently unused.
ngen.output[4] rwa- 4 single byte digital output registers.
Note that negative logic is used, so
after computing a bit pattern using the
documentation below, be sure to take its
complement before writing to the register.
If we consider the 4 bytes to form a
contiguous 32 bit big-endian integer, the
bits are assigned as follows:
0-12 - Each bit controls a switch
that connects noise to the
corresponding receiver.
13 - Bit 13 controls the master
switch which sits between the
noise generator and the
individual receiver switches.
14 - Bit 14 switches the noise
generator amplifiers on=0 and
off=1.
rxsim.id r-a- The manufacturer's board id = 0x2000.
rxsim.csr rwa- The board control/status register. Its 32
bits are assigned as follows (0-31).
0-7 - Ignored. These bits remain low
regardless of what is written to
them.
8-10 - Are interpreted as a 3-bit
integer that sets the
debounce delay applied to the
digital inputs. This can either
be zero, which turns off the
debounce delay, or a number N
between 1 and 7 which sets the
delay to 2**(7+N) microseconds.
11-12 - These bits are recorded in the
register and and can be read back
but they are otherwise ignored by
the board.
13 - This bit must be set to 1 to
allow signals from the input
connector to appear in the input
register.
14 - This bit must be set to 1 to
allow the value of the output
register to be latched to the
output conntector.
15 - This controls the fail-led on the
face-plate of the board. The LED
is turned on by setting this bit
to 0.
rxsim.input[4] rwa- 4 single byte digital input registers.
These are currently unused.
rxsim.output[4] rwa- 4 single-byte digital output registers.
Note that negative logic is used, so
after computing a bit pattern using the
documentation below, be sure to take its
complement before writing to the register.
If we consider the 4 bytes to form a
contiguous 32 bit big-endian integer, the
bits are assigned as follows:
0-12 - Each bit enables/disables the
noise generator of the
corresponding receiver. Set to
the bits to 1 to enable.
13 - This bit enables/disables the
signal generator that injects
a fake sky signal into all of
the correlator receiver
inputs. Set to 1 to enable.
14-26 - Each bit enables/disables the
insertion of a 90 degree phase
shift in the signal path of the
corresponding receiver. Bit 14
corresponds to receiver 0, etc..
Readonly registers:
rx0.ps_enc r-a- Phase shifter encoder position (0..1023).
rx0.half_acq r-a- Phase shifter acquired half step
(0=acquired,1=busy)
rx0.full_acq r-a- Phase shifter acquired full step
(0=acquired,1=busy)
rx0.spare_in[2] r-a- Spare digital inputs
rx0.t[4] r-ai Cryostat temperature.
rx0.atemp[2] r-ai Ambient temperature.
rx0.he r-ai Helium pressure
rx0.vac r-ai Vaccuum
rx0.htr[3] r-ai Heater voltage
rx0.aux[2] r-ai Spare analog inputs.
rx0.led[2] r-ai Receiver LED currents.
rx0.mix[2] r-ai Mixer current
rx0.if_bias[2] r-ai IF amplifier bias voltages.
rx0.lo_if_lev r-ai Local oscillator IF level
rx0.lo_v_gunn r-ai Gunn oscillator bias voltage
rx0.lo_v_var r-ai Varactor voltage
rx0.lo_lock r-ai Integrated LO lock bit.
rx0.lo_ref r-ai Integrated LO ref level bit.
rx0.vd[8] r-ai HEMT drain voltage {polarization[2] x
stage[4]}.
rx0.id[8] r-ai HEMT drain current {polarization[2] x
stage[4]}.
rx0.vg[8] r-ai HEMT gate voltage {polarization[2] x
stage[4]}.
Write-only registers:
rx0.htr_req[3] -wa- Set heater temperatures.
htr_req[0] => Set the temperature of the
first of the cryostat heaters. The
calibration factors are currently unknown,
but are probably non-linear. The actual
value that is achieved can be read back,
in the same units, from rx0.t[0].
htr_req[1-2] => Set the temperatures of two
currently unassigned room-temperature
heaters. The values entered set the
target sensor-output voltages in the
corresponding temperature-control feedback
loops. These voltages go linearly from 0v
at htr_req[1-2]=0, to 10v at
htr_req[1-2]=4096. The actual values that
are achieved can be read back, in the same
units, from rx0.atemp[0-1].
rx0.htr_on[3] -wa- Switch heater on (1) or off (0).
htr_on[0] => Enable/disable cryostat heater 0.
htr_on[1-2] => Enable/disable ambient heater 0-1.
Note that a given heater won't actually
switch on until the temperature that it
controls falls below its requested
temperature.
Since none of these heaters are currently
used, they should be left switched off for
now.
rx0.pshifter -wa- Set phase-shifter position.
This is a 10-bit register. The
phase-shifter motor turns through 360
degrees for a change in register value from
0 to 1023. The FPGA that controls the
phase-shifter motor employs the shortest
route to the requested position, so the
longest drive is actually 180 degrees.
Drive times are on the order of a second or
two.
rx0.ps_move -wa- Enable phase-shifter motor (on=1, off=0).
After acquiring the desired pshifter
position, the phase-shifter motor can be
turned off to conserve power and reduce
interference. Don't do this if you are
using half-step mode. The coils need to be
kept energized to maintain a half-step
position.
rx0.ps_half_step -wa- Request phase-shifter motor half steps (1), or
full steps (0).
The FPGA uses full steps to get to within
one step of the requested pshifter value,
then if half-step mode has been requested
and half a step will get it closer to the
requested position, it moves the motor half
a step by energizing two coils. Note that
this takes more power and precludes turning
off the motor after acquisition.
rx0.lo_if_off -wa- Switch phase-lock IF off (1), or on (0).
This refers to enabling or disabling the
intermediate frequency stage of the
phase-locked loop oscillator. This should
normally be left switched on.
rx0.lo_swp_off -wa- Switch LO sweep off (1), or on (0).
This refers to the sawtooth that is used to
(re-)acquire phase lock. It should normally
be left switched on.
rx0.lo_osc_on -wa- Switch local oscillator on (1), or off (0).
This is the gunn-diode local oscillator of
the receiver. It starts out switched off,
but should be switched on before observing.
rx0.lo_quad -wa- Phase shift the local oscillator by an
integer multiple of 90 degrees, using one
of the following numbers:
0 - No phase shift.
1 - 90 degrees phase shift.
2 - 180 degrees phase shift.
3 - 270 degrees phase shift.
rx0.spare_out[2] -wa- Spare digital outputs.
| rx* | .atemp[0] | .atemp[1] | .he | .aux[0] | .aux[1] | .spare_in[0] | .spare_in[1] | .spare_out[0] | .spare_out[1] |
| 0 | Fridge PSU | - | 3/supply 0&2 | 12GHz level | 10MHz level | 12GHz lock | - | - | - |
| 1 | Corr crate | - | 4/supply 1&11 | Tilt meter 2 x-tilt (1V=10") | - | - | - | pmac_reset- | - |
| 2 | UPS crate | - | 3/return 0&2 | az1_mtr_i (7.5V=100A) | az2_mtr_i | - | - | - | - |
| 3 | rx3 cryostat | - | 5/supply 3&5 | Tilt meter 1 temp (1V=10C) | tilt meter 2 temp (1V=10C) | - | - | - | - |
| 4 | noise cal amps | - | 7/supply 4 | - | - | - | - | video[0] | video[1] |
| 5 | rxcard crate | - | 5/return 3&5 | dk_tilt_x (1V=17") | dk_tilt_y (1V=17") | - | - | - | - |
| 6 | chzr | - | 1/supply 6&9 | - | - | - | - | - | - |
| 7 | rx7 LO block | - | 2/supply 7&8 | - | - | - | - | - | - |
| 8 | pwr meter head | - | 2/return 7&8 | - | - | - | - | - | - |
| 9 | - | - | 1/return 6&9 | - | - | - | - | - | - |
| 10 | - | - | 6/return 10&12 | - | - | - | - | - | - |
| 11 | - | - | 4/return 1&11 | - | - | - | - | - | - |
| 12 | - | - | 6/supply 10&12 | - | - | - | - | - | - |
Readonly registers:
corr0.vis[156] r-ai Visibilities, arranged as:
Baseline: 00-01..00-12 01-02..01-12 02-03..02-12
re,im re,im re,im re,im re,im re,im
corr0.test1[4] r-ai Accumulator test registers.
corr0.tp[13] r-ai Total power for antennas 0..12. Note that
as the total power increases, the
corresponding value in tp[] becomes more
negative.
corr0.test2[3] r-ai Accumulator test registers.
Software registers:
corr0.tpzero[13] rwai The zero offsets to subtract from the
corr0.tp[] values. This register is
selectively updated when users invoke
the tpzero command.
corr0.attn[13] rwa- The attenuations (0-31db) that are
currently being inserted into each reciever
signal path by the channelizer. This
register is selectively initialized via
invocations to the user "attenuate"
and "tp" commands.
corr0.state[13] rwa- The on/off state of the IF amplifiers that
connect each receiver output to the
corresponding channel of the correlator. The
IF amplifier of receiver N is on if
state[N] is non-zero (receiver numbers
start at 0).
gps.intset[4] rw-- Interrupt assignment registers.
gps.intvec[4] rw-- Interrupt vector registers.
gps.freeze rw-- Reading this register freezes the time
readout registers.
gps.release rw-- Reading this register unfreezes the time
readout registers.
gps.time_reg0 rw-- The first of the BCD time-readout
registers.
gps.time_regs[3] rw-- The rest of the BCD time-readout
registers.
gps.config[4] rw-- The main configuration registers of the
board.
gps.period[2] rw-- The period of the generator output pulses.
gps.preset[7] rw-- The BCD time-preset registers. These are
currently unused because the time is
provided externally by a GPS receiver.
gps.start[8] rw-- The BCD time at which to output a start
pulse. This is used to send a
synchronization pulse to the PMAC.
gps.stop[8] rw-- The BCD time at which to output a stop
pulse. This is currently unused.
VME address of dual-port ram = 0x710000 in A24 address space.
pmac.dpram_init -w-- On startup the dual-port RAM start address
is written to this location.
PMAC <-> CPU synchronization flags.
pmac.new_position rw-- The CPU writes 1 to this flag register to
inform the PMAC when it has placed a new
position and mode in the following
registers. The PMAC clears it when it is
ready for a new position.
pmac.position_fault rw-- PMAC sets this flag register when it looses
sync. The CPU is then expected to to
resyncronize it.
pmac.host_read rw-- The CPU sets this to freeze the values of
the monitor registers until the CPU clears
it again.
pmac.pmac_write rw-- The PMAC sets this when it is writing to
the monitor registers.
Control registers.
pmac.new_mode rw-- The next operation that the PMAC should do,
from:
0: track - Be at the target az,el,dk
at the next 1-second tick
1: slew - Move to the target az,el,dk
as fast as possible, then
halt.
2: halt - Stop the telescope.
3: sync - Wait for a programmed pulse
from the time-code-reader
then enter track mode and
aim to reach the target
az,el,dk a second later
These values are enumerated in cbiregs.h.
pmac.new_az rw-- The target azimuth (encoder counts).
pmac.new_el rw-- The target elevation (encoder counts).
pmac.new_dk rw-- The target deck angle (encoder counts).
pmac.new_az_rate rw-- The target azimuth rate (milli-counts/sec).
pmac.new_el_rate rw-- The target elevation rate (milli-counts/sec).
pmac.new_dk_rate rw-- The target deck rate (milli-counts/sec).
Archived status registers.
pmac.el_temp rwa- The temperature of the elevation motor
(degrees C x 100).
pmac.az_temp[2] rwa- The temperatures of the two azimuth motors.
(degrees C x 100).
pmac.el_current rwa- The current in the elevation motor (A x 100).
pmac.el_enc_rot[2] rwa- Two additional terms to add to the elevation
encoder readings to correct for:
[0] - The rotation of the elevation
encoder body due to deformation
of the deck bearing.
[1] - The rotation of the elevation shaft
due to changes in the direction
of the load vector.
These corrections are measured by tilt
meters and reported in multiples of
0.01 arcseconds.
pmac.el_torque_bias rwa- The torque bias of the elevation motor
(A x 100).
pmac.az2_torque_bias rwa- The torque bias of the second azimuth motor
(A x 100).
pmac.x_tilt rwa- Tilt meter (arcsec x 100)
pmac.y_tilt rwa- Tilt meter (arcsec x 100).
pmac.az_mean_error rwa- The mean azimuth following error (counts x 100).
pmac.az_rms_error rwa- The RMS azimuth following error (counts x 100).
pmac.el_mean_error rwa- The mean elevation following error
(counts x 100).
pmac.el_rms_error rwa- The RMS elevation following error (counts x 100).
pmac.dk_mean_error rwa- The mean deck following error (counts x 100).
pmac.dk_rms_error rwa- The RMS deck following error (counts x 100).
pmac.pvt_move_time rwa- The actual duration that it took to do the
last 1-second move (us).
pmac.move_time_err rwa- The accumulated move-duration error (us).
pmac.dk_reset_ctr rwa- The number of deck resets since last
pmac reset.
pmac.dk_slew_rate rwa- The actual deck slew rate as a
percentage of the maximum.
pmac.spare_0 rwa- A spare monitor register.
pmac.spare_1 rwa- Another spare monitor register.
az1_phases[2] rwa- Azimuth motor 1 commanded currents of
phases A and B.
az2_phases[2] rwa- Azimuth motor 2 commanded currents of
phases A and B.
el_phases[2] rwa- Elevation commanded currents of phases
A and B.
servo_outputs[4] rwa- The servo outputs of motors azimuth 1,
azimuth 2, elevation and deck. The
servo outputs are expressed in DAC
counts, and converted by the cal file,
to the amplitudes of the motor currents.
pmac.drive_status[2] rwa- A bit-map of status flags. The following is
reproduced verbatim from Steve's documentation:
drive_status[0]:
0 aena1 (az1_amp).
1 -lim1
2 +lim1
3 fault1
4 fatal_following_error1
5 az_overlap_swith
6 az1_amp_over_current
7 az1_motor_over_current
8 fault3 (az2_amp)
9 az2_amp_over_current
10 az2_motor_over_temp
11 az_lap_at_startup
12 aena5 (el_amp)
13 -lim5
14 +lim5
15 fault5
16 fatal_following_error5
17 el_overlap_switch
18 el_amp_over_current
19 el_motor_over_temp
20 aena7
21 -lim8
22 +lim8
23 fault8
24 fatal_following_error8
25 dk_overlap_switch
26 dk_amp_reset-
27 dk_lap_at_startup
28 timebase_phaselock-
29 spare
30 spare
31 coord_system1_prog_running
drive_status[1]:
0 az +ve end limit set
1 az -ve end limit set
2 az1 motor open loop
3 az2 motor open loop
4 el +ve end limit set
5 el -ve end limit set
6 el motor open loop
7 dk +ve end limit set
8 dk -ve end limit set
9 dk motor open loop
10 coord_system1_run_time_error
11 Acquired
12 Deck slew okay.
13 Azimuth acquired.
14 Elevation acquired.
15 Deck acquired.
16 Azimuth unstable.
17 Elevation unstable.
18 Deck unstable.
pmac.az rwa- The azimuth-encoder reading (counts).
pmac.el rwa- The elevation-encoder reading (counts).
Actually now this is zenith angle + 90 degrees.
pmac.dk rwa- The deck-encoder reading (counts).
pmac.plc_status rwa- Bit 1 indicates plc disabled.
pmac.el_motor_enc rwa- The encoder readout from the elevation motor.
pmac.az_motor_enc[2] rwa- The encoder readouts from the two azimuth motors.
pmac.az_pos rwa- The position of the azimuth axis in encoder
counts. Unlike pmac.az this extends
more than a turn because of the wrap.
pmac.el_pos rwa- Because there is no elevation wrap,
this is identical to pmac.el.
pmac.dk_pos rwa- The position of the deck axis in encoder
counts. Unlike pmac.dk this extends
more than a turn because of the wrap.
tracker.tick_utc[2] rwa- The UTC of the GPS 1-second tick at
which the information below was
recorded, expressed in MJD days and
milliseconds (rounded to the
second). This is the time associated
with positions read back from the PMAC,
but not the target time of the pointing
data.
tracker.lacking rwa- A bitwise union of PointingPar enumerators.
Each enumerated bit represents a pointing model
parameter that has not been provided yet. (see
cbiregs.h for the contents of the
PointingPar enumeration).
tracker.utc[2] rwa- The UTC date and time as MJD days and
milli-seconds.
tracker.lst rwa- The local apparent sidereal time
(milliseconds).
tracker.ut1utc rwa- The value of UT1-UTC (milliseconds).
tracker.eqneqx rwa- The value of the equation of the
equinoxes (milli-seconds of sidereal time).
tracker.mode rwa- The tracking mode:
0: track - The recorded data refer to
the next 1-second position
of a track.
1: slew - The recorded data refer to
the target of a slew.
2: halt - The telescope is halted.
3: sync - The pmac and the tracker
are being synchronized.
These values are enumerated by the
PmacMode type in cbiregs.h.
tracker.deck_mode rwa- The deck-axis tracking mode, selected from
the DeckMode enumeration defined in
cbiregs.h.
0: track - The deck angle is tracking
the parallactic angle.
1: zero - The deck angle is fixed at
the current deck-axis offset.
tracker.refraction[3] rwa- The A and B refraction terms received
from the weather task (micro-arcseconds),
and the currently resulting offset in
elevation (milli-arcseconds).
tracker.encoder_off[3] rwa- The encoder angles {azimuth,elevation,deck},
at the topocentric zeroes of azimuth,
elevation and deck angle (milli-arcseconds).
tracker.encoder_mul[3] rwa- The number of encoder counts per turn
{azimuth,elevation,deck}.
tracker.encoder_min[3] rwa- The minimum allowed encoder counts
{azimuth,elevation,deck}.
tracker.encoder_max[3] rwa- The maximum allowed encoder counts
{azimuth,elevation,deck}.
tracker.tilts[3] rwa- The axis tilts {hour-angle, latitude,
elevation} (milli-arcseconds).
tracker.flexure rwa- The gravitational flexure of the telescope
(milli-arcseconds per cosine of elevation).
tracker.axis rwa- The collimation and refraction models
being used. Its values are enumerated
by the PointingMode enumerator in
cbiregs.h. Thus 0 denotes optical
pointing, and 1 denotes radio pointing.
tracker.collimation[2] rwa- The collimation tilt {magnitude, direction}
(milli-arcseconds).
tracker.site[3] rwa- The location of the site {latitude (mas),
longitude (mas), altitude (mm)}.
tracker.source[3] rwa- The source name, encoded as 3 four-byte
string segments (see regmap.h for
unpack_int_string()). The source name is
guaranteed to be terminated by a 0 byte.
The max source name length is thus 11. This
could change, so the max source name length
is enumerated in cbiregs.h as SRC_LEN.
tracker.equat_geoc[3] rwa- The geocentric apparent {RA (mas), Dec
(mas), Distance (micro-AU)}. This is
where the source would appear to be if
viewed from the center of the Earth.
tracker.equat_off[2] rwa- User-supplied temporary equatorial offsets
{RA,Dec} (milli-arcsec). These are
added just before the conversion to
horizon coordinates.
tracker.horiz_geoc[3] rwa- The geocentric apparent {Az,El,Pa}
(milli-arcseconds). These are the
horizon coordinates at which the source
would be seen from the center of the
Earth if the telescope could be moved
there without rotating it.
tracker.horiz_topo[3] rwa- The topocentric apparent {Az,El,Pa}
(milli-arcseconds). These are the
horizon based coordinates that the
source would be seen from at the site,
after taking account of horizontal
parallax, atmospheric refraction and
diurnal aberration.
tracker.horiz_mount[3] rwa- The mount {Az,El,Pa} (milli-arcseconds).
These are the horizon coordinates at
which one has to point the telescope to
see the source, after taking account of
telescope flexure, the tilt of the
azimuth axis, the tilt of the elevation
axis, collimation errors, and the
addition of user specified sky-based
and telescope-based tracking offsets.
tracker.horiz_off[3] rwa- User-supplied offsets in
{Azimuth,Elevation,Deck-angle}
(milli-arcsec).
tracker.sky_xy_off[2] rwa- User-supplied sky-based {x,y} tracking
offsets (milli-arcsec), where x and y
lie along perpendicular great circles
that cross at the un-offset pointing
center. The y offset increases towards
the zenith, and the x offset increases
clockwise when looking down from above
the telescope.
tracker.counts[3] rwa- The demanded encoder positions in
encoder counts {Azimuth,Elevation,Deck}.
tracker.rates[3] rwa- The demanded move rates in
milli-counts/second {Azimuth,Elevation,Deck}.
tracker.actual[3] rwa- The positions of the azimuth, elevation and
deck axes that were read from the
pmac on the most recent 1-second tick.
(milli-arcseconds).
tracker.expected[3] rwa- The expected positions of the azimuth,
elevation and deck axes at the most
recent 1-second tick, for comparison
with tracker.actual. (milli-arcseconds)
tracker.errors[3] rwa- The residuals after subtracting the
elements of tracker.expected[] from
tracker.actual[]. (milli-arcseconds).
tracker.state rwa- The current tracking status,
recorded as one of the TrackingStatus
enumerators defined in cbiregs.h.
0 - LACKING
At least one critical tracker
configuration parameter hasn't
been received from the control
program.
1 - TIME ERROR
The last time received from the
GPS time-code reader was invalid.
2 - UPDATING
The tracker is responding to a
change in conditions such as a new
command or configuration parameter
received from the control program,
or an error condition such as a
loss of time sync.
3 - HALTED
The telescope is currently halted.
4 - SLEWING
The telescope is currently slewing.
5 - TRACKING
The telescope is currently
tracking a source.
6 - TOO LOW
The telescope is trying to track a
source that is below the lower
elevation limit of the telescope,
so the elevation is being held at
this limit.
7 - TOO HIGH
The telescope is trying to track a
source that is above the upper
elevation limit of the telescope,
so the elevation is being held at
this limit.
tracker.off_source rwau This register takes two values, 0 and
1. It is set to 1 if the telescope was
known to be off source by the tracker
at any time during the archived
frame.
tracker.x_tilt rwa- The x tilt of the azimuth platform is
recorded here when the tilt meter is
enabled (mas). Otherwise it is zero.
tracker.y_tilt rwa- The y tilt of the azimuth platform is
recorded here when the tilt meter is
enabled (mas). Otherwise it is zero.
tracker.rotcor rwa- The sum of the measured rotations of
the elevation axis and the elevation
encoder body (mas). This is zero when
this correction isn't enabled.
tracker.corflags rwa- The bitwise union of cbiregs.h::CorFlag
correction flags.
tracker.camera rwa- The number of the active optical
pointing camera.
tracker.rotcor_zero[2] rwa- The current zero points of the two
components of the rotcor correction (mas).
tracker.track_mode rwa- What type of tracking to perform in
track mode. The following values are
enumerated in cbiregs.h:TrackMode.
0 - DRIFT SCANNING
The Right Ascension offset is
steadily increased at the
sidereal rate. For a sidereal
source, the telescope essentially
stops moving, apart from making
tilt and refraction corrections.
1 - TRACKING SOURCE
The telescope follows the source
as it moves with the sky.
tracker.nsample rwa- The number of encoder fast-readout
samples in the readout arrays.
tracker.ts_array rwa- The timestamp of readout 'n' is given
by subtracting 1 second from the
tracker.tick_utc, and adding
ts_array[n] microseconds. Only the
first 'nsample' elements are
significant.
tracker.az_array rwa- The 'nsample' azimuth-axis encoder
values, offset by one turn.
tracker.el_array rwa- The 'nsample' elevation-axis encoder
values. This encoder actually measures
zenith-angle + 90 degrees.
tracker.dk_array rwa- The 'nsample' deck-axis encoder
values, offset by one turn.
camera.angle rwa- The deck angle at which the sky
appears to be upright on the TV
display (milli-arcseconds).
weather.utc[2] rwa- The UTC date and time on the weather station
clock expressed as a Modified Julian Date.
The first element of the register records
the Modified Julian Day number, and the
second records the number of milli-seconds
into the day.
weather.int_temp rwa- The internal temperature of the weather
station (mC).
weather.air_temp rwa- The air temperature around the weather
station (mC).
weather.battery rwa- The weather-station battery voltage (mv).
weather.humidity rwa- The relative humidity (0..1) x 1000.
weather.wind_speed rwa- The wind speed measured by the weather
station (mm/s).
weather.wind_dir rwa- The azimuth from which the wind is blowing
(milli-arcseconds).
weather.pressure rwa- The atmospheric pressure (ub).
gpib.dir r--- The data input register. gpib.cdor w--- The command/data output register. gpib.isr1 r--- Interrupt status register 1 gpib.imr1 w--- Interrupt mask register 1 gpib.isr2 r--- Interrupt status register 2 gpib.imr2 w--- Interrupt mask register 2 gpib.spsr r--- Serial poll status register gpib.spmr w--- Serial poll mode register gpib.adsr r--- Address status register gpib.admr w--- Address mode register gpib.cptr r--- Command pass-through register gpib.auxmr w--- Auxiliary mode register gpib.adr0 r--- Address register 0 gpib.adr w--- Address register gpib.adr1 r--- Address register 1 gpib.eosr w--- End-of-string register
noise.zero_utc[2] rwa- The UTC when the power meter was last
zeroed. This is expressed as a Modified
Julian Date. The day number portion is
stored in the first element, and the
time-of-day portion is recorded in
milliseconds in the second.
noise.zero_life rwa- The requested number seconds between zero
calibrations.
noise.power_utc[2] rwa- The UTC when the noise power was last read
from the power meter. This is expressed as
a Modified Julian Date. The day number
portion is stored in the first element, and
the time-of-day portion is recorded in
milliseconds in the second.
noise.power_life rwa- The requested number seconds between power
readings.
noise.power[2] rwa- The power readings that were read at the time
recorded in the power_utc[] register, in
units of milli-dbm.
monitor.utc[2] rwa- The UTC when the last readout of the
serial I/O modules was started.
monitor.interval rwa- The number of seconds between readouts.
monitor.usable2 rwa- 1 if serial I/O module 2 is
functioning, 0 if not.
monitor.module2[8] rwa- The last values read out from module 2.
[0] - gen1_engine_temp
[1] - gen1_fuel_temp
[2..7] - Unused.
monitor.usable3 rwa- 1 if serial I/O module 3 is
functioning, 0 if not.
monitor.module3[8] rwa- The last values read out from module 3.
[0] - gen2_X_voltage
[1] - gen2_Y_voltage
[2] - gen2_Z_voltage
[3] - gen2_charge_24V
[4..6] - Unused.
[7] - gen2_bat_voltage
monitor.usable4 rwa- 1 if serial I/O module 4 is
functioning, 0 if not.
monitor.module4[8] rwa- The last values read out from module 4.
[0] - gen1_engine_temp
[1] - gen1_fuel_temp
[2..7] - Unused.
monitor.usable5 rwa- 1 if serial I/O module 5 is
functioning, 0 if not.
monitor.module5[8] rwa- The last values read out from module 5.
[0] - gen1_X_voltage
[1] - gen1_Y_voltage
[2] - gen1_Z_voltage
[3] - gen1_charge_24V
[4..6] - Unused.
[7] - gen1_bat_voltage
monitor.usable6 rwa- 1 if serial I/O module 6 is
functioning, 0 if not.
monitor.module6[8] rwa- The last values read out from module 6.
[0] - chiller0_water_temp
[1] - chiller0_compressor_temp
[2] - chiller1_water_temp
[3] - chiller1_compressor_temp
[4] - chiller2_water_temp
[5] - chiller2_compressor_temp
[6] - chiller_container_air_temp
[7] - Unused.
monitor.usable7 rwa- 1 if serial I/O module 7 is
functioning, 0 if not.
monitor.module7[8] rwa- The last values read out from module 7.
[0] - chiller0_water_level (1V=OK, 0V=Fault)
[1] - chiller0_fault (1V=OK, 0V=Fault)
[2] - chiller1_water_level
[3] - chiller1_fault
[4] - chiller2_water_level
[5] - chiller2_fault
[6-7] - Unused.