-   -
-   Home Page Field Missions Engineering More Info [MAP Menu]

drext

Extract the telemetry stream to dataRecv, which will allow kinetics-style analysis.

Syntax:

drext [options]

Options:

-b
<node> become a star client of the buffer on given node
-c <node>[,<attached name>]
send msgs to another task; default: memo
-e <error filename>
Error log file
-F <filename>
Name of file to log to
-h <msg header>
log line prefix
-H <remote host>
Name of host to log to
-i <number of rows>
rows to ask for
-l
add a level of debug messages
-o <device>[,<row>,<col>,<width>,<pass attr>,<warn>,<fail>,<debug>]
console status definition
-s
no message sounds
-v
disable verbose to stderr
-x
(with -b) make buffer-client non-blocking
-y
disable system error message concatenation to messages

Syntax:

drext [options]

Examples:

Launch - drext -vc0 -b0 -F drext.log -H $DRHost

(line in interact file)

Description:

drext extracts data from the telemetry stream from a kinetics experiment, attaches some informational headers, and then forwards the data to dataRecv running on a Linux box.

On invocation, drext will connect to a port on a Linux box and invoke dataRecv. It will then issue the line:

!Path /Data/$Experiment/Data.raw/$year/$month/$day/$run

All of this information comes from the "rundate" file, which specifies the current run, date, and path. This file is built by interact, and updated by the command server on each run. Note that the date will not change from its initial value until you saverun.

After that point, drext will simply extract the telemetry stream, turning it into ASCII data and passing it to dataRecv. However, when drext detects that the SW status bit (SWRunOn) corresponding to "Run in progress" has gone high, it will:

  1. Read the SWRunNum line, and issue !Begin Run [xxx], where [xxx] is the number set by SWRunNum (integer, determined by command server).
  2. Read the SWRunType line, and issue !RunType [RunType], where [RunType] is the type of run encoded into SWRunType.

There are currently five types of runs: Test, Calibration, Spectra, ProductStudy, and Kinetics. Depending on which type of run is issued, drext will issue further informational commands:

Test Runs:

  1. Extract the SubType and issue !SubType [SubType] where [SubType] is the value extracted.
  2. Issue !Defs to indicate that the definitions section is complete.

Note that the SubType of test runs is arbitrary; this value gets stored in run.def but does not affect processing or archiving.

Calibration Runs:

  1. Extract the SWCalType value and issue !SubType [CalType] where [CalType] is encoded by the value extracted.
  2. Issue !Defs to indicate that the definitions section is complete.

Note that for calibrations, as distinct from tests, the calibration subtypes are encoded by *.tmc/*.cmd files.

Spectra Runs

  1. Extract the SWManifold and SWBulb values. Process "molecule.list" to determine which bulb is being used, and based on that information, issue:
    1. !Manifold [xx] (from SWManifold)
    2. !Volume [xx] (extracted from molecule.list)
    3. !Molecule [Molecule] (extracted from molecule.list)
    4. !Balance [Balance] (extracted from molecule.list)
    5. !Balance-Chi [xxx] (extracted from molecule.list)
    6. !Tracer [tracer] (extracted from molecule.list)
    7. !Tracer-Chi [tracer-chi] (extracted from molecule.list)
  2. !IRD [IRDetector] (from command line (how? run.schedule?)
  3. Issue !Defs to indicate that the definitions section is complete.

Product Study Runs

  1. Extract the SWManifold and SWBulb values. Process "molecule.list" to determine which bulb is being used, and based on that information, issue:
    1. !Manifold [xx] (from SWManifold)
    2. !Volume [xx] (extracted from molecule.list)
    3. !Molecule [Molecule] (extracted from molecule.list)
    4. !Balance [Balance] (extracted from molecule.list)
    5. !Balance-Chi [xxx] (extracted from molecule.list)
    6. !Tracer [tracer] (extracted from molecule.list)
    7. !Tracer-Chi [tracer-chi] (extracted from molecule.list)
  2. !IRD [IRDetector] (from command line (how? run.schedule?)
  3. !Radical [Radical] (from command line)
  4. !RadD [RadicalDetector] (from command line)
  5. Issue !Defs to indicate that the definitions section is complete.

Kinetics Runs

  1. Extract the SWManifold and SWBulb values. Process "molecule.list" to determine which bulb is being used, and based on that information, issue:
    1. !Manifold [xx] (from SWManifold)
    2. !Volume [xx] (extracted from molecule.list)
    3. !Molecule [Molecule] (extracted from molecule.list)
    4. !Balance [Balance] (extracted from molecule.list)
    5. !Balance-Chi [xxx] (extracted from molecule.list)
    6. !Tracer [tracer] (extracted from molecule.list)
    7. !Tracer-Chi [tracer-chi] (extracted from molecule.list)
  2. !XSD [XSReagentDetector] (from command line (how? run.schedule?)
  3. !Radical [Radical] (from command line)
  4. !RadD [RadicalDetector] (from command line)
  5. !FlowModel [flowType] (from command line, maybe from switch?)
  6. Issue !Defs to indicate that the definitions section is complete.

Once the definitions have been passed, datarecvext will just process the telemetry stream and pass it down the wire again. It will watch for another change in state of the SWRunOn line, and when it occurs, will issue a !Run End or !Run Abort, depending on the status of SWError.

See also:

Caveats:

drext is in a transition period, so it will be modified fairly quickly.


last updated: Thu Aug 7 14:39:46 2003 webmaster@huarp.harvard.edu
Copyright 2002 by the President and Fellows of Harvard College
[Home] [People] [More Info] [Research Areas] [Field Missions] [Engineering]