diff --git a/src/Daemon.cpp b/src/Daemon.cpp index 7b0ec9b..00dcb0d 100644 --- a/src/Daemon.cpp +++ b/src/Daemon.cpp @@ -6,14 +6,14 @@ // Arilia Wireless Inc. // +#include +#include + #include "Daemon.h" #include "SimStats.h" #include "SimulationCoordinator.h" #include "StorageService.h" - -#include "Poco/Net/SSLManager.h" #include "UI_Owls_WebSocketNotifications.h" -#include "framework/UI_WebSocketClientServer.h" namespace OpenWifi { class Daemon *Daemon::instance_ = nullptr; diff --git a/src/Daemon.h b/src/Daemon.h index 5a49789..145e138 100644 --- a/src/Daemon.h +++ b/src/Daemon.h @@ -8,9 +8,10 @@ #pragma once +#include +#include + #include "Dashboard.h" -#include "framework/MicroService.h" -#include "framework/MicroServiceNames.h" namespace OpenWifi { diff --git a/src/Dashboard.cpp b/src/Dashboard.cpp index 579ad99..ef03980 100644 --- a/src/Dashboard.cpp +++ b/src/Dashboard.cpp @@ -2,8 +2,8 @@ // Created by stephane bourque on 2021-07-21. // -#include "Dashboard.h" -#include "framework/utils.h" +#include +#include namespace OpenWifi { void OWLSDashboard::Create() { diff --git a/src/Dashboard.h b/src/Dashboard.h index d0b283c..5359eb4 100644 --- a/src/Dashboard.h +++ b/src/Dashboard.h @@ -2,11 +2,10 @@ // Created by stephane bourque on 2021-07-21. // -#ifndef UCENTRALGW_DASHBOARD_H -#define UCENTRALGW_DASHBOARD_H +#pragma once -#include "RESTObjects/RESTAPI_OWLSobjects.h" -#include "framework/OpenWifiTypes.h" +#include +#include namespace OpenWifi { class OWLSDashboard { @@ -21,4 +20,3 @@ namespace OpenWifi { }; } // namespace OpenWifi -#endif // UCENTRALGW_DASHBOARD_H diff --git a/src/MockElements.h b/src/MockElements.h index 2096126..b1c927d 100644 --- a/src/MockElements.h +++ b/src/MockElements.h @@ -5,6 +5,7 @@ #pragma once #include + #include "OWLS_utils.h" namespace OpenWifi { diff --git a/src/OWLS_Connect.cpp b/src/OWLS_Connect.cpp index 5e2b647..12af69f 100644 --- a/src/OWLS_Connect.cpp +++ b/src/OWLS_Connect.cpp @@ -2,16 +2,17 @@ // Created by stephane bourque on 2023-04-12. // +#include +#include + #include "OWLSclient.h" #include "SimulationRunner.h" #include "SimulationCoordinator.h" -#include #include "SimStats.h" -#include #include "OWLSclientEvents.h" namespace OpenWifi::OWLSClientEvents { - +/* void Connect(const std::shared_ptr &Client, SimulationRunner *Runner) { if(!Runner->Running()) { @@ -58,5 +59,5 @@ namespace OpenWifi::OWLSClientEvents { OWLSClientEvents::Disconnect(ClientGuard,Client, Runner, "Error occurred during connection", true); } } - +*/ } \ No newline at end of file diff --git a/src/OWLS_CrashLog.cpp b/src/OWLS_CrashLog.cpp index 265848a..a8d4687 100644 --- a/src/OWLS_CrashLog.cpp +++ b/src/OWLS_CrashLog.cpp @@ -1,13 +1,11 @@ // // Created by stephane bourque on 2023-04-12. // -#include "OWLSclient.h" -#include "SimulationRunner.h" -#include "SimulationCoordinator.h" -#include -#include "SimStats.h" #include +#include "OWLSclient.h" +#include "SimulationRunner.h" +#include "SimStats.h" #include "OWLSclientEvents.h" namespace OpenWifi::OWLSClientEvents { diff --git a/src/OWLS_Disconnect.cpp b/src/OWLS_Disconnect.cpp index 725e6b1..06092b4 100644 --- a/src/OWLS_Disconnect.cpp +++ b/src/OWLS_Disconnect.cpp @@ -1,19 +1,20 @@ // // Created by stephane bourque on 2023-04-12. // -#include "OWLSclient.h" -#include "SimulationRunner.h" -#include "SimulationCoordinator.h" + #include -#include "SimStats.h" #include +#include "OWLSclient.h" +#include "SimulationRunner.h" +#include "SimStats.h" #include "OWLSclientEvents.h" #include "OWLS_utils.h" namespace OpenWifi::OWLSClientEvents { - void Disconnect(std::lock_guard &ClientGuard, const std::shared_ptr &Client, SimulationRunner *Runner, const std::string &Reason, bool Reconnect) { + void Disconnect(std::lock_guard &ClientGuard, const std::shared_ptr &Client, SimulationRunner *Runner, + const std::string &Reason, bool Reconnect) { if(Client->Valid_) { Client->Disconnect(ClientGuard); diff --git a/src/OWLS_EstablishConnection.cpp b/src/OWLS_EstablishConnection.cpp index 950514c..3d3aeec 100644 --- a/src/OWLS_EstablishConnection.cpp +++ b/src/OWLS_EstablishConnection.cpp @@ -2,14 +2,13 @@ // Created by stephane bourque on 2023-04-12. // +#include +#include + #include "OWLSclient.h" #include "SimulationRunner.h" #include "SimulationCoordinator.h" -#include #include "SimStats.h" - -#include - #include "OWLSclientEvents.h" namespace OpenWifi::OWLSClientEvents { @@ -88,8 +87,9 @@ namespace OpenWifi::OWLSClientEvents { Client->Reactor_.addEventHandler( *Client->WS_, Poco::NObserver( *Runner, &SimulationRunner::OnSocketShutdown)); - Runner->Scheduler().in(std::chrono::seconds(1), Connect, Client, Runner); - SimStats()->Connect(Runner->Id()); + // Runner->Scheduler().in(std::chrono::seconds(1), Connect, Client, Runner); + Connect(ClientGuard, Client, Runner); +// SimStats()->Connect(Runner->Id()); Client->Logger_.information(fmt::format("connecting({}): connected.", Client->SerialNumber_)); } catch (const Poco::Exception &E) { Client->Logger_.warning( @@ -104,4 +104,54 @@ namespace OpenWifi::OWLSClientEvents { Runner->Scheduler().in(std::chrono::seconds(60), Reconnect, Client, Runner); } } -} \ No newline at end of file + + void Connect(std::lock_guard & ClientGuard, const std::shared_ptr &Client, SimulationRunner *Runner) { + + if(!Runner->Running()) { + return; + } + +// std::lock_guard ClientGuard(Client->Mutex_); + if(Client->Valid_) { + try { + Runner->Report().ev_connect++; + + Poco::JSON::Object ConnectMessage, Params, TmpCapabilities, Capabilities, MacAddr; + auto LabelMac = Utils::SerialNumberToInt(Client->SerialNumber_); + Params.set("serial", Client->SerialNumber_); + Params.set("uuid", Client->UUID_); + Params.set("firmware", Client->Firmware_); + MacAddr.set("wan", Client->SerialNumber_); + MacAddr.set("lan", Utils::SerialToMAC(Utils::IntToSerialNumber(LabelMac + 1))); + TmpCapabilities = *SimulationCoordinator()->GetSimCapabilitiesPtr(); + TmpCapabilities.set("label_macaddr", Client->SerialNumber_); + TmpCapabilities.set("macaddr", MacAddr); + Params.set("capabilities", TmpCapabilities); + + OWLSutils::MakeHeader(ConnectMessage,"connect",Params); + + if (Client->SendObject(ConnectMessage)) { + Client->Reset(); + Runner->Scheduler().in(std::chrono::seconds(Client->StatisticsInterval_), + OWLSClientEvents::State, Client, Runner); + Runner->Scheduler().in(std::chrono::seconds(Client->HealthInterval_), + OWLSClientEvents::HealthCheck, Client, Runner); + Runner->Scheduler().in(std::chrono::seconds(MicroServiceRandom(120, 200)), + OWLSClientEvents::Log, Client, Runner, 1, "Device started"); + Runner->Scheduler().in(std::chrono::seconds(60 * 4), + OWLSClientEvents::WSPing, Client, Runner); + Runner->Scheduler().in(std::chrono::seconds(30), + OWLSClientEvents::Update, Client, Runner); + Client->Logger_.information(fmt::format("connect({}): completed.", Client->SerialNumber_)); + SimStats()->Connect(Runner->Id()); + return; + } + } catch (const Poco::Exception &E) { + Client->Logger().log(E); + } + OWLSClientEvents::Disconnect(ClientGuard,Client, Runner, "Error occurred during connection", true); + } + } + + +} diff --git a/src/OWLS_HealthCheck.cpp b/src/OWLS_HealthCheck.cpp index 4edf22b..547f023 100644 --- a/src/OWLS_HealthCheck.cpp +++ b/src/OWLS_HealthCheck.cpp @@ -1,13 +1,11 @@ // // Created by stephane bourque on 2023-04-12. // -#include "OWLSclient.h" -#include "SimulationRunner.h" -#include "SimulationCoordinator.h" -#include -#include "SimStats.h" #include +#include "OWLSclient.h" +#include "SimulationRunner.h" +#include "SimStats.h" #include "OWLSclientEvents.h" namespace OpenWifi::OWLSClientEvents { diff --git a/src/OWLS_KeepAlive.cpp b/src/OWLS_KeepAlive.cpp index ad39cb5..dcae8d0 100644 --- a/src/OWLS_KeepAlive.cpp +++ b/src/OWLS_KeepAlive.cpp @@ -1,13 +1,11 @@ // // Created by stephane bourque on 2023-04-12. // -#include "OWLSclient.h" -#include "SimulationRunner.h" -#include "SimulationCoordinator.h" -#include -#include "SimStats.h" #include +#include "OWLSclient.h" +#include "SimulationRunner.h" +#include "SimStats.h" #include "OWLSclientEvents.h" namespace OpenWifi::OWLSClientEvents { diff --git a/src/OWLS_Log.cpp b/src/OWLS_Log.cpp index 59eccd5..7d5b021 100644 --- a/src/OWLS_Log.cpp +++ b/src/OWLS_Log.cpp @@ -1,13 +1,11 @@ // // Created by stephane bourque on 2023-04-12. // -#include "OWLSclient.h" -#include "SimulationRunner.h" -#include "SimulationCoordinator.h" -#include -#include "SimStats.h" #include +#include "OWLSclient.h" +#include "SimulationRunner.h" +#include "SimStats.h" #include "OWLSclientEvents.h" namespace OpenWifi::OWLSClientEvents { diff --git a/src/OWLS_PendingConfig.cpp b/src/OWLS_PendingConfig.cpp index ecaa844..3e70921 100644 --- a/src/OWLS_PendingConfig.cpp +++ b/src/OWLS_PendingConfig.cpp @@ -1,13 +1,12 @@ // // Created by stephane bourque on 2023-04-12. // -#include "OWLSclient.h" -#include "SimulationRunner.h" -#include "SimulationCoordinator.h" -#include -#include "SimStats.h" + #include +#include "OWLSclient.h" +#include "SimulationRunner.h" +#include "SimStats.h" #include "OWLSclientEvents.h" namespace OpenWifi::OWLSClientEvents { diff --git a/src/OWLS_Reconnect.cpp b/src/OWLS_Reconnect.cpp index cb91320..2ccf5ee 100644 --- a/src/OWLS_Reconnect.cpp +++ b/src/OWLS_Reconnect.cpp @@ -2,13 +2,11 @@ // Created by stephane bourque on 2023-04-12. // -#include "OWLSclient.h" -#include "SimulationRunner.h" -#include "SimulationCoordinator.h" -#include -#include "SimStats.h" #include +#include "OWLSclient.h" +#include "SimulationRunner.h" +#include "SimStats.h" #include "OWLSclientEvents.h" #include "OWLS_utils.h" diff --git a/src/OWLS_State.cpp b/src/OWLS_State.cpp index 4f8e57a..9e3224a 100644 --- a/src/OWLS_State.cpp +++ b/src/OWLS_State.cpp @@ -2,12 +2,12 @@ // Created by stephane bourque on 2023-04-12. // +#include +#include + #include "OWLSclient.h" #include "SimulationRunner.h" -#include "SimulationCoordinator.h" -#include #include "SimStats.h" -#include #include "OWLSdefinitions.h" #include "OWLSclientEvents.h" diff --git a/src/OWLS_Update.cpp b/src/OWLS_Update.cpp index a9029fc..7110b86 100644 --- a/src/OWLS_Update.cpp +++ b/src/OWLS_Update.cpp @@ -1,10 +1,11 @@ // // Created by stephane bourque on 2023-04-12. // +#include + #include "OWLSclient.h" #include "SimulationRunner.h" #include "SimStats.h" -#include #include "OWLSclientEvents.h" namespace OpenWifi::OWLSClientEvents { diff --git a/src/OWLS_WSPing.cpp b/src/OWLS_WSPing.cpp index 7453990..854785a 100644 --- a/src/OWLS_WSPing.cpp +++ b/src/OWLS_WSPing.cpp @@ -1,13 +1,11 @@ // // Created by stephane bourque on 2023-04-12. // -#include "OWLSclient.h" -#include "SimulationRunner.h" -#include "SimulationCoordinator.h" -#include -#include "SimStats.h" #include +#include "OWLSclient.h" +#include "SimulationRunner.h" +#include "SimStats.h" #include "OWLSclientEvents.h" namespace OpenWifi::OWLSClientEvents { diff --git a/src/OWLS_utils.h b/src/OWLS_utils.h index e6436b2..f66f4d7 100644 --- a/src/OWLS_utils.h +++ b/src/OWLS_utils.h @@ -5,6 +5,7 @@ #pragma once #include + #include #include diff --git a/src/OWLSclient.cpp b/src/OWLSclient.cpp index 402800a..048af20 100644 --- a/src/OWLSclient.cpp +++ b/src/OWLSclient.cpp @@ -7,19 +7,19 @@ #include #include -#include "OWLS_utils.h" +#include +#include +#include +#include -#include "Poco/NObserver.h" -#include "Poco/Net/HTTPRequest.h" -#include "Poco/URI.h" -#include "OWLSclient.h" -#include "OWLSdefinitions.h" #include "framework/MicroServiceFuncs.h" +#include "OWLS_utils.h" +#include "OWLSclient.h" +#include "OWLSdefinitions.h" #include "SimStats.h" #include "SimulationCoordinator.h" -#include "fmt/format.h" using namespace std::chrono_literals; diff --git a/src/OWLSclient.h b/src/OWLSclient.h index 2228273..2c2bf84 100644 --- a/src/OWLSclient.h +++ b/src/OWLSclient.h @@ -9,20 +9,21 @@ #include #include -#include "Poco/AutoPtr.h" -#include "Poco/JSON/Object.h" -#include "Poco/Logger.h" -#include "Poco/Net/SocketNotification.h" -#include "Poco/Net/SocketReactor.h" -#include "Poco/Net/WebSocket.h" -#include "Poco/Thread.h" +#include + +#include +#include +#include +#include +#include +#include +#include #include "framework/utils.h" -#include "OWLSdefinitions.h" +#include "OWLSdefinitions.h" #include "MockElements.h" #include "OWLSclientEvents.h" -#include namespace OpenWifi { @@ -96,7 +97,8 @@ namespace OpenWifi { friend void OWLSClientEvents::EstablishConnection(const std::shared_ptr &Client, SimulationRunner *Runner); friend void OWLSClientEvents::Reconnect(const std::shared_ptr &Client, SimulationRunner *Runner); - friend void OWLSClientEvents::Connect(const std::shared_ptr &Client, SimulationRunner *Runner); + // friend void OWLSClientEvents::Connect(const std::shared_ptr &Client, SimulationRunner *Runner); + friend void OWLSClientEvents::Connect(std::lock_guard & ClientGuard, const std::shared_ptr &Client, SimulationRunner *Runner); friend void OWLSClientEvents::Log(const std::shared_ptr &Client, SimulationRunner *Runner, std::uint64_t Severity, const std::string & LogLine); friend void OWLSClientEvents::State(const std::shared_ptr &Client, SimulationRunner *Runner); friend void OWLSClientEvents::HealthCheck(const std::shared_ptr &Client, SimulationRunner *Runner); diff --git a/src/OWLSclientEvents.h b/src/OWLSclientEvents.h index 62ec530..b2850f2 100644 --- a/src/OWLSclientEvents.h +++ b/src/OWLSclientEvents.h @@ -14,7 +14,7 @@ namespace OpenWifi { namespace OpenWifi::OWLSClientEvents { void EstablishConnection(const std::shared_ptr &Client, SimulationRunner *Runner); void Reconnect(const std::shared_ptr &Client, SimulationRunner *Runner); - void Connect(const std::shared_ptr &Client, SimulationRunner *Runner); + void Connect(std::lock_guard & ClientGuard, const std::shared_ptr &Client, SimulationRunner *Runner); void State(const std::shared_ptr &Client, SimulationRunner *Runner); void HealthCheck(const std::shared_ptr &Client, SimulationRunner *Runner); void Log(const std::shared_ptr &Client, SimulationRunner *Runner, std::uint64_t Severity, const std::string & LogLine); diff --git a/src/SimStats.h b/src/SimStats.h index 1f37169..2f59090 100644 --- a/src/SimStats.h +++ b/src/SimStats.h @@ -4,9 +4,8 @@ #pragma once -#include "framework/SubSystemServer.h" -#include "framework/utils.h" - +#include +#include #include #include diff --git a/src/SimulationCoordinator.cpp b/src/SimulationCoordinator.cpp index a6b8036..2f831d2 100644 --- a/src/SimulationCoordinator.cpp +++ b/src/SimulationCoordinator.cpp @@ -2,15 +2,16 @@ // Created by stephane bourque on 2021-11-03. // +#include +#include + +#include +#include + #include "SimulationCoordinator.h" #include "SimStats.h" #include "StorageService.h" -#include "fmt/format.h" -#include "framework/MicroServiceFuncs.h" -#include "framework/utils.h" - -#include namespace OpenWifi { diff --git a/src/SimulationCoordinator.h b/src/SimulationCoordinator.h index fddebfa..b5b332f 100644 --- a/src/SimulationCoordinator.h +++ b/src/SimulationCoordinator.h @@ -7,11 +7,12 @@ #include #include -#include "RESTObjects/RESTAPI_OWLSobjects.h" -#include "SimulationRunner.h" -#include "framework/SubSystemServer.h" +#include +#include #include +#include "SimulationRunner.h" + namespace OpenWifi { struct SimulationRecord { diff --git a/src/SimulationRunner.cpp b/src/SimulationRunner.cpp index 288df69..518309f 100644 --- a/src/SimulationRunner.cpp +++ b/src/SimulationRunner.cpp @@ -5,17 +5,18 @@ #include #include - -#include "SimStats.h" -#include "SimulationRunner.h" -#include "fmt/format.h" -#include "UI_Owls_WebSocketNotifications.h" +#include #include #include #include #include +#include "SimStats.h" +#include "SimulationRunner.h" +#include "UI_Owls_WebSocketNotifications.h" + + namespace OpenWifi { void SimulationRunner::Start() { std::random_device rd; diff --git a/src/SimulationRunner.h b/src/SimulationRunner.h index 6bc4f1c..0c9b409 100644 --- a/src/SimulationRunner.h +++ b/src/SimulationRunner.h @@ -10,13 +10,13 @@ #include #include -#include "OWLSclient.h" #include - -#include "CensusReport.h" #include #include +#include "OWLSclient.h" +#include "CensusReport.h" + namespace OpenWifi { class SimulationRunner { @@ -49,7 +49,6 @@ namespace OpenWifi { } void ProcessCommand(std::lock_guard &G, const std::shared_ptr &Client, Poco::JSON::Object::Ptr Vars); - // Poco::Net::SocketReactor & Reactor() { return Reactor_; } inline auto & Scheduler() { return Scheduler_; } inline bool Running() { return Running_; } diff --git a/src/StorageService.h b/src/StorageService.h index 39406bf..52268be 100644 --- a/src/StorageService.h +++ b/src/StorageService.h @@ -8,9 +8,9 @@ #pragma once -#include "framework/StorageClass.h" -#include "storage/storage_results.h" -#include "storage/storage_simulations.h" +#include +#include +#include namespace OpenWifi { diff --git a/src/UI_Owls_WebSocketNotifications.cpp b/src/UI_Owls_WebSocketNotifications.cpp index 0e7a04c..e23779f 100644 --- a/src/UI_Owls_WebSocketNotifications.cpp +++ b/src/UI_Owls_WebSocketNotifications.cpp @@ -2,8 +2,9 @@ // Created by stephane bourque on 2022-10-30. // -#include "UI_Owls_WebSocketNotifications.h" -#include "framework/UI_WebSocketClientServer.h" +#include + +#include namespace OpenWifi::OWLSNotifications { diff --git a/src/UI_Owls_WebSocketNotifications.h b/src/UI_Owls_WebSocketNotifications.h index 2dcd98a..aa6f304 100644 --- a/src/UI_Owls_WebSocketNotifications.h +++ b/src/UI_Owls_WebSocketNotifications.h @@ -4,8 +4,8 @@ #pragma once -#include "RESTObjects/RESTAPI_OWLSobjects.h" -#include "framework/UI_WebSocketClientNotifications.h" +#include +#include namespace OpenWifi::OWLSNotifications {