NATIONAL RADIO ASTRONOMY OBSERVATORY

MEMORANDUM

DATE:

TO: Aron Benett and Joe Brandt

FROM: Ron Maddalena

SUBJECT: GBT Operator's Position Panel

The following describes the suggested design for two of the GBT operator screens (a.k.a. consoles or panels) that M&C will need to implement. The first screen monitors the telescope's position and the second controls the telescope's position. (See the preliminary hierarchy I distributed for the relationship of the two screens to the other screens in the design.) I chose these two screens since they include features common to many of the other designed screens. The subject of the two screens is such that staff members will be familiar with their purpose and, hopefully, staff members will feel comfortable trying the screens and be more inclined to criticize them.

This document has a few purposes, one of which is to provide you with information to implement the design. It also serves as a prototype of how over the next few months I will describe other screens. (Thus, feel free to advise me if the below discussion doesn't suite your needs). The memo also could be the roots of a 'manual' for the GBT operators.

I. How to use this document:

First, I will describe some of the design goals and philosophy behind the design. I hope that this discussion will give you a feel for what I hope the screens will accomplish and why the design looks like it does.

Since I repeatedly use the same widgets within a screen and between screens, I next describe the widgets in the design. I will give a description of how each widget. Since many of the widgets are merely suggestions, I am relying on you to suggest more suitable widgets, especially if you believe the widget I am using is inappropriate or too expensive to implement.

Finally, I will describe the contents of the two screens you are to implement.

II. Design Goals and Philosophy:

The design of the operator's screens has numerous goals:

To achieve these goals, I have devised the following guidelines for the design:

III. Widgets:

The following describes the types of widgets on the two screens you will be implementing. (Please advise me if you have better names for the widgets.) In future memos I will describe the additional widgets that will be used on other screens.

Background -- The background onto which other elements are placed. Might be a light color (e.g., gray).

Label -- text strings with a font size that depends upon the importance of the label widget. Can be horizontal or (rotated) vertical. All of the label widgets in the design up to now are only a few words long. Probably will not need to support multiple lines or justification. There's some possibility we will need to support color and a remote possibility we will need Greek characters, subscripts, superscripts, or math symbols.

Separators and Boxes -- lines and rectangles drawn on the screen to help the eye group related screen elements. Lines and the outlines of rectangles might have one out of a few different thicknesses and styles (solid, dash, ...). Though not a necessity at this time, boxes might have 'shadows' to give the appearance of being raised or lowered with respect to the rest of the screen. We don't need more than a few of these suggested format options (e.g., two line thicknesses, two line styles, two box types might be enough of a choice). Like labels, separators and boxes are static widgets.

Monitored value -- text string that report on the value of one or more system component. As the state of the system component changes, so does the value reported by the monitor widget. Most often these will report numerical values but I see some need for reporting text. For numerical fields, the format of the displayed number needs to be specified (e.g., number of digits, if non-integer the location of decimal point, whether a preceding plus sign is needed for positive values, any leading zeros, ....). Since it is important that numerical characters don't shift as values change (e.g., as a wide '0' changes to a narrow '1'), I suggest we use a fixed-size font.

To distinguish monitor widgets from label widgets, I enclose monitor widgets within a rectangle. A few styles of rectangles might be handy (e.g., rectangle, rounded rectangle, raised, lowered). The size of the rectangle is dictated by the size of the characters within the widget. The character size depends upon the importance of the monitored system component.

I seem not to need a text label associated (attached) to each monitor widget; instead, the tendency is to use a label widget to describe a group of monitor widgets. When I do associate a label with a monitor widget, I center the labeling either above or to the left of the widget's rectangle. Where I place the label depends upon the length of the label, the size of the widget, any column or row relationships between the widgets on the screen, and the aesthetics of the placement.

Some of the monitored components will report a warning or an error condition (e.g., Azimuth limit switch thrown) and I suggest we represent a warning or error has occurred by either changing the color of the characters in the widget or the color of the rectangle's fill. For important errors we may want the coloring to flash on and off. Do we also want the widget to generate a sound when serious errors occur?

Buttons -- The user clicks on a button to have a screen element perform an action. The buttons I have used are rectangles with internal labeling. One type of button opens other screens and I represent them with labeling similar to that found in Windows (i.e., the label ends with an ellipsis; e.g., "CONTROL...."). I have used rounded rectangles to distinguish buttons that perform a hardware action (e.g., move the telescope). If possible a sound might indicate that a button widget has been pressed and another sound might indicate that the computer or telescope has started to execute the action.

The size of a button should be related to the length of its label and the importance of the action. Button labels are always static. As in most GUIs, I think we will need to 'turn off' the ability to click on a button when certain conditions are met (e.g., the button to move the telescope might be rendered inactive when the turret is rotating; the button to open a screen is rendered inactive when the screen is already open; or, the button to perform some action is inactive if the user does not meet security requirements). The button might change its appearance when it is inactive (e.g., it is grayed out).

Combined Button and Monitor -- This widget has the characteristics of a button widget but also the characteristics of a monitor widget. That is, a button widget that has a label which is dynamic and which reports the value of some system component. In addition to a dynamic label, the combined widget might also have an additional static label.

Pull Down -- Allows the user to choose between multiple, pre-defined, mutually-exclusive choices ( just like the pull downs found in most GUIs). I have yet to specify in the design a pull down that required a list of choices that wasn't static. After a user makes a choice, the widget displays the text describing the chosen item.

Sometimes I use a single label widget to label more than one pull down and sometimes I label individual pull down. Labeling is usually above the widget. The size of the pull down and the size of it's labeling depend upon the importance of the choices offered to the operator. As in most GUIs, I think we will need to 'turn off' the ability to use a pull down when certain conditions are met. The pull down might change its appearance when it is inactive (e.g., it is grayed out).

Limits -- Shows graphically where a component's monitored or commanded value is with respect to the possible range of values for that component. For example, element 14 on drawing 2 will graphically show the telescope's elevation with respect to the telescope's elevation limits.

The limit widgets I have used indicate a few important values concerning a telescope component. For example, one limit widget displays the current and commanded value for elevation. Another might display the current air temperature plus the maximum and minimum temperatures over an 8-hour period. Limit widgets could be horizontal or vertical, depending upon what is best.

I have used colored regions within the widget to depict the important values the monitored component might have. For example, I use a yellow region within a wind speed widget to indicate the range of speeds above which observing shouldn't occur and below which the telescope brakes should be set. There can be multiple (0-4) color regions within a single widget and the colored regions sometimes may not need to be located at the ends of the widgets (e.g., 'the cone of avoidance' in elevation).

Check Box -- A check box widget is identical in function to what is found in most GUIs for giving a user the ability to turn on or off certain features. Unlike pull downs and choice widgets, if there are more than one check box on a screen, the user can turn on from none to all of the check boxes (i.e., choices are not mutually exclusive). So far all the check boxes I have specified are labeled to the right of the widget. The size of the check box and the size of it's labeling depend upon the importance of the choices offered to the operator. As in most GUIs, I think we will need to 'turn off' the ability to use a check box when certain conditions are met. The check box might change its appearance when it is inactive (e.g., it is grayed out).

Thumb Switch -- The numerical value of some system components will need to be controlled. Often, the operator will need to note and modify the value of a component. Sometimes, the operator will need to enter a new value for a component with no regard to the current value. At other times, the operator will want to modify the current value with no concern about the current value of a component (e.g., to raise the focus by 50 mm regardless of the current focus value). The thumb switch widget I envision allows these three ways of interacting with a component.

One method of entering a value is like a thumb switch in that the user can click on up and down arrows to alter a value. There is an up and down arrow for each digit displayed by the widget. The widget will need to know the 'base' of the number it is supposed to represent. For example, if the base is decimal and the number is 123.9951, six up clicks on the second to last digit should produce the number 124.0011 (and not 123.9911). But if the base is sexagesimal and the number is 12:03:57, a down click on the third digit and a subsequent four up clicks on the last digit would produce 11:54:01 (and not something like 12:93:51).

To enter values using the other methods, the thumb switch widget could use something like a double mouse click to open a text widget that contains the value of the component. When the text widget is brought up, if the value within the text field is highlighted, then something like pressing the 'del' key might erase the current value and the user could enter a completely new value. Or, by using the mouse, arrow keys, and keyboard, the user instead could alter the displayed value.

[I've assumed the 'thumb switch' mode of entering a value is the most useful and is the default mode with the text field mode brought up on request. However, we might find that for some system components that the text field mode is most useful and only occasionally will the thumb switch mode be needed. In these cases, the 'text field' mode must have a way to bring up the 'thumb switch' mode.]

The size of a thumb switch should be related to the importance of its action. The size of characters used for the switch and any labeling is also related to the importance of the action. I think we will need to 'turn off' the ability to modify a thumb switch when certain conditions are met. The thumb switch might change its appearance when it is inactive (e.g., it is grayed out).

Of the above widgets, only button, combined button and monito, pull downs, check boxes, and thumb switches can perform an action. The remainder either monitor a system component or help label or organize the other screen elements.

IV. Telescope Position Panels:

The attached drawings depict two of the designed screens. One of the screens monitors the telescope's position and the other controls the position. Each screen has two drawings. One drawing, fully labeled and with example values, is to scale and is my best representation of what the implemented panel might look like. The other, more schematic drawing has circled numbered assigned to each screen element. The description of a screen element will use the circled numbers as a way of cross referencing the figures with the text.

For each screen element I will describe what the element monitors or controls. I have tried to make the descriptions unambiguous (e.g., what do I mean by encoder Azimuth; where is zero). When applicable, I will give units, formats, number of digits displayed, character size, etc. for each element. I will suggest when needed what colors or sounds a screen element might use. There are many ways of presenting the same information or controlling the same telescope component and in many cases, I am ambivalent as to what approach to take; please suggest alternative approaches.

IVa. Position Monitor:

The position monitor gives the operator the ability to check the status of the telescope's azimuth and elevation drives and the telescope's position. The screen monitors the telescope's position both at the hardware level and with regards to astronomical observing. Its parent screen will monitor the health of all of the telescope components and its brother and sister screens monitor things like the position of the subreflector, turret, etc.

In the discussion I will give the location of a screen element (using the labels on the schematic drawing 2), the function of the screen element, the type of widget to use, its numerical format (when applicable), style (color, character size, etc), and labeling.

Elements (1)-(14), (31), and (32) in drawing 2 monitor the health of the telescope's hardware. Elements (15)-(28) monitor the astronomical observations. Elements (29) and (30) open 'child' screens, one of which is the 'pointing control' screen discribed in section IVb.

Element: 1

Function: Reports the Local Apparent Sidereal Time. This element may be moved to screens that monitor all aspects of the time (IRIG, calander, etc). But, until the 'timing' screens are designed I think we should place this element on the position monitor screen.

Widget: Monitor

Units and Format: HH:MM:SS.s or HH:MM:SS . Include the colons. The exact format depends upon how fast the screen element can be updated. Example: 01:34:09. Note the inclusion of preceding zeros for all fields so as to eliminate any jumping in the display (e.g., don't want 1:34:9.3 since the display will jump left one character when the clock will read 1:34:10.3). This style should be used throughout for 'time' or sexagesimal strings.

Style and Labeling: As shown

Element: 2

Function: Reports the UTC. All other details same as for element (1)

Widget: Monitor

Units and Format, Style, Labeling: Same as for element (1).

Element: 3

Function: Reports the azimuth encoder reading that the telescope is commanded to go to. This directly refers to the encoder readings; the pointing equation, etc are not applied. Must indicate exactly where the telescope is commanded to go to with respect to its limit switches. As such, the range of values this component can take is ~540 (360 plus ~180 extra wrap).

Widget: Monitor

Units and Format: +DDD.ddddd . Unclear whether zero should be south or north. The definition of zero will be the same as what is decided about the definition of zero for astronomical azimuth. If zero is south, then the range of values this widget will report will be -270 to +270. If north, then -90 to +450. Preceding zeros and plus signs not necessary but trailing zeros necessary. Examples: 123.45678, -12.12345, 1.00010, -0.98765, 0.00100). Note that angles throughout the design will be given to better than 1".

Style: Large characters. Turns 'red' if the telescope is asked to go beyond its limit switch. Turns yellow is the telescope is asked to go closer than n degrees from its limit switch where 'n' is yet to be defined.

Labeling: Part of a 'table'; labeling as indicated.

Element: 4

Function: Reports the elevation encoder reading that the telescope is commanded to go to. This directly refers to the encoder readings; the pointing equation, refraction, etc are not applied. Must indicate exactly where the telescope is commanded to go to with respect to its limit switches. As such, the range of values this component can take is ~90 (~5 to ~95).

Widget: Monitor

Units and Format: DD.ddddd . Preceding zeros and plus signs not necessary but trailing zeros necessary. Examples: 23.45678, 93.12345, 10.00010, 89.00100).

Style: Same as element (3) except might turn blue if commanded into the 'cone of avoidance'.

Labeling: Part of a 'table'; labeling as indicated.

Element: 5

Function: Reports the current azimuth encoder reading. This directly refers to the encoder readings; the pointing equation, etc are not applied. Must indicate exactly where the telescope is with respect to its limit switches. As such, the range of values this component can take is ~540 (360 plus ~180 extra wrap).

Widget: Monitor

Units and Format: Same as element (3)

Style: Large characters. Turns 'red' and flashes if the telescope is beyond its limit switch; turns yellow if the telescope is closer than n degrees from its limit switch.

Labeling: Part of a 'table'; labeling as indicated.

Element: 6

Function: Reports the current elevation encoder reading of the telescope. This directly refers to the encoder readings; the pointing equation, refraction, etc are not applied. Must indicate exactly where the telescope is with respect to its limit switches. As such, the range of values this component can take is ~90 (~5 to ~95).

Widget: Monitor

Units and Format: Same as element (4)

Style: Same as element (4) except might turn blue if position is in the cone of avoidance.

Labeling: Part of a 'table'; labeling as indicated.

Element: 7

Function: Reports the current rate at which the telescope is moving in azimuth. If azimuth is increasing, then the rate will be positive. Can either be the rates as reported by the hardware or calculated from how fast the indicated position (element (5)) changes.

Widget: Monitor

Units and Format: +XXXX.xx in '/min (= "/sec = /hr). Preceding zeros and plus signs not necessary but trailing zeros necessary. Examples: 123.4567, -12.1234, 1.0001, -0.9876, 0.0010).

Style: Large characters. Might turn yellow if within r '/min from the telescope's maximum rate where 'r' is yet to be determined.

Labeling: Part of a 'table'; labeling as indicated.

Element: 8

Function: Reports the current rate at which the telescope is moving in elevation. If elevation is increasing, then the rate will be positive. Can either be the rates as reported by the hardware or calculated from how fast the indicated position (element (6)) changes.

Widget: Monitor

Units and Format, Style, and Labeling: Same as element (7).

Element: 9

Function: Reports the difference between elements (5) and (3) (.ie., indicated minus commanded). Will report a large value when the telescope is moving to a very different position.

Widget: Monitor

Units and Format: +DDD.ddddd ; positive if indicated > commanded. Preceding zeros and plus signs not necessary but trailing zeros necessary. Examples: 123.45678, -12.12345, 1.00010, -0.98765, 0.00100).

Style: Large characters. Turns orange if larger than d degrees where 'd' is related to the pointing tolerance and is yet to be determined.

Labeling: Part of a 'table'; labeling as indicated.

Element: 10

Function: Reports the difference between elements (6) and (4) (i.e., indicated minus commanded). Will report a large value when the telescope is asked to move to a very different position.

Widget: Monitor

Units and Format: +DD.ddddd ; positive if indicated > commanded. Preceding zeros and plus signs not necessary but trailing zeros necessary. Examples: 23.45678, -12.12345, 1.00010, -0.98765, 0.00100).

Style and Labeling: Same as element (9).

Element: 11

Function: Reports the azimuth error as reported by the servo system. If the servo system is healthy, this number will always be near zero, even during large moves. If the servo is lagging behind, the number will be negative.

Widget, Units and Format, Style, and Labeling: Same as element (9).

Element: 12

Function: Reports the elevation error as reported by the servo system. If the servo system is healthy, this number will always be near zero, even during large moves. If the servo is lagging behind, the number will be negative.

Widget, Units and Format, Style, and Labeling: Same as element (9).

Element 13

Function: Display the commanded and indicated azimuth (elements (3) and (5)) in relation to the full range of azimuth values and azimuth limits. The range of the widget is the same as element (3).

Widget: limits

Units and Format: Not applicable

Style: The widget shows the indicated (element (5)) and commanded (element (3)) azimuth as, for example, thick and dashed lines. The cardinal directions from left to right across the widget are: W, N, E, S, W, N, E; due south is at the center.

Red regions at the left and right of the widget will show where the azimuth crosses the first limit switch. Yellow regions inside the red regions indicate when the telescope is within 'd' degrees of the limit switch. Thus, the operator can see graphically where the telescope is positioned, where it is commanded to go, the magnitude of the difference between the commanded and indicated positions, and how close to a limit the telescope is or is commanded to go.

Labeling: None needed since the use of the widget is explicit in its design.

Element 14

Function: Display the commanded and indicated elevation (elements (4) and (6)) in relation to the full range of elevation values and elevation limits. The range of the widget is the same as element (4).

Widget: limits

Units and Format: Not applicable

Style: The widget shows both the indicated (element (6)) and commanded (element (4)) elevation as, for example, thick and dashed lines. The bottom and top of the widget correspond to ~5 and ~95.

Red regions at the top and bottom of the widget will show where the elevation crosses the first limit switch. Yellow regions inside the red regions indicate when the telescope is within 'd' degrees of the limit switch. A blue region will indicate the elevations where the telescope is in the 'cone of avoidance.' Thus, the operator can see graphically where the telescope is positioned, where it is commanded to go, the magnitude of the difference between the commanded and indicated positions, and how close to a limit the telescope is or is commanded to go.

Labeling: None needed since the use of the widget is explicit in its design.

Element 15:

Function: To allow the operator to pick the astronomical coordinate system used by (16)-(21).

Widget: Pull down

Choices: Choices will include: J2000, B1950, Apparent RA-DEC, Galactic, Apparent HA-DEC, Az-El, and possibly Mean RA-DEC, Mean HA-DEC, and ecliptic. The definition of Az-El differs from that of elements (3)-(6) in that the telescope's full pointing corrections, refraction, etc. have been applied (and 0<Az<360 and 0<El<90)..

Style: Not applicable.

Labeling: As shown.

Element 16:

Function: To report the commanded X-axis telescope position in the coordinate system chosen by element (15).

Widget: Monitor

Units and Format: Depends upon the coordinate system chosen by element (15).

Az-El, Galactic, (ecliptic): DDD.ddddd ; range: 0.00000-360.00000

RA-DEC (in its various flavors): HH:MM:SS.ss ; range 00:00:00.00 - 23:59:59.99

HA-DEC (in its various flavors): +HH:MM:SS.ss ; range: -12:00:00.00 - 11:59.59.99.

As with elements (1) and (2), you should add preceding zeros for all fields for a HH:MM... coordinate system so as to eliminate any jumping in the display. Preceding zeros and plus signs not necessary for DD.dddd systems. Trailing zeros necessary.

Labeling: None since the table arrangement clearly indicates what is being displayed.

Element 17:

Function: To report the commanded Y-axis telescope position in the coordinate system chosen by element (15).

Widget: Monitor

Units and Format: Depends upon the coordinate system chosen by element (15).

Az-El: DD.ddddd ; range: 0.00000-90.00000

Galactic, (ecliptic): +DD.ddddd ; range: -90.00000 - 90.00000

RA-DEC and HA-DEC (in their various flavors): +DD:MM:SS.s ; range -90:00:00.0 - 90:00:00.0

As with elements (1) and (2), you should add preceding zeros for all fields for a +DD:MM... coordinate system so as to eliminate any jumping in the display. Preceding zeros and plus signs not necessary for DD.ddddd systems. Trailing zeros necessary.

Labeling: None since the table arrangement clearly indicates what is being displayed.

Elements: 18 and 19

Function, Widget, Units and Format, labeling: Same as elements (16) and (17) except for reporting the telescope's indicated position instead of the commanded position.

Elements: 20 and 21:

Function: To report the rates at which the telescope is moving in the coordinate system chosen by element (15).

Widget, Units and Format, Labeling: same as for elements (7) and (8).

Elements: 22 through 28

Function: Same as elements (15)-(21). Allows the operator to display the telescope's coordinates in a second astronomical system.

Widget, Choices, Units and Format, Labeling: Same as for corresponding elements (15)-(21).

Element: 29

Function: To bring up the child screen dealing with the telescope's pointing corrections.

Widget: Button

Style and Labeling: As indicated on the drawing.

Element 30:

Function: To bring up the child screen dealing with controlling the telescope's position (i.e., the screen described in IVb). Only those who satisfy some security checks should be able to click on this button.

Widget: Button

Style and Labeling: As indicated on the drawing.

Elements 31 and 32:

Function: To report on the status of the Az and El drive and servo systems. Also allows one to bring up screens that report on the state of the Az and El systems. These children screens might be the HTML screens Joe has been playing with.

Widget: Combined Button and Monitor

Style and Labeling: To be determined after the Az and El system screens are designed. Color and flashing color will be used to indicate the health of the drive systems; strings will indicate the state of the servo system (e.g., brakes on, slewing, stopped, etc.)

Background and other screen elements: In addition to the above elements, the screen also uses labeling to distinguish itself from other screens. I also use lines to help organize the screen elements. Since this screen is critical, there should not be any way to close or move the window.

Ivb. Position Control

The position control screen gives the operator the ability to move the telescope position in any number of coordinate systems. Its parent screen, described above, cannot be closed or moved as long as the control screen is up. Only authorized staff members should be able to bring up (or use) this screen.

Element: 1

Function: Activates the screen and takes control away from the observer for control of the telescope. Must be 'unchecked' in order for the observer to regain control of the telescope. Maybe all other screen elements should be greyed out if this widget is unchecked. Once checked, the operator can then submit a position with the other elements on the screen. Closing the screen with element (20) automatically 'unchecks' this widget.

Widget: Check Box

Labeling: As indicated

Element: 2

Function: Allows the operator to chose a coordinate system for entering a position.

Widget: Pull Down

Choices: The choice of systems is: Az-El encoder, Az-El, J2000, B1950, Apparent RA-DEC, Galactic, Apparent HA-DEC, and possibly Mean RA-DEC, Mean HA-DEC, and ecliptic. Note from the discussion in IVa the difference between Az-El encoder and Az-El. When the screen comes up it will automatically use the coordinate system it used when it last was brought up (Az-El encoder would be the default for a first-time use).

Style: Not applicable.

Labeling: As shown.

Element: 3

Function: Allows the operator to enter an X-axis coordinate.

Widget: Thumb switch

Units and Format: Depends upon the coordinate system chosen by element (2).

Az-El encoder: +DDD.ddddd; range depends upon the definition of zero; either -270.00000-270.00000 or -90.00000-450.00000.

Az-El, Galactic, (ecliptic): DDD.ddddd ; range: 0.00000-360.00000

RA-DEC (in its various flavors): HH:MM:SS.ss ; range 00:00:00.00 - 23:59:59.99

HA-DEC (in its various flavors): +HH:MM:SS.ss ; range: -12:00:00.00 - 11:59.59.99.

A total of 8 digits plus one for the sign are needed. The colons in my drawings will need to be dynamically altered whenever a DDD.dddd system is chosen. When the screen come up, it will load into the widget the current telescope position in the last-used coordinate system.

Labeling: None since the table arrangement clearly indicates what is being displayed.

Element: 4

Function: Allows the operator to enter a Y-axis coordinate.

Widget: Thumb switch

Widget: Thumb Switch

Units and Format: Depends upon the coordinate system chosen by element (2).

Az-El encoder: DD.ddddd ; range ~5.00000-~95.00000

Az-El: DD.ddddd ; range: 0.00000-90.00000

Galactic, (ecliptic): +DD.ddddd ; range: -90.00000 - 90.00000

RA-DEC and HA-DEC (in their various flavors): +DD:MM:SS.s ; range -90:00:00.0 - 90:00:00.0

A total of 7 digits plus one for the sign are needed. The colons in my drawings will need to be dynamically altered whenever a DDD.dddd system is chosen. When the screen come up, it will load into the widget the current telescope position in the last-used coordinate system.

Labeling: None since the table arrangement clearly indicates what is being displayed.

Element: 5

Function: Displays graphically the current encoder Az position and the Az corresponding to the coordinate in elements (3) and (4) in relation to the full range of azimuth values and azimuth limits. The range of the widget is the same as for Az encoder. This widget does not control the telescope but assists the operator in choosing a coordinate

Widget: Limits

Units and Format: Not applicable

Style: The widget shows both the indicated Az encoder and the Az encoder value corresponding to elements (3) and (4)) as, for example, thick and dashed lines. The cardinal directions from left to right across the widget are: W, N, E, S, W, N, E; due south is at the center.

Red regions at the left and right of the widget will show where the azimuth crosses the first limit switch. Yellow regions inside the red regions indicate when the telescope is within 'd' degrees of the limit switch. Thus, the operator can see graphically where the telescope is positioned, where he or she is about to commanded it to go, the magnitude of the difference between the commanded and indicated positions, and how close to a limit the telescope is or might be.

Labeling: None needed since the use of the widget is explicit in its design.

Element: 6

Function: Displays graphically the current encoder El position as well as the El corresponding to the coordinate in elements (3) and (4) in relation to the full range of elevation values and elevation limits. The range of the widget is the same as for El encoder. This widget does not control the telescope but assists the operator in choosing a coordinate.

Widget: Limits

Units and Format: Not applicable

Style: The widget shows both the indicated El encoder and the El encoder value corresponding to elements (3) and (4)) as, for example, thick and dashed lines. The bottom and top of the widget correspond to ~5 and ~95.

Red regions at the top and bottom of the widget will show where the elevation crosses the first limit switch. Yellow regions inside the red regions indicate when the telescope is within 'd' degrees of the limit switch. A blue region will indicate the elevations where the telescope is in the 'cone of avoidance.' Thus, the operator can see graphically where the telescope is positioned, where he or she is about to command it to go, the magnitude of the difference between the commanded and indicated positions, and how close to a limit the telescope is or might be.

Labeling: None needed since the use of the widget is explicit in its design.

Element: 7

Function: Undoes any changes to the screen since it was brought up or since 'Update' (element (8)) was last pressed.

Widget: Button

Style and Labeling: As indicated.

Element: 8

Function: Updates elements (3) and (4) with the current coordinates in the chosen system.

Widget: Button

Style and Labeling: As indicated,

Element 9:

Function: Loads into elements (2), (3), (4), (5), and (6) the coordinate systems and coordinate of predefined positions (e.g., stow, access, etc.). Does not move the telescope but only loads the coordinates into the widget.

Widget: Pull Down

Choices: The list of choices is not yet fully defined.

Element: 10

Function: To move the telescope to the position in elements (2)-(4).

Widget: Button

Style: When the button is pressed, we must have a way for the operator to first 'feel' that the computer has accepted the button click and to then 'feel' that the telescope is acting on the button click. This could be done with two distinct sounds or by three different states of the button (e.g., default appearance before the button is clicked, dark grey when clicked, blue for 1-2 sec when the telescope accepts the command and starts the telescope moving, default appearance after the telescope has started to move.)

Labeling: As shown.

Element: 11

Function: To move the telescope to the position in elements (2)-(4) plus the offset position in elements (15)-(17).

Widget: Button

Style and Labeling: Same as element (10)

Element: 12

Function: To move the telescope from its current position with the rates in elements (17)-(19) in the coordinate system given by element (2).

Widget: Button

Style and Labeling: Same as element (10).

Element: 13

Function: To halt the telescope in a smooth, non-panic fashion (for example, by setting the azimuth and elevation rates to zero).

Widget: Button

Style and Labeling: As shown.

Element: 14

Function: To halt the telescope and track the position at which the telescope stops. Only does something if the coordinate system in element (2) is RA-DEC, galactic, or ecliptic. Inactive if the system is Az-El or HA-DEC.

Widget: Button

Style and labeling: As shown.

Element: 15

Function: Allows the operator to chose an offset X-axis coordinate to be used by element (11).

Widget: Thumb switches

Units and Format: Depends upon the coordinate system chosen by element (2).

Az-El encoder: +DDD.ddddd; range depends upon the definition of zero; either -270.00000-270.00000 or -90.00000-450.00000.

Az-El, Galactic, (ecliptic): DDD.ddddd ; range: 0.00000-360.00000

RA-DEC (in its various flavors): HH:MM:SS.ss ; range 00:00:00.00 - 23:59:59.99

HA-DEC (in its various flavors): +HH:MM:SS.ss ; range: -12:00:00.00 - 11:59.59.99.

A total of 8 digits plus one for the sign are needed. The colons in my drawings will need to be dynamically altered whenever a DDD.dddd system is chosen. When the screen come up, zeros will be loaded into the widget.

Labeling: None since the table arrangement clearly indicates what is being displayed.

Element: 16

Function: Allows the operator to chose an offset Y-axis coordinate to be used by element (11).

Widget: Thumb switches

Units and Format: Depends upon the coordinate system chosen by element (2).

Az-El encoder: DD.ddddd ; range ~5.00000-~95.00000

Az-El: DD.ddddd ; range: 0.00000-90.00000

Galactic, (ecliptic): +DD.ddddd ; range: -90.00000 - 90.00000

RA-DEC and HA-DEC (in their various flavors): +DD:MM:SS.s ; range -90:00:00.0 - 90:00:00.0

A total of 7 digits plus one for the sign are needed. The colons in my drawings will need to be dynamically altered whenever a DDD.dddd system is chosen. When the screen come up, zeros will be loaded into the widget.

Labeling: None since the table arrangement clearly indicates what is being displayed.

Element: 17

Function: Allows the operator to choose whether or not to correct the X-axis offset and rates for secant(Y).

If unchecked, then element (11) will move the telescope to X = element(3) + element(15); Y = element(4) + element(16). If unchecked, then element (12) will move the telescope at an X-axis rate = element(18), Y-axis rate = element(19).

If checked, the telescope will move to X = element(3)+element(15)*secant(element(4); Y = element(4)+element(16). If checked, then element (12) will move the telescope at an X-axis rate = element(18)*secant(current Y-axis value) , Y-axis rate = element(19).

Widget: Check Box

Labeling: As shown.

Element: 18

Function: To specify an X-axis rate used by element (12) in the coordinate system chosen by element (2). When the screen come up, zeros will be loaded into the widget.

Widget: Thumb switch

Units and Format: +XXXX.xx in '/min (= "/sec = /hr).

Labeling: None since the table arrangement clearly indicates what is being displayed.

Element: 19

Function: To specify a Y-axis rate used by element (12) in the coordinate system chosen by element (2). When the screen come up, zeros will be loaded into the widget.

Widget: Thumb switch

Units and Format: +XXXX.xx in '/min (= "/sec = /hr).

Labeling: None since the table arrangement clearly indicates what is being displayed.

Element: 20

Function: To close the screen (and uncheck element (1)).

Widget: Button

Style and Label: As indicated.

Background and other screen elements: In addition to the above elements, the screen also uses labeling to distinguish itself from other screens. I also use boxes to help organize the screen elements.