Skip to content

Commit

Permalink
Merge pull request #10 from jucr-io/prep-release
Browse files Browse the repository at this point in the history
Prepare for a public release
  • Loading branch information
zeenix authored Oct 2, 2024
2 parents 10cbaf4 + c91efaa commit d23720c
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# firmware-controller

This crate provides a macro, [`macro@controller`] that makes it easy to write controller logic for firmware.
This crate provides a macro named `controller` that makes it easy to write controller logic for firmware.

The controller is responsible for control of all the peripherals based on commands it receives
from other parts of the code. It also notifies peers about state changes and events via signals.
Expand Down Expand Up @@ -159,16 +159,16 @@ The `controller` macro assumes that you have the following dependencies in your
* `futures` with `async-await` feature enabled.
* `embassy-sync`

## Known limitations
## Known limitations & Caveats

* Currently only works as a singleton: you can create multiple instances of the controller but
if you run them simultaneously, they'll interfere with each others' operation. We hope to remove
this limitation in the future. Having said that, most firmware applications will only need a
single controller instance.
* Method args/return type can't be reference types.
* Methods must be async
* Methods must be async.
* The maximum number of subscribers state change and signal streams is 16. We plan to provide an
attribute to make this configurable in the future.
* The type of all published fields must implement `Clone` and `Debug`.
* warning about need to continuosly poll change streams
* missed notification otherwise
* The signal and published fields' streams must be continuely polled. Otherwise notifications will
be missed.

0 comments on commit d23720c

Please sign in to comment.