FSDK Tutorials

Styles and Conventions

The following style conventions are used in Bright Ascension tutorials.

Terminology - Highlights important terminology.

Highlights steps in the tutorial that requires user action. Steps are automatically numbered for reference.

Provides additional information that aids understanding or provides useful context.

Offers helpful suggestions or advice that can enhance the learning experience.

Draws attention to consequential information that should be carefully considered and taken into account.

Advises readers of conditions that could lead to undesirable outcomes if handled incorrectly.

Informs readers of critical risks that could lead to consequences.

Before You Begin

Installing the FSDK

To run these tutorials, you must first have a copy of the Bright Ascension FSDK available on your machine.

The various installation options are documented in the FSDK User Manual, found relative to the root of the FSDK at Documentation/UserManual.pdf.

You can either:

Use the FSDK within the provided virtual machine. To do this, follow the steps in Section 6.1: Working with the Virtual Machine.

Or:

Install the FSDK natively on your machine. To do this, follow the steps in Chapter 5: FSDK Installation.

You do not need to install or use the Eclipse IDE for these tutorials. They assume you are comfortable using the FSDK tooling from the command line.

The tutorials will introduce and explain each command you need to run, but there is also a brief reference for the codegen tool in the User Manual in Chapter 7: Command-line Tooling.

Specifying the Tutorial Directory

The GEN1_ROOT environment variable is used to store the tutorial directory.

In each terminal you use during these tutorials, the GEN1_ROOT environment variable must be set.

Use the following steps to set the GEN1_ROOT environment variable.

Open a terminal in the FSDK root directory.

From here, navigate to the main tutorials directory:

$ cd Documentation/Tutorials

Set the GEN1_ROOT environment variable by sourcing the set_gen1_root.sh script:

$ . set_gen1_root.sh
Show expected output
GEN1_ROOT set to '<root directory>'

The FSDK tutorials assume commands are run in the correct directory for each tutorial, and that GEN1_ROOT is correctly set.

Use the following command to check the value of GEN1_ROOT type:

$ echo $GEN1_ROOT

An empty output indicates that GEN1_ROOT hasn’t been set.

Contents

The FSDK tutorials are separated into two sections.

It is recommended that you start with the first section, The Basics.

After that, you can move on to Developing Components.

The Basics

The aim of these tutorials is to guide you through the basics of developing flight software with the FSDK.

Hello World 1

This is a basic introduction to FSDK. It shows the different entities involved in writing flight software with FSDK, and how they broadly relate to each other.

Find Hello World 1 here.

Hello World 2

This tutorial introduces some more features of Components in the FSDK. It follows on from Hello World 1 and should give you a sense of how to handle user interaction with Components.

Find Hello World 2 here.

Hello World 3

This tutorial continues to introduce what Components can do in the FSDK, and how to use these features in Deployments. It guides you through building a basic Component for sending unprompted telemetry from flight to ground.

Find Hello World 3 here.

Developing Components

The aim of these tutorials is to show you how to write Component Types that help you solve real flight software problems.

Using a Service

This tutorial introduces Services, and how to make use of them from Components.

Find Using a Service here.

Unit Testing

This tutorial shows how to write Unit Tests for Component Types. You’ll produce a Unit Test for the Component you worked with in the previous tutorial.

Find Unit Testing here.