- 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
2.0 KiB
Getting Started
Requirements
For Debian GNU/Linux 11 you will need the following dependencies:
sudo apt install build-essential cmake python3-pip libboost-all-dev libsqlite3-dev libssl-dev
OpenSSL version 3.0 or above is required.
Clone this repository.
git clone https://github.com/EVerest/libocpp
In the libocpp folder create a folder named build and cd into it. Execute cmake and then make:
mkdir build && cd build
cmake ..
make -j$(nproc)
Unit testing
GTest is required for building the test cases target.
To build the target and run the tests you can reference the script .ci/build-kit/install_and_test.sh.
The script allows the GitHub Actions runner to execute.
Local testing:
mkdir build
cmake -B build -DBUILD_TESTING=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="./dist"
cd build
make -j$(nproc) install
Run any required tests from build/tests.
Clarifications for directory structures, namespaces and OCPP versions
This repository contains multiple subdirectories and namespaces named v16, v2 and v21.
- The v16 directories contain files for configuring and implementing OCPP 1.6.
- The v2 directories include files for both OCPP2.0.1 and OCPP2.1, as OCPP 2.1 is fully backward compatible with OCPP 2.0.1.
- The v21 directories include files only for OCPP2.1.
Get Started with OCPP1.6
Please see the Getting Started documentation for OCPP1.6.
Get Started with OCPP2.0.1
Please see the Getting Started documentation for OCPP2.0.1.
Building the doxygen documentation
cmake -S . -B build
cmake --build build --target doxygen-ocpp
You will find the generated doxygen documentation at:
build/dist/docs/html/index.html
The main reference for the integration of libocpp for OCPP1.6 is the ocpp::v16::ChargePoint class defined in v16/charge_point.hpp , for OCPP2.0.1 and OCPP2.1 that is the ocpp::v2::ChargePoint class defined in v2/charge_point.hpp .