Release Notes (04/15/2003)
You can always find the latest version of this document at:
http://www-glast.slac.stanford.edu/IntegrationTest/ONLINE/EM1/updates/release_notes.htm
Current release: P01-00-00
Important Notes for this Release:
The ADDRESS register in both GTEM and GAEM determines the event contribution IDs. These registers should not be modified by the user scripts.
The current release uses Qt 3.1.1, PyQt 3.5 and has been tested with Python 2.2.1 or later. There is no need to compile SIP or PyQt since the required binaries are included in the DLLs directory. If you need to develop standalone (non RunControl enabled) applications with PyQt you need to change your PATH and PYTHONPATH to include this directory. See setupRunControl.bat in RunControl directory for an example on how to set these environment variables.
Do not install HippoDraw from the web site since this release contains all libraries that are needed to create HippoDraw enabled test applications.
ACD G2 Support:
A new release of the interface libraries are included in this release mainly to support the AEM version G2. For more information see:
http://www.slac.stanford.edu/exp/glast/flight/sw/user_guide/current_release.html
Also see documents LAT-TD-00639-D1 v2.4 and ACD Test-stand architecture.
Functional blocks and registers:
Added GNAT node and moved the statistics registers from GLAT to GNAT
The following registers are available in the new GNAT node:
STATS_RX_CTRL_CELLS STATS_RX_DATA_CELLS STATS_RX_HEADER_PARITY STATS_RX_CELL_PARITY STATS_TX_CTRL_CELLS STATS_TX_DATA_CELLS STATS_TX_BUSY_ASSERT STATS_CLEAR OUTPUT_MASKSee GNAT documentation for more details.
Added the following methods to access the GNAT node of GTEM, GAEM and GGLT:
getGNATaddress createGNATinstanceAdded the following registers to GAEM:
POWER_MANAGMENT ADDRESS TIMEOUTAdded new GAEQ node for ACD environmental quantities
A new node GAEQ has been added to the AEM hierarchy under GAEM. It contains the environmental monitoring registers. See LAT-TD-00639-D1 v2.4 for more details.
Fixed the name of the GARC dataless command CMD_SET_HVSAAFixed the name of the GARC register HLD_EN_1
Added the following registers to GGLT:
BUSY_DISABLE EXT_CAL_STROBE EXT_TACK AEM_COUNTER_MASKRemoved the THROTTLE_DISABLE bit from the MASK register and added the following:
ACD_VETO_00 : : ACD_VETO_17 ACD_CNOAdded a generic dictionary node GDBN to store user and session level variables during test runs.
Added support for bypassing EGUs and constraints.
An optional parameter called 'bypass' has been added to setReg and getReg. If this parameter has a value of 1 then EGU conversion and rule evaluations are bypassed. Example:
arc.getReg('hvsaa', bypass=1) arc.setReg('hvsaa', val, bypass=1)
Run Control:
Added a "User" text field for the operator to record his/her name before the test is run.
Added user preferences dialog
You can access it from the "Edit" menu of the Run Control GUI.
Run Control User Preferences screen allows the user to select the directories for repository, test scripts, data files, log files, report file and FITS files. In addition it is possible to enable or disable archiving, message logging to a file, FITS output and whether the FITS output should be compressed or not.The preferences are saved and retrieved from the file runControl.cfg or from the file that is specified on the Run Control command line such as in the case of "runcontrolmain -c myConfigFile.cfg"
Added environmental quantity monitoring screen for TEM
Accessible from the "Start Environmental Monitoring" button
If it complains about not finding the envMonSchema.xml that means you don't have the repository directory pointing to \Online\repos in your preferences.
This screen allows you to monitor and plot environmental quantities that are made available by the GTIC register.
The tabs allow the user to select the channel, the monitor checkbox enables monitoring for the corresponding quantity and the plot checkbox allows for plotting the value on a strip chart. The rate slider allows the user to vary the monitoring rate between 2.1Hz and 100Hz. The default is 1Hz.
Each plot has a context menu that is activated by a right click of the mouse and allows the user to print a snapshot of the plot to a printer or save it to a file as a bitmap.
Note that the measurements have not been calibrated yet.Added session variable support
It is now possible to share data between different test runs using the following methods:
getSessionVar(key) setSessionVar(key, value)The session variables only persist during a Run Control session. If you exit the Run Control application then these variables will be lost.
Added Run Id support
Each test is assigned a run id at the start of execution. This id is incremented each time a test is run. The actual run id value is a combination of 'teststand id' (3 digits) and 'run sequence' (6 digits). These values are stored in the RunControl directory under a file called runId.cfg. Please refer to the runId.cfg.sample file to determine what the teststand id should be.
Added test reporting facility
Each time a test report is run, an entry line in XML format is added to the file rcReport.out located in the directory pointed to by the test report directory user preference. This file by itself is not a valid XML file but using the supplied wrapper file "report.xml" it can be inputted to any XML parser.
Each report contains the following information:Report timestamp, TestName, RunId, Operator, EventCount, PauseCount, StartTime, ElapsedTime, EndTime, SchemaConfigFile, VersionData, CompletionStatus, FITSfile, ArchiveFile, LogFile
The test completion status can be set in the user application inside the stopRun method using the following method:
setCompletionStatus(completionStatus)It can also be retrieved using the getCompletionStatus()
The valid values for the completion status are:
COMPL_STATUS_UNDEFINED = -1 COMPL_STATUS_ABORTED = -2 COMPL_STATUS_ERROR = -3 COMPL_STATUS_SUCCESS = 0In addition, the user applications can add their own report fields using the following method:
addCustomReportData(key, value)The key should be a keyword string and the value should be a numeric or string value.
Added archiving support
If this option is enabled then all events gets written to a file during the test application's execution. The filename has the following format:
ebfYYMMDDHHMISS.archThe file contains raw event data.
Added FITS file output support
It is now possible to create FITS files in real-time. Each time a test application is run, if it is enabled in preferences, a timestamped FITS file is produced. The filename is formatted as follows:
ebfYYMMDDHHMISS.fits
If compression preference setting is checked then a ".gz" is appended to the end of the filename and a GZipped file is created.
FITS files contain the raw events in HDU blocks. Each HDU contains up to 1000 events in a binary table. Each HDU header contains a keyword EVTCOUNT that has the actual number of events in that HDU.
Also the primary HDU header of each FITS file contains a keyword DGRAMID that contains the datagram identity as well as the keyword EVTVERSN that has the event version
The FITS files are created using variable-length columns to conserve storage space.
If real-time FITS creation is not desirable for performance reasons then a utility called "arch2fits.py" located in the RunControl directory is available. The usage is as follows:
arch2fits.py Usage: -h or --help for Help -a or --archive to specify to input archive file -f or --fits to specify the output FITS file (append .gz to the filename for compression) -v or --verbose to specify progress messages during the conversionIn addition, to convert the FITS file back to its archive file format, the "fits2arch.py" utility located in the RunControl directory can be used:
fits2arch.py Usage: -h or --help for Help -f or --fits to specify the input FITS file -a or --archive to specify to output archive file -v or --verbose to specify progress messages during the conversionTEM Power Up INIT
In the "Global" tab of the RunControl GUI the "TEM Power Up INIT" button now powers up the TEM and the front ends. It basically does the same thing as the cfg_pwr.py script in the testsuite directory.
Socket connections in Run Control are now made before the test applications start so that the connections can be shared by other utilities that are part of Run Control and not directly related to the execution of an application.
Sample run control applications are now located in the "applications" directory under RunControl.
Event Client
Optimized the event reading by not instantiating and AEM object everytime
Added support for reading all the contributions by introducing the following methods:
setCurrentContribution(contributionId) getCurrentContribution() getContributionList()After readEvent() call the event contains the whole event including the header word and all its contributions.
The parsing routines currently present in the event client work based on an offset set by the "setCurrentContribution" method. So as an example if the event contains two contributions TEM0 and ACD one can code:status = ec.readEvent() contList = ec.getContributionList() for cId in contList: ec.setCurrentContribution(cId) ec.evDumpSummary() if cId.startswith('TEM'): ec.evDumpCAL_LogAccepts() ec.evDumpCAL_Logs() ec.evDumpTKR() ec.evDumpTEM_Error() ec.evDumpDiagnostic() elif cId == 'ACD': ec.evDumpEventAEM()The event is wrapped around what we call a datagram. This datagram starts with the "datagram identifier" and "datagram length" which are 32-bit integers. The current value of the datagram identifier is 0x201F1010. After that the EBF event starts which contain a version identifier as explained in the next paragraph. The rest of the event is the actual event as it is received from the hardware with the exception that the event size now includes the version identifier word that comes before it.
Added identifier to the event which is a 32-bit value that contains version information. It is accessible as evtCli.version_info. The current expected identifier value is 0x101F0010. This value is stored before the event header and gets written to the archive and FITS files as well.
All events now contain a GEM (GLT Electronics Module) contribution. Unlike other contributions the GEM contribution is added by the event server and currently contains the timestamp of the event. The timestamp is packed as an unsigned integer containing the seconds since the epoch (1/1/1970) and an unsigned integer value containing the fraction of time in nano-seconds. You can retrieve this timestamp value by issuing the following command:
time_in_seconds = evtCli.evGetTimestamp()The result should be compatible with the output that time() method produces in Python.
When the event client connects to the event server on VxWorks side the first thing it does is to send the current time. This is used to set the real-time clock and the battery-operated clock on the SBC. This ensures that the timestamp provided in the GEM contribution is accurate as long as the teststand PC's clock is accurate.
Added support for reading events from an archive. This facility existed before but did not allow for reading the whole event.
The AEM event debug output is only displayed if the debug mode is enabled.
Schema Editor
You can now use this GUI application to edit your schemas. It is available from the "GLAST I&T Online" program group or through the batch file "startScmCfg.bat" batch file in the \Online\ScmCfg" directory. For more information on how to use it refer to the online help available by selecting "Contents..." from the "Help" menu.
Version Information:
(Retrieved by running versions.bat while in /Online directory)
The modules ending with _FW denote COMM board firmware and the modules ending with _HW denote COMM board hardware revisions.
Module Version EBF 1.0.0 GAEM 2.0.1.0 GAEM_FW 3.1 GAEM_HW 1.1 GGLT 1.3.1.0 GGLT_FW AEM: 3.1, TEM: 2.2 GGLT_HW 1.1 GNAT 1.0.17.0 GTEM libgtem.o1.3.1.0
libgtem_nrl.o 1.3.1.1
libgtem_tkrV5.o 1.3.1.2GTEM_FW 2.5 GTEM_HW 1.1 XBRD 0.0.2.0 XBRD_FW 1.1 XBRD_HW 1.1 cmdCli 1.27 cmdSvr 1.42 evtCli 1.46 evtSvr 1.48 gAttr 1.13 gConstraint 1.5 gEGU 1.3 gGroup 1.3 gLAT 1.20 gNode 1.19 gRule 1.3 gSchemaConfig 1.21 gutil 1.12
Previous Release Notes (cumulative):
P00-11-00:
Registers:
Added/modified the following registers in GLAT:
STATS_CMD_RX_CTRL_CELLS
STATS_CMD_RX_DATA_CELLS
STATS_CMD_RX_HEADER_PARITY
STATS_CMD_RX_CELL_PARITY
STATS_CMD_TX_CTRL_CELLS
STATS_CMD_TX_DATA_CELLS
STATS_CMD_TX_BUSY_ASSERT
STATS_CMD_CLEAR
STATS_EVT_RX_CTRL_CELLS
STATS_EVT_RX_DATA_CELLS
STATS_EVT_RX_HEADER_PARITY
STATS_EVT_RX_CELL_PARITY
STATS_EVT_TX_CTRL_CELLS
STATS_EVT_TX_DATA_CELLS
STATS_EVT_TX_BUSY_ASSERT
STATS_EVT_CLEAR
Added EVT_FLOW_CTRL register to GPDU
Added ADDRESS register to GTEM that returns the TEM id.
Events:
Fixed incorrect parsing of the event contribution length.
Allowed bad events to be sent to the client.
Added evt_status to the event client that returns the status value from the
event header.
RunControl:
Added configuration file support to RunControl. See runControl.cfg.sample for
an example.
RunControl & Hippodraw are now using Qt 3.1.1 & PyQt 3.5 libraries contained in
DLLs directory.
Message Logger:
Initial release of the Message Logger has been added to this release.
Schema:
Added <options> under <declarations> and <explicitBroadcastNode> under <options>. See simpleTemSchema.xml for an example.
Documentation:
Added HTML documentation under docs\api directory.
Version Information (retrieved by running python versions.py for this release):
Module | Version |
GAEM | 1.1.0.1 |
GGLT | 1.2.1.0 |
GNAT | 1.0.15.0 |
GTEM | libgtem.o1.2.0.0 libgtem_nrl.o 1.2.0.1 libgtem_tkrV5.o 1.2.0.2 |
XBRD | 0.0.2.0 |
cmdCli | 1.25 |
cmdSvr | 1.37 |
evtCli | evtCli.py 1.22 evtCli_oldTEM.py 1.6 |
evtSvr | 1.35 |
gAttr | 1.11 |
gConstraint | 1.4 |
gEGU | 1.2 |
gGroup | 1.2 |
gLAT | 1.16 |
gNode | 1.15 |
gRule | 1.2 |
gSchemaConfig | 1.15 |
P00-10-01:
GGLT Registers:
This release addresses the issue where setting the GGLT CONFIGURATION & OPTIONS registers resulted in unpredictable behaviour. In previous releases you could specify in your script the following:
glt.CONFIGURATION = 0x3CED8
glt.OPTIONS = 0x1A05
This is an incorrect usage of these registers and they have been made obsolete with this release.
Please use the bit field registers instead. See the testsuite scripts for examples of proper usage.
Additional RunControl batch files:
There is also a new version of the RunControl GUI along with new batch files that let you setup the environment and launch the application. These are:
setupRunControl.bat
setupRunControl_local.bat
runControlMain.bat
runControlMain_local.bat
writeSchema bug fixed:
writeSchema has been fixed so that if there is no <groups> or <imports> section in the <declarations> it doesn't complain.
Version Information (retrieved by running python versions.py for this release):
Module | Version |
GAEM | 1.1.0.1 |
GGLT | 1.2.1.0 |
GNAT | 1.0.15.0 |
GTEM | libgtem.o1.2.0.0 libgtem_nrl.o 1.2.0.1 libgtem_tkrV5.o 1.2.0.2 |
XBRD | 0.0.2.0 |
cmdCli | 1.24 |
cmdSvr | 1.33 |
evtCli | evtCli.py 1.20 evtCli_oldTEM.py 1.6 |
evtSvr | 1.30 |
gAttr | 1.10 |
gConstraint | 1.4 |
gEGU | 1.2 |
gGroup | 1.2 |
gLAT | 1.14 |
gNode | 1.14 |
gRule | 1.2 |
gSchemaConfig | 1.14 |
P00-10-00
This release uses a GUI installer which lets you install
the pyLAT distribution to a directory of your choice. This document will use the convention {Online} to indicate the the directory you specified
when you ran the installer.
Important Notes for this Release:
Two versions of the evtCli module:
There are two versions of the evtCli module in this release. In the distribution these are two separate files called evtCli.py and evtCli_oldTEM.py. The first one will give correct TKR event data *only* for the new TEM board. The second file will give correct TKR event data *only* for the old TEM board. If you have an old TEM board follow the instructions bulleted a through h below, users of the new TEM do not need to take any action:
Three versions of the GTEM library:
In this release there are three different versions of the GTEM library. The one that is needed by your particular hardware configuration should be renamed to libgtem.o before the startup script is executed.
For additional information on VxWorks libraries see the following:
http://www.slac.stanford.edu/exp/glast/flight/sw/user_guide/current_release.html
Transition Board is enabled by default:
If you are not using a transition board you need to edit the file gglt_config.vx and comment out the line that says:
putenv ("XBRD_VME_ADDRESS=0x08080000")
(Put a # sign before it to comment it out)
AEM requires a new firmware for external triggering:
Please install the new firmware chip that was sent to you on to the COMM card to enable external triggering.
Installation Instructions:
Note: In order to run the system without any hardware attached use the following instructions:
Version Information (retrieved by running python versions.py for this release):
Module | Version |
GNAT | 1.0.15.0 |
GTEM | libgtem.o1.2.0.0 libgtem_nrl.o 1.2.0.1 libgtem_tkrV5.o 1.2.0.2 |
GGLT | 1.2.1.0 |
GAEM | 1.1.0.1 |
XBRD | 0.0.2.0 |
cmdSvr | 1.32 |
evtSvr | 1.30 |
cmdCli | 1.23 |
evtCli | evtCli.py 1.20 evtCli_oldTEM.py 1.6 |
gAttr | 1.10 |
gConstraint | 1.4 |
gEGU | 1.2 |
gGroup | 1.2 |
gLAT | 1.13 |
gNode | 1.14 |
gRule | 1.2 |
gSchemaConfig | 1.12 |
Note that there are two versions of the evtCli module. In the distribution these are two separate files called evtCli.py and evtCli_oldTEM.py. Use the appropriate one by renaming it to evtCli.py if necessary. Don't forget to delete the *.pyc files after the renaming.
Changes in this release:
Troubleshooting:
If you are having problems launching RunControl, the following may help:
It turns out that the trUtf8 method is part of the commercial Qt package, but we ship the dlls for that with the system. When you run RunControl from the start menu (Start->Programs->GLAST I&T Online->pyLAT->RunControl), the batch file C:\{Online}\RunControl\runControl.bat is run. It prepends the DLLs directory to the appropriate paths. When you run from the command prompt, or some other way, this doesn't happen, so you'll need to do this by hand if you want to run this way. We didn't want to do this by default because it will cause conflicts with any other version of Qt that might be installed. You can put the two lines (replace {Online} with your installation directory path):
set path=C:\{Online}\DLLs;%PATH%
set pythonpath=C:\{Online}\DLLs;%PYTHONPATH%
in a setup.bat file that you run before running RunControl.
Please contact Selim Tuvi at stuvi@slac.stanford.edu or Ric Claus at
claus@slac.stanford.edu
if you have problems or any questions.