OASIS-CC VERSION V02.05.14(4) RELEASE NOTES 12/16/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(4) 4 Major New Features Or Code fixes 4.1 Addition to the oasis toolbox (crn 657) 4.2 Increase in the maximum statement length (crn 646) 4.3 Additional units, change to "!Mnemonic not in Latest Data" msg (crn 659) 4.4 Sign extension when measurement'size =/ 8 or 16 bits (crn 636) 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) 6.20 Problem when linking with LibOasisUser.a created for a different architecture (crn 650) 7 Anomaly Or Enhancement Request Reporting 8 Documentation Set Status 9 Upgrades To The Spectrometer Application 10 Goodies Appendix A: oasis_tools.h Appendix B: OASIS TOOLBOX DESCRIPTION Appendix C: MEASURED PERFORMANCES OASIS-CC VERSION V02.05.14(4) RELEASE NOTES 12/16/97 These release notes describe version V02.05.14(4) of OASIS-CC. A copy of these notes can be found in $ODIST/release_notes/oasis_v2.0514_4. 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 exists in a form compatible with the UltraSparc architecture. This version of OASIS-CC also exists in a form non-compatible with the UltraSparc version as its runtime is more efficient. The runtime of the UltraSparc-compatible version does not supply the priority inheritance scheduling algorithm. 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(4) ---------------------------------------- Applications running under OASIS-CC V02.05.14(1.x) or OASIS-CC V02.05.14(2) are not compatible with V02.05.14(4) and need to be upgraded. Applications running under 14(3) are compatible with 14(4), except for a small parser update. 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. Upgrading from v020514(3) ------------------------- The parser table has been modified (see crn 638). Therefore the new parser.dat and parser_int.dat files should be copied: cp $ODIST/common_distrib/utilities/parser_int.dat $OASIS_PARSER/. cp $ODIST/common_distrib/utilities/parser.dat $OASIS_PARSER/. 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 oasis toolbox (crn 657) --------------------------------------- This release adds to the oasis toolbox introduced in 14(0) by providing access to global variables of the DATA_CLASS = CHARACTER_STRING. See appendix A and appendix B for details. 4.2 Increase in the maximum statement length (crn 646) ----------------------------------------------------- The maximum CSTOL statement length was 800 characters. It is now 1200 characters. 4.3 Additional units, change to "!Mnemonic not in Latest Data" msg (crn 659) --------------------------------------------------------------------------- Two new units have been added to the unit list: amn (for arc minute) and ces (for centisecond). The message "!Mnemonic not found" now gives the hashkey of the mnemonic. 4.4 Sign extension when measurement'size =/ 8 or 16 bits (crn 636) ------------------------------------------------------------------ In previous releases when a signed measurement was decomposed it was assumed that its size was either 8 bits, 16 bits or 32 bits. Only in those case was the sign bit extended when the measurement was coerced into a 32-bit integer. Now the sign is extended regardless of the measurement'size. 5 Change Requests Closed With This Release -------------------------------------------- crn # Title Comment 636 Sign extension when measurement'size =/ 8 or 16 bits see 4.4 637 Segmentation fault with user-provided alert window 638 Syntax error with wait cond or for delta_time 640 Core dump when Wpt_ViewUpdate of graph item 644 CEV "wait for last" fails if cmd verifies immediatly 646 Increase in the maximum statement length see 4.2 647 System Error while sending raw ASCII command 650 Linking with LibOasisUser.a for different architecture see 6.20 655 Fix in rdv between data_handling and issue_command 656 UNABLE_TO_ISSUE message, then command subsystem dead 657 Addition to the oasis toolbox see 4.1 658 Ball version only: Problem when no sampling for 1 hr 659 Additional units, "!Mnemonic not in Latest Data" see 4.3 660 System error while executing "show active procedures" Note that 646 and 647 were distributed in 14(3a) 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. 6.20 Problem when linking with LibOasisUser.a created for a different architecture (crn 650) --------------------------------------------------------------------- Great care should be taken when linking OASIS with a LibOasisUser.a library created under a different architecture (for example PA 1.2 vs PA 1.x) as the code in LibOasisUser.a may not run correctly. Under HP_UX 10.20 the linker may output the following error message indicating the potential problem: /bin/ld: (Warning) At least one PA 2.0 object file (/users/whoever/rct_oasis/user_code/libOasisUser.a(TiniCmdOasis.o)) was detected. The linked output may not run on a PA 1.x system. The solution is to force the C compiler to create portable object files (using the flag -DAportable). If you use the equation_Imakefile.csh script to maintain your makefile you may need to edit the Makefile file created by the script. 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. 10 Goodies ----------- The $ODIST/common_distrib/user_provided directory contains user-provided OASIS-CC tools. If you have tools that you have developed for your OASIS-CC application that you feel can be of some use to the user community we will be glad to distribute them here. As a starter the snoe_db_macro directory contains some of the macros developed by SNOE students to populate and maintain the SNOE application database. Of course we need to put a disclaimer: this is provided "as is" without warranty of any kind. Appendix A: oasis_tools.h /* Copyright 1986,1992 by the Regents of the University of Colorado */ /* updated per crn 657 aj 11/97 */ #ifndef __OASIS_TOOLS_H__ #define __OASIS_TOOLS_H__ #ifndef __OASIS_EQUATION_H__ #include #endif #ifndef _NO_PROTO void Oasis_CSetDnHash(oasis_int value, oasis_int hash); void Oasis_CSetDn(oasis_int value, char *e_name, char *i_name); int Oasis_CGetDnHash(oasis_int *value, oasis_int hash); int Oasis_CGetDn(oasis_int *value, char *e_name, char *i_name); void Oasis_CSetStringToolHash(char *char_string, oasis_int hash); void Oasis_CSetStringTool(char *char_string, char *e_name, char *i_name); int Oasis_CGetStringToolHash(char *char_string, oasis_int hash); int Oasis_CGetStringTool(char *char_string, char *e_name, char *i_name); #else void Oasis_CSetDnHash(); void Oasis_CSetDn(); int Oasis_CGetDnHash(); int Oasis_CGetDn(); void Oasis_CSetStringToolHash(); void Oasis_CSetStringTool(); int Oasis_CGetStringToolHash(); int Oasis_CGetStringTool(); #endif /* _NO_PROTO */ #endif /* __OASIS_TOOLS_H__ */ Appendix B: OASIS TOOLBOX DESCRIPTION The oasis toolbox defines C callable routines that can be used in the user code. It parallels the tools provided in the equation toolbox. However the tools defined in the equation toolbox should excluvely be used to process equations, with the exception of the following routines and utility that can be used outside the processing of equations: Oasis_CReportEvent (Report_Event for the Ada version) and compute_hashkey. The equation toolbox is described in the release notes for v02.05.10 (Appendix B) and v02.05.11 (Appendix C). The toolbox currently includes four routines Routine name Purpose Set the Dn value of a measurement knowing its Oasis_CSetDnHash hash key Set the Dn value of a measurement knowing its Oasis_CSetDn external element and item name Get the Dn value of a measuremenrt knowing its Oasis_CGetDnHash hash key Get the Dn value of a measurement knowing its Oasis_CGetDn external element and item name Oasis_CGetStringToolHash Get the character string knowing the hash key Oasis_CGetStringTool Get the character string knowing the external_element and the item_name Oasis_CSetStringToolHash Set a charater string knowing the hash key Oasis_CSetStringTool Set a character string knowing the external_element and the item_name NAME Oasis_CSetDnHash SYNOPSIS # include # include void Oasis_CSetDnHash(value, hash); oasis_int value; oasis_int hash; DESCRIPTION This routine sets the DN_LOW field of the latest_data record whose key is "hash" (see compute_hashkey in the equation toolbox) to the value "value" NAME Oasis_CSetDn SYNOPSIS # include # include void Oasis_CSetDn(value, e_name, i_name); oasis_int value; char *e_name; char *i_name; DESCRIPTION This routine sets the DN_LOW field of the latest_data record whose external element name is "e_name" and item name is "i_name" to the value "value" NAME Oasis_CGetDnHash SYNOPSIS # include # include int Oasis_CGetDnHash(value, hash); oasis_int *value; oasis_int hash; DESCRIPTION This routine gets the DN_LOW field of the latest_data record whose key is "hash" (see compute_hashkey in the equation toolbox) and returns it in "value". The function returns 1 if the value exists and its quality field is set to GOOD. It returns 0 otherwise. NAME Oasis_CGetDn SYNOPSIS # include # include int Oasis_CGetDn(value, e_name, i_name); oasis_int *value; char *e_name; char *i_name; DESCRIPTION This routine gets the DN_LOW field of latest_data record whose external element is "e_name" and item name is "i_name" and returns it in "value". The function returns 1 if the value exists and its quality field is GOOD. It returns 0 otherwise. NAME Oasis_CSetStringTool SYNOPSIS # include # include void Oasis_CSetStringTool(char_string, e_name, i_name); char *char_string; char *e_name; char *i_name; DESCRIPTION This routine sets the CHAR_STRING field of the latest_data record whose external element name is "e_name" and item name is "i_name" to the value "value" NAME Oasis_CSetStringToolHash SYNOPSIS # include # include void Oasis_CSetStringToolHash(value, hash); char *char_string; oasis_int hash; DESCRIPTION This routine sets the CHAR_STRING field of the latest_data record whose key is "hash" (see compute_hashkey in the equation toolbox) to the value "value" NAME Oasis_CGetStringToolHash SYNOPSIS # include # include int Oasis_CGetStringToolHash(char_string, hash); char *char_string; oasis_int hash; DESCRIPTION This routine gets the CHAR_STIRNG field of the latest_data record whose key is "hash" (see compute_hashkey in the equation toolbox) and returns it in "value". The function returns 1 if the value exists and its quality field is set to GOOD. It returns 0 otherwise. NAME Oasis_CGetStringTool SYNOPSIS # include # include int Oasis_CGetStringTool(char_string, e_name, i_name); char *char_string; char *e_name; char *i_name; DESCRIPTION This routine gets the CHAR_STRING field of the latest_data record whose external element is "e_name" and item name is "i_name" and returns it in "value". The function returns 1 if the value exists and its quality field is GOOD. It returns 0 otherwise. Appendix C: MEASURED PERFORMANCES OASIS-CC thruput was measured under the following conditions: Computer : Ultra Sparc 1/140 , 196 Mbyte, running SOLARIS 2.5.1 OASIS-CC : - Release of v02.05.14(4). 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 19% 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: 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(4) and HP 712/80 with 64 Mbytes of memory, running HP_UX 9.05 OASIS-CC release 14(4) TEST RESULTS ------------ Cpu usage Ultra Sparc 1 (test duration: 24 hours) With no data bridged : 8.75% With data bridged to file : 11.50% With data xfered via the data server : 9.00% HP 712/80 (test duration: 24 hours) With no data bridged : 24.90% With data bridged fo file : 35.00% WIth data xfered via the data server : 26.80%