new buzzer component

This commit is contained in:
2025-07-22 00:09:58 +01:00
parent 84f106eee5
commit bd587a10c0
58 changed files with 3215 additions and 6961 deletions

View File

@@ -2,66 +2,116 @@
#define METER_MANAGER_H
#include "esp_err.h"
#include <stdbool.h> // Para garantir que 'bool' seja reconhecido
#include <stdbool.h>
// Definindo tipos de medidores possíveis para EVSE e Grid
/**
* @brief Supported meter types for EVSE and Grid.
*/
typedef enum {
METER_TYPE_NONE, // Nenhum Medidor
METER_TYPE_ADE7758, // ADE7758
METER_TYPE_ORNO513, // ORNO 513
METER_TYPE_ORNO516, // ORNO 516
METER_TYPE_MONO_ZIGBEE, // Medidor Zigbee (Mono)
METER_TYPE_TRIF_ZIGBEE // Medidor Zigbee (Trifásico)
METER_TYPE_NONE, // No meter
METER_TYPE_ADE7758, // ADE7758 meter
METER_TYPE_ORNO513, // ORNO-513
METER_TYPE_ORNO516, // ORNO-516
METER_TYPE_MONO_ZIGBEE, // Zigbee single-phase
METER_TYPE_TRIF_ZIGBEE // Zigbee three-phase
} meter_type_t;
/**
* @brief Funções para gerenciar o medidor EVSE (ex: ADE7758).
* @brief Initializes the meter manager system.
*
* Registers network event handlers and initializes both EVSE and GRID meters.
*/
// Inicializa o medidor EVSE com o tipo especificado (ex: ADE7758)
esp_err_t meter_manager_evse_init(void);
// Inicia o medidor EVSE com o tipo especificado
esp_err_t meter_manager_evse_start(void);
// Para o medidor EVSE
esp_err_t meter_manager_evse_stop(void);
// Verifica se o medidor EVSE está habilitado
bool meter_manager_evse_is_enabled(void);
// Define o modelo do medidor EVSE (ADE7758, etc)
esp_err_t meter_manager_evse_set_model(meter_type_t meter_type);
// Retorna o modelo do medidor EVSE (ADE7758, etc)
meter_type_t meter_manager_evse_get_model(void);
esp_err_t meter_manager_init(void);
/**
* @brief Funções para gerenciar o medidor Grid (ORNO 513, ORNO 516, Zigbee).
* @brief Starts all configured meters (EVSE and GRID).
*
* @return esp_err_t ESP_OK on success, or an error code from one of the start calls.
*/
esp_err_t meter_manager_start(void);
/**
* @brief Stops all meters and unregisters network event handlers.
*/
esp_err_t meter_manager_stop(void);
/**
* @brief EVSE Meter Management
*/
// Inicializa o medidor Grid com o tipo especificado (ORNO 513, ORNO 516, Zigbee)
/**
* @brief Initializes the EVSE meter based on configured type.
*/
esp_err_t meter_manager_evse_init(void);
/**
* @brief Starts the EVSE meter.
*/
esp_err_t meter_manager_evse_start(void);
/**
* @brief Stops the EVSE meter.
*/
esp_err_t meter_manager_evse_stop(void);
/**
* @brief Returns true if an EVSE meter is configured (not NONE).
*/
bool meter_manager_evse_is_enabled(void);
/**
* @brief Sets the EVSE meter type and saves it to NVS.
*/
esp_err_t meter_manager_evse_set_model(meter_type_t meter_type);
/**
* @brief Gets the current EVSE meter type.
*/
meter_type_t meter_manager_evse_get_model(void);
/**
* @brief Grid Meter Management
*/
/**
* @brief Initializes the Grid meter based on configured type.
*/
esp_err_t meter_manager_grid_init(void);
// Inicia o medidor Grid com o tipo especificado
/**
* @brief Starts the Grid meter.
*/
esp_err_t meter_manager_grid_start(void);
// Para o medidor Grid
/**
* @brief Stops the Grid meter.
*/
esp_err_t meter_manager_grid_stop(void);
// Habilita ou desabilita o medidor Grid
void meter_manager_grid_set_enabled(bool value);
// Define o modelo do medidor Grid (ORNO 513, ORNO 516, Zigbee)
/**
* @brief Sets the Grid meter type and saves it to NVS.
*/
esp_err_t meter_manager_grid_set_model(meter_type_t meter_type);
// Retorna o modelo do medidor Grid (ORNO 513, ORNO 516, Zigbee)
/**
* @brief Gets the current Grid meter type.
*/
meter_type_t meter_manager_grid_get_model(void);
// Função auxiliar para converter o tipo de medidor em uma string
/**
* @brief Utility functions
*/
/**
* @brief Converts a meter_type_t to a human-readable string.
*/
const char* meter_type_to_str(meter_type_t type);
/**
* @brief Converts a string to a meter_type_t.
*/
meter_type_t string_to_meter_type(const char *str);
#endif // METER_MANAGER_H