Initial TCP server

This commit is contained in:
2025-06-05 01:44:58 -04:00
parent 6abf6be32d
commit e87abf9eef
18 changed files with 373 additions and 90 deletions

View File

@@ -0,0 +1,3 @@
idf_component_register(SRCS "ConfigManager.cpp"
PRIV_REQUIRES constants nvs_flash
INCLUDE_DIRS "include")

View File

@@ -0,0 +1,59 @@
//
// Created by Johnathon Slightham on 2025-06-12.
//
#include "nvs_flash.h"
#include "constants/config.h"
#include "ConfigManager.h"
void ConfigManager::init_config() {
nvs_flash_init();
nvs_handle config_handle;
nvs_open(NVS_FLASH_NAMESPACE, NVS_READWRITE, &config_handle);
uint16_t id;
if (ESP_ERR_NVS_NOT_FOUND == nvs_get_u16(config_handle, MODULE_ID_KEY, &id)) {
nvs_set_u16(config_handle, MODULE_ID_KEY, DEFAULT_MODULE_ID);
}
uint16_t type;
if (ESP_ERR_NVS_NOT_FOUND == nvs_get_u16(config_handle, MODULE_TYPE_KEY, &type)) {
nvs_set_u16(config_handle, MODULE_TYPE_KEY, DEFAULT_MODULE_TYPE);
}
nvs_close(config_handle);
}
uint16_t ConfigManager::get_module_id() {
nvs_handle config_handle;
nvs_open(NVS_FLASH_NAMESPACE, NVS_READONLY, &config_handle);
uint16_t id;
nvs_get_u16(config_handle, MODULE_ID_KEY, &id);
nvs_close(config_handle);
return id;
}
ModuleType ConfigManager::get_module_type() {
nvs_handle config_handle;
nvs_open(NVS_FLASH_NAMESPACE, NVS_READONLY, &config_handle);
uint16_t type;
nvs_get_u16(config_handle, MODULE_TYPE_KEY, &type);
nvs_close(config_handle);
return static_cast<ModuleType>(type);
}
void ConfigManager::set_module_id(const uint16_t id) {
nvs_handle config_handle;
nvs_open(NVS_FLASH_NAMESPACE, NVS_READWRITE, &config_handle);
nvs_set_u16(config_handle, MODULE_ID_KEY, id);
nvs_close(config_handle);
}
void ConfigManager::set_module_type(const ModuleType type) {
nvs_handle config_handle;
nvs_open(NVS_FLASH_NAMESPACE, NVS_READWRITE, &config_handle);
nvs_set_u16(config_handle, MODULE_TYPE_KEY, type);
nvs_close(config_handle);
}

View File

@@ -0,0 +1,21 @@
//
// Created by Johnathon Slightham on 2025-06-12.
//
#ifndef CONFIGMANAGER_H
#define CONFIGMANAGER_H
#include "constants/config.h"
class ConfigManager {
public:
static void init_config();
static uint16_t get_module_id();
static ModuleType get_module_type();
static void set_module_id(uint16_t id);
static void set_module_type(ModuleType type);
};
#endif //CONFIGMANAGER_H