[discussion][do not merge] actors + channels architecture #4
+409
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This gives a sketch of what I was imagining last night.
See
src/fusion.rs
andsrc/{mag,accel,gyro}.rs
for details. SeeSensorInput
insrc/fusion.rs
for how multiplexing across channels with strong typing works.The use of traits to enable mocking/testing can be pretty much reused even if we don't want to go full threading with actor + channels and instead use polling on a single thread. The one trick is that things will need to be inverted a bit so that data is pushed through, rather than pulled through.
Thoughts @jameysharp @slnovak @jeenalee @malisas ?