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:

  1. Install this distribution according to the instructions below.
  2. Open up a "Command Prompt" and change the directory to "{Online}\work\LAT"
  3. Enter "del *.pyc"
  4. Enter "ren evtCli.py evtCli_newTEM.py"
  5. Enter "ren evtCli_oldTEM.py evtCli.py"
  6. Make sure the VME crate is up and running and the startup script have been executed
  7. Enter "python versions.py"
  8. 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:
 

  1. 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
     
  2. 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.
     
  3. 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)
     
  4. Run pyLAT_P00-10-00.exe to start the installer and follow the instructions.
     
  5. On VxWorks enter "< startupaemevt" for AEM or "< startuptemevt" for CAL
     
  6. Open up a "Command Prompt" and change the directory to "{Online}\testsuite".
     
  7. 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.
     
  8. 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.
     
  9. 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:

  1. Install the package according to the above instructions.
  2. Open up a 'Command Prompt', change the directory to {Online}\work\LAT
  3. Enter 'cmdSvr'
  4. Open up another 'Command Prompt', change the directory to {Online}\work\LAT
  5. Enter 'evtSvr'
  6. Open up a third 'Command Prompt', change the directory to\{Online}\work\LAT
  7. Enter 'set COMMAND_SERVER_HOST=localhost'
  8. Enter 'set EVENT_SERVER_HOST=localhost
  9. Run python -i 'test_xxx.py' (where xxx is one of aem, cal, tkr depending on what subsystem you are)
  10. Enter 'test()'
  11. 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:

  1. 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.
  2. 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.
  3. Run control application has been added. See rcRelease.txt in the RunControl directory for more details.
  4. 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.
     
  5. 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.
  6. The following GLAT registers have been implemented:
    1. parity_latp_cell_header
    2. parity_latp_cell_body
    3. parity_tem_cmd_str
    4. parity_tem_access_desc
    5. parity_tem_cmd_payload
    6. stats_rx_ctrl_cells
    7. stats_rx_data_cells
    8. stats_rx_header_parity
    9. stats_rx_cell_parity
    10. stats_tx_ctrl_cells
    11. stats_tx_data_cells
    12. stats_tx_busy_assert
    13. stats_failed_events
    14. stats_failed_event_sends
    15. stats_valid_events
  7. New GPDU node has been added under GLAT with the following registers and dataless commands:
    1. dac_tem_voltage
    2. dac_tkr_analog_2_5
    3. dac_tkr_digital_2_5
    4. dac_tkr_cal_analog
    5. dac_cal_digital_3_3
    6. path_cmd_resp_reset
    7. path_trigger
    8. path_event
    9. cmd_tem_hw_reset
  8. New GTWR node  has been added under GPDU with the following registers:
    1. adc_ps_temp_0
    2. adc_ps_temp_1
    3. adc_tem_temp_0
    4. adc_tem_temp_1
    5. adc_tem_voltage_0
    6. adc_tem_voltage_1
  9. A new GTEM dataless command "cmd_look_at_me" has been added.
  10. Numerous GTIC registers have been added to support environmental measurements. See gLAT.py GTIC object definition for more details.
  11. Inconsistencies in GARC register values have been fixed. There also a few register name changes.
  12. Read-modify-write support has been added to the bit fields for GGLT options and configuration registers.
  13. 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.
  14. 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.
  15. 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.
  16. A third party logger class have been included in this release. See the Run Control application for an example usage of it.
  17. Transition board driver (XBRD) version is also being reported in versions.py
  18. 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