Revert "Large Update"

This reverts commit 4812ba5f35.
This commit is contained in:
ZanzyTHEbar 2022-09-05 13:46:42 +01:00
parent 4812ba5f35
commit 27ece435cd
9 changed files with 73 additions and 84 deletions

View File

@ -6,27 +6,19 @@
#include <WiFi.h> #include <WiFi.h>
#include "data/StateManager/StateManager.hpp" #include "data/StateManager/StateManager.hpp"
#include "data/config/project_config.hpp" #include "data/config/project_config.hpp"
#include "network/api/webserverHandler.hpp"
#include "network/stream/streamServer.hpp"
#include "data/utilities/helpers.hpp" #include "data/utilities/helpers.hpp"
class WiFiHandler class WiFiHandler
{ {
public: public:
WiFiHandler(ProjectConfig *configManager, WiFiHandler(ProjectConfig *configManager, StateManager<WiFiState_e> *stateManager,
APIServer *apiServer,
StreamServer *streamServer,
StateManager<WiFiState_e> *stateManager,
const std::string &ssid, const std::string &ssid,
const std::string &password, const std::string &password,
uint8_t channel); uint8_t channel);
virtual ~WiFiHandler(); virtual ~WiFiHandler();
void begin();
void setupWifi(); void setupWifi();
ProjectConfig *configManager; ProjectConfig *configManager;
APIServer *apiServer;
StreamServer *streamServer;
StateManager<WiFiState_e> *stateManager; StateManager<WiFiState_e> *stateManager;
bool _enable_adhoc; bool _enable_adhoc;

View File

@ -2,14 +2,10 @@
#include <vector> #include <vector>
WiFiHandler::WiFiHandler(ProjectConfig *configManager, WiFiHandler::WiFiHandler(ProjectConfig *configManager,
APIServer *apiServer,
StreamServer *streamServer,
StateManager<WiFiState_e> *stateManager, StateManager<WiFiState_e> *stateManager,
const std::string &ssid, const std::string &ssid,
const std::string &password, const std::string &password,
uint8_t channel) : configManager(configManager), uint8_t channel) : configManager(configManager),
apiServer(apiServer),
streamServer(streamServer),
stateManager(stateManager), stateManager(stateManager),
ssid(ssid), ssid(ssid),
password(password), password(password),
@ -18,49 +14,6 @@ WiFiHandler::WiFiHandler(ProjectConfig *configManager,
WiFiHandler::~WiFiHandler() {} WiFiHandler::~WiFiHandler() {}
void WiFiHandler::begin()
{
this->setupWifi();
switch (this->stateManager->getCurrentState())
{
case WiFiState_e::WiFiState_Disconnected:
{
//! TODO: Implement
break;
}
case WiFiState_e::WiFiState_Disconnecting:
{
//! TODO: Implement
break;
}
case WiFiState_e::WiFiState_ADHOC:
{
streamServer->startStreamServer();
apiServer->begin();
log_d("[SETUP]: Starting Stream Server");
break;
}
case WiFiState_e::WiFiState_Connected:
{
streamServer->startStreamServer();
apiServer->begin();
log_d("[SETUP]: Starting Stream Server");
break;
}
case WiFiState_e::WiFiState_Connecting:
{
//! TODO: Implement
break;
}
case WiFiState_e::WiFiState_Error:
{
//! TODO: Implement
break;
}
}
}
void WiFiHandler::setupWifi() void WiFiHandler::setupWifi()
{ {
if (this->_enable_adhoc || stateManager->getCurrentState() == WiFiState_e::WiFiState_ADHOC) if (this->_enable_adhoc || stateManager->getCurrentState() == WiFiState_e::WiFiState_ADHOC)

View File

@ -1,11 +1,11 @@
#include "baseAPI.hpp" #include "baseAPI.hpp"
BaseAPI::BaseAPI(int CONTROL_PORT, BaseAPI::BaseAPI(int CONTROL_PORT,
ProjectConfig *configManager, WiFiHandler *network,
CameraHandler *camera, CameraHandler *camera,
StateManager<WiFiState_e> *stateManager, StateManager<WiFiState_e> *stateManager,
const std::string &api_url) : configManager(configManager), const std::string &api_url) : API_Utilities(CONTROL_PORT,
API_Utilities(CONTROL_PORT, network,
camera, camera,
stateManager, stateManager,
api_url) {} api_url) {}
@ -74,11 +74,11 @@ void BaseAPI::setWiFi(AsyncWebServerRequest *request)
log_i("%s[%s]: %s\n", _networkMethodsMap[request->method()].c_str(), param->name().c_str(), param->value().c_str()); log_i("%s[%s]: %s\n", _networkMethodsMap[request->method()].c_str(), param->name().c_str(), param->value().c_str());
} }
configManager->setWifiConfig(ssid, ssid, password, &channel, adhoc, true); network->configManager->setWifiConfig(ssid, ssid, password, &channel, adhoc, true);
/* if (stateManager->getCurrentState() == WiFiState_e::WiFiState_ADHOC) /* if (network->stateManager->getCurrentState() == WiFiState_e::WiFiState_ADHOC)
{ {
configManager->setAPWifiConfig(ssid, password, &channel, adhoc, true); network->configManager->setAPWifiConfig(ssid, password, &channel, adhoc, true);
} }
else else
{ {
@ -86,7 +86,7 @@ void BaseAPI::setWiFi(AsyncWebServerRequest *request)
} */ } */
request->send(200, MIMETYPE_JSON, "{\"msg\":\"Done. Wifi Creds have been set.\"}"); request->send(200, MIMETYPE_JSON, "{\"msg\":\"Done. Wifi Creds have been set.\"}");
configManager->wifiConfigSave(); network->configManager->wifiConfigSave();
break; break;
} }
default: default:
@ -132,27 +132,27 @@ void BaseAPI::handleJson(AsyncWebServerRequest *request)
{ {
case DATA: case DATA:
{ {
configManager->getDeviceConfig()->data_json = true; network->configManager->getDeviceConfig()->data_json = true;
Network_Utilities::my_delay(1L); Network_Utilities::my_delay(1L);
std::string temp = configManager->getDeviceConfig()->data_json_string; std::string temp = network->configManager->getDeviceConfig()->data_json_string;
request->send(200, MIMETYPE_JSON, temp.c_str()); request->send(200, MIMETYPE_JSON, temp.c_str());
temp = std::string(); temp = std::string();
break; break;
} }
case SETTINGS: case SETTINGS:
{ {
configManager->getDeviceConfig()->config_json = true; network->configManager->getDeviceConfig()->config_json = true;
Network_Utilities::my_delay(1L); Network_Utilities::my_delay(1L);
std::string temp = configManager->getDeviceConfig()->config_json_string; std::string temp = network->configManager->getDeviceConfig()->config_json_string;
request->send(200, MIMETYPE_JSON, temp.c_str()); request->send(200, MIMETYPE_JSON, temp.c_str());
temp = std::string(); temp = std::string();
break; break;
} }
case CONFIG: case CONFIG:
{ {
configManager->getDeviceConfig()->settings_json = true; network->configManager->getDeviceConfig()->settings_json = true;
Network_Utilities::my_delay(1L); Network_Utilities::my_delay(1L);
std::string temp = configManager->getDeviceConfig()->settings_json_string; std::string temp = network->configManager->getDeviceConfig()->settings_json_string;
request->send(200, MIMETYPE_JSON, temp.c_str()); request->send(200, MIMETYPE_JSON, temp.c_str());
temp = std::string(); temp = std::string();
break; break;
@ -196,7 +196,7 @@ void BaseAPI::factoryReset(AsyncWebServerRequest *request)
case GET: case GET:
{ {
log_d("Factory Reset"); log_d("Factory Reset");
configManager->reset(); network->configManager->reset();
request->send(200, MIMETYPE_JSON, "{\"msg\":\"Factory Reset\"}"); request->send(200, MIMETYPE_JSON, "{\"msg\":\"Factory Reset\"}");
} }
default: default:
@ -294,8 +294,8 @@ void BaseAPI::setCamera(AsyncWebServerRequest *request)
camera->setHFlip(temp_camera_hflip); camera->setHFlip(temp_camera_hflip);
//! TODO: Need to add -> camera->setQuality(temp_camera_quality); //! TODO: Need to add -> camera->setQuality(temp_camera_quality);
configManager->setCameraConfig(&temp_camera_vflip, &temp_camera_framesize, &temp_camera_hflip, &temp_camera_quality, true); network->configManager->setCameraConfig(&temp_camera_vflip, &temp_camera_framesize, &temp_camera_hflip, &temp_camera_quality, true);
configManager->cameraConfigSave(); network->configManager->cameraConfigSave();
request->send(200, MIMETYPE_JSON, "{\"msg\":\"Done. Camera Settings have been set.\"}"); request->send(200, MIMETYPE_JSON, "{\"msg\":\"Done. Camera Settings have been set.\"}");
break; break;

View File

@ -7,7 +7,7 @@
class BaseAPI : public API_Utilities class BaseAPI : public API_Utilities
{ {
protected: protected:
ProjectConfig *configManager;
enum JSON_TYPES enum JSON_TYPES
{ {
CONFIG, CONFIG,
@ -53,7 +53,7 @@ protected:
public: public:
BaseAPI(int CONTROL_PORT, BaseAPI(int CONTROL_PORT,
ProjectConfig *configManager, WiFiHandler *network,
CameraHandler *camera, CameraHandler *camera,
StateManager<WiFiState_e> *stateManager, StateManager<WiFiState_e> *stateManager,
const std::string &api_url); const std::string &api_url);

View File

@ -15,10 +15,12 @@ const char *API_Utilities::MIMETYPE_JSON{"application/json"};
//********************************************************************************************* //*********************************************************************************************
API_Utilities::API_Utilities(int CONTROL_PORT, API_Utilities::API_Utilities(int CONTROL_PORT,
WiFiHandler *network,
CameraHandler *camera, CameraHandler *camera,
StateManager<WiFiState_e> *stateManager, StateManager<WiFiState_e> *stateManager,
const std::string &api_url) : server(new AsyncWebServer(CONTROL_PORT)), const std::string &api_url) : server(new AsyncWebServer(CONTROL_PORT)),
stateManager(stateManager), stateManager(stateManager),
network(network),
camera(camera), camera(camera),
api_url(api_url) {} api_url(api_url) {}

View File

@ -30,6 +30,7 @@ class API_Utilities
{ {
public: public:
API_Utilities(int CONTROL_PORT, API_Utilities(int CONTROL_PORT,
WiFiHandler *network,
CameraHandler *camera, CameraHandler *camera,
StateManager<WiFiState_e> *stateManager, StateManager<WiFiState_e> *stateManager,
const std::string &api_url); const std::string &api_url);
@ -68,6 +69,7 @@ protected:
protected: protected:
AsyncWebServer *server; AsyncWebServer *server;
WiFiHandler *network;
CameraHandler *camera; CameraHandler *camera;
StateManager<WiFiState_e> *stateManager; StateManager<WiFiState_e> *stateManager;
typedef std::unordered_map<std::string, WebRequestMethodComposite> networkMethodsMap_t; typedef std::unordered_map<std::string, WebRequestMethodComposite> networkMethodsMap_t;

View File

@ -5,11 +5,11 @@
//********************************************************************************************* //*********************************************************************************************
APIServer::APIServer(int CONTROL_PORT, APIServer::APIServer(int CONTROL_PORT,
ProjectConfig *configManager, WiFiHandler *network,
CameraHandler *camera, CameraHandler *camera,
StateManager<WiFiState_e> *stateManager, StateManager<WiFiState_e> *stateManager,
const std::string &api_url) : BaseAPI(CONTROL_PORT, const std::string &api_url) : BaseAPI(CONTROL_PORT,
configManager, network,
camera, camera,
stateManager, stateManager,
api_url) {} api_url) {}

View File

@ -8,7 +8,7 @@ class APIServer : public BaseAPI
{ {
public: public:
APIServer(int CONTROL_PORT, APIServer(int CONTROL_PORT,
ProjectConfig *configManager, WiFiHandler *network,
CameraHandler *camera, CameraHandler *camera,
StateManager<WiFiState_e> *stateManager, StateManager<WiFiState_e> *stateManager,
const std::string &api_url); const std::string &api_url);

View File

@ -12,17 +12,18 @@
#include <network/OTA/OTA.hpp> #include <network/OTA/OTA.hpp>
int STREAM_SERVER_PORT = 80;
int CONTROL_SERVER_PORT = 81;
ProjectConfig deviceConfig; ProjectConfig deviceConfig;
OTA ota(&deviceConfig); OTA ota(&deviceConfig);
LEDManager ledManager(33); LEDManager ledManager(33);
CameraHandler cameraHandler(&deviceConfig); CameraHandler cameraHandler(&deviceConfig);
// SerialManager serialManager(&deviceConfig); // SerialManager serialManager(&deviceConfig);
WiFiHandler wifiHandler(&deviceConfig, &wifiStateManager, WIFI_SSID, WIFI_PASSWORD, WIFI_CHANNEL);
APIServer apiServer(81, &deviceConfig, &cameraHandler, &wifiStateManager, "/control"); APIServer apiServer(CONTROL_SERVER_PORT, &wifiHandler, &cameraHandler, &wifiStateManager, "/control");
StreamServer streamServer(80);
WiFiHandler wifiHandler(&deviceConfig, &apiServer, &streamServer, &wifiStateManager, WIFI_SSID, WIFI_PASSWORD, WIFI_CHANNEL);
MDNSHandler mdnsHandler(&mdnsStateManager, &deviceConfig); MDNSHandler mdnsHandler(&mdnsStateManager, &deviceConfig);
StreamServer streamServer(STREAM_SERVER_PORT);
void setup() void setup()
{ {
@ -36,9 +37,48 @@ void setup()
deviceConfig.load(); deviceConfig.load();
cameraHandler.setupCamera(); cameraHandler.setupCamera();
wifiHandler._enable_adhoc = ENABLE_ADHOC; // force ADHOC mode at compile time. wifiHandler._enable_adhoc = ENABLE_ADHOC;
wifiHandler.begin(); // start wifi, apiserver, and streamserver
wifiHandler.setupWifi();
mdnsHandler.startMDNS(); mdnsHandler.startMDNS();
switch (wifiStateManager.getCurrentState())
{
case WiFiState_e::WiFiState_Disconnected:
{
//! TODO: Implement
break;
}
case WiFiState_e::WiFiState_Disconnecting:
{
//! TODO: Implement
break;
}
case WiFiState_e::WiFiState_ADHOC:
{
streamServer.startStreamServer();
apiServer.begin();
log_d("[SETUP]: Starting Stream Server");
break;
}
case WiFiState_e::WiFiState_Connected:
{
streamServer.startStreamServer();
apiServer.begin();
log_d("[SETUP]: Starting Stream Server");
break;
}
case WiFiState_e::WiFiState_Connecting:
{
//! TODO: Implement
break;
}
case WiFiState_e::WiFiState_Error:
{
//! TODO: Implement
break;
}
}
ota.SetupOTA(); ota.SetupOTA();
} }