Ground Station Software - Startup Guide

This guide assumes you have already installed the GSW-2021 source code and built it, if not see this guide.

Selecting Configuration

The ground software requires the user to select a configuration file that specifies telemetry format and networking information. Configuration files are stored in the data directory of the source code. To select a new configuration use the select_default.sh script in the data directory. For example, to select the configuration for the DAQ, use the following commands:

gsw
cd data
./select_default.sh daq

Starting Up

To start the GSW system automatically, use of the startup scripts found in the startup directory. For most configurations (e.g. no simulations and one telemetry source), use the default scripts to startup and shutdown. To start the system using the default scripts, use the following commands:

gsw
cd startup/default
./start_gsw

You should a file created named startup/default/pidlist after running this command.

You should also see an output similar to the following (there will be extra lines at the end depending on your networking configuration):

starting data logging process
creating shared memory
created telemetry shared memory
created network manager shared memory
created countdown clock shared memory
created vlock shared memory
starting decom process
starting virtual telemetry calculation process
starting uplink process
advertising over mDNS as 'gs.local'


Verifying Operation

To verify a successful startup, check the log to see if any errors occurred. Run the following command to view the log:

gsw
cd app/log_view
./log_view

You should see an output similar to the following, with no errors:

[1646165296.579373] Starting DLP
[1646165297.91905] (SHMCTL) creating shared memory
[1646165297.92200] (SHMCTL) created telemetry shared memory
[1646165297.92253] (SHMCTL) created network manager shared memory
[1646165297.92302] (SHMCTL) created countdown clock shared memory
[1646165297.92370] (SHMCTL) created vlock shared memory
[1646165297.95336] (DECOM[master], main) starting decom master process
[1646165297.95833] (DECOM[master], main) starting decom sub-processes
[1646165297.95976] (DECOM[master], main) started decom sub-process [0] with PID: 14529
[1646165297.96175] (DECOM[master], main) started decom sub-process [1] with PID: 14530
[1646165297.96336] (DECOM[master], main) started decom sub-process [2] with PID: 14531
[1646165298.109995] (VCALC, main) starting vcalc process
[1646165298.114208] (VCALC, main) successfully parsed vcalc file
[1646165299.123113] (UPLINK, main) starting uplink process


You can also view incoming telemetry (if there is incoming telemetry) to verify successful startup. Use the following application to view telemetry in the terminal:

gsw
cd app/val_view
./val_view

If you are getting telemetry, you should these values changing. All values will default to display as 0 (or not at all).


If you wish to view raw incoming telemetry, use the following application instead:

gsw
cd app/mem_view
./mem_view

You can now use any GSW applications while the system is running.

Shutting Down

The system must be shut down after use, you must shutdown the system from the same directory you started it in (e.g. if you started it in startup/default, you must shut it down from there too). If you started up with the default scripts, shut the system down with the following commands:

gsw
cd startup/default
./shutdown_gsw

*This command may take a long time to execute depending on how much telemetry was collected during operation.

NOTE: there is still a bug where if a lot of telemetry is collected then the resulting CSV file generated will be too large, this size depends on your filesystem. For most modern filesystems, this size will be around 64 TB, which is huge. The actual raw telemetry is still stored on any system that's at least 32-bit as it's chunked into 2 GB files.


The system is now shutdown, logging data will be saved in the log directory. The latest system logging messages will be saved in log/system.log# and the latest raw telemetry data will be saved in log/telemetry.log#. The raw data will be converted to CSV and saved in log/log.csv. All logs will be copied to a timestamped directory in the log directory as well.