Listing of CATS (formerly known as STEALTH) Programs

Below is an example listing from a CATS instrument.  Each program or file has a link to a more detailed description.

$ ls -CF 
Experiment.config         labsrvr*                  stealth.pcm 
GCFILE.CFG                log0000/                  stealth.rtg 
anal/                     npl*                      stealth.sft 
analog.tmc                omega.tmc                 stealth.sol 
backup/                   power.fld                 stealth.tma 
chrom.fld                 resets                    stealthalgo**                rmolddata.cron            stealthclt* 
data/                     rungc*                    stealthcol* 
digital.tmc               safe.tma                  stealthcol_wd* 
engext*                   safealgo*                 stealthdisp* 
flush.count               safeclt*                  stealthdoit* 
gc.tmc                    safedoit*                 stealthsrvr* 
gcitxext*                 safesrvr*                 temps.fld 
interact                  scr.cfg                   tm.dac 
interact.lab              seq.count                 valves.tmc             snafuEXT                  windows/ 
lab.tma                   src/                      zip@ 
labalgo*                  srcNWR.tar.F 
labclt*                   stealth.log 

The files with and asterisk (*) behind the name are executable files.  The directories have a forward slash (/) behind their name, and soft links have an at symbol (@) behind their name.  All other files have no trailing character.  Incidentally, these characters are added by using the -F option of ls.
algorithm program source code (tma files) 
    TMA are manually created and contain commands our source code to that is executed based on an event.  For example, an algorithm program can be used to look for pressure triggers or change flow controllers based on other parameters.  Users familiar with TURBOGC can think of algorithms as analogous to special calculation routines. 
algorithm program 
    All files that end with "algo" are algorithm executable programs that are generated from .tma files.  The algorithm programs are usually launched via the interact script.
analysis directory 
    This is typically where extraction programs place their data.  The shell script also moves renamed chromatograms to this directory.
archived data 
    There are a number of ways to compress files and directories with QNX.  A common method is to tar a set of files and/or directories and then compress the tar archive with the program freeze.  The file srcNWR.tar.F was created this way with the command: 
      tar -c src/* | freeze -c > srcNWR.tar.F
    To uncompress this archive simply type: 
      install -u srcNWR.tar.F
    Another common method for data compression is gzip (decompresses with gunzip).  The data in the data directory and the analysis directory are compress with this method.
backup directory 
    Any backups of source code, etc. may be stored here.
command control (clt and srvr programs) 
    Keyboard commands may be entered on certain display screens (such as the STEALTH chrom screen).  When the .cmd source code file is compiled a client (stealthclt) and a server (stealthsrvr) program is created to handle communications.  To change or add commands edit the .cmd file in the src directory and then recompile. 
    Once data is collected and all processes are terminated via the stealthdoit script the data reduction phase can start.  If rungc is running this will happen automatically.  stealthreduce is called from rungc and the script is used. renames the engineering data and chromatograms, moves them to the anal and data directories, compresses the data, and copies critical data to a Zip Disk Drive.
data directory  
    This directory is a temporary storage point for the log files.  The script copies and renames the raw data (in the log0000 directory) to the data directory. 

    To prevent the hard drive from filling up, anything stored in this directory will be deleted after a certain amount of time (usually 120 days) set in the rmolddata.cron script.

doit scripts 
    Doit scripts are generated by .doit files.  A doit script is what is executed by either rungc or the user to start the GC.  The doit script starts the display programs such as tmg and graphic screens (ie. screens created with .fld files).  These scripts also use an interact file to orchestrate load all of the necessary programs.  Doit scripts can also shut down the data acqusition software gracefully by running the doit script with the word "stop" at the end. (ie. stealthdoit stop).
    The Experiment.config file is a shell script which defines key features of an instrument's configuration by defining shell variables.  It should originate in your source directory and also be added to your .spec file. 
extraction programs (engext and gcitxext) 
    An extraction program can reduce specific data from the data acquisition log files.  STEALTH uses two extraction programs during data reduction phase.  engext extracts pertinent engineering data and gcitxext extracts chromatogram files in the Igor .itx format. Extraction programs are compiled from .edf files.  All extraction programs that are executed during the data reduction phase are specified in Experiment.config.  Other extraction programs may exist that can be executed by the user at any time.
field files (.fld) and display program 
    Field files are source code files to make display screens.  .fld files may be either generated by hand or with the program "table" or "scrdes". The file scr.cfg is also used by the .fld file compiler.  This configuration file sets text attributes and can be created by scrdes.  The .fld files are compiled into a screen display program (ends with the letters disp, ie. stealthdisp) which is loaded through the interact script.
    Flush.count is created by the stealthalgo program to keep track whether the sample loops need to be flushed.  If the file exists, the sample loops have already been flushed.  But if the file is not present and stealthdoit (or rungc) are running, the GC will flush for about 5 minutes prior to starting the injection cycle.  This insures that the first injection after restarting the GC is flushed adequately. 
    The content of flush.count is unimportant, it simple needs to exist to prevent an initial flush.
frame statistics files (.pcm files) 
    Every experiment should have one pcm file.  It contains information on how much data is stored in the raw data files (in the log0000 directory) and how the extraction programs can find specific data.
    This file is a temporary file created by the collection program which keeps track of the current .itx file number and injection.  Since it is a temporary file, it is deleted during the data extraction process (see
    interact is a script that orchestrates loading all of the necessary programs for a "doit" script (ie stealthdoit).  It loads and registers programs sequentially.
log0000 directory (raw data directory) 
    Directory where the current (or most recent) raw data is stored.  This data is subsequently extracted, renamed, compressed and archived when stealthreduce is ran (stealthreduce is called from rungc).
    resets is a text file created by stealthcol_wd.  It simply lists the time and date of a system reset by stealthcol_wd.  The file may be deleted at any time.
rmolddata.cron -- cron script 
    This cron script tells the operating system to delete old files in the data and anal directories.
real time graphics (rtg) and .tmg files 
    rtg is a graphics display program that can plot engineering data and chromatograms.  The rtg application is launched via the interact script.  rtg also has a configuration file such as stealth.rtg.  The configuration file is created or updated when the user saves the preferences of rtg.  The NOAHplot program (npl) is a more sophisticated version of rtg, but is not implemented on STEALTH instruments.  To add or remove an available trace from rtg simply edit the .tmg file and then recompile.
    Finally, the "top dog" program for a STEALTH gas chromatograph is rungcrungc cleans up the computer by deleting old files (see below) and starts the continuous injections via an endless loop.  A quick look at the source code for rungc shows that stealthdoit and stealthreduce are the main components of this endless loop.  stealthdoit runs four injections and then quits allowing stealthreduce to process the data. 
    This file is created by the stealthalgo program.  It contains a number representing the number of injections since the last cal3 injection.  Once a certain number (normally set to 84 -- one week of 30 minute injections) of injections occurs a cal3 injection sequence takes place and the file is deleted.  If this file is deleted, the incriminator starts back at 1.  To change the number of injections until a cal3 sequence or to disable this feature edit the variable calseqnum in stealth.tma.
solenoid files (.sol and .sft files) 
    The solenoid file (with the extension .sol) is the heart of instrument control.  All of the instrument's digital IO and some analog set points are specified in the .sol file.  A .sft file is created when a .sol file is compiled.
    SNAFU is a spreadsheet type program that has batch capabilities.  snafuEXT is a script for SNAFU that converts the output of the extraction program engext to a columnar text format that is readable by most programs.  snafuEXT is called from the data reduction script
source directory (src) 
    This directory contains all of the necessary source code for data acquisition.  For help on recompiling click here.
    stealth.log is a text log file created when stealthdoit (as well as other doit scripts) is started.  The log is actually created by the logging program call memo (launched from interact).  Within this log there is copious data on which processes have started and the state of certain processes.  Error messages from algorithm programs and user input message can also be in this log file. 
data collection program (stealthcol) 
    This program is in charge of data collection from the data ring (see diagram) and handles commands from the command server.  If the process fails the watch dog program stealthcol_wd will reboot the system.
steatlhcol watch dog (stealthcol_wd) 
    This is a simple watch dog program that watches the data collection program.  If this process dies, stealthcol_wd logs a reset time and date to the file resets and then reboots the computer.  The data collection program is the heart of the data acquisition software, if it dies several other processes will die.  The program stealthcol_wd is launched via the interact script.
tmc source code 
    TMC (telemetry compiler) is one of the underlying languages used for developing the data acquisition software.  TMC is a high level language developed by Norton Allan and geared specifically to instrument control.  TMC source code is subsequently compiled into C source code and further compiled into the application programs.
windows directory 
    This directory contains user specific QNX windows configuration data.  Within the windows directory is a file called olwm.init which tells the computer to run rungc once QNX windows is started by this user (ie. user stealth).
Zip Drive soft link 
    This is simply a soft link to the directory /zipdrive/anal.  So simply "cd zip" will take you to the mounted Zip Disk. To see the explicit path of zip try a long listing (ls -l zip).
Back to the data acquisition table of contents
Return to CATS index