|
1 | | -# ESPressio-Event |
2 | | -Event-Driven Development of the ESPressio Development Platform |
| 1 | +# ESPressio Event |
| 2 | +Event-Driven Development (Even Pattern) Components of the Flowduino ESPressio Development Platform |
| 3 | + |
| 4 | +Provides a foundation for designing, structuring, and implementing your embedded programs using Event Pattern (Event-Driven Development or "EDD"). |
| 5 | + |
| 6 | +## Latest Stable Version |
| 7 | +There is currently no stable released version. |
| 8 | + |
| 9 | +## ESPressio Development Platform |
| 10 | +The **ESPressio** Development Platform is a collection of discrete (sometimes intra-connected) Component Libraries developed with a particular development ethos in mind. |
| 11 | + |
| 12 | +The key objectives of the ESPressio Development Platform are: |
| 13 | +- **Light-weight** - The Components should always strive to optimize memory consumption and operational overhead as much as possible, but not to the detriment of... |
| 14 | +- **Ease of Use** - Many of our components serve as Developer-Friendly Abstractions of existing procedural code libraries. |
| 15 | +- **Object-Oriented** - A `type` for everything, and everything in a `type`! |
| 16 | +- **SOLID**: |
| 17 | +- - > **S**ingle Responsibility Principle (SRP) |
| 18 | + Break your code into smaller, focused components. |
| 19 | +- - > **O**pen/Closed Principle (OCP) |
| 20 | + Be open for extension but closed for modification. |
| 21 | +- - > **L**iskov Substitution Principle (LSP) |
| 22 | + Be substitutable for the base type without altering correctness. |
| 23 | +- - > **I**nterface Segregation Principle (ISP) |
| 24 | + Break interfaces into specific, client-focused ones. |
| 25 | +- - > **D**ependency Inversion Principle (DIP) |
| 26 | + Be dependent on abstractions, not concretions. |
| 27 | + |
| 28 | +To the maximum extent possible within the limitations/restrictons/constraints of the C++ langauge, the Arduino platform, and Microcontroller Programming itself, all Component Libraries of the **ESPressio** Development Platform must strive to honour the **SOLID** principles. |
| 29 | + |
| 30 | +## License |
| 31 | +ESPressio (and its component libraries, including this one) are subject to the *Apache License 2.0* |
| 32 | +Please see the [](LICENSE) accompanying this library for full details. |
| 33 | + |
| 34 | +## Namespace |
| 35 | +Every type/variable/constant/etc. related to *ESPressio* Event are located within the `Event` submaspace of the `ESPressio` parent namespace. |
| 36 | + |
| 37 | +## Platformio.ini |
| 38 | +You can quickly and easily add this library to your project in PlatformIO by simply including the following in your `platformio.ini` file: |
| 39 | + |
| 40 | +```ini |
| 41 | +lib_deps = |
| 42 | + https://github.com/Flowduino/ESPressio-Base.git |
| 43 | + https://github.com/Flowduino/ESPressio-Threads.git |
| 44 | + https://github.com/Flowduino/ESPressio-Event.git |
| 45 | +``` |
| 46 | + |
| 47 | +Please note that this will use the very latest commits pushed into the repository, so volatility is possible. |
| 48 | +This will of course be resolved when the first release version is tagged and published. |
| 49 | +This section of the README will be updated concurrently with each release. |
0 commit comments