Files
cariflex/tools/EVerest-main/lib/everest/framework/docs/ConfigBootModeLogic.md
Eric F d398a6ced2 Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- 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
2026-06-08 00:38:27 -04:00

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 --config argument is provided.
  • Database Boot Mode: The configuration is loaded from an SQLite database. This mode is used when only the --db argument 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 --config is 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]