This MR is for the creation of a M&C Manager for the Zpectrometer. By
creating such a Manager, we will be able to fully integrate the
Zpectrometer with the rest of the GBT M&C system, which will
streamline observations with this instrument.
The Zpectrometer is an ultra-wideband spectrometer being built by the
University of Maryland for use with the GBT and its Ka-band receiver.
For more information, see the
NRAO Zpectrometer Wiki.
The details on integrating Zpectrometer data reduction into the GBT
can be found at ModificationRequest4C406.
The monitor and control of the Zpectrometer shall be integrated into
the GBT system seamlessly.
A list of the keywords required for the WASP data product can be found
in the "Keywords for WASP Data Product" document.
Of those keywords, only the following are of interest for integrating
control of the Zpectrometer into the GBT and will translate directly
into control parameters (explanations drawn from
"Keywords for WASP Data Product":
- ATTEN# - The value of the attenuator, set before a calibration load measurement.
- BECLIP# range of frequency channels believed to be good. Eventually this will likely get a default value
- CHOPFREQ - change name? frequency at which the noise diode (cal) is fired
- CLASSOUT - Boolean to write out CLASS FITS and native CLASS format files. This requires the CLASS environment to be initialized.
- DEFCOLD- eventually will get default values, probably
- DEFHOT- eventually will get default values, probably
- DIAGOUT - Boolean to write out diagnostics (or not)
- DIODE - Noise diode number to activate during "dobs" observations.
- EXPOSURE - this is the total effective integration time. The following keywords are set by the 'exposure' parameter, depending on which observation program is chosen:
- CAZTIME - set when 'zero' is selected
- CAFTIME - set when 'cwsigs' is selected
- EXPOSURE - set when 'totpwr' or 'dobs' is selected.
- PROJID - identifies the project
- QUADSW - boolean that controls the quadrature switching
- TCALTYPE- Frontends (telescopes) may have differing calibration mechanisms, which require different data processing. Currently supported are VANE and HOTCOLD.
- THOT - eventually will get default values, probably
- TCOLD- eventually will get default values, probably
The following keywords are important, but do not require control parameters. Instead, they will be read by the manager from the manager's configuration file and set through the 'waspset' utility.
- NBE - set to 4
- MASTER - set to 0
- BEADDR# - set to the IP address of the micro-controller board
- BETYPE# - set to 'ZPECT L3,18000'
- BEENAB# - set to true
- BENLFN# - set to 'undefined'
- FITSFILE - set same as other GBT instrument fits files
The Zpectrometer is controlled by a collection of individual
command-line programs written at the University of Maryland for
interactive use by expert users. The goal of the Zpectrometer manager
is to act as a middle-ware component between the GBT M&C system and
this
wasp2 software interface.
The consistent interface used by all wasp2 programs makes this practical.
The Zpectrometer manager will set the wasp2 keywords to their
appropriate values and run these wasp2 programs to control the
Zpectometer. In keeping with the M&C design philosophy, the
Zpectrometer manager will be the master when it comes to setting up
the keyword values for the wasp2 environment. It will do this by
reading a base (or default) set of values from its configuration file,
Zpectrometer.conf, setting up the wasp2
parameters database accordingly, and modifying these values as needed
to perform observations.
4.1. WASP2 source
A revision of the wasp2 source tree will be placed in the M&C source
tree, within the Zpectrometer manager source directory but under U. of
Maryland CVS revision control until development stabilizes. Updates
to the wasp2 software can be made by entering the
'gbt/devices/backends/Zpectrometer/UMD' source directory and typing
$ make wasp2
This will cause an anonymous CVS connection to be made to the
U. Md. CVS server to obtain/update the wasp2 source. The makefile
then runs 'autoconf' to make a configure file, configures the make,
and builds the tree.
Installation is accomplished by typing, in the same directory as
above:
$ make install
To clean the source tree and execute a fresh build:
$ make clean && make wasp2
To remove the directory entirely:
$ make remove
Typing make alone, with no target, is a NOP. This ensures that
makes in this directory happen only when specifically intended, and
not, say, during every nightly build of the M&C source tree.
4.2. WASP execution environment
The wasp2 executables are designed to work within a directory named
wasp2. This directory will be installed in the /home/gbt/bin/Zpectrometer
directory, and the WASP environment variable will be set to
/home/gbt/bin/Zpectrometer.
4.3. NEMO library
The wasp2 software relies on the NEMO library to compile and to run.
The NEMO library will be installed in the /home/gbt1 directory.
This directory will be specified by the NEMO environment variable.
The wasp2 software, as mentioned above, consists of a suite of command
line programs. These programs serve to set up the wasp2 hardware,
calibrate the instrument, and conduct observations. In order to
maintain state between calls to the various programs, the wasp2
software can save configuration values to a persistent database, in
the flat ascii file $(WASP)/defs/parameters.
Wasp2 requires that the proper environment be set:
- The
WASP environment variable specifies the path to the wasp2 binaries
- The
WASPDATA environment variable specifies the data directory to save FITS files
- The
NEMO environment specifies the location of the 3d party NEMO library, which is used by the wasp2 software for parameter parsing.
All the wasp2 programs are invoked using a syntax of
'<program> <key>=<value> <key>=<value> ...'
where program is the program name (waspset, totpwr, zero, etc.), key is the keyword name, and value is the keyword's value.
All of the programs will give a list of parameters accepted by it when
the help parameter is given:
'<program> help'
or
'<program> help=h'
or
'<program> help=t'
The first will give a brief summary. The second and third will give a
comprehensive list with descriptions, defaults, etc., but in different
formats.
Keywords generally may be given to the wasp2 program directly on the
command line, or saved first to the wasp2 database using the waspset
program. In the latter case, the wasp2 program will obtain the value
needed from the database. If the value is given directly, it will
override the database value, but the new value will not be written to
the database (this is done only by waspset).
There is a very small set of keyword/value pairs that can only be
provided on the command-line, using the same syntax as given above;
these are specific to the program and are not a part of the wasp2 set
of keywords. For example, repeat=1 tells the particular program to
run one iteration and exit.
4.4.2. WASP2 API class
The manager will communicate with the wasp2 software through a C++
class called WASP2. The WASP2 class' purpose is:
- to set-up and provide the right environment for the wasp2 software
- to regularize interaction with the wasp2 software
- to provide for the proper functioning of the various manager states during a scan
- to provide an error reporting mechanism, allowing the transfer of wasp2 errors to the manager.
The WASP2 class communicates with the wasp2 system using the C library
popen() function, providing parameters on the command line as
needed, and reading the output and return value of the wasp2 programs.
A call to popen() blocks until the program called terminates. This
makes it difficult to use the stop and abort features of the manager.
To solve this problem, the WASP2 class runs all program requests
except for waspset in separate threads. The manager may then call
the WASP2 wait() or done() functions to synchronize with the WASP2
threads. These functions also throw exceptions if an error occurred.
This arrangement allows the manager to operate its state sequencer
during long scans, all the while checking on the progress of wasp2
operations.
If the manager is required to abort a scan, it terminates the wasp2
program currently running by sending it a SIGTERM signal and waiting
for it to terminate.
On creation, the WASP2 class sets up the WASP, WASPDATA, and
NEMO environment variables. (These values are obtained by the
manager from its configuration file.) In addition, the WASPDATA
variable is changed to reflect the current GBT project, to ensure that
the wasp2 fits files are written to the proper project directory.
These are the parameters used to control the manager's operation. Parameters in boldface italic are parameters inherited from the Manager base class and thus common to all managers. The parameter link may be followed to obtain more detailed information on the parameter.
- asap - Controls whether the manager starts as soon as possible.
- atten - The value of the attenuator for each backend, set before a calibration load measurement.
- backendMonitorRate - Rate at which monitoring data is obtained from connected backends.
- beclip - Set the range of frequency channels believed to be "good" for each backend.
- chopfreq - Frequency at which the secondary is chopped.
- classout - Output class compatible files.
- cwsigsLoc - Specify where the manager is to find the 'cwsigs' FITS file.
- cwsigsParams - Set cwsigs parameters
- cwsigsPower - The power level of the LO1B synthesizer during 'cwsigs'.
- debugLevel - Controls the level of debug printing in the manager.
- defcold - The cold type for TCOLD=-1, one of 'ambient' or 'sky'.
- defhot - The hot type for THOT=-1, one of 'ambient' or 'sky'.
- diagout - Write wasp2 diagnostic files.
- diode - Chooses which calibration diode to use during a 'dobs' scan.
- exposure - The effective integration time in seconds, signal + reference.
- genericKeyword - Set any wasp2 keyword.
- monitorBlanking - Stop monitoring during scans.
- nextScanNumber - Scan number for next scan.
- obsProgram - Wasp2 observation program for next scan.
- projectId - Project ID for next scan.
- quadsw - Use quadrature switching.
- recipientNumber - Number of clients connected to manager.
- requestedStartTime - Start time requested by manager for next scan.
- requestedStopTime - Stop time requested by manager for next scan.
- scanId - Scan identifier.
- scanLength - Scan length.
- scanNumber - Scan number.
- scanlog - Data file information for scan.
- source - Source name.
- startTime - Actual negotiated start time.
- state - Operational state for manager.
- status - Message status of manager.
- tcaltype - Calibration algorithm.
- tcold - Cold load temperature.
- thot - Hot load temperature.
- verbose - Passes on all wasp2 output to stdout or log file.
The Zpectrometer backend micro-controllers provide 8 data monitor
points via a TCP connection on port 5150. The way this functions is
that the TCP client provides a string (any string will do, as long as
it does not consist solely of a newline) to this port, and the
micro-controller will respond with a string containing the data
arranged in 8 fields. This string looks like this:
+15_V = 0.000 V
+3.3_V = 0.000 V
+5_V = 0.000 V
-5_V = 0.000 V
Tamp1 = -50.000 degC
Tamp2 = -50.000 degC
Taux = -50.000 degC
Tcorl = -50.000 degC
The manager will run a monitor task whose function is to request this
information at regular intervals, parse the values from this message
string, and post them to the system's Transporter through the Ygor
sampling mechanism.
The sampler, BackendMonitorData, will consist of an array of 4
elements (1 based, one per backend), each element containing a
structure of 8 floats; each field corresponding to a field in the
micro-controller monitor string above. The sampler field names (with
the Zpectrometer field names in parentheses) are:
-
p15Volts (+15_V)
-
p3Volts (+3.3_V)
-
p5Volts (+5_V)
-
n5Volts (-5_V)
-
tAmp1 (Tamp1)
-
tAmp2 (Tamp2)
-
tAux (Taux)
-
tCorl (Tcorl)
For example, if one wished to access the correlator temperature value
for the 3rd backendsampler using Grail's 'get_sampler_value()' API,
one would specify the field as follows:
>> z.get_sampler_value('BackendMonitorData,3,tCorl')
Likewise, to access it through Cleo DeviceExplorer, one would
select the 'BackendMonitorData' sampler, and the '3,tCorl' field
in the Sampler Field list-box.
The monitor rate used by the manager is controlled by the manager's
backendMonitorRate parameter, an enumeration which supports sampling
intervals of: 100, 200, 500 mS; 1, 2, 5, 10, 30 seconds; 1, 2, 5, 10,
30 minutes; and 1 hour.
The Zpectrometer micro-controllers provide a message facility which
can be available to a client through subscription over a UDP port.
The manager may be upgraded in the future to use this facility if it
is deemed necessary. Otherwise it is available through the wasp2
utility 'utelnet.'
The gbtstatus application uses the cal_states array Parameter in
order to determine if the cals for the receiver in use are firing. If
any value in the cal_states array is "Noise," then the status for
the cal will be "On."
The manager has a configuration file called
Zpectrometer.conf. Among other
things, this configuration file serves these two purposes when the
manager is started up:
- Sets all the keywords in the wasp2 environment to a default value
- Sets the default value for any control parameter that is mapped to a keyword
There are no restrictions on the keyword/value pairs that can be
placed in this configuration file, provided the keyword exists in the
wasp2 parameters file; the manager reads them and dutifully passes
them on to the waspset utility. For this reason, the sample
configuration file above includes all known keywords and their default
values. This provides a central, unique location to set up the Wasp2
database to an acceptable default state.
The Manager inherits all its states from the parent class. The complete list of states are: Off Standby Ready Activating Committed Running Stopping Aborting NotInService. Only a subset of this list is of interest here.
When in this state, the manager will not run the wasp2 software or participate in scans, nor will it communicate with the Zpectrometer backends in order to monitor voltages and temperatures. The manager placed in an 'Off' state when it is turned off. In Astrid, SetValues("Zpectrometer", {"state":"off"}).
When in this state, the manager will not run the wasp2 software or participate in scans, but it will monitor voltages and temperatures. The manager can be placed in 'Standby' from Astrid by calling SetValues("Zpectrometer", {"state":"standby"}).
When Ready, the manager can participate in scans, accept parameter updates, run the wasp2 software, and monitor voltages and temperatures. The manager is Ready when it is turned on. From Astrid, SetValues("Zpectrometer", {"state":"on"}).
When a scan is started (usually by the ScanCoordinator), the manager enters the Activating state. While activating, the manager computes its earliest start time and negotiates the actual start time with the ScanCoordinator. The ScanCoordinator will then issue the actual start time based on the latest starting time given to it by the managers that are included in the scan.
The Zpectrometer manager determines its earliest possible start time by allowing ~5 seconds for backend initialization. Once it gets its actual start time from the ScanCoordinator, it will immediately start the wasp2 observation program with the stime=SEC parameter, where SEC is the target start time in the standard Unix format of seconds since midnight, Jan 01 1970:
totpwr stime=1165597218
The observation program, either 'dobs' or 'totpwr', will configure the backends and wait for the start time.
The Manager will enter the Running state when the start time rolls around. During the running state it will check on the execution status of the wasp2 observation program it spawned, and will remain in the Running state until the observation program terminates.
The Manager will enter the Stopping state when the wasp2 observation program it spawned terminates. While in the stopping state, the manager will copy the 'cwsigs' data file from the specified directory (see cwsigsLoc), if the observation program was 'totpwr' or 'dobs'.
If, during the Running state, the manager terminates the scan abnormally, it will enter the Aborting state. This may happen for the following reasons:
- An illegal parameter value was set
- The wasp2 observation program terminated abnormally
- The user made an abort request.
The first occurs if one of the manager's parameter check functions detected an illegal value. The value should be corrected before attempting to start the manager again.
The second occurs if the the wasp2 program being run returns a non-zero value. This indicates that it experienced an error condition. The output from the wasp2 software is saved and printed to stderr or the device log file, and also sent as a message.
The third possibility is that the user wishes to terminate a scan prematurely. In this case, the manager kills the wasp2 observation program by sending it a SIGTERM signal.
The Zpectrometer Manager does not have to generate FITS files.
Instead, these are generated by the wasp2 software. The Zpectrometer
Manager must however provide the full path and names of the desired
FITS files. It will do this by setting the WASPDATA environment
variable to the appropriate project directory, and by setting the FITSFILE
keyword to the desired filename
4.11.1. WASP Data
The wasp2 software saves its data and calibration FITS files in a
directory specified in the environment variable WASPDATA. This
variable will be set by the Manager to the appropriate project
directory at the start of each scan. The Manager will handle all
calibration files as appropriate (see below).
By convention all data products of the GBT are stored in in a
directory named the same as the Manager that produced them. This
directory resides within a directory named after the project ID. This
in turn resides within a directory indicated by the YGOR_DATA key
found in the system.conf system configuration file. For the GBT
system, this key is set to /home/gbtdata. Thus Zpectrometer data
files will be found in a directory structured as follows:
<YGOR_DATA>/<PROJ_ID>/Zpectrometer
A typical data directory:
/home/gbtdata/T_ZPEC_29NOV06/Zpectrometer
4.11.2. CWSIGS Calibration
The manager allows the 'cwsigs' program to be run to do a frequency
calibration of the Zpectrometer. The 'cwsigs' program controls the
GBT's LO1B to produce a varying test tone during this procedure. The
data produced by 'cwsigs' is then written to the current project
directory, as with all other Zpectrometer measurements. The
parameters to set to run 'cwsigs' are:
- obsProgram: An enumeration, this should be set to 'cwsigs'
- cwsigsPower: An int, this is the power setting for the synthesizer, in dBm.
- cwsigsParams: An array of structures, one per back end, which control the frequency settings. The fields of each structure are:
- enable - a bool; enable this backend for cwsigs
- startFreq - a float; starting frequency of the frequency scan range, in MHz.
- endFreq - a float; ending frequency of the frequency scan range, in MHz.
- increment - a float; Size of frequency increment during scan, in MHz.
- attenuation - an int, amplifier module attenuation, in dB, 0-63.
NOTE: The 'cwsigsParams' array elements determine how the manager runs
the 'cwsigs' command: If every field in every array element for each
backend is identical, the manager runs one 'cwsigs' scan for the
entire instrument. If however any of the fields in any of the array
element is different, the manager will run 'cwsigs' individually for
each enabled backend (as determined by the 'enable' field).
4.11.3. Using CWSIGS data
The manager allows the observer to specify which CWSIGS file to
include in the data set for data reduction purposes. The observer
specifies this by setting two fields in the 'cwsigsLoc' manager
parameter. The fields are:
- projDir: A string, the project directory which contains the 'cwsigs' data file. This should be the directory name only, not an absolute path. The manager assumes the YGOR_DATA portion of the path, which it picks up from the
system.conf system configuration file. It also assumes that the 'cwsigs' data file will reside in a directory under this project directory named 'Zpectrometer'. (See WASP Data.)
- fileName: A string, the name of the 'cwsigs' file.
Once these names are specified, the manager will copy the specified
file from the specified project directory to the current project
directory at the end of a scan, unless:
- The file already exists in the current project directory, or
- The specified project directory and the current project directory are the same.
The manager will not copy any 'cwsigs' data files if either of these
strings are either empty ('') or set to 'undefined').
The files involved are one or more of the following:
- Zpectrometer.conf
- devices.conf. Add "Zpectrometer" to this file, to make system aware of its existence
- system.conf. Add ZPECTROMETER_HOST key to specify Manager host machine
- messageMux.conf
- standard.cabling. This is the system's cabling file. Although the manager itself does not require it, the IF Manager does need to know how the Ka band receiver is connected to the Zpectrometer in order to provide valid FITS files. Without valid entries in this file the IF Manager will fall into an error state and ScanCoordinator will not scan.
These configuration files will be added/modified in both
/home/gbt/etc/config and /home/sim/etc/config.
- Cleo screen
- interaction with system
- IF Manager - ensure
standard.cabling correctly reflects the connections between the Ka band receiver and the Zpectrometer
- config tool. The config tool will need to set the Zpectrometer manager appropriately. (It has been agreed that this will be done in the future, after some working experience with the Zpectrometer is obtained.)
- SDFITS - See ModificationRequest4C406
- GBTIDL - See ModificationRequest5C606
- Observing Directives?
The interface between the manager and the wasp2 software allows a
great deal of development testing to be done by inspection. When the
manager is started in 'simulate' mode (see
Zpectrometer.conf), the manager
will print out the command lines that it would normally execute
instead of executing them. These can be compared with the wasp2
documentation for correctness.
Prior to use with the real Zpectrometer instrument the manager will be
tested as much as is possible on the SDD simulator. The wasp2
software itself allows a great deal of simulation; in addition, at
least one simulated backend includes a Coldfire microprocessor board
like the ones used in the actual backends.
The Zpectrometer is not yet a production instrument. Thus the manager
will not receive integration, regression and sponsor tests in the same
fashion that production managers do. Instead, the manager necessarily
will be tested along with Zpectrometer hardware tests and wasp2
software tests. Because of this it is to be expected that the manager
will be patched often as problems are found and new needs arise.
APPROVED: I acknowledge that my request is fully contained in this MR, and if the SDD delivers exactly what I specified, I will be happy.
ACCEPTED: I acknowledge that I have validated the completed code according to the acceptance tests, and I am happy with the results.
| Written | - RamonCreager - 5/17/2006 |
| Checked | symbol - name - date |
| Approved by Sponsor | symbol - name - date |
| Approved by CCC | symbol - name - date |
| Accepted/Delivered by Sponsor | symbol - name - date |
Symbols:
- Use
%X% if MR is not complete (will display
)
- Use
%Y% if MR iscomplete (will display
)
CCC Discussion Area
This section documents each of the managers parameters. Many
parameters will not be of interest to the observer, but are included
here for completeness.
Many of the manager's parameters operate simply by setting the
appropriate wasp2 keyword. This will be indicated when this is the
case, with the corresponding keyword given in UPPERCASE ITALICS. A
better understanding of these parameters can be obtained by consulting
"Keywords for WASP Data Product". In fact,
many of the descriptions for these parameters are drawn from this
document.
Where applicable, examples of how to set or read the parameters from
Astrid scripts are given. Please consult the
Observing Directives documentation
carefully before using these examples. Of particular note is that the
'GetValue()' (note no 's') directive always returns a string.
This must be converted to the proper type by the user of the observing
script. Also note the syntax of the 'SetValues()' directive. Complex
parameters must be set at the lowest field level. However,
'SetValues()' is capable of setting more than one value per call,
using a dictionary to store the parameter fields and values to set
them to. This example sets all the fields of the first two elements
of the cwsigsParams parameter in one call:
SetValues("Zpectrometer", {"cwsigsParams,1,enable":"true", \
"cwsigsParams,1,startFreq":25300, \
"cwsigsParams,1,endFreq":39900, \
"cwsigsParams,1,increment":8, \
"cwsigsParams,1,attenuation":15, \
"cwsigsParams,2,enable":"true", \
"cwsigsParams,2,startFreq":25300, \
"cwsigsParams,2,endFreq":39900, \
"cwsigsParams,2,increment":8, \
"cwsigsParams,2,attenuation":15})
Note the syntax used to specify the parameter field to set. This
notation is also used to get a value using 'GetValue()'; note also the
notation used to set a Python dictionary.
Most of the parameters are read/write, except where indicated.
Therefore the 'SetValues()' and 'GetValue()'
directives may both be used on the parameter. In those cases, the
example given is usually a 'SetValues()' example.
Type: bool
Unit: N/A
Values: 'false', 'true' or 0, 1
Array Count: N/A
Description: Controls whether the manager starts as soon as possible.
Example: SetValues("Zpectrometer",{"asap":"true"})
Type: float
Unit: dB
Values: 0-63
Array Count: 4
Description: The value of the attenuator for each backend, set before a calibration load measurement. Each element in the array represents one backend and sets the corresponding ATTEN# keyword.
Example: SetValues("Zpectrometer", {"atten,1": 7})
Type: Enum (Int)
Unit: N/A
Values: mr100MS mr200MS mr500MS mr1Sec mr2Sec mr5Sec mr10Sec mr30Sec mr1Min mr2Min mr5Min mr10Min mr30Min mr1Hr
Array Count: N/A
Description: Rate at which monitoring data is obtained from connected backends.
Example: SetValues("Zpectrometer", {"backendMonitorRate":"mr1Sec"})
Type: structure:
- rangeStart: int
- rangeEnd: int
Values: 1-9999
Array Count: 4
Description: Array of 4 structures, one per backend. Each structure has two int fields, rangeStart and rangeEnd. Backend active channel range. Assuming backend 2, rangeStart = 1, rangeEnd = 9999, sets the BECLIP# keyword to BECLIP2=1:9999
Example: SetValues("Zpectrometer", {"beclip,2,rangeStart":1, "beclip,2,rangeEnd":9999})
Type: double
Unit: Hz
Values:
Array Count: N/A
Description: Chopping frequency. Sets the CHOPFREQ keyword
Example: SetValues("Zpectrometer", {"chopfreq":0.1})
Type: enum
Unit: N/A
Values: false, true or 0, 1
Array Count: N/A
Description: Determines whether wasp software outputs class compatible files. Sets the CLASSOUT keyword.
Example: SetValues("Zpectrometer", {"classout":"true"})
Type: structure:
- projDir: string
- fileName: string
Array Count: N/A
Description: Specifies where the manager is to find the 'cwsigs' fits file. projDir specifies the name of the project directory where the data file resides, and fileName the filename of the data file. Absolute path names should not be givne in projDir. The manager assumes the location of the GBT data directory, and assumes that the file will be found within the "Zpectrometer" directory inside the project directory.
Example: SetValues("Zpectrometer", {"cwsigsLoc,projDir":"T_ZPEC_29NOV06", "cwsigsLoc,fileName":"2006_11_30_05:32:14.fits"})
Type: structure:
- enable - bool. Set if the backend is to be measured.
- startFreq - float. The starting frequency of the LO1B synthesizer scan (MHz).
- endFreq - float. The ending frequency of the LO1B synthesizer scan (MHz).
- increment - float. The scan step size (MHz).
- attenuation - int. Amplifier module attenuation (dB).
Array Count: 4
Description: An array of 4 structures. Each structure controls 'cwsigs' parameters for each backend. If all backends are set identically, the manager will run the 'cwsigs' program for all backends simultaneously. If any backend settings differ, the manager will run each backend separately.
Example: SetValues("Zpectrometer", {"cwsigsParams,2,enable":"true"})
Type: int
Unit: dBm
Values:
Array Count: N/A
Description: The power level that the LO1B synthesizer should be set to during a 'cwsigs' procedure
Example: SetValues("Zpectrometer", {"cwsigsPower":10})
Type: enum
Values: 'NoDebugLevel', 'BasicManagerDebug', 'TimingMethodsDebug', 'AllMethodsDebug', 'ManagerPerParameterDebug', 'InternalManagerDebug', 'AllPerParameterDebug'
Array Count: N/A
Description: Controls the level of debug printing in the manager. This is primarily intended for developer use.
Example: Don't use this.
Type: enum
Unit: N/A
Values: 'ambient', 'sky'
Array Count: N/A
Description: The cold type for TCOLD=-1, one of 'ambient' or 'sky'. Sets the DEFCOLD keyword.
Example: SetValues("Zpectrometer", {"defcold":"sky"})
Type: enum
Unit: N/A
Values: 'ambient', 'sky'
Array Count: N/A
Description: The hot type for THOT=-1, one of 'ambient' or 'sky'. Sets the DEFHOT keyword.
Example: SetValues("Zpectrometer", {"defhot":"ambient"})
Type: int
Unit: N/A
Values: 0, 1
Array Count: N/A
Description: Set to non-zero to trigger output of wasp2 diagnostic files. These files, with extension '.dpr' and '.tpr', will be output to the project directory. Sets the DIAGOUT keyword.
Example: SetValues("Zpectrometer", {"diagout":0})
Type: int
Unit: N/A
Values:
Array Count: N/A
Description: Noise diode number to activate during "dobs" observations; a negative value implies "none". Data accumulated with the diode off will be archived with a value of -1 for this parameter and a scan number one greater than the matching diode-on integration.
Example: SetValues("Zpectrometer", {"diode":-1})
Type: double
Unit: Seconds
Values: >0
Array Count: N/A
Description: Sets the effective integration time. exposure is dependent on which observing program is selected in obsProgram. If 'totpwr' or 'dobs' is selected, exposure will set the EXPOSURE keyword; if 'cwsigs' is selected, exposure will set the CAFTIME keyword; if 'zero', CAZTIME.
Example: SetValues("Zpectrometer", {"exposure":60})
Type: structure:
- key: string (64 characters)
- value: string (64 characters)
Array Count: N/A
Description: genericKeyword is an interface to allow any arbitrary wasp2 keyword to be set from the manager. Its main use is to set keywords that have not been mapped to parameters in this manager. It is an 'auto' parameter, which means that as soon as it is set it will execute; no need to do a 'prepare' to set the value. What this means in practice is that every time this parameter is used a call to 'waspset' is made to set the keyword. Repeated use of this parameter with the same keyword/value pair is a good indication that this keyword should be mapped to a parameter.
Example: SetValues("Zpectrometer", {"genericKeyword,key":"atten2", "genericKeyword,value":"6"})
Type: enum
Unit: N/A
Values: 'false', 'true' or 0, 1
Array Count: N/A
Description: When set, this parameter inhibits monitoring of voltages and temperatures on all backends during a scan.
Example: SetValues("Zpectrometer", {"monitorBlanking":"true"})
Type: int
Unit: N/A
Values: 1-N
Array Count: N/A
Description: Scan number of next scan
Example: SetValues("Zpectrometer", {"nextScanNumber":800})
Type: enum
Unit: N/A
Values: 'zero', 'cwsigs', 'totpwr', and 'dobs' or 0-3
Array Count: N/A
Description: Specifies which wasp2 program to run on the next scan
Example: SetValues("Zpectrometer", {"obsProgram":"cwsigs"})
Type: char[16]
Unit: N/A
Values: N/A
Array Count: 16
Description: Project identifier string. During normal operations this parameter is not set by the observer, but by the ScanCoordinator.
Example: SetValues("Zpectrometer", {"projectId":"T_ZPEC_29NOV06"})
Type: enum
Unit: N/A
Values: 'false', 'true', or 0, 1
Array Count: N/A
Description: Determines whether to use quadrature phase switching during the integration.
Example: SetValues("Zpectrometer", {"quadsw":"true"})
Type: int
Unit: N/A
Values: N/A
Array Count: N/A
Description: Number of clients to the manager. This value is never set, only read, and is of interest to other programs or to developers.
Example: val = GetValue("Zpectrometer", "recipientNumber")
Type: structure:
- seconds: double, seconds since midnight.
- MJD: int, Modified Julian Day
- flags: short int, misc. flags
- refFrame: byte, reference frame
- units: byte
Array Count: N/A
Description: Target start time of next scan if asap flag is clear
Example: don't use.
Type: structure:
- seconds: double, seconds since midnight.
- MJD: int, Modified Julian Day
- flags: short int, misc. flags
- refFrame: byte, reference frame
- units: byte
Array Count: N/A
Description: Target stop time of next scan.
Example: don't use.
Type: string
Unit: N/A
Values: N/A
Array Count: 32
Description: Scan identifier string. Normally this is set by ScanCoordinator.
Example: SetValues("Zpectrometer", {"scanId":"10"})
Type: structure:
- seconds: double, seconds since midnight.
- MJD: int, Modified Julian Day
- flags: short int, misc. flags
- refFrame: byte, reference frame
- units: byte
Array Count: N/A
Description: Expected duration of next scan
Example: val = GetValue("Zpectrometer", "scanLength,seconds")
Type: int
Unit: N/A
Values: 1-N
Array Count: N/A
Description: Scan number of current or last scan.
Example: val = GetValue("Zpectrometer", "scanNumber")
Type: string
Unit: N/A
Values: N/A
Array Count: 196
Description: List of paths to DAP FITS files. This is meant for use by the ScanCoordinator, which uses this to construct the ScanLog.fits file.
Example: val = GetValue("Zpectrometer", "scanlog")
Type: string
Unit: N/A
Values: N/A
Array Count: 32
Description: Source identifier string. Normally set by the ScanCoordinator.
Example: SetValues("Zpectrometer", {"source":"Jupiter"})
Type: structure:
- seconds: double, seconds since midnight.
- MJD: int, Modified Julian Day
- flags: short int, misc. flags
- refFrame: byte, reference frame
- units: byte
Array Count: N/A
Description: Expected start time of the next scan
Example: val = GetValue("Zpectrometer", "startTime,seconds")
Type: enum
Unit: N/A
Values: 'Off', 'Standby', 'Ready', 'Activating', 'Committed', 'Running', 'Stopping', 'Aborting', 'NotInService'
Array Count: N/A
Description: Current operational state of the Manager. NOTE: although this is a read-only parameter on the manager, the Astrid observing directive 'SetState()' is programmed to recognize limited use of 'state' to allow the observer to cause a manager to change states (see Example below, and especially the Observing Directives documentation).
Example: val = GetValue("Zpectrometer", "state")
SetValues("Zpectrometer", "state:on")
Type: enum
Unit: N/A
Values: 'clear', 'Info', 'Notice', 'Warning', 'Error', 'Fault', 'Fatal'
Array Count: N/A
Description: Summarizes the severity of the Message levels. For example, if the manager experienced a condition that caused it to issue a 'Warning' level message, this parameter will be set to 'Warning'.
Example: val = GetValue("Zpectrometer", "status")
Type: enum
Unit: N/A
Values: 'vane', 'hotcold'
Array Count: N/A
Description: Telescope calibration mechanism. Currently supported are VANE and HOTCOLD. Sets the TCALTYPE keyword.
Example: SetValues("Zpectrometer", {"tcaltype":"vane"})
Type: double
Unit: Kelvins
Values: N/A
Array Count: N/A
Description: Cold load temperature. Sets the TCOLD keyword.
Example: SetValues("Zpectrometer", {"tcold":50.0})
Type: double
Unit: Kelvins
Values: N/A
Array Count: N/A
Description: Hot load temperature. Sets the THOT keyword.
Example: SetValues("Zpectrometer", {"thot":50.0})
Type: int
Unit: N/A
Values: 0, >0
Array Count: N/A
Description: Setting this parameter to non-zero causes the wasp2 output (from stdout & stderr) to be printed on the screen or in the log file as they occur, regardless of error condition.
Example: SetValues("Zpectrometer", {"verbose":1})
-- RamonCreager - 05 May 2006
Revision r1.20 - 08 Dec 2006 - 17:18 GMT - RamonCreager Parents: PlanOfRecordC32006
|
Content copyright © 1999-2007 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
|
| |