p12mProg: 12meter control program

Last Update: 28jan15

p12mProg program design
p12mProg commands
mode we use to run the p12m controller.
p12m logfile format

more info: patriot 12meter telescope


    The p12mProg is the AO control program for the 12meter telescope. It purpose is to:

p12mProg commands (top)

    The commands sent to the p12mProg via tcp/sockets are all in ascii. The communication protocol is:

The table below contains the currently supported commands with their options and a short description.
The Boldface part of the command/options  is the minimum characters that must be sent for the program to recognize the command/options.

return debugging info

 Query ephm info. It returns the following:
startSec1970 secEntry NumEntry Nopts ephmFileNm
  • startSec1970: Linux time for first entry loaded. 0's returned if no file loaded.
  • secEntry:the number of seconds between entries
  • NumEntry : number of entries that have been loaded
  • Nopts    : number of options (tokens after ra,dec)
  • ephmFileNm: name of ephemeris file that was loaded
ld type filename {startSec1970} 
  • load an ephemeris file into memory
  • type: type of ephemeris we are loading
    • 1 - standard jpl radar ephemeris (with rcv and tx entries)
    • 2 - date time ra dec  {optional values}
      • date,time,ra,dec same format as the standard radar ephemeris.
  • startSec1970: start loading at this time. def is start of file.
brakes on,motors de-energized, main contactor open.
main contactor closed,brakes are on, motors are de-energized
stop the telescope. The motors remain energized.
pos az el
move to setpoint position. az,el (both in degrees) using position setpoint mode.
rate azVel elVel
start moving at azVel,elVel (deg/sec) using velocity setpoint mode.
start tracking from the track array
return monitor info.
send nop, get reply from p12mProg. checks that it is alive.
clear points in tracking array. This will perform a mode stop before the clear.
don't send computed tracking points to p12m. Used for debugging
send computed tracking points to p12m.
{-Ux} p1 p2 -Cp -Tp {-o o1 o2 -Co -To} {-r  r1 r2 -Cr -Tr}
Point to track. It consists of 3 tupples: position(p1,p2), offset(o1,o2), rate(r1,r2)
  • -Ux define units for this and following tupples (pos,offset,rate)
    • Ur: radians, Ud; degrees,Un normal coords:(depends on coord sys..see below)
      • -Un is the default units.
    • You can redefine units eg: -Ud p1 p2 -o -Ur o1 o2 -r -Ud r1 r2
      • Once you redefine the units, this  remains the units for the following tupples (until another -U)
      • Watch out for -Un with rates. Flor J,b  this is hhmmss/sec ddmmss/sec.
    • for rates it is Units/sec.
  • -cX coordinate system to use for Position,Offset,Rate. keys are:
    • j : j2000. -Un is hhmmss.s,ddmmss.s
    • b: B1950 -Un is  hhmmss.s,ddmmss.s
    • g: galactic -Un is  deg,deg
    • a: azEl      -Un is  deg,deg  this includes the model correction
    • x: azEl      -Un is   deg,deg  no model included
    • s: azEl       -Un is   deg,deg  great circle az
    • e:ephmJ2000   -c ignored. input is j2000 coordinates
    • r:ephmRcv       -c ignored. input is ra,dec of date. receive ephemeris
    • t:ephmTx         -c  ignored. input is ra,dec of date. transmit ephemeris.
  • -tX time to start executing tupple
    • AST secFromMidnite (utc - 4, not ut1).
    • -tO, -tR if suppled should be after-tP
  • tracking points are sent to the p12controller 2 seconds in advance.
  • the p12mProg has a current pnt that it uses to convert to az,el (once a sec 2 secs in the future).
  • If you put a timestamp on the position part of the pnt, and it is more than 2 seconds in the future, then this pnt will be a pending pnt in the p12mProg. When the time (2 secs in the future) arrives, the p12mProg will move the pending pnt to the current pnt and start using it to convert to  az,el.
  • there is only 1 pending pnt in the p12mProg. If you have a pending pnt, and then you send another pnt (pending or not) the old pending pnt will be discarded,.

Mode we use to run the p12m controller  (top)

    The p12m controller has lots observing modes. Most of these are not used by the p12mProg. It converts everything to az,el before sending
it to the p12mcontroller. The p12m controller settings used by the p12mProg are:

<- page up