Rewrite state manager, clean up states, fixup typos - todo test state display

This commit is contained in:
Lorow
2025-04-21 23:50:41 +02:00
parent f1cf3baf46
commit 4095f00bb0
14 changed files with 273 additions and 154 deletions

View File

@@ -2,8 +2,8 @@
const char *CAMERA_MANAGER_TAG = "[CAMERA_MANAGER]";
CameraManager::CameraManager(std::shared_ptr<ProjectConfig> projectConfig)
: projectConfig(projectConfig) {}
CameraManager::CameraManager(std::shared_ptr<ProjectConfig> projectConfig, QueueHandle_t eventQueue)
: projectConfig(projectConfig), eventQueue(eventQueue) {}
void CameraManager::setupCameraPinout()
{
@@ -184,7 +184,8 @@ bool CameraManager::setupCamera()
ESP_LOGI(CAMERA_MANAGER_TAG, "Camera initialized: %s \r\n",
esp_err_to_name(hasCameraBeenInitialized));
cameraStateManager.setState(CameraState_e::Camera_Success);
SystemEvent event = {EventSource::CAMERA, CameraState_e::Camera_Success};
xQueueSend(this->eventQueue, &event, 10);
}
else
{
@@ -194,8 +195,8 @@ bool CameraManager::setupCamera()
"Please "
"fix the "
"camera and reboot the device.\r\n");
ledStateManager.setState(LEDStates_e::_Camera_Error);
cameraStateManager.setState(CameraState_e::Camera_Error);
SystemEvent event = {EventSource::CAMERA, CameraState_e::Camera_Error};
xQueueSend(this->eventQueue, &event, 10);
return false;
}

View File

@@ -8,6 +8,9 @@
#include "esp_psram.h"
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/queue.h"
#include <StateManager.hpp>
#include <ProjectConfig.hpp>
@@ -22,10 +25,11 @@ class CameraManager
private:
sensor_t *camera_sensor;
std::shared_ptr<ProjectConfig> projectConfig;
QueueHandle_t eventQueue;
camera_config_t config;
public:
CameraManager(std::shared_ptr<ProjectConfig> projectConfigl);
CameraManager(std::shared_ptr<ProjectConfig> projectConfig, QueueHandle_t eventQueue);
int setCameraResolution(framesize_t frameSize);
bool setupCamera(); // todo, once we have observers, make it private