These notes contain information about different releases of the Tool Kit. While the notes may contain information about prior releases, the most recent information is listed first. STANDARD FORMATTED DATA UNIT SOFTWARE TOOL KIT VERSION 1.2 RELEASE NOTES November 3, 1993 These release notes are reflected in JPL Document D-9594, SFDU Software Tool Kit User's Guide Version 1.2, and JPL Document D-10375, SFDU Software Tool Kit Programmer's Guide Version 1.2, which are available in the docs subdirectory on-line. These notes are intended to serve as quick summary of changes made to the 1.2 delivery of the Standard Formatted Data Unit Software Tool Kit. 1 NEW APPLICATION PROGRAMS Three new application programs have been added to the Tool Kit. The new applications are COMPSFDU, EXTRACT, and MACROGEN. These applications are discussed in the following sections. 1.1 COMPSFDU COMPSFDU is a command line driven application program that parses a Standard Formatted Data Unit (SFDU) file in order to determine its structure. The structure is then compared to a different structure that is obtained either from another SFDU file or from a Map Language file. 1.2 EXTRACT EXTRACT is a command line driven application program that extracts (one or several) object(s) of specified class(es) and, optionally, of specified ADID(s) from a Standard Formatted Data Unit (SFDU) file (or set of files). The data extracted from the SFDU(s) are, by default, written to standard output (stdout). The data can, optionally, be directed to one (or several) output file(s). 1.3 MACROGEN MACROGEN is a command line driven application program that is used to create Map Language file macros. The program reads a Map Language file and interactively prompts the user which values should be parameterized. 2 FILE STRUCTURE CHANGES In earlier versions of the SFDU Tool Kit opened files were added to a (global) File Table. This has been changed in the current version. Opened files are now pushed onto a file information stack that is part of the SFDU (or LVO) data structure. 3 CHANGES TO HEADER (.H) FILES The header (.h) files have been modified in two ways. First, they now include separate function prototypes for both DOS and SUN/UNIX systems. Second, the functions are now grouped into main and support functions (the exceptions from this rule are sfduftbl.h that consists of only support functions; utilmsg.h, uwrapopt.h, and wrapopt.h that have no main/support functions specified; mapltool.h that contains a more complex division; and lvo.h that contains the global constants, data structures, etc.). These changes are also reflected in the corresponding source code (.c) files, and likewise, changes to the source code files (e.g., added or removed functions) are reflected in the header files. A number of changes has been made to the lvo.h file. Some constants have been added, deleted, or modified (e.g., duplicate definitions of the constants CR and LF have been removed, definitions of the constants MESSAGE, ON, OFF, and INQUIRE have been added, and the value of the VALUE_BUFSIZ constant has been increased and also has been given different values for DOS and SUN/UNIX systems). Furthermore, changes have been made to some structure definitions in accordance with the change from the File Table to the file information stack. 4 CHANGES AND ADDITIONS TO SOURCE CODE (.C) FILES Besides the changes mentioned in previous sections a number of other changes and additions to specific source code files are discussed below. 4.1 CHANGES TO BLDSFDU.C In the function bld_parse_n_lvos the 'Parsed' and 'Parsing' messages have been modified to include Class Id. information. In the function bld_parse_next_lvo the name of the parameter status in the call of the function bld_set_up_PVL_tree has been changed to parse_status in order to avoid conflict with the parameter status in the calls of the functions bld_get_next_label and bld_complete_lvo_value. (The parameter status (being declared as an integer pointer) is also passed back from bld_parse_next_lvo to the calling function.) The two functions bld_set_up_ascii_length_value and bld_set_up_binary_length_value have been combined into one function, bld_set_up_length_value. 4.2 CHANGES TO CREATDAT.C In the function create_unwrapped_files the call of create_set_up_base_file_name has been removed. The call is now located in the UNWRAP application. In the function create_set_up_base_file_name a while loop that was used to calculate the number of digits in the number contained in the parameter digits has been replaced with a call to the (math library) function log10. 4.3 CHANGES TO CREATLVO.C In the function create_modify_label_delimitation the code segments for the ASCII_LENGTH and BINARY_LENGTH cases have been combined and, likewise, the code segments for the NUM_EOFS, CONTIG_EOFS, and SHARED_EOFS cases have also been combined. 4.4 CHANGES TO CREATMAP.C The function create_map_file that creates a Map Language file has been added. 4.5 CHANGES TO LBLTOOLS.C The name of the constant for I class data has been changed from SIMPLE_DATA to APPLICATION_DATA. In the function lbl_validate_caid support has been added for alternate CAID table (assuming an alternate CAID table has been loaded at run time). 4.6 ADDITION OF LVOCMPRE.C This file contains support functions for the new application COMPSFDU. The following functions are included in this file: compare_lvos that checks if two LVOs have the same structure, compare_lvo_class that checks if two LVOs are of the same class, compare_lvo_delimitation that checks if two LVOs are delimited by the same delimitation technique, and compare_lvo_adid that checks if two LVOs have the same ADID. 4.7 CHANGES TO MAPLTOOL.C In the function mapl_create_sfdu_from_map the name of the parameter cmnd_line_stmts has been changed to external_stmts. A call of the function parse_sfdu_label (that loads the label structure for created labels) has been added. The addition of this function call has also been made to the functions mapl_stmt_to_include_data and mapl_pad_lvo_data. 4.8 CHANGES TO SFDUFTBL.C In the function ftbl_reached_sfdu_eof calls to the (library) functions fgetc and ungetc have been added in order to perform a true EOF check. Two new functions have been added: ftbl_open_scratch_file that opens a scratch file and ftbl_delete_scratch_file that closes and deletes the scratch file. 4.9 CHANGES TO SFDUOPS.C The names of the functions included in this file have been prefixed with "ops_". In the function ops_adjust_labels the code segments for the ASCII_LENGTH and BINARY_LENGTH cases have been combined. Some minor bugs have been fixed in several functions. Two new functions have been added: ops_adjust_parse_levels that computes and stores the correct parse level for each LVO contained in an SFDU file and ops_get_sfdu_structure_from_file that parses either an SFDU or a Map Language file and returns the corresponding SFDU structure tree. 4.10 CHANGES TO SFDUTOOL.C The function lvo_totals_report has been moved from the files unwrap.c and wrap.c to this file and the name of this function has been changed to sfd_display_lvo_summary_report. The format of the output generated by this function has also been changed (cf. the file utility.c). Some minor bugs have been fixed in a couple of functions. 4.11 CHANGES TO UNWRAP.C The logical parameters JPLS_std, CCSD_std, and print_warnings (related to the options -k and -w, respectively) are now set to TRUE or FALSE directly in the case loop where the command line options are parsed, instead of setting additional ("help") flags in the case loop and setting the "real" flags after the loop, as was previously done. The option -f has been added. This option is used to direct output messages to a file instead of to standard output (stdout). The option -p has been removed. This option was used to generate a report of label value objects totals. This report is now generated as a (non-optional) default. The function that generates the report has been moved to the file sfdutool.c and its name has been changed from lvo_totals_report to sfd_display_lvo_summary_report. 4.12 CHANGES TO UTILITY.C The function util_print_tree has been deleted. Its functionality has been incorporated (with a somewhat different format) into the function sfd_display_lvo_summary_report (cf. the file sfdutool.c). In the function util_long_to_ascii a parameter has been added to the function call that specifies the length of the output (ASCII) character string. In the function util_long_to_charstr the function util_power has been replaced by a call of the (math library) function pow. 4.13 CHANGES TO UTILMSG.C In the functions util_print_message and util_print_error a change has been made in that the messages are now sent to standard output (stdout) by default. The two types of messages can optionally be directed to a file. N.B. The new application EXTRACT has its messages directed to standard error (stderr) by default. In the function util_print_message a test has been added that checks whether or not output messages are toggled on (and the messages are only written if the toggle is on). Four new functions have been added: util_toggle_messages that toggles output messages on or off, util_inquire_toggle that returns the toggle status for either output or warning messages, util_open_message_file that opens a file that output and error messages are directed to, and util_close_message_file that closes the message file. The function util_toggle_warnings has been modified so that the code matches the code for util_toggle_messages. 4.14 CHANGES TO UWRAPOPT.C In the function opt_apply_unwrap_options code has been added to support alternate CAID table (cf. the function lbl_validate_caid in the file lbltools.c). 4.15 CHANGES TO VALTOOLS.C The name of the constant for I class data has been changed from SIMPLE_DATA to APPLICATION_DATA. In the function val_check_file_name_length the previously hard coded sub-directory separator ('/') has been changed to a character parameter, that is assigned the value '/' for SUN/UNIX systems and the value '\' for DOS systems. 4.16 CHANGES TO WRAP.C The logical parameters JPLS_std and print_warnings (related to the options -j and -w, respectively) are now set to TRUE or FALSE directly in the case loop where the command line options are parsed, instead of setting additional ("help") flags in the case loop and setting the "real" flags after the loop, as was previously done. The option -f has been added. This option is used to direct output messages to a file instead of to standard output (stdout). The option -t has been removed. This option was used to generate a report of label value objects totals. This report is now generated as a (non-optional) default. The function that generates the report has been moved to the file sfdutool.c and its name has been changed from lvo_totals_report to sfd_display_lvo_summary_report. In the case where no output file (for the wrapped SFDU file) has been specified (i.e., no -o option has been included in the command line) code has been added to write an informational status message and terminate execution. N.B. This is not necessary considered an error, which is why the issued message is an informational message and not an error message. 4.17 CHANGES TO WRAPOPT.C In the function opt_apply_wrap_options code has been added to support alternate CAID table (cf. the function lbl_validate_caid in the file lbltools.c). 5 REMAINING (KNOWN) BUGS When regenerating (rewrapping) an SFDU file that has previously been parsed, Replacement Class (R) objects get included in the file (instead of being referenced). When using both the -b and the -m options in UNWRAP the file names in the created Map file are wrong. Instead of indicating the file names as specified by the -b (base file name) option, the default file names (based on the input SFDU file) are given. This bug only occurs in the Map file. The actual created files get the names as specified by the -b option. 6 DOCUMENTATION The two documents SFDU Software Tool Kit User's Guide and SFDU Software Tool Kit Programmer's Guide have been modified to reflect the changes to version 1.2 of the SFDU Software Tool Kit. STANDARD FORMATTED DATA UNIT SOFTWARE TOOL KIT VERSION 1.1 RELEASE NOTES November 30, 1992 These release notes are reflected in JPL Document D-9594, SFDU Software Tool Kit User's Guide Version 1.1, which is available in the docs subdirectory on-line. These notes are intended to serve as quick summary of changes made to the 1.1 delivery of the Standard Formatted Data Unit Software Tool Kit. 1 MAP LANGUAGE CHANGES Two MAP Language statements have been added to support LVO value modification. The PRE_DATA_DELIMITER statement will add characters (space, carriage returns, linefeeds, and semicolons) between the label and the value. The PAD_NEXT_LVO_VALUE will pad an lvo value field with a user specified character so the next value will begin on a record boundary that is multiple of a record length specified by the user. 2 OPTION FILE An options file has been added to the wrap and unwrap applications. The user can specify certain options in these files to control the behavior of these applications. These options include: Valid Control Authority IDs Unwrap file extensions Valid LVO names to be used in MAP files 3 DOCUMENTATION The documentation has been divided into two documents: SFDU Software Tool Kit User's Guide and the SFDU Software Tool Kit Programmer's Guide. The User Guide contains information on using the Tool Kit applications (wrap, unwrap, etc), while the Programmer guide provides information on the library functions available for writing applications. STANDARD FORMATTED DATA UNIT SOFTWARE TOOL KIT VERSION 1.0 RELEASE NOTES August 4, 1992 These release notes are intended to be used with JPL Document D-9594, SFDU Software Tool Kit User's Guide Version 1.0 dated March 23, 1992. These notes document the changes made to the Phase I delivery of the Standard Formatted Data Unit Software Tool Kit. The software changes that are referenced herein are a result of the changes agreed to at the CCSDS Panel 2 Meetings held in Munich during May 1992. These changes are reflected in the RECOMMENDATION FOR SPACE DATA SYSTEM STANDARDS, STANDARD FORMATTED DATA UNIT -- STRUCTURE AND CONSTRUCTION RULES BLUE BOOK. These notes do not reflect all changes made to the Tool Kit software as a result of the meeting, but they address items in the User Guide which could create confusion for the user. These release notes will become part of the documentation in the next release of the Tool Kit. 1 PVL PARSER CHANGES Changes have been made to the Parameter Value Language (PVL) parser to match the changes to the specification contained in the PARAMETER VALUE LANGUAGE SPECIFICATION BLUE BOOK. These changes effect both the PVL Verifier application and the PVL Libraries. Throughout these notes any changes that refer to the Parser should be interpreted to mean both the PVL Parser and the PVL Libraries. The most notable of these changes include: 1.1 AGGREGATION SYNTAX The default aggregation statements that were recognized by the PVL Parser included BEGIN_OBJECT and END_OBJECT and BEGIN_GROUP and END_GROUP. The set of recognized aggregation statements have been expanded to include: OBJECT = name GROUP = name Previously aggregations were terminated with 'END_OBJECT = name' or 'END_GROUP = name' statements. The object or group name is now optional when ending aggregations. The parser will assume the last aggregation is the opened is the one to close. EXAMPLE: OBJECT = KEY_DATA . . END_OBJECT [ = KEY_DATA] NOTE: The information contained in the brackets is optional. 1.2 DATE and TIME The PVL Parser has been modified to handle the addition of the Date and Time value types. The syntax for the Date and Time values of keywords can be found in the Blue Book. Some examples are shown below: EXAMPLES: 1992-08-04T15:03:12.01Z 1992-217T15:03 1992-08-04 15:03 1.3 END STATEMENT The END statement is now recognized by the PVL Parser. The Parser will stop when it encounters the 'END'. Any statements following the 'END' statement will not be parsed. 1.4 ERROR REPORTING The error reporting of the PVL Parser has been improved to display the last successfully parsed PVL statement and its numerical position from the initial PVL statement. 2 SFDU PARSER/GENERATOR CHANGES Changes have been made to the SFDU Libraries to match the changes to the specification contained in the SFDU STRUCTURE AND CONSTRUCTION RULES BLUE BOOK. These changes effect both the WRAP and UNWRAP program as well as the SFDU Library. Throughout these notes, any changes that refer to the SFDU Library should be interpreted to mean the changes effect the WRAP and UNWRAP applications as well as the SFDU Library. The most notable of these changes include: 2.1 REPLACEMENT (R CLASS) LVOs The specification of Replacement Class LVOs now makes use of referencing environments (CCSDS1 and CCSDS2) rather than operating system environments (DOS, UNIX, etc). Information on the referencing environments is contained as an Annex in the SFDU STRUCTURE AND CONSTRUCTION RULES BLUE BOOK. 2.1.1 MAP LANGUAGE CHANGES Most notably the change effects the Map Language REPLACEMENT CLASS statement 'REFERENCETYPE = name'. The value of name must be either CCSDS1 or CCSDS2. This instructs the SFDU Library how to interpret the file name contained in the REFERENCE statements contained in the same aggregation block. (See Section 4.4 'REPLACEMENT CLASS SIMPLE STATEMENTS') 2.1.2 WRAP CHANGES When the WRAP application generates a REPLACEMENT (R Class) LVO from the 'REFERENCE_DATA_FILE' Map Language statement, the R Class LVO will contain either the CCSDS1 or CCSDS2 referencing environment based on the file names listed in the REFERENCE statements. (See Section 5.4 'Adding the Data') The WRAP application will place the exact contents of the SERVICE DATA aggregation when using to create a REPLACEMENT Class LVO. It is the responsibility of the user to properly use the CCSDS1 and CCSDS2 referencing environments. (See Section 5.6 'Entering Service Class Data') 2.1.3 UNWRAP CHANGES The UNWRAP application will resolve the new CCSDS referencing environments in addition to the older operating system environments. WARNING messages will be given if the older environments are specified in the REFERENCETYPE statement. Support for the older environments will be removed in the future.