Requirements and Design

COSMOS is a command and control system providing commanding, scripting, and data visualization capabilities for embedded systems and systems of systems. COSMOS is intended for use during all phases of testing (board, box, integrated system) and during operations.

COSMOS is made up of the following 15 applications:

  1. Command and Telemetry Server - Provides realtime commanding, telemetry reception, logging, limits monitoring, and packet routing.
  2. Replay - Simulates Command and Telemetry Server for telemetry packet log file playback.
  3. Command Sender - Provides a graphical interface for manually sending individual commands.
  4. Script Runner - Executes test scripts and provides highlighting of the currently executing line.
  5. Test Runner - Provides a high level framework for system level testing including test report generation.
  6. Packet Viewer - Provides realtime visualization of every telemetry packet that has been defined.
  7. Telemetry Viewer - Provides custom telemetry screen functionality with advanced layout and visualization widgets.
  8. Telemetry Grapher - Provides realtime and offline graphing of telemetry data.
  9. Data Viewer - Provides text based telemetry visualization for items.
  10. Limits Monitor - Monitors telemetry with defined limits and shows items that currently are or have violated limits.
  11. Telemetry Extractor - Extracts telemetry packet log files into CSV data.
  12. Command Extractor - Extracts command packet log files into human readable text.
  13. Table Manager - A binary file editor that can be used to build up configuration tables or other binary data.
  14. Handbook Creator - Creates html and pdf documentation of available commands and telemetry packets.
  15. Launcher - Provides a graphical interface for launching each of the tools that make up the COSMOS system.

More detailed descriptions, requirements, and design for each tool are found later in this document. Additionally, each of the above applications is built using COSMOS libraries that are available for use as a framework to develop custom program/project applications.

Terminology

The COSMOS system uses several terms that are important to understand. The following table defines these terms.

Term Definition
Target A COSMOS target is an embedded system that the COSMOS Command and Telemetry Server connects using and interface in in order to send commands to and/or receive telemetry from.
Command A packet of information telling a target to perform an action of some sort.
Telemetry Packet A packet of information providing status from a target.
Interface A Ruby class that knows how to send commands to and/or receive telemetry from a target. COSMOS comes with interfaces that support TCP/IP, UDP, and serial connections. Custom interfaces are easy to add to the system.
Ruby The powerful dynamic programming language used to write the COSMOS applications and libraries as well as COSMOS scripts and test procedures.
Configuration Files COSMOS uses simple plain text configuration files to define commands and telemetry packets, and to configure each COSMOS application. These files are easily human readable/editable and machine readable/editable.
Packet Log Files Binary files containing either logged commands or telemetry packets.
Message Log Files Text files containing messages generated by a tool.
Tool Another name for a COSMOS application.

Overall Architecture and Context Diagram

The following diagram shows how the 15 applications that make up the COSMOS system relate to each other and to the targets that COSMOS is controlling.

COSMOS Architecture

Key aspects of this architecture:

  • The COSMOS tools are grouped into four broad categories:
    • Realtime Commanding and Scripting
    • Realtime Telemetry Visualization
    • Offline Analysis
    • Utilities
  • COSMOS can connect to many different kinds of targets. The examples shown in this diagram include Flight software (FSW), Ground Support Equipment (GSE), Labview, and a COTS target such as an Agilent power supply. Any embedded system that provides a communication interface can be connected to COSMOS.
  • COSMOS ships with interfaces for connecting over TCP/IP, UDP, and serial connections. This covers most systems, but custom interfaces can also be written to connect to anything that a computer can talk to.
  • All realtime communication with targets flows through the Command and Telemetry Server. This ensures all commands and telemetry are logged.
  • Every tool is configured with plain text configuration files.
  • Program specific tools can be written using the COSMOS libraries that can interact with the realtime command and telemetry streams through the COSMOS Command and Telemetry Server and can process packet log files.

Overall Requirements

Reqt. ID Description Test Description Test Trace
ALL-1 All COSMOS tools shall launch and run on Windows 7. Start Launcher and launch every COSMOS tool on Windows 7. All autohotkey scripts.
ALL-2 All COSMOS tools shall launch and run on CentOS Linux 6.5. Start launcher and launch every COSMOS tool on CentOS Linux 6.5. Manually verified on Linux 5-30-14.
ALL-3 All COSMOS tools shall launch and run on Mac OSX Mavericks. Start launcher and launch every COSMOS tool on Mac OSX Mavericks. Manually verified on Mac OSX 5-30-14.

Command and Telemetry Server

The Command and Telemetry server connects COSMOS to targets for real-time commanding and telemetry processing. All real-time COSMOS tools communicate with targets through the Command and Telemetry Server ensuring that all communications are logged.

Reqt. ID Description Test Description Test Trace
CTS-1 The Command and Telemetry Server shall display a list of all interfaces. View the Interfaces tab. cmd_tlm_server.ahk
CTS-2 The Command and Telemetry Server shall allow manual connection and disconnection of interfaces. Press a GUI button to disconnect and connect an interface. cmd_tlm_server.ahk
CTS-3 The Command and Telemetry Server shall allow scripted connection and disconnection of interfaces. Disconnect and connect an interface from a script. script_spec.rb
CTS-4 The Command and Telemetry Server shall display a list of all targets. View the Targets tab. cmd_tlm_server.ahk
CTS-5 The Command and Telemetry Server shall display a list of known commands. View the Cmd Packets tab. cmd_tlm_server.ahk
CTS-6 The Command and Telemetry Server shall display raw command data for the most recent command received. View the Cmd Packets tab and click the View Raw button for a command. cmd_tlm_server.ahk
CTS-7 The Command and Telemetry Server shall display a list of known telemetry packets. View the Tlm Packets tab. cmd_tlm_server.ahk
CTS-8 The Command and Telemetry Server shall display raw telemetry packet data for the most recent telemetry packet received. View the Tlm Packets tab and click the View Raw button for a telemetry packet. cmd_tlm_server.ahk
CTS-9 The Command and Telemetry Server shall display a list of all routers. View the Routers tab. cmd_tlm_server.ahk
CTS-10 The Command and Telemetry Server shall allow manual connection and disconnection of routers. Press a GUI button to disconnect and connect a router. cmd_tlm_server.ahk
CTS-11 The Command and Telemetry Server shall allow scripted connection and disconnection of routers. Disconnect and connect a router from a script. script_spec.rb
CTS-12 The Command and Telemetry Server shall display a list of all packet writers. View the Logging tab. cmd_tlm_server.ahk
CTS-13 The Command and Telemetry Server shall allow manual starting and stopping of packet logging. Press the GUI buttons to manually start and stop logging on all, and individual command/telemetry logging. cmd_tlm_server.ahk
CTS-14 The Command and Telemetry Server shall allow scripted starting and stopping of packet logging. Start and stop logging on all, and individual command/telemetry logging from a script. script_spec.rb
CTS-15 The Command and Telemetry Server shall allow manually setting the current limits set. Select a different limits set from the combobox. cmd_tlm_server.ahk
CTS-16 The Command and Telemetry Server shall allow scripted setting of the current limits set. Select a different limits set from a script. script_spec.rb
CTS-17 The Command and Telemetry Server shall support clearing counters. Select Edit->Clear Counters and verify counters reset. cmd_tlm_server.ahk
CTS-18 The Command and Telemetry Server shall support opening telemetry packets in Packet Viewer. On the Tlm Packets tab click View in Packet Viewer for a telemetry packet. cmd_tlm_server.ahk
CTS-19 The Command and Telemetry Server shall support autonomously attempting to connect to targets. Verify targets are connected to upon starting the CTS. cmd_tlm_server.ahk
CTS-20 The Command and Telemetry Server shall time stamp telemetry packets upon receipt. Verify logged packets are timestamped. packet_log_reader_spec.rb
CTS-21 The Command and Telemetry Server shall time stamp telemetry packets to a resolution of 1 millisecond or better. Note: This requirement only refers to resolution. COSMOS does not run on real-time operating systems and accuracy cannot be guaranteed. View time stamps in log. cmd_tlm_server.ahk
CTS-22 The Command and Telemetry Server shall time stamp received telemetry with a UTC timestamp. Verify logged time stamps are as expected. packet_log_reader_spec.rb
CTS-23 The Command and Telemetry Server shall display time stamps in local time. View time stamps in log. cmd_tlm_server.ahk
CTS-24 The Command and Telemetry Server shall support a COSMOS target that outputs the COSMOS version. View COSMOS Version packet in Targets tab. cmd_tlm_server.ahk
CTS-25 The Command and Telemetry Server shall maintain a timestamped log of commands received, limits violations, and errors encountered. View COSMOS message log. cmd_tlm_server.ahk

Replay

Replay allows the playing back of telemetry log files as if the data was being received in realtime. This allows other COSMOS tools like Packet Viewer and Telemetry Viewer to be used to view logged data.

Reqt. ID Description Test Description Test Trace
RPY-1 Replay shall playback telemetry packet logs Start playback of a telemetry log file. replay.ahk
RPY-2 Replay shall support sequential and reverse playback. Playback in both forwards and reverse. replay.ahk
RPY-3 Replay shall listen on the same port as the Command and Telemetry Server for API requests. Verify both the Command and Telemetry Server and Replay cannot be running at the same time (with default settings). replay.ahk
RPY-4 Replay shall support a variable playback delay. Playback with differing delay settings. replay.ahk
RPY-5 Replay shall support single-stepping packets. Single step packets in forward and reverse. replay.ahk
RPY-6 Replay shall show the first, current, and final timestamps within the log file. View displayed timestamps. replay.ahk
RPY-7 Replay shall support quickly jumping to any point within the log file. Drag the slider to different points in the file. replay.ahk

Command Sender

Command Sender provides an easy method to send single commands to targets. The graphical user interface provides simple dropdowns to quickly select the desired command to send organized by target name and command name. After the user has selected the command, they then fill in the desired command parameters and click send to send the command to the target.

Reqt. ID Description Test Description Test Trace
CMD-1 Command Sender shall allow selection of a command by target name and packet name. Select a specific command by target name and packet name in the drop down menus. cmd_sender.ahk
CMD-2 Command Sender shall allow sending the selected command. Send the selected command by pressing the Send button. cmd_sender.ahk
CMD-3 Command Sender shall display allow non-ignored parameters for the selected command. Select a specific command and verify the expected parameters are shown. cmd_sender.ahk
CMD-4 Command Sender shall provide a mechanism to select state values for command parameters with states. Select a specific state value for a specific command with states. cmd_sender.ahk
CMD-5 Command Sender shall allow sending a manually entered value for a command parameter with states. Manually enter a value for a specific command with states. cmd_sender.ahk
CMD-6 Command Sender shall refuse to send commands if required parameters are not provided. Attempt to send a command with a required parameter not filled out. cmd_sender.ahk
CMD-7 Command Sender shall support sending commands while ignoring range checking. Enter Ignore Range Checking mode and then send a command with an out of range parameter. cmd_sender.ahk
CMD-8 Command Sender shall optionally display state values in hex. Enter “Display State Values in Hex” mode and verify state values are displayed as hex. cmd_sender.ahk
CMD-9 Command Sender shall optionally display ignored command parameters. Enter “Show Ignored Parameters” mode and verify ignored parameters are displayed. cmd_sender.ahk
CMD-10 Command Sender shall support sending raw data to a specified interface. Send a command from a “raw” file using the File->Send Raw menu option. cmd_sender.ahk
CMD-11 Command Sender shall respect hazardous commands and notify the user before proceeding. Send a hazardous command and verify a dialog box appears before the command is sent. Verify both accepting the dialog and declining to send. cmd_sender.ahk
CMD-12 Command Sender shall keep a command history of each command sent. Send a command and verify that it shows up in the command history box. cmd_sender.ahk
CMD-13 Command Sender shall allow resending of any command in the command history. Resend one of the commands in the command history box. cmd_sender.ahk

Script Runner

Script Runner provides a visual interface for editing and executing test scripts/procedures. A full featured text editor provided syntax highlighting and code completion while developing test procedures. During script execution, the currently executing line is highlighted and any logged messages are highlighted to the user. If any failure occurs, the script is paused and the user altered. The user can then decide whether to stop the script, or ignore the failure and continue. The user can also retry the failed lines, or other nearby lines before proceeding.

Reqt. ID Description Test Description Test Trace
SR-1 Script Runner shall provide a text editor for developing test scripts. Open Script Runner and create a simple test script. Perform all standard file operations including New, Open, Reload, Close, Save, and Save As. Perform all standard editing operations such as Cut, Copy, Paste, Undo, Redo, Select All, and Comment/Uncomment lines. script_runner.ahk
SR-2 Script Runner shall provide search and replace functionality. Perform all standard search and replace functionality, including search, replace, find next, and find previous. script_runner.ahk
SR-3 Script Runner shall provide code completion for cmd(), tlm(), and wait_check() COSMOS API methods. Note: Other methods may also be supported. Create a script and exercise code completion on the mentioned keywords. script_runner.ahk
SR-4 Script Runner shall execute Ruby-based COSMOS scripts. Press start and execute a script. script_runner.ahk
SR-5 Script Runner shall highlight the currently executing line of the script. Verify that lines are highlighted as a test script executes. script_runner.ahk
SR-6 Script Runner shall allow pausing an executing script. Press pause button and verify script is paused. Press start to resume. script_runner.ahk
SR-7 Script Runner shall allow stopping an executing script. Press stop and verify script stops. script_runner.ahk
SR-8 Script Runner shall pause an executing script upon the occurance of an error. Create a script with a statement that is guaranteed to fail and verify that the script is paused. script_runner.ahk
SR-9 Script Runner shall log commands sent. Execute a script that sends a command and verify it is logged. script_runner.ahk
SR-10 Script Runner shall log text written to STDOUT. Note: Typically through the puts method. Execute a script that uses puts to write a message and verify it is logged. script_runner.ahk
SR-11 Script Runner shall log wait times. Execute a script that includes a wait method and verify wait time is logged. script_runner.ahk
SR-12 Script Runner shall log errors that occur while the script is executing. Create a script with a check statement that is guaranteed to fail and verify it is logged. script_runner.ahk
SR-13 Script Runner shall log check statement success and failure. Create a script with a check statement that is guaranteed to fail and one that is guaranteed to succeeed. Verify both the success and failure are logged. script_runner.ahk
SR-14 Script Runner shall support executing selected lines. Select a set of lines and execute them using Script->Execute Selected Lines. script_runner.ahk
SR-15 Script Runner shall support executing selected lines while paused. Select a set of lines and execute them from the right-click context menu. script_runner.ahk
SR-16 Script Runner shall support starting a script from any line. Place the mouse cursor at the desired first line and then select Script->Execute From Cursor. script_runner.ahk
SR-17 Script Runner shall support a mnemonic checking function. Select Script->Mnemonic Check. script_runner.ahk
SR-18 Script Runner shall support a syntax checking function. Select Script->Ruby Syntax Check. script_runner.ahk
SR-19 Script Runner shall support viewing the script instrumentation. Select Script->View Instrumented Script. script_runner.ahk
SR-20 Script Runner shall support an disconnected mode to allow for executing scripts without a connection to the Command and Telemetry Server. Make sure the Command and Telemetry Server is not running. Select Script->Toggle Disconnect. Execute a script with commands and check statements and verify that it runs to completion. script_runner.ahk
SR-21 Script Runner shall support a Debug terminal to aid in debugging scripts. Select Script->Toggle Debug. script_runner.ahk
SR-22 Script Runner shall support a step mode where the script will stop and wait for use interaction after each line. From the Debug terminal, press the Toggle Run/Step button, then execute a script. Press Go to progress through the script. script_runner.ahk
SR-23 Script Runner shall support inserting a return statement into a running script. In a script that calls a subfunction with an infinite loop, then press the insert return button in the debug terminal and ensure the subfunction returns. script_runner.ahk
SR-24 Script Runner shall support breakpoint functionality. Create a breakpoint then execute the script and verify it stops at the specified line. script_runner.ahk
SR-25 Script Runner shall support configuring a delay between executing each line. From File->Options set the line delay and then execute a script to observe the updated line delay. script_runner.ahk
SR-26 Script Runner shall support monitoring and logging limits while a script is executing. From File->Options select monitor limits, and then execute a script. script_runner.ahk
SR-27 Script Runner shall support pausing an executing script is a red limit occurs. From File->Options select monitor limits and Pause on red limit, and then execute a script. script_runner.ahk

Test Runner

Test Runner provides a structured methodology for designing system level testing that mirrors the very successful pattern used in software unit tests. System level tests are built up of test cases that are organized into test groups. For example, you might have one test group that verified all of the requirements associated with a particular mechanism. Ideally you would break this down into individual test cases for different scenarios. One perhaps for opening a shutter, another for closing it, etc. Test cases are ideally small and independent tasks. A number of these test groups are then combined into an overall test suite which would be run to execute a major test such as EMI, or software FQT.

Reqt. ID Description Test Description Test Trace
TR-1 Test Runner shall support executing individual test suites. Execute an individual test suite. test_runner.ahk
TR-2 Test Runner shall support executing individual test groups. Execute an individual test group. test_runner.ahk
TR-3 Test Runner shall support executing individual test cases. Execute an individual test case. test_runner.ahk
TR-4 Test Runner shall support executing test group setup and teardown methods individually. Execute a test group setup. Execute a test group teardown. test_runner.ahk
TR-5 Test Runner shall support executing test suite setup and teardown methods individually. Execute a test suite setup. Execute a test suite teardown. test_runner.ahk
TR-6 Test Runner shall create a test report after executing any test. Verify a test report is generated after executing a test suite. test_runner.ahk
TR-7 Test Runner shall support creating a custom test suite. Select File->Test Selection and create a custom test suite. Then execute the custom test suite and make sure only the selected test cases are executed. test_runner.ahk
TR-8 Test Runner shall support redisplaying the most recent test report. Select File->Show Results to see the most recent test report. test_runner.ahk
TR-9 Test Runner shall support a debug terminal. Select Script->Toggle Debug to display the debug terminal. test_runner.ahk
TR-10 Test Runner shall support pausing when an error occurs. Execute a test script with the pause on error box checked and without. test_runner.ahk
TR-11 Test Runner shall support allowing the user to proceed on an error. Execute a test script with the Allow go/retry on error box checked and without. test_runner.ahk
TR-12 Test Runner shall support aborting execution on an error. Execute a test script with the abort on error box checked and without. test_runner.ahk
TR-13 Test Runner shall support looping a test. Execute a test script with the loop testing box checked and without. test_runner.ahk
TR-14 Test Runner shall support breaking the looping of a test on error. Execute a test script with the break loop on error box checked and without. test_runner.ahk
TR-15 Test Runner shall support a user readable flag indicating that loop testing is occurring. Execute a test script that checks the $loop_testing variable while looping and again while not looping. test_runner.ahk
TR-16 Test Runner shall support a user readable flag indicating manual operations are desired. Execute a test script with the manual box checked and without. test_runner.ahk

Packet Viewer

Packet Viewer provides a simple tool to view the realtime contents of any telemetry packet defined in the system in a tabular, key-value format.

Reqt. ID Description Test Description Test Trace
PV-1 Packet Viewer shall allow selection of a telemetry packet by target name and packet name. Select a specific telemetry packet by target name and packet name in the drop down menus. packet_viewer.ahk
PV-2 Packet Viewer shall display the contents of the selected telemetry packet. Ensure all items of the selected telemetry packet are displayed and updating. packet_viewer.ahk
PV-3 Packet Viewer shall display the description for each telemetry item. Hover over telemetry items to view their descriptions in the status bar. packet_viewer.ahk
PV-4 Packet Viewer shall provide a mechanism to get detailed information on a telemetry item. Right click on a telemetry item and select “Details” from the context menu. packet_viewer.ahk
PV-5 Packet Viewer shall provide a mechanism to edit any editable fields on a telemetry item. Right click on a telemetry item and select “Edit” from the context menu. packet_viewer.ahk
PV-6 Packet Viewer shall provide a mechanism to view a graph of any telemetry item. Right click on a telemetry item and select “Graph” from the context menu. packet_viewer.ahk
PV-7 Packet Viewer shall color telemetry values based upon limits state. View a packet with items containing limits and verify they are colored. packet_viewer.ahk
PV-8 Packet Viewer shall support a configurable polling rate. Select File->Options and change the polling rate. packet_viewer.ahk
PV-9 Packet Viewer shall support a color-blind mode to allow distinguishing limits states for those who are color blind. Select View->Color Blind Mode and verify that items with limits are also displayed with a textual indication of limits state color. packet_viewer.ahk
PV-10 Packet Viewer shall support displaying telemetry in each of the four COSMOS value types (raw, converted, formatted, and formatted with units) In the View menu, select each of the four value types and verify values are displayed accordingly. packet_viewer.ahk
PV-11 Packet Viewer shall support quickly bringing up the packet for any telemetry point. Use the search box. packet_viewer.ahk

Telemetry Viewer

Telemetry Viewer provides a way to organize telemetry points into custom “screens” that allow for the creation of unique and organized views of telemetry data. Screens are made up of widgets or small GUI components that display telemetry in unique ways.

Reqt. ID Description Test Description Test Trace
TV-1 Telemetry Viewer shall display user-defined telemetry screens. Open a telemetry screen. tlm_viewer.ahk
TV-2 Telemetry Viewer shall display realtime data. Verify telemetry screens show realtime data. tlm_viewer.ahk
TV-3 Telemetry Viewer shall support saving open telemetry screens and their positions. Open three telemetry screens and then select File->Save Configuration. tlm_viewer.ahk
TV-4 Telemetry Viewer shall support generating telemetry screens. Select File->Generate Screens then select a specific target to generate screens for. Restart Telemetry Viewer and open the generated screens. tlm_viewer.ahk
TV-5 Telemetry Viewer shall support auditing screens for missing telemetry points. Select File->Audit Screens vs. Tlm tlm_viewer.ahk

Telemetry Grapher

Telemetry Grapher performs graphing of telemetry points in both realtime and log file playback.

Reqt. ID Description Test Description Test Trace
TG-1 Telemetry Grapher shall provide line graphs of telemetry points. Add several housekeeping data objects to a plot. tlm_grapher.ahk
TG-2 Telemetry Grapher shall provide x-y graphs of telemetry points. Create a normal x-y plot and a single-x-y plot. tlm_grapher.ahk
TG-3 Telemetry Grapher shall support realtime graphing of telemetry. Press Start to start realtime graphing. tlm_grapher.ahk
TG-4 Telemetry Grapher shall support graphing data from telemetry log files. Select File->Open to graph data from a log file. tlm_grapher.ahk
TG-5 Telemetry Grapher shall support multiple tabs. Add multiple tabs. tlm_grapher.ahk
TG-6 Telemetry Grapher shall support multiple plots per tab. Add multiple plots. tlm_grapher.ahk
TG-7 Telemetry Grapher shall support multiple telemetry points per plot. Add multiple data objects to one plot. tlm_grapher.ahk
TG-8 Telemetry Grapher shall support a variable refresh rate. Edit the refresh rate. tlm_grapher.ahk
TG-9 Telemetry Grapher shall support saving a variable number of data points. Edit Points Saved. tlm_grapher.ahk
TG-10 Telemetry Grapher shall support graphing a variable duration of time. Edit Seconds Plotted. tlm_grapher.ahk
TG-11 Telemetry Grapher shall support graphing a variable number of data points. Edit Points Plotted. tlm_grapher.ahk
TG-12 Telemetry Grapher shall support taking screenshots of graphs. Use the menus to take screenshots. tlm_grapher.ahk
TG-13 Telemetry Grapher shall support exporting graph data. Use the menus to export data. tlm_grapher.ahk
TG-14 Telemetry Grapher shall support running analysis on data points. Create data objects with analysis processing. tlm_grapher.ahk
TG-15 Telemetry Grapher shall provide a method of quickly adding telemetry points to the graph. Using the Add Housekeeping Data Object search box. tlm_grapher.ahk
TG-16 Telemetry Grapher shall support graphing with two independent Y-axis. Create a data_object that plots on the right Y-axis. tlm_grapher.ahk
TG-17 Telemetry Grapher shall support saving its configuration. Save the current configuration. tlm_grapher.ahk
TG-18 Telemetry Grapher shall support loading its configuration. Load the previously saved configuration. tlm_grapher.ahk

Data Viewer

Data Viewer provides for textual display of telemetry packets where other display methods are not a good fit. It is especially useful for memory dumps and for log message type data display.

Reqt. ID Description Test Description Test Trace
DV-1 Data Viewer shall support realtime processing of telemetry packets. Press Start to start realtime processing. data_viewer.ahk
DV-2 Data Viewer shall support log file playback of telemetry packets. Select File->Open Log File to process a telemetry log file. data_viewer.ahk
DV-3 Data Viewer shall support textual display of telemetry packets. View the display of data. data_viewer.ahk
DV-4 Data Viewer shall support multiple tabs for data display. Switch between several tabs of data. data_viewer.ahk
DV-5 Data Viewer shall support deleting tabs. Delete a tab. data_viewer.ahk
DV-6 Data Viewer shall support enabled and disabling packets within tabs. Disable and Enable a packet. data_viewer.ahk

Limits Monitor

Limits Monitor displays all telemetry points that are currently out of limits and also shows any telemetry points that have gone out of limits since Limits Monitor was started.

Reqt. ID Description Test Description Test Trace
LM-1 Limits Monitor shall display all telemetry points currently out of limits. View displayed telemetry points. limits_monior.ahk
LM-2 Limits Monitor shall support ignoring telemetry points. Click ignore on a telemetry point. limits_monior.ahk
LM-3 Limits Monitor shall keep a displayed log of limits violations. View the log tab. limits_monior.ahk
LM-4 Limits Monitor shall continue displaying a telemetry point that temporarily went out of limits. Watch until a telemetry points returns to green. limits_monior.ahk
LM-5 Limits Monitor shall support saving its configuration. Save the configuration. limits_monior.ahk
LM-6 Limits Monitor shall support loading its configuration. Load the configuration. limits_monior.ahk

Telemetry Extractor

Telemetry Extractor processes telemetry log files and extracts data into a CSV format for analysis in Excel or other tools.

Reqt. ID Description Test Description Test Trace
TE-1 Telemetry Extractor shall process one or more telemetry log files at a time. Open and process a telemetry log file. tlm_extractor.ahk
TE-2 Telemetry Extractor shall support adding individual telemetry points. Add an individual telemetry point. tlm_extractor.ahk
TE-3 Telemetry Extractor shall support adding entire telemetry packets. Add an entire packet. tlm_extractor.ahk
TE-4 Telemetry Extractor shall support adding entire telemetry targets. Add all packets for a target. tlm_extractor.ahk
TE-5 Telemetry Extractor shall support selecting the value type to extract for each telemetry point (RAW, CONVERTED, FORMATTED, WITH_UNITS) Double click an item and change the value type. tlm_extractor.ahk
TE-6 Telemetry Extractor shall support adding text columns. Add a text column. tlm_extractor.ahk
TE-7 Telemetry Extractor shall support opening the result into a text editor. Press the Open in Text Editor button. tlm_extractor.ahk
TE-8 Telemetry Extractor shall support opening the result in Excel on Windows. Press the Open in Excel button. tlm_extractor.ahk
TE-9 Telemetry Extractor shall support saving configurations. Select File->Save Config tlm_extractor.ahk
TE-10 Telemetry Extractor shall support loading configurations. Select File->Load Config tlm_extractor.ahk
TE-11 Telemetry Extractor shall support deleting items Select an Item and press delete tlm_extractor.ahk

Command Extractor

Command Extractor converts command packet logs into human readable text files.

Reqt. ID Description Test Description Test Trace
CE-1 Command Extractor shall process one or more command log files at a time. Open a command log file. cmd_extractor.ahk
CE-2 Command Extractor shall support opening the result into a text editor. Press the Open in Text Editor button. cmd_extractor.ahk
CE-3 Command Extractor shall support a mode that displays raw command data. Select Mode->Include Raw Data and process a log file. cmd_extractor.ahk

Table Manager

Table Manager provides a graphical user interface for editing binary files containing one or more tables of data.

Reqt. ID Description Test Description Test Trace
TBL-1 Table Manager shall create new table files given a table definition. Create a new table file using File->New. table_manager.ahk
TBL-2 Table Manager shall open existing table files. Open an existing table using File->Open. table_manager.ahk
TBL-3 Table Manager shall support checking files for invalid entries. Select File->Check. table_manager.ahk
TBL-4 Table Manager shall support displaying files as hex data. Select File->Hex Dump table_manager.ahk
TBL-5 Table Manager shall support creating human readable text files of table data. Select File->Create Report. table_manager.ahk
TBL-6 Table Manager shall support returning tables to default values. Select Table->Default table_manager.ahk
TBL-7 Table Manager shall support editing table files. Open a table file. Save it. Reopen and verify edits. table_manager.ahk
TBL-8 Table Manager shall support checking individual tables for invalid entries. Select Table->Check table_manager.ahk
TBL-9 Table Manager shall support display individual tables as hex data. Select Table->Hex Dump table_manager.ahk
TBL-10 Table Manager shall support dumping an individual table to its own binary file. Select Table->Save Table Binary. table_manager.ahk
TBL-11 Table Manager shall support committing modifications to a single table to another table file. Select Table->Commit to Existing File table_manager.ahk
TBL-12 Table Manager shall support updating default table values from within the tool. Select Table->Update Definition table_manager.ahk
TBL-13 Table Manager shall support one-dimensional tables. Edit a one-dimensional table. table_manager.ahk
TBL-14 Table Manager shall support two-dimensional tables. Edit a two-dimensional table. table_manager.ahk

Handbook Creator

Handbook Creator provides a simple method to convert COSMOS command and telemetry definitions into beautiful Command and Telemetry Handbooks.

Reqt. ID Description Test Description Test Trace
HC-1 Handbook Creator shall output handbooks in HTML format. Press the Create HTML Handbooks button. handbook_creator.ahk
HC-2 Handbook Creator shall output handbooks in PDF format. Press the Create PDF Handbooks button. handbook_creator.ahk
HC-3 Handbook Creator shall support outputing both HTML and PDF handbooks with one click. Press the Create HTML and PDF Handbooks button. handbook_creator.ahk
HC-4 Handbook Creator shall support opening the HTML handbooks in a web browser. Press the Open in Web Browser button. handbook_creator.ahk

Launcher

Launcher provides a utility to organize all applicable applications for a project and to launch those applications.

Reqt. ID Description Test Description Test Trace
L-1 Launcher shall display a label and icon for each application to launch. View Launcher. launcher.ahk
L-2 Launcher shall start the requested application when clicking on its icon. Launch a program from Launcher. launcher.ahk
L-3 Launcher shall support launching multiple applications with one click. Press the COSMOS button. launcher.ahk
L-4 Launcher shall CRC check the COSMOS core and project files on startup. View the CRC results on startup. launcher.ahk
L-5 Launcher shall display a legal dialog on startup. View the Legal dialog on startup. launcher.ahk