This is a collection of ideas and features a minimal version of a Rust Flight
Framework would require. For a first prototype, a full runtime is assumed to simplify development. Later, it might sense to extend or adapt these abstractions to support something like FreeRTOS or RTIC.
Store Abstraction. A pool abstraction to allow storing TCs/TMs and IPC packets. Merged in rust/launchpad#5
Serialization and Deserialization helpers. serde looks huge. Maybe it can be used for our purposes. postcard also looks really useful to serialize structs and other similar data.
Actually, looking at the postcard 1.0 announcement post, this seems like a really good choice with the crate being specifically targeted towards embedded applications and having an active sponsoring from Mozilla
This is a collection of ideas and features a minimal version of a Rust Flight
Framework would require. For a first prototype, a full runtime is assumed to simplify development. Later, it might sense to extend or adapt these abstractions to support something like FreeRTOS or RTIC.
## Core Components
~~- [x] Task Abstraction: Merged as part of https://egit.irs.uni-stuttgart.de/rust/launchpad/pulls/1~~ I think it's easier for now to not provide executors.
~~- [x] Object Manager: First rudimentary implementation: https://egit.irs.uni-stuttgart.de/rust/launchpad/src/branch/main/src/core/objects.rs~~. Not feasble for Rust.
- [x] Event Manager: First version merged in https://egit.irs.uni-stuttgart.de/rust/launchpad/pulls/4
- [x] Packet Stack. Implemented inside the https://egit.irs.uni-stuttgart.de/rust/spacepackets crate, `v0.1.0` released
- [x] First Communication Interface to allow commanding. Start with PUS and a UDP server. Part of https://egit.irs.uni-stuttgart.de/rust/fsrc-launchpad/pulls/8
- [x] Basic packet routing or dispatch mechanism which dispatches CCSDS packets or PUS packets to registered packet handlers. Part of https://egit.irs.uni-stuttgart.de/rust/fsrc-launchpad/pulls/8
- [x] IPC: Look into how to smartly perform IPC. Maybe start with something like Events or Action Messages
- [x] Logging: See dedicated issue https://egit.irs.uni-stuttgart.de/rust/fsrc-launchpad/issues/12
## Core Extension
- [x] Store Abstraction. A pool abstraction to allow storing TCs/TMs and IPC packets. Merged in https://egit.irs.uni-stuttgart.de/rust/launchpad/pulls/5
- [x] Serialization and Deserialization helpers. [serde](https://serde.rs/) looks huge. Maybe it can be used for our purposes. [postcard](https://github.com/jamesmunns/postcard) also looks really useful to serialize structs and other similar data.
Actually, looking at [the postcard 1.0](https://jamesmunns.com/blog/postcard-1-0-run/) announcement post, this seems like a really good choice with the crate being specifically targeted towards embedded applications and having an active sponsoring from Mozilla
- [x] Custom Packet Specification: Issue https://egit.irs.uni-stuttgart.de/rust/fsrc-launchpad/issues/13
- [x] Datapool: Issue https://egit.irs.uni-stuttgart.de/rust/fsrc-launchpad/issues/14
- [x] PUS Service 1 Verification: Merged as part of https://egit.irs.uni-stuttgart.de/rust/fsrc-launchpad/pulls/11
- [x] PUS Service 5 Events: Merged as part of https://egit.irs.uni-stuttgart.de/rust/fsrc-launchpad/pulls/19
## Additional
- [x] Find a good/better name. Issue https://egit.irs.uni-stuttgart.de/rust/fsrc-launchpad/issues/9
- [ ] Power and Thermal Components and abstractions
- [ ] Assembly, Subsystem, General Mode Tree abstraction. Partly https://egit.irs.uni-stuttgart.de/rust/fsrc-launchpad/issues/15
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This is a collection of ideas and features a minimal version of a Rust Flight
Framework would require. For a first prototype, a full runtime is assumed to simplify development. Later, it might sense to extend or adapt these abstractions to support something like FreeRTOS or RTIC.
Core Components
- [x] Task Abstraction: Merged as part of rust/launchpad#1I think it's easier for now to not provide executors.- [x] Object Manager: First rudimentary implementation: https://egit.irs.uni-stuttgart.de/rust/launchpad/src/branch/main/src/core/objects.rs. Not feasble for Rust.v0.1.0releasedCore Extension
Actually, looking at the postcard 1.0 announcement post, this seems like a really good choice with the crate being specifically targeted towards embedded applications and having an active sponsoring from Mozilla
Additional