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
This commit is contained in:
Eric F
2026-06-08 00:38:27 -04:00
parent 468cfeaa50
commit d398a6ced2
7326 changed files with 1177561 additions and 7 deletions

View File

@@ -0,0 +1,56 @@
// SPDX-License-Identifier: Apache-2.0
// Copyright chargebyte GmbH and Contributors to EVerest
#include "ErrorHandler.hpp"
#include <everest/logging.hpp>
namespace helpers {
void handle_error_raised(data::DataStoreCharger& data, const types::json_rpc_api::ErrorObj& error) {
try {
data.chargererrors.add_error(error);
} catch (const std::runtime_error& e) {
EVLOG_warning << "Error while adding error to the data store: " << e.what();
}
// only set error present for EVSE specific errors. Index 0 is reserved for the charger itself
if (!error.origin.evse_index.has_value() || error.origin.evse_index.value() == 0) {
return;
}
auto tmp_evse_store = data.get_evse_store(error.origin.evse_index.value());
if (tmp_evse_store != nullptr) {
EVLOG_debug << "Setting error present for EVSE index: " << error.origin.evse_index.value();
tmp_evse_store->evsestatus.set_error_present(true);
} else {
EVLOG_error << "Cannot set error present for EVSE index: " << error.origin.evse_index.value();
}
}
void handle_error_cleared(data::DataStoreCharger& data, const types::json_rpc_api::ErrorObj& error) {
try {
data.chargererrors.clear_error(error);
} catch (const std::runtime_error& e) {
EVLOG_warning << "Error while clearing error from the data store: " << e.what();
}
// only clear error present for EVSE specific errors. Index 0 is reserved for the charger itself
if (!error.origin.evse_index.has_value() || error.origin.evse_index.value() == 0) {
return;
}
auto tmp_charger_errors = data.chargererrors.get_data();
if (tmp_charger_errors.has_value()) {
for (const auto& charger_error : tmp_charger_errors.value()) {
if (charger_error.origin.evse_index.has_value() &&
charger_error.origin.evse_index.value() == error.origin.evse_index.value()) {
return;
}
}
}
auto tmp_evse_store = data.get_evse_store(error.origin.evse_index.value());
if (tmp_evse_store != nullptr) {
tmp_evse_store->evsestatus.set_error_present(false);
}
}
} // namespace helpers