#ifndef METER_MANAGER_H #define METER_MANAGER_H #include "esp_err.h" #include // 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_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; /** * @brief Funções para gerenciar o medidor EVSE (ex: ADE7758). */ // 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); /** * @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