Skip to content

Commit

Permalink
README: update project features
Browse files Browse the repository at this point in the history
  • Loading branch information
polesskiy-dev committed Sep 16, 2023
1 parent 33ed30d commit c745cde
Showing 1 changed file with 14 additions and 28 deletions.
42 changes: 14 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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/):

Expand Down

0 comments on commit c745cde

Please sign in to comment.