Release Notes (04/22/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-02-00

This release contains hardware interface driver release 'Dublin'. For more information see:

http://www.slac.stanford.edu/exp/glast/flight/sw/user_guide/current_release.html
 

RunControl:

Added operator drop down list. The operator is now selected from an existing list. The list can be entered in runControl.cfg file under the section [users] in the form userName=userId.

Added status display. The right hand panel of the Run Control GUI now displays statistics in real-time. Most of the values displayed are test report fields.

Run control test applications now work in standalone mode as well.

The comments contained in the FITS files has the correct EBF version number now.

Fixed test applications where the semaphores were not drained properly.

test_aem.py replaced by test_evt_aem.py in testsuite.

EBF libraries reside in the EBF directory now.

Based on the existence of .pyc or .pyo files if the compiled files are more recent than the .py file import the compiled file when loading the application.

Adjusted EVENT_TIMEOUT value in some test scripts.

Added Cancel button handler to the argument class in test scripts.

Commented out references to DATA_MASKS register which should not be touched during script execution.

Added one time register setup to TEM power up script (executed from the 'Global' tab of the RunControl GUI)

Added support for message logger socket interface.

Added test suite functionality. See testSuite.py in applications directory for an example.
 

Message Logger:

The message logger can now receive log messages from Run Control in real time through a socket interface.

Added pause mode and Back and forth connectivity between file and logger. CRITICAL and FATAL messages use highlight until the user acknowledges by selection.
 

Functional blocks and registers:

Added the following registers to GLAT:

STATS_DISCARDED_EVENT_SENDS
STATS_LENGTH_MISMATCH_COUNT
STATS_EVENTS_NOT_SENT

Added documentation for GLAT statistics registers.

The new AEM G2 related GLT mask registers are now available in local mode as well

Support for 32-bit writeFIFO in GNAT

Added broadcast GCCC and GTCC to the envMonSchema.xml to support the one time setup registers.

Added EXT_CLK_OUT_ENABLE register to GGLT (needs new XBRD firmware). See http://www.slac.stanford.edu/exp/glast/flight/sw/user_guide/current_release.html for more information.

Deprecated AEM_COUNTER and AEM_COUNTER_MASK. Use COUNTER and COUNTER_MASK instead since these registers can also be used under the TEM environment.
 

Event Client/Server:

aem.PHA now contains a list of evAEM_PHA objects. So it is now possible to access the following PHA fields:

more      : bit 14
range     : bit 13
ADC       : bits 1 through 12
parityErr : bit 0

Implemented evCellHeader bitfield. It can be accessed as follows:

evtCli.evt.cont_cellHeader.respond
                          .destination
                          .protocol
                          .source

Changed client socket receive buffer to one mega bytes.

Using non-blocking socket I/O for the server. This means that if the receiver is not fast enough to consume the incoming events, then certain events may be discarded and counted in the GLAT.STATS_DISCARDED_EVENT_SENDS counter.

Increased server send buffer size to 16K.

Fixed a problem with the event client where in certain cases it was reading more event data than it should.

Added sanity checks to the event handler on the server side. Using the header length rather than nBytes to calculate the event length.

Changed TKRstrip and TKRtot objects to include CC and RC for determining the layer.

Added event mode:

In some cases it is desired to have the event server not send the event data over the socket.
User scripts can call the setEventMode() method of the event client to change this behavior:

ec.setEventMode(EvtCli.DONOT_SEND_EVENTS)

to reset it back to the normal behavior use:

ec.setEventMode(EvtCli.SEND_EVENTS)

If an event is not sent due to this mode then the GLAT counter STATS_EVENTS_NOT_SENT gets incremented.

Added timeout and interrupt ability to readEvent():

setTimeout(timeout)

Sets the timeout value that readEvent will wait for until it continues. Default is 1 second.

getTimeout()

Gets the current timeout value in seconds.

setEnableTimeout(flag)

If this is set to 1 (true) then after the timeout readEvent will raise an IOError exception, and it is the user script's responsibility to trap this. If it is 0 (false) then it will loop after each timeout (on a socket select) until new data is received on the socket or abort() is called.

abort()

Breaks out of the current readEvent() loop.
The user can also break out of the loop using Ctrl-C.

 

 

Installation:

The name of the software changed to LatTE which stands for LAT Test Executive.

The installer adds the ONLINE_ROOT environment variable to the system which points to the directory where the software is installed. So if you install it to C:\Online, then ONLINE_ROOT=C:\Online. This environment variable is inserted into the PYTHON_PATH environment variable as %ONLINE_ROOT%\work\LAT. This makes sure that if ONLINE_ROOT changes,  PYTHON_PATH changes as well. Due to the inconsistent way the environment changes are propagated under Windows, a reboot may be necessary if you install the software in a different location than before.
 

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. Note that TEM, AEM, GARC and GAFE hardware versions have also been added to the list. Also the XBRD has a new firmware. Please contact Mike Huffer to obtain it if you need it.

Module Version
EBF 1.0.0
GAEM 2.0.1.0
GAEM_FW 3.1
GAEM_HW 1.1
GGLT 1.3.3.0
GGLT_FW AEM: 3.1, TEM: 2.2
GGLT_HW 1.1
GNAT 1.0.19.0
GTEM libgtem.o1.3.1.0
libgtem_nrl.o 1.3.1.1
libgtem_tkrV5.o 1.3.1.2
GTEM_FW 2.2
GTEM_HW 1.1
XBRD 0.0.3.0
XBRD_FW 1.2
XBRD_HW 1.1
cmdCli 1.30
cmdSvr 1.46
evtCli 1.50
evtSvr 1.51
gAttr 1.13
gConstraint 1.5
gEGU 1.3
gGroup 1.3
gLAT 1.24
gNode 1.19
gRule 1.3
gSchemaConfig 1.21
gutil 1.13
versions 1.17
Component Version
TEM 1
AEM 1
GARC 1
GAFE 3


 

Previous Release Notes (cumulative):

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 ('Tokyo' release) 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/tokyo_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_MASK

See GNAT documentation for more details.

Added the following methods to access the GNAT node of GTEM, GAEM and GGLT:

getGNATaddress
createGNATinstance

Added the following registers to GAEM:

POWER_MANAGMENT
ADDRESS
TIMEOUT

Added 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_HVSAA

Fixed the name of the GARC register HLD_EN_1

Added the following registers to GGLT:

BUSY_DISABLE
EXT_CAL_STROBE
EXT_TACK
AEM_COUNTER_MASK

Removed the THROTTLE_DISABLE bit from the MASK register (replaced by the above BUSY_DISABLE register) and added the following:

ACD_VETO_00
    :
    :
ACD_VETO_17
ACD_CNO

Added 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 = 0

In 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.arch

The 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 conversion

In 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 conversion

TEM 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 command 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.2
GTEM_FW 2.2
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

 

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:

  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