mirror of
https://github.com/MrUnknownDE/OpenIris-ESPIDF.git
synced 2026-04-19 06:23:44 +02:00
Rewrite state manager, clean up states, fixup typos - todo test state display
This commit is contained in:
@@ -2,17 +2,22 @@
|
||||
|
||||
static const char *MDNS_MANAGER_TAG = "[MDNS MANAGER]";
|
||||
|
||||
MDNSManager::MDNSManager(std::shared_ptr<ProjectConfig> projectConfig) : projectConfig(projectConfig) {}
|
||||
MDNSManager::MDNSManager(std::shared_ptr<ProjectConfig> projectConfig, QueueHandle_t eventQueue) : projectConfig(projectConfig), eventQueue(eventQueue) {}
|
||||
|
||||
esp_err_t MDNSManager::start()
|
||||
{
|
||||
const std::string &mdnsName = "_openiristracker";
|
||||
|
||||
mdnsStateManager.setState(MDNSState_e::MDNSState_Starting);
|
||||
{
|
||||
SystemEvent event = {EventSource::MDNS, MDNSState_e::MDNSState_Starting};
|
||||
xQueueSend(this->eventQueue, &event, 10);
|
||||
}
|
||||
|
||||
esp_err_t result = mdns_init();
|
||||
if (result != ESP_OK)
|
||||
{
|
||||
mdnsStateManager.setState(MDNSState_e::MDNSState_Error);
|
||||
SystemEvent event = {EventSource::MDNS, MDNSState_e::MDNSState_Error};
|
||||
xQueueSend(this->eventQueue, &event, 10);
|
||||
ESP_LOGE(MDNS_MANAGER_TAG, "Failed to initialize mDNS server: %s", esp_err_to_name(result));
|
||||
return result;
|
||||
}
|
||||
@@ -21,7 +26,8 @@ esp_err_t MDNSManager::start()
|
||||
result = mdns_hostname_set(mdnsConfig.hostname.c_str());
|
||||
if (result != ESP_OK)
|
||||
{
|
||||
mdnsStateManager.setState(MDNSState_e::MDNSState_Error);
|
||||
SystemEvent event = {EventSource::MDNS, MDNSState_e::MDNSState_Error};
|
||||
xQueueSend(this->eventQueue, &event, 10);
|
||||
ESP_LOGE(MDNS_MANAGER_TAG, "Failed to set hostname: %s", esp_err_to_name(result));
|
||||
return result;
|
||||
}
|
||||
@@ -36,12 +42,15 @@ esp_err_t MDNSManager::start()
|
||||
result = mdns_service_instance_name_set(mdnsName.c_str(), "_tcp", mdnsName.c_str());
|
||||
if (result != ESP_OK)
|
||||
{
|
||||
mdnsStateManager.setState(MDNSState_e::MDNSState_Error);
|
||||
SystemEvent event = {EventSource::MDNS, MDNSState_e::MDNSState_Error};
|
||||
xQueueSend(this->eventQueue, &event, 10);
|
||||
|
||||
ESP_LOGE(MDNS_MANAGER_TAG, "Failed to set mDNS instance name: %s", esp_err_to_name(result));
|
||||
return result;
|
||||
}
|
||||
|
||||
mdnsStateManager.setState(MDNSState_e::MDNSState_Started);
|
||||
SystemEvent event = {EventSource::MDNS, MDNSState_e::MDNSState_Started};
|
||||
xQueueSend(this->eventQueue, &event, 10);
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -5,15 +5,18 @@
|
||||
#include <ProjectConfig.hpp>
|
||||
#include <StateManager.hpp>
|
||||
#include "esp_log.h"
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/queue.h"
|
||||
#include "mdns.h"
|
||||
|
||||
class MDNSManager
|
||||
{
|
||||
private:
|
||||
std::shared_ptr<ProjectConfig> projectConfig;
|
||||
QueueHandle_t eventQueue;
|
||||
|
||||
public:
|
||||
MDNSManager(std::shared_ptr<ProjectConfig> projectConfig);
|
||||
MDNSManager(std::shared_ptr<ProjectConfig> projectConfig, QueueHandle_t eventQueue);
|
||||
esp_err_t start();
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user