Below is an example listing from a CATS instrument. Each program
or file has a link to a more detailed description.
|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.
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.
This is typically where extraction programs place
their data. The shell script crunch.sh also
moves renamed chromatograms to this directory.
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:
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.
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 crunch.sh is used. crunch.sh 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.
This directory is a temporary storage point for the log files. The crunch.sh 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 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
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
|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
|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
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
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.
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 rungc. rungc 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.
Listing of files deleted by rungc:
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 crunch.sh.
|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.
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