Directory structure

Configuring COSMOS for your hardware unlocks all of its functionality for your system.

COSMOS Configuration is organized into the following directory structure with all files having a well defined location:

.
├── Gemfile
├── Launcher
├── Launcher.bat
├── Rakefile
├── config
|   ├── dart (optional)
|   ├── data
|   ├── system
|   ├── targets
|   |   ├── TARGET
|   |   |   ├── cmd_tlm
|   |   |   ├── lib
|   |   |   ├── procedures
|   |   |   ├── screens
|   |   |   ├── sequences
|   |   |   ├── tables
|   |   |   ├── tools
|   |   |   |   ├── table_manager
|   |   |   |   └── ...
|   |   |   ├── cmd_tlm_server.txt
|   |   |   └── target.txt
|   |   └── ...
|   └── tools
|   |   ├── cmd_tlm_server
|   |   └── ...
├── lib
├── outputs
|   ├── dart (optional)
|   ├── handbooks
|   ├── logs
|   ├── saved_config
|   ├── sequences
|   ├── tables
|   └── tmp
├── procedures
├── tools
|   ├── mac
|   └── ...

An overview of what each of these does:

File / DirectoryDescription

Gemfile

Defines the gems and their versions used by your COSMOS configuration. If you want to use other gems in your cosmos project you should add them here and then run "bundle install" from the command line. See the Bundler documents and our Upgrading section for more information.

Launcher

A small script used to launch the COSMOS Launcher application. ruby Launcher

Launcher.bat

Windows batch file used to launch the COSMOS Launcher application from Windows explorer.

Rakefile

The Rakefile contains user modifiable scripts to perform common tasks using the ruby rake application. By default it comes with a script that is used to calculate CRCs over the project's files. rake crc

config

The config folder contains all of the configuration necessary for a COSMOS project.

config/ dart

The config/dart folder contains the DART Gemfile along with any other configuration files needed by the DART application.

config/ data

The config/data folder contains data shared between applications such as images. It also contains the crc.txt file that holds the expected CRCs for each of the configurations files.

config/ system

The config/system folder contains system.txt one of the first files you may need to edit for you COSMOS configuration. system.txt contains settings common to all of the COSMOS applications. It is also defines the targets that make up your COSMOS configuration. See System Configuration for all the details.

config/ targets

The config/targets folder contains the configuration for each target that is to be commanded or receive telemetry (data) from in a COSMOS configuration. Target folders should be named after the name of the target and be ALL CAPS.

config/ targets/ TARGET

config/targets/TARGET folders contains the configuration for a target that is to be commanded or receive telemetry (data) from in a COSMOS configuration. Target folders should be named after the name of the target and be ALL CAPS.

config/ targets/ TARGET/ cmd_tlm

config/targets/TARGET/cmd_tlm contains command and telemetry definition files for the target. See Command and Telemetry Configuration for more information.

config/ targets/ TARGET/ lib

config/targets/TARGET/lib contains any custom code required by the target. Often this includes a custom Interface class. See Interfaces for more information.

config/ targets/ TARGET/ procedures

config/targets/TARGET/procedures contains target specific procedures which exercise functionality of the target. These procedures should be kept simple and only use the command and telemetry definitions associated with this target. See the Scripting Guide for more information.

config/ targets/ TARGET/ screens

config/targets/TARGET/screens contains telemetry screens for the target. See Screen Configuration for more information.

config/ targets/ TARGET/ sequences

config/targets/TARGET/sequences contains command sequences for the target. These are specific files used by the COSMOS Command Sequence tool.

config/ targets/ TARGET/ tables

config/targets/TARGET/tables contains binary tables for the target. These are specific files used by the COSMOS Table Manager tool.

config/ targets/ tools

config/targets/TARGET/tools contains target specific configuration files for the COSMOS applications. Most tools support configuration but do not require it.

config/ targets/ TARGET/ cmd_tlm_server.txt

config/targets/TARGET/cmd_tlm_server.txt contains a snippet of the configuration for the COSMOS Command and Telemetry Server that defines how to interface with the specific target. See Interface Configuration for more information.

config/ targets/ TARGET/ target.txt

config/targets/TARGET/target.txt contains target specific configuration such as which command parameters should be ignored by Command Sender. See Target Configuration for more information.

config/ tools

config/tools contains configuration files for the COSMOS applications. Most tools support configuration but do not require it. See Tool Configuration for more information.

config/ tools/ cmd_tlm_server

config/tools/cmd_tlm_server contains the configuration file for the COSMOS Command and Telemetry Server (by default cmd_tlm_server.txt). This file defines how to connect to each target in the COSMOS configuration. See System Configuration for more information.

lib

The lib folder contains shared custom code written for the COSMOS configuration. This is also the place to override default COSMOS functionality. To do this you need to mirror the COSMOS directly structure and naming. First create a 'cosmos' directory and then add sub-folders and files which mirror the COSMOS source.

outputs

The outputs folder contains all files generated by COSMOS applications.

outputs/ dart

The outputs/dart folder contains the data and logs directories which DART uses to log the incoming command and telemetry data and log DART application status.

outputs/ handbooks

The outputs/handbooks folder contains command and telemetry handbooks generated by Handbook Creator.

outputs/ logs

The outputs/logs folder contains packet and message logs.

outputs/ saved_config

The outputs/saved_config folder contains configuration saved by COSMOS. Every time COSMOS runs it saves the current configuration into this folder. Saved configurations are used to enable reading back old packet log files that may have been generated with a different packet configuration than the current configuration. If you are running in production and collecting results these configurations should be saved (configuration managed) so you can re-parse the binary log data collected.

outputs/ sequences

The outputs/tables folder contains sequence files generated by Command Sequence.

outputs/ tables

The outputs/tables folder contains table files generated by Table Manager.

outputs/ tmp

The outputs/tmp folder contains temporary files generated by the COSMOS tools. These are typically cache files to improve performance. They may be safely deleted at any time.

procedures

The procedures folder is the default location for storing COSMOS test and operations procedures. See the Scripting Guide for more information.

tools

The tools folder contains the scripts used to launch each of the COSMOS tools.

tools/ mac

The tools/mac folder contains Mac application bundles used to launch the COSMOS tools on Mac computers.