new meter
This commit is contained in:
38
components/meter_manager/include/meter_events.h
Normal file
38
components/meter_manager/include/meter_events.h
Normal file
@@ -0,0 +1,38 @@
|
||||
#ifndef METER_EVENTS_H
|
||||
#define METER_EVENTS_H
|
||||
|
||||
#include "esp_event.h"
|
||||
#include "meter_manager.h" // Para meter_type_t
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// Base de eventos dos medidores
|
||||
ESP_EVENT_DECLARE_BASE(METER_EVENT);
|
||||
|
||||
// IDs de eventos emitidos por medidores
|
||||
typedef enum {
|
||||
METER_EVENT_DATA_READY = 0,
|
||||
METER_EVENT_ERROR,
|
||||
METER_EVENT_STARTED,
|
||||
METER_EVENT_STOPPED
|
||||
} meter_event_id_t;
|
||||
|
||||
// Estrutura de dados enviados com METER_EVENT_DATA_READY
|
||||
typedef struct {
|
||||
const char *source; // "GRID" ou "EVSE"
|
||||
float vrms[3]; // Tensão por fase
|
||||
float irms[3]; // Corrente por fase
|
||||
int watt[3]; // Potência ativa por fase
|
||||
float frequency; // Frequência da rede (Hz)
|
||||
float power_factor; // Fator de potência
|
||||
float total_energy; // Energia acumulada (kWh)
|
||||
} meter_event_data_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // METER_EVENTS_H
|
||||
@@ -2,28 +2,66 @@
|
||||
#define METER_MANAGER_H
|
||||
|
||||
#include "esp_err.h"
|
||||
#include <stdbool.h> // Para garantir que 'bool' seja reconhecido
|
||||
|
||||
// Definindo tipos de medidores possíveis para EVSE e Grid
|
||||
typedef enum {
|
||||
METER_TYPE_NONE, // Nenhum medidor
|
||||
METER_TYPE_EVSE_ADE7758, // EVSE com ADE7758
|
||||
METER_TYPE_GRID_ORNO513, // Grid com ORNO 513
|
||||
METER_TYPE_GRID_ORNO516, // Grid com ORNO 516
|
||||
METER_TYPE_GRID_ZIGBEE // Grid com Zigbee
|
||||
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_t;
|
||||
|
||||
// Funções para inicializar e gerenciar o medidor EVSE (pode ser ADE7758)
|
||||
esp_err_t meter_manager_init_evse(meter_type_t evse_type); // Inicializa o medidor EVSE (ex: ADE7758)
|
||||
esp_err_t meter_manager_start_evse(meter_type_t evse_type); // Inicia o EVSE com o tipo especificado
|
||||
esp_err_t meter_manager_stop_evse(void); // Para o EVSE
|
||||
/**
|
||||
* @brief Funções para gerenciar o medidor EVSE (ex: ADE7758).
|
||||
*/
|
||||
|
||||
// Funções para inicializar e gerenciar o medidor Grid (pode ser ORNO 513, ORNO 516 ou Zigbee)
|
||||
esp_err_t meter_manager_init_grid(meter_type_t grid_type); // Inicializa o medidor Grid (ORNO 513, ORNO 516, Zigbee)
|
||||
esp_err_t meter_manager_start_grid(meter_type_t grid_type); // Inicia o medidor Grid com o tipo especificado
|
||||
esp_err_t meter_manager_stop_grid(void); // Para o medidor Grid
|
||||
// Inicializa o medidor EVSE com o tipo especificado (ex: ADE7758)
|
||||
esp_err_t meter_manager_evse_init(void);
|
||||
|
||||
// Funções para ler dados dos medidores
|
||||
esp_err_t meter_manager_read_current(meter_type_t meter_type, float *current); // Lê a corrente do medidor
|
||||
esp_err_t meter_manager_read_voltage(meter_type_t meter_type, float *voltage); // Lê a tensão do medidor
|
||||
// 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);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Funções para gerenciar o medidor Grid (ORNO 513, ORNO 516, Zigbee).
|
||||
*/
|
||||
|
||||
// Inicializa o medidor Grid com o tipo especificado (ORNO 513, ORNO 516, Zigbee)
|
||||
esp_err_t meter_manager_grid_init(void);
|
||||
|
||||
// Inicia o medidor Grid com o tipo especificado
|
||||
esp_err_t meter_manager_grid_start(void);
|
||||
|
||||
// Para o medidor Grid
|
||||
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)
|
||||
esp_err_t meter_manager_grid_set_model(meter_type_t meter_type);
|
||||
|
||||
// Retorna o modelo do medidor Grid (ORNO 513, ORNO 516, Zigbee)
|
||||
meter_type_t meter_manager_grid_get_model(void);
|
||||
|
||||
// Função auxiliar para converter o tipo de medidor em uma string
|
||||
const char* meter_type_to_str(meter_type_t type);
|
||||
|
||||
meter_type_t string_to_meter_type(const char *str);
|
||||
|
||||
#endif // METER_MANAGER_H
|
||||
|
||||
Reference in New Issue
Block a user