2024-04-04 15:18:53 +02:00
|
|
|
<p align="center"> <img src="misc/satrs-logo-v2.png" width="40%"> </p>
|
2023-09-06 21:56:12 +02:00
|
|
|
|
2024-02-20 14:55:52 +01:00
|
|
|
[![sat-rs website](https://img.shields.io/badge/sat--rs-website-darkgreen?style=flat)](https://absatsw.irs.uni-stuttgart.de/projects/sat-rs/)
|
|
|
|
[![sat-rs book](https://img.shields.io/badge/sat--rs-book-darkgreen?style=flat)](https://absatsw.irs.uni-stuttgart.de/projects/sat-rs/book/)
|
2024-02-20 14:33:21 +01:00
|
|
|
[![Crates.io](https://img.shields.io/crates/v/satrs)](https://crates.io/crates/satrs)
|
|
|
|
[![docs.rs](https://img.shields.io/docsrs/satrs)](https://docs.rs/satrs)
|
|
|
|
|
2023-07-11 23:02:14 +02:00
|
|
|
sat-rs
|
2022-06-09 12:52:01 +02:00
|
|
|
=========
|
|
|
|
|
2024-03-27 14:14:45 +01:00
|
|
|
This is the repository of the sat-rs library. Its primary goal is to provide re-usable components
|
2023-07-11 23:02:14 +02:00
|
|
|
to write on-board software for remote systems like rovers or satellites. It is specifically written
|
2023-09-26 18:21:10 +02:00
|
|
|
for the special requirements for these systems. You can find an overview of the project and the
|
2024-02-07 18:17:14 +01:00
|
|
|
link to the [more high-level sat-rs book](https://absatsw.irs.uni-stuttgart.de/projects/sat-rs/)
|
2024-02-12 17:34:16 +01:00
|
|
|
at the [IRS software projects website](https://absatsw.irs.uni-stuttgart.de/projects/sat-rs/).
|
2022-11-20 19:04:08 +01:00
|
|
|
|
2024-03-27 14:14:45 +01:00
|
|
|
This is early-stage software. Important features are missing. New releases
|
|
|
|
with breaking changes are released regularly, with all changes documented inside respective
|
|
|
|
changelog files. You should only use this library if your are willing to work in this
|
|
|
|
environment.
|
|
|
|
|
2023-07-14 12:57:21 +02:00
|
|
|
A lot of the architecture and general design considerations are based on the
|
|
|
|
[FSFW](https://egit.irs.uni-stuttgart.de/fsfw/fsfw) C++ framework which has flight heritage
|
2023-07-14 12:58:14 +02:00
|
|
|
through the 2 missions [FLP](https://www.irs.uni-stuttgart.de/en/research/satellitetechnology-and-instruments/smallsatelliteprogram/flying-laptop/)
|
|
|
|
and [EIVE](https://www.irs.uni-stuttgart.de/en/research/satellitetechnology-and-instruments/smallsatelliteprogram/EIVE/).
|
2023-07-14 12:57:21 +02:00
|
|
|
|
2023-01-25 21:06:29 +01:00
|
|
|
# Overview
|
2023-01-11 10:41:52 +01:00
|
|
|
|
2023-01-25 21:06:29 +01:00
|
|
|
This project currently contains following crates:
|
|
|
|
|
2023-09-26 18:21:10 +02:00
|
|
|
* [`satrs-book`](https://egit.irs.uni-stuttgart.de/rust/sat-rs/src/branch/main/satrs-book):
|
2023-09-26 18:23:59 +02:00
|
|
|
Primary information resource in addition to the API documentation, hosted
|
|
|
|
[here](https://documentation.irs.uni-stuttgart.de/projects/sat-rs/). It can be useful to read
|
2023-09-26 18:21:10 +02:00
|
|
|
this first before delving into the example application and the API documentation.
|
2024-02-12 15:51:37 +01:00
|
|
|
* [`satrs`](https://egit.irs.uni-stuttgart.de/rust/sat-rs/src/branch/main/satrs):
|
|
|
|
Primary crate.
|
|
|
|
* [`satrs-example`](https://egit.irs.uni-stuttgart.de/rust/sat-rs/src/branch/main/satrs-example):
|
2023-01-25 21:06:29 +01:00
|
|
|
Example of a simple example on-board software using various sat-rs components which can be run
|
|
|
|
on a host computer or on any system with a standard runtime like a Raspberry Pi.
|
2024-02-12 15:51:37 +01:00
|
|
|
* [`satrs-mib`](https://egit.irs.uni-stuttgart.de/rust/sat-rs/src/branch/main/satrs-mib):
|
2023-01-25 21:32:39 +01:00
|
|
|
Components to build a mission information base from the on-board software directly.
|
2024-05-25 12:32:46 +02:00
|
|
|
* [`satrs-stm32f3-disco-rtic`](https://egit.irs.uni-stuttgart.de/rust/sat-rs/src/branch/main/embedded-examples/satrs-stm32f3-disco-rtic):
|
2024-04-04 15:18:53 +02:00
|
|
|
Example of a simple example using low-level sat-rs components on a bare-metal system
|
2024-05-25 12:32:46 +02:00
|
|
|
with constrained resources. This example uses the [RTIC](https://github.com/rtic-rs/rtic)
|
|
|
|
framework on the STM32F3-Discovery device.
|
2024-05-25 12:35:26 +02:00
|
|
|
* [`satrs-stm32h-nucleo-rtic`](https://egit.irs.uni-stuttgart.de/rust/sat-rs/src/branch/main/embedded-examples/satrs-stm32h7-nucleo-rtic):
|
2024-05-25 12:32:46 +02:00
|
|
|
Example of a simple example using sat-rs components on a bare-metal system
|
|
|
|
with constrained resources. This example uses the [RTIC](https://github.com/rtic-rs/rtic)
|
|
|
|
framework on the STM32H743ZIT device.
|
2023-01-25 21:06:29 +01:00
|
|
|
|
2023-01-25 21:40:30 +01:00
|
|
|
Each project has its own `CHANGELOG.md`.
|
|
|
|
|
2023-01-25 21:06:29 +01:00
|
|
|
# Related projects
|
2024-05-25 12:32:46 +02:00
|
|
|
|
2023-01-25 23:08:25 +01:00
|
|
|
In addition to the crates in this repository, the sat-rs project also maintains other libraries.
|
2023-01-25 21:06:29 +01:00
|
|
|
|
|
|
|
* [`spacepackets`](https://egit.irs.uni-stuttgart.de/rust/spacepackets): Basic ECSS and CCSDS
|
2023-02-04 14:01:55 +01:00
|
|
|
packet protocol implementations. This repository is re-exported in the
|
2024-02-12 17:34:16 +01:00
|
|
|
[`satrs`](https://egit.irs.uni-stuttgart.de/rust/satrs/src/branch/main/satrs)
|
2023-01-25 21:06:29 +01:00
|
|
|
crate.
|
2023-12-01 22:21:12 +01:00
|
|
|
|
2024-05-22 19:05:05 +02:00
|
|
|
# Flight Heritage
|
|
|
|
|
|
|
|
There is an active and continuous effort to get early flight heritage for the sat-rs library.
|
|
|
|
Currently this library has the following flight heritage:
|
|
|
|
|
2024-05-22 19:11:43 +02:00
|
|
|
- Submission as an [OPS-SAT experiment](https://www.esa.int/Enabling_Support/Operations/OPS-SAT)
|
|
|
|
which has also
|
|
|
|
[flown on the satellite](https://blogs.esa.int/rocketscience/2024/05/21/ops-sat-reentry-tomorrow-final-experiments-continue/).
|
|
|
|
The application is strongly based on the sat-rs example application. You can find the repository
|
|
|
|
of the experiment [here](https://egit.irs.uni-stuttgart.de/rust/ops-sat-rs).
|
2024-05-22 19:05:05 +02:00
|
|
|
|
2023-12-01 22:21:12 +01:00
|
|
|
# Coverage
|
|
|
|
|
|
|
|
Coverage was generated using [`grcov`](https://github.com/mozilla/grcov). If you have not done so
|
|
|
|
already, install the `llvm-tools-preview`:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
rustup component add llvm-tools-preview
|
|
|
|
cargo install grcov --locked
|
|
|
|
```
|
|
|
|
|
2024-05-22 19:05:05 +02:00
|
|
|
After that, you can simply run `coverage.py` to test the `satrs` crate with coverage. You can
|
2023-12-01 22:21:12 +01:00
|
|
|
optionally supply the `--open` flag to open the coverage report in your webbrowser.
|