sat-rs/README.md

85 lines
4.7 KiB
Markdown
Raw Normal View History

<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/)
[![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.
* [`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.
* [`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):
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.
* [`satrs-stm32h743zit-rtic`](https://egit.irs.uni-stuttgart.de/rust/sat-rs/src/branch/main/embedded-examples/satrs-stm32h743zit-rtic):
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.