Proposed Replacement for ESI inconfig Tool

Below is a description for a proposed replacement tool for reconfiguring the named positions of various ESI mechanisms like the triple wheel. The Lick-provided tool, inconfig, was found to be insufficient for our needs. The requirements of the task have also become clearer with time.

Background

ESI, like other optical instruments, has a number of mechanisms which were designed to accept replaceable components (Table 1). When components are replaced, technicians generally have to define new names and possibly positions for the new components, and remove the entries for the old components.

Table 1. Configurable ESI Mechanisms

Mechanism
# slots
Triple
wheel
Upper wheel
5
Middle wheel
5
Lower wheel
5
TV filter
8
TV focus
continuous
Grating
1

 

The ESI triple wheel, however, is rather unusual among Keck mehanisms. In each wheel there are five replaceable holders. For other mechanisms on ESI and other instruments, there is only one component per holder. The holders of the ESI triple wheel, however, can contain one, two, even up to 9 components, each with their own named and raw positions. Changing one of the holders may hence involve changing the total number of components in the system. Part of the complexity of the system described below is due to this flexibility and the desire to make changeouts as user-friendly as possible.

Before proceeding, we define some nomenclature for the triple wheels:

Table 2. Triple Wheel Holder Types

Holder Type
# posn.
FO applied?
1. echelle slits
9
2. low-D slit
1
3. decker
1
4. subfield facility filter
1
yes
5. dual 4x4-inch filter
2
yes
6. triple 2x2-inch filter
3
yes
7. full-field filter
1
8. 4x4-inch subfield blocker
1

yes

9. 2x2-inch subfield blocker
1

yes

10. empty
2
1 posn.

 

Tools

The position names and definitions are stored in a database that is accessed with various tools. The particular tool with which we are concerned is "confio". This converts the database information into a flat ASCII file that can be read and modifed by other tools. It also will read the modified ASCII file and update the information in the ESI database.

The following proposal has three stages: a command-line interface to the ASCII version of the database, a minimal GUI that simply presents the command-line interface in a graphical form, and a fancier graphical interface that includes graphical representations of the holders, if not the actual components.

Command-Line Interface

Such a tool or tools would read the ASCII version of the database and allow the user to look at the current configuration of a given mechanism. For one of the triple wheels it would give the name of each position, its raw value, its holder number (1-5), and its ordinal value. (Named positions have not only a raw position but also a unique ordinal value within a given mechanism.) Other mechanisms, such as the TV focus stage or TV filter wheel, would have only the name, raw position, and ordinal position.

The tool(s) would also allow removal of the positions for a given holder, or a single position, or redefinition of the name or raw value for an existing position. At the end of each incarnation of the script, ordinal values would be calculated and assigned for each named position, in order of raw position. The exception is named positions with negative ordinal numbers. These are treated as special cases by the ESI instrument control GUI (Dashboard) in that they are not displayed in the menus. They are typically load positions used only by the technicians.

Lastly, the tool(s) would allow addition of new named positions, either one holder at a time or one position at a time.

For the triple wheels, typical use by the technicians during reconfiguration would be to specify a holder to remove, then specify the holder and its type. The technician would be prompted for each entry in the holder for that particular holder type.

Simple GUI

The simple GUI would read the ASCII database file and present a set of buttons representing the ESI mechanisms. When a mechanism is selected, the current positions would be shown. For a triple wheel, the list of holders would be presented. Clicking on one of the holders would show the positions.

At this stage there would be four options:

  1. Remove the entries in the holder.
  2. Edit any given entry, both name and raw position.
  3. Add a new entry, both name and raw position.
  4. For a triple wheel, choose a new holder type from a menu. The current entries would be removed and a set of new entries appropriate for the selected holder type created. Raw positions would be filled in, leaving only the names to be specified. In some cases (holder types 1, 2, 4, 5, 6, 7) the names would be filled in as well.

In typical use a technician would use option 4 for the triple wheel, and option 2 for most other mechanisms.

A "confirm" button would write the modified ASCII database file and run the tool for updating the database from this file.

Fancy GUI

A more evolved version of the GUI would replace the text versions of each mechanism by a graphical representation where appropriate. For a triple wheel, e.g., the graphic would be a circle representing the wheel, with five graphics representing the five holders. Numbers would designate which holder was which. Graphics would be provided for holders using the following logic:

Table 3. Rule Set for Triple Wheel Graphics

Holder type
Identification rule
1
9 or more positions
2
name begins with "LowD"
3
name is "Decker"
4
name is one of: "B", "V ", "R", I"
5
2 or 4 positions
6
3 or 6 positions
7
one position; name does not indicate it is type 2-5
8
name is "block_4x4"
9
name is "block_2x2"
10
two positions named "Clear_I" and "Clear_S"

There would be a total of 50 graphics for triple wheel holders: 10 holder types in each of five orientations. The stage name and keyword prefix would be printed at the middle of the graphic, e.g. "UPPER WHEEL (SLMSK)".

Clicking on a holder would bring up a popup containing columns for: Name, raw position, ordinal position. A checkbox, checked by default, would allow for automatic recalculation of the ordinal numbers. A column of checkboxes would allow selection of the facility filter offset for each position. These would be checked by default for holders 4,5, 6, 8, and 9, but not the others. A button labeled "Add" or "add position" would add a new row in the table, with blank name and raw position. (This would generally be used only for holder type 1, and possibly for adding duplicate positions for types 5 and 6 that do not have the facility filter offset.)

A second button on this popup would show the current holder type, but clicking on it would display a menu of all ten available holder types. Selecting a new holder type would replace the popup with a list relevant to that holder type. For example, a type 1 holder would provide a list of 9 positions. A type 8 holder (4x4-inch subfield blocker) would show a single row, with the facility filter offset box checked, and the name "block_4x4" already filled in. A type 6 holder (dual 4x4-inch filter) would have two rows, the facility filter offset boxes checked, the appropriate raw positions, but empty name fields.

A third button, labeled, "Make changes", would activate as soon as any changes were made, and would actually rewrite the ASCII database file, close the popup, and redraw the new holder graphic into its place on the wheel.

Other graphics:

For the TV filters, a wheel with 8 circles (representing the 8 filter positions) would be presented. If possible, each filter name would be written into each small circle.

For the TV focus a list of names and raw positions would be presented. For the grating a single name and position would be presented.