Implementing a framework in Rust #3

Closed
opened 2022-06-09 13:14:16 +02:00 by muellerr · 1 comment
Owner

The FSFW was implemented as a white box framework, using subclassing.
In Rust, there is no inheritance. This means that a framework need to be written differently than how the FSFW was written, making use of traits and composition.

It might sense to look into existing (embedded) frameworks and check how those were implemented.

I'd also suggest to keep the scope of this framework as dedicated to flight software development as possible. There are already embedded frameworks like Hubris or Tock out there, but those seem to be dedicated to IOT devices. I'd also like to defer all features which make the life of the framework developers a lot harder, even if they make using the framework a little bit easier. The first focus should be to have a simple framework which is able to to the same tasks the basic FSFW examples can do, assuming intermediate programming skills from the OBSW developers.

The second step would be to reduce the complexity and boilerplate for users by using features like the advances macro system.

rust/fsrc-launchpad#2 lists core components for a first version of the framework.

The FSFW was implemented as a white box framework, using subclassing. In Rust, there is no inheritance. This means that a framework need to be written differently than how the FSFW was written, making use of traits and composition. It might sense to look into existing (embedded) frameworks and check how those were implemented. I'd also suggest to keep the scope of this framework as dedicated to flight software development as possible. There are already embedded frameworks like Hubris or Tock out there, but those seem to be dedicated to IOT devices. I'd also like to defer all features which make the life of the framework developers a lot harder, even if they make using the framework a little bit easier. The first focus should be to have a simple framework which is able to to the same tasks the basic FSFW examples can do, assuming intermediate programming skills from the OBSW developers. The second step would be to reduce the complexity and boilerplate for users by using features like the advances macro system. https://egit.irs.uni-stuttgart.de/rust/fsrc-launchpad/issues/2 lists core components for a first version of the framework.
muellerr added the concepts label 2022-08-29 10:29:29 +02:00
muellerr added this to the satrs v0.1.0 milestone 2022-08-29 10:30:43 +02:00
Author
Owner

Recent developments reduce the scope of this library significantly. The best solutions in Rust were proven to rely on custom data types specifically tailored towards whatever problem one is trying to solve, specified in the application. All other future components will be built around this principle, and the library ecosystem will promote this data-driven approach.

Recent developments reduce the scope of this library significantly. The best solutions in Rust were proven to rely on custom data types specifically tailored towards whatever problem one is trying to solve, specified in the application. All other future components will be built around this principle, and the library ecosystem will promote this data-driven approach.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rust/sat-rs#3