Main Tables
Configs
History
Parameters
Helper tables
Config_structure
Others
moon cow

Mood Design

This page is of historical interest only. Some of these ideas have been discarded, in particular the kind of information envisioned for Config_structure will not be kept in a table, but probably in a configuration file for MOOT which MOOT will read during its initialization. See this design document for a more accurate idea of MOOD design.

Main tables

There will be at least four: Configs, History, Parameters, and Config_structure. A row in Configs should contain enough information to retrieve a complete description of the configuration of the LAT. A row in History points to a row in Configs and has fields describing just when the configuration was requested, when it was actually uploaded, etc. A row in Parameters has fields describing how to retrieve details about some piece of the configuration. Config_structure has a row per parameter value for each config in Configs.

Configs

Configs fields
Field name Explanation, typical contents
config_keyPrimary key, auto_increment; unique identifier for the row
modeMajor mode, one of an enumerated set (data, calibration,..)
nameConvenient short name for interactive use
notesLonger description of what the configuration is supposed to do.
whoWho asked to create it
request_timeTime of start of process to create config
creation_timeTime of creation (or of end of attempt)
statusE.g., 'OK', 'abort', 'in_progress', ...
instrumentWhich LAT-like instrument does it refer to?

Exactly what is involved in creating a configuration in the sense of the creation_time field is TBD, but the final result should include the existence of all FSW files needed to implement the configuration.

History

This table keeps track of when a load of a particular config from Configs has been requested, when it completes, and when it is no longer the active config (next config has been loaded).

History fields
Field name Explanation, typical contents
history_keyPrimary key, auto_increment; unique identifier for the row
config_fkForeign key, referencing an entry in Configs.
request_timeTimestamp for request to load
ack_timeTimestamp when notification was received of success or failure of load
active_startSame as ack_time for successfully loaded configurations; else null.
active_endTimestamp when config was overwritten by the next one
load_statusOne of 'in_progress', 'loaded', 'superseded', 'failed',...

Parameters

Parameters are in application space rather than hardware space.

The two differ in several respects:

Fine granularity configuration information is partitioned one way by these parameters and another way by the files managed by FMX. In the short term, it's difficult to imagine a scheme which can bridge arbitrary differences between them. On the other hand, it's unlikely to be the case that parameters map one-to-one to FMX files. The constraints on this relation (between parameters and FMX files) will influence the design of MOOD tables concerned with identifying the collection of FMX files needed to implement a particular requested configuration. In the unrealistically-simple case, where a particular value for a parameter maps 1-to-1 to an FMX file, Parameters would include the following fields (and probably several more):

Parameters fields
Field name Explanation, typical contents
parameter_keyPrimary key, auto_increment; unique identifier for the row
nameE.g., something like cal_thresholds. Note this is value not unique within the table. Might be that the set of all such names should be kept in its own table, call it Parameter_defn, in which case the name field of Parameters would be replaced by a reference to an entry in Parameter_defn.
remarksCould just be "default" if it's the standard set of values for the parameter; otherwise describe purpose of this set.
geo_scopeDoes the information cover the entire LAT or are there additional entries with the same kind of information for different parts of the instrument?
sourceE.g., xml input to Flight Software facility which knows how to convert to binary
fmx_idUnique id assigned by Flight Software to the corresponding binary file.
enter_timeWhen this row was created?
instrumentWhich LAT-like instrument does it refer to?
flavorNormal value is something like 'default' or 'vanilla'.

Wildcard which can be used to identify a special set of values. Probably should not be allowed to have anything other than the normal value for standard data-taking or calibration configurations.

Helper tables

Mostly they make connections between main tables or help to define expected form of one thing or another.

Config_structure

Relate a particular config in Configs to all the parameter values associated with it.

Config_structure fields
Field name Explanation, typical contents
config_fkForeign key, referencing an entry in Configs.
param_fkForeign key, referencing an entry in Parameters.

To track down the composition of a particular config, query this table for all rows with config_fk equal to primary key value for that config in Configs.

Other helper tables

Likely will want tables Parameter_defn with a row per parameter (not per parameter value), Mode_defn with a row per operating mode, and a table relating the two so that is it possible to look up the parameters associated with a particular mode.

If parameters don't have a one-to-one correspondence with FMX file types, will need an additional table or two to describe the more complex relation. This will probably complicate various procedures, such as the one to add a new row to the Parameters table.


Initial draft: 4 Aug 2005
Last revised:
J. Bogart