OASIS-CC VERSION V02.05.14(3) RELEASE NOTES 5/1/97 TABLE OF CONTENTS 1 Compatibility And Requirements Information 2 OASIS-CC Installation Procedure 2.1 Solaris Version 2.2 HP_UX version 3 Upgrading V02.05.14(1.x) or V02.05.14(2) Applications to V02.05.14(3) 4 Major New Features Or Code fixes 4.1 Addition to the data server functionality (crn 626) 4.2 Better retrieve thruput (crn 617) 5 Change Requests Closed With This Release 6 Main Known Problems And Limitations 6.1 Filename Length Limitation 6.2 Limited thruput while using a generic communication protocol with a TDM frame (crn 259) 6.3 Badly formatted internet address hangs OASIS-CC (crn 258) 6.4 CEV may fail if CEV_TIMEOUT is greater than 86400.0 seconds (crn 358) 6.5 Initialization problem with keyed binary bridge (crn 359) 6.6 Apparent memory leak in graph presentation type (crn 337) 6.7 Ask window problem (crn 486) 6.8 Running awb remotely with the SOLARIS version (crn 378) 6.9 OASIS-CC not compiling procedures (crn 409, tbd) 6.10 Size limitation for command log and command window (crn 508) 6.11 Incorrect time reported in message log (crn 512) 6.12 res2rfg TAE utility may crash on *_.res resource files (crn 525) 6.13 Leak when displaying panel with DDOs (crn 529) 6.14 Use caution when using remote displays 6.15 OASIS-CC never told when crash occur on a remote X server (crn 529) 6.16 Remote Display issues in HP_UX version (crn 529) 6.17 Exiting a loop with repeat count via a "GOTO" statement (crn 516) 6.18 Duplicate subfield reference in command request not reported (crn 528) 6.19 Problem running awb under hp_ux 10.20 (crn 610) 7 Anomaly Or Enhancement Request Reporting 8 Documentation Set Status 9 Upgrades To The Spectrometer Application Appendix A: oasis_data_server.h Appendix B: MEASURED PERFORMANCES OASIS-CC VERSION V02.05.14(2) RELEASE NOTES 5/1/97 These release notes describe version V02.05.14(3) of OASIS-CC. A copy of these notes can be found in $ODIST/release_notes/oasis_v2.0514_3. A copy of the notes from previous releases, including patches, can also be found in the $ODIST/release_notes directory. 1 Compatibility And Requirements Information --------------------------------------------- This release of OASIS-CC has been tested on SparcStation 10 and UltrsSparc 1. This release of OASIS-CC has also been tested on a HP 715/100 running HP_UX 9.05. There are 2 different versions: A SOLARIS version which requires: X X11R5 from SUN MOTIF 1.2 from SUN (Motif Developer's Kit) TAE+ 5.3c for SOLARIS (available from Century Computing for a non-NASA project, from GSFC for a NASA project) A HP_UX 9.x and 10.x version which requires: X X11R5 MOTIF 1.2 TAE+ 5.3b for HP (available from Century Computing for a non-NASA project, from GSFC for a NASA project) Notes concerning the SOLARIS version: (1) It requires a C compiler (OASIS-CC was tested using the Sun C SparCompiler. The make_oasis_app.sh utility requires the Sun C SparCompiler. This utility needs to be updated for use with other compilers such as the GNU C compiler); (2) Release 14 for SOLARIS requires TAE+ 5.3c. It is not compatible with TAE+ 5.3l; Notes concerning the HP_UX distribution: (1) It requires a C compiler (OASIS-CC was tested using the HP_UX C compiler (cc). The make_oasis_app.sh utility requires the HP_UX C compiler. This utility needs to be updated for use with other compilers such as the GNU C compiler); How much memory you need depends on the application. Our experience is that 32 Mbytes is a minimum. Disk space requirements are about 40 Mbytes for the Solaris distribution and 50 Mbytes for the HP_UX distribution. Notes on license requirements ----------------------------- TAE+ A TAE+ license is not required for every workstation that the executable image of OASIS-CC runs on. TAE+ needs only to be licensed for the workstation(s) used to develop TAE+ interfaces and to create the executable image. In other words, a TAE+ license is required for each workstation that is used to run the workbench and link the executable image. OASIS-CC A separate license is required for each workstation used to run OASIS-CC. Compatibility with UltraSparc (crn 572) --------------------------------------- This version of OASIS-CC is compatible with the UltraSparc architecture. 2 OASIS-CC Installation Procedure ---------------------------------- 2.1 SOLARIS Version ------------------- Installing from the distribution tape ------------------------------------- Refer to the Unix OASIS-CC V02.05.12 Installation Guide for instructions on how to install the OASIS-CC software from the tar tape. Sites that require the ability to maintain applications running under previous releases must install V02.05.14(2) in a new directory. ******************************************************************************* * We recommend that you run OASIS-CC in the SOLARIS RT (realtime) scheduling * * class rather than the SOLARIS TS (time-sharing) scheduling class. * ******************************************************************************* ******************************************************************************* * Note that the SOLARIS distribution expects /usr/ccs/bin to be placed before * * /usr/ucb in $path. This is because OASIS-CC needs to be linked with the * * SOLARIS linker, not with the SunOs 4.1 compatibility linker * ******************************************************************************* * ***************************************************************************** * The SOLARIS version of OASIS-CC now expects that the environment variable * * LD_LIBARY_PATH to be defined with the path to the X and the Motif libraries.* * For example on LASP uses the following definition: * * setenv MOTIFHOME /opt/SUNWmotif * * setenv OPENWINHOME /usr/openwin * * setenv LD_LIBRARY_PATH $MOTIFHOME/lib:$OPENWINHOME/lib * ******************************************************************************* * ***************************************************************************** * The SOLARIS version of OASIS-CC expects the X11 include files to be in * * /usr/include/X11. If this is not the case, create a symbolic link from the * * directory containing the X11 include files * * (usually /usr/openwin/include/X11) to /usr/include/X11. * * ***************************************************************************** 2.3 HP_UX version ----------------- Installing from the distribution tape ------------------------------------- The installation procedure for the HP 9000/700 version is the same as for the SPARC version with the additional steps listed below. Refer to the Unix OASIS-CC V02.05.12 Installation Guide for instructions on how to install the OASIS-CC software from the tar tape. Additional steps to be done for the HP_UX version: After installing the release distribution you need to: (1) Define ODIST (2) cd $ODIST/nosrc_objs (3) execute the make_ldas.sh script This will create 2 files (lda1 and lda2) that are needed to link OASIS-CC on your machine. ******************************************************************************* * We recommend that you run OASIS-CC with a realtime priority rather than * * with a time share priority. (see rtprio(1) in the man pages) * ******************************************************************************* * ***************************************************************************** * The HP_UX version of OASIS-CC expects the environment variable * * LPATH to be defined with the path to the X and the Motif libraries. * * For example on our development system we use the following definition: * * setenv LPATH /usr/lib/Motif1.2:/usr/lib/X11R5:/usr/lib:/lib * ******************************************************************************* * ***************************************************************************** * The HP_UX version of OASIS-CC expects the X11 include files to be in * * /usr/include/X11R5. If this is not the case, create a symbolic link from * * the directory containing the X11 include files to /usr/include/X11R5. * * ***************************************************************************** * ***************************************************************************** * The HP_UX version of OASIS-CC expects the Motif include files to be in * * /usr/include/Motif1.2. If this is not the case, create a symbolic link from * * the directory containing the Motif include files to /usr/include/Motif1.2 * * ***************************************************************************** 3 Upgrading Applications to V02.05.14(3) ---------------------------------------- Applications running under OASIS-CC V02.05.14(1.x) or OASIS-CC V02.05.14(2) are not compatible with V02.05.14(3) and need to be upgraded. Upgrading from V02.05.14(1.1) or V02.05.14(1.2) or V02.05.14(1.3) ----------------------------------------------------------------- Because of crn 583 (support for "timed" command) a new parser needs to be installed and two stubbed routines need to be inserted in libOasisUser.a (see 4.3 in the V020514(2) release notes) (1) copy the new parser files: cp $ODIST/common_distrib/utilities/parser_int.dat $OASIS_PARSER/. cp $ODIST/common_distrib/utilities/parser.dat $OASIS_PARSER/. (2) update $OASIS_USER_CODE/libOasisUser.a as two new routines need to be provided In addition, to support the Data Server concept (crn 596, see 4.4 in the V020514(2) release notes) a new field has been added to the LATEST_DATA table just after the field ROUTE_TO_BRIDGE. This new field is named ROUTE_TO_DATA_SERVER. It is a SYSTEM-controlled field that can take the value of NEVER (default), ALWAYS or ON_CHANGE. This makes an application running 14(1.x) incompatible with this release. A script file is provided in $ODIST/bin to update the LATEST_DATA table (file $OASIS_DATABASE/latest_data.dat) to the new format. To upgrade from 14(1.x) to the release: (1) Log in the application account intended for application development. This account should be populated with the files of the application you want to upgrade from. (2) Set up all the environment variable and make sure that ODIST points to the new release distribution (3) Execute the upgrade script by typing $ODIST/bin/14_1to14_2.csh Upgrading from V02.05.14(2) --------------------------- Solaris version: Because the code has been recompiled with a new version of the SunAda compiler (to create a version of OASIS-CC compatible with the UltraSparc architecture) the parser table needs to be reloaded. If you use the standard parser table (.i.e, the one that comes with the distribution) you only need to copy parser_int.dat from the distribution: cp $ODIST/common_distrib/utilities/parser_int.dat $OASIS_PARSER/. Otherwise you need to reload your version of the parser table using the conver_table utility. HP_UX version: 14(2) and 14(3) are compatible. 4 Major New Features Or Code Fixes ----------------------------------- The following new features and major code fixes are included in this release. New features and code fixes have associated Change Request Numbers (CRNs) that provide a means of tracking changes to the OASIS-CC code. CRNs are generated by LASP and the general OASIS-CC user community. The pertinent CRNs are shown for each enhancement or correction included in this new version of OASIS-CC. 4.1 Addition to the data server functionality (crn 626) ------------------------------------------------------- Two new opcode values have been added in the client process request message. In addition to ADD_GROUP (1), REMOVE_GROUP (2) and DISCONNECT (3) ADD_GROUP_W_INITIAL_VALUE (4) and SEND_GROUP_CURRENT_VALUE (5) are now valid opcodes. ADD_GROUP_W_INITIAL_VALUE acts like ADD_GROUP but the initial value of the requested measurements are xfered first. SEND_GROUP_CURRENT_VALUES acts like a single shot ADD_GROUP_W_INITIAL_VALUE/REMOVE_GROUP. The updated oasis_data_server.h (in $ODIST/include) is listed in Appendix A. 4.2 Better retrieve thruput (crn 617) ------------------------------------- In previous releases when the "every" field in a retrieve statement was set to 00:00:00.000 (as in "retrieve xyz from www every 00:00:00.00") the time between 2 packets was defaulted to 00:00:00.1 (to avoid the processor being taken over by the retrieve task). In this release if a "every" field in a retrieve statement is set to 00:00:00:000 then no delay is applied between the processing of two consecutives packets. 5 Change Requests Closed With This Release -------------------------------------------- crn # Title Comment 572 Code compatible with UltraSparc architecture 606a Non recoverable "system error" when procedure called with non-existing parameter (additional fixe) 613 Problem with checkbox presentation type (solaris 2.5.1) 614 Problem when using remote display 617 Improve retrieve thruput (ip protocol) see 4.2 621 Leak when sending non-discrete command 624 Leak while compiling over and over large procedures 626 Addition to the data server functionality see 4.1 627 Error in DOY calculation in bridge file 629 Leak while starting/closing a bridge 630 Flush counter problem 6 Main Known Problems And Limitations --------------------------------------- 6.1 Filename Length Limitation ------------------------------ In OASIS-CC filenames can be up to 128 characters long. In the SOLARIS and the SunOS versions, the length of the pathname (not the length of the environment variable that translates into the pathname) is included in the filename length. In some case, the 128 character limit can be reached. A way around this limitation is to softlink the directories to directories with shorter names and define the environment variables relative to the new directories. 6.2 Limited thruput while using a generic communication protocol with a TDM --------------------------------------------------------------------------- frame (crn 259) -------------- The current implementation of the generic communication protocol provides the user with some flexibility in controlling the load put on the host machine by the data acquisition if the data comes as packets. Ideally, it would be nice to choose the time_out and frame_length parameters (in the streams table record describing the primary stream) such as frame_length/time_out >> bit rate. If the stream is packetized the only requirement on the frame_length is that it has to be greater than the largest of the packets. The larger the frame_length, the greater the time_out value can be and therefore the lower the load on the machine. Currently in the case of a TDM frame, the frame_length has to be equal to the length of the frame, which limits the possible values for the time_out parameter. 6.3 Badly formatted internet address hangs OASIS-CC (crn 258) ------------------------------------------------------------ Putting a badly formatted internet address (such as "/128.32.33.34" instead of "128.32.33.34") in the data_line field of the links table for streams that use the IP protocol causes OASIS-CC to hang. 6.4 CEV may fail if CEV_TIMEOUT is greater than 86400.0 seconds (crn 358) ------------------------------------------------------------------------ When CEV_TIMEOUT is set to a value greater than 86400.0 seconds, a command may immediatly fail CEV, as if the CEV_TIMEOUT was set to 0.0. This is due to a SunAda compiler problem. 6.5 Initialization problem with keyed binary bridge (crn 359) -------------------------------------------------------------- The problem occurs under the following conditions: (a) The bridge is a binary keyed bridge; (b) The "w" values in the TB[w] format don't follow the format rules (i.e "w" defaults to 32 for eu_data and to 96 for time_data, "w" is rounded to the nearest 8 bits and "w" is limited to 128 * 8 for character strings; and (c) non-key items are not recieved before the triggering key item is recieved. Then OASIS-CC may report an error in the "write_line" routine and it is possible that some of the first records are not correctly formatted. This problem can be avoided by using "w" values that follow the rules listed above. 6.6 Apparent memory leak in graph presentation type (crn 337) -------------------------------------------------------------- The graph presentation type gives the appearence of a memory leak. This is because it was designed to update very rapidly without concerns for memory deallocation except at certain times. This may need to be reconsidered in the future. For now, it is necessary to know when memory is cleaned up in order to avoid the problem of memory continuing to be allocated. If you have a continuously updating graph, it will only have memory cleaned up when: 1) The panel is deleted. (not hidden). 2) A non-visible point is plotted and the graph is set to "jump" to the new point ("dojump" resource is TRUE). 3) The graph item is redrawn due to some change in its appearance. This may be anything including a title change, font change, color change, or anything which would require the items to be rearranged in the graph. 4) The graph area is redrawn by a user scrolling with scrollbars. Notice that continuously updating graphs which take long period of time before a non-visible point is plotted (the end of the graph is reached) will continuously allocate memory without ever deallocating it. 6.7 Ask window problem (crn 486) --------------------------------- This is a non fatal problem which is caused by rapid succession of ask windows. Undelayed back to back ASK windows result in the following type of error message in the window from which OASIS-CC was started: X Error of failed request: BadWindow (invalid Window parameter) Major opcode of failed request: 38 (X_QueryPointer) Major opcode of failed request: 0 Resource id in failed request: 0x200820 (e.g) Serial number of failed request:43641 6.8 Running awb remotely with the SOLARIS version (crn 378) ------------------------------------------------------------ You cannot run the awb code delivered with OASIS-CC from a remote workstation if you set the DISPLAY environmental variable using the full node name (such as setenv DISPLAY mirza.colorado.edu:0.0). You need to set DISPLAY using the internet address instead (such as setenv DISPLAY 128.138.137.20:0.). This problem concerns the SOLARIS verion only. 6.9 OASIS-CC not compiling procedures (crn 409, tbd) ----------------------------------------------------- When OASIS-CC compiles a procedure, it creates some temporary files in $OASIS_TMP. Those files are deleted (except for the files generated by the special clps) when OASIS-CC terminates via a CSTOL OFF. The files created by the special clps are not deleted. If OASIS is not terminated via a CSTOL OFF no files are deleted. This can cause problem if and when OASIS-CC (in the same environment) is run with different privileges as it may not have the permission to overwrite the files left by a previous session. 6.10 Size limitation for command log and command window (crn 508) ---------------------------------------------------------------- When a command with many subfields is used, the message generated when the command is built can be truncated (because of the limitation of the message size in the event message log). The same problem exists with the ASCII text displayed in the command window. 6.11 Incorrect time reported in message log (crn 512) ----------------------------------------------------- Due to a bug in the runtime delivered with the Ada compiler, the time reported in the event log of an OASIS-CC application started before midnight the Saturday before the last Sunday of April (!) is off by one hour after midnight (i.e, the time goes from 23:59:59 to 01:00:00). This problem affects all version of OASIS-CC. 6.12 res2rfg TAE utility may crash on *_.res resource files (crn 525) -------------------------------------------------------------------- The res2rfg utility crashes when it encounters a string larger than 132 characters. For example this can occur when using the Cstolq macro in awb. A workaround this problem is to use the '\' continuation character to end a line before it reaches a dangerous length. 6.13 Leak when displaying panel with DDOs (crn 529) --------------------------------------------------- There is a leak (which has been traced to Motif and to the Interview code used by TAE) when a panel with a DDO is displayed. This leak has been discovered in the Solaris version. It probably exists in all versions of OASIS-CC. 6.14 Use caution when using remote displays ------------------------------------------- Testing remote displays has shown that problems can occur in a heterogenious environment. For example we found problems when displaying panels with presentation types that have text input from the HP_UX version of OASIS-CC to an X11R4 server running the X MIT code or to a X11R5 server running the X Bluestone code or the X Sun code. Therefore users should carefully test their usage of remote displays before running in an operational environment. 6.15 OASIS-CC never told when crash occur on a remote X server (crn 529) ----------------------------------------------------------------------- Assume that OASIS-CC is displaying on a remote X server and that the workstation on which the remote X server runs crashes. OASIS-CC is made aware of the crash only after a period of time that may be rather long. OASIS-CC itself does not crash, but all X activities (input and output) are stopped until OASIS-CC is made aware of the crash. Same thing happens if the ethernet connection to the remote X server is severed. Note that this is a different situation from the X server being terminated on the remote workstation. 6.16 Remote Display issues in HP_UX version (crn 529) ----------------------------------------------------- Terminating an X server on which OASIS-CC is displaying can cause OASIS-CC to crash. 6.17 Exiting a loop with repeat count via a "GOTO" statement (crn 516) ------------------------------------------------------------------------ If a loop with repeat count is not exited via either the "end loop" or an "escape" statement, the loop counter is not re-initiliazed when loop is re-entered at the "loop" statement. 6.18 Duplicate subfield reference in command request not reported (crn 528) -------------------------------------------------------------------------- Assume the following statement: set telemetry with format 1, format 2 No errors or warnings are printed by Oasis to caution the user that the same subfield is referenced twice in the command request statement. Oasis uses the last value (2 in the example) for the subfield. 6.19 Problem running awb under hp_ux 10.20 (crn 610) ---------------------------------------------------- Some users have reported that when they are running awb under hp_ux 10.20 it does not respond to mouse click. The distribution contains a version of awb linked with archive library that seems to work. The executable is name awb_static. 7 Anomaly Or Enhancement Request Reporting -------------------------------------------- The mechanism previously used with the VMS version since 1988 to report OASIS-CC anomalies or to suggest enhancements to the OASIS-CC functionality has been extended to the SunOS version. The report generated using this mechanism can be sent to the OASIS project office by electronic mail (the preferred way) or by regular mail. Each report is assigned a Change Request Number (CRN) and is acknowledged to the originator. The CRN can be used to track progress on the report. To report an anomaly enter: $ODIST/bin/report.csh 8 Documentation Set Status ---------------------------- none. 9 Upgrades To The Spectrometer Application -------------------------------------------- none. Appendix A: oasis_data_server.h /* Copyright 1986, 1992 by the Regents of the University of Colorado */ /* History : */ /* Original: developed by aj per crn xxxx 2/96 */ /* Update : per crn 626 aj 3/97 */ /* Purpose : */ /* Define constants and structures for data distribution by OASIS */ #ifndef __OASIS_DATA_SERVER_H__ #define __OASIS_DATA_SERVER_H__ /* client request definition */ #define OASIS_ADD_GROUP 1 #define OASIS_REMOVE_GROUP 2 #define OASIS_DISCONNECT 3 #define OASIS_VERSION_0 0 /* crn 626 */ #define OASIS_ADD_GROUP_W_INITIAL_VALUE 4 #define OASIS_SEND_GROUP_CURRENT_VALUE 5 typedef struct client_request { int version; /* version number */ int request_type; /* client request */ char group_name[16]; /* requested data set name - 16 character */ } typedef struct server_data { /* for version 0 */ int hashkey; /* data tag */ int data; /* data value int or float */ } #endif /* __OASIS_DATA_SERVER_H__ */ Appendix B: MEASURED PERFORMANCES OASIS-CC thruput was measured under the following conditions: Computer : Ultra Sparc 1 , 196 Mbyte, running SOLARIS 2.5.1 OASIS-CC : - Release of v02.05.14(3). Compiled with run-time checks ON - Application set up to decompose 128 measurements per packet. Measurements are converted to engineering unit using the analog conversion table and are limit checked. - Protocol used is Ip - OASIS-CC verifies the sync pattern of each packet Simulator: - Packet size set to 128 bytes - Running on a remote workstation UltraSparc 1/140 measured measured # measurements # measurements # measur. measured packet bit decomposed changing xfered % of cpu rate rate per second per second per second 32/s 32kbps 4096 3968 0 12% 32/s 32kbps 4096 3968 3908 20% EOS TC LOAD SIMULATION This test is a simulation of the expected Test Conductor (TC) wokstation load during the EOS/am spacecraft I&T. TEST CONDITIONS --------------- Input ----- - 5 packetized streams - 2 16kb packets, one packet/sec each 32.0 kbp/sec (each stream has 64 different packet ids) - 5 1kb packets, one packet/sec each 5.0 kbp/sec - 1 ascii message stream at 3 messages/s (with burst of 50 messages/sec) 1.9 kbp/sec ---- 38.9 kbp/sec Processing ---------- - Number of measurements extracted 1,109/sec - Number of measurements changing (in telemetry) 113/sec - Number of equations firing 110/sec - Number of display 2 with 75 items each (refresh rate of 2 sec) - Number of measurements bridged or xfered 200/sec - Latest_Data and Limits tables 2/hour checkpointing frequency - Run directive frequency 2/hour - Switch recording file frequency 2/hour - Clear and display frequency of one of the 10/hour 75 items display - Snap frequency 10/hour - Trigger activation ~1/hour (burst of 5 commands) - Commanding rate 2 commands/sec - All events are logged - Event messages are displayed (including the messages from the ascii message stream) - Cstol procedure lines in user clp are displayed - Cstol procedure running in the user clp with $$step_interval = 0.25 - One measurement out-of-limit per second (with burst of 110 measurements going out-of-limit in the same packet for time to time) - Procedures running in 5 sub clps Sizing ------ Decomposition : 70,406 records Latest_Data : 5,226 records Equations : 600 records (600 equations coded in C) Limits : 600 records Analog_Conversions: 1,106 records Note that the test was run mainly from committed database tables. The set up procedure was "only" 1,200 lines long. Test environment ---------------- UltraSparc 1/140 with 196 Mbytes of memory, running Solaris 2.5.1 OASIS-CC release 14(3) and HP 712/80 with 64 Mbytes of memory, running HP_UX 9.05 OASIS-CC release 14(3) TEST RESULTS ------------ Cpu usage Ultra Sparc 1 (test duration: 22 hours) With no data bridged : 8.0% With data bridged to file : 10.4% With data xfered via the data server : 8.5% HP 712/80 (test duration: 16 hours) With no data bridged : 24% With data bridged fo file : 36% WIth data xfered via the data server : not measured