Observing is done using virtual destop on the song1m virtual machine.
There should be a terminal with at least 3 tabs, running:
aposong : main control window
status : populates status window and databases
guider : process that waits for guide commands from aposong
In addition to this, processes must be running on the machines dome1m, pwi1m, and spec1m, but these are generally fairly stable, and only need to be checked in case of issues.
Under normal operations, robotic observing is accomplished with a single command in aposong:
robotic.observe(foc0,display=disp)
where foc0 is an inital focus guess, and disp is a pyvista display object if you want to see images as they are being taken.
The basic robotic workflow is:
touches an MJD file to show sequence has started
wait until sunset+dt_sunset (dt_sunset can be set with keyword to robotic.observe, default=0)
wait until safe to open, as determined from either 2.5m open, 3.5m open or override set
open dome and mirror covers, and turn on telescope fans
wait until sunset (if not yet there)
open louvers
wait until nautical twilight+dt_nautical (also set by keyword, default=0)
do an initial focus run (until initfoc=False keyword is given)
loop until morning nautical twilight
if unsafe to observe, close dome and wait 90 seconds
else if dome is closed and now safe to open, open dome
else if it has been more than dt_focus (default=1.5 unless specified by keyword), do a focus run
else choose best object to observe
close dome, turn off fans, close louvers, stop guider, park telescope and dome (all via domeclose())
take morning cals
create guider movies, focus plots, reduce data, and make web page
sends successful completion email with webcam snapshot attached, removes MJD file
Two cron jobs run at 8:00 each morning: