EM1 Update P00-10-00 12/09/02
Release Notes
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:
- Install this distribution according to the instructions below.
- Open up a "Command Prompt" and change the directory to "{Online}\work\LAT"
- Enter "del *.pyc"
- Enter "ren evtCli.py evtCli_newTEM.py"
- Enter "ren evtCli_oldTEM.py evtCli.py"
- Make sure the VME crate is up and running and the startup script have been
executed
- Enter "python versions.py"
- Verify that the version numbers match the "evtCli_oldTEM.py"
entry on the
table below.
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:
- Make sure "ActiveState Python 2.2.1 or later is installed. If not download
it from:
http://www.activestate.com/Products/Download/Download.plex?id=ActivePython
- Install pyXML: Open up a "Command Prompt" and enter "pyppm". At the "PPM>"
prompt enter "install pyXML". You need to have an active internet connection
for this to work. If you are in an internal network, use another machine that
is connected to the internet to download pyXML from
http://download.sourceforge.net/pyxml/PyXML-0.8.1.win32-py2.2.exe, copy it
to a floppy and then install it on the teststand machine.
- First of all make a copy of your c:\VxWorks directory (right click on
VxWorks, choose "Copy" then in the same window choose "Paste"). This will
create a directory called "Copy of VxWorks". Rename this to VxWorks_Pxx-xx-xx
(where xx-xx-xx is your current version)
- Run pyLAT_P00-10-00.exe to start the installer and follow the
instructions.
- On VxWorks enter "< startupaemevt" for AEM or "< startuptemevt" for CAL
- Open up a "Command Prompt" and change the directory to "{Online}\testsuite".
- Type "python -i test_aem.py" for AEM or "python -i test_cal.py"
for CAL or "python -i test_tkr.py" for TKR and press
enter. At the ">>>" prompt type "test()" and press enter You should see the
event data being displayed.
- We will provide tutorials and how-to documents on using the python
interface in the near future. In the mean time the test_aem, test_cal and
test_tkr
examples and the
LAT-SS-00586-01 Subsystem Interface Control Document should help you in
developing your scripts.
- In order to run the "versions" utility, at the command prompt
change the directory to "{Online}\work\LAT" and enter
"python versions.py". This should output version infor for all modules (VxWorks
and python) loaded.
Note: In order to run the system without any hardware attached use the
following instructions:
- Install the package according to the above instructions.
- Open up a 'Command Prompt', change the directory to {Online}\work\LAT
- Enter 'cmdSvr'
- Open up another 'Command Prompt', change the directory to {Online}\work\LAT
- Enter 'evtSvr'
- Open up a third 'Command Prompt', change the directory to\{Online}\work\LAT
- Enter 'set COMMAND_SERVER_HOST=localhost'
- Enter 'set EVENT_SERVER_HOST=localhost
- Run python -i 'test_xxx.py' (where xxx is one of aem, cal, tkr depending
on what subsystem you are)
- Enter 'test()'
- You should see the dummy event being displayed.
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:
-
Installation is now done through a GUI
installer. The installer lets the user to install the distribution to a
directory of his/her choice. The installer also checks where Python is installed
and copy required files there. Also PYTHONPATH is now set through the
installer. If the installation directory is already listed as part of the
PYTHONPATH then the installer doesn't modify the environment variable
otherwise it prepends the installation directory to the beginning.
-
The installation directory structure has
changed as follows:
DLLs: Third party support files such as Qt runtime DLL and
PyQt libraries.
repos: Repository of schema XML files and constraint, rule
and EGU classes.
RunControl: Run control application.
testsuite: All examples and test scripts can be found here.
work/LAT: Core pyLAT code.
-
Run control application has been added. See
rcRelease.txt in the RunControl directory for more details.
-
Schema and configuration files are now
merged into one file.. The usage is as follows:
For reading a schema:
lat =
readSchema('oneTemSchema.xml')
For applying the configuration portion of a
schema:
applyConfig(lat)
Both functions also take a second
optional parameter for the command client. For readSchema if the command
client is specified the configuration portion is automatically applied. For
applyConfig if the command client is specified then that command client is
used to apply the configuration. If the "lat" object doesn't have a
command client assigned to it an error is given.
It is now possible to assign a constraint, rule and/or EGU class to a given
register in the configuration section. See the available examples in the
repos directory for more details.
Configuration
update has not been implemented yet so for now please edit the XML files for
configurations manually.
-
setCmd can now be used with the "GLAT"
object. If the second parameter is not specified or has a value of 1 then
all children are assigned the command client recursively. So there is no
need to separately set the GPDU, GTEM and GAEM objects. GGLT object still
needs to be set separately since it is not part of the LAT hierarchy.
-
The following GLAT registers have been
implemented:
-
parity_latp_cell_header
-
parity_latp_cell_body
-
parity_tem_cmd_str
-
parity_tem_access_desc
-
parity_tem_cmd_payload
-
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_failed_events
-
stats_failed_event_sends
-
stats_valid_events
-
New GPDU node has been added under GLAT
with the following registers and dataless commands:
-
dac_tem_voltage
-
dac_tkr_analog_2_5
-
dac_tkr_digital_2_5
-
dac_tkr_cal_analog
-
dac_cal_digital_3_3
-
path_cmd_resp_reset
-
path_trigger
-
path_event
-
cmd_tem_hw_reset
-
New GTWR node has been added under
GPDU with the following registers:
-
adc_ps_temp_0
-
adc_ps_temp_1
-
adc_tem_temp_0
-
adc_tem_temp_1
-
adc_tem_voltage_0
-
adc_tem_voltage_1
-
A new GTEM dataless command "cmd_look_at_me"
has been added.
-
Numerous GTIC registers have been added to
support environmental measurements. See gLAT.py GTIC object definition for
more details.
-
Inconsistencies in GARC register values
have been fixed. There also a few register name changes.
-
Read-modify-write support has been added to
the bit fields for GGLT options and configuration registers.
-
A short-hand syntax for referring to nodes
have been implemented. The following syntax is now valid:
cfe5 =
lat.TEM[0].CCC[2].CRC[3].CFE[5] is the same as:
cfe5 = lat.downTEM(0).downCCC(2).downCRC(3).downCFE(5)
Another benefit of the short-hand syntax is that it is now easier to
determine which nodes have been populated. So for example to see which TEMs
are populated the user can write:
lat.TEM.keys()
which will return a tuple of TEM ids
that are populated.
-
The index to the "regs" dictionary of each
node can now be specified in lower case or upper case:
tem.regs['configuration']
and tem.regs['CONFIGURATION']
will both work now.
-
Asynchronous event data taking has been
enabled, so you can have one script triggering events while the other
script is waiting on a readEvent(). Therefore GGLT object no longer has a
setEvt() method.
-
A third party logger class have been
included in this release. See the Run Control application for an example
usage of it.
-
Transition board driver (XBRD) version is
also being reported in versions.py
-
gglt_config.vx script under
c:\VxWorks is modified to enable the
transition board. If you are not using a transition board. Comment out
this line.
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.
Back