Skip to content

Commit

Permalink
Add doc build snapshot nightly
Browse files Browse the repository at this point in the history
  • Loading branch information
pionix-compiler committed Feb 22, 2024
1 parent c7c2a57 commit 7c0cc7e
Show file tree
Hide file tree
Showing 26 changed files with 408 additions and 126 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/latest/_images/quick-start-high-level-1.png
Binary file not shown.
Binary file removed docs/latest/_images/quick-start-high-level-2.png
Binary file not shown.
Binary file removed docs/latest/_images/quick-start-high-level-3.png
Binary file not shown.
121 changes: 99 additions & 22 deletions docs/latest/_sources/general/01_framework.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,35 @@
EVerest framework
#################
You can think of EVerest as an operating system for EV chargers with implementations of communication protocols, software modules for representations of hardware devices (chargers, cars, …) and tools for simulating the charging process.
You can think of EVerest as an operating system for EV chargers with
implementations of communication protocols, software modules for
representations of hardware devices (chargers, cars, …) and tools
for simulating the charging process.

It's a full stack environment for EV charging.

*********************
A Visual Introduction
*********************

A first very high level overview of the framework can be seen here:
The EVerest framework helps with building your dedicated development scenario
with all needed modules for your specific developer's use case.
The modules are connected by using the principle of loose coupling.

.. image:: img/quick-start-high-level-1.png
Modules in EVerest can be everything like hardware drivers, protocols,
authentication logic and more.
Build up your development scenario as needed and enhance it by adding your own
additional modules.

The EVerest framework helps with building your dedicated development scenario with all needed modules for your specific developer's use case. The modules are connected by using the principle of loose coupling.
Having this in mind, you can take a look at the following high level overview
of the framework:

Modules in EVerest can be everything like hardware drivers, protocols, authentication logic and more. Build up your development scenario as needed and enhance it by adding your own additional modules.
.. image:: img/0-0-everest-top-level-diagram.png
:width: 760px

The upper part (light grey background) of this picture is part of EVerest. The
lower part of the picture shows two technologies that are used by EVerest but
are not part of the EVerest repositories.

.. note::

Expand All @@ -30,32 +44,95 @@ Modules in EVerest can be everything like hardware drivers, protocols, authentic
:ref:`Zulip <index_zulip>` or drop us a line on the
:ref:`Mailing list <index_mailinglist>`.

Another way to look at EVerest is its layer architecture:
The EVerest framework launches all modules that are configured for your
workspace.
You will see later how configuration of modules and dependencies is done.

The modules communicate via an MQTT broker.
MQTT is currently the default messaging technology coming with EVerest.
You could change that to other solutions (with some smaller development
efforts).
Same with NodeRED.

At the right side of the picture, you see the main tools in EVerest, which
will be explained later in this documentation in more detail.
Up to now, some sneak preview:

- **Admin Panel**: Tool to show all modules connections and dependencies
including the parameters set for the modules.
- **EVerest Dependency Manager** (edm): Tool that helps you getting all
needed repositories from Git for your specific setup.
- **ev-cli**: Generates module and interface scaffolds based on templates.
This way you can start implementing new modules very fast.

***************************
Examples of EVerest Modules
***************************

This picture shows some of the main modules in EVerest:

.. image:: img/0-3-everest-top-level-diagram-module-categories.png
:width: 450px

The central module in EV charging scenarios will be the EvseManager.
It consists of some central controlling logic for charging configurations.

All other modules shown can be organized in workspaces depending on your
individual setup.
Later in this documentation, you will learn how to create configurations
to set the dependencies and config values of those modules to suit your
needs.

*************************
High Level Module Concept
*************************

To get an idea, what an EVerest module consists of, see the following
illustration:

.. image:: img/0-1-everest-top-level-diagram-module-details.png
:width: 520px

The top box within the dashed line shows the definition of a module in EVerest.
The heart of it is the manifest file.
The manifest holds the definition of configuration keys.

.. note::
The manifest file is not the place to put the values of the config options.
The manifest just defines what can be configured later, e.g. the "max
voltage" of a device.
The values of those config parameters are put in the configuration files
that build up your workspace, which will be explained later.

.. image:: img/quick-start-high-level-2.png
The manifest also declares which interfaces are provided or required by a
module.
"Provided" means that a module has implemented an interface.
"Required" means that a module needs a connection to another module which has
implemented the dedicated interface.

Depending on your project use case, you can define the suitable module stack and configure module connections and module parameters.
For a more detailed explanation of that concept and what "type" definitions
mean in EVerest, see the
:ref:`EVerest Module Concept page <moduleconcept_main>`

What modules EVerest already delivers as ready-to-use implementations and which features they currently ship will be explained in detail in the modules documentation.
Alternatively, you can also see the concept in action in a
:ref:`tutorial that shows how to create modules <tutorial_create_modules_main>`.

*****************
Tools And Helpers
*****************
Having defined EVerest modules, they need to have a way to communicate.
This illustration shows what is happening there:

Additionally, you have some tools and helpers that work with the framework which makes your EVerest developer's life easier:
.. image:: img/0-2-everest-top-level-diagram-module-communication.png
:width: 450px

.. image:: img/quick-start-high-level-3.png
Module A and Module B are communicating via an MQTT broker.

To understand the benefit delivered by those tools, let's have a sneak preview:
Modules can publish variables (VARs) which other modules can subscribe to.

- **Admin Panel**: Tool to show all modules connections and dependencies including the parameters set for the modules.
- **EVerest Dependency Manager** (edm): Tool that helps you getting all needed repositories from Git for your specific setup.
- **ev-cli**: Generates module and interface scaffolds based on templates. This way you can start implementing new modules very fast.
- **MQTT Explorer**: Great for debugging the messages sent between your modules during development phase.
- **NodeRed** for simulating your EVerest setup
- **SteVe**: Just in case you want to test your EVerest instance with some OCPP backend functionality: SteVe is an external tool that lets you do exactly that.
Modules can also call commands (CMDs) of other modules.
This is also triggered via MQTT messages.

How to setup and use those tools will be shown later.
********************
Module Communication
********************

*************************************
System Requirements and Prerequisites
Expand Down
17 changes: 7 additions & 10 deletions docs/latest/appendix/02_snapshot.html
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,15 @@ <h3>Navigation</h3>
<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="nt">Josev</span><span class="p">:</span>
<span class="w"> </span><span class="nt">cmake_condition</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">EVEREST_ENABLE_PY_SUPPORT AND EVEREST_DEPENDENCY_ENABLED_JOSEV</span>
<span class="w"> </span><span class="nt">git</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://github.com/EVerest/ext-switchev-iso15118.git</span>
<span class="w"> </span><span class="nt">git_rev</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">21120ac952ffda11ad410e21d9ac15d30dc1e710</span>
<span class="w"> </span><span class="nt">git_tag</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">2024.2.0</span>
<span class="w"> </span><span class="nt">git_rev</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fb9e72dec6ef13576eedebcb943727c568bba5bd</span>
<span class="w"> </span><span class="nt">git_tag</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">2024.2.1</span>
<span class="nt">everest</span><span class="p">:</span>
<span class="w"> </span><span class="nt">git</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">[email protected]:EVerest/EVerest.git</span>
<span class="w"> </span><span class="nt">git_rev</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">e8d04138434f26f09de18c9582e381efe1c9f3c0</span>
<span class="w"> </span><span class="nt">git_rev</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">3bd15d1deadcb3feeddbb69b1e2a13e90b393ea9</span>
<span class="w"> </span><span class="nt">git_tag</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">main</span>
<span class="nt">everest-core</span><span class="p">:</span>
<span class="w"> </span><span class="nt">git</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">[email protected]:EVerest/everest-core.git</span>
<span class="w"> </span><span class="nt">git_rev</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">67d2022b668d24f42ae9dd8b57288fa5f9cb51be</span>
<span class="w"> </span><span class="nt">git_rev</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">2456abb438d4aaa586c44dd715be5d2a1f0e0412</span>
<span class="w"> </span><span class="nt">git_tag</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">main</span>
<span class="nt">everest-framework</span><span class="p">:</span>
<span class="w"> </span><span class="nt">git</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://github.com/EVerest/everest-framework.git</span>
Expand All @@ -68,7 +68,7 @@ <h3>Navigation</h3>
<span class="w"> </span><span class="nt">git_tag</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">v0.2.0</span>
<span class="nt">everest.github.io</span><span class="p">:</span>
<span class="w"> </span><span class="nt">git</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">[email protected]:everest/everest.github.io.git</span>
<span class="w"> </span><span class="nt">git_rev</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">ee8754af5c9bd87620723be45dc515b722b50e80</span>
<span class="w"> </span><span class="nt">git_rev</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">c7c2a57b46b22711e3ecdbf1a18116f625fcfc54</span>
<span class="nt">ext-mbedtls</span><span class="p">:</span>
<span class="w"> </span><span class="nt">cmake_condition</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">EVEREST_DEPENDENCY_ENABLED_MBEDTLS</span>
<span class="w"> </span><span class="nt">git</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://github.com/EVerest/ext-mbedtls.git</span>
Expand All @@ -84,10 +84,9 @@ <h3>Navigation</h3>
<span class="w"> </span><span class="nt">git_rev</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">35c0c0a4ff3412e588ff6f00561df1407916832d</span>
<span class="w"> </span><span class="nt">git_tag</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">2023.3.0</span>
<span class="nt">libevse-security</span><span class="p">:</span>
<span class="w"> </span><span class="nt">cmake_condition</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">EVEREST_DEPENDENCY_ENABLED_LIBEVSE_SECURITY</span>
<span class="w"> </span><span class="nt">git</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://github.com/EVerest/libevse-security.git</span>
<span class="w"> </span><span class="nt">git_rev</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">69410a82d15e925e8ccdfd2ba8a2de0f9b725ac2</span>
<span class="w"> </span><span class="nt">git_tag</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">69410a8</span>
<span class="w"> </span><span class="nt">git_rev</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">6f45efd773658385da0fc207aab4f026e9969391</span>
<span class="w"> </span><span class="nt">git_tag</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">6f45efd</span>
<span class="nt">libfsm</span><span class="p">:</span>
<span class="w"> </span><span class="nt">cmake_condition</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">EVEREST_DEPENDENCY_ENABLED_LIBFSM</span>
<span class="w"> </span><span class="nt">git</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://github.com/EVerest/libfsm.git</span>
Expand All @@ -99,7 +98,6 @@ <h3>Navigation</h3>
<span class="w"> </span><span class="nt">git_tag</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">v0.2.1</span>
<span class="w"> </span><span class="nt">options</span><span class="p">:</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">BUILD_EXAMPLES OFF</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CMAKE_POSITION_INDEPENDENT_CODE ON</span>
<span class="nt">libmodbus</span><span class="p">:</span>
<span class="w"> </span><span class="nt">cmake_condition</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">EVEREST_DEPENDENCY_ENABLED_LIBMODBUS</span>
<span class="w"> </span><span class="nt">git</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://github.com/EVerest/libmodbus.git</span>
Expand All @@ -121,7 +119,6 @@ <h3>Navigation</h3>
<span class="w"> </span><span class="nt">git_rev</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">97a42e9dba26c068a34453ad0d9a0ce29595bf4d</span>
<span class="w"> </span><span class="nt">git_tag</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">v0.2.0</span>
<span class="nt">libtimer</span><span class="p">:</span>
<span class="w"> </span><span class="nt">cmake_condition</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">EVEREST_DEPENDENCY_ENABLED_LIBTIMER</span>
<span class="w"> </span><span class="nt">git</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://github.com/EVerest/libtimer.git</span>
<span class="w"> </span><span class="nt">git_rev</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">d7ee45a5779defdd88cfa9382348670b353b9a4c</span>
<span class="w"> </span><span class="nt">git_tag</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">v0.1.1</span>
Expand Down
Loading

0 comments on commit 7c0cc7e

Please sign in to comment.