- 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
45 lines
1.4 KiB
C++
45 lines
1.4 KiB
C++
// SPDX-License-Identifier: Apache-2.0
|
|
// Copyright Pionix GmbH and Contributors to EVerest
|
|
|
|
#include "ac_rcdImpl.hpp"
|
|
|
|
namespace module {
|
|
namespace rcd {
|
|
|
|
void ac_rcdImpl::init() {
|
|
mod->serial.signalErrorFlags.connect([this](ErrorFlags error_flags) {
|
|
if (error_flags.rcd_triggered and not last_error_flags.rcd_triggered) {
|
|
Everest::error::Error error_object =
|
|
this->error_factory->create_error("ac_rcd/DC", "", "RDC-MD triggered", Everest::error::Severity::High);
|
|
this->raise_error(error_object);
|
|
} else if (not error_flags.rcd_triggered and last_error_flags.rcd_triggered) {
|
|
this->clear_error("ac_rcd/DC");
|
|
}
|
|
|
|
if (error_flags.rcd_selftest_failed and not last_error_flags.rcd_selftest_failed) {
|
|
Everest::error::Error error_object = this->error_factory->create_error(
|
|
"ac_rcd/Selftest", "", "RCD self-test failed", Everest::error::Severity::High);
|
|
this->raise_error(error_object);
|
|
} else if (not error_flags.rcd_selftest_failed and last_error_flags.rcd_selftest_failed) {
|
|
this->clear_error("ac_rcd/Selftest");
|
|
}
|
|
|
|
last_error_flags = error_flags;
|
|
});
|
|
}
|
|
|
|
void ac_rcdImpl::ready() {
|
|
}
|
|
|
|
void ac_rcdImpl::handle_self_test() {
|
|
mod->serial.set_rcd_test(true);
|
|
}
|
|
|
|
bool ac_rcdImpl::handle_reset() {
|
|
mod->serial.reset_rcd(true);
|
|
return true;
|
|
}
|
|
|
|
} // namespace rcd
|
|
} // namespace module
|