#pragma once #ifdef __cplusplus extern "C" { #endif #include #include #include "esp_err.h" /** * @brief Inicializa o driver do medidor Zigbee (UART, mutex, etc.) */ esp_err_t meter_init(void); /** * @brief Inicia a tarefa de leitura dos dados do medidor Zigbee. */ esp_err_t meter_start(void); /** * @brief Interrompe a tarefa e limpa recursos (UART, mutex). */ void meter_stop(void); /** * @brief Verifica se o medidor Zigbee está em execução. * * @return true se a tarefa está ativa, false se não. */ bool meter_is_running(void); /** * @brief Limpa todos os dados armazenados em memória. */ void meter_clear_data(void); // ---------------------- // Leituras por fase (L1, L2, L3) // ---------------------- // Corrente RMS (em amperes) float meter_get_irms_l1(void); float meter_get_irms_l2(void); float meter_get_irms_l3(void); // Tensão RMS (em volts) float meter_get_vrms_l1(void); float meter_get_vrms_l2(void); float meter_get_vrms_l3(void); // Potência ativa (W) int meter_get_watt_l1(void); int meter_get_watt_l2(void); int meter_get_watt_l3(void); // Potência reativa (VAR) int meter_get_var_l1(void); int meter_get_var_l2(void); int meter_get_var_l3(void); // Potência aparente (VA) int meter_get_va_l1(void); int meter_get_va_l2(void); int meter_get_va_l3(void); // ---------------------- // Dados adicionais // ---------------------- /** * @brief Retorna a frequência da rede em Hz. */ float meter_get_frequency(void); /** * @brief Retorna o fator de potência médio. */ float meter_get_power_factor(void); /** * @brief Retorna a energia total acumulada (kWh ou Wh, dependendo do dispositivo). */ float meter_get_total_energy(void); #ifdef __cplusplus } #endif