The ESI Spectrograph Online Documentation

KTUI (KTL UI) aka Dashboard

The KTUI suite consists of one application ktui, to which sym links are made called obsr and engr. The value of argv[0] is used to determine the behaviour of the application, so it's important that these links are made and that they are correctly spelled. The 'obsr' mode is for development and deployment of 'observer' or 'end user' dashboard GUIs, and the 'engr' mode is intended more for ad hoc or 'engineer' GUIs. The actual differences of behaviour are several, subtle, and not worth going into in detail here.

KTUI (Dashboard) is a KTL GUI lego set. The designer can, using the Dashboard interface in developer mode, interactively create "meters" and other widgets which represent keywords visually. The Dashboard is pre-loaded with knowledge about these keywords which makes it respond appropriately to the designer's requests.

To get this knowledge, at startup it loads a .kwd file (found in KROOT/data/Instrument/ for Lick instruments) which informs it fully about available service keywords, their semantics, datatypes, relationships to one another, etc. The designer/user can then associate the keywords with graphical widgets which display the keyword values -- such as Textboxes, Dial Guages, Bar Gauges, Plots, Logs, Buttons, etc. The designer/user distributes these objects around the work surface (a Tk canvas) into a "dashboard". This layout can be saved and reloaded at a later time. It is saved as/loaded from a plain text file called (something).dbd.

The essential feature of Dashboard is conditional attributes. Every item on the canvas, and the canvas itself, has a list of Tk attributes; but it can have N lists of attributes, each of which applies only if a certain condition (based on keyword values and global variable values) is true. The designer/user can easily establish alternate conditional attribute sets using the Attribute Editor for any object. Since these conditional attributes include position, colour, stipple, labelling, menu contents, etc., simple "animations" and modal reconfigurations are very easy to do without writing any code other than the boolean conditional expression itself.


For programmers, or those who wish to build their own Dashboards, more information can be found online in the application itself (it offers extensive online help) or in the README files in the source tree.

The Observer documents are hand-written. The Technical Documents are produced from plain text files in the CVS source tree by some Tcl scripts written at UCO/Lick Observatory. The Reference Documents are mostly generated by software from data in a relational database. Individual authors are responsible for the content of the Observer and Technical Documentation. The Lick SPG as a whole is responsible for the content of the Reference doco. Send mail to de@ucolick.org to report inconsistencies or errors in the documentation.