basic functionality
This commit is contained in:
40
src/main.cpp
Normal file
40
src/main.cpp
Normal file
@@ -0,0 +1,40 @@
|
||||
#include <Arduino.h>
|
||||
#include "Globals.h"
|
||||
#include "ClusterContext.h"
|
||||
#include "NetworkManager.h"
|
||||
#include "ClusterManager.h"
|
||||
#include "RestApiServer.h"
|
||||
|
||||
ClusterContext ctx;
|
||||
NetworkManager network(ctx);
|
||||
ClusterManager cluster(ctx);
|
||||
RestApiServer apiServer(ctx);
|
||||
|
||||
Task tSendDiscovery(TaskIntervals::SEND_DISCOVERY, TASK_FOREVER, [](){ cluster.sendDiscovery(); });
|
||||
Task tListenForDiscovery(TaskIntervals::LISTEN_FOR_DISCOVERY, TASK_FOREVER, [](){ cluster.listenForDiscovery(); });
|
||||
Task tUpdateStatus(TaskIntervals::UPDATE_STATUS, TASK_FOREVER, [](){ cluster.updateAllNodeStatuses(); cluster.removeDeadNodes(); });
|
||||
Task tPrintMemberList(TaskIntervals::PRINT_MEMBER_LIST, TASK_FOREVER, [](){ cluster.printMemberList(); });
|
||||
Task tHeartbeat(TaskIntervals::HEARTBEAT, TASK_FOREVER, [](){ cluster.heartbeatTaskCallback(); });
|
||||
Task tUpdateAllMembersInfo(TaskIntervals::UPDATE_ALL_MEMBERS_INFO, TASK_FOREVER, [](){ cluster.updateAllMembersInfoTaskCallback(); });
|
||||
|
||||
void setup() {
|
||||
network.setupWiFi();
|
||||
ctx.scheduler->init();
|
||||
ctx.scheduler->addTask(tSendDiscovery);
|
||||
ctx.scheduler->addTask(tListenForDiscovery);
|
||||
ctx.scheduler->addTask(tUpdateStatus);
|
||||
ctx.scheduler->addTask(tPrintMemberList);
|
||||
ctx.scheduler->addTask(tHeartbeat);
|
||||
ctx.scheduler->addTask(tUpdateAllMembersInfo);
|
||||
tSendDiscovery.enable();
|
||||
tListenForDiscovery.enable();
|
||||
tUpdateStatus.enable();
|
||||
tPrintMemberList.enable();
|
||||
tHeartbeat.enable();
|
||||
tUpdateAllMembersInfo.enable();
|
||||
apiServer.begin();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
ctx.scheduler->execute();
|
||||
}
|
||||
Reference in New Issue
Block a user