From: M.Comin/B.Gilli
                                                           Date: 2006.10.10


             VLT-SW-2006 - RELEASE NOTES FOR CCS
             =======================================



Beside standard maintenance, several important features have been added to CCS:

- SUPPORT FOR MULTITHREADED APPLICATIONS.
-----------------------------------------

A second library libCCS_P is now produced to fully support multithreaded applications.
It provides a thread safe version of the standard CCS library, and a couple of new functions
to start and register threads. A thread can be started with its own message queue if it
requires communication with other applications, or without special queue. In that latter case, 
access to CCS resources (DB in particular) will occur through the main thread message queue, using 
protection mechanisms to avoid confusion among the different threads.

- SUPPORT FOR UNIX REAL-TIME PRIORITIES.
----------------------------------------

The ccsScheduler accepts a new run string option: -R. When provided, the ccsScheduler interprets
the column "priority" in the CcsEnvTable to start processes with the corresponding real time
priorities as defined under Unix. To be noted that the real time priorities having different
ranges on the different platforms (HP/Solaris/Linux), the ccsScheduler automatically remaps the
values defined in the CcsEnvTable into the locally supported range.  

- SUPPORT FOR SHUTDOWN ORDER IN CcsEnvTable.
--------------------------------------------

On the Linux platform, in order to correctly release resources when shutting down an environment,
it appeared necessary to control the sequencing of application termination.
This feature originally existing in Rtap, configured with the shutdown column of the RtapEnvTable
is now fully supported, using the corresponding column of the CcsEnvTable: the first programs to be
terminated are those  with the highest number. It is not possible to define phasis similar to those
of the startup sequence.
A CcsEnvTable with default priorities is provided in the envs module. 
It is used for environemnt creation if the user doesn't override it with its own CcsEnvTable. 

- LINUX SUPPORT FOR SHARED LIBRARIES PATH.
------------------------------------------

In connection with the Linux safety mechanisms making difficult the
usage of multiple INTROOTs with shared libraries and usage of the
s-bit, we split the ccsScheduler in two parts.
One, still called ccsScheduler, but installed without s-bit,
retrieves the user shared library path, and fires the ccsScheduler1,
installed with s-bit, and doing the job the old ccsScheduler used to
do. This implementation should be transparent to the user. It's only
during installation that one has to set the s-bit for the correct
process.  




Hereafter follows a list of CCS modules with a brief history of the
new versions since previous release. For more detail, please refer to the
module Changelog files, and software man pages.


ccs:
----
For LINUX platforms, the byte swapping macros which used to be provided in the ccs include files 
have been moved to a more generic include file: vltPortGeneral.
Although transparent for CCS applications, that change allows to use them also in NO_CCS applications.

In general, the ccs code has been cleaned up to use re-entrant versions for system functions, in
view of the multithreading support.

The ccsScheduler has been modified to support usage of multiple INTROOTs in conjunction with
shared libraries under Linux. The modification affects all platforms, but should be relatively
transparent. The ccsScheduler has been renamed ccsScheduler1, while a wrapper, called ccsScheduler, 
takes care of propagating the LD_LIBRARY _PATH which was ignored under Linux due to usage of the s-bit.



Version history:

version: 2.148 : call setsid in ccsScheduler before execvp needed by linux
version: 2.149 : added special handling of removing IPC resources on Linux
version: 2.150 : fixed problem with wrong startup sequence of processes in certain phase
version: 2.151 : block signals when logData is called
version: 2.152 : fixed bug in ccsSetMyName and ccsMsgRcv
version: 2.153 : SPR20050121: modified rtE_NOQUEUE error messages
version: 2.154 : Added quotes to extern C in ccsMonitor.h
version: 2.155 : added support for shutdown order and fixed problem with resources
version: 2.156 : added support for multithreading
version: 2.157 : fixed bug in ccsMonitorApi regarding multithreading
version: 2.158 : pthread modifications for alrm
version: 2.159 : fixed bugs regarding multithreading
version: 2.160 : removed libcurses for ccsPerfMon
version: 2.161 : added man-page for ccsPthread
version: 2.162 : modified updateLib makefile target to support multithreading
version: 2.163 : Added DB attribute for time jump alarm on LCU
version: 2.164 : modified buffer handling for multithreading




qsemu:
------
To improve security, the ip address of the environment requesting
connection to qsemu is checked against the ip address of the node on
which the requesting environment is supposed to run on, as configured
in the local CcsEnvList file. In case of mismatch, the request is
rejected.
 
To support systems with multiple LAN interfaces corresponding to
different hosts, the format of the CcsEnvList has been slightly
modified. The new qsemu still accepts the old format, but in that case
difficulties with multiple LAN interfaces can be expected since the
corresponding configurations cannot be correctly described. 
The new format of the CcsEnvlist is fully supported by vccmake.
This format shall not be used for the old full CCS installations
based on Rtap, and using the RtapEnvList file.

Qsemu can be instructed via a runstring option to ignore propagation
of obituary messages in order to avoid disturbing real-time
applications with unexpected messages.

Version history:

version: 3.52 : verify IP address on remote connection request
version: 3.53 : added flag to suppress receiving obituaries
version: 3.54 : fixed error handling after gethostbyname in qsemuEnvThread
version: 3.55 : fixed problem with logging of IP adresses
version: 3.56 : bind sockets to solve problems with multihomed hosts
version: 3.57 : fixed casting error





err:
----
- Add support for multithreading applications

Version history:

version: 2.34 : SPR 20010426
version: 2.35 : added support for multithreading
version: 2.36 : modified updateLib makefile target to support multithreading


Logging System:
---------------
- Add archiving of normal logs.
- Add support for multithreading applications
- Improved version of logCleanFITS.
- Fixed problem with filtering in logMonitor.

Version history:

version: 4.14.1.1 : Removed backward incompatibility in FITS par. record for VLTI
version: 4.15 : Merged with v. 4.14.1.1 + upgrade test procedure and reference files
version: 4.15.1.1 : replace system functions by thread safe ones
version: 4.15.1.2 : removed useless global parameter
version: 4.16 : Fixed problem with test. ref. files
version: 4.17 : Add feditFormatCompile in test makefiles
version: 4.18 : SPR 20030522, 20040317
version: 4.19 : Reformatting of test ref. files
version: 4.20 : Add archiving of normal logs + fix test ref. file
version: 4.21 : added support for multithreading
version: 4.22 : SPR 20030333 20050218 + upgrade test ref. files
version: 4.23 : modified updateLib makefile target to support multithreading
version: 4.24 : Fixed problem in ref. file generated by logTestPurge.sh
version: 4.25 : Fixed log filteriong problem in function Ispect log file

cmd:
----

The command checking mechanism automatically handles byte swapping for ASCII and binary formatted
commands and replies when checking is performed on a Linux WS.
 
Version history:

version: 2.30 : added support for multithreading
version: 2.31 : modified updateLib makefile target to support multithreading

msg:
----
Version history:

version: 2.39 : define LD_LIBRARY_PATH in msgServer1 for Linux
version: 2.40 : added support for multithreading
version: 2.41 : modified updateLib makefile target to support multithreading


db:
---

Version history:

version: 3.124 : SPR20020338 + removal compile warning
version: 3.125 : Fixed bug in dbLiteReplace when formatting dates
version: 3.126 : Correct conversion of dbABS_TIME and dbTIME, updated test
version: 3.127 : SPR:20050207, initial CE run just after db loading
version: 3.128 : added support for multithreading
version: 3.129 : modified updateLib makefile target to support multithreading
version: 3.130 : SPR 20050308 dbBackup and usage of alias specifiers

evt:
----

- added support for event on quality change

Version history:

version: 2.41 : avoid losing events because of internal delays in attachment procedure
version: 2.42 : Added tat test for SPR 20050062 quick write after attach
version: 2.43 : Fixed problem with message buffer
version: 2.44 : added support for multithreading
version: 2.45 : changed filtering if multithreading enabled
version: 2.46 : replaced strtok by strtok_r
version: 2.47 : removed warnings on HP
version: 2.48 : modified updateLib makefile target to support multithreading
version: 2.49 : fixed filtering problem for multithreading
version: 2.50 : added tests for multithreading
version: 2.51 : fixed error in TestList
version: 2.52 : added swapping of data of internal commands
version: 2.53 : test of byte swapping


scan:
-----

Some so called "scan problems" could be traced down to severe problems of the tim board.

Version history:

version: 2.59 : NOT USABLE YET:modified updateLib makefile target to support multithreading
version: 2.60 : added support for multithreading


dbl:
----

Version history:

version: 1.30 : SPR VLTSW20040377 - Changed error message to a warning

tims:
-----

Version history:

version: 2.32 : added support for multithreading
version: 2.33 : fixed bug introduced by multithreading
version: 2.34 : modified updateLib makefile target to support multithreading
version: 2.35 : fixed filtering problem for multithreading


alrm:
-----

Version history:

version: 1.107 : send only alarms for attributes defined in connection request
version: 1.108 : changed poll intervalls for realtime support
version: 1.109 : fixed handling of conn and match bit masks
version: 1.110 : replaced direct usage of snack by usage of the audio module which allows sound on Linux
version: 1.111 : modified to support multithreading
version: 1.112 : Extended updateLib makefile target to build libCCS_P
version: 1.113 : typo correction in updateLib makefile target
version: 1.114 : GUI modified according to VLT standard SPR 20050175
version: 1.115 : Fixed problem during installation

fnd 
---

Version history:

version: 1.44 : Fixed minor problems with signatures, size_t and const cast appearing with newer CPP compilers
version: 1.45 : SPR20050035: missing include for size_t in fndNAME_MAP.h
version: 1.46 : Improved fndASSOCIATION class


eccs 
----

Version history:

version: 1.131 : Changed way event IDs are allocated to reuse them SPR00980435.
version: 1.132 : Updated documentation with new ID_MAP implementation
version: 1.133 : Added explicit sdt:: scope identifier to queue object. Was conflicting qith some class used by FIERA
version: 1.134 : Modified evtEVENT::CommandId to throw and exception is called for detached event



evh 
---

Version history:

version: 1.133 : SPR 20040247
version: 1.134 : SPR 20050138 and catch exceptions in evhHANDLER
version: 1.135 : DB Event added now also in case of bad quality



Plot:
----
- Man page update
- Upgrade of automatic test
- Bug fixing when using "big" history tables.

Version history:

version: 2.38 : Version under testing DO NOT USE cmmCheckForArchive plot
version: 2.39 : Bug and SPR fixing + test upgrade
version: 2.40 : Man-page update


his:
----

Version history:

version: 1.33 : fixed BUG in statistics

samp
-----

- Add possibility to specify in the command line some options for
 sampDb. The following options are recognized : "-v", "-n", "-d".
 "-v" = verbose mode
 "-d" = debug mode
 "-n" = no plot mode. This options allows the user to simply record
        the data inso a file.
 These options are processed whe sampStart is called and removed
 from the command line parameters. In this way we do not introduce
 any backwards incompatibility due to a misplace of the parameters.

- Options -v and -d can also be activated by sending the command
 VERBOSE and DEBUG to the samp process. These options generate
 information logs instead of printf, since the samp processes are
 normally run in background.

- sampCtrl.pan: Add check buttons to invoke sampDb with "-d"
 or "v" options. If sampDb is already active the buttons send the
 corresponding command to switch DEBUG/VERBSE ON or OFF

- Improved error handling by replacing printf with proper errAdd
 statements.

- Add full automatic tat test. 

Version history:

version: 2.40 : Test on LINUX + improved error handling
version: 2.41 : Add tat test and additional checks. Still to be tested under LINUX and SUN ... do not use it
version: 2.42 : Module tested on Solaris and Linux
version: 2.43 : Fixed test reference file formatting problem

Ccs
---

Version history:

version: 1.39 : VLTSW20040159 - testing to be checked
version: 1.40 : fixed type in test Makefile, html files removed
version: 1.41 : fixed bug in CcsDbReadSymbolic - see SPR 20040303

C/ccseiDb
-------
The Java version (Ccseidb) of the database browser has been frozen. The Tcl version (ccseidb) 
has been improved with missing features and also offers better navigation in the DB hierarchy.

New implementation of ccseiDb. Beside the features already present
in the previous version , the following new functionalities have
been added :

- Graphical view of the DB structure. The navigation in the database
 structure provides the following possibilities :
 + Narrow the view to a DB sub-tree
 + Search for a specific point.

- Navigation in the database provide automatic display of point
 information, such as alias, PLIN, Base Class, point class, class ID.

- When the user displays the attributes of a point, for each one the
 following information are provided : name, attribute tyep, data
 type, quality flag and current value.

- Each attribute can be displayed in a dedicated dialog.
 The following attribute info are also displayed :
 + Number of records
 + Number of fields
 + Direct address
 + Data type.

 The user has the possibility to :
 + Define a range of elements in case of TABLES or VECTORS
 + See the associated CE function
 + Modify the current value and store it in the DB.

Version history:

version: 3.1 : New implementation of ccseiDb SPR 20020306
version: 3.2 : Add widgets for CE calculation + bug fix.
version: 3.3 : GUI improvments and bug fixing
version: 3.4 : Fixed bug for apply button for SCALAR strings
version: 3.5 : Fixed bug displaying tables
version: 3.6 : Bug Fixing
version: 3.7 : Add handling of view dialog for VECTORS and TABLES with 0 recs or fields
version: 3.8 : Fixed binding problems in ccseiDb
version: 3.9 : Optimized writing of VECTOR and TABLE
version: 3.10 : Bug fixing in DB monitor and in ccseiDbViewApply
version: 3.11 : Fixing of problems reported from test in paranal

uif
---

- Menu radio and check button check the existance of the variable
 associated to the widget. If the variable contains a namespace, the
 name space is created if not known.

Version history:

version: 3.47 : Add new widget uifOutputIcon
version: 3.48 : Fixed backward incomp. with icbpan
version: 3.49 : SPR 20040410

panel / uif
------------

- panTerm window is now re-sizable

- For all widgets updated with DB event mechanism (in Ws env.), the
panel automatically attaches an event on data quality to keep track of
quality changes.

- On LINUX the name of the panel editor process is now set to 'panel'
even if the executable is called panelEditor.

- Add new widget uifOutputIcon : it allows the user to display
 different icons depending on the value of the variable.
 Similar to uifOutputString but with icons.

- Some resources of seqWish (XseqWish) have been merged with common
 panel X resources.


Version history:

version: 5.30 : Add widget uifOutputIcon + bug fixing
version: 5.31 : Fixed proc. name length under LINUX
version: 5.32 : SPR20040191 + test upgrade
version: 5.33 : Bug fixing
version: 5.34 : XseqWish merged into Xpanel.common


___oOo___