Flightdeck-UI Elements

This chapter describes a number of user interface elements planned for the Flightdeck-UI project. The current release implements several basic instruments, described in the Basic Instruments section below.

Basic Instruments

Several Flightdeck-UI elements are generalized from basic flight instruments. The usual form of such instruments is that of a round gauge, with one or more needle indicators. This is a useful idea; many people still prefer analog speedometer in their cars. The needles (or hands) of such instruments make a kind of "gesture" during operation, allowing the user to recognize at a glance (from the motion of the needle as well as its angle) if something is wrong with the system being monitored. Especially with experience, the effort required to get an overall picture from an analog gauge is usually less than that needed to interpret and comprehend a digital readout.

The current release of Flightdeck-UI does not support numerical labels or scale markings on the gauge faces, relying instead on the pure "gestural" value of the indicator needles. An aggregated Label object (see Architecture of the Flightdeck-UI Library) allows the concurrent digital display of the monitored value, if the user requires an exact measurement.

In the future, support for markings and labels may be provided for completeness, with the suggestion that the feature be used carefully if at all. While some coarse markings and labels can be helpful, the concurrent digital output already provided is more appropriate if a precise reading is required. The analog gauge is of greatest help in quickly assessing the condition of a system when one's attention cannot be fully focused on monitoring all aspects of its operation.

Vertical Speed Indicator

In an airplane, the Vertical Speed Indicator (VSI) shows how fast the aircraft is climbing or rising [Tra99]. The traditional form of this instrument is a round gauge with a single needle. Its zero position in the middle left (i.e. at 180 degrees). When the aircraft is climbing, the needle moves clockwise, above the zero point. In a dive, the needle rotates counterclockwise, below the zero point. The Flightdeck-UI version of the VSI is shown below. It should be noted that the color bands on the dial face (indicating normal, warning and critical regions) is an enhancement typically used in airspeed rather than VSI gauges.

Altimeter

The airplane's altimeter gauge shows the aircraft's height above sea level (this is a slightly simplified explanation, but the missing details are not important here) [Tra99]. Multiple needles indicate altitude rather like an analog clock indicates time — with shorter needles showing the larger quantities. In fact, the typical altimeter greatly resembles a clock at first glance. The diagram below shows the Flightdeck-UI version of the altimeter.

Uses for an Altimeter-style Element

An altimeter-style gauge is very helpful in displaying a single quantity which must be monitored at several different scale levels. This is certainly the case with an aircraft's altitude, but the common analog clock is a more familiar example to most readers.

The typical such clock has a hand for the minutes, and a hand for the hours. When using the clock, one monitors some processes at the former scale level, and some at the latter. For example, it may take 20 minutes to travel from home to the office (if one is lucky). Once at the office at 9 in the morning, there will be three hours left until lunchtime. Despite the fact that an hour is 60 times longer than a minute, the analog clock clearly indicates the time at both these scales — a highly useful feature for getting through the day.

While it takes children awhile to become comfortable with an analog clock, it is easy afterwards to tell time at a glance — even if no numbers are indicated on the clock's dial. The patterns formed by the positions of the hands become familiar.

The sensitivity of most people to the patterns of altimeter-style devices can be utilized to monitor other quantities. For example, the amount of free memory in a system can be measured by such a gauge, with the big hand indicating megabytes and the small hand indicating tens of megabytes. A similar approach (most likely with different scaling) can be used to indicate how much data has passed over a network. The familiar installation progress indicator can also be represented, with the big hand indicating the percentage installed for the current package, and the little hand showing the percentage completed for the entire installation.

Annunciators

An annunciator can be used to indicate an emergency or error condition. Flashing lights, alarms, voice prompts and various combinations of the three can be used to indicate such events. The Flightdeck-UI altimeter gauge (see the Altimeter Design section, above) includes some annunciator functionality.

Another annunciator element (added in the 0.1.3 release) is provided by the AnunStatus class. While in some ways similar to the existing Tkinter method for implementing status bars [Lun99], AnunStatus includes functionality to highlight other elements on the display, thus serving as a generalized error condition annunciator. The cmdwatch.py demonstration program uses AnunStatus in this fashion, as illustrated by the following diagram. The top half of the diagram shows the cmdwatch.py program just before the user entered an incorrect value. The bottom half shows how AnunStatus flags the improper entry.

Annunciator features are an active area of focus for Flightdeck-UI, and there will be additional such functionality in future releases. Annunciators are a very useful source of supplemental information in a user interface.