2022-09-02 10:00:13 +02:00
|
|
|
FSFW From Zero Workshop
|
|
|
|
=======
|
|
|
|
|
|
|
|
This workshop gives an introduction to the Flight Software Framework,
|
|
|
|
starting from a simple hello world program in C++. As such, it it also suitable
|
|
|
|
for C++ beginners.
|
2022-09-28 14:35:09 +02:00
|
|
|
|
|
|
|
Start by cloning this repository and updating the submodules to also clone
|
|
|
|
the [Flight Software Framework](https://egit.irs.uni-stuttgart.de/fsfw):
|
|
|
|
|
|
|
|
```sh
|
|
|
|
git clone https://egit.irs.uni-stuttgart.de/fsfw/fsfw-from-zero.git
|
|
|
|
git submodule init
|
|
|
|
git submodule update
|
|
|
|
```
|
|
|
|
|
2022-09-28 20:03:08 +02:00
|
|
|
# Building the Workshop Application
|
|
|
|
|
|
|
|
This workshop uses CMake like the framework to build the application
|
|
|
|
|
|
|
|
This command sequence will build the software
|
|
|
|
|
|
|
|
```sh
|
|
|
|
mkdir build
|
|
|
|
cd build && cmake ..
|
|
|
|
cmake --build . -j
|
|
|
|
```
|
|
|
|
|
|
|
|
This will generate the `fsfw-from-zero` executable inside the build folder.
|
|
|
|
It is recommended to use an IDE like VS Code or CLion. Those generally have good
|
|
|
|
CMake support.
|
|
|
|
|
2022-09-28 14:35:09 +02:00
|
|
|
# Overview
|
|
|
|
|
2022-09-28 20:03:08 +02:00
|
|
|
This workshop is organised in chapters which have multiple tasks. For each task, solution source
|
|
|
|
files will be provided but you are encouraged to work to the solution on your own.
|
2022-09-28 14:35:09 +02:00
|
|
|
|
2022-09-28 18:35:15 +02:00
|
|
|
It is recommended to have a basic understanding of C++ basics and object-oriented programming
|
|
|
|
in general before doing this workshop. There are various books and online resources available to
|
|
|
|
learn this.
|
2022-09-28 19:55:16 +02:00
|
|
|
|
2022-09-28 20:03:08 +02:00
|
|
|
## Tasks workshop
|
2022-09-28 19:55:16 +02:00
|
|
|
|
2022-09-28 20:03:08 +02:00
|
|
|
This chapter provides an introduction into the thread/tasks abstractions provided by the framework.
|
|
|
|
The chapter descriptions and solutions are located inside `01-tasks`.
|
2022-09-28 19:55:16 +02:00
|
|
|
|
|
|
|
It is recommended to start with this workshop.
|
2022-09-28 20:03:08 +02:00
|
|
|
|
|
|
|
## Object Manager and TMTC handling workshop
|
|
|
|
|
|
|
|
This chapter will introduce the object manager and expand the knowledge of the tasks workshop
|
|
|
|
by showing how to conveniently create global addressable objects. It also provides an
|
|
|
|
introduction into TMTC handling, as virtually all space systems are remote systems where
|
|
|
|
telemetry and telecommands are the pŕimary data interface available to communicate with the satellite.
|
|
|
|
|
|
|
|
## Controller workshop
|
|
|
|
|
|
|
|
This chapter will introduce the `ControllerBase` and `ExtendedControllerBase` class
|
|
|
|
and the various helper interfaces they expose.
|