CCDD Users Guide

User Manual: Pdf

Open the PDF directly: View PDF PDF.
Page Count: 254

DownloadCCDD Users Guide
Open PDF In BrowserView PDF
JSC-37494

Core Flight System
Command and Data Dictionary Utility
User’s Guide
Engineering Directorate
Software, Robotics, and Simulation Division

Version 1.1.50
January 2018

National Aeronautics and Space Administration
Lyndon B. Johnson Space Center
Houston, Texas 77058-3696

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 2 of 254

Contents
1.0
Description ........................................................................................................................................ 5
2.0
Requirements .................................................................................................................................... 6
3.0
Installation ........................................................................................................................................ 6
4.0
Operation .......................................................................................................................................... 7
4.1
Getting Started.............................................................................................................................. 7
4.2
Mouse and Keyboard Navigation................................................................................................ 13
4.3
PostgreSQL Setup ........................................................................................................................ 15
4.4
Event Log ..................................................................................................................................... 15
4.5
Data Tables.................................................................................................................................. 16
4.5.1
Table types .......................................................................................................................... 16
4.5.2
Table groups........................................................................................................................ 20
4.5.3
Table tree ............................................................................................................................ 21
4.5.4
Data types ........................................................................................................................... 23
4.5.5
Bit fields............................................................................................................................... 24
4.5.6
Enumerations ...................................................................................................................... 25
4.5.7
Macros ................................................................................................................................ 25
4.6
Data Fields ................................................................................................................................... 26
4.6.1
Data field editor .................................................................................................................. 27
4.7
Input Types.................................................................................................................................. 29
4.8
Data Streams ............................................................................................................................... 32
4.9
Command Menu ......................................................................................................................... 32
4.9.1
File menu............................................................................................................................. 32
4.9.2
Project menu ....................................................................................................................... 49
4.9.3
Data menu........................................................................................................................... 58
4.9.4
Scheduling ......................................................................................................................... 101
4.9.5
Script menu ....................................................................................................................... 113
4.9.6
Help menu ......................................................................................................................... 122
4.10 Scripts ........................................................................................................................................ 123
4.10.1 JavaScript .......................................................................................................................... 124
4.10.2 Python ............................................................................................................................... 125
4.10.3 Ruby .................................................................................................................................. 125
4.10.4 Groovy ............................................................................................................................... 126
4.10.5 Scala .................................................................................................................................. 126
4.10.6 Command line execution .................................................................................................. 127
4.10.7 Data access methods ........................................................................................................ 128
Appendix A. Acronyms .......................................................................................................................... 177
Appendix B. Definitions ......................................................................................................................... 178
Appendix C. Import and Export Format ................................................................................................ 180
Appendix C.1. CSV ............................................................................................................................ 182
Appendix C.2. EDS XML .................................................................................................................... 186
Appendix C.3. JSON .......................................................................................................................... 191
Appendix C.4. XTCE XML .................................................................................................................. 197
Appendix D. Error & Warning Messages ............................................................................................... 204
Appendix E. Program Notes .................................................................................................................. 229
Appendix E.1. Key reference ............................................................................................................ 229
Appendix E.2. Program preferences ................................................................................................ 230
Appendix E.3. CCDD class files ......................................................................................................... 235
Appendix E.4. PostgreSQL tables ..................................................................................................... 241
2

Johnson Space Center
Engineering Directorate

Appendix E.5.
Appendix E.6.

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 3 of 254

PostgreSQL Functions ............................................................................................... 248
Known Issues ............................................................................................................. 253

Figures
Figure 1.
Figure 2.
Figure 3.
Figure 4.
Figure 5.
Figure 6.
Figure 7.
Figure 8.
Figure 9.
Figure 10.
Figure 11.
Figure 12.
Figure 13.
Figure 14.
Figure 15.
Figure 16.
Figure 17.
Figure 18.
Figure 19.
Figure 20.
Figure 21.
Figure 22.
Figure 23.
Figure 24.
Figure 25.
Figure 26.
Figure 27.
Figure 28.
Figure 29.
Figure 30.
Figure 31.
Figure 32.
Figure 33.
Figure 34.
Figure 35.
Figure 36.
Figure 37.
Figure 38.
Figure 39.
Figure 40.
Figure 41.
Figure 42.
Figure 43.
Figure 44.
Figure 45.

CCDD inputs and outputs .......................................................................................................... 5
CCDD main window................................................................................................................. 13
Example array display ............................................................................................................. 18
Example dialog ........................................................................................................................ 19
Table tree ................................................................................................................................ 21
Table tree expansion ............................................................................................................... 21
Data field editor ...................................................................................................................... 27
Select User dialog (no server connection) .............................................................................. 33
Select User dialog (server connected) .................................................................................... 33
Database server dialog........................................................................................................ 33
Search event log dialog ....................................................................................................... 35
Web Server dialog ............................................................................................................... 44
Preferences dialog; look and feel preferences ................................................................... 44
Example look and feel differences ...................................................................................... 45
Font preferences ................................................................................................................. 45
Font selection dialog ........................................................................................................... 46
Color preferences................................................................................................................ 46
Color selection dialog .......................................................................................................... 47
Size preferences .................................................................................................................. 47
Spacing preferences ............................................................................................................ 48
Path preferences ................................................................................................................. 49
Select Project dialog ............................................................................................................ 50
Create Project dialog ........................................................................................................... 51
Rename Project dialog ........................................................................................................ 52
Copy Project dialog ............................................................................................................. 53
Delete Project dialog ........................................................................................................... 54
Backup Project dialog.......................................................................................................... 54
Unlock Project(s) dialog ...................................................................................................... 56
Verification and termination dialog .................................................................................... 57
Example Perform Corrections dialog .................................................................................. 58
New Table dialog................................................................................................................. 58
Edit Table dialog .................................................................................................................. 59
Example table editor ........................................................................................................... 60
Import data and fields into an existing table dialog ........................................................... 62
Example of macro name display and pop-up dialog in a data table ................................... 64
Special indicator flag example ............................................................................................ 65
Rename Table dialog ........................................................................................................... 68
Copy Table dialog ................................................................................................................ 69
Delete Table dialog ............................................................................................................. 70
Import table(s) dialog.......................................................................................................... 70
CSV export dialog ................................................................................................................ 73
EDS export dialog ................................................................................................................ 74
JSON export dialog .............................................................................................................. 75
XTCE export dialog .............................................................................................................. 76
Manage Groups dialog ........................................................................................................ 77
3

Johnson Space Center
Engineering Directorate

Figure 46.
Figure 47.
Figure 48.
Figure 49.
Figure 50.
Figure 51.
Figure 52.
Figure 53.
Figure 54.
Figure 55.
Figure 56.
Figure 57.
Figure 58.
Figure 59.
Figure 60.
Figure 61.
Figure 62.
Figure 63.
Figure 64.
Figure 65.
Figure 66.
Figure 67.
Figure 68.
Figure 69.
Figure 70.
Figure 71.
Figure 72.
Figure 73.
Figure 74.
Figure 75.
Figure 76.
Figure 77.
Figure 78.
Figure 79.
Figure 80.
Figure 81.
Figure 82.
Figure 83.
Figure 84.

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 4 of 254

New Group dialog ............................................................................................................... 78
Table type editor ................................................................................................................. 80
New table type dialog ......................................................................................................... 82
Data Type Editor dialog ....................................................................................................... 86
Example pointer to a structure data type ........................................................................... 87
Structure name pop-up ....................................................................................................... 87
Macro Editor dialog............................................................................................................. 89
Example of macro name selection pop-up dialog in a macro value cell............................. 90
Assign Message IDs dialog .................................................................................................. 91
Reserved Message ID Editor dialog..................................................................................... 92
Example Show all IDS dialog ............................................................................................... 93
Example Duplicate Message IDs dialog ............................................................................... 94
Project data field management dialog ................................................................................ 94
Example Select Data Field(s) dialog .................................................................................... 96
Example Show/Edit Data Fields dialog ................................................................................ 97
Byte alignment selection dialog .......................................................................................... 98
Structure table showing highlighted padding variables ..................................................... 98
Example variable paths & names dialog ........................................................................... 100
Search tables dialog .......................................................................................................... 101
Manage Links dialog .......................................................................................................... 102
New Link dialog ................................................................................................................. 103
Copy Link(s) dialog ............................................................................................................ 104
Example link copy failure dialog........................................................................................ 105
Telemetry Scheduler dialog .............................................................................................. 106
Assign telemetry message names and IDs dialog ............................................................. 107
Application Scheduler dialog ............................................................................................ 110
Rate Parameters dialog ..................................................................................................... 112
Application Parameters dialog .......................................................................................... 113
Manage Script Associations dialog.................................................................................... 115
Execute Script(s) dialog ..................................................................................................... 118
Halt script execution dialog .............................................................................................. 118
Script selection dialog ....................................................................................................... 119
Retrieve Script(s) dialog .................................................................................................... 120
Delete Script(s) dialog ....................................................................................................... 121
Script search dialog ........................................................................................................... 122
About dialog ...................................................................................................................... 123
Table for import/export format examples ........................................................................ 180
Table type definition for import/export example............................................................. 181
Data type and macro definitions for import/export example .......................................... 182

Tables
Table 1.
Table 2.
Table 3.
Table 4.
Table 5.
Table 6.
Table 7.

Command line arguments ....................................................................................................... 11
Structure column names and input data types....................................................................... 17
Command column names and input data types ..................................................................... 20
Variable tree icons .................................................................................................................. 23
Default primitive data types ................................................................................................... 24
Web data access commands ................................................................................................... 43
Script Data Access Methods.................................................................................................. 176
4

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 5 of 254

1.0 Description
The Core Flight System (CFS) Command and Data Dictionary (CDD) utility, or CCDD, is a software tool for
managing the command and telemetry data for CFS and CFS applications. CCDD is written in Java™ and
interacts with a PostgreSQL database, so it can be used on any operating system that supports the Java
Runtime Environment (JRE) and PostgreSQL. CCDD is released as open source software under the NASA
Open Source Software Agreement, version 1.3, and is hosted on GitHub.
The CCDD application uses tables, similar to a spreadsheet, to display and allow manipulation of
telemetry data structures, command information, and other data pertinent to a CFS project. The data is
stored in a PostgreSQL database for manipulation and data security. The PostgreSQL database server
can be run locally or centralized on a remote host for easier access by multiple users. Data can be
imported into or exported from the application from files in comma-separated values (CSV), JavaScript
Object Notation (JSON), electronic data sheet (EDS), and extensible markup language (XML) telemetric
and command exchange (XTCE) formats. The CCDD tables also allow simple cut and paste operations
from the host operating system’s clipboard. To make use of the project’s data, CCDD can interact with
Java Virtual Machine (JVM)-based scripting languages via a set of supplied data access methods. Using
scripts, the user can translate the data stored in the CCDD’s database into output files. Example scripts
for creating common CFS related output files are provided in four of these scripting languages. An
embedded web server can be activated, allowing web-based application access to the data. Figure 1
shows the basic relation between CCDD and external sources.
JSR-223 Scripts
JavaScript,
Python, Ruby,
Groovy, Scala,
etc.

Script Access

Output Files
C headers, ITOS
record and
display, etc.

CSV Files

CCDD

JSON Files

Project
Database

XML Files
EDS
XTCE
Clipboard
Web
Applications

Embedded
Web Server

Figure 1. CCDD inputs and outputs
Questions or comments concerning this document or the CCDD application should be addressed to:
Johnson Space Center
Software, Robotics, and Simulation Division
Spacecraft Software Engineering Branch, Mail Code ER6
Houston, TX 77058

5

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 6 of 254

2.0 Requirements
CCDD is written based on the following Java and PostgreSQL versions:


JavaSE 1.7
o Developed in Linux using JavaSE 1.7 and tested on CentOS 6 Linux, Microsoft Windows 7,
and Apple OS X using JavaSE 1.8



PostgreSQL 8.4

CCDD comes with the following Java Database Connectivity (JDBC) driver, embedded Jetty web server,
and JavaScript Object Notation (JSON) versions:


JDBC driver 9.4-1207 (type 4)



Jetty 9.2.18.v20160721



JSON simple 1.1.1

Scripting language testing was performed using the following languages and versions:


JavaScript (ECMAScript) 1.8 (Mozilla Rhino 1.7 release 3)



JavaScript ECMA – 262 Edition 5.1 (Oracle Nashorn 1.8.0_131)



Python 2.7 (Jython 2.7 ), PyDev 4.2.0



Ruby 9.0.1.0 (JRuby 9.0.1.0)



Groovy 2.4.4 (Groovy Scripting Engine 2.0)



Scala 2.12.4 (Scala REPL 2.0) - requires Java 1.8

Compatibility with other versions, in particular earlier ones, is not guaranteed.

3.0 Installation
To install CCDD copy the Java archive (jar) file CCDD.jar, the user’s guide file
CCDD_Users_Guide.pdf, and the library folder CCDD_lib and its contents to a folder. The
application requires read/write access to a folder so that event log file(s) can be created; the default
folder for the log files is the file from which the application is executed though this can be changed (see
paragraph 4.4 for further information on event logs and paragraph 4.1 for changing the log file path).
Java and PostgreSQL must be installed before the application can be used.



To install Java, go to www.java.com and locate the installation instructions appropriate for the
operating system on which the application is to be run.
The PostgreSQL relational database management system is available for download from
www.postgresql.org. The format appropriate for the target operating system must be used.
Once installed, PostgreSQL must be configured prior to use by the application. Configuration
includes setting up the PostgreSQL server as a background service, creating database users and
roles within the PostgreSQL server, and setting the desired level of password authentication.
Extensive information on configuring PostgreSQL is available from www.postgresql.org.

The CCDD_lib folder contains versions of the library files required by CCDD for PostgreSQL interaction,
the embedded web server, and import/export format conversions. Updated versions of these libraries
can be used in place of those in this folder as described in paragraph 4.1. Information on these libraries
can be found at the following:

6

Johnson Space Center
Engineering Directorate







Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 7 of 254

The PostgreSQL JDBC driver is located at jdbc.postgresql.org. Note that version of Java installed
determines which JDBC driver to use.
Jetty must be installed in order to use the web server. Jetty is located at
http://www.eclipse.org/jetty/. Note that version of Java installed determines which Jetty
version to use.
The JSON conversion library is located at https://code.google.com/archive/p/json-simple.
Information regarding EDS is located at http://www.ccsds.org.
Information regarding XTCE is located at http://www.omg.org/space/xtce.

CCDD supports the use of JVM-based scripting languages. At least one of these languages must be
installed for the application to make use of CCDD’s project-data-to-script-language interface. Only the
scripting language(s) intended for use with the application need to be installed. The application was
tested with five of the available languages: JavaScript, Python, Ruby, Groovy, and Scala. Details are
provided in this in subsequent sections of this guide on the use of these five scripting languages;
installation and use of other languages should be similar. The CCDD package provides examples of
common scripts in the JavaScript, Python, Ruby, and Groovy languages.
The scripting languages are not part of the CCDD package and must be installed separately on the
platform from which the CCDD application is launched. The following links can be used to find further
information on downloading and installing the scripting languages.






JavaScript® is part of the JRE download and installation from www.java.com, so no further
installation is necessary to use this scripting language. More information on JavaScript can be
found at developer.mozilla.org.
Python™ scripting is implemented using Jython, the Python implementation for Java. Jython can
be downloaded from www.jython.org. PyDev is also required and can be found at
www.pydev.org.
Ruby scripting is implemented using JRuby, which implements Ruby in Java. JRuby is available
for download from jruby.org.
Groovy can be downloaded from www.groovy-lang.org.
Scala can be downloaded from www.scala-lang.org

4.0 Operation
4.1

Getting Started

To run the application open a command prompt window and type:
java –classpath class_paths CCDD.CcddMain [args…]

where class_paths includes the paths and .jar file names for the CCDD application (CCDD.jar) and
supporting libraries, separated by colons (:) with no intervening spaces, and args are optional
command line arguments in the form:
[[<- or />]command_value […]]

Versions of the JDBC driver, Jetty server, and JSON conversion libraries are included in the CCDD_lib
folder. If the default version is incompatible with the installation or an updated version is desired then
the defaults can be overridden by including the library path(s) and .jar file name(s) in the
class_paths argument (or by overwriting the file(s) in the CCDD_lib folder). The library files
needed are shown below;  is the specific version number of the installed file that is part of the
file’s name.
/postgresql-.jar
/lib/jetty-http-.jar

7

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 8 of 254

/lib/jetty-io-.jar
/lib/jetty-security-.jar
/lib/jetty-server-.jar
/lib/jetty-servlet-.jar
/lib/jetty-util-.jar
/lib/servlet-api-.jar
/json-simple-.jar

The library class path(s) must be specified for each scripting language other than JavaScript. The library
files required by Ruby, Python, Groovy, and Scala are shown below;  is the specific version
number of the installed file that is part of the file’s name. Library files for other scripting languages
should follow a similar format.
/lib/jruby.jar

Note: the JRuby reference must precede the other scripting language library references
jython.jar:/plugins/org.python.pydev.jython_/jython.jar
/lib/groovy-.jar:/lib/groovy-jsr223.jar
/lib/scala-compiler.jar

Each command line argument consists of a command, optionally preceded by either a ‘-‘ or ‘/’, followed
by a space, then the command value. The available commands and acceptable values are described in
Table 1. The commands can be entered in any order. If the same command is entered more than once
then each instance is applied/executed in the order of appearance on the command line. The
commands are not case-sensitive, so “-user” is the same as “-USER”, “-User”, etc.
Command

Description

Value

logPath

Sets the path to the folder
where the session event
log is stored

Path to the folder in which to store
the session event log

project

Selects the project
database to which to
initially connect

Project database name. The project’s
database name is case sensitive

backup

Sets the file path and name
to which to automatically
backup the project
database once it is
successfully connected.
The extension “.dbu” is
automatically appended to
the file name if not already
present. Only applies to
the first successful
connection

File path and name of the project
backup file

8

Default Value
None (the
folder in which
the application
is started is
used)
Previous
session’s
project name
(none for the
first use)

None

Johnson Space Center
Engineering Directorate

Command

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 9 of 254

Description

Value

user

Sets the user name to use
when connecting to the
PostgreSQL server

User name for PostgreSQL. The user
name is case sensitive

password

Sets the user’s PostgreSQL
password

Password for user name for
PostgreSQL. The password is case
sensitive

host

Sets the name of the
PostgreSQL server’s host

PostgreSQL server host name. The
host name is case sensitive

port

Sets the port of the
PostgreSQL server’s host

PostgreSQL server port. The server
port must be blank or a positive
integer

ssl

Enables or disables a
secure socket layer (SSL)
connection to the
PostgreSQL server. SSL
must be set to “on” if the
server expects an SSL
connection, and “off” if it
does not

events

Selects whether or not to
display all event log
messages

command

Selects whether or not to
display event log command
messages

success

Selects whether or not to
display event log success
messages

fail

Selects whether or not to
display event log fail
messages

“off” to disable SSL; “on” to enable
SSL. The value text is case insensitive

“true” to display all event log
messages in the main application
window; “false” to hide all event log
messages. The value text is case
insensitive
“true” to display event log command
messages in the main application
window; “false” to hide event log
command messages. The value text
is case insensitive
“true” to display event log success
messages in the main application
window; “false” to hide event log
success messages. The value text is
case insensitive
“true” to display event log fail
messages in the main application
window; “false” to hide event log fail
messages. The value text is case
insensitive

9

Default Value
Previous
session’s user
name (none for
the first use)
None
Previous
session’s
PostgreSQL
host (localhost
for the first
use)
Previous
session’s
PostgreSQL
port (5432 for
the first use)

Previous
session’s SSL
state (off for
the first use)

true

true

true

true

Johnson Space Center
Engineering Directorate

Command

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Description

status

Selects whether or not to
display event log status
messages

server

Selects whether or not to
display event log web
server messages

laf

mainSize

Sets the application look &
feel

Sets the main application
window’s size

webserver

Enables the embedded
web server. See paragraph
4.9.1.6.1 for more detail

webport

Set the port for the
embedded web server.
See paragraph 4.9.1.6.2 for
more detail

scriptOutPath

Sets the path to the folder
where the script output
files should be stored. The
scripts can access this path
and use it to set the folder
for the output files

Version 1.1.50
Page 10 of 254

Value
“true” to display event log status
messages in the main application
window; “false” to hide event log
status messages. The value text is
case insensitive
“true” to display event log web
server messages in the main
application window; “false” to hide
event log web server messages. The
value text is case insensitive
“Look and feel” name (e.g.,
“Nimbus”, “Windows”, etc.). The
names are case sensitive
Main application window size in
pixels. The parameter format must
be in the form widthxheight where
width and height are positive integer
values. A width or height less than
the minimum allowed (750 for width,
400 for height) is replaced by the
minimum value
“nogui” to start the application and
enable the web server without
displaying the user interface; “gui” to
start the application, enable the web
server, and display the user interface

Default Value

true

true

Previous
session’s L&F
(Metal for the
first use)

750x400

nogui or gui

Valid port number for the web server
to listen to for queries

Previous
session’s web
server port
(7070 for the
first use)

Path to the folder in which to store
the script output files

None (the
folder in which
the application
is started is
used)

10

Johnson Space Center
Engineering Directorate

Command

execute

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Description

Runs the supplied script
association(s), or script(s)
using the supplied table(s)
and/or group(s). The
application’s graphical user
interface (GUI) is not
displayed; exits upon
completion of the script(s).
See paragraph 4.9.5.1 for
more detail

Table 1.

Version 1.1.50
Page 11 of 254

Value
Script association name or script file
name and associated table(s). Script
file paths are required if the script is
in a folder other than the one from
which the application is executed. If
the script requires one or more
tables to be specified then the table
name(s) and/or group name(s) are
placed after the script name and a
colon. Group names must be
preceded by ‘Group:’. If multiple
tables/groups are specified the
table/group names must be
separated by a plus (+) character.
When multiple scripts are run each
definition, as described above, is
separated by a semicolon (the string
describing the associations must be
bounded by quotes in this case;
alternately, multiple execute
commands can be issued from the
command line). Bounding the value
with quotes allows spaces and the
semicolon to be used

Default Value

None

Command line arguments

The following is an example of starting the application in Linux. In this example the CCDD application is
installed in the current folder, the default libraries in the CCDD_lib folder are used, and the script
library files are installed in the folder /opt. The project initially opened is “myProject” by user
“userName”:
java -classpath ./CCDD.jar:/opt/jruby-9.0.1.0/lib/jruby.jar:/opt/jython2.7
.0/jython.jar:/opt/PyDev/plugins/org.python.pydev.jython_4.3.0.20150818
2223/jython.jar:/opt/groovy-2.4.4/lib/groovy-2.4.4.jar:/opt/groovy-2.4.
4/lib/groovy-jsr223-2.4.4.jar:/opt/scala-2.12.4/lib/scala-compiler.jar
CCDD.CcddMain -project myProject -user userName

To make execution easier an alias can be created. Using the example above the Linux alias command
is as follows:
alias CCDD=’java -classpath ./CCDD.jar:/opt/jruby-9.0.1.0/lib/jruby.jar:/o
pt/jython2.7.0/jython.jar:/opt/PyDev/plugins/org.python.pydev.jython_4.
3.0.201508182223/jython.jar:/opt/groovy-2.4.4/lib/groovy-2.4.4.jar:/opt
/groovy-2.4.4/lib/groovy-jsr223-2.4.4.jar:/opt/scala-2.12.4/lib/scalacompiler.jar CCDD.CcddMain’

For Microsoft Windows, the doskey command can be used to create an alias (the individual class paths
must be separated by semi-colons instead of colons):
doskey CCDD=java -classpath "class_paths" CCDD.CcddMain $*

Having created an alias, the application can then be started by simply typing:
CCDD [args…]

11

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 12 of 254

An invalid command or command parameter results in program termination. An invalid parameter
displays an error message at the command prompt. An invalid command or a valid command without
an associated parameter produces the following output at the command prompt:
usage:
java -classpath  CCDD.CcddMain [[<- or />]  [...]]
Command line arguments:
Description

Command

Value

---------------------------Set event log file path

------------logPath

---------------------------------------------file path

Select CCDD project
Backup project on connecting

project
backup

project name
backup file name

Set user name
Set user password

user
password

user name
user password

Set PostgreSQL server host
Set PostgreSQL server port

host
port

host name
port number

Enable/disable SSL
Show events

ssl
events

on or off>
true or false

Show command events
Show success events

command
success

true or false
true or false

Show fail events
Show status events

fail
status

true or false
true or false

Show web server events
Load look & feel

server
laf

true or false
look & feel

Set main window size
Enable web server

mainSize
webserver

widthxheight
nogui or gui

Set web server port
Set script output file path

webport
scriptOutPath

port number
file path

Execute script(s)

execute

[" or ']script name[:table1 or Group:group1
[+...[+tableN or Group:groupN]]][;...][" or ']

Once the application is executed the CCDD main window appears as shown in Figure 2. If password
authentication is enforced (see paragraph 4.3) and a password is not supplied on the command line then
the Select User dialog appears (see paragraph 4.9.1.1), allowing the user and password to be entered.
The graphical user interface (GUI) “look and feel” (L&F) can be selected by the user from a list of those
installed on the operating system. If the L&F is changed then the application window and dialogs may
differ in appearance (but not function) from those shown in the figures below. See paragraph 4.9.1.7.1
on how to alter the L&F.

12

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 13 of 254

Figure 2. CCDD main window
The main window header contains the program name and version number. The main window is divided
into a menu bar along the top and a session event log display area underneath. See paragraph 4.4 for
further information on the event log. The window can be resized as desired. Each menu contains one
or more menu items or sub-menus. A menu item that is grayed-out indicates that the affected item is
not available at that time; for example, if no project database is open then the table commands are not
available. A description of each of the menu items is provided in section 4.9.

4.2

Mouse and Keyboard Navigation

The application’s menus, dialogs, and GUI components can be manipulated using the mouse pointer,
mouse buttons, and mouse wheel, as well as with the keyboard. Keyboard mnemonics are provided for
the menu items and dialog buttons. These are accessed by pressing the Alt key in addition to another
key; i.e., Alt+key, where key is the underlined character in the menu or button text (the key case is
ignored). For example, pressing Alt+F or Alt+f in the main application window opens the File menu. The
Tab and arrow keys can be used to navigate between the components in a dialog or window, and the
pressing the Enter or space key actuates a control (e.g., a button or check box). See Appendix E.1 for a
list of special keys and key sequences.
When a dialog containing a table is initially displayed it has no table row selected. A row can be selected
by positioning the mouse pointer over a cell in the row and pressing the left mouse button, or by using
the keyboard. To select an initial row with the keyboard press the Tab key, then the Enter or Space key
when the table has the keyboard focus (which it does initially); this selects the table’s topmost visible
row and sets the focus to that row’s leftmost column. The up and down arrow keys can then be used to
change the selected row and the left and right arrows can change the selected column. The selected cell
is highlighted. Multiple cell selection behavior is dependent on the particular table, but in general
behaves as follows. Multiple, contiguous cells can be selected using a combination of the
mouse/keyboard and the Shift key. Highlight the starting cell, then either (a) continue to press the left
mouse button and drag the pointer, (b) hold the Shift key and left-click the mouse on another row (the
two rows, plus any in between, are highlighted), or (c) hold the Shift key and press the arrow key to
13

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 14 of 254

highlight as many cells as desired. Individual cells can be selected/deselected by pressing the Ctrl key
and selecting the cell with the mouse. The entire table may be selected by pressing Ctrl-A. For row
operations (e.g., Move up or Delete row) the row(s) indicated by the highlighted cell(s) are affected.
Similarly, for column operations (e.g., Move left) the column(s) indicated by the highlighted cell(s) are
affected. Once one or more cells are selected the highlighted data can be copied by pressing Ctrl-C. To
paste the data into another application (e.g., spreadsheet or text document) or another table use the
Ctrl-V or Ctrl-I key sequence.
Navigation within a table can be accomplished via mouse or keyboard. Note that some of these keys
perform different functions if a cell is actively being edited. The Insert key inserts a row at the current
selection point and the Delete key erases the contents of the currently selected cell(s) (see above
paragraph concerning cell selection). Pressing the Ctrl-Delete deletes the currently selected rows. The
Home and End keys change the cell selection to the first or last column, respectively, of the currently
selected row. The Page Up and Page Down keys scroll the table up or down one page, respectively,
(unless the entire table is already visible) changing the cell selection to the currently selected column,
with the row one page up or down from its previous position.
Table data entry is initiated by double clicking the left mouse button while the mouse pointer is over the
cell to be edited. The Enter or Space keys may also be used to initiate editing on the currently selected
cell (the Space key initiates editing as well as inserts a space into the cell at the end of any existing text).
Pressing the Enter key while editing a cell stores the text in the cell and initiates editing in the next cell,
moving left to right until the last column is reached, at which point editing moves to the first column in
the next row below unless the end of the table is reached. Protected cells, denoted by a gray
background color, are skipped. A cell containing a check box does not allow moving to the next cell via
the Enter key; instead, the check box state is toggles with each press of the Enter key.
While cell editing is active the Insert key inserts a space to the right of the text cursor, and the Delete
key deletes the character to the right of the text cursor. The Home and End keys move the text cursor
to the beginning and end of the cell, respectively. If the table cell’s input type (see 4.7 for information
on input types) supports multiple lines then pressing Alt-Enter inserts a line break.
Pressing the Escape key while editing terminates editing of the cell and removes any changes made to
the cell.
For most tables in the application, row sort order, column width, and column position are useradjustable. The table rows can be sorted by column by positioning the mouse pointer over the column’s
header and pressing the left mouse button. The rows are sorted in ascending order, depending on the
selected column’s contents, and an icon appears beside the column name indicating the sort direction.
Selecting the column again sorts in descending order (with a corresponding change in the sort direction
icon), and a third selection restores the rows to their original order and removes the sort direction
icon(further column header selection repeats this sequence). Only one column can be sorted at a time –
selection of another column removes the sort from the first sorted column before applying the sort to
the newly selected one. The column width may be resized by positioning the mouse pointer over the
right border of the column header (the mouse pointer changes to indicate resizing is possible), pressing
and holding a mouse button, then moving the mouse left or right; release the mouse button to exit
resizing. Automatic resizing, based on the widest of the contents of the cells and header, is
accomplished by double clicking a mouse button when the resize cursor appears. The column order may
be changed by positioning the mouse pointer over a column header, pressing and holding the left mouse
button, then dragging the column to the new location.
Details specific to navigation in certain windows and dialogs are provided in the components’
descriptions in later sections.
14

Johnson Space Center
Engineering Directorate

4.3

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 15 of 254

PostgreSQL Setup

A description of installing and configuring the PostgreSQL software and server is beyond the scope of
this document; see the PostgreSQL web site at www.postgresql.org for this information.
The password authentication configuration for the PostgreSQL server affects the behavior of the CCDD
application. Password authentication is controlled via the pg_hba.conf file. Super user status is
required in order to make changes to this file. The location of this file can be determined by executing
the “SHOW hba_file;” command in the PostgreSQL server command line utility psql. There are a
number of authentication methods described in the documentation on the PostgreSQL web site; e.g.
“trust”, “password”, “md5”, etc. The methods can be applied to all users or to individual users based on
the connection type (local or remote). When set to “trust” no password is required to log into the
server and access a database. The methods “password” and “md5” are similar in that the user must
provide a password to log into the server. This is preferred in multi-user scenarios to control who may
access the server and databases.
PostgreSQL allows only the owner of a database element (table, sequence, etc.) to make changes to that
object. This would be problematic if multiple users require the capability to make updates. The
restriction is overcome by means of roles. Every user login is a role in the server. Group roles can be
created to which other roles (e.g., users) are assigned membership; any role belonging to the group
inherits the privileges assigned to the group role. The PostgreSQL administrator must create a role for
each user (the user’s login identity), and one or more group roles that are used as the owner role when
a project is created. The administrator must also assign membership in the group role to the
appropriate users. Role creation and maintenance is performed outside the CCDD application, and must
be completed prior to creating a project database. When a project database is created, one of the
group roles is assigned as the owner (see paragraph 4.9.2.3; note that for a single-user project the user’s
role can be selected as the owner). Since all elements of the database are owned by the selected group,
all members of the group have write privileges to these elements. Other roles (users) not in the group
are prevented from changing the project elements.

4.4

Event Log

The application automatically records all interactions with the PostgreSQL and web servers. The
information includes the exact commands issued to the server and the server responses (success, or
failure with supporting information). All events are logged to the session’s log file, even if the GUI is
disabled.
When the GUI is enabled the main application windows displays the current session’s event log.
Previous sessions’ event logs can be reviewed using the Read log command; see paragraph 4.9.1.3. The
log automatically scrolls to the latest entry when an event is logged. Each log entry contains the
following information arranged in a tabular format:
Index

This is a sequential number assigned to each log entry, beginning with 1 and incrementing
by one as transactions occur with the database.

Server

Name or address of the computer hosting the PostgreSQL server and the port number.

Project

Name of the project database to which the transaction applies.

User

Name of the user that initiated the transaction.

Data/Time Date (month/day/year) and time stamp (hours:minutes:seconds) when the transaction
occurred.
Type

One of five log entry types:
Command Indicates a PostgreSQL command issued to the database.
15

Johnson Space Center
Engineering Directorate

Message

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 16 of 254

Success

Indicates the database transaction completed successfully.

Fail

Indicates the database transaction or web server command failed.

Status

Indicates the log entry provides application status information.

Server

Indicates a web server command.

The text in this column is dependent on the message Type. For a Command type the text is
the PostgreSQL command issued to the database. If a data base transaction succeeds then a
Success type message indicates what was accomplished by the database command. A Fail
type message provides details on the cause of the transaction or web server failure. Failed
transactions are rolled back so that no change is made to the database. The Status type
message shows the results for an application operation (for example, the database table
consistency check). A Server command displays web server command information. The
message length displayed is limited by default to 250 characters in order to prevent bogging
down the application. Truncated messages are denoted by a trailing ellipsis (…) followed by
the number of truncated characters in parentheses. The full text of the message can be
viewed by double clicking the right mouse button while the mouse pointer is over a log
entry row – a log entry viewer is opened showing the full message text for that row.

Beneath the logged entries are entry filter check boxes that can be used to determine which messages
are displayed, based on the message type(s). If a message type’s check box is unchecked then messages
of that type are hidden. Checking the box restores the messages. Messages for hidden types are still
logged even if not currently displayed. The Server check box only appears once the web server is
activated. The All check box affects the other check boxes – unchecking it clears the other check boxes,
and checking it selects the others. If none of the check boxes are selected no log entries are displayed.
Note that for the single log entry viewer the filter check boxes are not displayed.

4.5

Data Tables

The CCDD data is stored in the project’s database in the form of tables. The tables consist of a twodimensional array of columns and rows. The columns define the content of the cell in each row, much
like the data in a spreadsheet. For example, a table may have a column titled “Description” which
indicates that the cells in that column contain descriptive text concerning the parameter defined in each
specific row. There is no constraint on the number of tables in the project’s database, nor is there a
constraint on the table’s number of columns and rows.

4.5.1

Table types

Every data table is built from a table type definition which defines the table’s columns. Think of a table
type as the blueprint from which other tables are created. Two types of tables are available by default
upon creation of a project: Structure and Command. Structure tables represent C-program data
structures containing information on variables. Command tables are designed to contain information
pertinent to CFS commands. Other table types may be created by the user to contain data that doesn’t
fit into the predefined types (see paragraph 4.9.3.9 for information on the table type editor). All tables
of a given type share the same column definitions. Data in tables of any type are accessible via the
scripts (see paragraph 4.10 for information regarding script access).
Every table that is created from a table type is considered a prototype. A prototype determines the
columns and default data for all instances of that table. Each prototype table itself constitutes an
instance of that table, and in many cases the prototype is the only instance. However, in the case of
structure tables, multiple instances can exist – one for every reference to the structure from within
another structure. Each of these derive their columns and initial data values from their prototype table.
16

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 17 of 254

A prototype table that is not referenced from within another table is considered a root table. A table
that references another table is that table’s parent, and the referenced table is a child of the parent.
The root table is also a parent if it contains a reference to another table. It’s common for structure
tables to have a parent-child relationship. It’s possible for tables of other types to have such a
relationship as well, though less likely.
4.5.1.1 Structure tables
Structure table rows represent C-program variables and related information. The variables can either be
of a primitive data type (e.g., integer, char, double) or can be a reference to another structure. These
child structures can in turn reference other structures, and so on, to any depth required by the user.
The only constraint is that no circular references are allowed, wherein a structure references itself
somewhere in its hierarchy. Ultimately only references to primitive data types exist as the end point of
any path from the root structure, through its child structures, to a variable.
Certain columns are inherent to structures and must be present for the table to be recognized as a
structure. The default names for these columns are “Variable Name”, “Data Type”, “Array Size”, “Bit
Length”, “Rate”, and “Enumeration.” The column names can be changed if desired; it’s the column’s
input type that identifies the column (see paragraph 4.7 for more information on input types).
Therefore, for a table to be treated as a structure it must include at a minimum the columns with the
input types “Variable name”, “Primitive & Structure”, “Array index”, “Bit length”, “Rate”, and
“Enumeration”. Other columns, “Description” and “Units”, are automatically included for structure
tables; these additional columns can be altered, or even deleted. Columns containing other variable
information can be added at the user’s discretion. Table 2 shows the default structure column names
and the corresponding input types.

1

Default Column Name

Input Type

Variable Name

Variable name1

Description

Description

Units

Units

Data Type

Primitive & Structure1

Array Size

Array index1

Bit Length

Bit length1

Rate

Rate1

Enumeration

Enumeration1

A table must contain this input types to be
identified as a structure

Table 2. Structure column names and input data types
Only one variable name, data type, array size, and bit length column is allowed per table type definition.
The table can have multiple rate and enumeration columns.
The array size and bit length cell values are mutually exclusive for a variable; only one can be assigned
(or neither). If array size is specified then the bit length cell for that variable is grayed out and cannot be
selected. Conversely, if a bit length is entered then the array size cell is grayed out.
The bit length and enumeration cells are valid only for data types that have a base type of “signed
integer” or “unsigned integer” (see paragraph 4.5.4 for information on data types). If a non-integer data
type is selected in the data type column then the bit length and enumeration cells for that row are
17

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 18 of 254

grayed out and cannot be edited. Conversely, if the bit length or enumeration cell is not empty then the
data type for that row only displays integer data types.
If an array size is specified a row is inserted automatically into the table for each array member. Arrays
may have one or more dimensions, each with a minimum size of 2. For multi-dimensional arrays the
size of each dimension is specified in the array size column, separated from one another by commas.
For example, a three dimensional array, n, with dimension sizes of 2, 3, and 4 would have the array size
specified as “2, 3, 4” (the array text is automatically formatted with spaces). The first array member
would be n[0][0][0], the second n[0][0][1], and so on until the last member, n[1][2][3], is reached; this
array would have a total of 24 members (= 2 x 3 x 4). When a structure table is open any arrays are
initially collapsed; in other words only the array definition row is shown. The display of the array
member rows can be toggled in one of two ways, via the Expand arrays command (see paragraph
4.9.3.2.3.5) or by positioning the mouse pointer over any cell in the array size column and doubleclicking the right mouse button. When expanded, the array members for all arrays are displayed
beneath their respective array definition row. The variable name column shows the variable name with
the array index (or indices) appended, and the overall array dimension size(s) is displayed in the array
size column. See Figure 3 for an example of an expanded array definition.
array definition

array members

Figure 3. Example array display
Note that the variable name, data type, and array size are grayed out and cannot be altered in the array
member rows; however, individual values may be assigned to a member for the other columns in the
table. The exception is the bit length column – an array definition or member cannot be assigned a bit
length. To change the array member names or data type make the change to the array definition row;
the member rows are changed as well. Changing the array definition row’s array size value increases or
decreases the member rows as needed, and clearing the array size cell removes all of the member rows
for that variable.
The string data type is a special instance of the character base data type. If no array size is specified
then the string variable is simply a single character. If an array size is supplied then the first (rightmost)
array dimension determines the string length in characters. A string behaves as other array variables
except that column values (e.g., description) may not be assigned to array members of the string other
than the first one (i.e., one ending with an array index of zero). Arrays of string variables are allowed, as
with other data types.
If a data type cell references a structure then the specific instance of the structure table it represents
can be opened by double-clicking the right mouse button while the mouse pointer is positioned over the
data type cell. The table is opened in its own tab in the same editor window (see paragraph 4.9.3.2 for
more information on the table editor). If this is attempted on a structure reference in a prototype table,
and the prototype table is itself referenced in another structure table, then the dialog in Figure 4 is
displayed, indicating that the prototype of the selected structure, and not a specific instance, was
opened (‘a_structure_table‘ and ‘a_child_table‘ in the figure are replaced by the prototype and child
table names respectively). Once a structure is referenced by another one it is no longer a root structure

18

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 19 of 254

table, and therefore can’t have its own child tables, only those that are part of the hierarchy of the root
structure to which the structure’s prototype belongs.

Figure 4. Example dialog
As mentioned above, a child table inherits the data values of its prototype table. If a child table’s data
value is edited it overrides the inherited value, producing a “custom” value for the child. Even if the
child’s prototype values are subsequently changed the child retains its “custom” values. Special action
must be taken to remove the child’s custom value and have it use the prototype value – see paragraph
4.9.3.2.2.8.2.
The user may create other table types that also represent a structure table. If a table contains the
default structure input data types then the table is treated as a structure table.
4.5.1.2 Command tables
Command tables contain CFS command information. Certain columns are inherent to command tables
and must be present for the table to be recognized as a command table. The default names for these
columns are “Command Name” and “Command Code”. The column names can be changed if desired;
it’s the columns’ input type that identifies the column (see paragraph 4.7 for more information on input
types). Therefore, a command table must include columns with the “Command name” and “Command
code” input types. Other columns (“Description”, “Arg 1 Name”, “Arg 1 Description”, “Arg 1 Units”, “Arg
1 Data Type”, “Arg 1 Array Size”, “Arg 1 Enumeration”, “Arg 1 Minimum”, and “Arg 1 Maximum”) are
automatically included for command tables; these additional columns can be altered, or even deleted.
Only a single command name and command code column is allowed per table type definition. Columns
containing other command information, such as those to describe more command arguments (name,
data type, enumeration, minimum, maximum, etc.) can be added at the user’s discretion. Table 3 shows
the default command column names and the corresponding input types.

19

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

1

Version 1.1.50
Page 20 of 254

Default Column Name

Input Type

Command Name

Command name1

Command Code

Command code1

Description

Description

Arg 1 Name

Argument name

Arg 1 Description

Description

Arg 1 Units

Units

Arg 1 Data Type

Primitive

Arg 1 Array Size

Array index

Arg 1 Enumeration

Enumeration

Arg 1 Minimum

Minimum

Arg 1 Maximum

Maximum

A table must contain this input types to be
identified as a command

Table 3. Command column names and input data types
The order in which the columns are defined in the command table type definition determines which
columns are associated with a particular command argument. See paragraph 4.9.3.9 for details on
defining columns for a table type definition. Any column defined prior to the first column with the input
type “Argument name” is assumed to apply to the command in general. All column definitions between
two columns with the input type “Argument name” (or the last argument name column and the end of
the table type definition) are assumed to be associated. For the default command table type definition
the Description column is considered generic, and all of the columns following “Arg 1 Name” are
associated with the first (and only) command argument. If a subsequent command argument is added it
would begin with a column of input type “Argument name”, placed after all of the first argument’s
associated columns, and followed by any column definitions associated with the new argument. It is
suggested that any extra command argument sets are named in a manner similar to the default
argument 1 names (e.g., Arg 2 Name, Arg 2 Data Type, etc.) so that the association is apparent to the
user.
The command argument enumeration cells are valid only for data types that have a base type of “signed
integer” or “unsigned integer” (see paragraph 4.5.4 for information on data types). If a non-integer data
type is selected in the argument’s data type column then the argument’s associated enumeration cell in
the same row is grayed out and cannot be edited. Conversely, if the argument’s enumeration cell is not
empty then the argument’s associated data type for that row only displays integer data types.

4.5.2

Table groups

Data tables can be assigned to user-defined groups (see paragraph 4.9.3.8 for details on assigning tables
to a group). These groups are a method of relating tables to each other. For example, all of the tables
for a specific CFS application or subsystem can be assigned to a group. The groups are used in filtering
the table tree (see paragraph 4.5.3 concerning tree filtering). A table can be assigned to more than one
group, or to none. The application scheduler uses the groups designated as CFS applications when
producing the scheduler table (see paragraph 4.9.3.8 for details on designating a group as an
application, and paragraph 4.9.4.3). Groups can also be assigned data fields. If a group is specified as
20

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 21 of 254

representing a CFS application a number of data fields are automatically assigned (these can be edited,
removed, or additional fields added as desired). See paragraph 4.6 for more details on data fields.

4.5.3

Table tree

The table tree displays the data tables using a tree representation. Depending on the operation (e.g.,
Edit, Rename, etc.) there are one or two top level branches in the tree. The first, labeled Prototypes, is
an alphabetical arrangement of the prototype tables. Since it displays prototypes only it is a single level
in depth (not including any filtering; see below). The second top level branch that may be displayed,
Parents & Children, shows the root tables and, if applicable, their children as sub-branches, and the
children of those tables as further sub-branches, etc. See Figure 5 and Figure 6.

Figure 5. Table tree

Figure 6. Table tree expansion
21

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 22 of 254

Selecting the symbol beside a branch in the tree causes that branch to expand (if collapsed) or to
collapse (if expanded). Selection can be made with the mouse pointer, or by using the tab key and
up/down arrows to highlight the branch’s name, then pressing the right arrow to expand or left arrow to
collapse the branch. Positioning the mouse pointer over a branch name and double left-clicking toggles
between expanded and collapsed view for that branch. Selecting one or more branches and pressing
Ctrl-E causes the selected branches and all of their child branches to expand (if collapsed) or collapse (if
expanded). The first branch selected determines if any other selected branches are expanded or
collapsed. Hovering the mouse over an item in the tree displays a pop-up tool tip showing the
description of the item (if it has one; for a table this is the text from the table’s description field; see
Figure 33).
Below the tree are one or more check boxes. The Expand all check box is available for every tree;
selecting this check box causes all of the tree branches to be displayed. Clearing the check box collapses
all of the branches down to the initial level.
The names displayed in the tree for structure and primitive variables are in the format data
type.variable name (see paragraph 4.5.3.1). For structure variables the data type is the name of the
structure defining the variable; for primitive variables (e.g., integers, floats) the data type is the name of
the primitive. Color is used to highlight the data type. The Hide data type check box appears with table
trees that display structure and primitive variables. When unchecked, the tree displays the variables in
the full format as described. When check, the data type portion of the name is not displayed.
The remaining check boxes are used to filter the tree contents. There are two filter methods, by groups
and by types. Depending on the operation one, both, or neither of these check boxes may be available.
If the Filter by group check box is selected then sub-branches are inserted at the level below the
Prototypes and Parents & Children branches. These sub-branches are the groups defined by the user
(see paragraphs 4.5.2 and 4.9.3.8). Tables belonging to the group are displayed as sub-branches of the
group branch. A special group, labeled “All tables”, appears in the tree below the user-defined group
sub-branches. The “All tables” group is an automatically defined group that displays all tables, including
those that are not a member of a group, so that every table is still available for selection in the table
tree while the group filter is applied. Deselecting the check box removes the group branches.
If the Filter by type check box is selected then sub-branches are inserted at the level below the
Prototypes and Parents & Children branches. These sub-branches are the table types: structure,
command, and any others defined by the user (see paragraphs 4.5.1 and 4.9.3.9). Tables of a given type
are displayed as sub-branches of the table type branch. In other words, all of the Structure type tables
appear under a Structure branch, all Command type tables under a Command branch, and so on for each
defined table type. Deselecting the check box removes the type branches.
Both the group and type filters may be applied simultaneously. The branches are first divided by group.
Each group is then sub-divided by table type.
4.5.3.1 Variable tree
Another form of the table tree is the variable tree. The variable tree displays only the project’s structure
tables. These are displayed in the same manner as in the table tree, except that the variables belonging
to the structure tables are also shown as branches of their parent structure. Variable trees are used
where selection of variables is required; e.g., in the links manager (paragraph 4.9.4.1) and the telemetry
scheduler (paragraph 4.9.4.2). Like the table tree, variable trees allow filtering by group.
Variable names are displayed in the tree in the format:
.[:bit length]
Examples: float.bq[1], uint16.faultBits:12
22

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 23 of 254

The node icons used in the variable tree indicate if the variable is a bit-wise variable or not (i.e., has a bit
length assigned), if the variable is bit-packed with one or more variables, and if the variable belongs to a
link (see Table 4). Paragraph 4.5.5 provides details on bit-packed variables.
Icon

Variable type
Non-bit-wise variable
Linked non-bit-wise variable
Bit-wise variable
Linked bit-wise variable
Packed bit-wise variable
Linked and packed bit-wise variable
Table 4. Variable tree icons

4.5.4

Data types

The structure and command tables, and possibly and user-defined table types, contain data type
columns. This column is used to set the data type for the referenced parameter (e.g., structure variable
or command argument). The data type is either a primitive type, a reference to a structure, or a pointer.
Each primitive data type is derived from one of five base data types: signed integer, unsigned integer,
floating point, character, and pointer. The base type, along with the size in bytes, determines the
characteristics and usage of the data type. For example, a bit length can be assigned to a variable only if
its data type has an integer base type (signed or unsigned), and the bit length is less than or equal to the
data type’s size (in bits).
A project database is automatically provided with a number of primitive data types. These can be
altered or deleted. The default primitive types are shown in Table 5.
Data Type
Name

C-Language
Data Type

Number
of Bytes

Base Type

int8_t

signed char

1

signed integer

int16_t

signed short int

2

signed integer

int32_t

signed int

4

signed integer

int64_t

signed long int

8

signed integer

uint8_t

unsigned char

1

unsigned integer

uint16_t

unsigned short int

2

unsigned integer

uint32_t

unsigned int

4

unsigned integer

uint64_t

unsigned long int

8

unsigned integer

float

float

4

floating point

double

double

8

floating point

char

char

1

character

string

char (array)

>1

character

23

Johnson Space Center
Engineering Directorate

address

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

void *

Version 1.1.50
Page 24 of 254

4

pointer

Table 5. Default primitive data types
A data type with a base type of ‘character’ is considered a string if the byte size is set to greater than 1.
The byte size value in this case is otherwise unused by the application. The application treats a string as
an array of characters. An array of data type ‘string’ is treated specially by the application. See
paragraph 4.5.1.1 for details.
To the application a pointer represents an address and the actual data type and C type names are
irrelevant. However, the application does allow creation of pointers with distinctive names. This is
useful, such as in a generated header file to create typedef statements for subsequent use in
assigning data types to variables (versus using the void * data type and type casting each variable
appropriately). The application allows creation of any number of pointer data types.
In a data table, when a data type column cell is selected it displays a drop down menu showing the data
types. The data types available depend on the usage. In general, in a structure table the data types
include primitive types and the names of structures that are not referenced in the hierarchy of the
structure being edited (this prevents creating a circular reference). If the structure variable has a bit
length or enumeration value then the data types available are limited to primitive types with an integer
base type (signed or unsigned). For a command argument only primitive types are displayed, and if the
argument has an enumeration value then the data types are limited to primitive types that have an
integer base type (signed or unsigned).
The data type manager (paragraph 4.9.3.10) is used to create, modify, and delete the primitive data
types.

4.5.5

Bit fields

Variables with an integer (signed or unsigned) data type may be assigned as bit fields. A bit field is
identified by having a value entered in the structure data table’s Bit Length column. Variables with bit
lengths specified that are co-located in the table and have the same data type are assumed to be packed
together; i.e., these variables occupy the same byte or bytes. The number of variables and bits that are
packed is based on the data type’s byte size and the bit length of each variable. The bits representing a
variable must be contained within a single data type’s set of bits. For example, a uint16 is two bytes, or
16 bits, so bit field variables totaling 16 or fewer bits are packed. If three variables of type uint16 are colocated, with bit lengths of 2, 12, and 5, then the first two variables are packed together (2 + 12 < 16),
and the third variable occupies its own pair of bytes since its 5 bits won’t fit within the first packed pair’s
2 unused bits.
Bit-packed variables must have the same telemetry downlink rate. Since the variables are packed
together they are downlinked together, even if only a subset of the variables is desired. The table editor
accounts for bit-packing by enforcing a common rate among variables that are packed together. In
other words, it changes the rates, if needed, of packed variables so that they match. The check for, and
update to, a common rate takes place each time an edit is made to the table. In order to prevent two
variables from being packed together a padding variable must be added between them with the
appropriate bit length to ensure the two variables no longer fit within the bit size of the variables’ data
type.
When transferring variables, such as between trees in the link manager or between the variable tree
and messages in the telemetry manager, those that are packed together are automatically moved as a
unit, even if not explicitly selected.

24

Johnson Space Center
Engineering Directorate

4.5.6

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 25 of 254

Enumerations

Enumerations allow associating a text label with an integer value, and optionally other attributes.
Enumerations are useful, for example, in displays, since descriptive label text can be substituted for an
ambiguous numeric value.
The format for an enumeration is as follows:
<1st enum value>  <1st enum label> [ ]
[ <2nd enum value>  < 2nd enum label> [ ]][[…] [ 
 < nth enum label> [ ]]]
The enumeration value/label and pair separator characters are at the discretion of the user. The
application detects these characters automatically.
The label can contain multiple attributes (e.g., color, limit, etc.) – use the value/label separator character
to delineate each attribute. Below is an example of an enumeration with three possible values (0, 1, and
2):
0 | Off | red, 1 | On | green, 2 | Standby | yellow
In this example the enumerated values 0, 1, and 2 correspond to the labels “Off”, “On”, and “Standby”
and the colors “red”, “green”, and “yellow” respectively. The value/label separator is the “|” character,
and the pair separator is the comma (“,”). Any spaces and/or tabs bounding the separator characters
are ignored.
The structure and command tables contain an enumeration column by default. The enumeration’s
integer value is the value of the parameter described in the same row of the table (the variable name for
a structure table and the argument name for a command table). The enumeration parameter’s data
type must be an integer type (signed or unsigned). The structure and command table editors enforce
this constraint by not allowing text to be entered into an enumeration cell for which the associated data
type is not an integer, and by only displaying integer types in the data type cell if the associated
enumeration cell is not blank. Data type and enumeration column associations are determined by their
respective input type designation (see paragraph 4.7) and are paired based on their order in the table’s
type definition. Command tables may have one or more command arguments, each with a data type
and enumeration (see paragraph 4.5.1.2); these are automatically paired when both are present in a
given argument. The EDS and XTCE XML conversions (see paragraphs 4.9.3.7.2 and 4.9.3.7.3) also check
that the data type is valid for an enumeration, generating an error message if an enumeration is
associated with a non-integer data type.

4.5.7

Macros

A macro is a text string used to represent a number or text. Once defined, a macro can be used to
replace part or all of the contents of a data table cell. This allows a commonly used string of text to be
defined once, then used in as many tables and table cells as desired. If the text subsequently needs to
be altered then only the macro’s definition need be changed, instead of having to locate and change
each table cell where the text is found. An example for such usage would be an enumeration used in
multiple cells and/or tables.
Macros are created and their values set or altered using the macro editor, described in paragraph
4.9.3.11. A macro name, when entered into a cell, must be bounded on either side by a pair of ‘#’
characters (##, with no intervening spaces) in order for the macro to be recognized. Text that’s entered
into a cell bounded by the macro delimiters is only recognized as a macro if the macro is defined. If the
macro isn’t recognized then the characters are treated as any other text string. If the macro is
25

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 26 of 254

subsequently defined the cell automatically recognizes the text string as a macro. Macros can also be
entered using the Insert macro command in the table editor; see paragraph 4.9.3.2.2.6.
A special type of macro is the sizeof(data type) call. The sizeof() call returns the size in bytes of the
specified primitive or structure data type. sizeof() can be used in the same locations as a macro. The
macro identifier characters (##) are not used with the sizeof() call.
Multiple macros can be inserted into a cell. However, a macro can’t be inserted within another macro
(the macro into which the second macro is inserted is no longer recognized as a macro in this case).
Text containing macros is evaluated as a mathematical expression if the resulting expansion of the
macros and sizeof() calls in the text is in a valid expression format. As an example assume two macros
are defined, MACRO_A with a value of “2” and MACRO_B with a value of “3”. The text “(##MACRO_A##
+ 4) / ##MACRO_B”, when the macros are expanded, is “(2 + 4) / 3”. Since this is a valid mathematical
expression the resulting text is “2” since (2 + 4) / 3 = 2. Multiple expressions can exist in the same text if
each is separated from the other by a comma (,). For example, the text “#MACRO_A, sizeof(float) * 3”
when expanded is “2, 4 * 3” (using the value for MACRO_A stated previously and assuming a float is 4
bytes). Each portion of the text, when separated at the comma, is a valid mathematical expression, so
the resulting text is “2, 12”. This format is useful when setting the array size for a multi-dimensional
array variable.
If the mouse pointer is hovered over a cell containing a macro a tool tip pop up appears displaying the
contents of the cell with each macro name replaced by its value. All of the macros in a data table can be
temporarily replaced by their corresponding values using the Show macros command in the table
editor; see paragraph 4.9.3.2.2.7.
When a table’s data is retrieved for use in a script or via the web server the option exists to retain the
macro names in place of the macro values. See paragraphs 4.10 and 4.9.1.6 for details. An example of
use for this is when creating C header files, where a #define statement is used to set a constant that
determines array variable size(s). The macro name can be used to set the #define constant’s name
and value. In the array definition(s) the macro name is retained instead of the using the value so that
the #define constant determines the array size (note that the macro delimiter characters must be
removed in this example).

4.6

Data Fields

Data fields are input fields created by the user for entering information associated with the component
to which the field belongs. The fields are assigned names and an input type that constrains the values
that can be entered into the field. Data fields can be associated with a project’s data tables, groups, and
to the project as a whole.
A data field can be used to enter a piece of information for a data table that doesn’t fit with a table’s
row and column format. An example is a message identification (ID) number for a root structure table –
the message ID applies to the entire table, not a specific row within it. A column could be added for
information such as the message ID, but having the same value repeated for each row is both wasteful
in storage as well as prone to errors (if every value doesn’t match). Any number of data fields (including
none) can be associated with each table. Default data fields may be assigned to a table type, so that
every table created of that type automatically has the default fields in place. Fields can also be assigned
to individual tables – there is no requirement for the tables to have the same fields.
Similarly, table groups can be assigned data fields. For example, a group can be created that consists of
all of the tables for a specific CFS application, so that the group represents the application. Applications
have data associated with them that isn’t appropriate for storage in a table, such as the application
schedule rate or execution time. In this case a data field can be assigned to the group to hold the
26

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 27 of 254

information. Groups designated as CFS applications are automatically assigned certain data fields; see
paragraph 4.9.3.8.
Some data associated with a project is applicable to the entire project. Examples include the project’s
name and description, or the number of central processing units (CPUs) supported. For these cases the
project-level data fields are appropriate. Paragraph 4.9.3.13 provides information on adding data fields
at the project level.

4.6.1

Data field editor

This section provides details on use of the data field editor (Figure 7). See paragraph 4.9.3.9.4.1 for
information regarding adding default data fields, and paragraph 4.9.3.2.5.1 for information on adding
fields to a particular table. In either case the editor operation is the same.

Figure 7. Data field editor
There are five or six columns in the field editor (depending on context):
Field Name

This is the name of the data field. The name can be of any length and can contain letters,
numerals, and punctuation characters. When the data field is displayed the field name is
the label shown immediately to the left of the input field that is used to contain the field’s
value. The field name is also used if the data field is referenced from a script (see
paragraph 4.10). The field name is required.

Description The field description is use to describe the content of the data field. The description
appears as tool tip text whenever the mouse pointer hovers over the field in a table,
group, or table type editor. HTML tags may be entered to provide formatting for the
displayed tool tip text. This column may remain blank.
Size

The field size defines the width, in characters, of the data field’s input text field. Due to
padding and font differences, the actual field width may appear slightly larger. The size
must be a positive integer, and is required.

Input Type

The field input type constrains the type of value entered into the data field’s input text
field. If the value entered into the data field doesn’t conform to field’s specified input
type then a warning message dialog is displayed and the field reverts to its previous value.
The input types are selectable from the combo box pull-down menu that appears when a
cell in the Input Type column is selected. See paragraph 4.7 for information on the
27

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 28 of 254

available input types. A field with a boolean input type is displayed as a check box. The
input type defaults to “text.”
Required

The Required column displays a check box, initially unselected. Selecting the check box
indicates that the field is required. When the field is displayed in the table or table editor
the input text field is highlighted in yellow as long as the field’s input text field value is
empty. The application does not enforce the user to input data into the fields marked
“required”; the highlighting is used merely as a reminder that the field value is considered
necessary and should be filled. A boolean (check box) data field does not display the
highlighting.

Applicability This column only appears when assigning default data fields in the table type editor for
structure tables. It allows the propagation of the specified field to all tables, parent tables
only, or child tables only. Select the applicability for a field from the combo box pull down
menu that appears when the applicability cell is selected. All tables indicated that the
field should be added to all structure tables (root and child tables), Roots only implies that
only root tables have the field added, and Children only means that only child tables have
the field added. The default is All tables.
The order that the rows appear in the field editor determines the order of appearance in the table
editor, group manager, or table type editor. Field definition rows may be rearranged as desired by first
selecting a cell in one or more rows, then pressing the Up or Down buttons to move the selected row
relative to the ones not selected. The editor columns can be sorted as described in paragraph 4.2;
however, the sorted order does not dictate the field display order.
Line separators and line breaks may be inserted as rows using the Separator and Break buttons
respectively. Without these breaks the data fields, when displayed in a table, group manager, or table
type editor, are arranged end to end, wrapping to the next line when the width of the editor is reached.
The line break forces the next data field to the next row regardless of the editor width constraint. The
line separator does the same, except that a dividing line is drawn between the rows where the separator
is inserted. These breaks can be used to aid in grouping related data fields.
The field editor button commands are described below:
Ins Row

The editor is initially empty unless the table editor, group manager, or table type editor
from which it’s invoked has any previously defined fields. To add a field first select the
Ins Row button; a new field definition row is inserted into the editor. Additional rows
can be added in the same manner. The insertion point is dependent on the currently
selected row in the editor; if no row is selected then the new row is added at the
bottom. The empty row has the Field Name and Size columns highlighted in yellow.
The highlighting indicates that these columns are required and must have values
assigned.

Del Row

One or more field definition rows may be deleted by first selecting a cell in the target
row(s), then pressing the Del Row button. The selection of multiple rows is constrained
to contiguous rows; i.e., rows cannot be skipped.

Up

The order that the rows appear in the field editor determines the order of appearance
in the table editor, group manager, or table type editor. Field definition rows may be
rearranged as desired by first selecting a cell in one or more rows, then pressing the Up
button to move the selected row(s) up a row relative to the ones not selected.

Down

Similar to the Up button action, except that selected row(s) are moved down a row
relative to the ones not selected.
28

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 29 of 254

Separator

Inserts a line separator below the currently selected field’s row.

Break

Inserts a line break below the currently selected field’s row.

Undo

Undoes the last action performed (typing, paste, insert, delete, redo, etc.).

Redo

Reverses the last action undone (typing, paste, insert, delete, redo, etc.).

Update

Applies the data field definitions currently displayed in the field editor to the table
editor, group manager, or table type editor from which the field editor was invoked.
Any existing fields that are in the table editor, group manager, or table type editor are
deleted and replaced by the new definitions. However, these changes are not stored in
the database – this is only accomplished when the Store button in the table editor,
group manager, or table type editor is selected.

Close

Closes the field editor window. If any changes made have not been applied using the
Update button then a dialog appears allowing the user to confirm discarding the
updates or to cancel closing the editor.

4.7

Input Types

Data table columns, data fields, and macros are assigned an input type in the table type editor (see
paragraph 4.9.3.9) and the data field editor (see paragraph 4.6.1) respectively. The input type
constrains the type of value entered into a data table cell or data field. Leading and trailing white space
characters (spaces, tabs, etc.) are ignored and eliminated when the text is formatted (except for the two
Text input types that specifically preserve these characters; spaces between characters in a text string
are always retained). Leading plus (+) signs and zeroes are allowed for non-negative integer and floating
point values, but are ignored and eliminated. In the table type or data field editor select the row in the
Input Type column corresponding to the data table column or data field. A combo box pull down menu
appears with the following selections:
Alphanumeric

This type allows letters, numerals, and underscore characters. A numeral
may not begin the text string. Alphanumeric text is appropriate for variable
names.

Alphanumeric (multi)

Allows multiple Alphanumeric inputs, separated by one or more white space
character(s).

Argument name

Special format used to designate a command table argument name column.
This type has the same constraints as the Alphanumeric type.

Array index

Special format used to designate the array size column. Allows one or more
integer values (each greater than 1), separated by commas. For the array
size column each value represents an array dimension size (e.g., if the array
size is 2, 3, 4 then the associated array size is defined by arrayName[2][3][4]).

Bit length

Special format used to designate the structure table bit length column. This
type has the same constraints as the Positive integer type.

Boolean

Only “true” or “false” (case insensitive) are allowed for the boolean type in
data tables. A check box represents a data field of this type.

Command code

Special format used to designate the command table command code column.
This type has the same constraints as the Hexadecimal type.

Command name

Special format used to designate the command table command name
column. This type has the same constraints as the Alphanumeric type.
29

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 30 of 254

Description

Special format used to designate a description column. This type has the
same constraints as the Text type.

Enumeration

Special format used to designate a column containing enumerated values.
This type allows letters, numerals, and punctuation characters.

Floating point

This type allows floating point values to be entered; i.e., values with decimal
components in the form “#.###” (e.g., 3.14).

Hexadecimal

This type allows only hexadecimal digits to be entered (0 – 9, A – F, and a – f).
The hexadecimal digits may optionally be preceded by “0x”.

Hexadecimal range

Allows one or two Hexadecimal values. If two values are entered they must
be separated by a hyphen (-).

Integer

The integer data type allows input of any integer value: positive, negative, or
zero.

Integer > 1

Only integer values greater than 1 are allowed for this type.

Maximum

Special format used to designate a column containing maximum values. This
type allows boolean, integer, floating point, and hexadecimal values
depending on the data type associated with it. If the associated data type is
missing or blank then the maximum value cell is blanked and cannot be
edited. The maximum column is automatically paired with a minimum
column (if present); if multiple minimum columns are present then pairing is
done in order of column appearance in the table type definition. When
paired the minimum value is constrained to be less than or equal to the
maximum value.

Message ID

Used to designate a table column or data field as representing a telemetry or
command message ID number. The constraints are identical to the
Hexadecimal type, except that the ‘#’ character may be appended to the ID
number. This character flags the message ID as being protected from
overwriting by the automatic message ID assignment command. Assigning
this input type to a table column or data field enables the application to pair
message IDs and ID names; see paragraph 4.9.3.12.3 for more information on
how this input type is used.

Message ID name

Used to designate a table column or data field as representing a telemetry or
command message ID name. The constraints are identical to the
Alphanumeric type. Assigning this type to a table column or data field
enables the application to pair message ID names and IDs; see paragraph
4.9.3.12.3 for more information on how this input type is used.

Message names & IDs

This type causes a combo box pull down menu to appear when the table cell
or data field is selected. The menu contains all of the currently defined
message ID names and associated message ID numbers. When a message ID
name and number is selected only the ID name appears in the cell or field.

Minimum

Special format used to designate a column containing minimum values. This
type allows boolean, integer, floating point, and hexadecimal values
depending on the data type associated with it. If the associated data type is
missing or blank then the minimum value cell is blanked and cannot be
edited. The minimum column is automatically paired with a maximum
column (if present); if multiple maximum columns are present then pairing is
30

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 31 of 254

done in order of column appearance in the table type definition. When
paired the minimum value is constrained to be less than or equal to the
maximum value.
Negative float

Similar to the Floating point type, except that only negative values are
allowed.

Negative integer

Similar to the Integer type, except that only negative integer values are
allowed.

Non-negative float

Similar to the Floating point type, except that only zero or negative values
are allowed.

Non-negative integer

Similar to the Integer type, except that only zero or negative values are
allowed.

Non-zero hexadecimal

Similar to the Hexadecimal type, except that a value of zero (0x0) is
excluded.

Positive float

Similar to the Floating point type, except that only positive, non-zero values
are allowed.

Positive integer

Similar to the Integer type, except that only positive, non-zero integers are
allowed.

Primitive

This type causes a combo box pull down menu to appear when the cell is
selected. The menu contains all of the primitive data types. This selection is
not available in the data field editor.

Primitive & Structure

This type causes a combo box pull down menu to appear when the cell is
selected. The menu contains all of the primitive data types along with the
names of all the prototype structure tables. This is primarily for use in
defining the Data Type column in structure tables but can be used
elsewhere. This selection is not available in the data field editor.

Rate

Special format used to designate telemetry sample rate columns. Allows
positive integer values and values in the form “1 / #” where # is a positive
integer value.

Text

This type allows letters, numerals, and punctuation characters. Text is the
default data type.

Text (multi-line)

This type allows letters, numerals, punctuation, and new line characters, the
latter allowing for multiple lines of text in a data field. The field initially
displays as a single row, but the number of rows increases as new line
characters are entered. This type behaves identically to Text if used as a
table column’s input type.

Text (spaces)

Identical to the Text type except that leading and trailing white space
characters are preserved.

Text (multi-line, spaces) Identical to the Text (multi-line) type except that leading and trailing white
space characters are preserved. This type behaves identically to Text
(spaces) if used as a table column’s input type.
Units

Special format used to designate a column containing units (e.g., degrees F,
rpm, m/s). This type has the same constraints as the Text type.
31

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 32 of 254

Variable name

Special format used to designate a variable name column. This type has the
same constraints as the Alphanumeric type.

Variable path

This is a special format valid only in a structure table type definition. If a
column in the table is assigned this type then the table’s path is combined
with the variable name and data type to produce the variable’s full path. The
column can be edited, in which case the manually entered value overrides
the automatically generated path. The characters that separate each
structure reference in the path, and the data types and variable names, and
whether or not the data type is displayed, are set using the Show variables
command menu command; see paragraph 4.9.3.15.

4.8

Data Streams

CCDD supports the definition and use of multiple data streams. In this context a data stream refers to
an uplink/downlink path; for example, serial, Ethernet, radio, etc. Each data stream has its own set of
rate parameters (see paragraph 4.9.4.4). Addition of a stream is accomplished by adding a new sample
rate column to a structure table definition (see paragraph 4.9.3.9 for information on altering a table
type). A rate column is designated by assigning the column an input type of ‘Rate’ (see paragraph 4.7
for information on input types). A telemetry parameter can be assigned a rate in each of the defined
data streams. The link manager (paragraph 4.9.4.1) allows linking telemetry parameters for allocation in
the downlink messages. These linkages are specific to a data stream. The data stream can be assigned a
name different from its associated rate column name in the rate parameter dialog (paragraph 4.9.4.4).

4.9

Command Menu

The following paragraphs describe the main application window’s menu commands.

4.9.1

File menu

The File menu provides selections for connecting to the database, altering the database connection
properties, reading, printing, and searching the application logs, enabling the web server, updating the
application’s overall appearance, and exiting the program.
4.9.1.1 Select user
When the Select user command is issued, if any table editor or the table type editor is open and has
unsaved changes then a confirmation dialog first appears, allowing the user to choose whether to
discard the unsaved changes and continue with the user change, or to cancel the user change. If there
are no unsaved changes or if the user confirms discarding the changes then the editors are closed and
the Select User dialog is displayed. The dialog allows entering the user name and/or user password.
The appearance of the dialog is dependent on whether or not a connection is currently established with
the PostgreSQL server. If no connection exists then the dialog appears as in Figure 8, and both the user
and user password must be entered. If a connection to the server does exist (i.e., if changing to another
user from one already connected to the server) then the dialog appears similar to that in Figure 9. For
this case the user text field is replaced by radio buttons providing an alphabetized list of the users
registered in the PostgreSQL server.
Select or type in a user name and, if required by the server, provide the password in the Password field,
then select the Okay button. An attempt is then made to establish a connection as the indicated user
with the most recently selected or open project’s database. If a project’s database is open when the
user is changed and the newly selected user does not have access privileges to this project then the
database is closed. Select the Cancel button to exit the dialog without changing the user.

32

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 33 of 254

Figure 8. Select User dialog (no server connection)

Figure 9. Select User dialog (server connected)
4.9.1.2 Database server
The Database server command is used to set the PostgreSQL database connection properties. When
the command is issued, if any table editor or the table type editor is open and has unsaved changes then
a confirmation dialog first appears, allowing the user to choose whether to discard the unsaved changes
and continue with the server change, or to cancel the server change. If there are no unsaved changes or
if the user confirms discarding the changes then the editors are closed and the Database Server dialog is
displayed (see Figure 10). The dialog allows entering the PostgreSQL server host name and server port
number, and to enable or disable secure sockets layer (SSL) authentication.

Figure 10. Database server dialog
The dialog allows selection of a PostgreSQL server on the local or a remote host. Enter the server host
name and the server port number, set the Enable SSL check box appropriate to the target connection’s
encryption requirements, and then select the Okay button. The host text field uses auto-completion to
fill in the host string. The previous 30 host names are remembered by default, including those from
previous sessions. If the host field is empty then the default host name, localhost, is used. The default
33

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 34 of 254

port number for the PostgreSQL server is 5432. An attempt is then made to establish a connection to
the server on the new host as the current user. Select the Cancel button to exit the dialog without
changing the database server properties.
The SSL selection must match that of the target or else the connection will not be established. Note:
When SSL is enabled no certificate validation is performed by the JDBC driver.
4.9.1.3 Read log
The Read log command causes the Open Event Log file selection dialog to be displayed. Navigate to the
location of the desired CCDD event log file, highlight it using the mouse or keyboard controls, and select
Open to open the log in a window similar to the main program window. The log file names are in the
format CCDD-YYYYMMDD-hhmmss.log, where YYYYMMDD is the year, month, and day, and hhmmss is
the hour, minute, and second when the log was created. Select Cancel to close the file selection dialog
without opening a log file. See paragraph 4.4 for details on the event log columns and filter selections.
The log window may be resized. The Search button displays the event log search dialog (see paragraph
4.9.1.5); the log can be searched for a user-specified text string. Select the Print button to open a
printer selection dialog in order to print a copy of the log to the selected printer. Select Close to close
the log window.
4.9.1.4 Print log
The Print log command causes a dialog to appear allowing selection of a printer in order to print a copy
of the current session’s event log; i.e., the log displayed in the main application window.
4.9.1.5 Search log
The Search log dialog provides a means of searching the current session’s event log for a specified text
string (see Figure 11). Case sensitivity for the search is governed by the Ignore text case check box.
The Allow regular expression check box, when checked, allows the use of a regular expression to define
the search pattern in the search text field. A regular expression can be formulated to find multiple
matching conditions (for example, the search for a.c would match any string that has a single character
between the characters ‘a’ and ‘c’). Information regarding the use of regular expressions is beyond the
scope of this document; however, resources and tutorials can be found online. When unchecked, the
search text is matched as typed in the search text field.
Enter the search text in the input field and select the Search button. The search results are displayed in
the table at the bottom of the search dialog. The first column, Log Index, shows the log entry’s index
number where a match is found. The second column, Column Name, provides the column where the
match occurs in the event log. The last column, Context, displays the string from log entry containing
the search text, with the search text highlighted. The full length of the log message text is searched (and
displayed, if a match is found), even if the message is truncated in the event log due to length
restrictions. Pressing the Ctrl-F key sequence while the main application window has the focus also
displays the event log search dialog.
The search text field uses auto-completion to fill in the search string. The previous 30 searches (of the
event log, table, and script combined) are remembered, including those from previous sessions. Case
sensitivity for auto-completion is based on the Ignore text case check box selection state.
The input text can be changed and the Search button pressed again to initiate another search of the log.
The search results can be output to a file or printer by selecting the Print button. To exit the search
dialog select the Close button.

34

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 35 of 254

Figure 11. Search event log dialog
4.9.1.6 Web server
The embedded web server allows web-based applications access to a project’s data. The web server
must be started before any requests are made. If the application is running the Enable server command
(paragraph 4.9.1.6.1) is used to start and stop the server. The server is disabled by default. Command
line options are available to allow the server to be started at program start-up, with or without the GUI
enabled. See Table 1 for the web server command line arguments.
All requests are directed to the currently open project database. The query format is:
host:port/component>
The host name is the network name or IP address on which the CCDD application, with the web server
active, is operating (‘localhost’ if active on the same machine as the requesting application). The port
number is the port to which the server is assigned to listen (the default is 7070; this can be changed via
command line command or menu option). The component, attribute, and name portions of the request
determine the data returned. Data for tables, groups, applications, and the telemetry and application
scheduler is available. Data may be requested for a single table, group, or application, or for all of the
given component. Lists containing the names of all tables, groups, or applications can be requested.
Table 6 contains the recognized component, attribute, and name combinations.
The data is returned to the requesting application in JSON “key”:”value” pair format per the Output
column in Table 6. For the initial request the user is prompted for a valid PostgreSQL server user name
and password. Additionally, this user must have read access to the project open in the CCDD application
hosting the web server.
If a table contains macro references then the table values default to replacing the macro names with the
corresponding macro values, as defined in the macro editor (see paragraphs 4.5.7 and 4.9.3.11 for more
information relating to macros). Requests can be made to return the table data with the macro names
35

Johnson Space Center
Engineering Directorate

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Version 1.1.50
Page 36 of 254

displayed in place of the macro values by appending ;macro (or ;macros – either is case insensitive) at
the end of the name portion of the request, or at the end of the attribute portion if there is no name
portion. For example, the request table?=;macro returns the table data for all tables with the macro
names displayed, and the request telemetry?;macros returns the telemetry information for all tables
with the macro names displayed in those JSON “key”:”value” pairs that are taken directly from table
cells.
Variable paths, formatted as single strings, can be requested as part of a structure table’s data (see
paragraph 4.9.3.15 for more information on variable paths). The variable paths are attached to the
table data as an additional column named “Variable Path”. The format for returning the paths is similar
to the variable command (see Table 6):
;path<,,,>
If the variable path member separator character(s), hide data type flag, and data type and variable name
separator character(s) are not provided then the default values – “_”, false, and ”_”, respectively – are
used. The command is case insensitive and must be placed at the end of the name portion of the
request, or at the end of the attribute portion if there is no name portion. It may be used in
conjunction with the macro command described above. For example, the request:
table?data=;path,”_”,”false”,”.”
would convert the variable path rootStruct,parentStruct.structVar,int.primVar to
a_parentStruct.structVar_int.primVar, and the request:
table?data=;path,”_”,true,”_”
would convert the variable path rootStruct,parentStruct.structVar,int.primVar to a_structVar_primVar.

36

Johnson Space Center
Engineering Directorate

Request
Component

Attribute

Name

Core Flight System Command and Data Dictionary Utility User’s Guide
Doc. No. JSC-37494
Date: January 2018

Returned Information
Type, description, size (if a structure),
data, and data fields for the specified
data table (table name is case
insensitive), or for all tables if table
name is omitted

all (or blank)



table

data

description

Version 1.1.50
Page 37 of 254

Output1,2
{"Table Name":"table name","Table
Type":"type","Table
Description":"description","Table Size":size,"Table
Data":[{“first row column name”:“first row column
value”,<,”first row next column name:”first row
next column value{“second row column
name”:“second row column value”,<,”second row
next column name:”second row next column
value”<,…>>}<,…>],”Data Field”:[{"Field
Name":”field name”,“Description”:”field
description”,”Size”:”field character length”,“Input
Type”:”input data type”,”Required”:”true or
false”,”Applicability”:”field
applicability”,“Value”:”field value”}<,next field’s
data…>]}

Data for the specified data table (table {“Table Name”:“table name”,"Table Data":[{“first name is case insensitive), or for all tables row column name”:“first row column value”,<,”first if table name is omitted row next column name:”first row next column value{“second row column name”:“second row column value”,<,”second row next column name:”second row next column value”<,…>>}<,…>]}
Description for the specified table (table {“Table Name”:“table name”,"Table name is case insensitive), or for all tables Description":"description"} if table name is omitted 37 Johnson Space Center Engineering Directorate Request Component Attribute Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Returned Information Version 1.1.50 Page 38 of 254 Output1,2 Data field information for the specified table (table name is case insensitive), or for all tables if table name is omitted {“Table Name”:“table name”,”Data Field”:[{"Field Name":”field name”,“Description”:”field description”,”Size”:”field character length”,“Input Type”:”input data type”,”Required”:”true or false”,”Applicability”:”field applicability”,“Value”:”field value”}<,next field’s data…>]} fields
names
Names of all tables of the specified table type (table name is case insensitive), or for all table types if table type is omitted {“Table Type”:”table type”, “Table Names”:[“table name”<,”next table name”<,…>>]} {“Table Name”:"table name",”Byte Size”:size}
Size (in bytes) for the specified structure table (table name is case insensitive), or for all tables if table name is omitted ,, ,<,search table column names> Search for the specified text in the project database tables. Set the ignore case flag to true to ignore case when matching the text (defaults to false if not provided). Set the allow regular expression flag to allow a regular expression in the search text. Set the data table cells only flag to return only those matches within the data table cells (otherwise matches in the internal tables are returned as well; defaults to false if not provided). Optionally constrain the search to specific data table columns by appending a commaseparated list of column names (the names are case sensitive) [{“Table / Object”:”table name”,”Location”:”location within table”,”Context”:”table cell contents containing the matching search text”}<,…>] size search 38 Johnson Space Center Engineering Directorate Request Component Attribute Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 39 of 254 Output1,2 Returned Information proto_table Same requests as for table above, except only table information for prototype tables is returned root_table Same requests as for table above, except only table information for root tables is returned instance_table Same requests as for table above, except only table information for instance tables is returned Description, associated table(s), and data field(s) for the specified group, or for all groups if group name is omitted {"Group Name":"group name","Group Description":"description","Group Table":[“table name”<,”next table name<,…>>”],”Group Data Field”: [{"Field Name":”field name”,“Description”:”field description”,”Size”:”field character length”,“Input Type”:”input data type”,”Required”:”true or false”,”Applicability”:”field applicability”,“Value”:”field value”}<,next field’s data…>]} all (or blank) tables Table(s) associated with the specified group (group name is case sensitive), or for all groups if group name is omitted {"Group Name":"group name","Group Table":[“table name”<,”next table name<,…>>”]} Description for the specified group (group name is case sensitive), or for all groups if group name is omitted {"Group Name":”group name”,”Group Description”:”group description”} Data field information for the specified group (group name is case sensitive), or for all groups if group name is omitted {"Group Name":"group name",”Group Data Field”: [{"Field Name":”field name”,“Description”:”field description”,”Size”:”field character length”,“Input Type”:”input data type”,”Required”:”true or false”,”Applicability”:”field applicability”,“Value”:”field value”}<,next field’s data…>]} Names of all groups {"Group Names":["first group name"<,"second group name"<,"…">>]} group description fields names 39 Johnson Space Center Engineering Directorate Request Component application Attribute Name Doc. No. JSC-37494 Date: January 2018 Returned Information Version 1.1.50 Page 40 of 254 Output1,2 Same requests as for group above, except only group information for groups representing a CFS application is returned telemetry scheduler Telemetry scheduler's copy table entries ,
, , application variable Core Flight System Command and Data Dictionary Utility User’s Guide or blank , , {"Stream Name":"stream name","Header Size":”size”,”Optimized”:”true or false”,"Copy Table":[{”Input Message ID”:”input ID”,“Input Offset”:”input byte offset”,”Output Message ID”:”output ID”,“Output Offset”:”output byte offset”,”Number of Bytes”:”output size in bytes”,”Root Table”:”root table name”,“Variable Path”:”variable path”} <,next row<,…>>]} Application scheduler's schedule table entries This command is currently ignored The variable path and name in the format used by the application paired with the converted path and name (dependent on the input parameters). If no variable path and name is supplied then every variable in the project along with its converted form is returned {“variable path and name (application format)”:”variable path and name (user-specified format)”[,…]} 40 Johnson Space Center Engineering Directorate Request Component telemetry command Attribute Name <, , > all (or blank) Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Returned Information Version 1.1.50 Page 41 of 254 Output1,2 Structure table name, variable name, data type, data stream information, enumeration information, and all other data associated with the variable for the telemetered variables in the structure tables belonging to the specified group (or application), or for all structure tables if group name is omitted. Filters can be specified for the data stream name and/or the sample rate so that only those telemetered variables matching the filter(s) are returned {"Structure Table Name":"table name from which the variable is taken",”Variable Name”:”variable name”,"Data Type":"variable’s data type","Data Streams":[{"Stream Name":"first stream’s name","Sample Rate":"variable’s sample rate in this stream"}<,next stream’s data<,…>>],"Enumerations":[{"Enumeration Name":"first enumeration’s name","Enumeration Value":"first enumeration’s value"}<,next enumeration’s data<,…>>]} Command table name, command name, command code, command description, and for each of the command’s arguments the argument name, data type, enumeration, minimum value, maximum value, and any other argument data, for the commands in the command tables belonging to the specified group (or application), or for all command tables if group name is omitted {"Command Table Name":"table name from which the command is taken",”command name column name”:”command name”, ”command code column name”:”command code”,<”command description column name”:”command description”>,”Arguments”:[{"first argument’s name column name”:”first argument’s name”,"first argument’s data type column name”:”first argument’s data type”,"first argument’s enumeration column name”:”first argument’s enumeration”,"first argument’s minimum value column name”:”first argument’s minimum value”,"first argument’s maximum value column name”:”first argument’s maximum value”<,first argument’s other column data>}<,next argument’s data<,…>>]} 41 Johnson Space Center Engineering Directorate Request Component Attribute Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Returned Information Version 1.1.50 Page 42 of 254 Output1,2 Table type definitions {“Table Type Definition”:[{“Column Name”:,”type name”,” Description”:”type description”,”Input Type”:”input data type”,”Unique”:”true or false”,”Required”:”true or false”,”Enable if Structure”:”true or false”,”Enable if Pointer”:”true or false”}]} Data type definitions {“Data Type Definition”:[{"Type Name":"userdefined name”,”C Name”:”C-language name”,”Size”:”size in bytes”,”Base Type”:”base data type”}<,next data type definition<,…>>]} Macro definitions {“Macro Definition”: ”:[{“Macro Name":”macro name",”Value”:"macro value”}<,next macro definition<,…>>]} Message ID owners, names, and values message_id {“Message ID Owner, Name, and Value”: [{“Owner":”message ID owner",”Message ID Name”:"message ID name”,”Message ID”:"message ID value”}<,next message ID<,…>>]} project_info {"Project":"project name",”Database”:”database name”,"Description":"project description","Status":"locked or unlocked","User":"user name",”Owner”:”owner name”,”Project Data Field”:[ {"Field Name":”field name”,“Description”:”field description”,”Size”:”field character length”,“Input Type”:”input data type”,”Required”:”true or false”,”Applicability”:”field applicability”,“Value”:”field value”}<,next field’s data…>]} table_type data_type macro Get the active project's information (name, database name, description, lock status, current user name, project owner name, and project data fields) 42 Johnson Space Center Engineering Directorate Request Component Attribute Name authenticate user name user password shutdown 1 2 Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Returned Information Determine if the specified user credentials are valid for the currently open project database Version 1.1.50 Page 43 of 254 Output1,2 true if the credentials are valid; false otherwise Close the web server and project database, and exit the CCDD application Only those JSON “key”:”value” pairs that are members of a JSON array (i.e., that are enclosed by brackets ([]) in the output) have their original order preserved; other pairs may appear in any order. If Name is omitted in a table, proto_table, root_table, instance_table, group, or application request then a JSON array is returned in the format [<,second output<,…>>], with each array member representing a table, group, or application. Table 6. Web data access commands 43 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 44 of 254 4.9.1.6.1 Enable server Selecting the Enable server command toggles between starting and stopping the web server. When enabled, the web server allows CCDD to respond to web-based queries. When disabled, the server ignores web queries. 4.9.1.6.2 Select port The Select port command displays a dialog (Figure 12) that allows selection of a port number for the embedded web server. Enter the server port number, then select the Okay button. If the web server is active then it’s automatically restarted using the new port number. Select the Cancel button to exit the dialog without changing the server port. Figure 12. Web Server dialog 4.9.1.7 Preferences The Preferences command displays the Preferences dialog (Figure 13), which allows altering the application’s display characteristics. This includes choosing the “look and feel” (L&F), fonts, colors, sizes, and spacing values applied to the program’s GUI components. The dialog has a separate tab for each of the selection types. Once updates to the preferences are completed press the Close button to exit the dialog. The preference changes are saved so that the updated characteristics are used when the application is opened again. See Appendix E.2 for details on the stored preferences. Figure 13. Preferences dialog; look and feel preferences 44 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 45 of 254 4.9.1.7.1 L&F The L&F can be changed via the L&F tab (Figure 13). L&Fs change the shape and color scheme of the graphical components (see Figure 14), though the basic layout remains the same. The default is “Metal”, the standard L&F provided with Java. The list of L&F selections displayed in the dialog is dependent on the available L&Fs loaded on the host machine. When the radio button associated with the desired L&F is selected the Preferences dialog, main application window, and any other open CCDD windows are immediately redrawn to reflect the L&F chosen. Figure 14. Example look and feel differences 4.9.1.7.2 Font The Font tab displays the selection controls for the various fonts used in the application (Figure 15). Figure 15. Font preferences Each font is represented by a button with a sample of the font’s text beside it. Hovering the mouse pointer over the font button displays a tool tip describing the font’s use in more detail. To alter a font press its associated button – a font selection dialog appears (Figure 16). The font, style, and size are selected from the lists; the Sample field displays a sample of text using the chosen font settings. Select Update to change the selected font. The font change is implemented immediately in all of the 45 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 46 of 254 application’s open windows. Select Default to use the font’s default settings. Press the Close button to exit the font selection dialog. Figure 16. Font selection dialog 4.9.1.7.3 Color The Color tab displays the selection controls for the various colors used in the application (Figure 17). Figure 17. Color preferences 46 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 47 of 254 Each color is represented by a color box with a description beside it. Hovering the mouse pointer over the color box or description displays a tool tip describing the color’s use in more detail. To alter a color select its associated box – a color selection dialog appears (Figure 18). The actual appearance of the color selection dialog varies based on the chosen L&F. However, the basic color selection for each is the same – use the mouse to operation alter the color parameters via the dialog’s buttons, sliders, wheels, input fields, etc. Select Update to change the selected color. The color change is implemented immediately in all of the application’s open windows. Select Default to use the color’s default settings. Press the Close button to exit the color selection dialog. Figure 18. Color selection dialog 4.9.1.7.4 Size The Size tab displays the selection controls for the various size values used in the application (Figure 19). Figure 19. Size preferences 47 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 48 of 254 Each size value is represented by an input field with a description and default value button on either side of it. Hovering the mouse pointer over the description or input field displays a tool tip describing the size value’s use in more detail. The description includes the minimum and maximum values allowed. To alter a size value enter a valid value into its associated input field. Selecting the size value’s associated Default button (which displays the default value) enters the size value’s default value into the input field. Select Update to implement the altered size value(s). Although size changes are implemented immediately, these are not apparent until the size value is used (e.g., the log message length applies to event messages subsequently logged). 4.9.1.7.5 Spacing The Spacing tab displays the selection controls for the various spacing values used in the application (Figure 21). Figure 20. Spacing preferences Each spacing value is represented by an input field with a description and default value button on either side of it. Hovering the mouse pointer over the description or input field displays a tool tip describing the spacing value’s use in more detail. The description includes the minimum and maximum values allowed. To alter a spacing value enter a valid value into its associated input field. Selecting the spacing value’s associated Default button (which displays the default value) enters the spacing value’s default value into the input field. Select Update to implement the altered spacing value(s). As indicated by the note at the bottom of the dialog changes to spacing values are not applied to the application’s open windows. These must be closed and reopened to use the updated values. Since this includes the main window, the application must be restarted in order for the spacing values to affect it. 4.9.1.7.6 Path The Path tab displays the selection controls for the various folder paths used in the application (Figure 21). 48 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 49 of 254 Figure 21. Path preferences Each path is represented by an input field with a description and path selection button on either side of it. Hovering the mouse pointer over the description or input field displays a tool tip describing the path’s use in more detail. To alter a path either enter it into its associated input field or press its Select… button to display a folder chooser dialog; once selected in the dialog the path appears in the input field. Select Update to implement the altered path(s). Paths can be absolute or relative. Relative paths are based on the folder in which the application is executed. Note that path selection in other dialogs (for example, the Script Manager or Open Event Log dialogs) updates the respective path if changed in the dialog. Path selection via command line argument also updates the path preference. The Script output path is a special case. It does not directly affect the output location of files generated by scripts. Instead, a script may obtain the Script output path via an access method (see paragraph 4.10.7) and use it to set the location of any output files(s). 4.9.1.8 Exit Choosing the Exit command displays a dialog so that the user can confirm whether or not to exit the application. Select Okay to exit CCDD. If there are unsaved changes to a table editor or the table type editor then the user is queried whether or not to continue. If Okay is selected the open editors are closed (any unsaved changes are discarded), the main application window is closed, and the application exits. Select Cancel to close the dialog without exiting the application. 4.9.2 Project menu The Project menu contains commands for interacting with the project databases. Each project has a locked/unlocked status flag. This flag is checked by the application when attempting to access a project. Project access is required for the Open, New, Rename, Copy, and Delete commands described in this section. If the flag indicates the project is unlocked the command proceeds. If the flag indicates the project is locked, the project access is denied and the specified operation is terminated. 49 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 50 of 254 Access failure results in display of a database error dialog and the failure is written to the event log. The lock status is set to “locked” for an open project database. When the project database is closed (e.g., when exiting the CCDD application) the flag is set to “unlocked”. Abnormal termination of the CCDD application can result in a project database retaining a locked status. The Unlock command (paragraph 4.9.2.9) allows clearing a project’s lock status. Note: In the project dialogs below, only those project databases for which the current user is allowed access are displayed. 4.9.2.1 Open Selecting the Open command results in a dialog being displayed that shows the CCDD project databases, along with their descriptions, that are available in the PostgreSQL server (see Figure 22). The currently open project database is shown selected and grayed out. Other projects that are open in another instance of the CCDD application are also grayed out and have their associated radio button disabled. Select a project’s radio button and then the Open button to open the selected project’s database. The currently open project is first closed, along with any open table or table type editors. If the editors have any unsaved changes then a confirmation dialog appears, allowing the user to choose whether to continue with the project change, discarding the unsaved changes, or to cancel the project change. Select Cancel to allow the currently opened project to remain open. Figure 22. Select Project dialog 4.9.2.2 Close When the Close command is selected the currently open project database is closed, along with any open data table or table type editors. If the editors have any unsaved changes then a confirmation dialog appears, allowing the user to choose whether to discard the unsaved changes and continue with closing the project, or to cancel closing the project. 4.9.2.3 New The Create Project dialog (see Figure 23) appears when the New command is chosen, which allows creation of a new CCDD project database. A project owner must be selected from the list of available roles stored in the server, and a name supplied for the new project. Optionally, a description can be entered for the project. The choice of owner should take into account the number of users that require access to the project’s database. If only a single user needs access then that user can be selected as the owner. If multiple users need access then a group role should be created and this role assigned as the owner. All users 50 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 51 of 254 requiring access would then need to be made members of this group role. Note that any user with super user status can access the project’s database regardless of the owner. See paragraph 4.3 for further information regarding setup of the PostgreSQL server. The project name can contain any character except a semi-colon (;). The project name is used to create the project’s PostgreSQL database name. To meet the PostgreSQL naming constraints all letters are changed to lower case, any non-alphanumeric characters are converted to underscores, and an underscore is prepended to the resulting name if it begins with a numeral. If the resulting database name length exceeds 63 characters (the maximum allowed by PostgreSQL) then the name is truncated to the maximum length. The project and derived database names must be unique; these may not be the same as another project/database name existing in the server. The description can contain any character and, optionally, can be formatted using HTML tags. Figure 23. Create Project dialog 4.9.2.4 Rename When the Rename command is selected the Rename Project dialog is displayed (see Figure 24). This dialog allows an existing project to be renamed, its description to be altered, or both. When one of the radio buttons representing a project’s database is selected the name and description appear in the fields below the radio button panel. Projects that are open in another instance of the CCDD application cannot be renamed and are grayed out with their radio button disabled. See paragraph 4.9.2.3 for constraints on the project name and description. When the Rename button is selected the project and description are updated. If the currently open project is renamed any open table editors are closed; if an editor has unstored changes then a dialog first appears allowing the user to confirm discarding the changes or canceling the rename operation. Note that this dialog can, if desired, be used to alter only the project’s description (the description can also be edited using the Manage project fields command in the Data menu; see paragraph 4.9.3.13). Selecting the Cancel button closes the dialog without making any alterations. 51 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 52 of 254 Figure 24. Rename Project dialog 4.9.2.5 Copy When the Copy command selected the Copy Project dialog is displayed (see Figure 25). This dialog allows an existing project’s database to be copied. When one of the radio buttons representing a project is selected the name and description appear in the fields below the radio button panel. The project name has the text “_copy” automatically appended, though the copy’s name and description can be altered as desired. See paragraph 4.9.2.3 for constraints on the project name and description. The Append date and time to project name check box, if selected, replaces the text “_copy” with the current date (year, month, and day) and time (hours, minutes, and seconds) stamp. Deselecting the check box removes the data and time stamp and appends the text “_copy” again. When the Copy button is selected the selected project’s database is copied, using the copy name and description. Selecting the Cancel button closes the dialog without making a copy. 52 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 53 of 254 Figure 25. Copy Project dialog 4.9.2.6 Delete The Delete command allows one or more project databases to be deleted. The Delete Project(s) dialog (Figure 26) appears when the command is issued. Projects that are open, in this or another instance of the CCDD application, cannot be deleted and are grayed out with their associated radio button disabled. After selecting a project (or projects) to delete, selecting the Delete button removes the project database(s) from the server. Selecting the Cancel button exits the dialog without deleting any projects. If Delete is selected a confirmation dialog is displayed for each selected project; selecting Okay continues with the delete operation for that project, and Cancel ignores the indicated project and does not delete it. 53 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 54 of 254 Figure 26. Delete Project dialog 4.9.2.7 Backup The Backup command allows the user to create a backup of the currently open project’s database. A file selection dialog is displayed for choosing the location and name of the backup file (Figure 27). The backup file extension is ‘.dbu’. The Append date and time to file name check box, if selected, appends the current date (year, month, and day) and time (hours, minutes, and seconds) stamp to the file name. Deselecting the check box removes the data and time stamp. Select the Backup button to proceed; if the file selected already exists an overwrite confirmation dialog appears. The backup file is created using the PostgreSQL pg_dump command. This produces a PostgreSQL script file, in plain ASCII text, that has all of the commands necessary to create the project’s database as it currently exists. The backup file makes it easy to transfer the database between servers and platforms. The Restore command, detailed in paragraph 4.9.2.8, uses the file generated by the Backup command to recreate a project’s database. Selecting the Cancel button exits the dialog without creating a backup. Figure 27. Backup Project dialog 54 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 55 of 254 4.9.2.8 Restore The Restore command allows (re)creating a project’s database on a server using a PostgreSQL script file created using the Backup command (see paragraph 4.9.2.7). Using the dialog that appears, navigate to the desired backup file, select it, and press the Restore button; the project database recorded in the script file is restored to the server. The name of the restored database is its original name with “_restored” appended, and the owner is set to its original owner. If the name of the restored project’s database would match that of an existing database then a sequence number is appended to the restored database’s name. For example, if the database abc is restored and the database abc_restore already exists then the database is restored as abc_restore1; if abc_restore1 already exists then abc_restore2 is used, and so on until an unused name is found. 4.9.2.9 Unlock The Unlock command allows the locked status to be changed to “unlock” for a project database. This command is intended to be used to remove a lock from a project that remains locked after abnormal termination of the CCDD application. The Unlock Project(s) dialog (Figure 28) appears when the command is issued. Though all projects are displayed, only those that are locked have their associated check box enabled. The locked/unlocked status is displayed beside the project database name along with the name(s) of the user(s) that have active connections to the project. A project is shown as “Current” if opened by the current instance of the CCDD application and is shown as “in use by” the current user. “Locked” is displayed if a project is in use by another instance of the CCDD application or was open when the application terminated abnormally. “Unlocked” indicates that no other instance of the CCDD application has the project open. Other applications may have active connections to the project (e.g., the PostgreSQL command line interface application, psql). The users for these non-CCDD connections are also shown in the “in use by” list. Referring to Figure 28, project abc is unlocked with no active connections, project cdd_db_pk is open by user new_user in this instance of the CCDD application, project test2 is not open by CCDD but does have an active connection from another application by user rmcclune, and project test_project is open by user new_user in another instance of CCDD. After selecting a project (or projects) to unlock, selecting the Unlock button unlocks the project database(s). Selecting the Cancel button exits the dialog without altering the project lock statuses. Warning: Removing a project’s lock allows concurrent access to the project from more than one instance of the CCDD application. This may produce unexpected results or corruption of the project database if the multiple instances make updates to the update. 55 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 56 of 254 Figure 28. Unlock Project(s) dialog 4.9.2.10 Verify The Verify command performs a consistency check on the currently open project database. This check ensures that the project’s data tables are consistent with the table type definitions and that the information within a table is valid. Errors in the tables should not arise from interactions with the CCDD application. However, changes to the project’s database from another application (e.g., psql) or using a version of the CCDD application that differs from the one used to create the project could result in the introduction and flagging of errors. The user is alerted to any potential problems and, where possible, is given the option to make corrections to the project’s tables, ignore the problem and continue the check, or to cancel the check. There are three areas of verification performed, described in the following paragraphs. No changes are made to the project database until the user selects and confirms applying the updates at the end of the check. Since the project database can be altered by the verification it is recommended that the project be backed up or copied prior to allowing any updates to the database. The internal table check verifies the project database’s internal tables. These tables are for use by the CCDD application and are not directly viewable or editable by the user from within the application. The verification checks that the tables contain the expected number of columns and that the columns have the expected names and data types. Extraneous internal tables – tables with names conforming to the internal table naming scheme – are also detected; these tables can be created by the application’s automatic update feature and can be ignored. The path reference check verifies that the table and variable references in the internal tables are valid. Many of the internal tables store references to tables, and in the case of structure tables the table reference can include one or more child tables and associated variable names. When changes made to a table the references in the internal tables are updated as well. If any table or variable references no longer exist these references can be removed upon confirmation by the user. The table type check compares each data table to its table type definition, verifying that the number of columns, column names, and column order match. Each data table is checked to see if its type matches one of the defined table types, and if so, that it contains only those columns defined for that type. If updating is confirmed then missing columns are added (devoid of data) and extra columns are eliminated (including the data in them). If the table’s type is not defined then the entire table is deleted, along with its contents, when the update is applied. If the internal data type of the column doesn’t match the expected one then the column data type is corrected with no loss of the column’s data. 56 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 57 of 254 The table data check performs a check of the data within each table. In doing so it opens and inspects each data table and can generate a considerable number of database queries as is evidenced in the event log. Depending on the number of tables and the amount of data within them this operation can take a while. Each data value is checked to ensure it isn’t null (empty cells in a data table contain blanks instead of nulls) and that it is compatible with the input type as defined in the table’s type definition (e.g., no alphabetical characters in an integer cell). A check is made that each row in the table contains a row index (these indices are hidden from display in the table editor), that the row indices begin at 1, and there are no gaps in the index values. For structure tables containing array variables the check looks for missing array definitions (i.e., an array member without a corresponding array definition) and missing members (e.g., an array with an array size of 3 having only two members). Any columns in the table marked as unique (via the table type manager) are checked for duplicate values. If a duplicate is found and updating is confirmed then the value is replaced with a blank. Note that certain inconsistencies may prevent a complete check of a project. For example, if a column is missing from a data table then the table’s data can’t be loaded (an error dialog is displayed) and checked until the missing column is added at the end of the verification check. For this case the column should be allowed to be added during the first verification check, then a second verification performed so that the data within the affected table is checked. Inconsistencies ignored during the table data verification section may lead to subsequent inconsistency detection that otherwise wouldn’t exist. An example would be ignoring a missing array definition when multiple array members are present – an issue is raised for each array member if the missing definition is ignored, whereas if updated the subsequent missing definition warnings won’t occur. While the check is being conducted a dialog appears (Figure 29) showing the verification progress. This dialog allows halting the verification by pressing the Halt button. No changes are made to the project database if the Halt button is pressed. Figure 29. Verification and termination dialog When the verification steps are complete, if any issues are detected then a dialog appears detailing the issues and the corrective action to be taken (Figure 30). After selecting the check box(es) in the Corrective Action column (or using the Select all check box to toggle selection of all of the issues), selecting Okay applies the corrective action(s) to the project database to address the issues flagged to be updated. Selecting Print allows outputting the list to a printer. Selecting Cancel exits the verification check without making any changes. 57 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 58 of 254 Figure 30. Example Perform Corrections dialog 4.9.3 Data menu The Data menu has the commands for manipulating the data tables that contain a project’s data. 4.9.3.1 New table(s) The New Table command allows creation of a new data table. The New Table dialog (Figure 31) displays the defined table types and input fields for the table name and its description. Figure 31. New Table dialog A table type must be selected along with a valid table name. The description is optional and can be added or altered later using the table editor. Table names must be unique within a project. Though upper and lower case characters may be used, the name must still be unique if all of the characters are forced to lower case. The name must begin with a character or underscore (_) and can only contain 58 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 59 of 254 characters, numerals, and underscores. Name length is constrained by PostgreSQL to a maximum of 63 characters. Also, the name may not match a primitive data type (e.g., double, or int8), a PostgreSQL reserved word, or begin with a pair of underscores (this is used to designate internal tables created by the CCDD application). A warning dialog appears if any constraint is violated. Multiple tables of the same type may be created by entering more than one name in the table name field with each name separated by a comma. The new tables created in this manner share the description entered in the description field (if any). The descriptions can be added or altered later using the table editor. Selecting Create causes the table(s) to be created and stored in the database. Each table created has the columns defined by the selected table type and initially has no rows. If the type chosen has default data fields, then the new table inherits these fields and their default values. The new table(s) can then be opened using the Edit command (see paragraph 4.9.3.2). 4.9.3.2 Edit table(s) The Edit table(s) command displays the data table selection dialog (Figure 32). Figure 32. Edit Table dialog The selection dialog has a table tree (see paragraph 4.5.3) from which one or more tables are selected for editing. Pressing the Open button opens the selected table(s) in a table editor (see Figure 33 for an example). Positioning the mouse pointer over a table name in the tree and double right-clicking can also be used to open the selected table. The Cancel button closes the table selection dialog without opening a table. 59 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 60 of 254 Menu bar Table tab(s) Table data Description Data field(s) Buttons Figure 33. Example table editor The table editor provides the means by which data is added to, altered, or removed from a data table. The editor is divided into six main sections. Menu bar The first section is the menu bar, which contains the commands, described in the following paragraphs, for manipulating the table contents. Table tab(s) The second section has one or more tabbed panes, each representing a data table’s contents. The tab names indicate the table to which the tab applies. A prototype or root table shows only the prototype/root name. For a structure table’s child table the tab displays a name in the format root : structure.variable where root is this table’s root table name, structure is the name of the prototype structure represented by this table, and variable is the variable name that references this child table in the child’s immediate parent structure. An asterisk beside the table name in the tab indicates that a change has been made to the table that hasn’t been stored in the project database. Hovering the mouse pointer over the tab name produces a pop-up tool tip showing the table’s type, root table, and complete structure and variable path. Table data The columns displayed in the tabbed pane’s table are determined by the table type of the table being edited. The table columns can be sorted and repositioned as described in paragraph 4.2; however, the sorted order does not dictate the actual table data row order. See paragraph 4.9.3.2.4 for the menu commands for repositioning the columns. If the column order change is stored in the database then it is restored when the table is reopened. Column ordering is preserved separately for each user. Description This section contains the table description. The description is initially empty (unless set when the table was first created). The text entered here is used as a tool tip when the mouse pointer hovers over the table’s name in the table tree. Letter, numeral, and punctuation characters may be entered. Additionally, HTML tags can be inserted to provide additional formatting to the tool tip text. 60 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 61 of 254 Data field(s) This section displays any data field(s) assigned to the table. See paragraph 4.6 for details concerning data field creation. Buttons The remaining section has a series of buttons that perform some of the more commonly used commands. Certain buttons may be disabled depending on the table displayed in the editor. The buttons are as follows: Ins Row Inserts a new row in the table. See paragraph 4.9.3.2.3.1. Del Row Deletes the selected row(s) from the table. See paragraph 4.9.3.2.3.2. Up Moves the selected row(s) up one row. See paragraph 4.9.3.2.3.3 Down Moves the selected row(s) down one row. See paragraph 4.9.3.2.3.4. Left Moves the selected column(s) left one column. See paragraph 4.9.3.2.4.1 Right Moves the selected column(s) right one column. See paragraph 4.9.3.2.4.2. Undo Undoes the last action performed (typing, paste, insert, delete, redo, etc.). Redo Reverses the last action undone (typing, paste, insert, delete, redo, etc.). Store Stores the currently displayed table’s contents (cell data, description, and data fields) in the database. See paragraph 4.9.3.2.1.3. Close Closes the currently displayed table’s editor. See paragraph 4.9.3.2.1.8. The following paragraphs provide details on the commands available in the table editor menu bar. 4.9.3.2.1 File menu 4.9.3.2.1.1 Edit table(s) The Edit table(s) command displays the Edit Table dialog (Figure 32). The table(s) opened from this dialog appear in the current table editor under their own tabs. 4.9.3.2.1.2 Edit prototype If the currently displayed table in the editor is a child table then issuing the Edit prototype command opens the child’s prototype table in the current table editor under its own tab. 4.9.3.2.1.3 Store current The Store current command stores the currently displayed table’s contents, including the table’s cell data, description, data fields, row order, and column order, into the database if changes have been made since the table was opened or since the last store operation. If no changes have been made then no action is taken; otherwise a confirmation dialog appears allowing the user to choose between continuing with the store operation and canceling it. 4.9.3.2.1.4 Store all Selecting the Store all command is similar to the Store current command (paragraph 4.9.3.2.1.3) except that all tables in the table editor are stored to the database if changes have been made. A confirmation dialog appears allowing the user to choose between continuing with the store operation and canceling it. 4.9.3.2.1.5 Import data The Import data command provides a means of inserting data and/or data fields from a CSV, EDS XML, JSON, or XTCE XML formatted file into the table currently displayed in the table editor. The file from which to import the data may contain the table name and type, table data, table description, and/or 61 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 62 of 254 data field values for one or more tables, but only the data and fields for the first table defined in the file are imported. A dialog appears (Figure 34) allowing the user to choose the import file based on file format. The initially displayed folder depends on the last successfully imported or exported table. The Export table and Export table(s) commands produce files compatible with the import command; see paragraphs 4.9.3.2.1.6 and 0; Appendix A contains details on the file formats. The Overwrite existing cells check box, if selected, causes the imported data to overwrite data in the existing cells, beginning at the currently selected row. If unchecked, rows are inserted into the table at the currently selected row (or at the end of the table if no cell is selected) to contain the imported data. The Use existing field if duplicate check box, if selected (the default), causes any imported data fields to be ignored if the table already has a field of the same name. If unchecked, then the existing data field is replaced by the imported one. Figure 34. Import data and fields into an existing table dialog The import operation ignores the data type and macro definitions, and table data for tables other than the first one defined in the file. The table type definitions are evaluated in the event the table from which the data is imported is otherwise undefined. If a column name is missing in the table type definition a dialog appears alerting the user to the error. The user can elect to ignore this table type definition and continue with the import, ignore any remaining table type errors in this import file and continue, or cancel the import. Following the import any table type additions are removed. The column names associated with the row data are compared to those in the table’s table type definition in order to insert the cell values into the proper column. If the column name associated with a cell value isn’t recognized as one belonging to the table’s table type definition then that cell value is ignored and a dialog appears alerting the user to the discrepancy. The user can elect to ignore the unrecognized column name and continue with the import, ignore any remaining unrecognized column names in this import file and continue, or cancel the import. Note: The XTCE format associates column data with a specific variable name. If the XTCE table data is imported with overwrite enabled the variable name in the target table’s row is replaced. If only the column data other than the variable name is desired then the XTCE file must have the variable name 62 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 63 of 254 reference removed from the Parameter reference. For example, the data for a “Units” column associated with variable “abc” may appear as: rpm In order to import only the “Units” column without the variable name the Parameter reference must have name=”abc” removed so that it appears as: 4.9.3.2.1.6 Export table The Export table command provides a means of outputting the current table’s definition to a file in CSV, EDS XML, JSON, or XTCE XML format. This is equivalent to the Export table(s) command in the main window’s Data menu - see paragraph 4.9.3.7 for details. 4.9.3.2.1.7 Print current The Print current command outputs the currently displayed table to a printer or file selected by the user from the printer dialog that appears. The table’s data fields are also output on a separate page. 4.9.3.2.1.8 Close current The Close current command closes the currently displayed table’s editor tab. If this is the last table in the editor then the editor window is also closed. If any changes to the table’s data, description, data fields, row order, or column order have been made, but not stored in the database, then a confirmation dialog appears allowing the user to choose between continuing with the close operation, discarding the changes, or canceling it, keeping the table editor open. 4.9.3.2.1.9 Close all The Close all command performs a similar operation to the Close current command (paragraph 4.9.3.2.1.8) except all tables in the editor are closed as well as the editor. For unstored changes in any of the tables, only a single confirmation dialog appears; if confirmed, the changes in all tables in the editor are discarded. 4.9.3.2.2 Edit menu 4.9.3.2.2.1 Copy The Copy command places the contents of the highlighted cell(s) into the operating system’s clipboard. This information can then be pasted into another table cell or input field within the application, or into applications other than CCDD. The Ctrl-C keys perform the same operation. 4.9.3.2.2.2 Paste The Paste command places the contents of the operating system’s clipboard into one or more table cells, if a cell is selected, or into an input field if a field is selected. The paste location within the table is determined by the leftmost and uppermost highlighted cell. If the table contains collapsed arrays then the arrays are expanded prior to pasting the data. The rows and columns of the copied cells are then placed into the editor beginning at this location and extending down and to the right, overwriting the existing data in the cells. If insufficient columns exist for the pasted data then the excess column data is 63 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 64 of 254 ignored. Extra rows are inserted at the bottom of the table to provide room for data that would be placed below the editor’s last row. See paragraph 4.9.3.2.2.3 on inserting copied data without overwriting the existing cell contents. If data from multiple cells is pasted into an input field then content from each cell is concatenated, separated by a space, and the result is pasted into the field. The Ctrl-V keys perform the same operation. 4.9.3.2.2.3 Insert The Insert command behaves similarly to the Paste command (paragraph 4.9.3.2.2.2) except that no editor data is overwritten. Instead, rows are inserted, beginning at the row below the upper- and leftmost highlighted cell, to accommodate the pasted values. The Ctrl-I keys perform the same operation. 4.9.3.2.2.4 Undo The Undo command performs the same action as the Undo button. The command undoes the last action performed (typing, paste, insert, delete, redo, etc.) in the currently displayed table editor. The Ctrl-Z keys perform the same operation. 4.9.3.2.2.5 Redo The Redo command performs the same action as the Redo button. The command reverses the last action undone (typing, paste, insert, delete, redo, etc.) in the currently displayed table editor. The Ctrl-Y keys perform the same operation. 4.9.3.2.2.6 Insert macro The Insert macro command provides a convenient means to insert a macro into a table cell. Editing must first be initiated in the cell. Position the text cursor within the cell at the point where the macro is to be inserted, or select any existing text the macro is to replace, then select the Insert Macro command. A pop-up list appears displaying all macros with values that are consistent with the input type of the cell being edited (see Figure 35; see paragraph 4.7 for information on input types). Use the mouse or keyboard to highlight the macro to insert. If the mouse pointer is hovered over a macro name in the pop up a tool tip pop up appears displaying the macro’s value. Once the desired macro is highlighted either press the left mouse button or the Enter key. The macro name is inserted into the table cell, replacing any selected text, bounded by the macro delimiter characters (##), and highlighted to aid in distinguishing it from the non-macro text (see Figure 35). Press the Escape key to remove the macro pop up dialog without inserting a macro. The Ctrl-M keys can be used in place of the Insert macro command. While editing a cell, position the text cursor or highlight one or more characters to be replaced, then press Ctrl-M. The pop-up list appears as described above. Figure 35. Example of macro name display and pop-up dialog in a data table 4.9.3.2.2.7 Show macros The Show macros command, when checked, temporarily replaces every macro with its corresponding value in each table of the editor dialog. No editing of the table may take place while the command is 64 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 65 of 254 selected (all tables cells are grayed out and most of the editor menu commands and buttons are disabled). Deselecting the Show macros command restores the macros and enables normal editing and commands. Pressing Ctrl-Shift-M produces a similar effect, causing the currently selected table to display all cells containing a macro to replace the macro with its value; releasing the Ctrl-Shift-M keys restores the macro names in the cells. 4.9.3.2.2.8 Clear selected The Clear selected sub-menu contains commands for replacing the contents of the selected cell(s) in the currently displayed table. 4.9.3.2.2.8.1 With blanks The With blanks command replaces the values in the selected cell(s) with a blank. Pressing the Delete key performs the same action. 4.9.3.2.2.8.2 With prototype The With prototype command is only available if the table editor is displaying a child table. This command replaces the value in selected cell(s) with the contents of the corresponding cell in the table’s prototype table. Pressing the Shift-Delete keys performs the same action. A special indicator flag (Ø) is prepended to the cell value and highlighted (see Figure 36 for an example). If the table changes are stored or the cell is subsequently edited this indicator is removed. Figure 36. Special indicator flag example 4.9.3.2.3 Row menu 4.9.3.2.3.1 Insert row The Insert row command performs the same action as the Ins Row button. The command causes an empty row to be inserted below the currently selected cell’s row. If cells in multiple rows are selected then the new row is inserted below the lowest one. If no cell is selected then the new row is inserted at the end of the table. The Insert key performs the same operation. A row may not be inserted within an array. If an array definition or member cell is selected then the new row is inserted below the last array member. 4.9.3.2.3.2 Delete row(s) The Delete row(s) command performs the same action as the Del Row button. This command deletes the row associated with each currently selected cell. If cells in multiple rows are selected then each of the rows is deleted. If no row is selected then this command has no effect. The Delete key performs the same operation. A row may not be removed from within an array. If an array definition or member cell is selected then the entire array – definition and members – is deleted. 4.9.3.2.3.3 Move up The Move up command performs the same action as the Up button. This command causes the row(s) of the currently selected cell(s) to move up one row relative to the remaining rows. Only prototype tables may have their rows reordered; reordering the prototype’s rows affects the row ordering for all tables 65 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 66 of 254 based on the prototype. Reordering the rows is recognized as a table change and is preserved in the database via use of the Store command (menu or button). Arrays cannot be split by use of the Move up command. If an array definition or member cell is selected then the array moves up as a unit. 4.9.3.2.3.4 Move down The Move down command performs the same action as the Down button. This causes the row(s) of the currently selected cell(s) to move down one row relative to the remaining rows. Only prototype tables may have their rows reordered; reordering the prototype’s rows affects the row ordering for all tables based on the prototype. Reordering the rows is recognized as a table change and is preserved in the database via use of the Store command (menu or button). Arrays cannot be split by use of the Move down command. If an array definition or member cell is selected then the array moves down as a unit. 4.9.3.2.3.5 Expand arrays The Expand arrays command is only available for those tables containing a column with an input type of “Array index” (e.g., the Array Size column in the default Structure table type). This command toggles display of array members in the table. When enabled, each array member is displayed in its own row in the table beneath the array’s definition row. When disabled, the array members are hidden, though the array’s definition row continues to be displayed. Array member visibility can also be toggled by positioning the mouse pointer over any cell in the array size column (except the column header) and double right-clicking. 4.9.3.2.3.6 Array overwrite The Array overwrite command is a submenu with three mutually exclusive selections: Overwrite all, Overwrite empty, and Overwrite none. The selection governs pasting of data into array member cells already containing values. Overwrite all, the default, overwrites any existing values with the pasted values. Overwrite empty only pastes values into cells that are currently empty; paste values are discarded if the target cell is occupied. Overwrite none prevents pasting values into array member cells. 4.9.3.2.4 Column menu 4.9.3.2.4.1 Move left Issuing the Move left command moves the column(s) of the selected cell(s) to the left one column relative to the remaining columns. Reordering the columns is recognized as a table change and is preserved in the database separately for each user via use of the Store command (menu or button). 4.9.3.2.4.2 Move right Issuing the Move right command moves the column(s) of the selected cell(s) to the right one column relative to the remaining columns. Reordering the columns is recognized as a table change and is preserved in the database separately for each user via use of the Store command (menu or button). 4.9.3.2.4.3 Reset order The Reset order command restores the column order for the currently displayed table to the default order. The default order is established by the order of the column definitions in the table type editor for the table’s type. 66 Johnson Space Center Engineering Directorate 4.9.3.2.5 Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 67 of 254 Field menu 4.9.3.2.5.1 Manage fields The Manage fields command allows the user to create, alter, and delete data fields for the table represented by the active table editor tab. See paragraph 4.6 for information regarding data fields and use of the data field editor. The fields manipulated by the field editor are displayed below the table editor table and description when the Update button is pressed. After the field editor is closed values can be entered into the data fields. The table editor’s Store button or command must be used to store the changes in the project database and apply them to the table. 4.9.3.2.5.2 Clear values The Clear values command clears the contents of all of the currently displayed table’s data fields. A confirmation dialog is first displayed. Selecting Okay causes all of the data field values to be blanked. Selecting Cancel exits the dialog without affecting the data field values. 4.9.3.3 Rename table The Rename table command allows a prototype data table to be renamed. Child tables cannot be renamed using this dialog. Child tables are instances of a prototype table assigned as a variable, so a child table’s name is a combination of its prototype table name and the variable name in its parent table’s prototype. Therefore, child table names can only be altered by changing the name of the child table’s prototype table, or changing the name of the variable representing the child table in its parent table’s prototype table. The Rename Table dialog (Figure 37) appears, displaying a table tree showing the prototype tables and input fields for providing the selected table’s new name and description. See paragraph 4.5.3 for details on the table tree. A table is first selected from the tree; the table name and description (if any) appear in the input fields. After altering the name and description fields as desired the Rename button is selected to change the table’s name and description. See paragraph 4.9.3.1 for details on table name constraints. The new name and description are immediately reflected in all parent and child tables, including those appearing in open table editors. The description is optional and can be added or altered later using the table editor. Select the Cancel button to exit the dialog without making a change to a table name. 67 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 68 of 254 Figure 37. Rename Table dialog 4.9.3.4 Copy table The Copy table command allows a prototype data table to be copied. The Copy Table dialog (Figure 38) appears, displaying a table tree showing the prototype tables and input fields for providing the name and description of the selected table’s copy. See paragraph 4.5.3 for details on the table tree. A table is first selected from the tree; the table name appears in the input field with “_copy” appended and its description, if any, appears in the description field. After altering the name and description fields as desired the Copy button is selected to create the table’s copy. See paragraph 4.9.3.1 for details on table name constraints. The description is optional and can be added or altered later using the table editor. Select the Cancel button to exit the dialog without copying a table. 68 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 69 of 254 Figure 38. Copy Table dialog 4.9.3.5 Delete table(s) The Delete table command allows one or more prototype tables to be deleted. The Delete Table dialog (Figure 39) appears, displaying a table tree showing the prototype tables. See paragraph 4.5.3 for details on the table tree. After one or more tables is selected from the tree the Delete button is selected to delete the table(s). A confirmation dialog appears and if Okay is selected all instances of the deleted table, both parent and child tables, are deleted from the project database, including those appearing in open table editors. Select the Cancel button to exit the dialog without deleting a table. 69 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 70 of 254 Figure 39. Delete Table dialog 4.9.3.6 Import table(s) The Import table(s) command allows loading the table type definition(s), data type definition(s), macro definition(s), reserved message IDs, and table definition(s) from one or more CSV, JSON, or XML (EDS or XTCE) formatted files. A dialog appears allowing the user to choose the location of the import file(s) (see Figure 40). Figure 40. Import table(s) dialog 70 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 71 of 254 The Replace existing tables check box allows the user to choose whether to replace any existing tables with the same name with the import file data. If selected, the Append existing data fields check box is enabled, which indicates if replaced tables that have data fields have the existing fields appended to those imported. If this check box is selected then the Use existing field if duplicate check box is enabled, which determines whether to use the existing data field or the imported one in the event that the data fields have the same name. The remaining check box, Backup project before importing, determines if a backup of the project database is created prior to continuing with the import operation. The permissible formats for the import file are described in Appendix C. When a structure table is imported, if a variable’s data type is a reference to another structure and the prototype for this child structure doesn’t already exist in the project and isn’t defined in the import file(s), then the prototype table is created. This auto-generated prototype is a copy of the child structure; i.e., it’s created using the same structure table type definition as the child structure and contains all of the information in the child. 4.9.3.6.1 Importing table types If a table type present in the import file has the same name as one already present in the project then the column definitions must match (other than for the column descriptions), otherwise an error dialog appears; if the error is ignored then this table type definition is skipped. Note that any tables in the import file using this type won’t successfully be imported. Three options are available to overcome the table type collision: (1) change the existing type’s name, (2) change the type’s name in the import file (including any references in any table definitions using it), or (3) alter the existing table type to match the imported type (adding, removing, or altering the column definitions as needed). Once the changes are made the import can be performed again. When importing a table type column definition the inputs are expected in the same order as they appear in the table type editor (see Figure 47). If the number of inputs is fewer or more than those expected, or the column name is blank, then an error dialog appears; if the error is ignored then this table type definition is skipped. If the input type is blank then it defaults to ‘Text’, but if the input type is present and isn’t one recognized by the application (see paragraph 4.7) a warning error dialog appears; if the error is ignored then the input type ‘Text’ is used. The inputs representing the check box columns evaluate to ‘true’ if the input is ‘true’ (case insensitive); otherwise ‘false’ is used, regardless of the actual value supplied. 4.9.3.6.2 Importing data fields When importing a data field definition the inputs are expected in the same order as they appear in the data field editor (see Figure 7). This includes an input for the “Applicability Type”, even if the data field isn’t associated with a structure table type definition. An additional input containing the field’s value is expected as the last input. If the number of inputs is fewer or more than those expected, or the field name is blank, then an error dialog appears; if the error is ignored then this data field is skipped. If the input type is blank then it defaults to ‘Text’, but if the input type is present and isn’t one of the recognized ones a warning dialog appears; if the error is ignored then the input type ‘Text’ is used. The input representing the check box column evaluates to ‘true’ if the input is ‘true’ (case insensitive); otherwise ‘false’ is used, regardless of the actual value supplied. If the applicability type is blank then it defaults to ‘All tables’, but if the applicability type is present and isn’t one of the recognized ones a warning dialog appears; if the error is ignored then the applicability type ‘All tables’ is used. 71 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 72 of 254 4.9.3.7 Export table(s) The Export table(s) commands allow outputting the table type definition(s), data type definition(s), macro definition(s), reserved message IDs, and table definition(s), of one or more tables, either combined into a single file or with each table in its own file, in CSV, JSON, or XML (EDS or XTCE) formats. A dialog appears allowing the user to choose the location of the export file(s) and to choose which tables to export; the appearance of the dialog depends on the export format chosen (see Figure 41, Figure 42, Figure 43, and Figure 44). If the tables are combined into one file (the check box Store tables in one file is selected) then the output file name must be entered in the export file field or selected from the file chooser dialog that appears when the Select button is pressed. For multiple tables with output to individual files the file names are automatically assigned based on the table names. If an output file already exists then the table isn’t exported unless the Overwrite existing file(s) check box is selected. When the Substitute macro values for macro names check box is selected the table cells containing macro references have the references replaced with the corresponding macro value. The macro definitions are not stored in the export file(s) in this case. The Include reserved message IDs check box, when checked, causes the message IDs in the reserved message ID editor (see paragraph 4.9.3.12.2) to be exported. In the System data field name text input field enter the name of the data field that describes the system to which the table’s data belongs. The value of the data field for the table, if it exists, is extracted and used in the export file (how it is used is export format dependent; see Appendix C). The column data in an exported table file may be imported into an existing table using the Import data command (paragraph 4.9.3.2.1.5). The Import table(s) command (paragraph 4.9.3.6) imports the entire contents of the export file into the current project, creating tables, table type definitions, data type definitions, macros, and reserved message IDs as described in the file. The allowable formats of the export file are described in Appendix C. 4.9.3.7.1 CSV The Export table(s) - CSV command allows outputting one or more selected tables in CSV format. See Appendix C.1 for details on the file format. 72 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 73 of 254 Figure 41. CSV export dialog 4.9.3.7.2 EDS The Export table(s) - EDS command allows outputting one or more selected tables in EDS XML format. See Appendix C.2 for details on the file format. 73 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 74 of 254 Figure 42. EDS export dialog 4.9.3.7.3 JSON The Export table(s) - JSON command allows outputting one or more selected tables in JSON format. See Appendix C.3 for details on the file format. 74 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 75 of 254 Figure 43. JSON export dialog 4.9.3.7.4 XTCE The Export table(s) - XTCE command allows outputting one or more selected tables in XTCE XML format. The XTCE format allows defining certain XTCE attributes and classification levels that are used when constructing the output file. Default values are provided, but can be changed as desired. The attributes are used to construct the XML Header version tags. See Appendix C.4 for details on the file format. 75 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 76 of 254 Figure 44. XTCE export dialog 4.9.3.8 Manage groups The Manage groups command allows data tables to be assigned to user-defined groups. These groups can be used to filter the tables in the table trees used in other dialogs, making it easier to locate tables that are related (e.g., by a vehicle subsystem or CFS application). Groups can be added, altered, or deleted. When the command is selected a dialog similar to that in Figure 45 appears. 76 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 77 of 254 Figure 45. Manage Groups dialog The upper left of the dialog contains a table tree (under the Tables heading). The upper right shows the groups and their trees (under the Groups heading). Both trees have the Expand all and Filter by type check boxes (see paragraph 4.5.3 for further details). The Groups tree has an additional filter, Filter by application, which causes the groups to be divided into two sub-trees, Application and Other. The Application sub-tree displays only those groups that represent a CFS application (see below for more details), and the Other sub-tree shows the remaining groups. In between the tree panes are arrows for moving tables in and out of the group(s). Each tree also has one or more check boxes, to expand/collapse the tree and to filter the tree information. Below the trees is a check box for indicating that the group represents a CFS application and an input field for adding a description for the group. This description is used as text for a tool tip that appears in the table trees whenever the mouse pointer hovers over a group name. The space separating the table and group trees delineates a split pane control that is used to resize these panels relative to one another. Position the mouse pointer between the two tree panels and 77 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 78 of 254 when the pointer changes to a double-headed arrow press and hold the left mouse button. Space permitting, the adjoining panes can be resized by moving the mouse pointer left or right. Release the mouse button to exit resizing. If a variable is selected in the Tables tree then every group to which it belongs is selected automatically in the Groups tree. If multiple tables are selected in the Tables tree then any selected groups are deselected. Selecting a non-grouped table deselects any highlighted group in the Groups tree. To create a group select the New button and provide a group name and description in the input dialog that appears (Figure 46). The group name may not be blank, nor is the name allowed to match that of an existing group (including the automatically supplied group’s name, ‘All tables’, which does not appear in the Groups tree). The group name may contain alphanumeric, spaces, and punctuation characters; there is no length constraint. If the Group represents a CFS application check box is selected then the group is automatically assigned a number of data fields appropriate for a CFS application (the fields may be altered using the Fields button after the group is created; a group’s classification as a CFS application can be altered later – see below). These fields are Schedule Rate, Execution Time, Execution Priority, Message Rate, Wake-Up Name, Wake-Up ID, HK Send Rate, HK Wake-Up Name, HK Wake-Up ID, and SCH Group. The contents of these fields is used when populating the scheduler table created with the application scheduler (paragraph 4.9.4.3). If Okay is selected the new group’s name appears in the group tree. Figure 46. New Group dialog To add tables to a group select the group in the Groups tree using the mouse or keyboard. Then, in the Tables tree, expand the tree as needed and select one or more tables using the mouse or keyboard. Multiple tables can be selected simultaneously by holding the Ctrl or Shift keys down when making a selection. Selecting a structure table automatically includes its child tables (and their children, etc.). Choosing a child table automatically includes its parent table, and its parent’s parent, etc., up to the root table, but does not include any of its siblings (i.e., tables having the same parent and at the same tree level as the chosen table). Finally, select the right arrow button in the center of the dialog. The table(s) chosen appear in the selected group, and the group’s tree is expanded to show the table(s) added. Note that the table hierarchy is preserved in the group’s tree. More tables can be assigned to the group as described above. To remove tables from a group expand the group’s tree and select the table(s) to remove using the mouse or keyboard. Then select the left arrow button in the center of the dialog to delete the tables from the group. A table’s children (and their children, etc.) are removed along with the chosen table. To delete a group, first select it in the Groups tree, then select the Delete button. Multiple groups can be removed simultaneously if desired by highlighting them while using the Shift or Ctrl keys. 78 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 79 of 254 To rename a group, select a single group from the Groups tree, then press the Rename button. An input dialog appears with the name of the selected group in the input field. Alter the name as desired and select Okay to change the group’s name. The renamed group name may not be blank, nor is the name allowed to match that of an existing group. Select Cancel to exit the input dialog without affecting the group’s name. To copy a group and its member tables, select a single group from the Groups tree, then press the Copy button. An input dialog appears with the name of the selected group in the input field with the text “_copy” appended. Alter the name as desired and select Okay to create a copy of the selected group. The copy has all of the tables assigned to it that are assigned to the original. The group name of the copy may not be blank, nor is the name allowed to match that of an existing group. Select Cancel to exit the input dialog without copying the group. Data fields (see paragraph 4.6) may be assigned to a group. A group must first be selected in the Groups tree; this enables the Fields and Clear buttons. Select Fields to display the data field editor (see paragraph 4.6.1 for details on it use) for the currently selected group. Once a field is created it can have a value assigned, and the values for existing fields may be altered if desired. The data field values for the currently selected group can be cleared by selecting the Clear button. A group’s description can be added or changed by first selecting the group in the Groups tree. The current description for the group appears in the Description input field. The description can then be changed as desired. When a group is selected a check box appears above the description field allowing the group’s classification as a CFS application to be changed. If checked a number of default fields are automatically added below the description field, unless these fields are already present. Deselecting the check box does not remove these fields. Changes made in the group manager (group additions or deletions, table assignments, data field updates, or changes to descriptions) are stored in the database only when the Store button is pressed. If changes have been made a confirmation dialog first appears. Select Okay to store the updates; select Cancel to exit the confirmation dialog without altering the database. Select the Close button to exit the group manager dialog. If there are any unsaved group changes a dialog appears requesting confirmation to discard the changes. Select Okay to exit the group manager, losing any unsaved changes. Select Cancel to return to the group manager dialog. The group manager button commands are summarized below: New Create a new group. Delete Delete the selected group(s). Rename Rename the selected group. Copy Create a copy of the selected group, including its member tables and data fields. Fields Invokes the data field editor in order to create, alter, and delete data fields for the selected group. Clear Replace the values in all data fields with blanks and deselect any check box data field for the selected group. Undo Undoes the last action performed (table assignment, typing, paste, insert, delete, redo, etc.) on the selected group. Redo Reverses the last action undone (table assignment, typing, paste, insert, delete, undo, etc.) on the selected group. 79 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 80 of 254 Store Stores the changes made to the groups in the group manager into the project database. Close Closes the group manager window. If any changes have not been stored then a dialog appears allowing the user to confirm discarding the updates or to cancel closing the dialog. 4.9.3.9 Manage table types The Manage table types command opens the table type editor (Figure 47). The editor window can be broken down into the following sections: the menu bar, table type tab(s), column definitions, type description, and buttons. An additional section, showing data fields, is visible below the description if data fields are created. Menu bar Type tab(s) Column definitions Data field(s) Buttons Figure 47. Table type editor The menu bar has commands associated with the table type editor; the commands are described in subsequent paragraphs. The buttons, described in detail below, represent some of the more commonly used commands; each has a counterpart in the menu bar. Each type tab represents one of defined table types. As a default this includes the Structure and Command types. Any types created by the user also appear. The tabs are arranged in alphabetical order. Selecting the tab causes the editor to display the information for the selected table type. Each row in the editor is a definition of a column that appears in each table of this type. The order of the column definitions determines the initial column order when the table is first displayed. The editor columns can be sorted and repositioned as described in paragraph 4.2. Note that sorting the columns using the header does not affect the column order of tables created using the type. The displayed column order can be changed for each individual table in the table editor (see paragraph 4.9.3.2.4). Editor cells that are grayed out cannot be changed. Selections in a columns definition can preclude other selections. For example, since only integer data types are valid for an enumeration, columns with an enumeration input type can’t have a data type that’s a structure and the Enable if Structure check box is disabled. 80 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 81 of 254 Column definition rows are highlighted when the all of the column definitions necessary to define a structure or command table are present and the column definition is one of these rows. In Figure 47 the column definitions for the variable name, data type, array size, bit length, enumeration, and rate are highlighted since these are the ones required to define a table representing a structure. If any one of these column definitions is removed then this highlighting is removed for all of the rows. The highlighting serves to indicate that the minimum column definitions are present to define the table type. The editor column descriptions are as follows: Column Name When a table of this type is displayed, this is the name that’s displayed in the table’s header for the column defined on this row of the editor. Description This text is displayed as a tool tip whenever the mouse pointer hovers over this column’s name in the table’s header. Input Type The input type constrains the type of value entered into the table cells for this column. If the value entered into the cell doesn’t conform to the column’s specified input type then a warning message dialog is displayed and the cell reverts to its previous value. The input types are selectable from the combo box pull-down menu that appears when a cell in the Input Type column is selected. See paragraph 4.7 for information on the available input types. Unique This check box, if selected, indicates that each cell’s data value must be unique within this column. If a duplicate value is entered into a cell then a warning message dialog is displayed and the cell reverts to its previous value. Required This check box, if selected, indicates that the cell in this column requires a value. This causes the cell to be highlighted in yellow if it is empty. This does not force the user to populate the highlighted cell prior to saving changes to the table, but simply serves as a reminder that the information in this cell is considered important (for example, necessary to a script). Enable if Structure This check box, if selected, indicates that the cells in this column allow input when the same row’s data type column contains a structure reference. If the check box isn’t selected then whenever a structure is selected as the data type the table’s cell is grayed out and its value is blanked. Note: This editor column only appears when the table type contains all column definitions necessary to represent a structure. Enable if Pointer This check box, if selected, indicates that the cells in this column allows input when the same row’s data type column contains a pointer reference. If the check box isn’t selected then whenever a pointer is selected as the data type the table’s cell is grayed out and its value is blanked. Note: This editor column only appears when the table type contains all column definitions necessary to represent a structure. The button commands mirror commands available in the editor menu bar and provide an easy method of accessing the commonly used editor commands. The button commands are described below: Ins Row Inserts an empty row below the currently selected cell’s row. If no cell is selected then the new row is inserted at the end of the table. Del Row Deletes the row associated with each currently selected cell. If no row is selected then this has no effect. Up Move the row(s) of the currently selected cell(s) up one row. This affects the order of the columns of new instances of this table type; it does not affect existing tables of this 81 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 82 of 254 type. The displayed column order can be changed for each individual table in the table editor (see paragraph 4.9.3.2.4). Down Move the row(s) of the currently selected cell(s) down one row. This affects the order of the columns of new instances of this table type; it does not affect existing tables of this type. Column order can be changed for each individual table in the table editor (see paragraph 4.9.3.2.4). Undo Undoes the last action performed (typing, paste, insert, delete, redo, etc.). Redo Reverses the last action undone (typing, paste, insert, delete, undo, etc.). Store Stores the changes made to the currently displayed tab in the table type editor (not those in the other tabs) in the database. See paragraph 4.9.3.9.1.5 for further details. Close Closes the table type editor window. If any changes for any of the tabs have not been stored then a dialog appears allowing the user to confirm discarding the updates or to cancel closing the editor. The commands in the editor menu bar are described in the following paragraphs. 4.9.3.9.1 File menu 4.9.3.9.1.1 New type The New type command allows the user to create a new table type. A dialog appears with an input field for entering the new type’s name (Figure 48). The three radio buttons allow automatically populating the new type with those columns that are required for a structure or command table type; selecting None results in a table type with no columns defined. Select Create to create the new type, which is opened in the table type editor. The editor can then be used to populate the table type with column definitions and edit any that were automatically added, and afterwards new tables of this type may be created and edited. Select Cancel to exit the dialog without creating a new table type. Figure 48. New table type dialog 4.9.3.9.1.2 Copy type The Copy type command is used to create a new table type from an existing one, including all of its column definitions and default data fields. The active tab in the table type editor determines which type is to be copied, so the intended tab must be selected prior to executing the copy command. A dialog appears with an input field for entering the name of the table type’s copy. The name of the selected type is displayed with “_copy” appended. After altering the name as desired, select Copy to create a copy of the type. Select Cancel to exit the dialog without creating a copy. 82 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 83 of 254 4.9.3.9.1.3 Rename type The Rename type command is used to rename an existing table type. The active tab in the table type editor determines which type is to be renamed, so the intended tab must be selected prior to executing the rename command. A dialog appears with an input field for entering the new name for the table type. The name of the selected type is automatically displayed. After altering the name as desired, select Rename to rename the table type. All tables of the renamed type are changed to reference the new table type name. Select Cancel to exit the dialog without renaming the table type. 4.9.3.9.1.4 Delete type The Delete type command deletes an existing table type. The active tab in the table type editor determines which type is to be deleted, so the intended tab must be selected prior to executing the delete command. A confirmation dialog appears. Selecting Delete removes the table type and all tables of the deleted type from the project database. Select Cancel to exit the dialog without deleting the table type or any tables. 4.9.3.9.1.5 Store current The Store current command performs the identical action to the Store button. The command stores the changes made to the currently displayed tab in the table type editor (not those in the other tabs) in the project database. Afterwards, any table created using this table type inherits the type’s columns and data fields. All existing tables of this type, including those in any open table editors, are updated immediately with the column and data field changes. New data fields are added to existing tables; however, deleted data fields are not removed from existing tables. Changes to data field values are applied based on the Overwrite values check box described in paragraph 4.9.3.9.4.3. A confirmation dialog appears allowing the user to choose between continuing with the store operation and canceling it. 4.9.3.9.1.6 Store all The Store all command is similar to the Store current command described above, except that it stores the changes made to all the table type editor tabs in the project database. All existing tables of the affected type(s), including those in any open table editors, are updated immediately with the changes. A confirmation dialog appears allowing the user to choose between continuing with the store operation and canceling it. 4.9.3.9.1.7 Print current The Print current command prints the contents of the currently displayed tab to be sent to a printer. A dialog first appears allowing the user to select the printer (or file) and adjust the page setup. Selecting Print causes the editor contents, including the data fields (if any), to be output to the selected printer (or file). Selecting Cancel removes the print dialog without printing the table type editor contents. 4.9.3.9.1.8 Close The Close command performs the identical action to the Close button. The command closes the table type editor window. If any changes for any of the tabs have not been stored then a dialog appears allowing the user to confirm discarding the updates or to cancel closing the editor. 83 Johnson Space Center Engineering Directorate 4.9.3.9.2 Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 84 of 254 Edit menu 4.9.3.9.2.1 Copy The Copy command places the contents of the highlighted cell(s) into the operating system’s clipboard. This information can then be pasted into another cell or input field in the application, or into applications other than CCDD. The Ctrl-C keys perform the same operation. 4.9.3.9.2.2 Paste The Paste command places the contents of the operating system’s clipboard into the editor. The paste location is determined by the leftmost and uppermost highlighted cell. The rows and columns of the copied cells are placed into the editor beginning at this location and extending down and to the right, overwriting the existing data in the cells. If insufficient columns exist for the pasted data then the excess column information is ignored. Extra rows are inserted at the bottom of the table to provide room for data that would be placed below the editor’s last row. See paragraph 4.9.3.9.2.3 on inserting copied data without overwriting the existing cell contents. The Ctrl-V keys perform the same operation. 4.9.3.9.2.3 Insert The Insert command behaves similarly to the Paste command (paragraph 4.9.3.9.2.2) except that no editor data is overwritten. Instead, rows are inserted, beginning at the row below the upper- and leftmost highlighted cell, to accommodate the pasted values. The Ctrl-I keys perform the same operation. 4.9.3.9.2.4 Undo The Undo command performs the same action as the Undo button. The command undoes the last action performed (typing, paste, insert, delete, redo, etc.) in the currently displayed table type editor. The Ctrl-Z keys perform the same operation. 4.9.3.9.2.5 Redo The Redo command performs the same action as the Redo button. The command reverses the last action undone (typing, paste, insert, delete, redo, etc.) in the currently displayed table type editor. The Ctrl-Y keys perform the same operation. 4.9.3.9.2.6 Clear data The Clear data command empties all of the currently displayed editor’s cells. A confirmation dialog is first displayed. Selecting Okay causes all of the rows in the current table type editor to be deleted. Rows for the default structure and command table types that are necessary to define that particular table type are not affected. Selecting Cancel exits the dialog without affecting the cell data. 4.9.3.9.3 Row menu 4.9.3.9.3.1 Insert row The Insert row command performs the same action as the Ins Row button. The command causes an empty row to be inserted below the currently selected cell’s row. If cells in multiple rows are selected then the new row is inserted below the lowest one. If no cell is selected then the new row is inserted at the end of the table. The Insert key performs the same operation. 4.9.3.9.3.2 Delete row(s) The Delete row(s) command performs the same action as the Del Row button. This command deletes the row associated with each currently selected cell. If cells in multiple rows are selected then each of 84 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 85 of 254 the rows is deleted. If no row is selected then this command has no effect. The Delete key performs the same operation. 4.9.3.9.3.3 Move up The Move up command performs the same action as the Up button. This command causes the row(s) of the currently selected cell(s) to move up one row relative to the remaining rows. Since each row is a column definition, this affects the order of the columns of new instances of this table type; it does not affect existing tables of this type. Column order can be changed for each individual table in the table editor (see paragraphs 4.9.3.2 and 4.9.3.2.4). 4.9.3.9.3.4 Move down The Move down command performs the same action as the Down button. This causes the row(s) of the currently selected cell(s) to move down one row relative to the remaining rows. Since each row is a column definition, this affects the order of the columns of new instances of this table type; it does not affect existing tables of this type. Column order can be changed for each individual table in the table editor (see paragraphs 4.9.3.2 and 4.9.3.2.4). 4.9.3.9.4 Field menu 4.9.3.9.4.1 Manage fields The Manage fields command allows the user to create, alter, and delete default data fields for the type represented by the active table type editor tab. See paragraph 4.6 for information regarding data fields and use of the data field editor. The fields manipulated by the field editor are displayed below the table type editor table and description when the Update button is pressed. The table type editor’s Store button or command must be used to store the changes in the database and apply them to the tables. The structure table data field editor allows the user to assign fields to only parent or child structure tables, or to all structure tables. After the field editor is closed values can be entered into the data fields; these become default values for the fields in the tables to which the fields are applied. When the field updates are stored all tables of the affected table type are updated, including those in any open table editors, and tables of this type that are subsequently created have the default fields. If an existing table already has a field of the same name then it is not added; however, the field size, data type, required status, description, and value (depending on the state of the Overwrite values check box; see paragraph 4.9.3.9.4.3) are updated in the table to match the default. Fields can only be added to tables using this method. If a default field’s name is changed then this is considered a new field and is added to the tables of the affected type if the type is stored. If a default field is deleted then there is no effect on the tables when the type is stored. 4.9.3.9.4.2 Clear values The Clear values command clears the contents of all of the currently displayed editor’s data fields. A confirmation dialog is first displayed. Selecting Okay causes all of the data field values to be blanked. Selecting Cancel exits the dialog without affected the data field values. 4.9.3.9.4.3 Overwrite values The Overwrite values command determines how the default field values are applied when the table type editor Store button is selected. The default setting is unchecked. 85 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 86 of 254 If the Overwrite values check box is not selected then the data field value changes are not applied to existing tables of this table type if the tables already contain the affected data field. If an existing table does not already have the data field then the field is added with the default value, regardless of the check box status. If the Overwrite values check box is selected then all existing tables of the updated table type that already contain the data field have the contents of that field replaced with the value in the type editor data field. 4.9.3.10 Manage data types The Data Type Editor (Figure 49) provides a means of creating, modifying, and deleting primitive data type definitions (see paragraph 4.5.4 for more information on data types). When a project database is first created the primitive data types default to those shown in Table 5. Figure 49. Data Type Editor dialog The editor column descriptions are as follows: Type Name The type name is the text that represents the data type in a data table cell. Data type names must adhere to C-language naming conventions; i.e., begin with an alphabetic or underscore character, followed by alphabetic, numeric, or underscore characters. The data type names are case insensitive and must be unique. If the type name is left blank then the text in the C Name column determines the data type name displayed in the data table cell. C Name The C name is the C-language equivalent of the data type and may contain spaces. It is available to scripts and web applications (for example, a script can create a header file of typedef statements using the type name and C name combinations). One or more trailing asterisks are allowed if the corresponding base type is ‘pointer’. The C name is used as the data type in a data table cell if the corresponding type name is blank. Size Size, in bytes, occupied by this data type. The size must be an integer greater than 0. 86 Johnson Space Center Engineering Directorate Base Type Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 87 of 254 The data type’s base type: signed integer, unsigned integer, floating point, character, or pointer. The base type and the size determine how the data type is handled by the application. Each row in the table is a data type definition. The Type Name or C Name columns determine the data type displayed in the data type column drop down menus. At least one of these columns must contain text. The type name is used if it isn’t blank. If the type name is blank then the C type name is used as the data type name. Valid values must be entered in the Size and Base Type columns for every definition. The rows can be sorted by selecting the column headers, as with other table editors in the application. If a pointer base type is selected then an asterisk (*) is automatically appended to the C name (unless the cell is empty). Conversely, if the base type is changed from a pointer to something else then any trailing asterisk(s) in the C name is automatically removed. A pointer to a pointer (or a pointer to a pointer to a pointer, etc.) can be indicated by appending the requisite number of asterisks. Below is an example of creating a pointer to a structure named myStruct: Figure 50. Example pointer to a structure data type As an aid to creating a data type that represents a pointer to a structure a pop-up list of alphabetically arranged prototype structure table names can be displayed from which a structure name can be selected. This pop-up is displayed by pressing Ctrl-S and is only available when editing a cell in the Type Name or C Type column and if the Base Type column for the edited row is blank or a pointer. Use the mouse or keyboard to highlight the structure name to insert. Once the desired structure name is highlighted either press the left mouse button or the Enter key. The structure name is inserted into the table cell, replacing any selected text (Figure 51). Press the Escape key to remove the structure name pop up dialog without inserting a structure name. Figure 51. Structure name pop-up If a data type is currently in use in a data table then the size and base type may be constrained by the values in other columns on the same row of the affected table. For example, if a data type is a 2-byte integer and is used in a data table where the parameter is assigned a bit length of 10 bits then the data type size can’t be changed to a single byte since a single byte’s 8 bits is insufficient for the 10-bit parameter. The instance where the bit length exceeds the desired size must first be altered before the size can be updated. If an invalid size or base type is entered a dialog appears indicating the tables where the inconsistency exists, and the table cell reverts to its previous value. 87 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 88 of 254 The button commands are described below: Ins Row Inserts an empty row below the currently selected cell’s row. If cells in multiple rows are selected then the new row is inserted below the lowest one. If no cell is selected then the new row is inserted at the end of the table. Del Row Deletes the row associated with each currently selected cell. If cells in multiple rows are selected then each of the rows is deleted. If no row is selected then this has no effect. A data type cannot be deleted if it is currently used in a table; all references must be removed before the data type can be deleted. Up Move the row(s) of the currently selected cell(s) up one row relative to the remaining rows. The order of the data type definitions in the editor has no effect on data type usage, though it does determine the order of the types in the data type combo box lists. The capability to arrange the rows is solely for the user to group the data types as desired. Down Move the row(s) of the currently selected cell(s) down one row relative to the remaining rows. The order of the data type definitions in the editor has no effect on data type usage, though it does determine the order of the types in the data type combo box lists. The capability to arrange the rows is solely for the user to group the data types as desired. Undo Undoes the last action performed (typing, paste, insert, delete, redo, etc.). Redo Reverses the last action undone (typing, paste, insert, delete, undo, etc.). Store Stores the changes made to data type definitions in the data type editor into the project database. All tables are updated with the changes, including any tables currently open in a table editor. Close Closes the data type editor window. If any changes have not been stored then a dialog appears allowing the user to confirm discarding the updates or to cancel closing the editor. 4.9.3.11 Manage macros The Macro Editor (Figure 52) provides a means of creating, modifying, and deleting macro definitions (see paragraph 4.5.7 for more information on macros). 88 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 89 of 254 Figure 52. Macro Editor dialog The editor column descriptions are as follows: Macro Name The macro name is the text that represents the macro’s value in a data table or macro editor cell (the macro name is delimited by pairs of ‘#’ characters and highlighted in the cell). Macro names are case insensitive and must be unique. Value The macro value is the text that the macro name represents. Each row in the table is a macro definition. The rows can be sorted by selecting the column headers, as with other table editors in the application. Every definition requires a name, but the value may be blank. If a macro is currently in use in a table then the macro value is constrained by the input type of the column(s) in which the macro is referenced. For example, if a macro is inserted into a column of input type “Array index” then the macro’s value can be blank or must evaluate to a number (or a series of numbers separated by commas), as required by the array index input type. If an invalid value is entered a dialog appears indicating the tables where the inconsistency exists, and the editor cell reverts to its previous value. Macro values can reference other macros. Any macros referenced in a macro value are highlighted. Each macro in the macro’s value, when the macro is expanded, is replaced by its value. Circular macro references are not allowed (i.e., a macro references itself in its value); if detected a warning dialog is displayed and the cell contents reverts to its previous value. Macro values can also use the sizeof(data type) call. Any sizeof() calls in the macro value are highlighted similar to macro references. When expanded the sizeof() call is replaced by the size in bytes of the specified primitive or structure data type. While editing a macro value cell, the Ctrl-M keys can be used to display a pop-up list of macros for insertion into the value. Position the text cursor or highlight one or more characters to be replaced, then press Ctrl-M. The pop-up list appears as shown in Figure 53. 89 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 90 of 254 Figure 53. Example of macro name selection pop-up dialog in a macro value cell Pressing Ctrl-Shift-M temporarily replaces every macro with its corresponding value in the macro editor Values column. Releasing the Ctrl-Shift-M keys restores the macro names in the cells. The button commands are described below: Ins Row Inserts an empty row below the currently selected cell’s row. If cells in multiple rows are selected then the new row is inserted below the lowest one. If no cell is selected then the new row is inserted at the end of the table. Del Row Deletes the row associated with each currently selected cell. If cells in multiple rows are selected then each of the rows is deleted. If no row is selected then this has no effect. A macro cannot be deleted if it is currently used in a table; all references must be removed before the macro can be deleted. Up Move the row(s) of the currently selected cell(s) up one row relative to the remaining rows. The order of the macro definitions in the editor has no effect on macro usage. The capability to arrange the rows is solely for the user to group the macros as desired. Down Move the row(s) of the currently selected cell(s) down one row relative to the remaining rows. The order of the macro definitions in the editor has no effect on macro usage. The capability to arrange the rows is solely for the user to group the macros as desired. Undo Undoes the last action performed (typing, paste, insert, delete, redo, etc.). Redo Reverses the last action undone (typing, paste, insert, delete, undo, etc.). Store Stores the changes made to macro names or values in the macro editor into the database. All tables are updated with the changes, including any tables currently open in a table editor. Close Closes the macro editor window. If any changes have not been stored then a dialog appears allowing the user to confirm discarding the updates or to cancel closing the editor. 4.9.3.12 Message IDs Message IDs is a sub-menu of commands relating to message ID names and numbers, described in the following paragraphs. 4.9.3.12.1 Assign IDs The Assign IDs command provides a method for automatically assigning a unique message ID number to table cells and data fields having an input type of ‘Message ID’ (see paragraph 4.7). Telemetry message IDs are assigned in the telemetry scheduler (see paragraph 4.9.4.2). Automatic assignment can be 90 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 91 of 254 limited to structure tables, command tables, other type tables, and groups as desired. A dialog appears (Figure 54) containing a tab for structure tables, command tables, other table types, and groups. Figure 54. Assign Message IDs dialog For each tab there are two check boxes and two input fields. The first check box is used to determine if the message IDs associated with the selected tab are to be updated. For the table type tabs this affects both table cells and data fields, and for the Group tab this affects only group data fields. If this check box is unchecked the remaining fields are disabled and ignored. The first input field is the starting ID number, in hexadecimal (the ‘0x’ preceding the number is optional). The second field is the ID interval which is used to calculate the next ID value in the sequence - the default is 1; any positive integer value is valid. The final check box determines whether or not existing table/group message ID numbers are updated or left as is. When checked, existing message IDs are replaced unless the ID is flagged as protected. Message IDs are protected if a ‘#’ character is appended to the ID value (example: ox1234#). When Okay is selected then the tables representing a structure, command, or other type, and group data fields (depending on whether or not the associated check box is selected) are checked to determine if they have a column(s) or data field(s) with the input type of ‘Message ID.’ If so, then the column/field value is assigned a message ID number. IDs are assigned beginning with the starting ID number, and with each subsequent ID number equal to the previous number plus the interval value. Table column message IDs are assigned (for all tables) before message ID data fields. Macros are allowed in the table columns representing message IDs; however, the auto-assignment process will overwrite the macros with message ID values if the overwrite check box is selected for the table’s type. An ID is skipped if it is listed in the reserved message ID list (see 4.9.3.12.2), assigned to table columns and/or data fields for a table type that doesn’t have the overwrite check box selected, assigned to a group data field (unless the Group overwrite check box is selected), or assigned to telemetry messages in the telemetry scheduler (see paragraph 4.9.4.2). If the overwrite check box isn’t selected then the values for any existing structure (command, other, group) message ID data fields are also skipped in order to avoid duplicate ID values. This action also updates the project database and the message ID number columns and/or data fields for any open table editors. Select Cancel to exit the dialog without altering the message ID values. 4.9.3.12.2 Reserve IDs The editor dialog shown in Figure 55 to appears when the Reserve message IDs command is selected. This dialog allows message IDs, either singly or as ranges, to be flagged as reserved. This means that when automatic assignment of message IDs is performed (see paragraphs 4.9.3.12.1 and 4.9.4.2) the message IDs in the reserved table are skipped. 91 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 92 of 254 Figure 55. Reserved Message ID Editor dialog The editor column descriptions are as follows: Message ID(s) This column can contain a single hexadecimal number, optionally prepended with “0x”, or a range of IDs consisting of two hexadecimal numbers separated by a hyphen (-). If a range is entered the second number must be greater than the first. Message IDs are not allowed to be duplicated in the table. This includes IDs falling within an existing range or overlapping of two ranges. Description This column can be used to describe the ID or ID range. It may remain empty. Each row in the table is a reserved message ID definition. Every definition requires a message ID or ID range, but the description may be blank. If an invalid or duplicate value is entered a dialog appears indicating the problem, and the editor cell reverts to its previous value. The rows can be sorted by selecting the column headers, as with other table editors in the application. The button commands are described below: Ins Row Inserts an empty row below the currently selected cell’s row. If cells in multiple rows are selected then the new row is inserted below the lowest one. If no cell is selected then the new row is inserted at the end of the table. Del Row Deletes the row associated with each currently selected cell. If cells in multiple rows are selected then each of the rows is deleted. If no row is selected then this has no effect. Up Move the row(s) of the currently selected cell(s) up one row relative to the remaining rows. The order of the reserved message ID definitions in the editor has no effect on ID usage. The capability to arrange the rows is solely for the user to group the IDs as desired. Down Move the row(s) of the currently selected cell(s) down one row relative to the remaining rows. The order of the reserved message ID definitions in the editor has no effect on ID usage. The capability to arrange the rows is solely for the user to group the IDs as desired. Undo Undoes the last action performed (typing, paste, insert, delete, redo, etc.). Redo Reverses the last action undone (typing, paste, insert, delete, undo, etc.). 92 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 93 of 254 Store Stores the changes made to reserved message IDs or description in the reserved message ID editor into the project database. Close Closes the reserved message ID editor window. If any changes have not been stored then a dialog appears allowing the user to confirm discarding the updates or to cancel closing the editor. 4.9.3.12.3 Show all IDs The Show all IDs command displays a table showing all of the message IDs in a project along with their corresponding message ID names and the entity (table or group) in which the ID and name are found. Figure 56 is an example of the table produced by the command. The pairing of message IDs and ID names depends on assigning specific input types to the table columns and data fields. For a message ID to be recognized as such it must have the input type Message ID, and a message ID name column or field must have the input type Message ID name (see paragraph 4.7 for more information on input types). The pairings are made in the order the IDs and names appear, and the paired values must have the same owner (this prevents pairing an ID from one table with an ID name from another one for example). If the number of IDs/names is a table or group of data fields isn’t the same then the excess IDs/names are assigned blank names/IDs in the table. Lack of a corresponding ID or name can lead to erroneous pairings, so care should be taken, if this feature is used, to always create ID and name columns and fields together, and ensure the input types are correct. A script data access method, getMessageIDOwnersIDsAndNames, is provided that returns the same information as is produced by this command; see the reference in Table 7 for details. Figure 56. Example Show all IDS dialog If one or more cells is selected and the Open button is pressed then the table(s) associated with the selected cell(s) are opened in a table editor. A row is ignored if it contains a message ID belonging to a group or telemetry message. Selecting the Print button opens a printer selection dialog in order to print a copy of the table to the selected printer or file. Selecting Close closes the message ID dialog. 4.9.3.12.4 Find duplicates The Find duplicates command searches the project database table cells, data fields, and telemetry messages for message ID values used more than once, and displays a dialog showing these IDs and 93 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 94 of 254 where they are located (see the example dialog in Figure 57). If no duplicate message ID exists the dialog’s table is empty. Figure 57. Example Duplicate Message IDs dialog The Message ID column shows the duplicated ID as a hexadecimal value; the table is sorted based on the ID value. The Owners column displays the location(s) where the message ID is referenced – this can be a table cell or data field (table path and name is preceded by “Table:”), or telemetry message (message data stream and message name is preceded by “Message:”). The rows can be sorted by selecting the column headers, as with other tables in the application. Column order can be changed by dragging a column to a new position. Selecting Print causes the dialog contents to be output to the selected printer (or file). Selecting Close closes the duplicate message IDs dialog. 4.9.3.13 Manage project fields The Manage project fields command causes the project data field manager dialog, shown in Figure 58, to appear. Data fields (see paragraph 4.6) may be associated with a project, similar to how they can be associated with specific data tables and groups. The project’s description can also be edited via this dialog (the description can also be edited using the Rename command in the Project menu; see paragraph 4.9.2.4). Figure 58. Project data field management dialog 94 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 95 of 254 The Description field appears by default and cannot be deleted. The Fields button causes the data field editor (see paragraph 4.6.1 for details on it use) to appear; data fields can be added, modified, or removed via this editor. The project data field manager button commands are summarized below: Fields Invokes the data field editor in order to create, alter, and delete data fields for the project. Clear Replace the values in all data fields with blanks and deselect any check box data field for the project. Undo Undoes the last action performed (typing, paste, insert, delete, redo, etc.) in the manager dialog. Redo Reverses the last action undone (typing, paste, insert, delete, undo, etc.) in the manager dialog. Store Stores the changes made to the project description and data fields in the manager dialog into the project database. Close Closes the project data field manager window. If any changes have not been stored then a dialog appears allowing the user to confirm discarding the updates or to cancel closing the dialog. 4.9.3.14 Show/edit fields The purpose of the Show/edit fields command is to provide a means of displaying, editing, and removing data fields for one or more data tables and/or groups via a single editor (as opposed to displaying the data fields for a specific owner table in a table editor or group in the group manager). Selecting the Show/edit fields command produces a dialog displaying a table tree and a set of check boxes, one for each unique data field name currently in use by the project’s data tables (see Figure 59 for an example; if no tables exist or no data fields are currently assigned then a warning dialog appears instead indicating there is nothing to display). The user chooses the field(s) to display/edit by selecting the field’s associated check box. The Select all data fields check box is used to alternately select and deselect all of the data field check boxes. The fields can be filtered by selecting one or more tables from the table tree – only the selected fields in the selected tables are displayed in the editor. Selection of a header node in the table tree (e.g., ‘Parents & Children’, or a group name if group filtering is enabled) selects all tables under that header. If no tables are selected then no filtering occurs and the selected data field(s) are displayed for any table. Selecting the Okay button opens the data field editor, while the Cancel button closes the dialog without opening the editor. 95 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 96 of 254 Figure 59. Example Select Data Field(s) dialog An example of the editor dialog that appears is shown in Figure 60. The first column, Field Owner, displays the data field owner. For a top-level structure table or non-structure table this is the table’s name. For a child table the child’s prototype and instance (or variable) name are displayed in the format prototype.instance, and are indented by an amount based on the number of levels the child is from its root structure. Fields that belong to a group display the group’s name with “Group:” prepended. The second column, Structure Path, displays the structure path for child tables, listing each prototype and instance pair in the child structure’s path leading back to its root structure. The root structure is shown first, then each subsequent child prototype and instance in the path. If the field owner is not a child structure then the structure path is this row has a gray background. The column is not displayed if there is no child structure table field owner in any row of the editor. For example, note the row in Figure 60 for the table “ahrs_M_BeaconedTimestamp.beaconedTimestamp”. Since its Structure Path column is not empty, the table is a child structure. Working upwards from the bottom of the list, “beaconedTimestamp” is a child of the structure “ahrs_M_OutData” (a structure that is of prototype “ahrs_M_OutData_T”), which in turn is a child of the root structure “ahrs_OutDataPacket_T”. The remaining columns in the editor show the contents of the data fields chosen in the selection dialog. A cell with a gray background indicates that the associated table does not have the data field indicated by the cell’s column; these cells may not be edited. A yellow background means that another cell or cells in the same column has an identical, non-blank value. The rows can be sorted by selecting the column headers, as with other table editors in the application. Column order can be changed by dragging a column to a new position. The data fields to display can be changed by pressing the Select button, causing the initial data field selection dialog to reappear. However, if there is an unstored change or field marked for removal a confirmation dialog appears first, allowing the user to choose between continuing with the selection operation and discarding the changes, or canceling it and retaining the current selection with its unstored changes. Data field values can be altered or the entire field removed via the editor. To change a field’s value highlight the cell and press the Enter key, or double left-click the mouse while the pointer is over the cell. The data type constraints set when the field was created (e.g., hexadecimal or positive integer) are enforced for the new field values. To remove a field entirely select the field using the mouse and press 96 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 97 of 254 the Remove button. The field’s background is displayed in red to indicate it is marked for removal. Multiple fields can be selected for removal. Selecting a marked field and pressing Remove again unmarks the field for removal, and the background color returns to normal. If one or more cells is selected and the Open button is pressed then the table(s) associated with the selected cell(s) are opened in a table editor. A row is ignored if it contains a data field belonging to a group or table type. Selecting the Print button opens a printer selection dialog in order to print a copy of the editor table to the selected printer or file. Unstored data field edits and removal selections can be undone by pressing the Undo button. Changes are undone in the order they were input. The Ctrl-Z key sequence performs the identical function. Conversely, undone changes can be reentered by pressing the Redo button or by the Ctrl-Y key sequence. The Store button must be pressed to update the project’s database with the data field value changes and removals. A confirmation dialog appears allowing the user to choose between continuing with the store operation and canceling it. Selecting Close closes the data field editor dialog. If a change has been made to a data field that hasn’t been stored in the project database, or there are one or more fields marked for removal then a confirmation dialog appears allowing the user to choose between continuing with the close operation and discarding the changes, or canceling it and keeping the editor open. Figure 60. Example Show/Edit Data Fields dialog 4.9.3.15 Padding The Padding sub-menu displays several commands for adjusting the byte alignment used when padding variables are automatically inserted and for adding or removing the padding variables from the structure tables. 97 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 98 of 254 4.9.3.15.1 Set alignment When selected, a dialog appears allowing setting of the byte alignment value (Figure 61). A 4-byte alignment (the default) corresponds to a 32-bit architecture. The selected alignment value is retained between sessions. The variable padding isn’t updated until the Add/update command is issued (paragraph 4.9.3.15.2) Figure 61. Byte alignment selection dialog 4.9.3.15.2 Add/update The Add/update command inserts padding variables into the structure tables as needed to align the variables based on the selected byte alignment value (see paragraph 4.9.3.15.1). The padding variables are of data type char and are represented as a single variable or an array of variables (if needed for multiple, consecutive padding). The exception for the data type is that padding variables added to “fill out” the unused bits for a bit-wise variable or series of bit-packed variables has the same data type as the bit-wise variable(s). The padding variable names are in the format __pad# (where # is one or more numerals). Padding variables are highlighted in the structure tables; see Figure 62. These variable rows may be manually edited as with any other row – added, altered, or removed – but are only recognized as the automatically inserted variety if they conform to the aforementioned name and data type constraints. If any data table has unstored changes a confirmation dialog appears allowing the user to choose between continuing with the padding add/update operation (losing the unstored changes) and canceling it (allowing the changes to be stored). Figure 62. Structure table showing highlighted padding variables 98 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 99 of 254 4.9.3.15.3 Remove Execution of the Remove command causes all padding variables to be removed from the structure tables. Only variables conforming to the name and data type constraints outlined in paragraph 4.9.3.15.2 are recognized as padding variables. If any data table has unstored changes a confirmation dialog appears allowing the user to choose between continuing with the padding removal operation (losing the unstored changes) and canceling it (allowing the changes to be stored). 4.9.3.16 Show variables The Show variables command causes a dialog to appear that displays the variable paths and names, in alphanumeric order, for tables representing structures in the project database (see Figure 63 for an example). The variables displayed can be constrained by selecting one or more tables in the table tree. Only variables for the selected tables are displayed. Selection of a header node in the table tree (e.g., ‘Parents & Children’, or a group name if group filtering is enabled) selects all tables under that header. If no table or header node is selected in the tree then all variables in the project are displayed. The number of variables matching the constraints is displayed beside the variable table’s label. The paths and names are shown in two formats. The Application Format column shows the format used within the application: rootTable [,structureDataType1.structureVariableName1 [,structureDataType2.structureVariableName2 [,...]]], primitiveDataType.variableName[[arrayIndex]] The variable path and name is a combination of the structure’s root table, ancestor structure(s) (if any), and the variable data type and name. This combination is unique for each variable defined in the project database. Note that any macro embedded in a variable name is replaced by its corresponding value before being displayed in the dialog. The User Format column shows the path and name based on the user inputs. The Enter variable path separator character(s) text field allows entering the character(s) that are used to replace the commas that separate each variable in the variable path. The Enter data type/variable name separator character(s) text field allows entering the character(s) that are used to replace the periods that separate the data types and variable names. The Hide data types check box, if selected, causes the data types (structure and primitive) to be removed from the path, along with the periods that separate the data types from the variable names. The data type/variable name separator field is disabled and ignored for this case. Array member indices are altered by replacing the left bracket ([) with an underscore (_) and removing the right bracket (]). The User Format column values are identical to that returned by the script data access method call (see Table 7): getFullVariableName(“variable path + name”, path_separator, hide_data_types, type_and_name_separator) To perform a conversion enter the separator character(s) and set the data type check box, then press the Show button. The User Format column updates to display the variables in the new format. The Print button outputs the table to a user-specified printer or file. The Store button stores the separators and show/hide data type state as a program preference so that these are restored if the dialog is closed and reopened. Additionally, this sets the separators used in displaying the variable path column; any open tables displaying a column with the variable path input data type are automatically updated. Select the Close button to exit the dialog. 99 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 100 of 254 Figure 63. Example variable paths & names dialog 4.9.3.17 Search tables The Search tables dialog provides a means of searching the project database data and internal tables for a specified text string (see Figure 64). Case sensitivity for the search is governed by the Ignore text case check box. The Allow regular expression check box, when checked, allows the use of a regular expression to define the search pattern in the search text field. A regular expression can be formulated to find multiple matching conditions (for example, the search for a.c would match any string that has a single character between the characters ‘a’ and ‘c’). Information regarding the use of regular expressions is beyond the scope of this document; however, resources and tutorials can be found online. When unchecked, the search text is matched as typed in the search text field. The Search data table cells only check box, if selected, only displays matches found within the project database’s data table cells and ignores those in the internal tables (see Appendix E.4; data table cell values stored in the custom values tables are included in the search). The search can be constrained by selecting one or more tables in the table tree. Only matches in the selected tables are reported. Selection of a header node in the table tree (e.g., ‘Parents & Children’, or a group name if group filtering is enabled) selects all tables under that header. If no table or header node is selected in the tree then all tables are searched. Enter the search text in the input field and select the Search button. The search results are displayed in the dialog’s Search results table. The number of results is displayed beside the results table’s label. The first column, Owner, shows the name of the data table or data object (table type definition, data field, 100 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 101 of 254 group, script association, link, telemetry message, or scheduler entry) where a match is found. The second column, Location, describes the location of the match in the table/object. For a table the location is the column name in the table. A data object location depends on the type of object. For a data field this can be the field name, description, etc., whereas for a group or link this can be one of the tables or variables belonging to the group/link. The last column, Context, displays the string from the table or object containing the search text, with the search text highlighted. The search text field uses auto-completion to fill in the search string. The previous 30 searches (of the event log, table, and script combined) are remembered, including those from previous sessions. Case sensitivity for auto-completion is based on the Ignore text case check box selection state. The input text can be changed and the Search button pressed again to initiate another search of the tables. If one or more cells is selected and the Open button is pressed then the table(s) associated with the selected cells are opened in a table editor. A row is ignored if it contains a reference to other than a table. The search results can be output to a file or printer by selecting the Print button. To exit the search dialog select the Close button. Figure 64. Search tables dialog 4.9.4 Scheduling The scheduling commands are used to create and manage the information required to schedule telemetry downlink and application execution. 4.9.4.1 Manage links The Manage links command opens the Manage Links dialog (Figure 65). This command is disabled if no rate columns are defined. The link manager allows the user to create telemetry parameter linkages. 101 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 102 of 254 These are simply groupings, selected by the user, of telemetry parameters (i.e., variables in the structures) with the same sample rate. The link information is used when assigning variables to telemetry messages in the telemetry scheduler (paragraph 4.9.4.2) to force the linked variables to be contained within the same message(s). The linkages created are specific to the data stream to which the linkage belongs. In other words, variables that are linked in one data stream do not have to be linked in another data stream. Figure 65. Manage Links dialog The dialog’s components are as follows. Along the top are the tabs that allow selection of the data stream in which to create, alter, or delete linkages. The upper left displays a tree showing structures and their members (under the heading Variables), both child structures and primitive variable types. The variables that are displayed in the tree are determined by the rate chosen from the Select rate combo box pull down menu near the bottom of the dialog. Rate values are grayed out and can’t be selected if there is no variable that has that rate assigned. In the upper right is a tree showing the links and their member variables (under the heading Links). Between the trees are left and right arrows for adding or removing a variable from a link. Each tree also has one or more check boxes, to expand/collapse the tree and to filter the tree information. Below the trees is an input field for providing a description of a link. Underneath this is the link rate, in samples per second, and the total size in bytes of the link, which is the sum of the byte sizes of the variables assigned to the link. The description, rate, and size fields are active when a single link is selected in the link tree. The space separating the variable and link trees delineates a split pane control that is used to resize these panels relative to one another. Position the mouse pointer between the two tree panels and 102 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 103 of 254 when the pointer changes to a double-headed arrow press and hold the left mouse button. Space permitting, the adjoining panes can be resized by moving the mouse pointer left or right. Release the mouse button to exit resizing. In the link tree, displayed in parentheses next to each link name, are that link’s rate and size in bytes (the same information that appears below the description field when this link is selected). A link’s rate must match the selected sample rate (or the link must have no variables assigned) in order for it to be assigned variables from the variable tree. A check mark ( ) beside the link name indicates that the link can be assigned variables from the variable tree, and a red X ( ) is displayed if the link is incompatible with the selected sample rate (the tree text is also grayed out for incompatible links). A variable may not be assigned to more than one link for a given data stream. Once assigned to a link the variable still appears in the variable tree but it is disabled (grayed out and not selectable). When a variable is removed from a link it becomes enabled again in the variable tree. Once an entire structure’s complement of variables is assigned the structure itself it disabled in the variable tree, and if all structures are assigned then the Structures & Variables tree node itself is disabled. If a variable is selected in the Variables tree then the link to which it belongs is selected automatically in the Links tree. Since linked variables are disabled in the Variables tree the variable isn’t highlighted when selected. Selecting a non-linked variable deselects any highlighted link in the Links tree. To create a link select the New button and provide a link name and, optionally, a description, in the input dialog that appears (Figure 66). The description can be altered later in the main dialog. The new link name appears in the link tree. The link name may not be blank, nor is the name allowed to match that of an existing link in the selected data stream. The link name may contain alphanumeric, space, and punctuation characters. There is no constraint on the length of the name. Figure 66. New Link dialog To add variables to a link select the link in the link tree using the mouse or keyboard. Expand the variable tree as needed and select one or more variables using the mouse or keyboard. Multiple variables can be selected simultaneously by holding the Ctrl or Shift keys down when making a selection. Selecting a structure automatically includes its child structures (and their children, etc.), and all variables associated with the structure(s). Choosing a child structure automatically includes its parent structure, and its parent’s parent, etc., up to its root structure, but does not include any of its sibling variables (i.e., a variable having the same parent structure and at the same tree level as the chosen variable). The exception is if the selected variable is bit-packed with one or more variables; in this case all of the packed variables are automatically included (see paragraph 4.5.5). Finally, select the right arrow button in the center of the dialog. The variable(s) chosen appear in the selected link, and the link’s tree is expanded to show the variable(s) added. Note that the variable hierarchy is preserved in the link’s tree. More variables can be assigned to the link as described above. 103 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 104 of 254 To remove structures or variables from a link expand the link’s tree and select the structure(s) and/or variable(s) to remove using the mouse or keyboard. Then select the left arrow button in the center of the dialog to delete the structure(s) or variable(s) from the link. A structure’s children (and their children, etc.) and variables are removed along with the chosen structure. If a bit-packed variable is removed then all other variables packed together with it are removed as well, even if not explicitly selected. To delete a link, first select it in the link tree, then select the Delete button. Multiple links can be removed simultaneously if desired by highlighting them while using the Shift or Ctrl keys. To rename a link, select a single link from the link tree, then press the Rename button. An input dialog appears with the name of the selected link in the input field. Alter the name as desired and select Okay to change the link’s name. The renamed link name may not be blank, nor is the name allowed to match that of an existing link in the current data stream. Select Cancel to exit the input dialog without affecting the link’s name. A link, including its description, variable structure(s) and variable(s), can be copied from one data stream to another. First select one or more links from the link tree to be copied, then press the Copy button. A dialog appears (Figure 67) with the name(s) of the selected link(s) in the link name text field. Below the link name field is an array of check boxes, one for each of the project’s data stream names. The current data stream is grayed out and can’t be selected (recall that a variable may belong to only one link in a given data stream). Select one or more data streams to which the link (or links) is to be copied. Press the Copy button to copy the link(s) to the selected data stream(s). Select Cancel to exit the copy dialog without copying the link. Figure 67. Copy Link(s) dialog If the targeted data stream doesn’t support the link’s sample rate or the link name already exists in the stream then the link isn’t copied to that stream. If a variable’s sample rate differs between the copied stream and the target stream, or if the variable is unavailable in the target stream (i.e., the structure containing the variable doesn’t have the rate column corresponding to the target data stream) then the variable isn’t copied. For these cases a dialog is displayed indicating which link(s) or link member variable(s) could not be copied to which stream(s) and the reason for the failure(s) (see example in Figure 68). The Print button allows outputting the coy failure table to the selected printer or file. The Close button exits the copy failure dialog. 104 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 105 of 254 Figure 68. Example link copy failure dialog A link’s description can be added or changed by first selecting the link in the link tree. The current description for the link appears in the Description input field. The description can then be changed as desired. Changes to the links (descriptions and member variables) for all data streams are stored in the project database only when the Store button is pressed. If changes have been made a confirmation dialog first appears. Select Okay to store the updates; select Cancel to exit the confirmation dialog without altering the project database. Select the Close button to exit the link manager dialog. If there are any unsaved link changes in any of the data streams a dialog appears requesting confirmation to discard the changes. Select Okay to exit the link manager, losing any unsaved changes. Select Cancel to return to the link manager dialog. The link manager button commands are summarized below: New Create a new link. Delete Delete the selected link(s). Rename Rename the selected link. Copy Copy the selected link, including its member tables, so another data stream. Undo Undoes the last action performed (table assignment, typing, paste, insert, delete, redo, etc.) on the selected link. Redo Reverses the last action undone (table assignment, typing, paste, insert, delete, undo, etc.) on the selected link. Store Stores the changes made to the links in the link manager into the project database. Close Closes the link manager window. If any changes have not been stored then a dialog appears allowing the user to confirm discarding the updates or to cancel closing the editor. 4.9.4.2 Telemetry The Telemetry command opens the Telemetry Scheduler dialog (Figure 69). This command is disabled if no rate columns are defined. The telemetry scheduler is used to assign a project’s variables to telemetry messages. The message information can be used to build a CFS housekeeping “copy table” (for 105 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 106 of 254 example, by using the copy table script provided with the CCDD application). The available messages are determined by the rate parameters. These parameters can be altered in the Rate Parameters dialog (see paragraph 4.9.4.4). Before the telemetry scheduler can be used the following must be done:    Adjust the rate parameters to establish the correct boundaries for handling the project’s telemetry Assign rates to the variables to be downlinked in the Edit Table dialog (see paragraph 4.9.3.2) (Optional) Assign variables that are desired to be sent down in the same message to a link using the link manager (see paragraph 4.9.4.1) Figure 69. Telemetry Scheduler dialog The Telemetry Scheduler dialog is composed of number of components. Along the top are tabs for each defined data stream (see paragraph 4.8). Each stream has its own variable rates and message assignments. Selecting a tab displays the dialog components associated with that data stream. At the top left is displayed the total number of bytes remaining to be assigned. This value is equal to the maximum bytes per second (from the Rate Parameters dialog) minus the size in bytes of all the variables assigned to messages. At the upper right is the cycle time which is the amount of time it will take for the messages to repeat; e.g., a cycle time of 2 seconds means that each message in the table will be sent down at least once every 2 seconds. The Variables tree, at the left of the dialog, displays in tree format the variables available for downlink. Only variables assigned a rate are displayed in the variable tree. The tree is separated into two sections: Linked Variables and Unlinked Variables. Linked Variables displays the links per the currently selected data stream and rate filter. Each link contains the variables assigned to the link via the link manager. Unlinked Variables displays all the variables with a rate matching the selected rate filter. Variables assigned to a link are also displayed, but are grayed out and cannot be selected. Beneath the variable tree are two check boxes that are used to expand the tree or filter it by group. To the right of the Variables tree is the Options list. This list displays the available options, based on the selected rate filter, for assignment of the variables to the messages. For example, if the rate filter is set to 5 and there are 10 available messages then the options displayed are “Option 1: Messages 1, 3, 5, 7, 9” and “Option 2: Messages 2, 4, 6, 8, 10” (assuming the cycle time is one second). The Rate Filter, just below the Options list, is a pull down list of the data stream’s available rates. The selected rate is used to filter the Variables tree and the Options list. Rate values are grayed out and 106 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 107 of 254 can’t be selected if there is no variable in the data stream that has that rate assigned. The variable tree only displays variables that have a rate that matches the selected rate filter value. The user can change the rate filter at any time to make the Variables tree and Options list update. The Scheduler table, located on the right of the Options list, contains a table with every available message. The scheduler table has at least three columns: the Message column, which displays the message name; the Bytes column, which displays the remaining bytes for each message; the ID column, which display the message’s ID value. Extra columns, labeled Sub 1, Sub 2, etc. are added if any message has a sub-message; for messages without the specified sub-message the column is grayed out. The Bytes column is updated as variables are added or removed from the message. A negative number indicates that the message is over assigned (i.e., insufficient bytes available to contain the assigned variables); the Message column is displayed in red in this case. The message names and the ID (and sub ID) values can be edited in the Scheduler table, or can be automatically assigned in the Assign Telemetry Messages dialog called via the Assign Msgs button. The Assigned Variables tree, located to the right of the Scheduler table, shows the variables assigned to the most recently selected message in the Scheduler table. In between the Options list and Scheduler table are two arrow buttons. The right arrow button assigns one or more variables to a message. The assignment process is described below. The left arrow button removes one or more variables from a message. The removal process is described below. The Variables, Options, Scheduler, and Assigned Variables portions of the telemetry scheduler can be resized. Position the mouse pointer between adjoining panes and when the pointer changes to a double-headed arrow press and hold the left mouse button. Space permitting, the adjoining panes can be resized by moving the mouse pointer left or right. Release the mouse button to exit resizing. At the bottom of the telemetry scheduler dialog is the button panel. The button functions are as follows: Auto-fill Assigns all the variables in the variable tree that are not yet assigned to messages. Auto-fill does this optimally so each message is filled as evenly as possible. If auto-fill is successful then all the variables are assigned to an appropriate message. If auto-fill is unable to assign every variable (due to insufficient room or no available option) it displays a dialog indicating how many variables are left unassigned. Assign Msgs Opens the Assign Telemetry Messages dialog (Figure 70). This dialog provides a means for assigning message names and/or message IDs to all messages and sub-messages based on a pattern, starting value, and interval value. Figure 70. Assign telemetry message names and IDs dialog 107 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 108 of 254 To assign message names the Assign telemetry message names check box under the Message name tab must be selected. A pattern for the names is entered in the Name pattern input field. This pattern must adhere to alphanumeric naming constraints (see paragraph 4.7) except that it also must contain a single ‘%<0#>d’ format string somewhere after the first character. The format string is replaced with a sequence number when the names are assigned. The optional ‘0#’, where ‘#’ represents one or more digits, provides a means of padding the sequence number with leading zeroes so as to bring its length to # digits. The first message name uses the pattern and the Starting number field value; the Message interval value is added to the previous message’s number for each subsequent message name. For example, with the values as shown in Figure 70 the message names are “Message_001”, “Message_002”, “Message_003”, etc., until all messages are named. To assign message IDs the Assign telemetry message IDs check box under the Message ID tab must be selected. The Starting ID field is the starting ID number, in hexadecimal. The ID interval field is the interval used to calculate the next ID value in the sequence the default is 1; any positive integer value is valid. The Overwrite existing IDs check box determines whether or not messages with an existing ID number are updated or left as is. The IDs are assigned beginning with the starting ID number and with each subsequent ID number equal to the previous number plus the interval value. Message IDs in the reserved message ID list (see 4.9.3.12.2) and IDs already assigned to message ID data fields for structure and command tables are automatically skipped when assigning IDs to the telemetry messages. When Okay is selected the message names and/or IDs, based on the check box states, are assigned to the messages in the Options list and Scheduler table. Press Cancel to exit the dialog without changing the message names or IDs. Note that he telemetry scheduler’s Store button must be used to update the messages in the project database. The names and/or IDs are assigned to the current data stream; the process must be repeated for each data stream. Avoid using the identical message ID name pattern for different streams since this can lead to duplicate output message ID names when creating the housekeeping copy table. Clear Rate Removes all message and sub-message variable assignments for variables with a rate matching the currently selected rate filter. Clear Msgs Removes all message and sub-message variable assignments. Add Sub-msg Adds a sub-message to the message currently selected in the Scheduler table. Any number of sub-messages may be added. Adding a sub-message removes all of a message’s sub-message variable assignments. This is done since the number of submessages affects the rate at which a sub-message is sent. Del Sub-msg Removes the currently selected sub-message in the Scheduler table. Deleting a submessage removes all sub-message variable assignments for that message. This is done since the number of sub-messages affects the rate at which a sub-message is sent. Store Stores the telemetry scheduler data in the project database. Any changes not stored before closing the telemetry scheduler dialog are lost. Close Closes the telemetry scheduler dialog. If there are any unsaved changes in any of the data streams a dialog appears requesting confirmation to discard the changes. Select Okay to exit the telemetry scheduler, losing any unsaved changes. Select Cancel to return to the telemetry scheduler dialog. 108 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 109 of 254 If a variable is selected in the Variables tree then every message to which it belongs is selected automatically in the Scheduler table, including sub-messages. The first message to which the variable belongs sets the tab in the Assigned Variables tree. The option corresponding to the message selection is highlighted in the Options list. Since assigned variables are disabled in the Variables tree the variable isn’t highlighted when selected. Choosing a non-assigned variable in the Variables tree does not change the option and message selections. The following describes the process to manually assign a variable to a message. First, one or more variables and/or links are selected in the Variables tree. A grayed out variable, structure, or link indicates that it is already assigned and can’t be selected (linked variables also appear in the unlinked portion of the variable tree, but are grayed out and can’t be assigned individually). After selecting one or more variables an option is chosen from the Options list. To aid in deciding which option to choose, the Scheduler table temporarily updates the Bytes column for the option’s message(s), displaying the message size if that option is chosen. Also, the text of the Message column changes to either green, signifying there is enough room in the message for the variable(s), or red, signifying there is insufficient room. Changing which option is selected resets any of the temporary changes and updates the message(s) based on the new option. This allows the user to evaluate each option before selecting a choice. After deciding on an option, pressing the dialog’s right arrow button assigns the selected variable(s) to each message in the selected option. Adding a linked or bit-packed variable also adds the variables associated with it; i.e., all members of the link are added, and all other variables bit-packed with the selected variable are added. Once a variable is assigned to a message it is grayed out in the Variables tree so it can’t be assigned more than once. A variable or variables can be removed manually from the messages and sub-messages. First a message or sub-message is selected (either in the Scheduler table or the Assigned Variables tree), which causes the Assigned Variables tree to display the variables for the selected (sub-)message. The user selects from the tree one or more of the variables or structures that are to be removed and then presses the dialog’s left arrow button. The selected variable(s) is removed from the message(s) to which it is assigned. Removing a linked or bit-packed variable also removes the variables associated with it; i.e., all members of the link are removed, and all other variables bit-packed with the selected variable are removed. Any de-assigned variable is no longer grayed out in the Variables tree to signify it is available to be re-assigned. 4.9.4.3 Applications The Applications command displays the Application Scheduler dialog (Figure 71). The application scheduler is used to schedule the execution frequency and order of a project’s applications. The data created from the application scheduler is used to create scheduler tables for the project. The schedule table is used by the CFS scheduler application (SCH) to determine when to execute the project’s applications (demonstration scripts are provided that create the scheduler tables). The available time slots for when an application can be executed are determined by the application parameters that can be altered in the application parameters dialog (see paragraph 4.9.4.5). Before the application scheduler can be used the following must be done:   Set the application parameters to establish the correct boundaries Create applications using the Group Manager dialog (see paragraph 4.9.3.8) 109 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 110 of 254 Figure 71. Application Scheduler dialog The application scheduler dialog is composed of multiple components. At the top left is displayed the total number of milliseconds remaining to be assigned. At the upper right is the cycle time which is amount of time it will take for the schedule to repeat; e.g., a cycle time of 2 seconds means that the schedule table will be executed once every 2 seconds. The Applications tree, at the left of the dialog, displays all the available applications to be scheduled. Any application that has already been assigned or has an execution rate that does not match the rate filter is grayed out and cannot be selected. To the right of the Applications tree is the Options list. This list displays the available options, based on the selected rate filter, for assignment of the applications to the time slots. For example, if the rate filter is set to 1 and forty time slots are available then the options will be “Option1: TimeSlot_1”, “Option2: TimeSlot_2”, “Option3: TimeSlot_3”, etc. for all forty time slots (assuming the cycle time is one second). The Rate Filter, which is located below the Options list, contains a drop-down list of all the available execution rates. Changing the rate causes the Applications tree to gray out any applications that are not at the selected rate, and the Options list changes to display options for the newly selected rate. The Scheduler table, which is located to the right of the Options list, is a table of all available time slots. The Time Slot column displays the time slots and the Time (msec) column displays the remaining available time for that time slot (in milliseconds). The available time decreases as applications are added to that time slot and increase if an application is removed. If the available time ever becomes negative (i.e., the sum of the assigned applications’ execution times exceeds the maximum available for a time slot) then the time slot’s text changes to red. The Assigned Applications list, located to the right of the Scheduler table, displays the application(s) assigned to the currently selected time slot. If multiple time slots are selected only the first selected time slot’s applications are displayed. This allows the user a quick way to view the applications currently assigned to a time slot. In between the Options list and Scheduler table are two arrow buttons. The right arrow button is used to assign one or more applications to a time slot. The left arrow button removes one or more applications from a time slot. The assignment and removal processes are described below. The Applications, Options, Scheduler, and Assigned Applications portions of the application scheduler can be resized. Position the mouse pointer between adjoining panes and when the pointer changes to a double-headed arrow press and hold the left mouse button. Space permitting, the adjoining panes can be resized by moving the mouse pointer left or right. Release the mouse button to exit resizing. 110 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 111 of 254 At the bottom of the application scheduler dialog is the button panel. The button functions are as follows: Auto-fill Assigns all the applications in the application tree that are not yet assigned to time slots. Auto-fill does this optimally so each slot is filled as evenly as possible. If auto-fill is successful then all the applications are assigned to a time slot. If auto-fill is unable to assign every application (due to insufficient room or no available option) it displays a dialog indicating how many applications are left unassigned. Clear Slots Removes all application time slot assignments. Store Stores the application scheduler data in the project database. Any changes not stored before closing the application scheduler dialog are lost. Close Closes the application scheduler dialog. If there are any unsaved changes a dialog appears requesting confirmation to discard the changes. Select Okay to exit the application scheduler, losing any unsaved changes. Select Cancel to return to the application scheduler dialog. The following describes the process to manually assign an application to a time slot. First, one or more applications are selected in the Applications tree. A grayed-out application indicates that it is already assigned or doesn’t have the same rate as that shown in the Rate Filter, and can’t be selected. After selecting one or more applications an option is chosen from the Options list. To aid in deciding which option to choose, the Scheduler table temporarily subtracts the application run time(s) from the Time (msec) column for the selected option’s time slot(s), displaying the time remaining if that option is chosen. Also, the text of the Time Slot column changes to either green, signifying there is enough room in the slot for the application(s), or red, signifying there is insufficient room. Changing which option is selected resets any of the temporary changes and updates the time slot(s) based on the new option. This allows evaluation each option before committing to a choice. After deciding on an option, pressing the dialog’s right arrow button assigns the selected applications(s) to each time slot in the selected option. Once an application is assigned to a time slot it is grayed out in the Applications tree so it can’t be assigned more than once. An application or applications can be removed manually from the time slot(s). First a time slot is selected in the Scheduler table; this causes the Assigned Applications list to display the applications for the selected slot. Select from the list one or more of the applications that are to be removed and then press the dialog’s left arrow button. The selected application(s) is removed from the slots to which it is assigned. Any de-assigned application is no longer grayed out in the Applications tree, signifying it is available to be re-assigned. 4.9.4.4 Rate parameters The Rate parameters command displays the dialog shown in Figure 72. This command is disabled if no rate columns are defined. 111 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 112 of 254 Figure 72. Rate Parameters dialog This dialog is used to set the bounds for the sample rates for each defined data stream (see paragraph 4.8) and from these generate the selections in the drop down menu for the rate column(s) in the data tables, the link manager (see paragraph 4.9.4.1), and the telemetry scheduler (see paragraph 4.9.4.2). These parameters also define the total number of messages and maximum message size. Each of these parameters must be a positive, non-zero integer value. The first two parameters, maximum seconds per message and maximum messages per second, are common to all data streams, while the remaining parameters are assigned by data stream. A data stream is selected via the tabs, which reflect the rate column names, in the center of the dialog. The definitions of these values are as follows: Maximum seconds per message The slowest period, in seconds, that a message is downlinked. Example: If 5 is entered then 5 seconds per sample is the slowest rate allowed to be selected as the rate for a telemetered value. All rates between this and 1 second/sample that are multiples of the period are added to the rate list. Rates slower than 1 sample per second are displayed in the format “1/#” where # is the number of seconds between samples. Maximum messages per second Maximum number of telemetry messages that can be downlinked in a single second. For a cycle time of one second this value is the same as the Maximum messages per cycle value. Data stream name This value is specific for a data stream. This is a user-defined alternate name to associate with the rate column and is used in the link manager and telemetry scheduler for the tab name (if no data stream name is entered the rate column name is used instead). The script access methods use the data stream name. Maximum messages per cycle This value is specific for a data stream. This value is the number of telemetry messages that are downlinked during a single cycle through the message list. For a cycle time of one second this value is the same as the Maximum messages per second value. 112 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Maximum bytes per second Version 1.1.50 Page 113 of 254 This value is specific for a data stream. This is the maximum number of bytes that can be downlinked during a single second. The Available rates field displays the rates that are available based on the input values. The evenly time-spaced sub-second rates are calculated using the above values. For example, given a maximum messages per cycle of 10 and a maximum messages per second of 10 then only rate values that are a factor of 10 – i.e., 1, 2, 5, and 10 samples per second – are available. The check box labeled Include unevenly time-spaced rates, when checked, causes the remaining, unevenly time-spaced rates to be included in the list of rates (in the example this is all values between 1 and 10 – i.e., 1, 2, 3, 4, 5, 6, 7, 8, 9, and 10 samples per second). 4.9.4.5 App parameters The App Parameters command displays the Application Parameters dialog (Figure 73). Figure 73. Application Parameters dialog This dialog is used to set parameters for the application scheduler table. The values for Maximum slots per message and the Maximum number of commands define the boundaries, while the Maximum messages per second and the Maximum messages per cycle are used for scheduling the applications. Each parameter must be a positive, non-zero integer value. The definitions of these values are as follows: Maximum slots per message The number of slots available in each time slot of the scheduler table. If 10 is entered then every time slot will have 10 available slots for an application. The Application Scheduler doesn’t allow a time slot to have more applications assigned to it than this parameter. Maximum number of commands The maximum number of commands that can be created for the scheduler table. Maximum messages per second The maximum number of time slots that are available for an application to be scheduled in a second. Maximum messages per cycle The number of time slots that are executed during a single cycle through the time slot list. For a cycle time of one second this value is the same as the Maximum messages per second value. 4.9.5 Script menu The Script menu contains commands for associating scripts with data tables and fields, and for executing the stored associations. Scripts are a means of accessing the project data in order to create output files 113 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 114 of 254 (e.g., C header files or ITOS record files) or otherwise manipulate the data. The script languages supported by the application include JavaScript, Python, Ruby, Groovy, and Scala. Example scripts are provided with the application. These can be modified, or new scripts written as needed by the user. See paragraph 4.10 for more information on the use of scripts to access the table data. The Manage Script Associations (see paragraph 4.9.5.1) and Execute Script(s) (see paragraph 4.9.5.2) dialogs are mutually exclusive; opening one causes the other, if displayed, to be closed. 4.9.5.1 Manage The Manage command provides the means for associating scripts and data tables. This is required before executing the scripts. The associated scripts and tables can be stored in the project database so that frequently used associations can be quickly executed. When the command is selected the Manage Script Associations dialog (Figure 74) is displayed. If the Execute Script(s) dialog (see paragraph 4.9.5.2) is currently displayed then it is closed. The dialog is divided into four sections: script selection, table selection, script associations, and command buttons. The line separating the table selection tree and script associations list delineates a split pane control that is used to resize these panels relative to one another. Position the mouse pointer over the separator line and when the pointer changes to a double-headed arrow press and hold the left mouse button. Space permitting, the adjoining panes can be resized by moving the mouse pointer up or down. Release the mouse button to exit resizing. 114 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 115 of 254 Figure 74. Manage Script Associations dialog The script association name field allows a name to be assigned to an association. The name may not match one already in use by another association and must adhere to the alphanumeric input type (see paragraph 4.7). The association name is optional; it’s purpose is to be used with the command line execute option (see paragraph 4.1) to reference an existing association, in place of typing the script name and table(s). The script association description field allows a description to be added to an association. The description may remain blank. The script selection field and Select… button are used to select a script file. A script name (with file path) can be typed into the field; alternatively, pressing the Select… button displays a file selection dialog from which a script file can be located and selected. Script names must be a valid for use as a file name (e.g., may contain spaces, but not certain special characters, dependent on the operating system, such as a forward slash (/)). The table tree displays all of the root tables and their child tables (if applicable). The user expands the tree branches and selects one or more tables (see paragraph 4.5.3 for more information on table trees). When a structure table is chosen all of its child tables are automatically included when the script association is executed; therefore the child tables do not have to be explicitly selected when creating the association, and any child nodes that are selected are eliminated from the Script Associations 115 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 116 of 254 table’s Table(s) column when the association is added. It makes no difference in what order the tables are selected for assignment since, when loaded for use by the script, the tables are sorted so that the root tables are in alphabetical order and the child tables appear in the order defined by their table type definition. If the table tree is filtered by group then one or more group names can be selected from the tree for association with the chosen script. When the association is added to the table the group name (prepended with “Group:”) appears in the Table(s) column. Any of the group’s member tables that were also selected don’t appear in the table, however. When the script association is executed the group’s current member tables are loaded. This allows the script association to remain unchanged even if tables are added or removed from the group. The Script Associations table displays the script associations that are stored in the project database, plus any that have been added while this dialog is open. Associations are grayed out if the script file doesn’t exist on the local machine or an associated table doesn’t exist in the project database. These disabled associations can be selected for removal, but can’t be executed. The Description column may be edited to add, alter, or remove an association’s description. The Script File column displays the association’s script file and file path. Below the table is a check box that allows toggling between hiding and displaying the script file paths; this selection does not affect storing and retrieving the file paths and the check box’s selection state is remembered between sessions. The Table(s) column display each table associated with the script in the Script File column. Each table is displayed on a single line (space permitting) and includes its full path. Script associations may be executed from within this dialog. This is similar to execution of the associations from the Execute Scripts dialog (see paragraph 4.9.5.2) except that in this dialog the associations do not have to be stored in the project database to be executed. This provides a means to create a one-use association for immediate execution. See paragraph 4.9.5.2 for further detail on script execution. The button commands are described below: Add After entering a name (optional), description (optional), choosing a script file, and (if needed by the script) one or more data tables or groups, selecting the Add button creates the script association. The new association is inserted as the first row in the Script Associations table (any existing associations are moved down a row) and is automatically selected. A script may be used in more than one association, and a data table or group may be used in any number of associations; however, duplicate associations, i.e., those utilizing the same script, table(s), and group(s), are not added to the list. A script can be added without associating it with a table or group. This is the case when the script performs actions that do not need data from a specific data table (for an example see the script that creates the housekeeping (HK) copy table). Remove An association may deleted from the table by selecting it using the mouse or keyboard, then pressing the Remove button. Multiple associations may be removed simultaneously by selecting more than one from the list by using the Ctrl or Shift keys. Replace Replace the currently selected association in the Script Associations table with the association defined by the currently entered script name, description, script file, and selected table(s). 116 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 117 of 254 Execute Execute the script associations(s) that are selected in the script associations table (disabled associations are ignored). The application GUI is disabled during script execution in order to prevent possible alteration of the data while a script is accessing it. Up Move the currently selected row(s) up one row relative to the remaining rows. The order of the script associations in the table affects the order in which the associations are executed if multiple associations are chosen to execute. Otherwise the capability to arrange the rows is solely for the user to group the associations as desired. The ordering is preserved when the associations are stored and retrieved from the project database, and can be useful for keeping affiliated associations near one another. Down Move the row(s) of the currently selected cell(s) down one row relative to the remaining rows. The order of the script associations in the table affects the order in which the associations are executed if multiple associations are chosen to execute. Otherwise the capability to arrange the rows is solely for the user to group the associations as desired. The ordering is preserved when the associations are stored and retrieved from the project database, and can be useful for keeping affiliated associations near one another. Undo Undoes the last action performed (add, remove, move up, move down, redo). Redo Reverses the last action undone (add, remove, move up, move down, undo). Store Stores the changes made to script associations in the script association manager into the project database. The order of the associations in the table is preserved. If changes have been made a confirmation dialog first appears. Select Okay to store the updates; select Cancel to exit the confirmation dialog without altering the database. Close Closes the script association manager window. If there are any unsaved association changes a dialog appears requesting confirmation to discard the changes. Select Okay to exit script associations dialog, losing any unsaved changes. Select Cancel to return to the Manage Script Associations dialog. 4.9.5.2 Execute Selecting the Execute command causes the Execute Script(s) dialog to appear (Figure 75). If the Manage Script Associations dialog (see paragraph 4.9.5.1) is currently open then it is closed unless there are unsaved changes; in this case a dialog appears requesting confirmation to discard the changes. If the user doesn’t elect to discard the changes then the Manage Script Associations dialog remains open and the Execute Script(s) dialog doesn’t appear. The dialog displays a table of the stored script associations. Associations are grayed out if the script file script file can’t be found in the folder indicated by the path or an associated data table doesn’t exist in the project database. Grayed-out associations can’t be selected for execution. Below the table is a check box that allows toggling between hiding and displaying the script file paths in the Script File column. See paragraph 4.9.5.1 for more information on the script associations table. 117 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 118 of 254 Figure 75. Execute Script(s) dialog Select one or more associations from the table and press the Execute button to execute the selected association(s). The application GUI is disabled during script execution in order to prevent possible alteration of the data while a script is accessing it. While the script is executing the dialog shown in Figure 76 is displayed. Pressing the Halt button stops script execution immediately and returns control to the CCDD application – this is necessary, for instance, if the script contains an infinite loop. Figure 76. Halt script execution dialog When script execution completes a status message is written to the event log. If script execution is halted the log entry indicates that the scripts failed to execute; however, if multiple scripts are executed it’s possible that one or more successfully completed prior to the action to halt execution. If an error occurs, preventing successful script completion, an error dialog appears indicating that the script(s) failed to execute. The log entry in this case displays the script name(s) and provides details on the cause of the error. Select the Close button to exit the Execute Script(s) dialog. 4.9.5.3 Store The Store command is used to store scripts in the project database. This provides a means of script security and configuration management as well as allow all users, including those at remote sites, to access a common set of script files. Selecting the command causes a file selection dialog to appear (Figure 77). 118 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 119 of 254 Figure 77. Script selection dialog Only files with extensions supported by the available script engines are shown. However, other files are displayed if “All Files” is selected from the Files of Type drop down menu. After selecting one or more files, selecting the Store button stores the contents of the files in the project, each as a separate database table. Select the Cancel button to exit the dialog without storing any files. The Retrieve command (see paragraph 4.9.5.4) provides the means for retrieving the stored scripts from the project. When a file is stored the application first searches it for the first line containing the text “description:”. The search ignores case, so any combination of upper and lower case characters constitutes a match. If found, the remaining text on the same line in the file (sans any leading or trailing white space character(s)) is stored with the file as its description. The description appears alongside the file name in the Retrieve Script(s) dialog (Figure 78). If no match is found then the description text in the dialog is blank. Note that this command can be used to store any text file in the project database, not only script files. 4.9.5.4 Retrieve Selecting the Retrieve command causes the Retrieve Script(s) dialog to appear (Figure 78). This command allows for extracting scripts (or other text files) that are stored in the project database using the Store command (see paragraph 4.9.5.3). 119 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 120 of 254 Figure 78. Retrieve Script(s) dialog The dialog displays a list of the stored script (or other text) files. Using the check boxes, select one or more files. The Select all scripts check box is used to alternately select and deselect all of the individual script check boxes. Choose a folder in which to save the retrieved file(s), then press the Retrieve button to extract a copy of the file(s) from the project into the selected folder. Select the Cancel button to exit dialog without retrieving any files. When a file is stored the application first searches it for the first line containing the text “description:”. The search ignores case, so any combination of upper and lower case characters constitutes a match. If found, the remaining text on the same line in the file (sans any leading or trailing white space character(s)) is stored with the file as its description. This is the description that appears alongside the file name in the dialog. If no match is found then the description text in the dialog is blank. 4.9.5.5 Delete Selecting the Delete command causes the Delete Script(s) dialog to appear (Figure 79). This command allows for deleting script (or other text files) stored in the project database using the Store command (see paragraph 4.9.5.3). 120 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 121 of 254 Figure 79. Delete Script(s) dialog The dialog displays a list of the stored script (or other text) files. Using the check boxes, select one or more files. The Select all scripts check box is used to alternately select and deselect all of the individual script check boxes. Press the Delete button to delete the file(s) from the project. A confirmation dialog first appears; select Okay to continue with the script deletion, or Cancel to exit the dialog without deleting a script. Select the Cancel button to exit the dialog without deleting any files. 4.9.5.6 Search The script Search dialog provides a means of searching for a specified text string within the scripts stored in the project database (see Figure 80). Case sensitivity for the search is governed by the Ignore text case check box. The Allow regular expression check box, when checked, allows the use of a regular expression to define the search pattern in the search text field. A regular expression can be formulated to find multiple matching conditions (for example, the search for a.c would match any string that has a single character between the characters ‘a’ and ‘c’). Information regarding the use of regular expressions is beyond the scope of this document; however, resources and tutorials can be found online. When unchecked, the search text is matched as typed in the search text field. Enter the search text in the input field and select the Search button. The search results are displayed in the table at the bottom of the search dialog. The first column, Script, shows the name of the script, and the second column, Line number, provides the line number in the script where a match is found. The last column, Context, displays the line from the script containing the search text, with the search text 121 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 122 of 254 highlighted. Leading and trailing white space characters are removed from the context cells’ text prior to display. The search text field uses auto-completion to fill in the search string. The previous 30 searches (of the event log, table, and script combined) are remembered, including those from previous sessions. Case sensitivity for auto-completion is based on the Ignore text case check box selection state. Another search can be performed by altering the search text and selecting the Search button again. The search results can be output to a file or printer by selecting the Print button. To exit the search dialog select the Close button. Figure 80. Script search dialog 4.9.6 Help menu 4.9.6.1 Guide The Guide command displays a copy of this user’s guide in PDF format. The file CCDD_Users_guide.pdf must be in the same folder in which the CCDD.jar file is located in order for the user’s guide to be opened using this command. 4.9.6.2 About Selecting the About menu item brings up an informational dialog (see Figure 81) providing the application’s version number and date, version numbers for Java, PostgreSQL, JDBC, and Jetty that are in use, and the copyright notice. Also displayed is the list of available scripting languages and associated scripting engines, if any, and their respective version information. 122 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 123 of 254 Figure 81. About dialog 4.10 Scripts The CCDD application’s script interface is the mean by which a project’s data, stored in the database, is made available for manipulation by the user, primarily for formatting the data to create output files. CCDD supports the use of JVM-based scripting languages. Five of these languages, JavaScript, Python, Ruby, Groovy, and Scala, have been tested with the CCDD application, though any of the other compliant scripting languages should work as well. A language must be installed before it can be used by CCDD. The About dialog (see paragraph 4.9.6.2 and Figure 81) displays a list of the installed scripting languages. Examples of the use of scripts to produce output files include creation of:  C header files for CFS applications  CFS Housekeeping copy table  ITOS record and display files Scripts may be executed from within the application (see paragraphs 4.9.5.1 and 4.9.5.2) or from the command line (see Table 1 and paragraph 4.10.5). The scripts have access to the project data via a set of script data access methods written in Java. Additional methods are provided for displaying dialog boxes (both output and input), opening and writing to an output file, and making direct queries to the database. The methods are called from within a script using the method name and, dependent on the language, prepended by the class name ccdd or ccdds: methodName(arguments…) where methodName is the name of the script data access method (function) and arguments… are the parameters required by the particular method. ccdd is a reference to the non-static version of the script data access class, whereas ccdds is a static reference to the non-static class’ methods. JavaScript scripts require the non-static reference in Java 8, but can use either in Java 7. Ruby scripts require the non-static reference, but Python and Groovy scripts can use either. Scala scripts must use the static 123 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 124 of 254 reference; however, the class name is not used in the script. Details on the script data access methods are provided in Table 7. In order to access these methods the script requires that the data access class (non-static or static version) be imported; the import statement format is dependent on the scripting language. The following paragraphs show the import statement required to be included in the script file for each of the tested scripting languages, as well as an example of using the script data access methods. For each scripting language the example accomplishes the same result and assumes one or more structure tables are associated with the script (see paragraph 4.9.5.1 for information on associating scripts with data tables). First, the script opens an output file names “myFileName”. Then the names of the structures present in the structure table(s) supplied to the script are stored in an array named “structNames”. A loop is then performed to write each structure’s name to the output file. Finally, the output file is closed and the script terminates, returning control to the CCDD application. A status message is written to the event log to indicate script completion. 4.10.1 JavaScript JavaScript script files must end with the extension “.js”. The JavaScript script must contain the following lines at or near the top of the file (this allows the script to work with both JavaScript ‘Rhino’ (Java 7 and earlier) and ‘Nashorn’ (Java 8 and later)): try { load("nashorn:mozilla_compat.js"); } catch (e) { } importClass(Packages.CCDD.CcddScriptDataAccessHandler); The following is the example script described earlier in this section, written in JavaScript: // Import the script data access method class try { load("nashorn:mozilla_compat.js"); } catch (e) { } importClass(Packages.CCDD.CcddScriptDataAccessHandler); // Open the output file var file = ccdd.openOutputFile("myFileName"); // Get the array of structure names var structNames = ccdd.getStructureTableNames(); // Step through each name found for (var index = 0; index < structNames.length; index++) { // Write the structure name to the output file ccdd.writeToFileLn(file, "structNames[" + index + "] = " + structNames[index]); } 124 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 125 of 254 // Close the output file ccdd.closeFile(file); 4.10.2 Python Python script files must end with the extension “.py”. The Python script must contain the following line at or near the top of the file: from CCDD import CcddScriptDataAccessHandler The following is the example script described earlier in this section, written in Python: # Import the script data access method class from CCDD import CcddScriptDataAccessHandler # Open the output file file = ccdd.openOutputFile("myFileName") # Get the array of structure names structNames = ccdd.getStructureTableNames() # Step through each name found for index in range(len(structNames)): # Write the structure name to the output file ccdd.writeToFileLn(file, "structNames[" + str(index) + "] = " + structNames[index]) # Close the output file ccdd.closeFile(file) 4.10.3 Ruby Ruby script files must end with the extension “.rb”. The Ruby script must contain the following line at or near the top of the file: java_import Java::CCDD.CcddScriptDataAccessHandler The following is the example script described earlier in this section, written in Ruby: # Import the script data access method class java_import Java::CCDD.CcddScriptDataAccessHandler # Open the output file file = $ccdd.openOutputFile("myFileName") # Get the array of structure names structNames = $ccdd.getStructureTableNames() index = 0 # Step through each structure name structNames.each do |name| # Write the structure name to the output file $ccdd.writeToFileLn(file, "structNames[#{index}] = #{name}") index += 1 end 125 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 126 of 254 # Close the output file $ccdd.closeFile(file) 4.10.4 Groovy Groovy script files must end with the extension “.groovy”. The Groovy script must contain the following line at or near the top of the file: import CCDD.CcddScriptDataAccessHandler The following is the example script described earlier in this section, written in Groovy: // Import the script data access method class import CCDD.CcddScriptDataAccessHandler // Open the output file def file = ccdd.openOutputFile("myFileName") // Get the array of structure names def structNames = ccdd.getStructureTableNames() // Step through each name found for (def index = 0; index < structNames.length; index++) { // Write the structure name to the output file ccdd.writeToFileLn(file, "structNames[" + index + "] = " + structNames[index]) } // Close the output file ccdd.closeFile(file) 4.10.5 Scala Scala script files must end with the extension “.scala”. The Scala script must contain the following line at or near the top of the file: import CCDD.CcddScriptDataAccessHandlerStatic._ The following is the example script described earlier in this section, written in Scala: // Import the script data access method class import CCDD.CcddScriptDataAccessHandlerStatic._ // Open the output file var file = openOutputFile("myFileName") // Get the array of structure names var structNames = getStructureTableNames() // Step through each name found for (index <- 0 to structNames.length - 1) { // Write the structure name to the output file writeToFileLn(file, "structNames[" + index + "] = " + structNames(index)) 126 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 127 of 254 } // Close the output file closeFile(file) 4.10.6 Command line execution The CCDD command line option, execute, allows running scripts without use of the GUI. The script file and data table association must be specified on the command line. The command format is: Groups can be used in place of, or along with tables. Each referenced group name must be preceded by ‘Group:’ in order to be recognized as a group. For example: script_name:Group:group_name The project database, host, user, and password (if required) command line options must be specified as part of the execute option in order to access the project’s database. If not specified, the last project database, user, and host accessed by the application in the most recent session is used. The script name must include its file path if the script is not located within the folder from which the CCDD application is executed. If multiple scripts are provided in the same execute command then the individual associations must be separated by a semi-colon (;) and the entire string containing the associations for that execute command must be bounded by single or double quotes. Multiple execute commands in the same command line command can be used as well to execute multiple script associations; the format for each is as described above. If multiple script associations are specified then these are run serially in the order they appear in the command line command. Even though the GUI is not displayed, the event log is generated and all events (success, fail, command, and status events) are written to the log file. Information, warning, and error dialogs are not displayed; instead the text for these dialogs is output to the standard output (information) and standard error (warning and error) streams. Dialogs within a script requiring user input, however, are displayed, and script execution pauses until the dialog is dealt with. When script execution completes the CCDD application terminates. The application returns a status indicating if the scripts executed successfully: 0 if all script execution succeeded, or 1 if any script did not complete successfully. Following are examples of running scripts from the command line. Note that in these examples CCDD is an alias that executes the application with all the necessary class paths, etc. (see paragraph 4.1). The first example demonstrates executing the script myScript with no associated tables: CCDD –project myProject –host localHost –user myUser –password myPassword –execute myScript The next example executes myScript using the data from the table myTable (and its child tables, if applicable): CCDD –project myProject –host 192.168.1.1 –port 5432 –user myUser – password myPassword –execute myScript:myTable The third example executes myScript using the data from the tables myTable1 and myTable2 (and their child tables, if applicable): CCDD –project myProject –user myUser –password myPassword –execute myScript:myTable1+myTable2 127 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 128 of 254 The last example executes myScript1 using the data from the tables myTable1 and myTable2 (and their child tables, if applicable), then executes the script myScript2 using the data from the table myTable3 (and its child tables, if applicable): CCDD –password myPassword –execute myScript1:myTable1+myTable2,myScript2:myTable3 4.10.7 Data access methods Table 7 provides details on each of the project data access methods available for use in the scripts. The first column is the method name. The scripts are automatically assigned a variable, ccdd, that references the class containing the data access methods. When calling one of the access methods from a script the method name must be preceded by ccdd for JavaScript, Python, and Groovy, and $ccdd for Ruby; for Scala only the method name is used. The second column is a short description of the access method. The third column in the table gives the method input parameter type(s) and description(s), if any. The fourth column gives the output type and description, if any. Certain methods require that the table type be supplied as a parameter. Convenience methods are provided in these cases for the Structure and Command table types. In place of supplying the table type as a parameter the method name incorporates the table type. For example, the method getTableData has accompanying convenience methods getCommandTableData and getStructureTableData. 128 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 129 of 254 Input(s) Output closeFile Close the specified output file getApplicationMessageDefinitionTable Get the application scheduler message definition table String[]: Array containing the message definition table information getApplicationNames Get the array containing the groups that represent CFS applications String[]: Array containing names of the groups that represent CFS applications getApplicationScheduleDefinitionTable Get the specified entry in the application scheduler schedule definition table getApplicationScheduleDefinitionTableDefines Get the array of defined parameters for the schedule definition table 129 PrintWriter: Output file PrintWriter object obtained from the openOutputFile method int: Row index for the entry in the schedule definition table String[][]: Array containing the specified entry in the schedule definition table String[]:Two-dimensional array containing the defined parameters Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 130 of 254 Description Input(s) Output getArrayFromString Divide the supplied string into a twodimensional array (columns and rows) using the supplied separator characters or strings, and trim any leading or trailing white space characters from each array member String: String to separate into an array String: Character string to use to delineate the separation point(s) between columns. The separator is eliminated from the array members String: Character string to use to delineate the separation point(s) between rows. The separator is eliminated from the array members. Use null if only one row is supplied String[][]: Two-dimensional array representing the substrings in the supplied text after being parsed using the separator; returns null if the input text is empty getArrayFromString Divide the supplied string into an array using the supplied separator character or string, and trim any leading or trailing white space characters from each array member String: String to separate into an array String: Character string to use to delineate the separation point(s) between columns. The separator is eliminated from the array members String[]: Array representing the substrings in the supplied text after being parsed using the separator; returns null if the input text is empty getAssociatedGroupNames Get the array of group names referenced in the script association 130 String[]: Array containing the group names referenced in the script association; empty array if no groups are referenced Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 131 of 254 Input(s) Output getBaseDataType Get the base type for the specified data type String: Primitive data type String: Base type for the specified data type; returns null if the data type doesn't exist or isn't a primitive type getCDataType Get the C type for the specified data type String: Primitive data type String: C type for the specified data type; returns null if the data type doesn't exist or isn't a primitive type getCheckBoxDialog Display a dialog containing one or more check boxes. The user must press the Okay button to accept the check box input(s), or Cancel to close the dialog without accepting the input String: Text to display above the check box(es) String[][]: Array containing the text and optional descriptions for the radio buttons to display in the dialog boolean[]: An array containing the status for the check box(es) if the Okay button is pressed; returns null if no check box information is supplied or if the Cancel button is pressed getCommandArgArraySize Get the argument array size for the specified command argument at the specified row in the command data, with any macro replaced by its corresponding value int: Command argument index. The first argument is 0 int: Table data row index String: Argument array size for the specified command argument at the specified row in the command data, with any macro replaced by its corresponding value; null if the argument number or row index is invalid getCommandArgArraySizeWithMacros Get the argument array size for the specified command argument at the specified row in the command data, with any embedded macro(s) left in place int: Command argument index. The first argument is 0 int: Table data row index String: Argument array size for the specified command argument at the specified row in the command data, with any embedded macro(s) left in place; null if the argument number or row index is invalid 131 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 132 of 254 Input(s) Output getCommandArgColumnNames Get the array of column names belonging to the specified command argument at the specified row in the command data int: Command argument index. The first argument is 0 int: Table data row index String[]: Array of column names belonging to the specified command argument at the specified row in the command data; null if the argument number or row index is invalid getCommandArgByColumnName Get the argument value (as a string) for the column belonging to the specified command argument at the specified row in the command data, with any macro name replaced by its corresponding value int: Command argument index. The first argument is 0 int: Table data row index String: Name of the argument column for which the value is requested String: Argument value (as a string) for the column belonging to the specified command argument at the specified row in the command data; null if the argument number, row index, or column name is invalid getCommandArgByColumnNameWithMacros Get the argument value (as a string) for the column belonging to the specified command argument at the specified row in the command data, with any embedded macro(s) left in place int: Command argument index. The first argument is 0 int: Table data row index String: Name of the argument column for which the value is requested String: Argument value (as a string) for the column belonging to the specified command argument at the specified row in the command data, with any embedded macro(s) left in place; null if the argument number, row index, or column name is invalid getCommandArgDataType Get the argument data type for the specified command argument at the specified row in the command data int: Command argument index. The first argument is 0 int: Table data row index String: Argument data type for the specified command argument at the specified row in the command data; null if the argument number or row index is invalid 132 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 133 of 254 Input(s) Output getCommandArgEnumeration Get the argument enumeration for the specified command argument at the specified row in the command data, with any macro replaced by its corresponding value int: Command argument index. The first argument is 0 int: Table data row index String: Argument enumeration for the specified command argument at the specified row in the command data, with any macro replaced by its corresponding value; null if the argument number or row index is invalid getCommandArgEnumerationWithMacros Get the argument enumeration for the specified command argument at the specified row in the command data, with any embedded macro(s) left in place int: Command argument index. The first argument is 0 int: Table data row index String: Argument enumeration for the specified command argument at the specified row in the command data, with any embedded macro(s) left in place; null if the argument number or row index is invalid getCommandArgMaximum Get the argument maximum (as a string) for the specified command argument at the specified row in the command data, with any macro replaced by its corresponding value int: Command argument index. The first argument is 0 int: Table data row index String: Argument maximum value (as a string) for the specified command argument at the specified row in the command data, with any macro replaced by its corresponding value; null if the argument number or row index is invalid 133 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 134 of 254 Input(s) Output getCommandArgMaximumWithMacros Get the argument maximum (as a string) for the specified command argument at the specified row in the command data, with any embedded macro(s) left in place int: Command argument index. The first argument is 0 int: Table data row index String: Argument maximum value (as a string) for the specified command argument at the specified row in the command data, with any embedded macro(s) left in place; null if the argument number or row index is invalid getCommandArgMinimum Get the argument minimum value (as a string) for the specified command argument at the specified row in the command data, with any macro replaced by its corresponding value int: Command argument index. The first argument is 0 int: Table data row index String: Argument minimum value (as a string) for the specified command argument at the specified row in the command data, with any macro replaced by its corresponding value; null if the argument number or row index is invalid getCommandArgMinimumWithMacros Get the argument minimum value (as a string) for the specified command argument at the specified row in the command data, with any embedded macro(s) left in place int: Command argument index. The first argument is 0 int: Table data row index String: Argument minimum value (as a string) for the specified command argument at the specified row in the command data, with any embedded macro(s) left in place; null if the argument number or row index is invalid 134 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 135 of 254 Input(s) Output getCommandArgName Get the argument name for the specified command argument at the specified row in the command data, with any macro replaced by its corresponding value int: Command argument index. The first argument is 0 int: Table data row index String: Argument name for the specified command argument at the specified row in the command data, with any macro replaced by its corresponding value; null if the argument number or row index is invalid getCommandArgNameWithMacros Get the argument name for the specified command argument at the specified row in the command data, with any embedded macro(s) left in place int: Command argument index. The first argument is 0 int: Table data row index String: Argument name for the specified command argument at the specified row in the command data, with any embedded macro(s) left in place; null if the argument number or row index is invalid getCommandCode Get the command code (as a string) at the specified row in the command data int: Table data row index String: Command code (as a string) at the specified row in the command data; null if the row index is invalid getCommandName Get the command name at the specified row in the command data int: Table data row index String: Command name at the specified row in the command data; null if the row index is invalid getCommandTableColumnNames Get the column names for the table referenced on the specified row of the command table data int: Command table data row index String[]: Array containing the names of the columns of the command table referenced in the specified row of the command table data 135 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 136 of 254 Input(s) Output getCommandTableData Get the command table data at the row and column indicated, with any macro replaced by its corresponding value. The column is specified by name and is not case sensitive. Convenience method for getTableData that assumes the table type is "command" String: Table column name (case insensitive) int: Table data row index String: Contents of the specified command table's array at the row and column name provided, with any macro replaced by its corresponding value; returns null if an instance of the command table type doesn't exist getCommandTableDataFieldValues Get the data field value for all command tables that have the specified data field String: Data field name String: Array of command table names and the data field value; returns an empty array if the field name is invalid (i.e., no command table has the data field) getCommandTableDataWithMacros Get the command table data at the row and column indicated, with any macro name(s) left in place. The column is specified by name and is not case sensitive. Convenience method for getTableDataWithMacros that assumes the table type is "command" String: Table column name (case insensitive) int: Table data row index String: Contents of the specified command table's array at the row and column name provided, with any macro name(s) left in place; returns null if an instance of the command table type doesn't exist getCommandTableNameByRow Get the command table name to which the specified row's data belongs. Convenience method for getTableNameByRow that assumes the table type is "command" int: Table data row index String: Command table name to which the current row's parameter belongs; returns a blank if an instance of the command table type or the row doesn't exist 136 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 137 of 254 Input(s) Output getCommandTableNames Get the array of all command table names in the table data. Convenience method for getTableNames that specifies the table type as “command” String[]: Array of all command table names; returns an empty array if an instance of the command table type doesn't exist getCommandTableNumRows Get the number of rows of data in the command table. Convenience method for getTableNumRows that assumes the table type is “command” int: Number of rows of data in the table for the table type "command"; return -1 if an instance of the command table type doesn't exist getCommandTypeNameByRow Get the table type name referenced in the specified row of the command table type data. Convenience method for getTypeNameByRow that specifies the table type as "command". The data for all command types are combined. This method provides the means to retrieve the specific table type to which the row data belongs getCopyTableColumnNames Get the copy table column names 137 int: Table data row index String: Command table type name to which the current row's parameter belongs; returns a blank if an instance of the command table type or the row doesn't exist String[]: Array containing the copy table column names Johnson Space Center Engineering Directorate Method Name getCopyTableEntries Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Get the copy table for the messages of the specified data stream 138 Version 1.1.50 Page 138 of 254 Input(s) Output String: Data stream name String[][]: Array containing the copy table entries; returns int: Size of the message blank if there are no entries for header in bytes. For the specified data stream or if example, the CCSDS data stream name is invalid header size is 12 String: Name of the message ID name data field (e.g., 'Message ID name') boolean: true to combine memory copy calls for consecutive variables in the copy table boolean: false to retain any macros in the variable names; true to replace any macros with their corresponding values Johnson Space Center Engineering Directorate Method Name getCopyTableEntries Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 139 of 254 Description Input(s) Output Get the copy table for the messages of the specified data stream String: Data stream name int: Size of the message header in bytes. For example, the CCSDS header size is 12 String[][]: Array containing string array entries giving the structure table path+name and the table's associated message ID name boolean: true to combine memory copy calls for consecutive variables in the copy table boolean: false to retain any macros in the variable names; true to replace any macros with their corresponding values String[][]: Array containing the copy table entries; returns blank if there are no entries for the specified data stream or if data stream name is invalid 139 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 140 of 254 Input(s) Output getCopyTableEntriesWithMacros Get the copy table for the messages of the specified data stream. Any macro embedded in a variable name is left in place String: Data stream name String[][]: Array containing the copy table entries with any int: Size of the message macro embedded in a variable header in bytes. For name left in place; returns example, the CCSDS blank if there are no entries for header size is 12 the specified data stream or if String: Name of the message data stream name is invalid ID name data field (e.g., 'Message ID name') boolean: true to combine memory copy calls for consecutive variables in the copy table getCopyTableEntriesWithMacros Get the copy table for the messages of the specified data stream. Any macro embedded in a variable name is left in place String: Data stream name int: Size of the message header in bytes. For example, the CCSDS header size is 12 String[][]: Array containing string array entries giving the structure table path+name and the table's associated message ID name boolean: true to combine memory copy calls for consecutive variables in the copy table 140 String[][]: Array containing the copy table entries with any macro embedded in a variable name left in place; returns blank if there are no entries for the specified data stream or if data stream name is invalid Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 141 of 254 Input(s) getDatabaseQuery Perform a query on the currently open database getDataStreamNames Get a string array containing all of the data stream names in the project String[]: Array containing the unique data stream names getDataTypeDefinitions Get the array containing the userdefined data type names and their corresponding C-language, size (in bytes), and base data type values String[][]: Array where each row contains a user-defined data type name and its corresponding C-language, size (in bytes), and base data type values getDataTypeSizeInBytes Get the number of bytes for the specified data type 141 String: PostgreSQLcompatible database query statement Output String[][]: Two-dimensional array representing the rows and columns of data returned by the database query; returns null if the query produces an error, or an empty array if there are no results String: Structure or primitive int: Number of bytes required to data type store the data type; returns 0 if the data type doesn't exist Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description getDateAndTime Get the current time and date in the form: dow mon dd hh:mm:ss zzz yyyy where: dow is the day of the week (Sun, Mon, Tue, Wed, Thu, Fri, Sat) mon is the month (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec) dd is the day of the month (01 through 31), as two decimal digits hh is the hour of the day (00 through 23), as two decimal digits mm is the minute within the hour (00 through 59), as two decimal digits ss is the second within the minute (00 through 61, as two decimal digits zzz is the time zone (and may reflect daylight saving time) yyyy is the year, as four decimal digits getFullVariableName Get a variable's full name which includes the variables in the structure path separated by underscores, and with the data types removed 142 Version 1.1.50 Page 142 of 254 Input(s) Output String: Current date and time int: Table data row index String: The variable's full path and name with each variable in the path separated by an underscore, and with the data types removed; returns a blank is the row is invalid Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 143 of 254 Description Input(s) Output getFullVariableName Get a variable's full name which includes the variables in the structure path separated by the supplied separator character(s) int: Table data row index String: Character(s) to place between the variable path members String: The variable's full path and name with each variable in the path separated by the specified separator character(s), and with the data types removed; returns a blank is the row is invalid getFullVariableName Get a variable's full name which includes the variables in the structure path separated by the supplied separator character(s). Data types may be excluded or retained, based on the input flag. If retained, the data types and variable names are separated by the supplied separator character(s) int: Table data row index String: The variable's full path and name with each variable in String: Character(s) to place the path separated by the between the variable path specified separator members character(s); returns a blank is boolean: true to exclude the the row is invalid data types from the path + name String: Character(s) to place between the data types and variable names getFullVariableName Get a variable's full name which includes the variables in the structure path separated by the specified separator character(s) and with the data types removed. In case there are any array member variable names in the full name, replace left square brackets with # underscores and remove right square brackets (example: a[0],b[2] becomes a_0separatorb_2) String: Path to the variable String: The variable's full path in the format and name with each variable in rootTable[,structureDataT the path separated by the ype1.variable1[,structureD specified separator ataType2.variable2[,...]]] character(s) and with the data types removed; returns a blank String: Name of the variable is the row is invalid in the format primitiveDataType.variabl e String: Character(s) to place between the variable path members 143 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 144 of 254 Input(s) Output getFullVariableName Get a variable's full name which includes the variables in the structure path separated by the supplied separator character(s). Data types may be excluded or retained, based on the input flag String: Path to the variable String: The variable's full path in the format and name with each variable in rootTable[,structureDataT the path separated by the ype1.variable1[,structureD specified separator ataType2.variable2[,...]]] character(s); returns a blank is the row is invalid String: Name of the variable in the format primitiveDataType.variabl e String: Character(s) to place between the variable path members boolean: true to exclude the data types from the path + name String: Character(s) to place between the data types and variable names getFullVariableName Get a variable's full name which includes the variables in the structure path separated by the supplied separator character(s) String: Variable path + name String: The variable name for the in the format specified row prepended with rootTable[,structureDataT each structure variable in its ype1.variable1[,structureD path, separated by the ataType2.variable2[,...]]],p supplied separator character(s) rimitiveDataType.variable String: Character(s) to place between the variable path members 144 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 145 of 254 Input(s) Output getFullVariableName Get a variable's full name which includes the variables in the structure path separated by the supplied separator character(s). Data types may be excluded or retained, based on the input flag String: Variable path + name String: The variable name for the in the format specified row prepended with rootTable[,structureDataT each structure variable in its ype1.variable1[,structureD path, separated by the ataType2.variable2[,...]]],p supplied separator rimitiveDataType.variable character(s), and with the data types removed if the input flag String: Character(s) to place is set to true between the variable path members boolean: true to exclude the data types from the path + name String: Character(s) to place between the data types and variable names getFullVariableNameRaw Get a variable's full name in the application’s native format, which includes the variables in the structure path separated by commas, and with the data type and variable names separated by periods int: Table data row index getGroupDataFieldDescription Get the description of the data field String: Group name for the specified group’s specified data String: Data field name field 145 String: The variable's full path and name with each variable in the path separated by a comma, and with each data type and variable name separated by a period; returns a blank is the row is invalid String: Data field’s description; returns a blank if the group name or data field name is invalid Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 146 of 254 Input(s) Output getGroupDataFieldNames Get the name(s) of the data field(s) associated with the specified group String: Name of the group to String: Array of the data field which the field is a member names associated with the specified group; returns an empty array if the group name is invalid or the group has no data fields getGroupDataFieldValue Get the contents of the data field for the specified table's specified data field String: Table name, including the path if this table references a structure String: Data field name String: Data field’s value; returns a blank if the table type, table name, or data field name is invalid getGroupDescription Get the description for the specified group String: Group name String: Description for the specified group; blank if the group has no description or the group doesn't exist getGroupFields Get the data field information for the specified group String: Group name String[][]: Array containing the data field information for the specified group; an empty array if the group has no data fields, or the group doesn't exist. Each row in the array describes a single data field in the format: field name, description, size, input type, required (true or false), applicability, value 146 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 147 of 254 Input(s) Output getGroupNames Get an array of all group names boolean: true to get only the String[]: Array containing the groups that represent a group names (application CFS application; false to groups only if the input flag is get all groups true); returns an empty array if no groups exist getGroupTables Get an array containing the table members, including the member table ancestor tables, for the specified group String: Group name String[]: Array containing the table members for the specified group; an empty array if the group has no table members, or the group doesn't exist getInputDialog Display a dialog for receiving text input. The user must select Okay to accept the input, or Cancel to close the dialog without accepting the input String: Text label to display beside the input text field String: The text entered in the dialog input field if the Okay button is pressed; returns null if no text or white space is entered, or if the Cancel button is pressed 147 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 148 of 254 Input(s) Output getITOSEncodedDataType Convert a primitive data type into its ITOS encoded form String: Data type; e.g., String: ITOS encoded form of the uint16, double data type in the format requested; returns the data String: ITOS encoding type: type, unmodified, if the data SINGLE_CHAR to get the type is a table (i.e., it's a single character encoding structure), or null if the data (e.g., "I" for any integer type is unrecognized. type) Example: a data type of "int32" TWO_CHAR to get the and ITOS encoding type of encoding character with LITTLE_ENDIAN returns the data type size (e.g., "I12345678" "I4" for a 4-byte integer) BIG_ENDIAN to get the encoding as big endian BIG_ENDIAN_SWAP to get the encoding as a big endian with byte swapping LITTLE_ENDIAN to get the encoding as little endian LITTLE_ENDIAN_SWAP to get the encoding as a little endian with byte swapping getITOSLimitName Get the ITOS limit name based on the supplied index value int: 0 = redLow, 1 = yellowLow, 2 = yellowHigh, 3 = redHigh 148 String: ITOS limit name (“redLow”, “yellowLow”, “yellowHigh”, or “redHigh”); returns blank if the index is invalid Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 149 of 254 Input(s) Output getLinkApplicationNames Get the array containing the application name data field values associated with the specified link's variable members. Each application name is listed only once in the array String: Name of the application name data field String[]: Array containing the contents of the specified application name data field associated with each of the tables referenced by the link’s variable members getLinkDescription Return the description for the specified link; returns a blank if the link doesn’t exist or the link has no description String: Data stream name String: Link name String: Link description; returns a blank if the data stream or link don't exist, or the link has no description getLinkRate Return the sample rate for the specified link; returns a blank if the link doesn’t exist String: Data stream name String: Link name String: Text representation of the sample rate, in samples per second, of the specified link. For rates equal to or faster than 1 sample per second the string represents a whole number; for rates slower than 1 sample per second the string is in the form number of samples / number of seconds; returns a blank if the data stream or link don't exist getLongestString Get the character length of the longest String[]: Array of strings string in the supplied string array Integer: Initial minimum width; null to use zero as the minimum 149 int: Character length of the longest string in the supplied array; null if an input is invalid Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 150 of 254 Input(s) Output getLongestStrings Get the character length of the longest String[][]: Array of string string for each column in the supplied arrays string array Integer[]: Initial minimum widths; null to use zero as the minimums Integer[]:Character length of the longest string in each column of the supplied array; null if any of the inputs is invalid getMacroDefinitions Get the array containing the macro names and their corresponding values String[][]: Array where each row contains a macro names and its corresponding value getMessageIDOwnersIDsAndNames Get an array containing every message ID name and its corresponding message ID, and the owning entity from every table cell, data field (table or group), and telemetry message. ID names and IDs are determined by the input data type assigned to the table column or data field, and are matched one-to-one by relative position; i.e., the first message ID name data field for a table or group is paired with the first message ID data field, and so on. If more names are defined than IDs or vice versa then a blank ID/name is paired with the unmatched name/ID String[][]: Two-dimensional array containing every message ID name and its corresponding message ID, and the owning entity, sorted by owner name. Each row in the array is an array in the form [owner name], [message ID name], [message ID]. The owner name is preceded by 'Group:' if the owner is a group, and by "Tlm:' if the owner is a telemetry message getNumberOfTimeSlots Get the number of time slots for the scheduler definition table int: Number of time slots for the scheduler definition table table getNumCommandArguments Get the number of arguments associated with the command table type at the specified row in the command data 150 int: Row index int: Number of arguments associated with the command table type at the specified row in the command data Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description getNumCommandArguments Get the number of arguments associated with the specified command table type getOutputPath Get the script output file path set via the program preferences dialog or command line getPathByRow Get the path to which the specified row's data belongs with any embedded macro replaced by its corresponding value 151 Version 1.1.50 Page 151 of 254 Input(s) String: Table type (case insensitive) Output int: Number of arguments associated with the specified command table type; -1 if the table type is invalid String: Script output file path; blank if no path has been set String: Table type (case insensitive). All structure table types are combined and are referenced by the type name "Structure", and all command table types are combined and are referenced by the type name "Command" int: Table data row index String: The path to the current row's parameter with any embedded macro replaced by its corresponding value; returns a blank if an instance of the table type doesn't exist. The path starts with the toplevel table name. For structure tables the top-level name is followed by a comma and then the parent structure and variable name(s) that define(s) the table's path. Each parent and its associated variable name are separated by a period. Each parent/variable pair in the path is separated by a comma. The format is: top-level<,variable1.parent1< ,variable2.parent2<...>>> Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 152 of 254 Input(s) getPathByRowWithMacros Get the path to which the specified row's data belongs with any embedded macro(s) left in place getProject Get the name of the project database String: Name of the project database getProjectFields Get the data field information for the project String[][]: Array containing the data field information for the project; an empty array if the project has no data fields. Each row in the array describes a single data field in the format: field name, description, size, input type, required (true or false), applicability, value 152 String: Table type (case insensitive). All structure table types are combined and are referenced by the type name "Structure", and all command table types are combined and are referenced by the type name "Command" int: Table data row index Output String: The path to the current row's parameter with any embedded macro(s) left in place; returns a blank if an instance of the table type doesn't exist. The path starts with the top-level table name. For structure tables the toplevel name is followed by a comma and then the parent structure and variable name(s) that define(s) the table's path. Each parent and its associated variable name are separated by a period. Each parent/variable pair in the path is separated by a comma. The format is: top-level<,variable1.parent1< ,variable2.parent2<...>>> Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 153 of 254 Input(s) getProjectDataFieldDescription Get the description of the data field for the specified project data field getProjectDataFieldNames Get the name(s) of the data field(s) associated with the project getProjectDataFieldValue Get the contents of the data field for the specified project data field String: Data field name String: Data field’s value; returns a blank if the project data field name is invalid getRadioButtonDialog Display a dialog containing radio buttons. The radio buttons are mutually exclusive; only one can be selected at a time. The user must press the Okay button to accept the radio button input, or Cancel to close the dialog without accepting the input String: Text to display above the radio buttons String[][]: Array containing the text and optional descriptions for the radio buttons to display in the dialog String: The text for the selected radio button if the Okay button is pressed; returns null if no radio button is selected or if the Cancel button is pressed getRootStructureTableNames Get the name(s) of the root structure table(s). Convenience method for getRootTableNames that assumes the table type is “structure” 153 String: Data field name Output String: Data field’s description; returns a blank if the project data field name is invalid String: Array of the data field names associated with the project; returns an empty array if the project has no data fields String[]: Array containing the root structure table names; returns an empty array if an instance of the structure table type doesn't exist Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 154 of 254 Input(s) getRootTableNames Get the name(s) of the root table(s) for the supplied table type. Note that only structure tables can have child tables so using this method for nonstructure tables returns the same list of tables as getTableNames(typeName) getScriptName Get the name of the script file being executed getStructureArraySize Get the variable array size at the specified row in the structure data, with any macro name replaced by its corresponding value int: Table data row index String: Variable array size at the specified row in the structure data, with any macro name replaced by its corresponding value; null if the row index is invalid getStructureArraySizeWithMacros Get the variable array size at the specified row in the structure data, with any embedded macro(s) left in place int: Table data row index String: Variable array size at the specified row in the structure data, with any embedded macro(s) left in place; null if the row index is invalid getStructureBitLength Get the variable bit length at the specified row in the structure data, with any macro name replaced by its corresponding value int: Table data row index String: Variable bit length at the specified row in the structure data, with any macro name replaced by its corresponding value; null if the row index is invalid 154 String: Table type (case insensitive). All structure table types are combined and are referenced by the type name "Structure", and all command table types are combined and are referenced by the type name "Command" Output String[]: Array containing the root table names for the type specified; returns an empty array if an instance of the table type doesn't exist String: Script file name Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 155 of 254 Input(s) Output getStructureBitLengthWithMacros Get the variable bit length at the specified row in the structure data, with any embedded macro(s) left in place int: Table data row index String: Variable bit length at the specified row in the structure data, with any embedded macro(s) left in place; null if the row index is invalid getStructureDataByVariableName Get the data from the specified "Structure" table in the specified column for the row with the specified variable name, with any macro replaced by its corresponding value. Convenience method for getTableDataByColumnName that assumes the table type is "Structure" and the variable name column is "Variable Name" String: Full table path, which includes the parent table name and the data type + variable name pairs String: Variable name String: Column name (case insensitive) String: Contents of the table defined by the table path, variable name, and column name specified; returns null if an instance of the table type, the column name, or the variable name doesn't exist getStructureDataByVariableNameWithMacros Get the data from the specified "Structure" table in the specified column for the row with the specified variable name, with any macro name(s) left in place. Convenience method getTableDataByColumnName that assumes the table type is "Structure" and the variable name column is "Variable Name" String: Full table path, which includes the parent table name and the data type + variable name pairs String: Variable name String: Column name (case insensitive) String: Contents of the table defined by the table path, variable name, and column name specified, with any macro name(s) left in place; returns null if an instance of the table type, the column name, or the variable name doesn't exist getStructureDataType Get the variable data type at the specified row in the structure data int: Table data row index String: Variable data type at the specified row in the structure data; null if the row index is invalid 155 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 156 of 254 Input(s) Output getStructureDescription Get the variable description at the specified row in the structure data, with any macro name replaced by its corresponding value int: Table data row index String: Variable description at the specified row in the structure data, with any macro name replaced by its corresponding value; null if the row index is invalid or no column has the 'Units' input type getStructureDescriptionWithMacros Get the variable description at the specified row in the structure data, with any embedded macro(s) left in place int: Table data row index String: Variable description at the specified row in the structure data, with any embedded macro(s) left in place; null if the row index is invalid or no column has the 'Units' input type getStructureEnumerations Get the variable enumeration(s) at the specified row in the structure data, with any macro name replaced by its corresponding value int: Table data row index String: Array containing the variable enumeration(s) at the specified row in the structure data, with any macro name replaced by its corresponding value; null if the row index is invalid getStructureEnumerationsWithMacros Get the variable enumeration(s) at the specified row in the structure data, with any embedded macro(s) left in place int: Table data row index String: Array containing the variable enumeration(s) at the specified row in the structure data, with any embedded macro(s) left in place; null if the row index is invalid 156 Johnson Space Center Engineering Directorate Method Name getStructurePathByRow Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Get the structure path to which the specified row's data belongs with any embedded macro replaced by its corresponding value. Convenience method that assumes the table type is "structure" 157 Version 1.1.50 Page 157 of 254 Input(s) int: Table data row index Output String: The structure path to the current row's parameter with any embedded macro replaced by its corresponding value; returns a blank if an instance of the table type doesn't exist. The path starts with the toplevel table name. For structure tables the top-level name is followed by a comma and then the parent structure and variable name(s) that define(s) the table's path. Each parent and its associated variable name are separated by a period. Each parent/variable pair in the path is separated by a comma. The format is: top-level<,variable1.parent1< ,variable2.parent2<...>>> Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 158 of 254 Input(s) Output getStructurePathByRowWithMacros Get the structure path to which the specified row's data belongs with any embedded macro(s) left in place. Convenience method that assumes the table type is "structure" int: Table data row index String: The structure path to the current row's parameter with any embedded macro(s) left in place; returns a blank if an instance of the table type doesn't exist. The path starts with the top-level table name. For structure tables the toplevel name is followed by a comma and then the parent structure and variable name(s) that define(s) the table's path. Each parent and its associated variable name are separated by a period. Each parent/variable pair in the path is separated by a comma. The format is: top-level<,variable1.parent1< ,variable2.parent2<...>>> getStructureRates Get the variable rate(s) at the specified row in the structure data int: Table data row index String: Array containing the variable rate(s) at the specified row in the structure data; null if the row index is invalid getStructuresByReferenceOrder Get an array containing the names of the prototype structures in the order in which they are referenced; that is, the structure array is arranged so that a structure appears in the array prior to a structure that references it 158 String[]: Array containing the names of the prototype structures in the order in which they are referenced Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 159 of 254 Description Input(s) getStructureTableColumnNames Get the column names for the table referenced on the specified row of the structure table data int: Structure table data row index getStructureTableData Get the structure table data at the row String: Table column name and column indicated, with any macro (case insensitive) replaced by its corresponding value. int: Table data row index The column is specified by name and is not case sensitive. Convenience method for getTableData that assumes the table type is "structure" String: Contents of the specified structure table's array at the row and column name provided, with any macro replaced by its corresponding value; returns null if an instance of the structure table type doesn't exist getStructureTableDataFieldValues Get the data field value for all structure tables that have the specified data field String: Array of structure table names and the data field value; returns an empty array if the field name is invalid (i.e., no structure table has the data field) getStructureTableDataWithMacros Get the structure table data at the row String: Table column name and column indicated, with any macro (case insensitive) name(s) left in place. The column is int: Table data row index specified by name and is not case sensitive. Convenience method for getTableDataWithMacros that assumes the table type is "structure" 159 String: Data field name Output String[]: Array containing the names of the columns of the structure table referenced in the specified row of the structure table data String: Contents of the specified structure table's array at the row and column name provided, with any macro name(s) left in place; returns null if an instance of the structure table type doesn't exist Johnson Space Center Engineering Directorate Method Name getStructureTableITOSPathByRow Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Get the structure path to which the specified row's data belongs, formatted for use in an ITOS record statement, and with any macro name replaced by its corresponding value 160 Version 1.1.50 Page 160 of 254 Input(s) int: Table data row index Output String: The path to the current row's parameter formatted for use in an ITOS record statement and with any macro name replaced by its corresponding value; returns a blank if an instance of the table type doesn't exist. The path starts with the top-level table name. The top-level name is followed by a period and then the variable name(s) that define(s) the table's path. Each variable in the path is separated by an underscore. The format is: toplevel<.variable1_parent1<.var iable2_parent2<...>>> Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 161 of 254 Input(s) Output getStructureTableITOSPathByRowWithMacros Get the structure path to which the specified row's data belongs, formatted for use in an ITOS record statement, and with any macro name(s) left in place int: Table data row index String: The path to the current row's parameter formatted for use in an ITOS record statement and with any macro name(s) left in place; returns a blank if an instance of the table type doesn't exist. The path starts with the top-level table name. The top-level name is followed by a period and then the variable name(s) that define(s) the table's path. Each variable in the path is separated by an underscore. The format is: toplevel<.variable1_parent1<.var iable2_parent2<...>>> getStructureTableNameByRow Get the prototype structure table name to which the specified row's data belongs. Convenience method for getTableNameByRow that assumes the table type is "structure" int: Table data row index String: Prototype structure table name to which the current row's parameter belongs; returns a blank if an instance of the structure table type or the row doesn't exist getStructureTableNames Get array of all prototype structure table names referenced in the table data. Convenience method that specifies the table type as "structure" 161 String[]: Array of all prototype structure table names; returns an empty array if an instance of the structure table type doesn't exist Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 162 of 254 Input(s) Output getStructureTableNumRows Get the number of rows of data in the structure table. Convenience method for getTableNumRows that assumes the table type is “structure” int: Number of rows of data in the table for the table type "structure"; return -1 if an instance of the structure table type doesn't exist getStructureTablePaths Get array of all structure table names, including paths for child structure tables, referenced in the table data. Convenience method that specifies the table type as "structure" String[]: Array of all structure table names, including paths for child structure tables; returns an empty array if an instance of the structure table type doesn't exist getStructureTableVariablePathByRow Get the structure path to which the specified row's data belongs, showing only the top-level structure and variable names and with any embedded macro replaced by its corresponding value. This format is used when referencing a structure table’s data fields 162 int: Table data row index String: The path to the current row's parameter with any embedded macro replaced by its corresponding value; returns a blank if an instance of the table type doesn't exist. The path starts with the toplevel table name. The toplevel name is followed by a comma and then the variable name(s) that define(s) the table's path. Each variable in the path is separated by a comma. The format is: toplevel<,variable1<,variable2<... >>> Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 163 of 254 Method Name Description getStructureTableVariablePathByRowWithMacros Get the structure path to which the specified row's data belongs and with any embedded macro(s) left in place, showing only the top-level structure and variable names. This format is used when referencing a structure table’s data fields int: Table data row index String: The path to the current row's parameter with any embedded macro(s) left in place; returns a blank if an instance of the table type doesn't exist. The path starts with the top-level table name. The top-level name is followed by a comma and then the variable name(s) that define(s) the table's path. Each variable in the path is separated by a comma. The format is: toplevel<,variable1<,variable2<... >>> getStructureTypeNameByRow Get the table type name referenced in the specified row of the structure table type data. Convenience method for or getTypeNameByRow that specifies the table type as "structure". The data for all structure types are combined. This method provides the means to retrieve the specific table type to which the row data belongs int: Table data row index String: Structure table type name to which the current row's parameter belongs; returns a blank if an instance of the structure table type or the row doesn't exist 163 Input(s) Output Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 164 of 254 Input(s) Output getStructureUnits Get the variable units at the specified row in the structure data, with any macro name replaced by its corresponding value int: Table data row index String: Variable units at the specified row in the structure data, with any macro name replaced by its corresponding value; null if the row index is invalid or no column has the 'Description' input type getStructureUnitsWithMacros Get the variable units at the specified row in the structure data, with any embedded macro(s) left in place int: Table data row index String: Variable units at the specified row in the structure data, with any embedded macro(s) left in place; null if the row index is invalid or no column has the 'Description' input type getStructureVariableName Get the variable name at the specified row in the structure data, with any macro name replaced by its corresponding value int: Table data row index String: Variable name at the specified row in the structure data, with any macro name replaced by its corresponding value; null if the row index is invalid getStructureVariableNameWithMacros Get the variable name at the specified row in the structure data, with any embedded macro(s) left in place int: Table data row index String: Variable name at the specified row in the structure data, with any embedded macro(s) left in place; null if the row index is invalid 164 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 165 of 254 Input(s) Output getTableColumnNames Get the table column names for the table referenced on the specified row of the table data for the table type specified String: Table type (case insensitive). All structure table types are combined and are referenced by the type name "Structure", and all command table types are combined and are referenced by the type name "Command" int: Table data row index String[]: Array containing the names of the columns of the table type referenced in the specified row of the type's table data getTableColumnNamesByType Get the table column names for the table type specified String: Table type name String[]: Array containing the names of the columns of the table type specified getTableData Get the data at the row and column indicated, with any macro replaced by its corresponding value, for the table type specified. The column is specified by name String: Table type (case insensitive). All structure table types are combined and are referenced by the type name "Structure", and all command table types are combined and are referenced by the type name "Command" String: Table column name (case insensitive) int: Table data row index String: Contents of the specified table's array at the row and column name provided with any macro replaced by its corresponding value; returns null if an instance of the table type, the column name, or the row doesn't exist 165 Johnson Space Center Engineering Directorate Method Name getTableDataByColumnName Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Get the data from the a table in the specified column for the row in the matching column name that contains the matching name, with any macro name replaced by its corresponding value 166 Version 1.1.50 Page 166 of 254 Input(s) Output String: Table type (case insensitive). All structure table types are combined and are referenced by the type name "Structure", and all command table types are combined and are referenced by the type name "Command" String: Full table path String: Name of the column containing that matching name (case insensitive) String: Text to match in the matching column - this determines the row. The first row in the matching column that matches the matching name determines the row used to retrieve the data value String: Name of the column from which to retrieve the data value (case insensitive) String: Contents of the table defined by the table type, table path, matching column name, matching name, and data column name specified, with any macro name replaced by its corresponding value; returns null if an instance of the table type, the matching column, the data column, or the matching name doesn't exist Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 167 of 254 Input(s) Output getTableDataByColumnNameWithMacros Get the data from the a table in the specified column for the row in the matching column name that contains the matching name, with any macro name(s) left in place String: Table type (case insensitive). All structure table types are combined and are referenced by the type name "Structure", and all command table types are combined and are referenced by the type name "Command" String: Full table path String: Name of the column containing that matching name (case insensitive) String: Text to match in the matching column - this determines the row. The first row in the matching column that matches the matching name determines the row used to retrieve the data value String: Name of the column from which to retrieve the data value (case insensitive) String: Contents of the table defined by the table type, table path, matching column name, matching name, and data column name specified, with any macro name(s) left in place; returns null if an instance of the table type, the matching column, the data column, or the matching name doesn't exist getTableDataFieldDescription Get the description of the data field for the specified table's specified data field String: Table name, including the path if this table references a structure String: Data field name String: Data field’s description; returns a blank if the table name or data field name is invalid 167 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 168 of 254 Input(s) Output getTableDataFieldNames Get the name(s) of the data field(s) associated with the specified table String: Name of the table, including the path if this table references a structure, to which the field is a member String: Array of the data field names associated with the specified table; returns an empty array if the table name is invalid or the table has no data fields getTableDataFieldValue Get the contents of the data field for the specified table's specified data field String: Table name, including the path if this table references a structure String: Data field name String: Data field’s value; returns a blank if the table name or data field name is invalid getTableDataFieldValues Get the data field value for all tables of the specified type that have the specified data field String: Table type (case String: Array of table names of insensitive). All structure the specified type and the data table types are field value; returns an empty combined and are array if the field name is referenced by the type invalid (i.e., no table has the name "Structure", and data field) all command table types are combined and are referenced by the type name "Command". null to include tables of any type String: Data field name getTableDataFieldValues Get the data field value for all tables that have the specified data field String: Data field name 168 String: Array of table names and the data field value; returns an empty array if the field name is invalid (i.e., no table has the data field) Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 169 of 254 Input(s) Output getTableDataWithMacros Get the table data at the row and column indicated, with any macro name(s) left in place. The column is specified by name and is not case sensitive String: Table type (case insensitive). All structure table types are combined and are referenced by the type name "Structure", and all command table types are combined and are referenced by the type name "Command" String: Table column name (case insensitive) int: Table data row index String: Contents of the specified table's array at the row and column name provided, with any macro name(s) left in place; returns null if an instance of the table type, the column name, or the row doesn't exist getTableDescription Get the description of the specified table String: Table name, including the full path for child structure tables String: Description of the specified table; returns a blank the table doesn't exist getTableDescriptionByRow Get the description of the table at the row indicated for the table type specified String: Table type (case insensitive). All structure table types are combined and are referenced by the type name "Structure", and all command table types are combined and are referenced by the type name "Command" int: Table data row index String: Table name for the specified table type to which the current row's parameter belongs; returns a blank if an instance of the table type or the row doesn't exist 169 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 170 of 254 Input(s) Output getTableNameByRow Get the prototype table name for the type specified to which the specified row's parameter belongs String: Table type (case insensitive). All structure table types are combined and are referenced by the type name "Structure", and all command table types are combined and are referenced by the type name "Command" int: Table data row index String: Prototype table name to which the current row's parameter belongs; return a blank if an instance of the table type or the row doesn't exist getTableNames Get array of all table names referenced in the table data of the specified table type String: Table type (case insensitive). All structure table types are combined and are referenced by the type name "Structure", and all command table types are combined and are referenced by the type name "Command" boolean: true to return only the prototype name for any child structures; false to include the full path for child structures String[]: Array of all table names, with paths for child structure tables excluded based on the input flag, represented by the table type; returns an empty array if an instance of the table type doesn't exist getTableNames Get array of all table names, including paths for child structure tables, referenced in the table data for all table types 170 String[]: Array of all table names, including paths for child structure tables, referenced in the table data; empty array if no tables exists in the data Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 171 of 254 Description Input(s) Output getTableNames Get array of all table names, including paths for child structure tables, referenced in the table data of the specified table type String: Table type (case insensitive). All structure table types are combined and are referenced by the type name "Structure", and all command table types are combined and are referenced by the type name "Command" String[]: Array of all table names, including paths for child structure tables, represented by the table type (prototype names for child structures); returns an empty array if an instance of the table type doesn't exist getTableNumRows Get the number of rows of data for all table types getTableNumRows Get the number of rows of for the table type specified String: Table type (case insensitive). All structure table types are combined and are referenced by the type name "Structure", and all command table types are combined and are referenced by the type name "Command" int: Number of rows of data in the table for the table type specified; return -1 if an instance of the table type doesn't exist getTelemetryMessageIDs Get the copy table message ID names and their corresponding ID values for the specified data stream String: Data stream name String: Array containing the copy table message ID names and ID values; returns blank if there are no entries for the specified data stream or if data stream name is invalid 171 int: Number of rows of data for all table types; return 0 if there is no table data Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 172 of 254 Input(s) Output getTypeDataFieldDescription Get the description of the data field for the specified table type's specified data field String: Table type (case insensitive). All structure table types are combined and are referenced by the type name "Structure", and all command table types are combined and are referenced by the type name "Command" String: Data field name String: Data field’s description; returns a blank if the table type name or data field name is invalid getTypeDataFieldNames Get the name(s) of the data field(s) associated with the specified table type String: Name of the table type to which the field is a member String: Array of the data field names associated with the specified table type; returns an empty array if the table type name is invalid or the table type has no data fields getTypeDataFieldValue Get the contents of the data field for the specified table type's specified data field String: Table type (case insensitive). All structure table types are combined and are referenced by the type name "Structure", and all command table types are combined and are referenced by the type name "Command" String: Data field name String: Data field’s value; returns a blank if the table type name or data field name is invalid 172 Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 173 of 254 Input(s) Output getTypeNameByRow Get the table type name referenced in the specified row of the specified table type data. Multiple structure (and command) types are allowed. The data for all structure (command) types are combined. This method provides the means to retrieve the specific table type to which the row data belongs String: Table type (case insensitive). All structure table types are combined and are referenced by the type name "Structure", and all command table types are combined and are referenced by the type name "Command" int: Table data row index String: Table type name to which the current row's parameter belongs; returns a blank if an instance of the table type or the row doesn't exist getTypeNameByTable Get the the table type name for the specified table String: Name of the table. For a child structure this includes the path String: Type name for the specified table getUser Get the name of the user executing the script getVariableLinks Get the array of link names to which the specified variable belongs String: Variable path and name String[]: Array containing the links to which the specified variable is a member; returns an empty array if the variable does not belong to a link getVariableOffset Get the byte offset of the specified variable relative to its parent structure. The variable's path, including parent structure and variable name, is used to verify that the specified target has been located; i.e., not another variable with the same name String: Parent structure name of the variable being checked String: A comma separated string of each data type and variable name of each variable in the current search path int: The byte offset to the target variable relative to its parent structure; returns -1 if the parent-variable path combination is invalid 173 String: Name of the user executing the script Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 174 of 254 Input(s) Output getVariablePaths Get an array containing the path to each parent structure and its variables isDataTypePrimitive Determine if the specified structure is referenced by more than one parent structure String: Name of the structure to check boolean: true if the supplied data type is a primitive; false otherwise isStructureShared Determine if the supplied data type is a primitive type String: data type boolean: true if the specified structure is referenced by more than one table; false otherwise openOutputFile Open the specified file for writing. The PrintWriter object that is returned is used by the file writing methods to specify the output file String: Output file path + name PrintWriter: PrintWriter object; returns null if the file could not be opened parseEnumerationParameters Divide the supplied enumeration string into the values and labels. The enumeration value/label separator character and the enumerated pair separator character are automatically determined. Any leading or trailing white space characters are removed from each array member String: Enumeration in the format [...][...] String[][]: Two-dimensional array representing the enumeration parameters ; returns null if the input text is empty or the enumeration separator characters cannot be determined 174 String[][]:Two-dimensional array containing the path for each structure variable. The parent structures are sorted alphabetically. The variables are displayed in the order of appearance within the structure (parent or child) Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Description Version 1.1.50 Page 175 of 254 Input(s) showErrorDialog Display an error dialog showing the String: Text to display in the supplied text. The dialog’s header and dialog box icon indicate that the text describes an error condition. The Okay button must be pressed before the script can continue showInformationDialog Display an informational dialog showing the supplied text. The dialog’s header and icon indicate that the text describes information useful to the user; e.g., script status. The Okay button must be pressed before the script can continue String: Text to display in the dialog box showWarningDialog Display a warning dialog showing the supplied text. The dialog’s header and icon indicate that the text describes a warning condition. The Okay button must be pressed before the script can continue String: Text to display in the dialog box writeToFile Write the supplied text to the specified output file PrintWriter object PrintWriter: Output file PrintWriter object obtained from the openOutputFile method String: Text to write to the output file 175 Output Johnson Space Center Engineering Directorate Method Name Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 176 of 254 Description Input(s) writeToFileFormat Write the supplied formatted text in the indicated format to the specified output file PrintWriter object PrintWriter: Output file PrintWriter object obtained from the openOutputFile method String: Print format string to write to the output file Object…: variable list of arguments referenced by the format specifiers in the format string writeToFileLn Write the supplied text to the specified output file PrintWriter object and append a line feed character PrintWriter: Output file PrintWriter object obtained from the openOutputFile method String: Text to write to the output file Table 7. Script Data Access Methods 176 Output Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Appendix A. Acronyms CCDD cFE CFS CPU CSV DBU EDS GUI HK I/O ID ITOS JAR JDBC JRE JSON JVM L&F OID OS PDF PNG SQL SSL XML XTCE CFS Command & Data Dictionary Core Flight Executive Core Flight System Central Processing Unit comma-separated values Database Backup Electronic Data Sheet Graphical User Interface Housekeeping Input/Output Identifier Integrated Test and Operations System Java Archive Java Database Connectivity Java Runtime Environment JavaScript Object Notation Java Virtual Machine Look and Feel Object Identifier Operating System Portable Document Format Portable Network Graphics Structured Query Language Secure Sockets Layer Extensible Markup Language XML Telemetric and Command Exchange 177 Version 1.1.50 Page 177 of 254 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 178 of 254 Appendix B. Definitions Array definition In a structure table, the row where the variable name and array size are specified. Array member In a structure table, the rows following the array definition row (when arrays are expanded) that display the individual variables that belong to the array. The variable name begins with the array definition’s variable name and has the array index, encased in square brackets, appended. The array member rows are displayed in ascending index order, starting with a zero index. The array size column for each member row displays the total number of members in the array. Child table A structure table that is referenced as a data type for a variable in another structure table. Data type A primitive or structure data type; see Primitive type and Structure type. Database A collection of data within a PostgreSQL server organized as tables. A CCDD project is a PostgreSQL database representing the data for a CFS project. Encoded type The byte order for primitive data types composed of two or more bytes. CCDD recognizes four encodings: little endian bytes are store with the least significant byte first. big endian bytes are stores with the least significant byte last. little endian, swap similar to little endian, except that each byte pair is reversed; applies only to integer and unsigned integer data types composed of one or more pairs of bytes. big endian, swap similar to big endian, except that each byte pair is reversed; applies only to integer and unsigned integer data types composed of one or more pairs of bytes. Instance table A structure table that is a child of another structure table (the child’s parent table). Macro An alphanumeric string, bounded by special delimiter characters, that can be inserted into a data table cell to represent text defined by the user. Parent table The structure table for which a table is an immediate descendant (child). The parent and root tables are the same if this table is a child of a root table. Path Refers to a table path or variable path. Primitive type A primitive data type is a basic data type (e.g., integer, float), as opposed to a structure, which is a group of primitive and/or structure data types. The primitive data types recognized by the CCDD application can be altered using the Data Type Manager (see paragraphs 4.5.4 and 4.9.3.10). Project Synonymous with the term database in this guide except when referring to the PostgreSQL default database, postgres. Prototype table A table created via the Data | New table(s) command, based on one of the table types. Instances of this table are created by using this table as the data type for a variable in a structure table. If this table is not referenced as a child in another table then it is also a root table. 178 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 179 of 254 Regular expression A special set of characters that defines a pattern for matching all or part of a text string. The search dialogs optionally allow the use of regular expressions in order to tailor a search more specifically (for example, the use of wild card characters). Information regarding the construction and use of regular expressions can be found on the web. Root table The top-level table in the hierarchical table tree; the highest level ancestor of a child table. All non-structure tables and prototype tables not referenced as the data type for a variable in a structure table are root tables. Structure type Data type that references a structure table prototype (the data type name is the structure prototype name). Table path The path to a table beginning with its root table. For a non-structure table or other top-level table the table path is the root table name. For a child structure table the path lists the child’s root table and all intervening ancestor tables and variable names in direct descent to the child table . Table type A table template created using the Table Type Manager (see paragraph 4.9.3.94.9.3.6). Any number of tables may be created of a given table type. Variable path The path to a variable beginning with its root table. For a non-structure table or other top-level table the variable path is the root table name. For a variable in a child structure table the path lists the child’s root table and all intervening variable names in direct descent to the child table (identical to the table path, but without the structure names other than the root’s). 179 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 180 of 254 Appendix C. Import and Export Format Examples and descriptions of the CSV, EDS XML, and XTCE XML file formats used when importing and exporting tables are provided in the subsequent sections. The table shown in Figure 82 was exported to create the output examples. Figure 83 shows the table definition used for the example table, Figure 84 shows the data type and macro definitions. Figure 82. Table for import/export format examples 180 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Figure 83. Table type definition for import/export example 181 Version 1.1.50 Page 181 of 254 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 182 of 254 Figure 84. Data type and macro definitions for import/export example Appendix C.1. CSV The CSV import/export file is divided into five sections: table type definitions, data type definitions, macro definitions, reserved message IDs, and table definitions. These sections can appear in any order. Not all sections need be present. The table definitions are further sub-divided into table name & type, description, column data, and data field sections. Each section is designated by a tag in the format _tag_name_. The subsequent row(s) are interpreted based on the last tag name until another tag is detected. The various values in the rows following a tag are separated by commas, with each value enclosed in double quotes in order to preserve quotes and commas in the values. The name & type tag begins each table definition. The name & type and column data for at least one table must be present in the file. Empty rows and rows beginning with a # character are ignored and can be used for section spacing and inserting comments. A ‘#’ character beginning a quoted string is not interpreted as a comment (note that a spreadsheet application, if used to create the CSV file, may automatically surround text intended as a comment in quotes). Extra commas and white space characters appended to a row are ignored. This allows a CSV 182 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 183 of 254 file generated from a spreadsheet application (which appends trailing commas to ensure that each row has the same number of columns) to be used without further editing. The tag names and formats for the sections are as follows: Table type definition section: _table_type_ “table type name”, “table type description” “type name”, “type description”, “input type”, “unique”, “required”, “structure allowed”, “pointer allowed” … repeat previous row for each table type and each type’s column definitions _data_fields_ “field name”, “description”, “size in characters”, “input type”, “required”, “applicability”, “value” … repeat previous row for each data field associated with the table type. If left blank, default values for “size in characters” (10), “input type” (Text), and “applicability” (All tables) are used See paragraph 4.9.3.9 for more information on the table type definition components. Data type definition section: _data_type_ “data type name”, “C type”, “size in bytes”, “base type” … repeat previous row for each data type definition See paragraph 4.9.3.10 for more information on the data type definition components. Macro definition section: _macros_ “macro name”, “macro value” … repeat previous row for each macro definition See paragraph 4.9.3.11 for more information on the macro definition components. Reserved message ID section: 183 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 _ reserved_msg_ids_ “message ID (or ID range)”, “message ID description” … repeat previous row for each reserved message ID (or ID range) See paragraph 4.9.3.12.2 for more information on the reserved message ID components. Table definition section: _name_type_ “table path and name”, “table type”<, “system name”> _description_ “table description” _column_data_ “column 1 name”, “column 2 name”, …. “row 1 column 1 value”, “row 1 column 2 value”, … “row 2 column 1 value”, “row 2 column 2 value”, … … repeat previous row for each row in the table 184 Version 1.1.50 Page 184 of 254 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 185 of 254 _data_fields_ “field name”, “description”, “size in characters”, “input type”, “required”, “applicability”, “value” … repeat previous row for each data field associated with the table. If left blank, default values for “size in characters” (10) and “input type” (Text) are used. The “applicability” input is unused by the table definition and may be blank …repeat above, starting with _name_type_, for each table definition The system name under _name_type_ is optional; when exporting this is the value of the data field pointed to by the System data field name text input field in the export dialog (see Figure 41), but when importing the value is unused. See paragraph 4.6.1 for more information on the data field definition components. The example table, MyTable, is shown below in CSV format. # Created Wed Feb 01 06:56:04 CST 2017 : project = test2 : host = localhost:5432 : user = rmcclune _name_type_ "MyTable","Structure" _column_data_,"GNC" "Variable Name","Description","Units","Data Type","Array Size","Bit Length","Enumeration","Rate" "latitude","Location: north-south","","float","","","","2" "longitude","Location: east-west","","float","","","","" "width","","##SIZE##","uint16_t","","","","" "depth","","##SIZE##","uint16_t","","","","" "height","","##SIZE##","uint16_t","","","","" "velocity","","","double","3","","","10" "velocity[0]","X-direction","m/s","double","3","","","10" "velocity[1]","Y-direction","m/s","double","3","","","10" "velocity[2]","Z-direction","m/s","double","3","","","10" "engine_arm","Engine armed status","","uint8_t","","1","0|Off, 1|Arm","1" "engine_fire","Engine fire status","","uint8_t","","1","0|Off, 1|Fire","1" _description_ "Example import/export table" _data_fields_ "System","","7","Text","false","ALL","GNC" "Vehicle","","20","Text","false","ALL","MyVehicle" _table_type_ "Structure","Telemetry and data structure table definition" "Variable Name","Parameter name","Variable name","true","true","true","true" 185 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 186 of 254 "Description","Parameter description","Text","false","false","true","true" "Units","Parameter units","Text","false","false","true","true" "Data Type","Parameter data type","Primitive & Structure","false","true","true","true" "Array Size","Parameter array size","Array index","false","false","true","true" "Bit Length","Parameter number of bits (bit values only)","Bit length","false","false","false","false" "Enumeration","Enumerated parameters","Enumeration","false","false","false","false" "Rate","Downlink data rate, samples/second","Rate","false","false","false","true" _data_type_ "uint8_t","unsigned char","1","unsigned integer" "uint16_t","unsigned short int","2","unsigned integer" "float","float","4","floating point" "double","double","8","floating point" _macros_ "SIZE","meters" _reserved_msg_ids_ "0x0800 - 0x08FF","CFS telemetry IDs" "0x1800 - 0x18FF","CFE command IDs" Appendix C.2. EDS XML The built-in tags for the EDS format are insufficient to describe all of the data associated with a table. The EDS format provides a means of adding data that doesn’t fit into the existing tags: the GenericTypeSet and corresponding GenericType tags. Generic type sets can be associated with Interface names, which in turn are members of the DeclaredInterfaceSet, a member of a Namespace; this is used extensively to attach data not otherwise conformable to the EDS standard. The example table, MyTable, is shown below in EDS XML format. 186 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 187 of 254 187 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 188 of 254 188 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 189 of 254 189 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 190 of 254 190 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 191 of 254 Appendix C.3. JSON The example table, MyTable, is shown below in JSON format. { "Table Definition": [ { "Table Data": [ { "Description": "Location: north-south", "Data Type": "float", "Rate": "2", "Variable Name": "latitude" }, { "Description": "Location: east-west", "Data Type": "float", "Variable Name": "longitude" }, 191 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 { "Units": "##SIZE##", "Data Type": "uint16_t", "Variable Name": "width" }, { "Units": "##SIZE##", "Data Type": "uint16_t", "Variable Name": "depth" }, { "Units": "##SIZE##", "Data Type": "uint16_t", "Variable Name": "height" }, { "Array Size": "3", "Data Type": "double", "Rate": "10", "Variable Name": "velocity" }, { "Array Size": "3", "Description": "X-direction", "Units": "m/s", "Data Type": "double", "Rate": "10", "Variable Name": "velocity[0]" }, { "Array Size": "3", "Description": "Y-direction", "Units": "m/s", "Data Type": "double", "Rate": "10", "Variable Name": "velocity[1]" }, { "Array Size": "3", "Description": "Z-direction", "Units": "m/s", 192 Version 1.1.50 Page 192 of 254 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 "Data Type": "double", "Rate": "10", "Variable Name": "velocity[2]" }, { "Description": "Engine armed status", "Enumeration": "0|Off, 1|Arm", "Data Type": "uint8_t", "Bit Length": "1", "Rate": "1", "Variable Name": "engine_arm" }, { "Description": "Engine fire status", "Enumeration": "0|Off, 1|Fire", "Data Type": "uint8_t", "Bit Length": "1", "Rate": "1", "Variable Name": "engine_fire" } ], "Table Name": "MyTable", "System Name": "GNC", "Data Field": [ { "Value": "GNC", "Required": false, "Description": "", "Applicability": "All tables", "Field Name": "System", "Input Type": "Text", "Size": 7 }, { "Value": "MyVehicle", "Required": false, "Description": "", "Applicability": "All tables", "Field Name": "Vehicle", "Input Type": "Text", "Size": 20 193 Version 1.1.50 Page 193 of 254 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 } ], "Table Description": "Example import/export table", "Table Type": "Structure" } ], "Data Type Definition": [ { "Base Type": "floating point", "C Name": "float", "Type Name": "float", "Size": "4" }, { "Base Type": "unsigned integer", "C Name": "unsigned short int", "Type Name": "uint16_t", "Size": "2" }, { "Base Type": "floating point", "C Name": "double", "Type Name": "double", "Size": "8" }, { "Base Type": "unsigned integer", "C Name": "unsigned char", "Type Name": "uint8_t", "Size": "1" } ], "Macro Definition": [ { "Value": "meters", "Macro Name": "SIZE" }, { "Value": "meters", "Macro Name": "SIZE" }, 194 Version 1.1.50 Page 194 of 254 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 195 of 254 { "Value": "meters", "Macro Name": "SIZE" } ], "File Description": "Created Thu Feb 09 08:58:44 CST 2017 : project = test2 : host = localhost:5432 : user = rmcclune", "Reserved Message ID Definition": [ { "Description": "CFS telemetry IDs", "Message ID(s)": "0x0800 - 0x08FF" }, { "Description": "CFE command IDs", "Message ID(s)": "0x1800 - 0x18FF" } ], "Table Type Definition": [ { "Table Type Column": [ { "Required": true, "Description": "Parameter name", "Unique": true, "Column Name": "Variable Name", "Enable if Structure": true, "Enable if Pointer": true, "Input Type": "Variable name" }, { "Required": false, "Description": "Parameter description", "Unique": false, "Column Name": "Description", "Enable if Structure": true, "Enable if Pointer": true, "Input Type": "Text" }, { "Required": false, "Description": "Parameter units", 195 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 "Unique": false, "Column Name": "Units", "Enable if Structure": true, "Enable if Pointer": true, "Input Type": "Text" }, { "Required": true, "Description": "Parameter data type", "Unique": false, "Column Name": "Data Type", "Enable if Structure": true, "Enable if Pointer": true, "Input Type": "Primitive & Structure" }, { "Required": false, "Description": "Parameter array size", "Unique": false, "Column Name": "Array Size", "Enable if Structure": true, "Enable if Pointer": true, "Input Type": "Array index" }, { "Required": false, "Description": "Parameter number of bits (bit values only)", "Unique": false, "Column Name": "Bit Length", "Enable if Structure": false, "Enable if Pointer": false, "Input Type": "Bit length" }, { "Required": false, "Description": "Enumerated parameters", "Unique": false, "Column Name": "Enumeration", "Enable if Structure": false, "Enable if Pointer": false, "Input Type": "Enumeration" 196 Version 1.1.50 Page 196 of 254 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 197 of 254 }, { "Required": false, "Description": "Downlink data rate, samples/second", "Unique": false, "Column Name": "Rate", "Enable if Structure": false, "Enable if Pointer": true, "Input Type": "Rate" } ], "Table Type Name": "Structure", "Table Type Description": "Telemetry and data structure table definition" } ] } Appendix C.4. XTCE XML The built-in tags for the XTCE format are insufficient to describe all of the data associated with a table. The XTCE format provides a means of adding data that doesn’t fit into the existing tags: the AncillaryDataSet and corresponding AncillaryData tags. Ancillary data sets can be associated with almost all tags (e.g., SpaceSystem, TelemetryMetaData, Parameter, etc.); this is used extensively to attach data not otherwise conformable to the XTCE standard. The example table, MyTable, is shown below in XTCE XML format. "Structure","Telemetry and data structure table definition","Variable Name","Parameter name","Variable name","true","true","true","true","Description",&quo t;Parameter description","Text","false","false","true","true",&q uot;Units","Parameter units","Text","false","false","true","true","Da ta Type","Parameter data type","Primitive & Structure","false","true","true","true","Array Size","Parameter array size","Array 197 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 198 of 254 index","false","false","true","true","Bit Length","Parameter number of bits (bit values only)","Bit length","false","false","false","false","Enumeration" ;,"Enumerated parameters","Enumeration","false","false","false","false& quot;,"Rate","Downlink data rate, samples/second","Rate","false","false","false","true" ; float,float,4,floating point uint16_t,unsigned short int,2,unsigned integer double,double,8,floating point uint8_t,unsigned char,1,unsigned integer SIZE,meters 0x0800 - 0x08FF,CFS telemetry IDs 0x1800 - 0x18FF,CFE command IDs
Structure "System","","7","Text","false","All tables","GNC" "Vehicle","","20","Text","false","All tables","MyVehicle"
198 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 199 of 254 Location: northsouth float 2 199 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 200 of 254 MyTable Location: eastwest float MyTable ##SIZE## uint16_t MyTable ##SIZE## uint16_t MyTable ##SIZE## uint16_t MyTable 200 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 201 of 254 double 3 10 MyTable Xdirection m/s double 3 10 MyTable Ydirection m/s double 3 10 MyTable Zdirection 201 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 202 of 254 m/s double 3 10 MyTable Engine armed status uint8_t 1 0|Off, 1|Arm 1 MyTable Engine fire status uint8_t 1 0|Off, 1|Fire 1 MyTable 202 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 203 Version 1.1.50 Page 203 of 254 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 204 of 254 Appendix D. Error & Warning Messages The table below lists all of the error and warning messages, in alphabetical order, that can occur in the CCDD application and the causes. An error message implies that the intended operation cannot be successfully completed. An attempt is automatically made to revert any changes made to the project database in the event an error occurs during a database update. If this reversion is unsuccessful then the database is likely corrupted. A command line error message results in immediate program termination, but for other errors the application continues to run. A warning message indicates that although the operation was unsuccessful the user can effect a change to correct the problem. Type Warning Message # array member row(s) ignored due to missing array definition(s) Warning All application parameters must be entered Warning All rate parameters must be entered Warning An association with this script and table(s) already exists in the script associations table An unanticipated error occurred; cause ‘error cause’. Error trace: class name: method name() line line number, Error Warning Application parameter values must be positive integer values Warning At least one data stream(s) must be selected Warning Auto-fill detected mismatched rates for variable(s) associated with variable path+name Warning Auto-fill unable to assign number applications 204 Cause The number of rows indicated, #, were ignored when pasting data into a table. The cause is that one or more rows in the pasted data represent an array member, but an array definition does not precede the member(s). Include the array definition row when pasting array member information An input text field is empty in the application parameter dialog. Enter a valid value in each of the fields An input text field is empty in the rate parameter dialog. Enter a valid value in each of the fields A script association using the same script file and data table(s) is already present in the script association table in the script manager An exception occurred that is not otherwise covered by the error handling routines. The cause is specified by error cause, followed by a method trace showing the line where the error occurred and the calls sequence leading to it The value in one or more application parameter dialog input text fields contains a zero, negative, or non-integer value. Enter an integer value greater than or equal to 1 in each of the fields No target data stream is selected in the link copy dialog when the Okay button is pressed. Choose at least one data stream or press the Cancel button The telemetry scheduler auto-fill operation determined that one or more variables that are associated (via bit-packing or string membership) with the variable variable path+name do not have the same rate. Open the table containing the specified variable and adjust the rate for the associated variable(s) The application scheduler was unable to assign number applications to a time slot Johnson Space Center Engineering Directorate Type Warning Warning Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Message Auto-fill unable to assign number variables Base data type inconsistent with data type usage in table(s) ‘table name(s)’ Warning Bit length exceeds the size of the data type Warning Bit length exceeds the size of the data type in table(s) ‘table name(s)’ Warning Cannot assign application to a time slot Warning Cannot assign variable to a message Warning Cannot close backup file ‘backup file name’ (file channel) Warning Cannot close backup file ‘backup file name’ (file input stream) Warning Cannot close export file ‘path+file name’ Cannot close import file ‘path+file name’ Cannot close project database ‘database name’ Warning Error Warning Version 1.1.50 Page 205 of 254 Cause The telemetry scheduler was unable to assign number variables to an output message The base data type entered in the data type editor’s Base Type column was changed from an integer (signed or unsigned) to a non-integer, and the indicated table(s), table name(s), has a nonempty bit length or enumeration column. The associated data type for a bit length parameter or an enumerated parameter must be an integer. Clear the bit length and enumeration columns for the table(s) referencing this data type and then change the base type Either the bit length entered for a parameter in a data table is larger than the size, in bits, of the associated data type, or the data type changed to a smaller sized integer with a size in bits less than the current bit length. Decrease the bit length or choose a data type containing more bytes The size entered in the data type editor’s Base Type column for an integer base type (signed or unsigned) was reduced and the data type is used with parameters having a bit length specified that exceeds the capacity of the new size. Reduce or clear the bit length for the table(s) referencing this data type and then change the size The application scheduler was unable to assign an application to a time slot when the user attempted manual assignment The telemetry scheduler was unable to assign a variable to an output message when the user attempted manual assignment An error occurred preventing closing the file channel used when copying the backup file backup file name An error occurred preventing closing the file input stream used when copying the backup file backup file name The export file failed to close after being written The import file failed to close after being read An error occurred preventing closing project database database name. Detail on the cause is logged in the event log The script file failed to close after being read Cannot close script file ‘path+file name’ 205 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Error Message Cannot close server connection Error Cannot connect to project database ‘database name’ Error Cannot connect to server Error Cannot copy project database ‘database name’ Error Cannot copy table ‘table name’ Error Cannot copy table type ‘table type’ Warning Cause An error occurred preventing closing the PostgreSQL server connection (which is accomplished by closing the connection to the default database, postgres). Detail on the cause is logged in the event log An attempt to connect to the project database database name failed. Detail on the cause is logged in the event log. This can occur due to lack of access permission by the user to the database, if the selected project is already open by another instance of the CCDD application, or if the locked status flag remained set due to abnormal application termination An attempt to connect to the PostgreSQL server, (accomplished by connecting to the default database, postgres) failed. Detail on the cause is logged in the event log. This may occur if the postgreSQL server is not running An error occurred preventing copying of the project database database name. Detail on the cause is logged in the event log The attempt to copy table table name in the project database failed. Detail on the cause is logged in the event log The attempt to copy table type table type in the project database failed. Detail on the cause is logged in the event log The event log file cannot be created. Check that file permissions allow read/write operations to the directory in which the CCDD application was executed The export .csv file file name cannot be created in the directory path. Check that the file permissions allow the user to write to this directory The output file file name cannot be created in the directory path. Check that the file permissions allow the user to write to this directory An error occurred preventing creation of the project database database name. Detail on the cause is logged in the event log The script file file name cannot be created in the directory path. Check that the file permissions allow the user to write to this directory Cannot create event log file Error Cannot create export file ‘path+file name’ Error Cannot create output file ‘path+file name’ Error Cannot create project database ‘database name’ Error Cannot create script file ‘path+file name’ Version 1.1.50 Page 206 of 254 206 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Error Message Cannot create structure functions in project database ‘database name’ Error Cannot create tables ‘table names’ Error Cannot create tables and functions in project database ‘database name’ Error Cannot create web server Warning Cannot delete data type ‘data type’; data type is referenced by a data table Warning Cannot delete macro ‘macro name’; macro is referenced by a data table Error Cannot delete project database ‘database name’ Error Cannot delete table type ‘table type’ Error Cannot delete table(s) ‘table name(s)’ Error Cannot disable auto-commit Error Cannot execute script ‘script name’ using table(s) ‘table name(s)’ 207 Version 1.1.50 Page 207 of 254 Cause The SQL and pgplsql functions related to structure tables cannot be created in the project database database name. Detail on the cause is logged in the event log. This can occur due to lack of access permission by the user to the database The attempt to create tables table names in the project database failed. Detail on the cause is logged in the event log The SQL and pgplsql functions and/or the default tables cannot be created in the project database database name. Detail on the cause is logged in the event log. This can occur due to lack of access permission by the user to the database The attempt to instantiate the embedded Jetty web server failed. Detail on the cause is logged in the event log An attempt was made to delete the data type data type, but the data type is in use in one of the data tables. A data type can’t be removed until all references to it are first eliminated. Remove the data type reference(s) and then delete the data type An attempt was made to delete the macro macro name, but the macro is in use in one of the data tables. A macro can’t be removed until all references to it are first eliminated. Remove the macro reference(s) and then delete the macro An error occurred preventing deletion of the project database database name. Detail on the cause is logged in the event log The attempt to delete table type table type and its associated table(s) table name(s), if any, from the project database failed. Detail on the cause is logged in the event log The attempt to delete table(s) table name(s) in the project database failed. Detail on the cause is logged in the event log The attempt to disable the auto-commit mode for database changes failed. If this occurs subsequent database transactions are likely to fail. Restart the application; the affected project database may require manual unlocking. Detail on the cause is logged in the event log An error occurred during execution preparation of the script script name. Detail on the cause is logged in the event log Johnson Space Center Engineering Directorate Type Error Error Error Error Error Error Error Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Message Cannot export as EDS XML to file ‘file name’; cause ‘error cause’ Cannot export as XTCE XML to file ‘file name’; cause ‘error cause’ Cannot format JSON output using JavaScript; cause ‘cause’ Cannot import EDS XML from file ‘file name’; cause ‘error cause’ Cannot import file ‘file name’ into table; unrecognized file type Cannot import XTCE XML from file ‘file name’; cause ‘error cause’ Cannot load data from the custom values table Error Cannot load internal table ‘table name’ Error Cannot load table ‘table name’ Error Cannot load table members Error Cannot locate backup file ‘path+file name’ Cannot locate event log file ‘path+file name’ Cannot locate import file ‘path+file name’ Cannot modify data in table ‘table name’ Error Error Error Error Cannot obtain column order for table ‘table name’ Error Cannot obtain comment for internal table ‘table name’ Error Cannot obtain comment for project database ‘database name’ 208 Version 1.1.50 Page 208 of 254 Cause Exporting the Table(s) to file file name in EDS XML format failed due to the specified cause Exporting the table(s) to file file name in XTCE XML format failed due to the specified cause An error occurred during JSON table data export while attempting to use JavaScript to format the output. Information on the cause is displayed Importing the table(s) from file file name in EDS XML format failed due to the specified cause Importing the data from file file name into a table failed due to the file type not being recognized. The file extension must end in .csv, .xtce, or .eds Importing the project from file file name in XTCE XML format failed due to the specified cause The attempt to load the table path(s), column name(s), and column value(s) in the custom values table matching the specified column name and column value failed. Detail on the cause is logged in the event log The attempt to load the data from internal table table name in the project database failed. Detail on the cause is logged in the event log The attempt to load the data from table table name in the project database failed. Detail on the cause is logged in the event log The attempt to load the table and child table relations failed. Detail on the cause is logged in the event log The project database restore file file name cannot be found in the specified directory path The event log file file name cannot be found in the directory path The import .csv file file name cannot be found in the specified directory path The attempt to update the contents of table table name in the project database failed. Detail on the cause is logged in the event log The attempt to query the project database for the column order for table table name. Detail on the cause is logged in the event log The attempt to query the project database for the comment on internal table table name failed. Detail on the cause is logged in the event log The comment for the project database database name cannot be retrieved. Detail on the cause is logged in the event log Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Error Message Cannot obtain comment for table ‘table name’ Error Cannot obtain database version number Error Cannot obtain description for table ‘table name’ Error Cannot obtain JDBC version number Error Cannot open output file ‘path+file name’ Warning Cannot parse import file ‘path+file name’ Cannot print search results; cause ‘error cause’ Cannot read backup file ‘path+file name’; cause ‘error cause’ Warning Error Warning Cannot read event log file Error Cannot read import file ‘path+file name’ Error Cannot read script file ‘path+file name’ Error Cannot register database driver ‘driver name’ Error Cannot rename project database ‘database name’ Error Cannot rename table ‘table name’ Error Cannot rename type for table ‘table name’ 209 Version 1.1.50 Page 209 of 254 Cause The attempt to query the project database for the comment on table table name failed. Detail on the cause is logged in the event log The database’s version number cannot be obtained. Detail on the cause is logged in the event log The attempt to query the project database __values table for the description of the table table name failed. Detail on the cause is logged in the event log The JDBC version number cannot be obtained. Detail on the cause is logged in the event log The output file file name cannot be opened in the directory path. Check that the file permissions allow the user to read from this file and directory The JSON import file path+file name contains text that is not in the expected JSON format An error occurred during an attempt to print the search results due to the cited cause The backup file file name, chosen to restore a project database, cannot be read for the reason error cause. Check that the file permissions allow the user so read from this file and directory The event log file cannot be read. Check that user has file read permissions for the file and directory The import .csv file file name cannot be read in the directory path. Check that the file permissions allow the user so read this file and directory The script file file name cannot be read in the directory path. Check that the file permissions allow the user so read this file and directory An error occurred registering the JDBC database driver driver name. This can be caused by setting an invalid server type An error occurred preventing renaming of the project database database name. Detail on the cause is logged in the event log The attempt to rename table table name in the project database failed. Detail on the cause is logged in the event log The attempt to rename the type for table table name in the project database failed. Detail on the cause is logged in the event log Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Error Message Cannot replace existing backup file ‘path+file name’ Warning Cannot replace existing export file ‘path+file name’ Error Cannot replace export file 'path+file name’ Error Cannot replace output file ‘path+file name’ Error Cannot replace script file 'path+file name’ Error Cannot respond to web server request Error Cannot retrieve clipboard values; cause ‘error cause’ Cannot retrieve list type list Error Error Cannot revert changes to internal table ‘table name’ Error Cannot revert changes to project database ‘database name’ 210 Version 1.1.50 Page 210 of 254 Cause The project database backup file file name already exists in the directory path, but cannot be removed so as to be replaced by a new backup file of the same name. Check that the file permissions allow the user to write to this file and directory The existing file path+file name cannot be replaced with the EDS or XTCE export file. Check that user has file read and write permissions for the file and directory The export .csv file file name already exists in the directory path, but cannot be removed so as to be replaced by a new file of the same name. Check that the file permissions allow the user to write to this file and directory The output file file name already exists in the directory path, but cannot be removed so as to be replaced by a new file of the same name. Check that the file permissions allow the user to write to this file and directory The script file file name already exists in the directory path, but cannot be removed so as to be replaced by a new file of the same name. Check that the file permissions allow the user to write to this file and directory An error occurred in writing the output to the output stream for a request for data from the application via the web server. Detail on the cause is logged in the event log An error occurred in retrieving the values from the clipboard for a paste operation An error occurred retrieving the list of data list type from the project database. Detail on the cause is logged in the event log. The may be due to database corruption or a database server error Following an update error on internal table table name, another error prevented reverting any changes made to the project database. Detail on the cause is logged in the event log Following an update error on project database database name, another error prevented reverting any changes made to the database. Detail on the cause is logged in the event log Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Error Message Cannot revert changes to table ‘table name’ Error Cannot revert changes to table(s) Error Cannot revert copying table ‘table name’ Error Cannot revert copying table type ‘table type’ Error Cannot revert deleting table type ‘table type’ and table(s) ‘table name(s)’ Error Cannot revert deleting table(s) ‘table name(s)’ Error Cannot revert name change to table ‘table name’ Error Cannot revert type name change table ‘table name’ Error Cannot revert type updates to table(s) ‘table name(s)’ 211 Version 1.1.50 Page 211 of 254 Cause Following an update error on one or more tables during the table consistency check, another error prevented reverting any changes made to the project database. Detail on the cause is logged in the event log Following an update error on one or more tables during the table consistency check or during a macro update, another error prevented reverting any changes made to the table(s). Detail on the cause is logged in the event log Following a failed attempt to copy table table name in the project database, another error prevented reverting any changes made to the database. Detail on the cause is logged in the event log Following an error during copying a table type, another error prevented reverting any changes made to the project database. Detail on the cause is logged in the event log Following a failed attempt to table type table type and its associated table(s) table name(s) delete one or more tables from the project database, another error prevented reverting any changes made to the database. Detail on the cause is logged in the event log Following a failed attempt to delete one or more tables from the project database, another error prevented reverting any changes made to the database. Detail on the cause is logged in the event log Following a failed attempt to rename table table name in the project database, another error prevented reverting any changes made to the database. Detail on the cause is logged in the event log Following a failed attempt to change the type of table table name in the project database, another error prevented reverting any changes made to the database. Detail on the cause is logged in the event log Following a failed attempt to update table(s) table name(s) in the project database, another error prevented reverting any changes made to the database. Detail on the cause is logged in the event log Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Error Message Cannot revert updates to data fields Error Cannot set comment for database ‘database name’ Error Cannot store internal table ‘table name’ Warning Cannot store program preference values; cause ‘error cause’ Error Cannot update comment for table ‘table name’ Error Cannot update data fields Error Cannot update data types Error Cannot update macros Error Cannot update table type ‘type name’ ’ Warning Error Error Warning Warning Cannot write to event log Cannot write to export file ‘path+file name’ Cannot write to script file ‘path+file name’ Column ‘column name’ expects a boolean value Column name ‘column name’ already in use 212 Version 1.1.50 Page 212 of 254 Cause Following a failed attempt to update the data fields in the project database, another error prevented reverting any changes made to the database. Detail on the cause is logged in the event log The attempt to update the lock status, which is stored in the project database comment, for database ‘database name’ failed. Detail on the cause is logged in the event log The attempt to store the data to internal table table name in the project database failed. Detail on the cause is logged in the event log The program preference keys could not be stored in the preference storage node due to the cited cause The attempt to update comment for table table name failed. Detail on the cause is logged in the event log The attempt to update the data fields in the internal table (__fields) failed. Detail on the cause is logged in the event log The attempt to update the data types in a data table or the internal table (__data_types) failed. Detail on the cause is logged in the event log The attempt to update the macros in a data table or the internal table (__macros) failed. Detail on the cause is logged in the event log The attempt to update table type type name (and tables of that type, table name(s), if any) in the project database failed. Detail on the cause is logged in the event log The event log file cannot be written. Check that user has file write permissions for the file and directory An I/O error occurred while writing to the export file file name in the directory path An I/O error occurred while writing to the script file file name in the directory path The text pasted into column column name is non-boolean (true/false) and the column only displays boolean (in the form of a check box); the text is ignored The column name column name is already used in the table type being edited. A different column name must be chosen Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Warning Message Column name ‘column name’ already in use (database) Warning Column name ‘column name’ already in use (hidden) Warning Data field ‘field name’ definition applicability type ‘applicability type’ unrecognized in import file ‘file name’; continue? Warning Data field ‘field name’ definition input type ‘input type’ unrecognized in import file ‘file name’; continue? Warning Data must be provided for column ‘column name 1’ or column ‘column name 2’ [row row number] Warning Data must be provided for column ‘column name’ [row row number] Warning Data must be provided for column ‘column name’ [row row number] Warning Data stream(s) stream name(s) already contain(s) a link with the name 'link name'; skipped Warning Data type name is already in use Warning Data type size must be a positive integer 213 Version 1.1.50 Page 213 of 254 Cause The database converts the column names to one that is valid for use in PostgreSQL. The database form of the column names in the table type being edited must be unique. A different column name must be chosen The column name column name is already used by a hidden column in the table type being edited. A different column name must be chosen The applicability type, applicability type, referenced in a data field definition with the name field name in the import file file name is not one of those recognized. Change the input type, or select Ignore or Ignore all to use the default input type (‘All tables’) The input type, input type, referenced in a data field definition with the name field name in the import file file name is not one of those recognized. Change the input type, or select Ignore or Ignore all to use the default input type (‘Text’) One or both columns column name 1 and column name 2 in the data type editor in row row number require a value, but both are empty. Enter a value in at least one of the columns The column column name in the table type editor or the data field editor in row row number requires a value, but is empty. Enter a value in the column The column column name in the table type, data type, or data field editor in row row number requires a value, but is empty. Enter a value in the column The target data stream(s) stream name(s) already contains a link with the name link name when copying a link from one data stream to another. Change the name for the copy to one not already present in the target data stream The data type name entered in the data type editor’s User Name column is already in use by another data type. User-defined data type names must be unique. Alter the data type name to one not in use The value entered for a data type’s size is less than 1 or is not an integer. Enter a valid size value Johnson Space Center Engineering Directorate Type Warning Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Message Database connection parameter(s) missing Error Database query failed Error EDS conversion setup failed; cause ‘error cause’ Warning Enumeration ‘enumeration’ format invalid in table ‘table name’; initial non-negative integer or separator character between enumeration value and label missing Warning Enumeration ‘enumeration’ format invalid in table ‘table name’; separator character between enumerated pairs missing Warning Enumeration expects an integer data type in table ‘table name’ for command ‘command name’ Error Error obtaining metadata for internal table ‘table name’ Error Error obtaining metadata for table ‘table name’ 214 Version 1.1.50 Page 214 of 254 Cause One or more or the server connection parameters, server type, server host, or user name, are missing. the Change user and Server properties commands are used to set these parameters A project database query executed from within a script using the getDatabaseQuery script data access method failed. The script association dialogs can also produce this error. Detail on the cause is logged in the event log An error occurred during setup for conversion of the project database to EDS XML format due to the cited cause One or more of the enumeration definitions in enumeration enumeration in table table name imported from an EDS or XTCE XML file does not have a non-negative integer as the first enumeration parameter or the character separating the enumeration value and label can’t be identified. EDS and XTCE XML enumerations must be in the format specified in paragraph 4.5.6 The character separating each enumerated pair can’t be identified in one or more of the enumeration definitions in enumeration enumeration in table table name imported from an EDS or XTCE XML file. EDS and XTCE XML enumerations must be in the format specified in paragraph 4.5.6 Command command name in command table table name has a value in an enumeration column, but the associated data type is a non-integer. Either remove the enumeration or change the data type An error occurred while attempting to read the metadata for the internal table table name during project database verification. The metadata provides information on the table’s columns (number, names, and data types) An error occurred while attempting to read the metadata for the table table name during project database verification. The metadata provides information on the table’s columns (number, names, and data types) Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Error Message Error obtaining project database ‘database name’ metadata Error Error verifying project database ‘database name’ consistency Command Line Error Error: argument must be >= minimum and <= maximum Command Line Error Error: argument must be one of the following: valid inputs Command Line Error Command Line Error Warning Error: argument not a number Error: mainsize width or height not a number, or too many/few values Field name ‘field name’ already in use Warning Field size must be a positive integer Warning Field size must be less than or equal to 100 Error File ‘path+file name‘ is not a backup file Warning Error Format invalid for import file ‘file name’ Format invalid for import file ‘path+file name’ 215 Version 1.1.50 Page 215 of 254 Cause An error occurred while attempting to read the metadata for project database database name during project database verification. The metadata provides information on the number of tables and their names An error occurred while perform updates to project database database name internal tables during project database verification. Detail on the cause is logged in the event log The command line argument argument expects a numeric value between the values minimum and maximum, inclusive The command line argument argument is provided an argument value that is not one of the valid inputs, valid inputs, for this command The command line argument argument expects a numeric value which isn’t provided The width or height contains a non-numeric (0-9) character, or other than 2 values are given The data field field name is already in use for this table. Each field within a table must be unique. Alter the field name The value entered for a data field’s size is less than 1 or is not an integer. Enter a valid size value The value entered for a data field’s size is greater than the maximum allowed (if the field width is allowed to be too large then when the field in rendered the effect on the user interface can result in the application becoming unusable). The number of characters that can be entered into the field is not limited by this value, only the displayed width of the field. Enter a value less than the maximum The file chosen to restore a project database is not in the expected format. The file is either corrupted or the wrong file was chosen The selected import file file name is not in the expected format. Correct the import file format or select another file to import The import .csv file file name is not in the expected format. The file is either corrupted or the wrong file was chosen Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Warning Message Group name is already in use Warning Group name must be entered Warning ID interval must be a positive integer Warning Illegal character(s) in data type C type name Warning Illegal character(s) in data type name Warning Illegal character(s) in macro name Warning Illegal character(s) in project name Warning Illegal character(s) in table name ‘table name’ Error Warning Import file ‘path+file name’ information missing Imported data type ‘data type name’ doesn’t match the existing definition 216 Version 1.1.50 Page 216 of 254 Cause The group name entered in the group name text field is already in use by another group or matches the pseudo-group’s name, ‘All tables’. Group names must be unique. Alter the group name to one not in use The group name text field is empty. Enter a valid group name into the text field The message ID interval value in the Assign Telemetry Messages or Assign Table Message IDs dialog is invalid. Enter a positive integer value The C type name in the data type editor table cell contains one or more illegal characters. C type names can consist of multiple words, separated by one or more spaces, which must begin with a letter or underscore and contain only letters, numerals, and underscores (an ending asterisk is legal if the corresponding base type is ‘pointer’ or blank). Remove the illegal character(s) The user data type name in the data type editor table cell contains one or more illegal characters. Data type names must begin with a letter or underscore and contain only letters, numerals, and underscores. Remove the illegal character(s) The macro name in the macro editor table cell contains one or more illegal characters. Macro names must begin with a letter or underscore and contain only letters, numerals, and underscores. Remove the illegal character(s) The project name text field contains one or more semi-colons. Remove the illegal character(s) The table name text field contains one or more illegal characters. Table names must begin with a letter or underscore and contain only letters, numerals, and underscores. Remove the illegal character(s) The import file path+file name has no tag (e.g., _description_ or _column_names_) prior to the table information The data type data type name imported from a CSV, XTCE XML, or EDS XML file already exists, but the data type definition (e.g., a size or base type) does not match the existing one. Either the existing data type or the imported one must be renamed, or the difference(s) eliminated Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Warning Message Imported macro ‘macro name’ doesn’t match the existing definition Warning Imported table type ‘table type name’ doesn’t match the existing definition Warning Incorrect number of columns indicated for table 'table name' in the column order table for user ‘user name’ Warning Internal table ‘table name’ column ‘column name’ type mismatch (expected: ‘expected type’, actual: ‘actual type’) Warning Internal table ‘table name’ column column index name mismatch (expected: ‘expected name’, actual: ‘actual name’) Warning Internal table ‘table name’ has too many columns Warning Internal table ‘table name’ is missing one or more columns Warning Interval must be a positive integer 217 Version 1.1.50 Page 217 of 254 Cause The macro macro name imported from a CSV, XTCE XML, or EDS XML file already exists, but the macro value does not match the existing one. Either the existing macro or the imported one must be renamed, or the difference eliminated The table type table type name imported from a CSV, XTCE XML, or EDS XML file already exists, but the table type definition (e.g., a column name or input type) does not match the existing one. Either the existing table type or the imported one must be renamed, or the difference(s) eliminated Detected during project database verification, the number of columns for table table name in the internal table __orders doesn’t match the actual number of columns for that table’s type. If updated the column order is reset to the default Detected during project database verification, the data type for the column column name in the internal table table name is found to not be of the type expected for this column (e.g., an integer type is specified while the table shows a text type). If updated the data type is changed to the one expected Detected during project database verification, the column indicated by its index is found to have a name other than the name expected for this column. If updated the name is changed to the one expected; however, the data in the column may be incorrect as well. For this case deleting the internal table (with loss of its data) may be necessary Detected during project database verification, the internal table table name is found to have more columns than the number expected. If updated any extra columns are removed Detected during project database verification, the internal table table name is found to be missing one or more columns. If updated the table is deleted (with loss of its data) The value in the table or telemetry message ID interval field is blank, or is a non-positive integer value. Enter a positive integer value for the interval Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Error Message Invalid application parameter(s): using the default values instead Error Invalid application scheduler applications detected; number removed Warning Invalid characters in column ‘column name’; characters consistent with input type ‘input type‘ expected Warning Invalid characters in field ‘field name’; characters consistent with input type ‘input type‘ expected Warning Invalid characters in message ID Warning Invalid characters in message name Warning Invalid import file extension Warning Invalid input value for column ‘column name’; command argument names must be unique for a command Invalid input value for column ‘column name’; input value ‘input value‘ must be unique Warning 218 Version 1.1.50 Page 218 of 254 Cause The application scheduler parameters stored in the project database internal table (__app_scheduler) comment are invalid. Default values replace these parameters. Detail on the cause is logged in the event log The application scheduler internal table (__app_scheduler) references applications that do not exist in the project database. The number invalid application references are removed The value entered in a cell in the column column name does not match the expected input type, input type, as specified in the table type definition. Enter only characters matching the input type or change the input type The value in the data field field name text field contains characters that are inconsistent with the data field’s input type, input type. Enter only characters matching the input type or change the input type The message contains an invalid character in the telemetry scheduler Scheduler ID column cell. Enter an ID in hexadecimal format (the leading ‘0x’ is optional) The message contains an invalid character in the telemetry scheduler Scheduler Message column cell. Enter a name beginning with an underscore or alphabetical character, and containing only alphanumeric and underscore characters The file name extension for the selected import file is not one of the ones recognized by the application; only the extensions .csv, .xtce, and .eds are valid. Select a file with a valid extension, or, if the selected file is in one of the recognized formats, add the extension to the file name The command argument name entered in a cell in the column column name has a duplicate elsewhere in that column, and the cell values must be unique, as specified in the table type definition The value, input value, entered in a cell in the column column name has a duplicate elsewhere in that column, and the cell values must be unique, as specified in the table type definition Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Warning Message Invalid input value for column ‘column name’; data type invalid or unknown in sizeof() call Warning Invalid output file name Error Invalid rate parameter(s): using the default values instead Error Invalid table/path name ‘table name’ format Error Invalid telemetry scheduler variables detected; number removed Error Invalid web server request Warning Link name is already in use Warning Link name must be entered Warning Macro name is already in use 219 Version 1.1.50 Page 219 of 254 Cause The data type referenced in a sizeof() call entered in a cell in the column column name is either not a recognized primitive data type or structure name, or is a valid structure name but is the prototype of this structure table or one of its child structures, producing a recursive reference. Enter a valid data type name. Use Ctrl-S to display a pop-up dialog that allows selecting from the valid data types The file name entered for exporting one or more tables in CSV, XTCE XML, or EDS XML formats is not valid. Enter a valid file name The rate parameters stored in the project database internal table (__tlm_scheduler) comment are invalid. Default values replace these parameters. Detail on the cause is logged in the event log The imported table path/name table path is in the incorrect format. The import operation is canceled. The expected format is: root<,parent.name<,…>> where root, parent, and name must begin with an alphabetic character or underscore and only contain alphabetic characters, numerals, or underscores. Correct the table’s path/name in the import file The telemetry scheduler internal table (__tlm_scheduler) references variables that do not exist in the project database. The number invalid variable references are removed The request for data from the CCDD application via the web server is unrecognized; an unknown data stream name, incorrect number of parameters, or incorrect parameter type was passed to the telemetry scheduler request; or an error occurred while attempting to parse the data from the database for the request. Detail on the cause is logged in the event log The link name entered in the link name text field is already in use by another link. Link names must be unique. Alter the link name to one not in use The link name text field is empty. Enter a valid link name into the text field The macro name entered in the macro editor’s name column is already in use by another macro. Macro names must be unique. Alter the macro name to one not in use Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Warning Message Macro ‘macro name’ contains a recursive reference Warning Macro value is not consistent with macro usage in table(s) ‘table name(s)’ Warning Message ID is already in use Warning Message ID name must be entered Warning Message interval must be a positive integer Warning Message name is already in use Warning Message name must be entered Warning Message name or ID assignment must be selected Warning Message name pattern must be in the format: startText<0#>d where startText and endText consist of alphanumeric characters and/or underscores, startText begins with a letter or underscore, and # is one or more digits. Note: 0# and endText are optional Message starting number must be an integer >= 0 Warning Warning Missing or extra data type definition input(s) in import file ‘file path+name’; continue? 220 Version 1.1.50 Page 220 of 254 Cause The macro value for the macro macro name in the macro editor contains a circular reference (a macro references itself). Alter the macro value to remove the circular reference The macro value entered in the macro editor’s value column does not match the input type of a column in one or more tables, table name(s), where the macro is used. Alter the macro value to be consistent with the input type in every column for which the macro is referenced The message ID is a duplicate of another in the telemetry scheduler Scheduler ID column. Enter a unique message name The table message ID name is missing from the Message ID Name text field. Enter a valid message ID name The message number interval value in the Assign Telemetry Messages dialog is invalid. Enter a positive integer value The message name is a duplicate of another in the telemetry scheduler Scheduler Message column. Enter a unique message name The message name is missing from the telemetry scheduler Scheduler Message column cell. Enter a valid message name The “Assign message name” and “Assign message ID” check boxes in the Assign Telemetry Messages dialog are both unchecked and the Okay button is selected. Select at least one of these check boxes or press the Cancel button The message name pattern in the Assign Telemetry Messages dialog in not in the expected format. The pattern must contain only alphanumeric characters, contain a single ‘#’ character, and begin with either an underscore or alphabetical character. Change the pattern to match the valid format The message starting number in the Assign Telemetry Messages dialog is invalid. Enter a positive integer value or zero A data type definition is missing or has too many inputs in import file file path+name Johnson Space Center Engineering Directorate Type Warning Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Warning Message Missing or extra macro definition input(s) in import file ‘file path+name’; continue? Missing or extra reserved message ID definition input(s) in import file ‘file path+name’; continue? Missing table type name in import file ‘file path+name’; continue? Must enter or select a script Warning Must select a project to delete Warning Must select a project to open Warning Must select a project to unlock Warning Must select a script location Warning Must select a script to delete Warning Must select a script to retrieve Warning Must select a script to store Warning Must select a table from the tree Warning Must select at least one data field Warning No ‘look & feel’ exists Warning Warning 221 Version 1.1.50 Page 221 of 254 Cause A macro definition is missing or has too many inputs in import file file path+name A reserved message ID definition is missing or has too many inputs in import file file path+name A table type definition is missing the table type name in import file file path+name No script is selected when the Add button is pressed in the script association manager dialog. Enter or select a script file No project is selected from the Delete Project dialog when the Delete button is pressed. Select one or more projects from the dialog or press the Cancel button No project (other than the currently open one) is selected from the Open Project dialog when the Open button is pressed. Select a project from the dialog or press the Cancel button No project is selected from the Unlock Project dialog when the Unlock button is pressed. Select a project from the dialog or press the Cancel button No folder is selected in which to save the script(s) retrieved from the project when the Retrieve button is pressed in the Retrieve Script dialog. Enter or select a script location, or press the Cancel button No script is selected from the Delete Script(s) dialog when the Delete button is pressed. Select a script from the dialog or press the Cancel button No script is selected from the Retrieve Script(s) dialog when the Retrieve button is pressed. Select a script from the dialog or press the Cancel button No script is selected from the Store Script(s) dialog when the Store button is pressed. Select a script from the dialog or press the Cancel button No table is selected from the table tree and is required for the action requested by the user. Select a table from the tree No data field is selected from the list of fields in the data field table editor selection dialog. Select at least one data field check box No look & feel is available to load Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Warning Message No columns in import file ‘path+file name’ match those in the target table Warning No data field exists Warning No other user exists Warning No project exists for which user ‘user name’ has access Warning No role exists Warning Platform does not allow key press simulation Warning Problem occurred when setting the look & feel to look&feel Warning Project ‘project name’ has no table type defined Warning Project ‘project name’ has no scripts Warning Project ‘project name’ has no tables Error Project database ‘database name’ backup failed Error Project database ‘database name’ restore failed 222 Version 1.1.50 Page 222 of 254 Cause The import .csv file file name has no columns defined that match those in the table to which the file is being imported; no data is added to the table from the file. Check the import file’s column names No data field is available to select in the data field table editor selection dialog An attempt was made to change to another user when no other user exists in the server The user user name does not have permission to access any of the project databases existing in the server. The user’s permissions must be upgraded or a project database created for which the user has access No user or role exists in the server from which to choose Copy, paste, and insert menu commands in the table and table type editors are handled by simulating the equivalent control key presses. The platform on which the application is running does not support this type of simulation. Use the actual key press sequences to perform the desired operation An exception occurred while attempting to set the look & feel to the one selected. This can occur if the look & feel is not supported by the platform, or if there is a problem with access to the look & feel information The project database project name has no __types internal table or the __types table is empty. Create table types using the table type editor and store these in the project’s database The user attempted to retrieve a script from the project database project name, but the project does not have any scripts stored in it The project database project name contains no data tables. Create tables using the Table | New command An error occurred preventing backing up project database database name. Detail on the cause is logged in the event log An error occurred preventing restoring project database database name. Detail on the cause is logged in the event log Johnson Space Center Engineering Directorate Type Error Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Message Project database, user name, and/or host missing Warning Project must be selected Warning Project name already in use Warning Project name must be entered Warning Project name too long (maximum length characters maximum) Warning Project owner must be selected Warning Rate parameter values must be positive integer values Warning Search text cannot be blank Warning Server port must be a positive integer Warning Server port must be blank or a positive integer Warning Starting ID must be in the format <0x>#, where # is one or more hexadecimal digits Warning System data field name missing Warning System data field name, version, validation status, and/or classification missing 223 Version 1.1.50 Page 223 of 254 Cause The project database, user name, and or host server are not provided when executing a script from the command line No project is selected when renaming or copying a project database. Choose a project from the radio button list The project (database) name already exists on the server. Choose another name that does not match an existing project’s database The project name text field is empty. Enter a valid project name into the text field The project name entered into the project name text field exceeds the maximum allowed. The maximum length for a database name in PostgreSQL is 63 characters. Shorten the name to within the length limit No owner is selected when creating a project database. Choose an owner from the radio button list The value in one or more rate parameter dialog input text fields contains a zero, negative, or noninteger value. Enter an integer value greater than or equal to 1 in each of the fields A project database or script search was attempted without a text string for which to search entered in the search dialog. Enter a text string prior to attempting a search The value entered into the server port field in the web server properties dialog is invalid. Enter a port number (positive integer value) The value entered into the server port field in the PostgreSQL server properties dialog is invalid. Either clear the field or enter a port number (positive integer value) The starting message ID value in the Assign Telemetry Messages or Assign Table Message IDs dialog is invalid. Enter a hexadecimal value. The “0x” prefix is optional The Export EDS dialog system data field name field is empty. Enter a valid value for the system field The Export XTCE dialog system data field name, version, validation status, and/or classification field is empty. Enter a valid value for each missing field Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Warning Message Table ‘table name’ column ‘column name’ data type is invalid (data type) Warning Table ‘table name’ column ‘column name’ rows row number 1 and row number 2 have duplicate values Warning Table ‘table name’ column name ‘column name’ unrecognized in import file ‘file path+name’; continue? Table ‘table name’ contains a recursive reference to ‘recursion table name’ Warning Warning Table ‘table name’ has an unknown column (‘column name’) Warning Table ‘table name’ is an unknown type (‘table type’) Warning Table ‘table name’ is missing column ‘column name’ Warning Table ‘table name’ printing failed; cause ‘error cause’ Warning Table ‘table name’ row row number column ‘column name’ type mismatch 224 Version 1.1.50 Page 224 of 254 Cause Detected during project database verification, column column name in table table name is found to have an invalid data type. Updating replaces the data type with that from the table’s type definition Detected during project database verification, the values in table table name on rows row number 1 and row number 2 in column column name are found to have the same value when the indicated column for this table’s type is specified to contain only unique values. If updated the value in row row number 2 is replaced with a blank The column column name for table table name in the import file file path+name doesn’t not exist in the table type definition The table table name has the condition wherein the table recursion table name contains a reference to itself as a variable or as a variable in one of its child tables (or in one of their child tables, etc.). Remove the recursive table reference Detected during project database verification, table table name is found to have a column column name that is not defined for this table’s type. If updated the column is deleted Detected during project database verification, the table type table type specified for table table name is not one of the defined table types. If updated the table is deleted Detected during project database verification, table table name is found to be missing a column column name that is defined for this table’s type. If updated the column, with blank values for any rows, is added Output of the table table name to a printer or file was unsuccessful due to the cause specified. This can be due to the printer being offline Detected during project database verification, the value in row row number, column column name in table table name is found to have a value that is inconsistent with the data type specified in this table’s table type for this column (e.g., text in an integer-only cell). If updated the value in the row and column indicated is replaced with a blank Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Warning Message Table ‘table name’ row row number index mismatch Warning Table ‘table name’ variable ‘variable name’ array member array index array size doesn’t match the array definition Warning Table ‘table name’ variable ‘variable name’ array member array index data type doesn’t match the array definition Warning Table ‘table name’ variable ‘variable name’ has an extra array member Warning Table ‘table name’ variable ‘variable name’ is missing array member array index Warning Table ‘table name’ variable ‘variable name’ is missing the array definition Warning Table ’table name’ has missing or extra data field input(s)in import file ‘file path+name’; continue? Table export completed with errors Error 225 Version 1.1.50 Page 225 of 254 Cause Detected during project database verification, row row number in table table name is found to have the wrong row index. Row indices, stored in a hidden column, start at 1 for the first row and increment sequentially for each additional row. If updated the row indices are set to the expected values Detected during project database verification, in table table name the array member variable name[array index] is found to have a value in the array size column that differs from that in the array’s array definition. If updated the array size for the specified array member is changed to match the array definition Detected during project database verification, in table table name the array member variable name is found to have a value in the data type column that differs from that in the array’s array definition. If updated the data type for the specified array member is changed to match the array definition Detected during project database verification, in table table name the array variable variable name is found to have more members than its array size allows. If updated any extra array member rows are deleted Detected during project database verification, in table table name the array variable variable name is found to have fewer members than its array size allows. If updated any missing array member rows are added Detected during project database verification, in table table name the array member variable name is found to have no accompanying array definition. If updated the missing array definition row is added A data field definition in table table name is missing or has too many inputs in import file file path+name An error occurred when attempting to export one or more tables to a file. A separate error dialog appears describing the specific error; this error appears at the end of the export operation Johnson Space Center Engineering Directorate Type Error Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Message Table import completed with errors Warning Table name ‘table name’ cannot begin with ‘__’ Warning Table name ‘table name’ is a duplicate Warning Table name ‘table name’ is already in use Warning Table name ‘table name’ matches a primitive data type Warning Table name ‘table name’ matches a reserved word Warning Table name ‘table name’ too long (maximum length characters maximum) Warning Table name must be entered Warning Table type ‘table type’ definition has missing or extra input(s) in import file ‘file path+name’; continue? Warning Table type ‘table type’ has missing or extra data field input(s) in import file ‘file path+name’; continue? 226 Version 1.1.50 Page 226 of 254 Cause An error occurred when attempting to import one or more tables from one or more files. A separate error dialog appears describing the specific error; this error appears at the end of the import operation The table name, table name, entered into the table name text field begins with a double underscore. The double underscore prefix is reserved for use by the application to designate internal tables in the project database. Alter the table name to meet the table naming constraints The table name, table name, appears more than once in the list of new table names entered in the table name text field. Table names must be unique. Alter the table name to one not in use The table name, table name, entered in the table name text field is already in use by another table. Table names must be unique. Alter the table name to one not in use The table name, table name, entered in the table name text field matches a primitive data type’s name (e.g., uint32, float). Alter the table name to meet the table naming constraints The table name, table name, entered into the table name text field matches that of a reserved word in PostgreSQL. Alter the table name to meet the table naming constraints The table name, table name, entered into the table name text field exceeds the maximum allowed. The maximum length for a table name in PostgreSQL is 63 characters. Shorten the name to within the length limit The table name text field is empty. Enter a valid table name into the text field The table type definition table type is missing or has too many inputs in import file file path+name. Add the missing inputs or delete the extraneous ones The table type definition table type is missing or has too many data field inputs in import file file path+name. Add the missing inputs or delete the extraneous ones Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Warning Message Table type ‘table type’ definition input type ‘input type name’ unrecognized in import file ‘file path+name’; continue? Warning Table type must be selected Warning Table(s) not exported ‘table name(s)’; output file already exists or file I/O error Warning Table(s) not imported ‘table name(s)’; table already exists Warning Tables of type ‘Structure or Command' may not have more than one column with input type(s): input type[, input type 2[, …]] Warning Too many/few data field inputs Warning Too many/few macro inputs Warning Too many/few table name and type inputs Warning Too many/few table type column inputs 227 Version 1.1.50 Page 227 of 254 Cause The table type definition table type references an input type input type name that isn’t a recognized input type in import file file path+name. Change the input type name to one of those recognized by the application. If the error is ignored then the invalid input type defaults to Text No table type is selected from the list. Select a table type The table(s) table name(s) selected for exportation were skipped due to the output file already existing and the option to overwrite existing files was not selected, or that a file I/O error occurred (for example, insufficient file permission in the target folder) The table(s) table name(s) selected for importation were skipped due to the table already existing and the option to overwrite existing tables was not selected In the table editor for a table type representing a ‘Structure’ or ‘Command’, one or more column definition input types (input type[, input type 2[, …]]) are used multiple times, but must be unique for this table type (e.g., input type ‘Variable name’ in a structure table). This can occur if these input types are assigned before the table has all the columns necessary to define the table type as a structure or command, then the final input type necessary to make the type a structure/command is assigned. Assign different input types to the affected row(s), or delete these row(s), then assign the input type The number of inputs for a data field following the _data_field_ tag in the CSV import file is incorrect (should be seven per data field definition) The number of inputs for a macro following the _macros_ tag in the import file is incorrect (should be two per macro definition) The number of inputs following the _name_type_ tag in the CSV import file is incorrect (should be two) The number of column description inputs following the table type name and description row under the _table_type_ tag in the CSV import file is incorrect (should be six) Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Type Warning Message Too many/few table type name and description inputs Warning Type name is already in use Warning Type name must be entered Warning Unknown input type ‘text’ Warning Unknown internal table ‘table name’ Warning User name must be entered Warning User’s guide ‘file name‘ cannot be opened; Desktop class unsupported Warning User’s guide ‘file name‘ cannot be opened; file I/O error or no application registered to open .pdf files User’s guide ‘file name‘ cannot be opened; file missing Warning Error Web server failed to start Error Web server failed to stop Error XTCE conversion setup failed; cause ‘error cause’ 228 Version 1.1.50 Page 228 of 254 Cause The number of inputs immediately following the _table_type_ tag in the CSV import file is incorrect (should be two) The table type entered in the table type name text field is already in use by another table type. Table type names must be unique. Alter the table type name to one not in use The table type name text field is empty. Enter a valid table type name into the text field The text text pasted into the Table Type Editor’s Input Type column does not match a known input type; the text is ignored Detected during project database verification, the table table name is found to have a name that indicates it is an internal table, but it is not one of the recognized internal tables. If updated the table is deleted The user name field in the database login dialog is empty. Enter a valid user name into the text field. The user name field is only present if a connection to the database server cannot be established; otherwise a list of radio buttons representing the user list is displayed The CCDD user’s guide file cannot be opened. This is due to the Java Desktop class not being available in the operating system The CCDD user’s guide file cannot be opened. This is due to either a file I/O error or having no application registered in the operating system to open .pdf files (the help file is in PDF format) The CCDD user’s guide file cannot be opened. This is due to the file not being included in the CCDD.jar file The attempt to start the embedded Jetty web server failed. Detail on the cause is logged in the event log The attempt to stop the embedded Jetty web server failed. Detail on the cause is logged in the event log Conversion of the project to XTCE XML format failed for the cause specified Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 229 of 254 Appendix E. Program Notes Appendix E.1. Key reference The special keys and their contexts/actions are described below. ←→↑↓ The left, right, up, and down arrow keys move table cell selection from the currently highlighted cell to the cell to the left, right, above, or below respectively. If the bottom (top) of the table is reached then the down (up) arrow traverses to the next component within the GUI entity as with the Tab (Shift-Tab) key. If in edit mode the left (right) key repositions the text cursor one character to the left (right) of the current cursor position until the left (right) end of the text string is reached; the up and down arrow keys have no effect while in edit mode Alt-Enter If editing a table cell with an input type that supports multiple lines, a line break is inserted into the table cell at the current text insertion point, replacing any selected character(s) Ctrl-A Selects all cells in the table that currently has the focus Ctrl-Delete Deletes the currently selected row(s) Ctrl-C Copies the contents of the selected table cell(s) to the clipboard buffer Ctrl-E Expands (if collapsed) or collapses (if expanded) the currently selected table or variable tree node(s). If multiple nodes are selected then the state of the uppermost one determines which action is taken for all of the selected nodes Ctrl-F Opens the search dialog if pressed while the main application window has the focus Ctrl-I Pastes the contents of the clipboard buffer to the table cell(s). New rows are inserted to contain the pasted data Ctrl-M When pressed while in edit mode in a data table cell a pop-up list appears showing the macro or macros that are allowed in the cell (no pop-up appears if none of the defined macros is appropriate, or if no macros are defined). The chosen macro is inserted into the table cell at the current text insertion point, replacing any selected character(s) and bounded by the macro identifier characters Ctrl-Shift-M Replaces every macro reference in the current table or macro editor value column with its corresponding text string, evaluated as a mathematical expression if applicable. Releasing the keys restores the macro names Ctrl-S When pressed while in the edit mode in a data table cell a pop-up list appears displaying the primitive data types and prototype structure names. If the data table represents a structure then only those prototype structures that can be used as a variable data type are displayed. When pressed while in the macro editor table a pop-up list appears displaying all primitive data types and prototype structure names. When pressed while in the data type editor’s Type Name or C Name cells, and the corresponding Base Type is either blank or ‘pointer’, a pop-up list appears displaying all of the prototype structure names. The chosen data type name is inserted into the table cell Ctrl-V Pastes the contents of the clipboard buffer to the table cell(s), overwriting the current contents of the cell(s) 229 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 230 of 254 Delete When not editing a cell deletes the contents of the currently selected table cell(s). If in edit mode the Delete key removes the character immediately to the left of the text cursor End Changes the table cell selection to the leftmost column. If in edit mode the End key repositions the text cursor to the end of the text in the input cell or field Enter Enters edit mode when pressed while an editable table cell is selected. If in edit mode then the cell text is entered into the cell (following any validation) and the next editable cell to the right is placed in edit mode (if the rightmost column is reached then the leftmost cell in the row below is used; after the last row is reached the first row is used). If a cell containing a check box gets the focus then pressing Enter toggles the check box state rather than traversing to the next editable cell Escape Exits edit mode in a table cell or data field, restoring the original contents of the cell or field. Removed a pop-up list (macro) if displayed without making a selection Home Changes the table cell selection to the rightmost column. If in edit mode the Home key repositions the text cursor to the beginning of the text in the input cell or field Insert Inserts a new, empty row into the table below the row with the currently selected cell(s). If in edit mode the Insert key adds a space character at the text cursor location and moves the cursor immediately after the inserted space Page Down Scrolls the table one page down from its current position. Changes the cell selection to the currently selected column, with the row one page down from its previous position Page Up Scrolls the table one page up from its current position. Changes the cell selection to the currently selected column, with the row one page up from its previous position Shift-Delete Replaces the selected cell(s) value with that from the corresponding cell value in the tables’ prototype. See paragraph 4.9.3.2.2.8.2 for more details Space Enters edit mode when pressed while an editable table cell is selected, then inserts a space in the cell (following any existing text) Tab Changes the focus within the current GUI entity to its next component. Pressing Shift-Tab traverses the components in the opposite direction Appendix E.2. Program preferences The program preferences are stored in a location dependent on the operating system and are updated as needed by the CCDD application. For example, the Windows operating system stores the preferences in the system registry under the key name: HKEY_CURRENT_USER\Software\JavaSoft\Prefs\/C/C/D/D In Linux the preferences are stored in the file: //.java/.userPrefs/CCDD/prefs.xml Many of these preference values may be changed via the Preferences dialog; see paragraph 4.9.1.7. The preference keys and associated descriptions are provided below. General Database The name of the project database that was connected to most recently. 230 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 231 of 254 DatabaseBackupPath The full path to the folder to (from) which a project database was most recently backed up (restored). Used to set the initial path in the project database backup and restore dialogs. HideDataType Determines if the data type is excluded or included when displaying the variable path in the Show variables dialog and in structure tables containing a column with the input type ‘Variable path’. The default is false. LogFilePath The full path name for the location where an event log was most recently opened for reading. This is not necessarily the path of the current session log. Used to set the initial path in the read log dialog. PaddingAlignment The current padding variable byte alignment value. The default is 4. The value must be a power of 2. PostgreSQLServerHost The name of the PostgreSQL server host that was connected to most recently. PostgreSQLServerPort The PostgreSQL server port number of the server that was connected to most recently. ScriptPath The full path to the folder to (from) which a script was most recently retrieved from (stored in) the project database. Used to set the initial path in the Script storage and retrieval dialogs. SearchStrings Text string containing the previous search dialog searches, stored as a single string separated by special delimiter characters, and used for auto-completing input in the search dialogs’ search text field. Once the maximum number of retained search strings is reached further searches cause the oldest search string to be removed so that the latest one can be added. ServerStrings Text string containing the previously entered server names, stored as a single string separated by special delimiter characters, and used for auto-completing input in the Database Server dialog’s Host field. Once the maximum number of retained server names is reached further entries cause the oldest name to be removed so that the latest one can be added. TableExportPath The full path to the folder to (from) which a data table was most recently exported (imported). Used to set the initial path in the data table import and export dialogs. TypeNameSeparator The character(s) in a variable path used to separate the data type and variable name in the Show variables dialog and in structure tables containing a column with the input type ‘Variable path’. The default is an underscore (_). User The name of the latest user to attempt a server connection. VariablePathSeparator The character(s) in a variable path used to separate the root structure table from a child variable, and a parent structure variable from a child variable in the Show variables dialog and in structure 231 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 232 of 254 tables containing a column with the input type ‘Variable path’. The default is an underscore (_). WebServerPort The web server port number of the server that was connected to most recently. L&F LookAndFeel The name of the selected “look and feel” that governs the application’s overall appearance. Font DataTableCellFont Data table and table type editor cell font. DialogButtonFont Dialog box button label font. InputFieldTextFont Font used when inputting text into dialog input fields, description fields, and data fields. LabelBoldFont Font generally used for labels in dialogs. LabelPlainFont Font used for labels in dialogs for non-emphasized text. Also used in the telemetry and applications scheduler Options lists and Assigned Applications list. MenuItemFont Menu and sub-menu item font. OtherTableCellFont Table cell font for non-data tables (e.g., event log). TableHeaderFont Table column name font. ToolTipFont Font for use when displaying tool tips. Some look & feels ignore changes to the tool tip font. TreeNodeFont Font used when displaying tree node labels, such as in a table tree, link tree, etc. Color DataTypeTextColor Text color for the data type portion structure and primitive variable name in a table or variable tree. FocusBackgroundColor Background color for a table cell that has the input focus. InputBackgroundColor Color used for the background in dialog input fields, description fields, and data fields. InputDisabledBackgroundColor Color used for the background in dialog input fields, description fields, and data fields that are currently non-editable. InputTextColor Color used for the text in dialog input fields, description fields, and data fields. InvalidTextColor Text color for invalid table rows. Used in the telemetry and application scheduler tables to denote messages and time slots which are valid for the selection option. 232 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 233 of 254 LabelTextColor General color for text labels. PaddingBackgroundColor Background color for a padding variable cell. ProtectedBackgroundColor Background color for a protected (non-editable) table cell. ProtectedTextColor Text color for a protected (non-editable) table cell. RequiredBackgroundColor Background color for table cells and input fields that are required. SelectedBackgroundColor Background color for a table's cells when the cell is selected. SelectedTextColor Text color for a table's cells when the cell is selected. SpecialLabelTextColor Text color for a group of components in a dialog. TableAlternateBackgroundColor Background cell color for even numbered rows when the cell is not selected. TableBackgroundColor Table cell background color for odd numbered rows when the cell is not selected. TableGridColor Color for a table’s grid lines. Log table grid lines are not colored (i.e., the log table uses the table background color between individual cells). TableTextColor Table cell text color when the cell is not selected. TextHighlightColor Color used to highlight macros and matching search text. ToolTipBackgroundColor Background color for tool tip pop-ups. Some look & feels ignore changes to the tool tip background color. ToolTipTextColor Text color for tool tip pop-ups. Some look & feels ignore changes to the tool tip text color. TypeRequiredBackgroundColor Background color for a cell in a table type column definition that is required to define the type. ValidTextColor Text color for valid table rows. Used in the telemetry and application scheduler tables to denote messages and time slots which are valid for the selection option. Size InitalViewableListRows Number of rows of radio buttons or check boxes to display initially when using the CcddDialogHandler class methods for creating a radio button or check box selection panel. InitialViewableDataTableRows Maximum number of rows to display when a data table or table type editor is opened. The table may be resized afterwards to display fewer or more rows. InitialViewableTableRows Maximum number of rows to display when a non-data table is opened. The table may be resized afterwards to display fewer or more rows. 233 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 234 of 254 MaximumDataFieldLength Maximum character length for displaying a data field. Note that this is for display purposes only; the number of characters entered into the field may exceed this value. MaximumDialogLineLength Maximum number of characters to display per line in a dialog message. The dialog text is wrapped for line lengths greater than this value. MaximumDialogMessageLength Maximum number of characters to display in a dialog message. This value only is applied to dialogs displaying a list of tables in the event the number of tables is large. MaximumInitialTableCellWidth Maximum pixel width for a table column when the table is initially displayed. The column size may be changed afterwards. MaximumLogMessageLength Maximum number of remembered search strings. MaximumToolTipLineLength Maximum number of characters to display per line in a tool tip. MinimumDialogWidth Minimum dialog window width, in pixels. Any dialog displayed is this width, or larger if the contents dictate. MinimumWindowHeight Minimum frame window height, in pixels. Examples of frame windows include the data table editors and table type editor. The frame window width may not be resized below this value. MinimumWindowWidth Minimum frame window width, in pixels. Examples of frame windows include the data table editors and table type editor. The frame window height may not be resized below this value. NumberOfRememberedSearches Maximum number of search strings to store. These are used for auto-completing input in the search dialogs’ search text field. Once the maximum number of search strings is reached further searches cause the oldest search string to be removed so that the latest one can be added. NumberOfRememberedServers Maximum number of server names to store. These are used for auto-completing input in the Database Server dialog’s Host field. Once the maximum number of server names is reached further entries cause the oldest name to be removed so that the latest one can be added. Spacing ButtonGap Number of pixels between each button in a dialog box. ButtonPad Minimum number of pixels around the perimeter of a dialog box’s button grouping. CellHorizontalPadding Number of pixels added to either side of the text in a table cell. CellVerticalPadding Number of pixels added to above and below the text in a table cell. DialogBorderPadding Number of pixels between the dialog box contents and the dialog's frame. 234 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 235 of 254 DialogIconPadding Number of pixels between the icon and text message in a message dialog box. HeaderHorizontalPadding Number of pixels added to the width of a table’s column header text. The padding is split equally between each side of the header text. This padding provides room for the column sort arrow. HeaderVerticalPadding Number of pixels added to the height of a table’s column header text. The padding is split equally between the top and bottom of the header text. InputFieldPadding Number of pixels added to the each side of the text in an input field. LabelHorizontalSpacing Defines the horizontal spacing between a text label and an adjacent component, in pixels. LabelVerticalSpacing Defines the vertical spacing between a text label and an adjacent component, in pixels. Appendix E.3. CCDD class files Following is a list and description of the CCDD application’s Java class files. CcddApplicationParameterDialog.java Dialog for assigning the application scheduling parameters. The dialog is built on the CcddDialogHandler class. CcddApplicationParameterHandler.java Class that handles retrieval from and storage to the project database of the application scheduling parameter values. CcddApplicationSchedulerDialog.java Dialog for assignment of applications to time slots. The dialog is built on the CcddDialogHandler class and implements the CcddSchedulerDialogInterface class. CcddApplicationSchedulerInput.java Class for handling application selection in the application scheduler dialog. This class implements the CcddSchedulerInputInterface class. CcddApplicationSchedulerTableHandler.java Class for handling CFS application scheduler table output. CcddAssignmentTreeHandler.java Class that handles the variable assignment tree in the telemetry scheduler dialog. This class is an extension of the CcddInformationTreeHandler class. CcddAssignMessageIDDialog.java Dialog for automatic assignment of message IDs to data tables or telemetry messages. The dialog is built on the CcddDialogHandler class. CcddBackgroundCommand.java Class for generically handling execution of code in a background thread. CcddButtonPanelHandler.java Generic utility class for creating and handling button panels in the dialogs and frames created within the application. CcddClasses.java Collection of common classes used by other CCDD classes. 235 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 236 of 254 CcddCommandLineHandler.java Class for reading and executing the command line options. CcddCommonTreeHandler.java Class containing tree handling methods common to all other trees used in the application. This class is an extension of the JTree class. CcddConstants.java Class containing constant values used by the other classes. CcddCopyTableHandler.java Class for handling copy table operations. CcddCSVHandler.java Class for handling import and export of data tables in CSV format. This class implements the CcddImportExportInterface class. CcddDataTypeEditorDialog.java Class for handling data type editing. The dialog is built on the CcddDialogHandler class. CcddDataTypeHandler.java Class for handling data type operations. CcddDbCommandHandler.java Class for handling database commands. CcddDbControlHandler.java Class containing the methods for connecting to, creating, copying, renaming, and deleting project databases. CcddDbManagerDialog.java Dialog for the user to set the connection parameters to the database, and for creating, copying, renaming, and deleting databases. The dialog is built on the CcddDialogHandler class. CcddDbTableCommandHandler.java Class containing the methods for creating, altering, copying, renaming, and deleting the database tables. CcddDbVerificationHandler.java Class that executes the database information consistency check. CcddDialogHandler.java Generic utility class for creating and handling all of the dialogs created within the application. CcddDuplicateMsgIDDialog.java Dialog displaying a table containing duplicate message IDs and their owners. The dialog is built on the CcddDialogHandler class. CcddEDSHandler.java Class for handling import and export of data tables in EDS XML format. This class implements the CcddImportExportInterface class. CcddEventLogDialog.java Class for displaying and updating the session and stored event logs. The dialog is built on the CcddFrameHandler class. CcddFieldEditorDialog.java Class for handling data field operations. The dialog is built on the CcddDialogHandler class. CcddFieldHandler.java Class for handling the data field editor. 236 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 237 of 254 CcddFieldTableEditorDialog.java Dialog for inspecting and assigning values to data input fields. The dialog is built on the CcddDialogHandler class. CcddFileIOHandler.java Class containing file input and output methods (project database backup and restore, table import and export, script storage and retrieval). CcddFrameHandler.java Generic utility class for creating and handling all of the frame windows created within the application. CcddGroupHandler.java Class for handling table grouping operations. CcddGroupManagerDialog.java Dialog for the user to create, alter, or delete table groups. The dialog is built on the CcddDialogHandler class. CcddGroupTreeHandler.java Class containing the methods for creating and manipulating a table group tree. This class is an extension of the CcddInformationTreeHandler class. CcddImportExportInterface.java Class that defines the interface for data table import and export classes. CcddImportSupportHandler.java Class containing support methods for classes based on the CcddImportExportInterface class. The support methods handle validation and addition of table types and data fields, and for obtaining the user’s response to a non-fatal error condition. Classes utilizing these support methods must extend this class. CcddInformationTreeHandler.java Generic utility class for manipulating information trees. This class is an extension of the CcddCommonTreeHandler class. CcddInputFieldPanelHandler.java Class for creating the table editor panel in which a table, description, and data fields are displayed. CcddJSONHandler.java Class for handling import and export of data tables in JSON format. This class implements the CcddImportExportInterface class. CcddJTableHandler.java Generic utility class for creating and handling all of the tables created within the application, including the data, type, and field tables. This class is an extension of the JTable class. CcddKeyboardHandler.java Class for controlling keyboard input and implementing special key sequence actions. CcddLinkHandler.java Class containing methods to manipulate variable linkages. CcddLinkManagerDialog.java Dialog for the user to create, modify, or delete variable links, and to assign variables to the links. The dialog is built on the CcddDialogHandler class. CcddLinkManagerHandler.java Class for handling interactions with the variable links for a specific data stream. 237 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 238 of 254 CcddLinkTreeHandler.java Class containing the methods for creating and manipulating a variable link tree. This class is an extension of the CcddInformationTreeHandler class. CcddMacroEditorDialog.java Dialog for the user to create, modify, or delete macros and macro values. The dialog is built on the CcddDialogHandler class. CcddMacroHandler.java Class for handling macro operations. CcddMain.java The CCDD main application class handles flow and execution of the menu bar items. CcddMessageIDDialog.java Dialog displaying all message ID names and associated message ID values. The dialog is built on the CcddDialogHandler class. CcddMessageIDHandler.java Class used to determined which message IDs are currently used in tables, data fields, and telemetry messages, and to determine if any references are duplicated. CcddPaddingAlignmentDialog Dialog displaying a slider control that allows selection of the variable padding byte alignment value. The dialog is built on the CcddDialogHandler class. CcddPaddingVariableHandler Class that adds/updates or removes the padding variables. CcddPatchHandler.java Class used to contain code to update the project database when a schema change is made. The code is written to execute only if the database has not already been updated. CcddPreferencesDialog.java Class that creates and manages the Preferences dialog used for altering the application’s look & feel, fonts, colors, size values, and spacing values. The dialog is built on the CcddDialogHandler class. CcddRateParameterDialog.java Dialog for assigning the telemetry sample rate parameters. The dialog is built on the CcddDialogHandler class. CcddRateParameterHandler.java Class that handles retrieval from and storage to the project database of the rate parameter values, and calculation of the sample rates based on the rate parameters. CcddReservedMsgIDEditorDialog.java Dialog for the user to create, modify, or delete reserved message ID and ID ranges and descriptions. The dialog is built on the CcddDialogHandler class. CcddReservedMsgIDHandler.java Class for handling reserved message ID operations. CcddSchedulerDbIOHandler.java Class for handling project database input and output operations for the applications and telemetry schedulers. 238 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 239 of 254 CcddSchedulerDialogInterface.java Class that defines the interface for the application and telemetry scheduler dialog classes. CcddSchedulerEditorHandler.java Class that handles the Scheduler table within the application (for time slots) and telemetry (for messages) scheduler dialogs. CcddSchedulerHandler.java Class that manages the application and telemetry scheduler dialogs, including transfer of information between the trees and lists. CcddSchedulerInputInterface.java Class that defines the interface for application and telemetry scheduler input. CcddScriptDataAccessHandler.java Class containing the methods whereby scripts can access the project database information. CcddScriptDataAccessHandlerStatic.java Class containing the static method references to the methods in the CcddScriptDataAccessHandler class. CcddScriptExecutiveDialog.java Dialog for the user to select script associations to execute. The dialog is built on the CcddDialogHandler class. CcddScriptHandler.java Class that handles obtaining the table data and executing the associated script. CcddScriptManagerDialog.java Dialog for the user to associate scripts and data tables. The dialog is built on the CcddDialogHandler class. CcddScriptStorageDialog.java Dialog for the user to select script files to store to or retrieve from the database. The dialog is built on the CcddDialogHandler class. CcddSearchDialog.java Dialog for the user to perform text string searches of the project database data tables and stored scripts. The dialog is built on the CcddDialogHandler class. CcddSearchHandler.java Class that handles event log, table, and script searches. CcddServerPropertyDialog.java Dialog for changing the user name and password, and the PostgreSQL server host and port. The dialog is built on the CcddDialogHandler class. CcddTableEditorDialog.java Class for handling data table editing; displays instances of CcddTableEditorHandler. The dialog is built on the CcddEditorPanelHandler class. CcddTableEditorHandler.java Class that handles editing of a specific data table. This class is an extension of the CcddInputFieldPanelHandler class. CcddTableManagerDialog.java Dialog for the user create, edit, copy, rename, and delete data tables. The dialog is built on the CcddDialogHandler class. 239 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 240 of 254 CcddTableTreeHandler.java Class containing the methods for creating and manipulating a data table tree. This class is an extension of the CcddCommonTreeHandler class. CcddTableTypeEditorDialog.java Class for handling table type editing; displays instances of CcddTableTypeEditorHandler. The dialog is built on the CcddEditorPanelHandler class. CcddTableTypeEditorHandler.java Class that handles the commands associated with a specific table type editor. This class is an extension of the CcddInputFieldPanelHandler class. CcddTableTypeHandler.java Class for handling interactions with table types. CcddTableTypeManagerDialog.java Dialog for the user to create, edit, copy, rename, and delete table types. The dialog is built on the CcddDialogHandler class. CcddTelemetrySchedulerDialog.java Dialog for assignment of variables to telemetry messages. The dialog is built on the CcddDialogHandler class and implements the CcddSchedulerDialogInterface class. CcddTelemetrySchedulerInput.java Class for handling variable selection in the telemetry scheduler dialog. This class implements the CcddSchedulerInputInterface class. CcddUndoHandler.java Class that manages GUI component undo and redo edit operations. CcddUndoManager.java Class that handles undo and redo of edit operations and the edit stack. CcddUtilities.java Class containing common utility methods used by other CCDD classes. CcddVariableConversionHandler.java Class for converting variable paths to unique path names. This is used by the script data access methods. CcddVariablesDialog.java Dialog for the user to view the project’s variable (including the each variable’s full path), and to display the variables and paths using user-specified separator characters for the data type and variable names, and each variable data type/name pair. The dialog is built on the CcddDialogHandler class. CcddWebDataAccessHandler.java Class that accepts web access commands and provides JSON formatted output of the requested project data. CcddWebServer.java Class that handles set up and management of the embedded Jetty web server. CcddXTCEHandler.java Class for handling import and export of data tables in XTCE XML format. This class implements the CcddImportExportInterface class. 240 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Images.java Version 1.1.50 Page 241 of 254 Dummy class required for the images folder contents to be accessible. Appendix E.4. PostgreSQL tables Data tables created by the user have the columns defined in the table’s type definition. In addition, each data table has two initial columns that do not appear in the data table when it is edited within the application. These two columns represent the primary key (column name _key_) and the row index (column name _index_). The primary key column contains a unique, positive, sequential integer value automatically assigned by the database to each row. This value is used by the application to select specific rows in the table for modification and deletion. The row index column contains a unique, positive, sequential integer value assigned by the CCDD application. The database does not guarantee a particular order to the rows of data stored for a table; i.e., when the table’s data is retrieved the row order may not be the same as the order displayed in the table editor when the data was stored. To overcome this, when a data table is loaded from the database its row index values are used to restore the row order to that specified by the user using the table editor. In addition to the tables created by the user for containing the project’s data, CCDD uses a number of internal tables for keeping track of certain information. These tables are denoted by the prefix ‘__’ (two underscores) and do not show up in the table trees. The tables, with their descriptions and formats, are described below: Table name: __app_scheduler Description: Contains the information produced by the application scheduler Columns: Comment: time_slot Time slot to which the application belongs in the format
. Group data fields (i.e., those assigned to a group of data tables) are denoted by having an owner name in the format Group:. Project data fields (i.e., those assigned at the project level) are denoted by having an owner name Project:. field_name Field name. This is the text displayed beside the input text field field_description Description of the field. The description is used as the tool tip text when the mouse pointer hovers over the data field field_size Width of the input text field in characters. Due to character width variations when using variable-spaced fonts the actual character width can be larger than this value field_type Determines the allowable values that can be input into the data field. The field types are Text, Integer, Positive integer, Nonnegative integer, Float, Hexadecimal, Break, and Separator field_required true if the data field requires a value; false if the field may be left empty. The application does not enforce entering a value into a required field, but simply uses this designation to highlight the fields that have this flag set field_applicability Determines, when creating tables of this type, if the data field is added: ‘All tables’ if the data field should be added when creating any table of this type; ‘Parents only’ if the field is only added to parent tables; ‘Children only’ if the field is only added to child tables (only applicable for structure table types) field_value Data entered by the user into the data field’s text input field. Leading and trailing white space characters are automatically stripped off by the application before storing the value Unused 243 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 244 of 254 Table name: __groups Description: Contains the information for the user-defined data table groups Columns: Comment: group_name Group name member_tables The first row for a group contains the group’s description, prefixed by a number and a comma. The number is non-zero if the group represents a CFS application. The description is used as the tool tip text when the mouse pointer hovers over the group name in a table tree. For subsequent rows with the same group name this column contains the parent and path to the table belonging to the group, separated by commas. This is in the format ,.[,.[,level 3, etc.]] Unused Table name: __links Description: Contains the information for the user-defined variable linkages Columns: rate_name Name of the rate column from which the rate for the variables in this link are taken link_name Link name member_variables The first row for a link contains the link’s rate, in samples per second, and description, separated by a comma. The description is used as the tool tip text when the mouse pointer hovers over the link name in the link tree. For subsequent rows with the same link name this column contains the parent, table path, and variable belonging to the link, separated by commas. This is in the format ,.[,.[,level 3, etc.]],. Comment: Unused Table name: __macros Description: Contains the information for the macro definitions Columns: Comment: macro_name Macro name value Macro value Unused 244 Johnson Space Center Engineering Directorate Core Flight System Command and Data Dictionary Utility User’s Guide Doc. No. JSC-37494 Date: January 2018 Version 1.1.50 Page 245 of 254 Table name: __orders Description: Contains the information for the table column orders, based on user Columns: user_name User name for which this column ordering applies table_path Path to a table in the format: ,.[,.[,level 3, etc.]] root table name is the name of the top-level table. For a nonstructure table or a top-level structure table this is the entire table path. For a structure table that is a child of another table the path contains the top-level structure table (root table name) followed by structure name and variable name pairs leading to the target child table, separated by commas column_order Comment: Contains the column numbers, as defined in the __types table, separated by colons (:), in the order in which the columns are displayed when the user, user_name, is viewing the table specified by table_path Unused Table name: __reserved_msg_ids Description: Contains the reserved message IDs and ID ranges with their descriptions. By default the range 0x0800 - 0x08FF is reserved for cFE telemetry IDs and the range 0x1800 - 0x18FF is reserved for cFE command IDs (these default values may be altered or deleted) Columns: Comment: msg_id Message ID or ID range in hexadecimal format. ID range values are separated by a hyphen (-) description User-defined text describing the reserved ID or ID range Unused Table name: __script_

Navigation menu