Backend Server

From setiquest wiki

Revision as of 15:54, 8 July 2011 by SigBlips (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
SonataFlow-backendserver.png

The Backend Server subsystem of SonATA is the link between the Telescopes and the Beamformer. An example: When the Seeker wishes to move the Telescopes to another object in the sky. The Seeker instructs the Backend Server to do this, and the Backend Server communicates with the Telescopes to complete the request.

Contents

Communication With the Seeker

The Seeker communicates with the Backend Server over 2 TCP/IP sockets. One socket sends commands to the Backend Server, the other socket receives monitor and status information from the Backend Server.

A good project for the open source community would be to develop a backend server simulator so the Seeker can be tested and operated without the real Backend Server talking to the telescopes. This would be very useful for development and debugging. We already have a Backend Server simulator, but it needs work. If interested, post on the forums.

Commands

The command format is simple ASCII commands. There is a lot of detail here and it will take work to bring this list of Seeker<->Backend Server commands up to date and make it accurate.

For those commands that take antennas as arguments, the antennas can be specified in one of two ways: either directly using a comma separated list, or indirectly using the 'antgroup' argument. The latter refers to one of three previously assigned ant groups, namely: "primary", "xpol", and "ypol". The group used depends on the context.

Antgroup Commands

There must be a selection of which antennas to use for an observation. See the Telescopes section for an explanation of antenna names.

ANTGROUP AUTOSELECT SEFD <maxJy> FREQ <maxObsMHz>

Automatically select 'good' ants from all those available, based on ATA antenna status information, and the specified maximum antenna SEFD (see Glossary) and observing frequency. The primary group will be a superset of the xpol & ypol groups. All or none of the collision ants will be included in the primary group.

ANTGROUP SET <primary | xpol | ypol | all> antNN[,antNN,...]

Assign the ants to the specified group(s).

ANTGROUP CLEAR <primary | xpol | ypol | all>

Clear the specified group(s).

ANTGROUP LIST <primary | xpol | ypol | all>

List the ants in the specified group(s).

Antenna Commands

POINT <ANTGROUP | antNN[,antNN...]> AZEL <azDeg> <elDeg> POINT <ANTGROUP | antNN[,antNN...]> J2000 <raHr> <decDeg> POINT <ANTGROUP | antNN[,antNN...]> GAL <longDeg> <latDeg>

Point antennas in various coordinate systems.

STOP <ANTGROUP | antNN[,antNN...]>

Stop specified antennas.

STOW <ANTGROUP | antNN[,antNN...]>

Stow specified antennas.

WRAP <ANTGROUP | antNN[,antNN...]> <-1,0,1>(?)

Set antenna wrap for the antennas.

ZFOCUS <ANTGROUP | antNN[,antNN...]> <skyfreq-MHz>

Set the Z (feed) focus on the antennas.

LNAON <ANTGROUP | antNN[,antNN...]>

Turn on the LNAs for the antennas.

PAMSET <ANTGROUP | antNN[,antNN...]>

Set the PAMs to nominal values for the antennas.

ALLOCATE <ANTGROUP | antNN[,antNN...]> Allocate the given antennas for use.

DEALLOCATE <ANTGROUP | antNN[,antNN...]>

Release the given antennas.

Miscellaneous Commands

LOCK_REQUEST <CHANGE-PRIMARY-POINTING | USE-PRIMARY-POINTING> LOCK_RELEASE <CHANGE-PRIMARY-POINTING | USE-PRIMARY-POINTING>

Request & release pointing locks.

MONITOR <reporting-period-secs>

Set the reporting interval for monitor port data. 10s is the default, 0s means no status reports.

TUNE <{A-D}> <skyfreq-MHz>

Tune the specified LO1.

Beamformer: Miscellaneous

BF SET ATTN BEAMxxx<attn-db>

Set the beamformer attenuation level for the given beam. Default level is 0dB (maximum beamformer output). Value is applied only during calibrations.

BF LIST ATTN <BEAMxxx|ALL>

List beamformer attenuation level for the given beam or all beams.

BF SET OBSLEN <secs>

Set observation length for beamformer, default is 600s.

BF LIST OBSLEN

List observation length for beamformer.

BF LIST CONFIG

List beamformer configuration information (how many beamformers are enabled, which beams are associated with them, etc.).

BF RESET

Reset beamformer ibobs to known state (sky, walsh, rearm). Requires subsequent recalibration.

BF STOP

Stop currently running beamformer command.

BF AUTOATTEN

Automatically set attemplifiers. Beamformer: assign ants to beams & initialize:

BF CLEAR ANTS <BEAMxxx|ALL>

Clear antenna assignments for a beam or all beams.

BF SET ANTS BEAMxxx <ANTGROUP | antNN[,antNN,...]>

Assign antennas to a beam.

BF LIST ANTS <BEAMxxx|ALL>

List antenna assignments for a beam or all beams.

BF INIT

Initialize beamformer with all antennas previously assigned to beams.

Beamformer: Assign target

Clear and assign the target coordinates to the different beams.

BF CLEAR COORDS <BEAMxxx|ALL>

Clear previously assigned coords for given beam or all beams.

BF SET COORDS BEAMxxx AZEL <azDeg> <elDeg> BF SET COORDS BEAMxxx J2000 <raHr> <decDeg> BF SET COORDS BEAMxxx GAL <longDeg> <latDeg>

Assign coordinates to beams.

BF LIST COORDS <BEAMxxx|ALL>

List previously assigned coords for given beam or all beams.

Beamformer: Use null beams

BF SET NULLTYPE <AXIAL | PROJECTION | NONE>

AXIAL - for each beam in use, put a null on the assigned coordinates. PROJECTION - add non-axial null(s) to beams. See BF SET NULLS. NONE - don't use any nulls.

BF LIST NULLTYPE

Echo the NULLTYPE.

For PROJECTION nulls:

BF CLEAR NULLS <BEAMxxx|ALL>

Clear projection null assignments for a beam or all beams.

BF ADD NULL BEAMxxx AZEL <azDeg> <elDeg> BF ADD NULL BEAMxxx J2000 <raHr> <decDeg> BF ADD NULL BEAMxxx GAL <longDeg> <latDeg>

Add a projection null to the specified beam using the given coordinates. Multiple nulls can be added per beam.

BF LIST NULLS <BEAMxxx|ALL>

List the projection nulls for a beam or all beams.

Beamformer: Calibrate & Point

BF CAL <DELAY | PHASE | FREQ> INTEGRATE <secs> CYCLES <count>

Perform a beamformer calibration of the requested type, using previously assigned beam coordinates, for INTEGRATE seconds, repeated CYCLES times. Uses latest TUNE freq, OBSLEN, and ATTN settings.

BF POINT

Point all beams that were previously assigned coordinates.

[Note: the command is 'backgrounded', i.e., control is returned to the operating system as soon as the pointing is valid, but the beamformer continues to run.]

Messages

ATA to backend, sent on control connection:

REQUEST_LOCK_RELEASE <USE-PRIMARY-POINTING>

PRIMARY_POINTING_CHANGE_ABOUT_TO_OCCUR

LOCK_GRANT <CHANGE-PRIMARY-POINTING | USE-PRIMARY-POINTING>

OK_TO_REQUEST_LOCK <USE-PRIMARY-POINTING>

Notes
Example

bf reset

bf set obslen 500

  1. assign ants (2 beams, dual pol, separate ant lists)

bf clear ants all

bf set ants beamxc1 5a,5b,5c bf set ants beamyc1 5a,5b,5c bf set ants beamxc2 3a,3b,3c bf set ants beamyc2 3a,3b,3c

bf list ants all

beamxc1 5a,5b,5c
beamyc1 5a,5b,5c
beamxc2 3a,3b,3c
beamyc2 3a,3b,3c

bf init

  1. assign target position to beams & do cal
  2. 3c84 ra,dec = 3.33,41.51
  1. point antennas

point 5a,5b,5c j2000 3.33 41.51 point 3a,3b,3c j2000 3.33 41.51

  1. wait for ants to reach requested position
  2. before issuing next commands

bf set coords beamxc1 j2000 3.33 41.51 bf set coords beamyc1 j2000 3.33 41.51 bf set coords beamxc2 j2000 3.33 41.51 bf set coords beamyc2 j2000 3.33 41.51

tune c 1420

bf cal delay integrate 10 cycles 3

  1. wait for cal to complete

bf cal phase integrate 20 cycles 3

  1. wait for cal to complete
  1. point antennas at observing targets

point 5a,5b,5c j2000 4 -25 point 3a,3b,3c azel 180 20

  1. wait for ants to reach requested position
  2. before issuing next commands
  1. assign beam positions

bf clear coords all

bf set coords beamxc1 j2000 4 -25 bf set coords beamyc1 j2000 4 -25 bf set coords beamxc2 azel 180 20 bf set coords beamyc2 azel 180 20

  1. point beams

bf point

[backend can start taking data at this point]

  1. use null beams in place of targets (on-axis null)

bf set nulltype axial

bf point

  1. point at targets, but add nulls into the beams

bf set nulltype projection bf clear nulls all

  1. set up two beams so that they act as nulls
  2. for each other

bf set nulls beamyc1 beamyc2 bf set nulls beamyc2 beamyc1

bf point

Monitor Status Format

Generically:

ARRAY: >time<

For each beam (32 total): BEAMxxx: SUBARRAY: <dish summary counts> <wrap> <zfocus> <gcerror>

BEAMxxx: PRIMARY: <commanded-coord-sys> <az el> <ra dec> <glong glat>

BEAMxxx: SYNTH: <commanded-coord-sys> <az el> <ra dec> <glong glat>

BEAMxxx: IF: <skyfreq> <attn>

For each tuning (4 total):

TUNING{<tuning>} : <skyfreq>

END

Where:

With keywords:

ARRAY: <HH:MM:SS UTC>

For each beam (32 total):

BEAMxxx: SUBARRAY: NANTS xx NSHAREDPOINTING xx NTRACK xx NSLEW xx NSTOP xx NOFFLINE xx NERROR xx WRAP <0 | 1> ZFOCUS xxxx.x MHz GCERROR xxx deg

BEAMxxx: PRIMARY: <AZEL | J2000 | GAL> AZ xxx deg EL xxx deg RA xxx hr DEC xxx deg GLONG xxx deg GLAT xxx deg

BEAMxxx: SYNTH: <AZEL | J2000 | GAL> AZ xxx deg EL xxx deg RA xxx hr DEC xxx deg GLONG xxx deg GLAT xxx deg

BEAMxxx: IF: SKYFREQ xxxxx.xxxxxx MHz ATTN xx.x DB

For each tuning (4 total):

TUNING{A-D}: SKYFREQ xxxxx.xxxxxx MHz

END

Where:


Example

ARRAY: 22:46:36 UTC

BEAMXA1: SUBARRAY: NANTS 1 NSHAREDPOINTING 1 NTRACK 0 NSLEW 0 NSTOP 0 NOFFLINE 1 NERROR 0 WRAP 0 ZFOCUS .000000 MHz GCERROR .000000 deg

BEAMXA1: PRIMARY: AZEL AZ .000000 deg EL .000000 deg RA .000000 hr DEC .000000 deg GLONG .000000 deg GLAT .000000 deg

BEAMXA1: SYNTH: AZEL AZ .000000 deg EL .000000 deg RA .000000 hr DEC .000000 deg GLONG .000000 deg GLAT .000000 deg

BEAMXA1: IF: SKYFREQ -15229.145600 MHz ATTN 0.0 DB

BEAMYA1: SUBARRAY: NANTS 1 NSHAREDPOINTING 1 NTRACK 0 NSLEW 0 NSTOP 0 NOFFLINE 1 NERROR 0 WRAP 0 ZFOCUS .000000 MHz GCERROR .000000 deg

BEAMYA1: PRIMARY: AZEL AZ .000000 deg EL .000000 deg RA .000000 hr DEC .000000 deg GLONG .000000 deg GLAT .000000 deg

BEAMYA1: SYNTH: AZEL AZ .000000 deg EL .000000 deg RA .000000 hr DEC .000000 deg GLONG .000000 deg GLAT .000000 deg

BEAMYA1: IF: SKYFREQ -15229.145600 MHz ATTN 0.0 DB

...

BEAMYD4: SUBARRAY: NANTS 42 NSHAREDPOINTING 39 NTRACK 39 NSLEW 0 NSTOP 0 NOFFLINE 3 NERROR 0 WRAP 0 ZFOCUS .000000 MHz GCERROR .000000 deg

BEAMYD4: PRIMARY: AZEL AZ 10.000000 deg EL 50.000000 deg RA 2.108369 hr DEC 78.433181 deg GLONG 126.782079 deg GLAT 16.126437 deg

BEAMYD4: SYNTH: AZEL AZ .000000 deg EL .000000 deg RA .000000 hr DEC .000000 deg GLONG .000000 deg GLAT .000000 deg

BEAMYD4: IF: SKYFREQ 1420.000000 MHz ATTN 0.0 DB

TUNINGA: SKYFREQ 1520.000000 MHz

TUNINGB: SKYFREQ 1520.000000 MHz

TUNINGC: SKYFREQ 1420.000000 MHz

TUNINGD: SKYFREQ 1420.000000 MHz

END

Notes

See also


← controlcomponents.expect Index Telescopes →
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox