forked from matth-x/MicroOcpp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOcppEngine.cpp
More file actions
42 lines (32 loc) · 996 Bytes
/
Copy pathOcppEngine.cpp
File metadata and controls
42 lines (32 loc) · 996 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// matth-x/ArduinoOcpp
// Copyright Matthias Akstaller 2019 - 2022
// MIT License
#include <ArduinoOcpp/Core/OcppEngine.h>
#include <ArduinoOcpp/Core/OcppOperation.h>
#include <ArduinoOcpp/Core/OcppSocket.h>
#include <ArduinoOcpp/Core/OcppModel.h>
#include <Variants.h>
using namespace ArduinoOcpp;
OcppEngine *ArduinoOcpp::defaultOcppEngine = nullptr;
OcppEngine::OcppEngine(OcppSocket& ocppSocket, const OcppClock& system_clock)
: oSock(ocppSocket), oModel{std::make_shared<OcppModel>(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<OcppOperation> op) {
if (op) {
op->setOcppModel(oModel);
oConn.initiateOcppOperation(std::move(op));
}
}
OcppModel& OcppEngine::getOcppModel() {
return *oModel;
}