- CitrineOS core extracted (CSMS OCPP 2.0.1) - OpenOCPP extracted (firmware OCPP 1.6J/2.0.1) - ShapeShifter library installed (pip install -e) - ShapeShifter specification extracted - EVerest extracted TODO updated with progress
1.8 KiB
1.8 KiB
EVerest Boot Mode Application Logic
The manager process retrieves the EVerest configuration, manages module dependencies and communication, and starts EVerest modules as individual processes.
The EVerest configuration can be provided via a YAML file, an SQLite database, or both. This section explains how EVerest starts up depending on the CLI options used:
--config: Full path to the EVerest YAML configuration file.--db: Full path to the EVerest SQLite configuration database.--db-init: Indicates that the specified config should be used to initialize the database if it does not exist or does not contain a valid configuration.
Based on these options, there are three possible boot modes:
- YAML Boot Mode: The configuration is loaded from a YAML file. This mode is used when only the
--configargument is provided. - Database Boot Mode: The configuration is loaded from an SQLite database. This mode is used when only the
--dbargument is provided. - DatabaseInit Boot Mode: The configuration is preferably loaded from an SQLite database. If the database does not exist or does not contain a valid EVerest configuration, the YAML file specified by
--configis used instead, and the configuration is then written to the database. This mode requires all three options:--config,--db, and--db-init. In a subsequent start of the application, the database can be used to retrieve the configuration.
Boot Mode Application Logic Flow Chart
flowchart TD
A[Start] --> B[Parse CLI arguments]
B --> C{--config provided}
C -->|yes| D{--db provided}
D -->|yes| E{--db-init provided}
E -->|yes| F[Boot Mode: DatabaseInit]
E -->|no| H[Invalid combination]
D -->|no| J[Boot Mode: YAML]
C -->|no| L{--db provided}
L -->|yes| M[Boot Mode: Database]
L -->|no| O[Invalid combination]