$Id: tableplanning.html,v 1.5 2007/02/16 21:04:15 nathan Exp $

Our challenge is to keep track of three sets of tables: 1) the "default" tables which are loaded when the instrument boots, 2) the tables currently in use onboard SECCHI, and 3) the most recent revisions that are being tested. These tables must be tracked and and up-to-date in three locations: planning, operations, and SolarSoft. This document explains how the files will be managed to accomplish this.

1 Operations

  1. Here is the solution which I am implementing in the operator environment:

ops/tables:
total 16
drwxr-xr-x   17 nathan  nathan   578 Jan 11 15:36 BLD501/
drwxr-xr-x   17 nathan  nathan   578 Dec 19 12:34 BLD5_00/
drwxr-xr-x    6 nathan  nathan   204 Jan 11 15:36 CVS/
drwxr-xr-x   36 nathan  nathan  1224 Dec 17 20:23 current/
drwxr-xr-x   27 nathan  nathan   918 Nov 15 17:40 default/
drwxr-xr-x    5 nathan  nathan   170 Nov 15 17:40 gt/
drwxr-xr-x   3 nathan code7660  1024 Feb 16 15:46 testing/

ops/tables/current:
total 46
drwxrwxr-x   2 secchia  secdev       512 Oct 12 17:26 CVS
lrwxrwxrwx   1 secchia  secdev        35 Oct 12 20:32 expostba.img -> ../../../source/is/src/expostba.img
lrwxrwxrwx   1 secchia  secdev        35 Oct 12 20:32 expostbb.img -> ../../../source/is/src/expostbb.img
lrwxrwxrwx   1 secchia  secdev        35 Oct 12 20:32 gtcfplda.img -> ../../../source/gt/src/gtcfplda.img
lrwxrwxrwx   1 secchia  secdev        35 Oct 12 20:32 gtcfpldb.img -> ../../../source/gt/src/gtcfpldb.img
lrwxrwxrwx   1 secchia  secdev        35 Oct 12 20:32 gtcfrlda.img -> ../../../source/gt/src/gtcfrlda.img
lrwxrwxrwx   1 secchia  secdev        35 Oct 12 20:32 gtcfrldb.img -> ../../../source/gt/src/gtcfrldb.img
lrwxrwxrwx   1 secchia  secdev        35 Oct 12 20:32 imagetbl.img -> ../../../source/is/src/imagetbl.img
lrwxrwxrwx   1 secchia  secdev        32 Oct 12 20:32 ipcodes.h -> ../../../source/ip/inc/ipcodes.h
lrwxrwxrwx   1 secchia  secdev        41 Oct 12 20:32 motortba.img -> ../../../source/scipctrl/src/motortba.img
lrwxrwxrwx   1 secchia  secdev        41 Oct 12 20:32 motortbb.img -> ../../../source/scipctrl/src/motortbb.img
lrwxrwxrwx   1 secchia  secdev        34 Oct 12 20:32 occulta.img -> ../../../source/ip/src/occulta.img
lrwxrwxrwx   1 secchia  secdev        34 Oct 12 20:32 occultb.img -> ../../../source/ip/src/occultb.img
-rw-r--r--   1 secchia  secdev       365 Oct 12 17:28 Readme
lrwxrwxrwx   1 secchia  secdev        38 Oct 12 20:32 rotbtb1a.img -> ../../../source/swire/src/rotbtb1a.img
lrwxrwxrwx   1 secchia  secdev        38 Oct 12 20:32 rotbtb1b.img -> ../../../source/swire/src/rotbtb1b.img
lrwxrwxrwx   1 secchia  secdev        35 Oct 12 20:32 setuptba.img -> ../../../source/is/src/setuptba.img
lrwxrwxrwx   1 secchia  secdev        35 Oct 12 20:32 setuptbb.img -> ../../../source/is/src/setuptbb.img
lrwxrwxrwx   1 secchia  secdev        34 Oct 12 20:32 thresha.img -> ../../../source/ip/src/thresha.img
lrwxrwxrwx   1 secchia  secdev        34 Oct 12 20:32 threshb.img -> ../../../source/ip/src/threshb.img
lrwxrwxrwx   1 secchia  secdev        34 Oct 12 20:32 wavelet.img -> ../../../source/ip/src/wavelet.img
lrwxrwxrwx   1 secchia  secdev        38 Oct 12 20:32 wavetb1a.img -> ../../../source/swire/src/wavetb1a.img
lrwxrwxrwx   1 secchia  secdev        38 Oct 12 20:32 wavetb1b.img -> ../../../source/swire/src/wavetb1b.img

ops/tables/default:

- Same links as current directory except pointing to "defaultsource" instead of "source"

ops/tables/testing:

- Same links as current directory except pointing to "sourcedev" instead of "source"

Explanation: The SECCHI FITS headers contain keywords for names of the table files used. These names all start with ops/tables/. There are four relevant directories in ops/tables:

  • current/ The current directory contains links which point to the revision of tables which are currently loaded onboard SECCHI. This directory also contains versions of table files which are for special (non-nominal) purposes.

  • default/ The default directory contains links which point to a copy of the source (called "defaultsource") which is updated to the revision which corresponds to the boot code on SECCHI, plus any EEPROM updates. This is the same as the tagged build version, plus any changes which have been copied to EEPROM. This is the version which is in place immediately after a reboot or /SMTBLINIT is commanded.

  • testing/ The testing directory contains links which point to a copy of the source (called "sourcedev") which is updated to the most recently committed version of the tables.

  • BLD5_00/ This directory contains the files from the tagged FSW build 5.00 which was present at launch. This directory does not change.

  • BLD501/ This directory contains the files from the tagged FSW build 5.01 which was installed on Ahead on 2006-12-18 and on Behind on 2006-12-26. This directory does not change.

Rules:

  1. Table files shall not be renamed when uploaded to SECCHI. This means the names must be 8.3 format.

  2. Transfer of table files from one workstation to another shall ONLY be via CVS. (Commit and then update.)

  3. No file shall be uploaded that is not committed in CVS.

  4. If a table change is part of an evolution of the default table, then the default table in the source directory shall be changed and committed. New table files may be added in the ops/tables/current directory. If any table file becomes part of the default source, it shall be copied to source and committed, removed from ops/tables/current, and replaced with a symbolic link.

2 Planning

  1. Not implemented: PT must be able to accommodate different filenames for the same type of table (such as user input).

  2. There may be multiple versions of a given table. Each version (not revision) shall have a different filename that has the 8.3 format.

  3. The table files utilized by the SECCHI Planning Tool (PT) are located via the TABLES environment variable. Switching between file revisions is accomplished by changing the value of $TABLES before starting IDL.

2.4 OS_NUM Management

    1. Remote users may transmit desired OS's to the SECCHI Planner in the form of IPT files.

    2. The SECCHI Planner shall commit every change to $PT/IN/OTHER on at least a daily basis so that remote users will have an up-to-date list of OS_NUMs and other parameters.

    3. Only the SECCHI Planner may commit changes to $PT/IN.

    4. Users of PT must be able to write to a directory $PT/IN. It is recommended that all users check out their own copy of PT. (cvs -d /net/ares/data/nathan/cvs co PT) then setenv PT whatever_path/PT.

3 SolarSoft and Pipeline Processing

  1. The pipeline processing of images shall utilize this database table to determine which table and and what revision was used and place this information in the image header. This was implemented on approximately 2006-12-22.

  2. The path, filename, revision number (if embedded in the uploaded file), and time of loading in FSW of each table that is uploaded shall be stored in the hk_events_[AB] table of the SECCHI MySQL database. These values come from the STOL process which uploaded the file and activated it.

  3. A copy of the ops/tables diectory and the files it points to shall be placed in $SSW_SECCHI/data.

  4. In Solarsoft, tables used by FSW are pointed to by $SCC_TABLES.