Release Notes for P03-00-00 (last updated 04/09/2004):
The latest revision of this document is located
here. The previous version of the release notes are located
here.
These procedures cover a Windows installation. If you wish to install LATTE under Unix/Linux, refer to the separate procedure.
Installing Truegrid Pro NFS Server for Windows NT/2000/XP
- Download and extract the software from the I&T Online FTP site at: ftp://ftp.slac.stanford.edu/groups/glast/Online/nfs.zip to the target PC's C: drive, or copy the c:\NFS1.1 directory from another PC to the target PC.
- Open up a Command Prompt.
- Type "C:" and press Enter.
- Type "cd \NFS1.1" and press Enter.
- Type "mkdir %WINDIR%\ETC" and press Enter.
- Type "copy EXPORTS %WINDIR%\ETC\EXPORTS" and press Enter.
- Type "copy RPC %WINDIR%\ETC\RPC" and press Enter.
- Type "notepad %WINDIR%\ETC\EXPORTS" and press Enter. If the last two lines of the EXPORTS file say:
/c -path=c:\
/d -path=d:\
Remove the two lines and replace them with:
/VxWorks -path=c:\VxWorks\
Make sure there are no empty lines after the above entry.
- Save the file and exit Notepad.
- Type "portmap add" and press Enter.
- Type "nfs add" and press Enter.
- Type "nfs start" and press Enter.
- When using LATTE with a VxWorks crate, the following should also be done:
The LATTE RunControl component by default assumes the default VxWorks host name is "gitot" and expects an entry in the hosts file of the PC. The "hosts" file is located in %WINDIR%\system32\drivers\etc directory. Edit this file and add a line that says:
xxx.xxx.xxx.xxx gitot
Where xxx.xxx.xxx.xxx is the IP address of the SBC on the VxWorks crate.
Installing Python and LATTE
- LATTE installation requires administrative priviledges. Please make sure
you are logged in with administrative priviledges.
- Make sure Python 2.3 or later is installed. If not, download it from:
http://www.python.org
- After the Python installation add the Python 2.3 installation directory to
your PATH.
- Download and install Win32 Extensions for Python here:
http://starship.python.net/crew/mhammond/win32/Downloads.html
- Download LATTE_P03-00-00_py2.3.exe from http://www-glast.slac.stanford.edu/IntegrationTest/ONLINE/EM1/updates/default.htm. Start the installer and follow the onscreen instructions.
For teststand machines:
- Make sure VxWorks network parameters are set properly. If not, enter
"bootChange" and enter the correct values.
- On VxWorks, enter "< startup-dab.vx" for GASU, "< startup-vaem.vx" for AEM
G2, "< startup-gtem.vx" for a COMM card based system with CAL and/or TKR
hardware or "< startup-ltem.vx" for an LCB based system with CAL and/or TKR
hardware.
- Open up a Command Prompt and change the directory to "%ONLINE_ROOT%\testsuite".
- Type "python -i test_evt_aem.py" for GASU, "python -i test_evt_aem_g2.py"
for AEM G2, "python -i test_evt_cal.py" for CAL or "python -i test_evt_tkr.py" for TKR and press Enter. At the ">>>" prompt, type "test()" and press Enter. You should see the event data
or a running counter being displayed.
In order to run the "versions" utility, at the command prompt change the directory to "%ONLINE_ROOT%" and type "versions.bat". This should output version info for all modules (VxWorks and python) loaded,
and all hardware connected.
To begin writing LATTE scripts, refer to the test scripts in the
%ONLINE_ROOT%\RunControl\applications directory for orientation.
- As usual, prior to installation the old LATTE directories should be renamed
to Online_Pxx-xx-xx and VxWorks_Pxx-xx-xx, where xx-xx-xx is the previous
release number. This allows the user to go back to an earlier release if there
is a problem with the latest one.
- After installation, runControl.cfg file needs to be carried over to the new
installation. If you have created a runControl.cfg in the RunControl
directory, this needs to be copied to the new Online\RunControl directory. If
runControl.cfg exists in another directory and you are using the
"runcontrolmain -c" option to specify a configuration file location, then
there is no need to move the file.
- Beginning with the 1.7 release there is a change regarding the
user list in the configuration file. If you look at the runControl.cfg.sample
file in RunControl directory, you'll see that under the [users] section, the
id is now before the equal sig; this change was required to support full
names with spaces in them. Please modify configuration files
accordingly.
- Also the RunControl\runId.cfg file from earlier releases needs to be copied
over to the new installation directory. The machine ids needs to be updated to
ensure uniqueness. runId.cfg.sample file contains comments indicating machine
id assignments for each subsystem. This scheme allows for 100 teststands per
subsystem and 999999 runs per teststand. If RunControl fails to access the
runId.cfg after loading the application script, it will throw an exception. In
addition, if you created a brand new runId.cfg by copying from runId.cfg.sample
and fail to change the machine id from its current value of 0, RunControl will
throw an exception as well.
- If you create additional batch files to provide a customized
runControl.cfg to RunControl, please do not create it under the LATTE
installation directory. Instead use your subsystem root directory (ie.
ACD_ROOT, CAL_ROOT, etc.). This way, when you install a new LATTE release, you
won't have to carry over your batch files to the new directory.
Other installation related changes:
- If you install LATTE for the first time, the default installation directory
now points to C:\LAT\Online instead of C:\Online.
- The default output directory specified in runControl.cfg.sample has been
changed from C:/Temp to C:/LAT/Data. The installer creates this directory if
it doesn't exist.
- Added a Windows Start menu item to standalone Electronic Logbook.
- Added a Windows Start menu items for the LDF documentation.
- If you have any of the following environment variables defined:
ACD_ROOT, CAL_ROOT, ELX_ROOT, INT_ROOT, TKR_ROOT
you may get an error stating that the digestData file does not exist. This is
due to the fact that RunControl now validates subsystem scripts as well as
core LATTE scripts. When the subsystem installation packages are ready this
won't be a problem; however, until then you need to do the following after your
LATTE installation completes:
- Open up a Command Prompt.
- Type "cd %ONLINE_ROOT%\setup".
- Type "createDigestData %XXX_ROOT% c:\Python23 XXX_01-00-00" where XXX is
your subsystem prefix. The third parameter is not important right
now but it should have your subsystem release tag in the future.
- If you get an error such as "bad marshal data" you may have the digestData
but it may have been created with an old Python release. In that case,
follow the instructions above again to recreate the file.
- If you get an error similar to the following:
ERROR:root:ImportError: Bad magic number in
c:\LAT\CAL\Scripts\calu_init.pyo
that means your byte codes were generated with a different Python version. To
fix this just delete all *.pyo and *.pyc files from your script directories.
- If you get an error saying:
'python' is not recognized as an internal or
external command, operable program or batch file.
then your python installation directory may not be in your search path. Edit
your PATH environment variable and add C:\Python23 to it.
- If you install LATTE over an existing installation you may end up with
some obsolete files which may cause conflicts with the current release. Please
delete all files in the %ONLINE_ROOT%\DLLs directory other than the
ones listed below:
hippo.dll
HippoDraw.exe
pyqtconfig.*
pyuic.exe
qscintilla.dll
qt*.pyd
qthippo.dll
qt-mt331.dll
sihippo.pyd
sip.exe
sip.pyd
sipconfig.*
plugins/sqldrivers/*.*
Flight Software Release:
Qt and PyQt Related:
- This release requires and uses Qt 3.3.1 and PyQt 3.11. All the required
libraries can be found in the DLLs directory.
- pyuic.exe is also provided in the same directory and should be used to
generate python code from the .ui files. The best way of doing this is to run
setupRunControl.bat from the RunControl directory before running pyuic. This
way an older version of pyuic won't be used by mistake. Also, please make sure
you own a valid PyQt license if you are going to use pyuic.
- If sub-systems are doing any GUI development using the Qt Designer, it is
recommended that they
download and compile Qt 3.3.x on their systems.
Documentation:
- A draft version of the
Online Users Guide
in Word format is available. Note that this document is still under
construction and will be updated as new things are added.
- Doxygen documentation now uses the DOT tool to document class
hieararchies.
- The class names do not show the scope names (ie. module names) to make the doc more readable.
- Python code for LATTE is now accessible through the doxygen documentation.
Hippodraw:
- Hippodraw 1.6.0 is included with this release.
Functional blocks and registers:
- GAFE: Added VETO_VERNIER register and deprecated
LLD_DAC register.
- GAEM: Added tileMap dictionary.
- Exposed parity access methods for the AEM.The following new GLAT pseudo-registers are now available:
PARITY_AEM_CMD_STR
PARITY_AEM_ACCESS_DESC
PARITY_AEM_CMD_PAYLOAD
- Added additional error codes for GASU- and LCB-based commanding.
- The following changes were made to the GAEM
registers:
CABLE_STATUS renamed to
FREEBOARD_STATUS.
POWER_MANAGMENT renamed to
POWER_STATUS.
Added
RELOCATION
register.
Added
RESPONSE_TIMEOUT
register.
Added
POWER_UP
register.
Added
POWER_DOWN
register.
- The following changes were made to the GAEQ
registers:
ENV_FREE_00 renamed to
ENV_FREE_1LA.
ENV_FREE_01 renamed to
ENV_FREE_1RB.
ENV_FREE_02 renamed to
ENV_FREE_2LA.
ENV_FREE_03 renamed to
ENV_FREE_2LB.
ENV_FREE_04 renamed to
ENV_FREE_2RA.
ENV_FREE_05 renamed to
ENV_FREE_2RB.
ENV_FREE_06 renamed to
ENV_FREE_3LA.
ENV_FREE_07 renamed to
ENV_FREE_3RB.
ENV_FREE_08 renamed to
ENV_FREE_4LA.
ENV_FREE_09 renamed to
ENV_FREE_4LB.
ENV_FREE_10 renamed to
ENV_FREE_4RA.
ENV_FREE_11 renamed to
ENV_FREE_4RB.
- Added setCachedValue method to gAttr class
which allows the user to set the cached value of a register without the need
to access to the hardware.
Environmental Monitoring Display:
- Updated ACD environmental monitors.
RunControl:
- New implementation of test suites.
- Added getRawTimeStamp method that returns the unformatted time for the
start of the test.
- Comment Panel: Enhanced the enterComment method and exposed the insertText
method.
- Added schema file and include files to the list of files to verify during
run report generation.
- Added the file passed to readConfig to the includeFiles list so that it
can be exported and verified.
- The run report's list of releases now includes subsystem releases.
- Added limited functionality for environment variables in paths. If a path
starts with a string that is equal to the value of one of the defined root
directory environment variables, then that string is replaced with that
environment variable. Use the $ prefix for environment variable names such as
$TKR_ROOT.
- Added the 'elogurl' preference to preferences.
- The Pause button now becomes a Resume button when the script is paused.
- Added time spent in the PAUSED state to the status display.
- Added long transition support.
- Added new instrument types for CAL to runcontrol.cfg.sample.
- Collection of version data for the run report is now optional and can be
disabled from the preferences.
- Begin and end run events (also called sweep events) are passed to user's
process method as well.
- Added the ability to replace rcArchiver with a user defined archiver
class. It only replaces the regular event archiving and not bad or error event
archiving.
- Added the ability to provide user defined event clients to RunControl.
Sample custom event client implementation and test app can be found in
%ONLINE_ROOT%/RunControl/applications testAppEvtCli.py and testEvtCli.py.
- Added better exception handling for user script transition methods.
- Added support for custom "do not reload" lists. RunControl now has an -n
command line switch. Use this switch to indicate the location of text file containing the prefixes of the modules that
should not be reloaded during application load.
- Changes to support schema specified on the command line. The idea is to be
able to provide a default schema file on the RunControl command line. Then the
operator will not be asked for the schema file during setup. If the
application of any configuration files are required then it can be provided as
part of this schema using the <include> tag. If the schema is provided at the
command line then the configurations attached to that schema will still be
applied when an application is loaded. If additional configurations need to be
applied on a per application basis then it can be loaded and applied by the
application using the readConfig and applyConfig methods. Added -s switch for
the RunControl command line. If this option is specified along with the full
path of a schema file, then this schema will be in effect for the duration of
the session unless the "Reuse Schema" in the application select dialog is
unchecked.
- Disabled FITS file output. Changed update policy of the preferences so
that it only gets written on exit.
- RunControl command line parameter -D or --cmddebug can be used to turn on
command client debug mode.
- Set the default value for the machine id to 0 in runId.cfg.sample to
force the user to change it to a valid value.
- Added support for read only mode housekeeping. In this mode a FITS file
is not generated, but the registers are accessed and cached for retrieval during
the execution of a test. The read only mode can be turned on through the
"Options" tab of the preferences.
- In rcTestReport, now defaulting the beforeSectionId in insertSection to None.
- Converted the Global tab to a pluggable panel.
- In rcFitsWriter updated FITS header with the applicable document numbers
and versions.
- Removed TKR tab contents since this functionality should be provided in
TKRPanelImpl.
- Moved the launch buttons for the Message Logger, Register Browser,
Environmental Monitoring and Browse for Exported Files to the Global tab.
- The power up and power down routines under the Global tab now support
multiple TEMs and the AEM based on the schema loaded.
- The pluggable panel constructor now require the first parameter to be the
Run Control GUI class.
- Added pull down menus and shortcut keys for application load and
transition buttons as well as the tools.
- Changed most log.info messages to log.debug to reduce message clutter when
running a test.
Test Reports:
- Added support for creating a section and inserting it at a specified
position in the report. In order to use this option addSection() needs to be
called with insert=0. Then, then insertSection() can be called to specify the
position of the section within the report. See testsuite/test_report.py for an
example.
- Added the ability to provide arbitrary HTML for captions, labels and text.
Command Client & Server:
- Changes for AEM broadcast node implementation.
- Added saturation counter enable disable commands.
- Modified MEM_READ_SAFE and MEM_LOAD_SAFE to support 8, 16, 32 and 64 bit
addressing.
- Added broadcast mnemonics for PDU,EBM,GEM broadcast.
- Added mnemonics to set and get the pduId.
- Exposed parity access methods for the AEM.
- Added command client debug mode. The RunControl command line parameter -D
or --cmddebug can be used to turn on this option. If this option is specified
then all register accesses from the command client is logged to the logger.
- Updated AEM access methods to support the LCB. This change is not
backwardly compatible with the VAEM.
- Added getEpuAddr and getLCBaddr methods to the command client.
Event Client & Server:
- Added SEND_ONLY_ERROR_EVENTS mode that sends only error events,
gglt_status != 0 events and events with marker != 0
- Optimized checking of if statements for debug flags by evaluating the boolean
expression ahead of time.
- Removed the software GEM contribution and added the OEScontribution as id
32.
- Added timestamp calculation for non-VxWorks platforms.
- Added isSweepEvent method to provide the user script's process() method a way to check
whether the incoming event is a sweep event or not.
- Added the GEM object for parsing the GEM contribution and added evDumpGEM
parser method.
- Renamed getParserStatus to getOnlineStatus.
- Added getGGLTStatusStr, getOnlineStatusStr, isSweepEvent, getEvtStatus,
getEvtSize, isGGLTStatus methods.
- Changed the AEM event object PHA member to a dictionary keyed by the cable
number. See test_evt_aem.py and testAppAcd.py for examples of how to access
AEM event data.
- Renamed evDumpEventAEM to evDumpEventAEM_old and implemented a new
evDumpEventAEM which follows the latest ACD ICD specs.
- In evSummary class renamed zeroSupress to zeroSuppress.
- Changes to the parsing of the GTCC error contribution based on the latest
TEM ICD.
- Added evErrr_GCCC_Message class to provide the gccc number along with the
error message.
- For efficiency the AEM event is only cleared when parsed.
- To parse an AEM event on a G2 teststand, use evDumpEventAEM_G2() rather
than evDumpEventAEM()
LDF:
Electronic Log Book (standalone version):
- First version of the standalone Electronic Log Book is available with this
installation. You will need MySQL to be able to run it.
- MySQL installation instructions:
- Download and install MySQL 4.0.17 (this specific version is required)
from the "Downloads" page of the Online web site.
- Add c:\mysql\bin to your PATH.
- Open up a Command Prompt and enter the following:
mysqld --install
net start mysql
mysql -e "drop database elogbook" (ignore the error)
mysql -e "create database elogbook"
mysql elogbook < %ONLINE_ROOT%\ELogbook\MySQLelogbook\elogbook.sql
- Start ELogbook from the Windows Start menu programs, GLAST I&T
Online->Electronic Logbook (standalone).
- At the connect dialog make sure the driver is pointing to "QMYSQL3", then click the "OK" button.
- Use the "Edit/Add User" button to add the shift takers that you plan to
have, when finished select the shift type and the date and click the
"Edit/Add Shift" button.
Testsuite and RunControl Sample Applications:
- Added handling of sweep events and error checking to the process()
method.
- Added vaemParity.py to demonstrate AEM parity error generation.
- In the Hippodraw example scripts the plots are now cleared every time the
tests are run.
- Updated test_exc.py that demonstrates handling of command exceptions.
- Added testAppEvtCli.py and testEvtCli.py that demonstrate custom event
clients.
- Added testAppArchiver.py and testArchiver.py that demonstrate user defined
archivers.
- Added testAppAlarm.py example that demonstrates alarms using rules and
rule actions.
- Updated testSuite.py and added testSuite2.py that demonstrate test suites.
- testAppCal now contains commented out code to demonstrate the parsing of
the error contribution.
- Most of the sample applications have been updated to use the new trigger
interface. You can access the documentation for the new trigger interface
here:
http://www-glast.slac.stanford.edu/IntegrationTest/Online/docs/LAT-Trigger.doc
Schema and Configuration:
- Modified configDOM dictionary and renamed it as configurations. Now, each
item in configurations is a tuple containing the configDOM, configName and
configVersion. Provided an accessor method getConfigurations in GLAT to access
this dictionary from user scripts.
- Introduced <actions> tag to the configuration. The user can provide a list
of action identifiers under this tab that can be used to associate them with
user methods. See simpleAlarmSchema.xml and simpleAlarmConfig.xml for an
example.
- Added getRule accessor method to gAttr.
- Added support for passing the attribute object to the rule evaluation.
- Added accessor method getRules in GLAT; this can be used to register a
rule's actions to attributes. See testAppAlarm.py for an example.
Verification:
- Added a batch file createDigestData.bat to create the verification
database (Run by the LATTE installer on user's system). This batch file is
located in the %ONLINE_ROOT%\setup directory.
- Changes to generalize the verification process. digestData now includes
the fullpath of the dictionary entry.
- Added xml to the valid extensions for collecting digestdata.
- scipy.glt module is excluded from verification and module version querying
due to the wgnuplot.exe process it launches.
(Retrieved by running versions.bat while in %ONLINE_ROOT% directory)
The modules ending with _FW denote COMM card firmware and the modules ending
with _HW denote COMM card hardware revisions.
Module |
Version |
Comm Card |
LCB |
DEM/gaem |
1.0.3.1 |
1.0.3.2 |
DEM/gtem |
1.0.3.0 |
1.0.3.6 |
GAEM_FW |
3.1 |
N/A |
GAEM_HW |
1.1 |
N/A |
GGLT |
1.4.9.0 |
1.4.9.0 |
GGLT_FW |
AEM: 3.1
TEM: 2.2 |
N/A |
GGLT_HW |
1.1 |
N/A |
GNAT |
1.0.21.0 |
1.0.21.0 |
GTEM_FW |
2.2 |
N/A |
GTEM_HW |
1.1 |
N/A |
LDF |
4.0.1 |
4.0.1 |
PyQt |
3.11 |
3.11 |
Python |
0x20303f0 |
0x20303f0 |
Qt |
3.3.1 |
3.3.1 |
XBRD |
0.0.3.0 |
0.0.3.0 |
XBRD_FW |
1.2 |
1.2 |
XBRD_HW |
1.1 |
1.1 |
cfitsio |
2.470 |
2.470 |
cmdCli |
1.55 |
1.55 |
cmdSvr |
1.16 |
1.16 |
evtCli |
1.76 |
1.76 |
evtSvr |
1.8 |
1.8 |
gAttr |
1.25 |
1.25 |
gConstraint |
1.7 |
1.7 |
gEGU |
1.7 |
1.7 |
gGroup |
1.3 |
1.3 |
gLAT |
1.69 |
1.69 |
gNode |
1.36 |
1.36 |
gRule |
1.7 |
1.7 |
gSchemaConfig |
1.47 |
1.47 |
gutil |
1.24 |
1.24 |
logging |
0.4.8.1 |
0.4.8.1 |
sihippo |
1.6.0 |
1.6.0 |
versions |
1.34 |
1.34 |
xml |
0.8.3 |
0.8.3 |
Component |
Version |
|
TEM |
|
GCRC |
|
GTRC |
|
AEM |
|
GARC |
|
GAFE |
|
Please contact Selim Tuvi, Ric Claus or Jim
Panetta if you have problems or any questions (Contacts
Page)
Back