From 19c5aa9b8358b8f7911fb519f7d8c571426680f3 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Wed, 27 Mar 2024 14:17:59 +0100 Subject: [PATCH] update rust book as well --- satrs-book/src/actions.md | 2 +- satrs-book/src/communication.md | 2 +- satrs-book/src/design.md | 15 ++++++++------- satrs-book/src/example.md | 2 +- satrs-book/src/introduction.md | 9 +++++++-- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/satrs-book/src/actions.md b/satrs-book/src/actions.md index 0e092d9..bed9fdb 100644 --- a/satrs-book/src/actions.md +++ b/satrs-book/src/actions.md @@ -15,7 +15,7 @@ action commanding could look like. 2. Target ID and Action String based. The target ID is the same as in the first proposal, but the unique action is identified by a string. -The framework provides an `ActionRequest` abstraction to model both of these cases. +The library provides an `ActionRequest` abstraction to model both of these cases. ## Commanding with ECSS PUS 8 diff --git a/satrs-book/src/communication.md b/satrs-book/src/communication.md index 9e7a4ac..f102f6b 100644 --- a/satrs-book/src/communication.md +++ b/satrs-book/src/communication.md @@ -20,7 +20,7 @@ components. 1. [UDP TMTC Server](https://docs.rs/satrs/latest/satrs/hal/host/udp_server/index.html). UDP is already packet based which makes it an excellent fit for exchanging space packets. 2. [TCP TMTC Server Components](https://docs.rs/satrs/latest/satrs/hal/std/tcp_server/index.html). - TCP is a stream based protocol, so the framework provides building blocks to parse telemetry + TCP is a stream based protocol, so the library provides building blocks to parse telemetry from an arbitrary bytestream. Two concrete implementations are provided: - [TCP spacepackets server](https://docs.rs/satrs/latest/satrs/hal/std/tcp_server/struct.TcpSpacepacketsServer.html) to parse tightly packed CCSDS Spacepackets. diff --git a/satrs-book/src/design.md b/satrs-book/src/design.md index 9ec7317..ef14250 100644 --- a/satrs-book/src/design.md +++ b/satrs-book/src/design.md @@ -1,13 +1,14 @@ -# Framework Design +# Library Design Satellites and space systems in general are complex systems with a wide range of requirements for -both the hardware and the software. Consequently, the general design of the framework is centered +both the hardware and the software. Consequently, the general design of the library is centered around many light-weight components which try to impose as few restrictions as possible on how to -solve certain problems. +solve certain problems. This is also the reason why sat-rs is explicitely called a library +instead of a framework. There are still a lot of common patterns and architectures across these systems where guidance of how to solve a problem and a common structure would still be extremely useful to avoid pitfalls -which were already solved and to avoid boilerplate code. This framework tries to provide this +which were already solved and to avoid boilerplate code. This library tries to provide this structure and guidance the following way: 1. Providing this book which explains the architecture and design patterns in respect to common @@ -18,7 +19,7 @@ structure and guidance the following way: 3. Providing a good test suite. This includes both unittests and integration tests. The integration tests can also serve as smaller usage examples than the large `satrs-example` application. -This framework has special support for standards used in the space industry. This especially +This library has special support for standards used in the space industry. This especially includes standards provided by Consultative Committee for Space Data Systems (CCSDS) and European Cooperation for Space Standardization (ECSS). It does not enforce using any of those standards, but it is always recommended to use some sort of standard for interoperability. @@ -30,10 +31,10 @@ Flying Laptop Project by the University of Stuttgart with Airbus Defence and Spa It has flight heritage through the 2 mssions [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/). Therefore, a lot of the design concepts were ported more or less unchanged to the `sat-rs` -framework. +library. FLP is a medium-size small satellite with a higher budget and longer development time than EIVE, which allowed to build a highly reliable system while EIVE is a smaller 6U+ cubesat which had a -shorter development cycle and was built using cheaper COTS components. This framework also tries +shorter development cycle and was built using cheaper COTS components. This library also tries to accumulate the knowledge of developing the OBSW and operating the satellite for both these different systems and provide a solution for a wider range of small satellite systems. diff --git a/satrs-book/src/example.md b/satrs-book/src/example.md index 12fec83..4e1f590 100644 --- a/satrs-book/src/example.md +++ b/satrs-book/src/example.md @@ -1,6 +1,6 @@ # sat-rs Example Application -The `sat-rs` framework includes a monolithic example application which can be found inside +The `sat-rs` library includes a monolithic example application which can be found inside the [`satrs-example`](https://egit.irs.uni-stuttgart.de/rust/sat-rs/src/branch/main/satrs-example) subdirectory of the repository. The primary purpose of this example application is to show how the various components of the sat-rs framework could be used as part of a larger on-board diff --git a/satrs-book/src/introduction.md b/satrs-book/src/introduction.md index f448441..babd8ca 100644 --- a/satrs-book/src/introduction.md +++ b/satrs-book/src/introduction.md @@ -1,7 +1,7 @@ The sat-rs book ====== -This book is the primary information resource for the [sat-rs framework](https://egit.irs.uni-stuttgart.de/rust/sat-rs) +This book is the primary information resource for the [sat-rs library](https://egit.irs.uni-stuttgart.de/rust/sat-rs) in addition to the regular API documentation. It contains the following resources: 1. Architecture informations and consideration which would exceeds the scope of the regular API. @@ -12,10 +12,15 @@ in addition to the regular API documentation. It contains the following resource # Introduction -The primary goal of the sat-rs framework is to provide re-usable components +The primary goal of the sat-rs library is to provide re-usable components to write on-board software for remote systems like rovers or satellites. It is specifically written for the special requirements for these systems. +It should be noted that sat-rs 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. + 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 through the 2 missions [FLP](https://www.irs.uni-stuttgart.de/en/research/satellitetechnology-and-instruments/smallsatelliteprogram/flying-laptop/)