Generic Table Editing Functions

Many of the FORCES tabular inputs use the same interface. These interfaces include:

Data coupling to more detailed models (OTH Outage data, PK Tables, ballistic missile paths, etc)

These all employ the same utilities to aid the user in inputting the data. The format and content of each of these performance tables is defined in a single database table that is used to populate the column names, number of dependent and independent variables, and table description.

Programmers Note: The data defining these tables is stored in the master control database (usually named adilib) in the genusetab table. The order of the columns in these fields must correspond to the order used for independent variable in calls to the tblup routine in the runtime sourcecode.

Since the interface to all of these tables uses identical functionality, one example will be used here to explain this interface. The selected table is the armament flyout table. This table contains data on the flyout time for a missile given the threat altitude, flyout range (from the launch point) and the average closing velocity from the launch to the current time (used to calculate the target's closure on the launch point). The Table Description Form appears with data listed on that armament:

In the section Individual Var. Values are listed. The independent variables are those that are driven by the scenario, subsystem, platform or other appropriate situation or performance and is used as input to look up the result (in this case the flyout time from the launch). Some points the remember are:

1) The table look-up routine typically uses a linear interpolation between defined points. At this time I think linear interpolation is actually used exclusively, though this might change for selected tables in the future.

2) Currently the table look-up routine does not extrapolate points. Instead it uses the nearest boundary condition. Thus, if in this case you're defining a missile with a maximium range of 40 miles but the largest defined flyout range is 5 miles and a target is at30 miles the missile will flyout as expected to 5 miles and then immediately jump to the intercept point (30 miles). This is because the time to flyout to 5 miles is the maximum flyout time, so flyout to all greater ranges will happen at the same time, so the missile will immediately flyout to any longer range within its range band.

3) Note also that the asset performance might be limited by other factors. In the case above a maximum missile flight time can be imposed on the missile. If the table input for the flight time to a point within the maximum range (say against a 30 mile target at 1000 ft) is larger than this limit the missile will fail when the limit is hit. This allows tailoring for specific conditions - in this case restricting the range of a missile based upon altitude.

In this case there are three elements whose values may be edited:

Threat Alt (ft)

When Edit button is selected the Independent Variables Form appears with the Editing Values for: Armament Fly Out, Independent Variable: Threat Alt. (ft).

The values may be modified or deleted or the Add New Value button selected. This action brings up the New Ind. Value Form where the value is typed into the space.

Flyout Range (nm)

When Edit button is selected the Independent Variables Form appears with the Editing Values for: Armament Fly Out, Independent Variable: Flyout Range.

The values may be modified or deleted or the Add New Value button selected. This action brings up the New Ind. Value Form where the value is typed into the space.

Closing Vel (knots)

When Edit button is selected the Independent Variables Form appears with the Editing Values for: Armament Fly Out, Independent Variable: Closing Velocity (knots).

The values may be modified or deleted or the Add New Value button selected.  This action brings up the New Ind. Value Form where the value is typed into the space.

As you can guess, tables with more indendent variables are edited similarly.

There are four other options listed on bars that may be selected:

Load New Subtable

A list of subtables of the same type currently defined in the database is presented in a drop-down menu. Pick one by double-clicking. This will change the data in this widget but not in the calling widget (in this case the flyout button) without a save.

Create New Subtable

When selected the New Table Name Form appears on which name is typed. The system then creates a new table of the same type without any data so you can fill it in. Hint: Start by defining the independent variables. Note: Verify the table in the calling widget (in this example the flyout button) changes appropriately and that you do a "Save" in both the table edit widget and the calling interfaces (in the example the resave the armament definition). Otherwise the changes are assumed temporary and lost when you exit these windows.

Copy to New Subtable

When selected the New Table Name Form appears on which name is typed. The data from the current table is then copied to the new name and you can edit the copy without affecting the original. Note: Verify the table in the calling widget (in this example the flyout button) changes appropriately and that you do a "Save" in both the table edit widget and the calling interfaces (in the example the resave the armament definition). Otherwise the changes are assumed temporary and lost when you exit these windows.

Edit Function

This is the essence of how to save a function. This is where the function values (in this example the flyout times for specific conditions) are entered. When selected the Table Setup Form appears with the X and Y variables for the three variables:

The X or Y is selected for each or all of the three. The X,Y choice will dictate the look of the editor. The data in the edit function is displayed for editing as a series of 2 dimensional cuts through the data with the two dimensions as defined by the user's X & Y selection. In this example (the Armament Fly Out Form ) the user selected the flyout range as Y and the altitude as X. This leads to an unusual view of the data. But the ability to change the orientation is useful and so the ability to select the X & Y axes is kept. To modify values on this form the user simply types in new cell values.

The remaining higher-level independent variables are listed at the top of the widget. In this case the Closing Velocity was not selected for either X or Y, so it appears at the top. When the table has more than three variables additional variables are shown as additional lines at the top. You can shift through the data by clicking the "<" or ">" buttons for the higher level independent variables. In this example there is no "<" button on closing velocity. This indicates that the lowest defined closing velocity is presented. If you want to input data on lower closing velocities go back to the main table interface and select "Add New Value" next to the Closing Velocity.

As always when lots of data is displayed, it's sometimes hard to verify the integrity of the data. Therefore there's a "Plot Displayed Data" button. It will ask for X, Y & Z values (they can be in different order than the X & Y specified for function editing) and a linear chart is presented. It's very useful to check your work visually in this way.

IMPORTANT - The data entered anywhere in the table editing function is NOT saved to the database until the user clicks "Save" on the main interface. This is done intentionally to let users input and plot data and verify inputs before saving, but you MUST remember to hit "Save" or your work will be lost!