// matth-x/ArduinoOcpp // Copyright Matthias Akstaller 2019 - 2022 // MIT License #include #include #include #include using namespace ArduinoOcpp; OcppEngine *ArduinoOcpp::defaultOcppEngine = nullptr; OcppEngine::OcppEngine(OcppSocket& ocppSocket, const OcppClock& system_clock) : oSock(ocppSocket), oModel{std::make_shared(system_clock)}, oConn{oSock, oModel} { defaultOcppEngine = this; } OcppEngine::~OcppEngine() { defaultOcppEngine = nullptr; } void OcppEngine::loop() { oSock.loop(); oConn.loop(oSock); if (runOcppTasks) oModel->loop(); } void OcppEngine::initiateOperation(std::unique_ptr op) { if (op) { op->setOcppModel(oModel); oConn.initiateOcppOperation(std::move(op)); } } OcppModel& OcppEngine::getOcppModel() { return *oModel; }