Broker for Observation Blocks (BOB)

BOB is the Broker for Observation Blocks (OB). OBs form the fundamental underpinning for the usage of the Telescope Control System. They provide a high level interface to observing and, if used efficiently, will maximize your `on sky' time by making the maximum parallelism available in the system available to the user. The users may be maintenance operators, instrument operators or astronomers.

BOB executes the internals of OBs which are called templates but, put simply, are sequencer scripts. The sequencer is the a program, technically called seqWish, which exists in many places within the VLT software. seqWish is a derivative of the wish program which provides the interpreter for a language called tcl (tool command language). The sequencer runs all the Graphical User Interfaces (GUIs) used in the telescope. In addition, in many places within the VLT software where building blocks are available, it is often the case that the sequencer is used to combine them.

Observing Templates

The observing template is in fact a pre-defined sequence of operations involving any convination of telescope, instrument and detector actions. The astronomer defines the parameters of this sequence and the relationship of the parameter file. The sequence of instructions implies as much as possible exactly what was specified will in fact be executed. Combinations of such sequences can be grouped together in an entity called an Observation Block (OB).

The templates themselves are sequencer scripts with commands to a single subsystem: The instrument control Observation Software (OS). The OS then communicates the instructions to the instrument, the detectors or the telescope via Telescope InterFace (TIF). Although in theory it is possible to allow direct communication to any subsystem. This is actively discouraged since the supervisory role of OS ensures that we can coordinate the activities and not have to put too much intelligence into the templates.

A typical template will provide for imaging with SUSI combined with a number of offsets. The parameters to the templates are defined in a Template Signature File (.tsf) which is exported by the control system to the Phase 2 Proposal Preparation (P2PP) system.

Once P2PP has been used to generate the parameters for the specific TSF, the combination is stored in the container - the OB.

Starting up BOB

Starting BOB by selecting the BOB option on the pop-up menu (on vue), The BOB: Broker for Observation Blocks will be displayed. You will need to configure BOB to talk to the OT. For this click on the configure BOB button and set the OH (Observation Handling) environment to be wg5ops. The other fields need not be changed. The Configure BOB Environment window will be displayed, there, one has to set the OS process name to either os0Control_emmiOs or os0Control_susiOs. The other fields need not be changed.

From BOB you can either LOAD an OB from a file (using the File menu) or get an OB from the OT. Use the `Fetch an OB' button to load into BOB the OB high lighted in the OT tool.

You may start running an OB from BOB (using the START' button), pause and abort an OB. A pause will pause at the end of the currently executing sequence. BOB uses a variety of fairly self-evident symbols to describe what is going on and if an audio enabled X-terminal is used BOB will also speak.

For example, while an OB is being executed BOB will display a green arrow next to the template being currently executed. The index in the template of the exposure (for example, 3 out of 5) will also be displayed. When the OB is finished and the OS cleaned up, a green diamond will appear indicating the OB is done. If an error is reported then a red flag will be shown next to the OB and template. When an OB is paused a pointing down finger will be displayed next to the OB and the paused template.

To insert a break point into an Observing block select at which sequence you wish to break and then click button-3 on your mouse.

When the execution reaches this point BOB will wait for a CONTINUE' command before proceeding. Clicking on button-3 again, will insert a skip point.

OBDs

When an OB is transferred to BOB from the OT it is completely memory resident. You may save any OB transferred from the OT to BOB as an obd file.

The obd files are plain ascii and can be edited to change parameters or even to add and remove templates. Assuming you wish to use some of the standard templates provided by the control system then the fastest way of working is to create a bunch of files with the suffix obd and use the `load from file' option in BOB to select them. In this configuration all the necessary parameters for the pipeline and archiving of your data will be available and you will have the full functionality of the telescope available to you.

What does an OBD look like?

#
# Example file returned by the NextObsBlocks function.
# It includes the description of one observation block
#

# Standard parameter file header

PAF.HDR.START   ;               # Marks start of header
PAF.TYPE                "ObsBlockDescription";  # Type of parameter file
PAF.ID                  "";     # Unused
PAF.NAME                "";     # Unused
PAF.DESC                "";     # Unused
PAF.CRTE.NAME           "OT";   # Observing Tool
PAF.CRTE.DAYTIM         "1997-11-05T23:34:45.67"; # Date+time of creation 
PAF.LCHG.NAME           "";     # Unused 
PAF.LCHG.DAYTIM         "1997-11-05T23:34:45.67"; # Date+time of last change 
PAF.CHCK.NAME           "";     # Unused
PAF.CHCK.DAYTIM         "";     # Unused
PAF.CHCK.CHECKSUM       "";     # Unused
PAF.HDR.END             ;       # Marks end of header 
# Observation Block description follows

OBS.ID          "125672"
OBS.NAME        "Test OB #1"
OBS.GRP         ""
OBS.PROG.ID     "99.Z-9999"
OBS.PI-COI      "Mathys"

TPL.ID          "SAT01"
TPL.NAME        "Target in field center and use guide star"
TPL.SEQNO       "1";    # 1, 2, 3, ...
TEL.TARG.ALPHA          "050015.47";
TEL.TARG.DELTA          "-345737.5";
TEL.TARG.EQUINOX        "2000";
TEL.TARG.PMA    "0";
TEL.TARG.PMD    "0";
TEL.GS1.ALPHA   "234501,00";
TEL.GS1.DELTA   "-300001.0";
TEL.GS1.MAG     "0.";

TPL.ID          "SOT01"
TPL.NAME        "Jgsdfjhgf test"
TPL.SEQNO       "1";    # 1, 2, 3, ...
DET.READ.SPEED  "slow";
DET.WIN1.BINX   "1";
DET.WIN1.BINY   "1";
DET.WIN1.ST     "T"
DET.WIN1.STRX   "1"
DET.WIN1.STRY   "1"
DET.WIN1.NX     "1124"
DET.WIN1.NY     "1024"
TEL.ROT.OFFANGLE        "0"
INS.FILT1       "I#705";
SEQ.NEXPO       "1";
DET.WIN1.UIT1   "1800";

TPL.ID          "SOT01"
TPL.NAME        "Jorge test"
TPL.SEQNO       "1";    # 1, 2, 3, ...
DET.READ.SPEED  "slow";
DET.WIN1.BINX   "1";
DET.WIN1.BINY   "1";
DET.WIN1.ST     "T"
DET.WIN1.STRX   "1"
DET.WIN1.STRY   "1"
DET.WIN1.NX     "1124"
DET.WIN1.NY     "1024"
TEL.ROT.OFFANGLE        "0"
INS.FILT1       "I#705";
SEQ.NEXPO       "1";
DET.WIN1.UIT1   "1800";

This is a plain ascii file in which you can change any parameters you feel like as long as they are legal. To check what is legal and what is not have a look in the signature file.