Config manager fixes

This commit is contained in:
2025-09-30 15:30:10 -04:00
parent 792f4a530a
commit 1ca488b7b9
17 changed files with 328 additions and 205 deletions

View File

@@ -17,7 +17,7 @@
#define METADATA_PERIOD_MS 1000
[[noreturn]] void LoopManager::control_loop() const {
const auto actuator = ActuatorFactory::create_actuator(ConfigManager::get_module_type());
const auto actuator = ActuatorFactory::create_actuator(m_config_manager.get_module_type());
uint8_t buffer[512];
while (true) {
@@ -38,7 +38,7 @@
casted_orientations.emplace_back(orientation);
}
const auto [data, size] = topology_message_builder->build_topology_message(ConfigManager::get_module_id(), ConfigManager::get_module_type(), module_ids, casted_orientations);
const auto [data, size] = topology_message_builder->build_topology_message(that->m_config_manager.get_module_id(), that->m_config_manager.get_module_type(), module_ids, casted_orientations);
that->m_messaging_interface->send(static_cast<char *>(data), size, PC_ADDR, TOPOLOGY_CMD_TAG, true);
vTaskDelay(METADATA_PERIOD_MS / portTICK_PERIOD_MS);
}

View File

@@ -14,11 +14,14 @@
class LoopManager {
public:
LoopManager() : m_messaging_interface(std::make_unique<MessagingInterface>(std::make_unique<WifiManager>())) {}
LoopManager() : m_config_manager(ConfigManager::get_instance()),
m_messaging_interface(std::make_unique<MessagingInterface>(std::make_unique<WifiManager>())) {}
[[noreturn]] void control_loop() const;
[[noreturn]] static void metadata_tx_loop(char * args);
[[noreturn]] static void metadata_rx_loop(char * args);
private:
ConfigManager& m_config_manager;
std::unique_ptr<MessagingInterface> m_messaging_interface;
private:

View File

@@ -1,25 +1,25 @@
#include <cstdio>
#include <memory>
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "sdkconfig.h"
#include "WifiManager.h"
#include "mDNSDiscoveryService.h"
#include "TCPServer.h"
#include "ConfigManager.h"
#include "LoopManager.h"
#include "TCPServer.h"
#include "WifiManager.h"
#include "esp_log.h"
#include "mDNSDiscoveryService.h"
extern "C" [[noreturn]] void app_main(void) {
ESP_LOGI("MEM", "Free internal RAM: %d", heap_caps_get_free_size(MALLOC_CAP_8BIT));
ESP_LOGI("MEM", "Free internal RAM: %d",
heap_caps_get_free_size(MALLOC_CAP_8BIT));
ESP_LOGI("MEM", "Free PSRAM: %d", heap_caps_get_free_size(MALLOC_CAP_SPIRAM));
ConfigManager::init_config();
auto& config_manager = ConfigManager::get_instance(); // NOLINT - here for easily adding temporary config
const auto loop_manager = std::make_unique<LoopManager>();
xTaskCreate(reinterpret_cast<TaskFunction_t>(LoopManager::metadata_tx_loop), "metadata_tx", 3096, loop_manager.get(), 3, nullptr);
xTaskCreate(reinterpret_cast<TaskFunction_t>(LoopManager::metadata_tx_loop),
"metadata_tx", 3096, loop_manager.get(), 3, nullptr);
loop_manager->control_loop();
}