BUILD TIMESTAMP: 20090206_0059
    GseV943
    04Feb2009
1) Fixed bug where the new fft routines didn't resolve correctly and therefore didn't
    function.

    GseV942
    01Feb2009
1) Added new plugins Time_Series2Spectrum_dBs_V1, Time_Series2Spectrum_V1,
    and UR8fromSWDPUHKtime.
2) Merged new db files into release.

    GseV941
    11Jun2008
1) Merged new db files into release.

    GseV940
    20Apr2008
1) Merged new db files into release.
2) Fixed startup and control scripts.

    GseV939
    07Feb2008
1) Updated DB files
2) Fixed stat function

    GseV938
    31Jan2008
1) Updated DB files
2) Added Map_Indirect_V1, SWDSP_Cal_phase_V1, and SWHFR_Cal_dBs_V2 plugins

    GseV937
    05Jan2008
1) Updated DB files
2) Logger now uses local time instead of GMT.
3) Logger output formatting has changed for some log events.
4) Updated gsecontrol -stat, nicer output.
5) Fixed bug in FILEPATH item where extra data was being appended to returned
    item data.
6) Fixed bug where TM_Close would fail due to a missing definition in
    errorHandleDB.xml

     GseV935
     21Sept2007
1) Added some DB files.

     GseV934
     20Sept2007
1) Timeout system for clients fixed.
2) General cleanup and more documentation

     GseV933
     6Sept2007
1) All unhandled exceptions (e.g. ArraryOutOfBounds) are not caught at the top
  level of the server and the server dies.  
2) Changes that have been added to the the xml describing reading ASCII files.
   A) The user now sets the "record_delimiter" to any string.
   B) The "field_delimiter" can be set to any valid regex string.
   C) The user can set "record_type" can be "variable_length" or "fixed_length".
   D) Dependent_variable variable changes
      i. There may be null fields and the code will search for valid values.  If 
         no valid value is found within "search_depth" an exception is thrown.
      ii. "return_field_number" allows you to return a value from a column other 
         then the column searched for the dependent variable.
         

     GseV932
     6Jul2007
1) Added "Remote Client" and "Time" to the stat display.
2) General cleanup of gsecontrol -stat app (line up decimals, adjust spaces.)
   
   GseV931
     29Jun2007
1) Resolved issue: The charparser properly handles the case with only 
   one itemname in the fixed_value.
   
   
     GseV930
     28Jun2007
1) Resolved issue: The charparser properly handles strings that contain 
  multiple items separated by the "+" symbol.  
2) The "gsecontrol -stat " command recognizes the new signature of the web apps.
3) The TMlib clients can be shut down separately from the servers.


     GseV929
     26Jun2007
1) A char item now supports the "+" operator.  
2) Log message for white space stream modified to not use the word "null".
     
     GseV928
     20Jun2007
1) Verified that the calculations were being done as doubles in the following 
plugins:
SWDSP_UnFloat_Auto_2Magnitude_V1
SWDSP_UnFloat_Cross_2Magnitude_Normal_V1
SWDSP_UnFloat_Auto_2Normal_V1
SWDSP_UnFloat_Cross_2Normal_V1

2) Wrote the following plugins:
SWDSP_UnFloat_Cross_2radians_V1
SWDSP_Cal_Cross_Imag_V1
SWDSP_Cal_Cross_Real_V1
SWLFR_Cal_phase_V1
SWHFR_Cal_phase_V1


     GseV927
     18Jun2007
1)Changed sqrt(Auto1*Auto1 + Auto2*Auto2) to sqrt (Auto1*Auto2) in the plugins:
    SWDSP_UnFloat_Auto_2Magnitude_V1
    SWDSP_UnFloat_Auto_2Normal_V1
    SWDSP_UnFloat_Cross_2Magnitude_Normal_V1
    SWDSP_UnFloat_Cross_2Normal_V1


     GseV926
     13Jun2007
1) Resolved issue: gsecontrol -stat now displays proper number of digits for
   time readout and flicker is gone.
2) Resolved issue:  When the engine reached the end of a file it now properly 
   throws the error "END_OF_FILE" which has the error code  -80107.
3) Resolved issue:  DAQ stream does not open three times when called anymore.

     GseV925
     12Jun2007
1) Remove Memory Mapped file from WhiteSpaceStream (prevent memory leak) and 
  from FileStream (symmetry with other file bassed streams).
2) If a second call to TM_Select_Stream or TM_Select_Stream_TimeRange is made, 
   the area that stores data from the stream will be locked.  That is the user 
   must make a new call to TM_Find_Event before items that are derived from the 
   stream can be pulled.
3) For Signed_Int_2dBs_v1 plugin the fact that input values -1, 0 
 and +1 are all converted to 0dBS is more explicit in the code.
4) Cache enabled in ASCII_File2I4, ASCII_File2R4, and ASCII_File2R8.  This yields 
  approximately a 5X increase in performance.
5) Resolved issue: gsecontrol -stat now properly displays the upstime of the 
  server.
 
     GseV924
     1Jun2007
1) Resolved issue: SWLFR_Cal_dBs_V1 now fills every element of the output array.
2) Resolved issue: The memory footprint of the Rollover stream does not change as
  new files are opened. 
  
     GseV923
     24May2007
1) Wrote SWDSP_UnFloat_Auto_2Normal_V1 plugin.


     GseV922
     22May2007
1) Wrote SWDSP_UnFloat_Cross_2Magnitude_Normal_V1 plugin.
2) The zip file for TMlib Server is stamped with the version number of the 
  release instead of a timestamp.


     GseV921
     12May2007
1) When using TM_Select_Stream_TimeRange, if the index of the first record to 
pull and the index of the last record are the same (BOAindex = EOAindex) then 
throw an error.  This corresponds to the case of the user selecting a time range 
that lies within a gap in the data.  This system handles gaps at arbitrary 
locations. 

2)  Wrote SWHFR_Cal_dBs_V1, SWLFR_Cal_dBs_V1, SWDSP_UnFloat_Auto_2Magnitude_V1 
and SWDSP_UnFloat_Cross_2Normal_V1 plugins.

3) Resolved issue: Domain_Spacecraft item now stores the resolved spacecraft name.
This also means that when a ASCII file name is requested, it will be 
found on the correct branch of the SearchList tree.

4) Resolved issue: TMLib help no longer throws an out of memory error with repeated 
searching of the XML tree.


     GseV920
     2May2007
1) Resolved issue: TC_Handler sends files properly to the logger.

     GseV919
     30Apr2007
1) There exist three possible config files that contain paths used by TMlib, and 
   they will be querried in the order written below.  A requested parameter will 
   be taken from the first file in which it is found.
     a) $GSE_DIR/../TMlib_Paths_Local.xml
     b) $GSE_DIR/config/MissionConfigFiles/TMlib_Paths_Local.xml
     c)$ GSE_DIR/config/MissionConfigFiles/TMlib_Paths.xml
2) An XML node named "TMlib_MOC_default" has been created and this node is in one of 
   the files above.  The attribute MOC_selection in this node gives the name 
   of the MOC in the AvailableMoc.xml file that will be used by default.
3) The node named "default" in the AvailableMoc.xml has been deleted.
4) Resolved issue: Number_of_Packets_in_File item now properly gives the total 
  number of packets in a file for a rollover stream.
     
     GseV918
     26Apr2007
1) In item DB names had the substring UR8_MSEC_IN_DAY changed to Msec_in_Day.
2) In item DB names had the substring UR8_DAYS changed to Days.
3) Time_BOA_Record and Time_EOA_Record added to XML item DB.
4) Wrote TMlib_Server_Startup.csh for users of the c shell.
5) Resolved issue: The logger now reports the path to a newly opened file in 
  the same case as the path appears in the file system.  
7) Separated Paths_Local.xml from Mission_definitions.xml.  Possible locations:
~/../Paths_Local.xml
~/config/MissionConfigFiles/Paths_Local.xml
8) Resolved issue:  tmcontrol -on generated an error because a variable related 
  to the logger functions was not set.


     GseV917
     23Apr2007
1) Added uptime to gsecontrol stat
2) Added total number of clients to gsecontrol stat
3) Day rollover stream will handle gaps at the end of files.
4) BOS (Beginning Of Stream) time and EOS (End Of Stream) time calculated 
   and put in the item database.
   
   
     GseV916
     13Apr2007
1) Resolved issue:  Logger properly closes clients.
 
     GseV915
     13Apr2007
1) Resolved issue:  HGA files do day rollover with large parts of 
 original day missing.

     GseV914
     11Apr2007
1) Resolved issue:  DAQ properly properly logs when it has opened.
2) Resolved issue: HGA files interploate properly.

     GseV913
     10Apr2007
1) Resolved issue:  Chooser probes DAQ and immediately closes the connection.
2) tmcontrol -stat displays server IP and logging level.
3) Resolved issue: HGA files can be opened properly if there are multiple versions
  of the file.
4) Resolved issue: When file rollover opens a file it does not add .5 sec when 
   searching for the file name.
   

     GseV912
     06Apr2007
1) Resolved issue: HGA day rollover fixed.

    GseV911
     05Apr2007
1) Resolved issue: HGA files open only once when HGA item is called.


     GseV910
     04Apr2007
1) Logger outputs Requested StreamName.
2) HGA date format fixed.


     GseV909
     04Apr2007
1) Logger outputs Resolved StreamName.
2) Increased error messages for opening HGA files.



     GseV908
     30Mar2007
1) Small corrections to logger and gsecontrol -stat
2) Improved error messages when requesting ancillary items.
3) Resolved issue with code that closes a session, so that it properly handles 
  case where client disconnects by breaking the TCP link.

     GseV907
     30Mar2007
1) gsecontrol -stat shows logging level
2) gsecontrol -log gives the current logging level for TMlib Sessions
3) Resolved issues with logging close from a time out.  
4) EOR and EOF log separately in Rollover Stream.
5) When a new file is opened in rollover stream, the file is only opened once.
6) If an ancillary file cannot be found for a given UR8, the GSEException system
   sends a message to the client.

     GseV906
     22Mar2007
1) Lengthened shut off time for TC clients to 30 hours.
2) Port scans are no longer logged.
3) User requests for items are logged at Item_High level.
4) Opening and closing of files are logged Stream_Low level.
5) When the logger level for TMlib Sessions is changed this is noted in the log.
6) Several changes to logging message formats.
7) Server now returns negative error code when client has timed out.
8) Resolved issue with TC logger being too verbose.  

     GseV905
     21Mar2007
1) The logging level "Close_High" has been renamed "Fatal".
2) "Close_Low" logging level has been merged into "Domain_High" level.
3) One database file was updated.
4) The code that allowed BOI input to be either 0. or -1 was removed 
  when a section of the code was reverted to an earlier version.  This feature
  has been reinserted. 

     GseV904
     16Mar2007
1) BOI input can be either 0. or -1.
2) Resolved TM_Close issue.  Server now sends a proper 0 message
  when a close is successful.
3) The following log levels created:
Close_High
Close_Low
   
Domain_High
Domain_Low
   
Stream_High
Stream_low
   
Event_High
Event_Low
   
Item_High
Item_Low

All TMlib session logging put under one of these levels.

4) Added several new logger calls at Stream_High and Domain_High

5)  gsecontrol -log more and gsecontrol -log less written, to raise or 
lower the logging level for the next TMlib Client.

6) Problem with calling TM_Select_Stream_TimeRange with args 0 (BOI) and 0 (EOD) 
is resolved.



     GseV903
23Feb2007
1) Modified PAST_EOR_FROM_GET_NEXT_RECORD_CALL exception so that Rollover stream 
  could go to fractions of a day.


     GseV902
23Feb2007
1) More accurate error message: PAST_EOR_FROM_GET_NEXT_RECORD_CALL 
  added to error data base.
  
2) Option added to gsecontrol and tmcontrol which, using xmllint tests that the 
  xml files in the DB have the correct syntax.
  gsecontrol -db    Recursively searches the entire xml database and 
                     checks for xml syntax errors
  gsecontrol -dbfile filename   Displays specific syntax errors in a 
                                given xml file.

3) Item plugin written to ingest HGA files (ASCII_Find_Dependent_Value_R4).
   a) Automatically strips header off of the file.
   b) Various plugins written for extracting the searchmode:
      i) floor 
      ii) ceiling
      iii) nearest
      iv) linear. 
   
   b) Examples demonstrate that:
      i) Plugin can find entries in the HGA file whose timestap matches 
           the engine's SCET_UR8.
      ii) When the plugin reaches the end of an HGA files it automatically opens 
          the next file in a way that is invisible to the client.
      iii) The DB writer may produce items that have different dependent columns
           In particular, it is possible to get a time value from the HGA file 
           to match the

     GseV901
14Feb2007
1) Have extract method properly recognize when the event has not been 
   built.
2) Have a request for a packet that is beyond EOR (End Of Range) 
  return a fatal error rather than a non fatal one, to the client.

     GseV900
7Feb2007
1) Use binary search in TM_SET_POSITION
2) Ensure that TM_SET_POSITION finds correct location, when there
   are multiple records with the same timestamp
3) Have TM_SET_POSITION handle the conditon where seach index either is 
   below zero or above number of records in stream.
     
     
     GseV899
11Jan2007
1) Have name of file generated by the engine contain a DOY with three 
   characters.


     GseV898
18Dec2006
1) If MOC_CMD_HOST in the AvailableMoc.xml is set to "0", instead of an IP, 
 the TC_Handler will not launch.
2) During TM_Select_Domain, the engine checks to see if mission,spacecraft,
   instrument and event types are correct.  If they are not found an appropriate 
   error is sent.  During TM_Select_Stream the validity of the context are checked.
   This feature is now verified by the regression tests.
3) When the daq is off gsecontrol -stat reads:
    MOC : -
4) Split the file Startup_items.xml into Domain_items.xml and Stream_State_items.xml.
5) Have the TMLib engine generate the hidden areas based on the 
   NUMBER_HIDDEN_AREAS item rather than hardcoding.
6) Added SERVER_IP and SERVER_HOSTNAME items (avialable at TM_Select_Domain time).
   This feature is now verified by the regression tests.
7) A complete path to a nonexistent file used to give the misleading error 
   ZERO_LENGTH_FILE.  It now gives the more appropriate error:
   FILE_NOT_FOUND
8) All the items in Domain_items.xml are avialable after TM_Select_Domain time.
9) After TM_SelectStream all the items in  Stream_items.xml are available.
10) Locks are put on each area so that items from them can only be pulled after 
    the engine has created and filled the area.  If user tries to pull an item 
    too early a nonfatal "AREA_NOT_READABLE" error is thrown.
11) Magic numbers implemented for TM_Select_Stream_TimeRange
     a) 0  for BOR means BOI 
     b) 0  for EOR means EOD
     c) -1 for EOR means EOI
     d) Testing these magic numbers is now part of the regression tests.
12) Error checking for input to TM_Select_Stream_TimeRange implemented
    a) STARTING_TIME_AFTER_END_TIME
    b) ENDING_TIME_BEFORE_BOI
    c) BEGINNING_TIME_AFTER_EOI
    d) Testing the trapping of these errors is now part of the regression tests.
13) Items that describe times within the engine
    a)  TIME_EOI_UR8 and  TIME_BOI_UR8  available after TM_Select_Domain
    b)  TIME_BOR_UR8 and TIME_EOR_UR8   available after TM_Select_Stream
    c)  TIME_BOF_UR8 and TIME_EOF_UR8   available after TM_Select_Stream 
    d)  TIME_BOF_UR8 and TIME_EOF_UR8 roll over with the day in  TM_Select_Stream_TimeRange
    e) Testing the trapping of these errors is now part of the regression tests.

GseV897
27Nov2006
1) Int can now be promoted to char (promting the int item "Server_Version" 
   to R4, R8 & char added to the regression tests).

2) Revised and restricted the demotion of items (e.g. R8 to int forbidden).

3)When using TM_Select_Stream, the engine properly traps the case where 
  the filename was not found.
This feature is now verified by the regression tests.

4) gsecontrol -stat
  1) The label UTC added to the end of the time stamp
  2) MOC description now displayed instead of MOC name
  3) MOC name and GSE server ip removed from TMlib stat

5) Change SW_Signed_int_2dBs_v1_Expression to Signed_Int_2dBs_v1 
   Testing this plugin has been added to the regression tests.
   
GseV896
15Nov2006
1) Fix bug so that Select Time Range now picks the best file.
2) Handle files of zero length.
   a) For select time range they are ignored
   b) When the file is explicitly called an error of the form below is thrown:
   
   ErrorStack name:  ZERO_LENGTH_FILE
   ErrorStack code:  80133
   ErrorStack message:     /Users/silvis/STEREO/gsw/TMlib_Server/../TMlib_Server_data/STEREO/stereo/level_zero/stereo/ahead/swaves/swaves_ahead_2006_316_1_00.ptpHas length zero
   ErrorStack description:  The selected file has length zero

GseV895
15Nov2006
1) Formatting of numbers using c-stlye formats put in place.  
The optional attribute in the database called format, will specify this
format.
2) Context added to stream family plugin.
3) Spacecraft name added to stream family plugin.
4) TM_SelectStream_TimeRange completely freed of hardwiring ... uses 
   stream family plugin
6) Renamed Common_Spacecraft item to Domain_Common_Branch
7) Recorder uses path in current MOC, not the default MOC.
8) Added MOC Name (Latest Selection for DAQ) to stat printout.
9) Added clock to stat output.
10) Build script rewites Info.plist so that server will always start whether 
  the box hosting the server is connected to the internet or not.  This correction 
  is required becuse the Apple plist editor changes the DTD for Info.plist 
  to point at an Apple website, when a file is saved.
11) TM_SelectStream_TimeRange now individually opens files as needed.  It 
    does not use a list of files.
12) TM_SelectStream_TimeRange has been tested for the following ranges:
       9069.75,9069.85
       9069.75,0
       9069.75,9070.0
       9069.75,9070.001
       9069.75,9070.25
       9069.0,0
       9069.0,9070.
       6000,9068.4
       9069.75,9069.5
       6000.5,0.
       6000.5,6000.8
       6000.5,6010.8
       6000,0
    Note: BOI_UR8: 9068.0
GseV894
28 Sept 06
1) Fix server so it can talk to latest version of webapps.

V893
27 Sept 06
1) Fix bug so that path to LZ files is correctly located.

GseV892
26 Sept 06
1) Items that contain constant strings added to the xml database.
2) New "hidden" item called Common_Spacecraft added.
3) Plugin written to read an ASCII file into an I4 array.  The call for it is:
ASCII_FILE2I4(FileName,skip,istart,istep,NumLoops,NumInner,NumOuter)
4) ASCII_FILE2I4 works properly along the branches of the searchlist.  
  If a file is found along the specific branch, it supercedes a file on the 
  common branch.
5) Example files written and regression tests added to the suite.
6) Input ASCII files can have comment fields designated by a "!" 
Examples:
! This is a comment line
233 244  ! This is a comment at the end of a line.  
7) Confirmed that validity attribute works with char items, as expected 
  this required no change to the code
8) Plugin written to read an ASCII file into an R4 array.  The call for it is:
ASCII_FILE2R4(FileName,skip,istart,istep,NumLoops,NumInner,NumOuter)
9) Plugin written to read an ASCII file into an R8 array.  The call for it is:
ASCII_FILE2R8(FileName,skip,istart,istep,NumLoops,NumInner,NumOuter)
10) Add 0.5 to the output of SWDSP_UnFloat_Cross_2magnitude_V1, so that it 
   rounds when it is cast to an int.
11) Plugins written for StreamFamilyTypes, that describe the properties of 
    the files (or the DAQ), being read by the Stream
    A) LZ - for the level zero files
    B) DAQ - for data coming directly from the DAQ
    C) DAQFile - for files that have passed through the DAQ
    D) NULL - default setting if the stream cannot be identified
12) The chooser on the server side now uses the StreamFamilyTypes
    and from them generates a UR8 which is an attribute in an XML 
    node.  The client cannot at this point process the UR8 attribute.
    However the older clients just ignore this new attribute.
   


GseV891
31 August 2006
1) Directory structure for GGS data on svn matches structure on 
  xgsea.
2) The commands gsecontrol and tmcontrol properly turn off all versions
   of the webapps.
3) SWDSP_AGC_2dBs_V1 plugin written and example in the
 ~/config/MissionConfigFiles/Examples/TMlib_Engine.exp file.
4) EVENT_NOT_BUILT exception added.  If an item is requested 
   but the event hs not been built, then this exception will be thrown 
   and the event wil not be built.
5) Update AvailableMoc.xml with version that contains additional targets.
6) TMlibHelp filters out non-xml files and will not deliver them to the webapps.
7) Add HFRcal.dat to the DB.

GseV890
24 August 2006
1) Examples of the dim atttribute put in 
   ~/config/MissionConfigFiles/Examples/TMlib_Engine.exp file
 2) Names of HFR1 and HFR2 items changed in the XML database
    and regression tests updated.
 3) Current server version added to the -stat display
 4) Bug fixed in wild cards.  Now paths to a file are accecpted 
   by TM_Select_Stream.  Old wildcard behavior is intact.
 5) gsecontrol & tmcontrol can start webapps & stop
 6) In past gsecontrol called short scripts that then launched the jars.
    This resulted in two pids for each server, one of which had to be 
    filtered out by the gsecontrol -stat script.  Now gsecontrol just 
    directly launches the scripts.
 7) SWDSP_UNFLOAT_CROSS_2MAGNITUDE_V1 converted from R4 plugin 
    to I4 plugin.
  8) Document plugins:
     A) SWDSP_UNFLOAT_CROSS_2MAGNITUDE_V1
     B) SWLFR_UnFloat_Auto_2dBs_V1
     C) POLY 
 8) Replace HFR_items_data.inc

GseV889
16 August 2006
1) Bitwise operators

   A) Table of operators:
   
     Operator     Symbol
     Inclusive OR    |
     XOR           ^
     NOT           !
     AND           &amp;
    Note:
    The ampersand (&) is used by XML for entities 
    (in TMlib entities are the way that include 
    files are implemented).  Since the ampersand 
    is used by the parser, XML provides the escape 
    string: &amp;
    
    B) Items demonstrating each of the four operators above can be 
      in the ~/config/MissionConfigFiles/Examples/TMlib_Engine.exp file. 
      This has been confirmed to work for vectors.
 
 2) There was no difference between the version of the database in the 
    deploy server and the database in xgsea.


GseV888
4 August 2006
1) TMServer stat no longer shows double readouts for each 
   server or client.
2) GSE Server and TMServer stat no display IP address
3) Minor changes to the wrding in the display in GSE Server and TMServer stat
4) Logger fixed so that daq can be turned on and off without clients crashing

GseV887
2 August 2006
1) Wrote SWDSP_UnFloat_Cross_2magnitude_dBs_V1 plugin

V 886
31 July 2006
1) Merge kag database.
2) Delete Mission_definitions.apps and Mission_definitions.data

GseV885
29 July 2006 
1) Env Variables in tmcontrol works properly to find paths.
2) Reference (pointer) problem fixed in poly plugins (I4, R4, R8)
   alows polynomials beyond x^2.
3) Engine properly handles scientific notation with negative values
   e.g 7e-5
4) Problem between DAQ and Multi-packet event builder fixed.  
   Multi-packet events can now be pointed at the DAQ stream.
5) LFR plugin fixed and tested
6) TM_Select_Stream accepts wildcards and searches
  the directory tree designated by the wildcard_root attribute 
   in the Mission_definitions.xml configuation file.  The first 
   file found that matches the input pattern is opened.
   Example pattern input:
   SWAVES_EMA_2005_*_203446
 8) Cosmetic Changes 
    A) SW_MPE changed to GENERAL_MPE, SW_SPE changed to GENERAL_SPE
    B) HK event changed from GENERAL_MPE to GENERAL_SPE
    C) Decription of items NUMBER_OF_BYTES_IN_FILE and 
        NUMBER_OF_PACKETS_IN_FILE corrected
    D) Checksum enabled in HK and LRSburst events.
 9) replace echo with echo -n for prompts
 
GseV 884
18 July 2006
1) Chooser works properly if chooser_root_dir is changed
2) "data" subdirectory no longer hardwired into the path for the Recorder
3) Mission no longer required by the lz_range_root attribute in 
   the Mission_definitions.xml file.  It is obtained from the MSI in 
   the TMlib engine.


GseV 883 
15 July 2006
1) Correct error message from logger.  New message reads:
Create a directory in the file system that matches the current 
      Logs#*Log_dir " + Log_dir + " does not exist"
      No logger file will be created"
      The operator may:"
      1) Continue without problems, but with no logger file"
      2) Edit ~TMlibDir/config/Info.plist and "
              insert a valid value for Logs#*Log_dir"
      3) Create a directory in the file system that matches the current "
Where Log_dir is pulled from the the Mission_definitions.xml file
2) Fixed TM_Close problem.  If bad file name was entered stream was never created.  
When user tryed to send a close to nonexistent stream, the server crashed.  Now the 
engine checks to see if the stream exists before tring to close it.  If the stream 
does not exist, then the conection to client is just broken.
3) Merge AvailableMissionData.xml into Mission_definitions.xml
4) logger_root put into Mission_definitions.xml


GseV 882
12 July 2006
1) Add 10ths of microsecs to PTP_GRT_UR8
2) TMlib Engine uses AvailableMissionData.xml file to find path to LZ files
3) TM_Select_Stream_TimeRange   
  a) Client side API call: TM_Select_Stream_TimeRange(StreamID, StartUR8,EndUR8)
  b) TMlib Engine selects best LZ file based on:
     Fin with highest number wins
     Fin wins next
     PTP with high number next.
     PTP last.
  c) TMlib Engine can cross boundries between days seamlessly
  d) The item "FILENAME" is transparently updated when engine goes to next day.
  e) The item "FILEPATH" is transparently updated when engine goes to next day.
  f) The TM_Set_Position API function can jump from one day to the next within range.
  g) Exceptions: PAST_EOR_FROM_SET_POSITION_CALL and PAST_EOR_FROM_NEXT_PACKET_CALL
     implemented and tested.
  h) BOR is selected properly for non integer values
  i) EOR is selected properly for non integer values
  j) TM_Set_Position magic number:
               BOR = 0 (Begining of Range)
  k) TM_Select_Stream_TimeRange magic numbers
        StartUR8 
           BOI = 0 (Begining of Information) 
                                               EndUR8
                                                  EOD = 0 (End of Day)
                                                  EOI = -1 (End of Information)
4) New items added at startup time added: "Domain_Mission","Domain_Spacecraft",
    "Domain_Instrument","Domain_EventType"
5) Added ATTRIBUTE_NOT_IN_XML_FILE error to catch when user requests a 
   mission that is not in the AvailableMissionData.xml file.
   




GseV881
12 June 2006
1) Server side chooser uses AvailableMissions.xml to overide default 
   data directory.  Tested by moving sending recorded files to nonstandard
   directory.
2) Recorder uses AvailableMissionData.xml to overide default data dir.  
   Tested by moving sending recorded files to nonstandard directory.
3) gsecontrol -on turns on the web apps
4) Reduce logger buffer size from 2M to 2K
5) Put in verbose warnings if wrong path is set in AvailableMissionData.xml
6) If path to log file is not defined, logger file is not created but 
  the TMLib engine still functions.

GseV880
2 June 2006

1) gsecontrol -stat properly displays clients again
2) gsecontrol -stat displays IP address of the server 
   hosting the gse servers
3) checksum plugin written
4) can properly process *.fin files
5) Server agent starts at lowest Port number each time.
   ~1.5% slower hooking up 10th client (tested on G4 laptop).
6) gsecontrol -web on/off and tmcontrol -web on/off added
7) web service visible to gsecontrol -stat and tmcontrol -stat
8) implement super events attributes:
  event_builder 
 firstpacket
 lastpacket
 filter
 match_or_skip
 match_or_abort
 counter equation
 validate


9) Name Changes:
    UR8fromEpoch1958Seconds -> UR8fromCCSDStime
    ur8FromDayMsec          -> UR8fromDAQtime
    ur8FromDayMsecUsec      ->  UR8fromDAQtime
    
10) The engine will overide the user's choice for the Spacecraft name in 
the MSIE based on the form of the LZ file name.
    
GseV 879
4 April 2006
1) Change Epoch1958SecToUR8 to UR8fromEpoch1958Seconds in XML DB
2) Wrote the plugins below.  Demonstated how to use them in 
   the TMlib_Engine.exp file and wrote regression tests. 
   A) SW_SIGNED_INT_2DBS_V1
   B) SWDSP_UNFLOAT_AUTO_V1
   C) SWDSP_UNFLOAT_CROSS_V1
   D) SWHFR_UNFLOAT_AUTO_2DBS_V1
   E) SWDSP_UNFLOAT_CROSS_2MAGNITUDE_V1
   F) SWLFR_UNFLOAT_AUTO_2DBS_V1
   G) SWDSP_UnFloat_Cross_2degrees_V1

GseV 878
30 March 2006
1) Fix bug handling floats (error in division). 


GseV 877
29 March 2006
1) Fixed bug: Realtime selection from choooser now works.
2)  item names changed in Event_Build_items.xml, new names:
 "Time_BOE_days"
 "Time_BOE_mSec_in_day"
 "Time_BOE_UR8"
 "Time_EOE_days"
 "Time_EOE_mSec_in_day"
 "Time_EOE_UR8"
3) hidden = "1" changed to hidden = "true"
4) SWDSP_UnFloat_Cross_2dBs_V1 plugin deleted
5) UR8FromDayMsec plugin better comments and clearer code
6) SW_Signed_int_2dBs_v1 -> Example and regresion test added
7) Change Epoch1958SecToUR8 to UR8fromEpoch1958Seconds & better comments

GseV 876
20 Mar 2006
1) GetTime_UR8 item used for First and Last times
2) New items added: Server_Version, NUMBER_OF_PACKETS_IN_FILE,
  TIME_BOF_UR8, TIME_EOF_UR8, FILEPATH, FILENAME

GseV 875
15 Mar 2006
1) Eliminate InstallTMServer.pl script.  
   A) if TMlib_Server is installed in the 
   default directory (/Applications/STEREO) No configuration 
   is required
   B) if TMlib_GSE_Server is installed in the 
   default directory (/Applications/STEREO) only the AvailableMoc.xml
   needs to be modified
   C) If either server is installed in a non default directory then 
   the contents of TMlib_GSE_Startup.sh or TMlib_Server_Startup.sh
   must be modified.
   
2) Delete CONTEXT subdirectories on STEREO_A and STEREO_B.

3) Added FIRST_GRT_IN_EVENT and LAST_GRT_IN_EVENT items.
   

GseV 874 
10 Mar 2006
1) Eliminated extra log messages when DAQ is selected by chooser.
2) Change the dialog for gsecontrol -off
3) Move the new db files into the official build
4) Eliminate unused config file: server_security.policy

V 873
7 Mar 2006
1) ./STEREO/PACKET_definitions.xml renamed ./STEREO/RECORD_items.xml
  and CCSDS and PTP items moved to  CCSDS_items.xml & PTP_items.xml
  
2) TM_Get_Position TM_Set_Position use context specific UR8

3) Loops in "gen family" of plugins obey:
  do iOuter=1,NumOuter
	index=istart
	do i=1,NumLoops
		do iInner=1,NumInner
			output index
		enddo
		index = index + istep
	enddo
   enddo
   
4) ERT changed to GRT in database and regression tests

5) Have gsecontrol and tmcontrol query user with a y/n 
 before shutting down the servers.


GseV 872
1 Mar 2006
1) Examples file edited 
2) sleep time of DAQ readers made a parameter of INFO.plist
3) New contexts created:
emu_recorded            sc_realtime
emu_realtime            sc_recorded
4) If a gsecontrol -rec off is sent , and the daq is down, 
  the record app will wait 5 seconds and then shutdown.
  


GseV 871
22 Feb 2006
1) Record app properly closes TMlib client -> process 
  that is doing recording exits.
2) Record appears in gsecontrol -stat


GseV 870
14 Feb 2006
1) kag version of AvailableMocs file used
2) Installation script simplified
3) Install timestamp fixed
4) Get_Position corrected to not take packet that is one in the future
5) Searchlist handles directory existing only along one branch -- properly
6) If DAQ is off realtime option does not appear in chooser

GseV 869
9 Feb 2006
1) SearchList can handle directories that only apperar in the common 
   branch or anly appear in the specific branch.
2) gsecontrol -tc on
   gsecontrol -tc off
   gsecontrol -daq on
   gsecontrol -daq off
3) Clients wait and then reconnect to DAQ, if DAQ disconnects
4) two deploy targets one without TC or DAQ

4)Spacecraft name determined form Stream in realtime case
name of server changed to TMlib_GSE_Server


GseV 868
27 Jan 2005
1) display poc directives on startup
2) display server version number on startup
3) Spacecraft name selector based on file name generalized to include SCA in file name
4) Better error checking put into logger
5) Error testing p ut in to check for stream not properly opened

V 867.1
25 Jan 2006
1) Fixed problem in gsecontrol -tc so that it kills the TC_Handler properly
2) Error checking in TM_HELP to test for file not found
3) NOOP put in for performance test


GseV 867
23 Jan 2006
1) Changed DB xml files created PACKET_definitions.xml in 
   ~/config/MissionConfigFiles/STEREO
2) Simplified several items in ~/config/MissionConfigFiles/CCSDS_items.xml
3) Wrote Packet_EventBuilder.java class
4) Error checking while pulling values from config file improved
5) gsecontrol -tc option fixed -> it now finds fkill command
6) Removed unneeeded sleep from server side tcp read/writes -> 
   ~ 500x faster
7) ~/config/MissionConfigFiles/Examples/TMlib_Engine.exp created

GseV. 866.1
26 Dec 2005
1) Fixed timestamps on XML DB files

GseV. 866
26 Dec 2005
1) -1 taken to be infinite number of steps for TotalNumberOfDataBlocks &
   RepetitionsInSingleDataBlock (ie continue to take data until end of buffer)
      - logic used to locate end of buffer removed
2)  I4gen written -> I4GEN(istart,ifin,istep,NumInner,NumOuter)
    R4GEN written -> R4GEN(istart,ifin,istep,NumInner,NumOuter,scale,offset)
    R8GEN written -> R8GEN(istart,ifin,istep,NumInner,NumOuter,scale,offset)
3) Stream selects MSI for cases when a file is used
4) I4vect written, R4vect written, R8vect written will allow items as members 
   of the vector.
5) Removed all server side code related to the old chooser
6) Regression tests for Vector and Gen plugins.


GseV. 865
1) SearchList Finished (with rewrite of DB)
2) SearchList Reg Test in place (RegTest Files not sent to Deploy)
3) XML parser updated XERCES out SUN in


GseV. 864.1
Nov 26, 2005
1) Fixed bug in cache (needed to be cleared)

V. 864
 Nov 8, 2005
1) Compatible with client windows chooser.  
2) Contains 2 versions of the chooser the most recent one is obtained by 
   entering "chooser" into TM_SelectStream.  Older version is obtain by
   entering "chosold".  Goal is to eventually drop the older version.
1) Packet event definition moved to stereo level
2) MSI set when select stream is called not select domain
4) Work begun on SearchList

GseV. 863
Oct 7, 2005 
1) POlY I4, R4, R8 plugin written
2) Code for plugins simplifed
3) Empty packet directory in xml database removed
4) slight modifications to DB directory search
5) xml files used only for regression tests filtered out 
   by build process


GseV. 862
Sep 9, 2005 
1) If event cannot be built because of missing packet.  Event builder 
    puts error in Error stack and then continues to build next event
2) Logger was not properly closing threads when a server process closed.
   This has been corrected.
3) Code in itemparser simplified. 

GseV. 861
Aug 8, 2005 
1) Include files added to MissionConfigFiles xml DB
2) TMlib_DB_Verifier handles single files properly
3) Logger informs user when DAQ is up
4) Config file contains tarballs with logging and data directory structures

GseV. 860
Aug 3, 2005
1) Improved logging. 
2) minor changes to event builder
3) Extract method now catches IndexOutOfBoundsException
  and sends message to user instead of crashing the server
   process

GseV .859
July 29, 2005
1) all loggers feed into one file
2) level of each logger can be set separately
3) level of console can be set separately
4) No longer separte dirs for TM & DAQ logs
   Standard Directory Structure for SWAVES Server
    Logger:
   [/Volumes/data/TMlib_Server_logs] tar -cvf LoggDirsInTMlib_Server_logs.tar STEREO/
   STEREO/
   STEREO/STEREO_A/
   STEREO/STEREO_A/IMPACT/
   STEREO/STEREO_A/IMPACT/TC_logs/
   STEREO/STEREO_A/IMPACT/TC_logs/ARR/
   STEREO/STEREO_A/IMPACT/TC_logs/SCM/
   STEREO/STEREO_A/IMPACT/TMLib_sessions/
   STEREO/STEREO_A/SWAVES/
   STEREO/STEREO_A/SWAVES/TC_logs/
   STEREO/STEREO_A/SWAVES/TC_logs/ARR/
   STEREO/STEREO_A/SWAVES/TC_logs/SCM/
   STEREO/STEREO_A/SWAVES/TMLib_sessions/
   STEREO/STEREO_B/
   STEREO/STEREO_B/IMPACT/
   STEREO/STEREO_B/IMPACT/TC_logs/
   STEREO/STEREO_B/IMPACT/TC_logs/ARR/
   STEREO/STEREO_B/IMPACT/TC_logs/SCM/
   STEREO/STEREO_B/IMPACT/TMLib_sessions/
   STEREO/STEREO_B/SWAVES/
   STEREO/STEREO_B/SWAVES/TC_logs/
   STEREO/STEREO_B/SWAVES/TC_logs/ARR/
   STEREO/STEREO_B/SWAVES/TC_logs/SCM/
   STEREO/STEREO_B/SWAVES/TMLib_sessions/

                               
5) TC_Handler stays in disconnected state for EMU type MOCS
6) TC_Handler has a watchdog on both the client and the MOC
7) Directory creation commented out of the InstallTMServer.pl script
8) The build system forces the Info.plist file to look at the SYSTEM
 DTD



GseV .858
July 18, 2005
 1) Fixed some bugs in the logger system.
 
V .857
July 17, 2005
  1) TM_Get_Position & TM_Set_Position complete
  2) TC type passed to TC_Handler from AvailableMocs.xml (EMU or MOC)
  3) Prepend a "+" to a file name enter to TM_SelectStream to get 
    the top of the server data dir else full path on server side
  4) New structure for files connected with the server:
   Applications/STEREO
            |
            |----TMlib_Server_data 
            |            | 
            |            | - DATA
            |            | - TEST
            |  
            |
            |----TMlib_Server_logs
                         | 
                         | - TM_logs
                         | - DAQ_logs
                         | - TC_logs
                               |
                               | - ARR
                               | - SCM
                               
   SUPERCEDED on July 29, 2005
                               
GseV .856
July 6, 2005

1) server side help finished, client web app in alpha 
2) server side stream chooser finished ... client side curses app finished
3) /TEST directory tree created and regression data placed here
4) TC_Handler modified to send commands to either SpaceCraft A or B
   (this information comes from the AvailableMocs.xml file)
5) The packet recording sub system modified so that it goes through a 
   MSIE instead of directly using raw packets from the stream 



GseV .855
Apr 1, 2005
  1) Following plugin methods written:
      a) SW_Signed_int_2dBs_v1
      b) SWDSP_UnFloat_Auto_2dBs_v1
      c) SWDSP_UnFloat_Cross_2dBs_v1

   2) Vector Arithmetic is now correct e.g. 
       a + (V1, V2, V3) = (a + V1,a + V2,a + V3)

   3) Parser properly handles R4 and R8
        R4 & R8 can be composites of items

   4) Database supports include files 
       Standard method see:
         Learning XML 
         Erik T. Ray
         2001
         O'Reilly
         p. 51

   5) Path to data set by client with the TM_SelectDomian call.

   6) Data recorder (started by gsecontrol -rec on) gets 
   path to store data from MOC config file (AvailableMocs.xml).
   
   7) New data directory structure created, with data from emulators
     stored under DATA tree and regression test data stored under 
     TEST.  
               Structure of data tree:

                     DATA
                      |
                   STEREO
                      |
         STEREO_A            STEREO_B
            |                   |
    IMPACT    SWAVES    IMPACT    SWAVES

   8) The lines below, when added to a user's .bash_profile file will 
   allow that user to operate gsecontrol:
   
   if [ -e /Applications/STEREO/TMlib_Server/bin/TMlib_Startup.sh ]; then  
      source /Applications/STEREO/TMlib_Server/bin/TMlib_Startup.sh  
   else  
       echo No STEREO TMlib Servers available 
       
   fi  
   
   9) TC_Handler modified to process large number of commands to flawed emulator 
   MOC.


  GseV .850
  Dec 23, 2004
  1) Added the script  InstallTMServer.pl to install server
        a) detects existence of directory struct fo data in /Volumes
        b) performs chmod
        c) sets default MOC
        d) confirms that proper groups exist; crates them if need be
  2) Made sure that timestamp on DB files were perserved.
  3) XLATE finished
   
   
  GseV .848
   Nov 12, 2004 
  1) Preliminary XLATE in place
  2) Time Conversion on client finished 
   
  GseV .847
  21 Oct 04
  1) Many changes to DAQ RING to improve eff,
     yet it still drops some packets
  2)  +/- in now allowed in names
  
  
  GseV .845
 6 Oct 04 
 1) No changes to server
 2) work on client tcp/ip 
 
 
  GseV .844
  1 Oct 04 
  No Server Changes

   
    Sep 21, 2004
   V 843
  1) replaced java select mechanism with my own watch dog 
     select appeared to not recognize when socket was writable
  
  2) Fixed the bug associated with the program below by putting
   an error trap on the method that searches for item names in the DB
   
   
   make sure the program below works, right now never terminates 

   pro Test,itemName

   StreamId	= 1L
   Err		= long(0)
   Errors		= long(0)

   print,'alive...'

    Err = TM_SelectDomain(StreamId,"stereo", "STEREO_A", "swaves", "crapola")
   if err ne 0 then print, 'Domain - Error = ',Err

   stop
  end



  Sep 9, 2004
  GseV 842
   
  1) Version sent to Jason Hinze
  the jars 
    
  
  
  Sep 8, 2004
  V 841
  1) Fixed deadlock bug in ring server
  
  
  
  Sep 3, 2004
 V 840
 1) TC_Handler installed
   a) writes scm & arr to files
   b) tcp channel selector to kill old clients
 2) TC_Handler not done
    a) header entries not supplied by user
    b) readers for scm & arr files do not exist


 Aug 31, 2004
 v 839
 1) old cmd gui removed
 2) jdbc removed
 3) TC_Handler 80% done, add to deploy target
 
 
 Aug 6, 2004
  v 838
  1) Before vacation
  2) Many changes in the DB as directed by KAG
  3) No Changes in client



July 18
  v 837
  
  1) After Paris Trip
  2) Validity in place
  3) 12 bit pull in place
  4) Server Agent closing sockets properly
  
  
  July 6th
v 0.833
Clientside
1) Added checksum print out to packets and packet_dump
2) put on .sh and .csh on file names

  
  
  June 28
v 0.832
Clientside
1) simplified Classpath 
2) eliminated several env vars


June 26
v 0.831
1) chmod done on client side by postflight
2) c shell client pointed to xgsea 
3) no server side changes


v 0.83
1) Event sausage made
2) checkdaqalive put into sever dist
3) server install has sinle variable to change for data directory
4) clients must recieve 25 EOFs before quitting

Gsev 0.82
June 7, 2004

1) added force methode after the write in the thread that 
records packets to disk.  

2) partial work toward multi-packet events 


Gsev 0.81
June 4, 2004
1) fixed ring deadlock by changing notify -> notifyAll
2) Modified cliet to detect EOF and close session based on that 


Gsev 0.8 
May 20, 2004
1) xml files used to connect to multiple MOCS



Gsev 0.7
March 31, 2004 
1) New wire protocol based on JAVA NIO
2) Context header added


Tue - January 27, 2004
V .6
1) Major Changes to ant 
2) Server Deploy is a separate target

release (v 0.5.5)

Fri - January 16, 2004


Release for John Schilling to do JNI work.

GSE_CLIENT_SERV_0_5_5.tar.gz 
 Contains a  Mac OS X deploy package for client development (src and ant files
 included).  Also a Mac OS X deploy package is included as well as the source code.
 
1) Major changes to simplify ant build files. 
2) Fixed bug that prevented error handling in itemI4 method.   
3) Error notification if ring is down. 



release (Gsev 0.5)

Wed - January 7, 2004

GSE_CLIENT_SERV_5.tar.gz  
 Contains Client Mac OS X deploy package and server with source code.
 Server is not in a deploy package.

1) Client queries server for acceptable version number.  If client version number is out of acceptable range, error message is printed and session terminated.  If client is old but still in the acceptable range a warning is printed but the connection continues.

2) Dates are in UTC and counting begins at 000001 not 000000.

3) The directory structure has been changed (a first draft).

4) The clients now start at the highest valid packet in the data ring (not the lowest).

5) A bug where the ring printed out the same values multiple times has been fixed.

6) A startup perl script determines which files in the bash and csh startup sequence exist and then writes configuration commands into the correct file for both shells.  Tests have successfully  run where multiple versions of the client have been installed on a user account and on virgin systems.  This approach will allow the user to switch shells and still be able to run the S/WAVES clients.  
