Architecture~
Plugins~
Scripting language structure~
The following table describes folder structure of the internal scripting file system.
Folder internal~
Rewritten by OTA
Contains the core of the application. This handles the central classes, main http endpoints, and is the main entrypoint.
| File | Description |
|---|---|
internal/init.be |
Main entrypoint of the script loader. Do not add your extensions here, please see extensions.be. |
internal/api.be |
Implementation of the main Euphonium REST API. |
internal/bindings.be |
Shallow binding classes that allow for communication between Berry and C++. |
internal/euphonium.be |
Main Euphonium class which handles system initialization, event handling and plugin registration. |
internal/http.be |
Sugar syntax wrapper over the native HTTP server. |
internal/app-version |
Text file containing current version, needed for OTA. |
Folder vendor~
Rewritten by manufacturer OTA
Contains vendor-specific code. This allows for customization of euphonium for different manufacturers. Code here is rewritten with every manufacturer OTA.
vendor/init.be- Entry point for all vendor-specific code.
Rest of the code here is product-specific.
Folder configuration~
Contains saved configuration of the app in form of *.config.json files.
Folder esp32~
Contains the ESP32 platform support. TODO: Describe structure.
Folder extensions~
Contains all user scripts. These are loaded last, after all other scripts. You can register your custom driver by appending to extensions.be file.