GBT's Observer Interface Written in Glish

Rick Fisher - NRAO/Green Bank

Several years ago I threw together a prototype graphical interface for the GBT specifically tailored to observers' control of the telescope. This prototype was written in glish/Tk plus a bit of C++, mainly because I was familiar with glish from early aips++ experience. Glish does not benefit from the enormous user community of a language and toolbox like Tcl/Tk, but this does not appear to have been a big disadvantage. Much of the GUI design involved detailed creation of widget combinations at a fairly low level to make optimum use of screen space and quite a bit of widget interconnection to make the GUI respond to interdependent parameters in a way that might be expected by an observer.

The GBT observer interface prototype seemed to fit the requirements of observer's well enough to warrant writing the real interface, now called "GBT Observe," in glish/Tk after a redesign of the code structure. The observer interface now consists of a simulator for each GBT hardware device, written entirely in glish/Tk, a parameter interface to the GBT's monitor and control software, a GUI for interactive observing, and a basic telescope control scripting syntax for programmed observing. The interactive and programmed modes of observing are integrated so that one can use one or the other as appropriate at any given moment. The observing script syntax parser has been written by Darrell Schiebel in C++, and a few utilities and an interface to the JPL solar system ephemeris have also been written in C++. Nearly all of other code is in glish simply because code development is easier in the interpreted language, and computation efficiency has seldom been an issue.

Telescope observing procedures, from simple tracking and on-offs to raster maps, are written in glish and built into the observer interface. These should suffice for the great majority of GBT observing, but an observer is free to write his or her own procedures using the templates provided. The scripting syntax for programmed observing intentionally excludes arithmetic operators and most flow control to keep the syntax simple. The more powerful language features needed for procedure writing are already available in glish, which most observers will know from their use of aips++.

GBT Observe is still under construction, mostly adding interfaces to the many hardware modules in the system. The core interface to the antenna and a couple of back-ends has been in use for about a year on the GBT mockup in the Jansky lab. A few key interfaces need to be completed in time for GBT commissioning, and detailed control of some of the hardware not normally set up directly by observers will be added as time permits.

A few web documents describing the basic layout from the observer's point of view and the scripting language syntax may be found at

More complete observer documentation is being adapted for the main GBT web pages.

A bit of programmer's documentation on the layout of the code directories and the details of adding a hardware device interface to GBT Observe is posted at

Since a GBT simulator is part of the observer's interface it should be possible to export the entire interface to a user's home computer for testing observing scripts and user-written procedures before using them on the telescope. We still need to work out the details of exporting the associated C++ glish clients. One way might be to make the interface code part of the aips++ distribution.