sat-rs/README.md

64 lines
3.4 KiB
Markdown
Raw Normal View History

2023-09-06 21:57:20 +02:00
<p align="center"> <img src="misc/satrs-logo.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
=========
2023-07-11 23:02:14 +02:00
This is the repository of the sat-rs framework. Its primary goal is to provide re-usable components
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
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.
2023-09-13 15:26:20 +02:00
* [`satrs-example-stm32f3-disco`](https://egit.irs.uni-stuttgart.de/rust/sat-rs/src/branch/main/satrs-example-stm32f3-disco):
2023-01-25 21:29:04 +01:00
Example of a simple example on-board software using sat-rs components on a bare-metal system
2023-01-25 21:06:29 +01:00
with constrained resources.
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
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
# 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
```
After that, you can simply run `coverage.py` to test the `satrs-core` crate with coverage. You can
optionally supply the `--open` flag to open the coverage report in your webbrowser.