mirror of
https://gitlab.com/wirelos/sprocket-lib.git
synced 2025-12-16 05:24:30 +01:00
71 lines
1.6 KiB
Markdown
71 lines
1.6 KiB
Markdown
# Sprocket-Core
|
|
A lightweight Arduino framework for event driven programming.
|
|
|
|
|
|
## Getting Started
|
|
Install sprocket-lib on your favorite dev environment.
|
|
Either by cloning this repository into the Arduino library path or by adding it as a dependency to your platformio.ini file.
|
|
In addition, following dependencies need to be installed as well:
|
|
```
|
|
Hash
|
|
TaskScheduler
|
|
SPIFFS
|
|
ArduinoJson
|
|
```
|
|
|
|
Example platformio.ini:
|
|
```
|
|
[env:build]
|
|
framework = arduino
|
|
platform = espressif8266
|
|
board = esp12e
|
|
upload_speed = 921600
|
|
monitor_baud = 115200
|
|
lib_deps =
|
|
Hash
|
|
TaskScheduler
|
|
SPIFFS
|
|
ArduinoJson
|
|
https://gitlab.com/wirelos/sprocket-lib.git#develop
|
|
```
|
|
|
|
Example main.cpp:
|
|
```cpp
|
|
Sprocket *sprocket;
|
|
|
|
void setup()
|
|
{
|
|
sprocket = new Sprocket({STARTUP_DELAY, SERIAL_BAUD_RATE});
|
|
sprocket->addPlugin(new SomePlugin());
|
|
sprocket->activate();
|
|
}
|
|
|
|
void loop()
|
|
{
|
|
sprocket->loop();
|
|
yield();
|
|
}
|
|
```
|
|
|
|
## Concepts
|
|
... topic based event channel / pubsub-pattern
|
|
... plugin system
|
|
|
|
### Lifecycle
|
|
In most cases a Sprocket is bootstraped in the setup() method. Addidional plugins are hooked into the Sprocket after initialisation.
|
|
During loop, the internal Scheduler needs to be updated by calling the corresponding method.
|
|
See the "Getting Started" section for an example of skeleton Sprocket.
|
|
|
|
### Plugins
|
|
To extend the functionality of a Sprocket, plugins can be hooked into the activation lifecycle.
|
|
|
|
|
|
# Useful commands
|
|
```sh
|
|
# erase flash
|
|
esptool --port /dev/ttyUSB0 erase_flash
|
|
|
|
# OTA
|
|
~/.platformio/packages/tool-espotapy/espota.py -i <espIP> -p 8266 -a <authPW> -f .pioenvs/ota/firmware.bin
|
|
|
|
``` |