From c745cde7bf4bbc20a674200583df6abbe01392e3 Mon Sep 17 00:00:00 2001 From: apolisskyi Date: Sat, 16 Sep 2023 12:04:46 +0200 Subject: [PATCH] README: update project features --- README.md | 42 ++++++++++++++---------------------------- 1 file changed, 14 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index d8ad061..0a74845 100755 --- a/README.md +++ b/README.md @@ -3,44 +3,31 @@ ![GitHub release (with filter)](https://img.shields.io/github/v/release/polesskiy-dev/active-object-fsm) # active-object-fsm -Minimalistic implementation of Active Object pattern + FSM for embedded systems. +Minimalistic implementation of Active Object pattern + FSM for embedded systems. Static memory allocation only. -## Initialization - - $ git submodule init && git submodule update --remote - $ make # compile to bin/ +## Features +- [x] Active Object pattern (Actors) [wiki Actors](https://en.wikipedia.org/wiki/Actor_model) +- [x] Finite State Machine (Moore+Mealy) [wiki FSM](https://en.wikipedia.org/wiki/Finite-state_machine) +- [x] Transition table +- [x] State entry/transition/exit actions +- [ ] 100% Code coverage ## Documentation [Doxygen docs](https://polesskiy-dev.github.io/active-object-fsm/) -## Examples - -[Blinky: simple LED on/off demo](./examples/simple-blinky-fsm/README.md) - -[Request: retry/timeout, transition table demo](./examples/request-fsm/README.md) - -[Request: retry after delay + rety/timeout, transition table demo](./examples/request-retry-fsm/README.md) +## Initialization -## Advantages + $ git submodule init && git submodule update --remote + $ make # compile to bin/ -Preprocessor templates allow strict typings and debugger suggestions, all types and enums have human-readable names, e.g. from [Request demo](./examples/request-fsm/README.md): +## Examples -![types](https://raw.githubusercontent.com/polesskiy-dev/active-object-fsm/main/docs/active-object-typings.png) +[TODO: Blinky: simple LED on/off demo](./examples/simple-blinky-fsm/README.md) -TODO: make naming conventions e.g.: +[TODO: Request: retry/timeout, transition table demo](./examples/request-fsm/README.md) -- types - - CAPITAL_CASE_T for template types - - CAPITAL_CASE for enums - - CAPITAL_CASE for typedefs (???) - - CAPITAL_CASE for #define -- functions - - MODULE_PascalCase for module public functions - - camelCase for module private functions -- variables - - MODULE_camelCase for module global variables - - camelCase for local variables +[TODO: Request: retry after delay + rety/timeout, transition table demo](./examples/request-retry-fsm/README.md) ## Side notes @@ -68,7 +55,6 @@ $ for file in ./**/*.gv; do dot -Tsvg "$file" > "${file%.gv}.svg"; done # dot -T ``` ### TODO: Code coverage -It seems that it's hard to check coverage on macros. Based on [Codecov](https://about.codecov.io/):