Skip to content

Commit bd92d53

Browse files
committed
Initial Commit
1 parent 608cd19 commit bd92d53

9 files changed

Lines changed: 116 additions & 2 deletions

File tree

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,3 +396,9 @@ FodyWeavers.xsd
396396

397397
# JetBrains Rider
398398
*.sln.iml
399+
400+
# Mac
401+
.DS_Store
402+
403+
# VisualStudioCode
404+
.vscode

CMakeLists.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
set(COMPONENT_SRCDIRS
2+
"src"
3+
)
4+
5+
set(COMPONENT_ADD_INCLUDEDIRS
6+
"src"
7+
)
8+
9+
register_component()
10+
11+
target_compile_options(${COMPONENT_TARGET} PRIVATE -fno-rtti)

README.md

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,49 @@
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](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](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.

component.mk

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
COMPONENT_ADD_INCLUDEDIRS := include
2+
COMPONENT_SRCDIRS := src
3+
CXXFLAGS += -fno-rtti
4+
CXXFLAGS += -DESPRESSIO_EVENT
5+
CXXFLAGS += -DESPRESSIO_EVENT_VERSION_MAJOR=0
6+
CXXFLAGS += -DESPRESSIO_EVENT_VERSION_MINOR=0
7+
CXXFLAGS += -DESPRESSIO_EVENT_VERSION_PATCH=1
8+
CXXFLAGS += -DESPRESSIO_EVENT_VERSION_STRING=\"0.0.1\"

library.json

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"name": "Flowduino ESPressio-Observable",
3+
"description": "Event-Pattern Library intended for use with all microcontrollers",
4+
"keywords": "event,events,event-driven,event pattern,pattern,design pattern,async,callback,watcher,notifier,espressio",
5+
"authors": {
6+
"name": "Flowduino",
7+
"maintainer": true
8+
},
9+
"repository": {
10+
"type": "git",
11+
"url": "https://github.com/Flowduino/ESPressio-Event.git"
12+
},
13+
"version": "0.0.1",
14+
"license": "Apache-2.0",
15+
"frameworks": "arduino",
16+
"platforms": "*",
17+
"dependencies": [
18+
{
19+
"name": "Flowduino ESPressio-Base",
20+
"version": "0.0.1",
21+
"url": "https://github.com/Flowduino/ESPressio-Base.git",
22+
"platforms": "*"
23+
},
24+
{
25+
"name": "Flowduino ESPressio-Threads",
26+
"version": "0.0.1",
27+
"url": "https://github.com/Flowduino/ESPressio-Base.git",
28+
"platforms": "espressif32,espressif8266"
29+
}
30+
]
31+
}

library.properties

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
name=Flowduino ESPressio-Event
2+
version=0.0.1
3+
author=Simon J. Stuart
4+
maintainer=Flowduino.com
5+
sentence=Event-Driven Devleopment Library intended for use with all microcontrollers
6+
paragraph=This library is intended to be used with the all microcontrollers. It is designed to allow the user to very easily design, structure, and develop your embedded programs using the Event Pattern. This library is intended to be used with PlatformIO and the Arduino framework.
7+
category=Communication
8+
url=https://github.com/Flowduino/ESPressio-Event
9+
architectures=esp32, esp32s2

src/Event.hpp

Whitespace-only changes.

src/EventManager.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#pragma once
2+

src/IEvent.hpp

Whitespace-only changes.

0 commit comments

Comments
 (0)