#pragma once #ifdef __cplusplus extern "C" { #endif #include #include #include "esp_err.h" /** * @brief Inicializa o driver do medidor Zigbee (UART, mutex, etc.). * * @return ESP_OK se a inicialização for bem-sucedida, erro caso contrário. */ esp_err_t meter_init_zigbee(void); /** * @brief Inicia a tarefa de leitura dos dados do medidor Zigbee. * * @return ESP_OK se a tarefa for iniciada com sucesso, erro caso contrário. */ esp_err_t meter_start_zigbee(void); /** * @brief Interrompe a tarefa e limpa recursos (UART, mutex, etc.). */ void meter_stop_zigbee(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_zigbee(void); /** * @brief Limpa todos os dados armazenados em memória. */ void meter_clear_data_zigbee(void); // ---------------------- // Leituras por fase (L1, L2, L3) // ---------------------- // Corrente RMS (em amperes) float meter_get_irms_l1_zigbee(void); float meter_get_irms_l2_zigbee(void); float meter_get_irms_l3_zigbee(void); // Tensão RMS (em volts) float meter_get_vrms_l1_zigbee(void); float meter_get_vrms_l2_zigbee(void); float meter_get_vrms_l3_zigbee(void); // Potência ativa (W) int meter_get_watt_l1_zigbee(void); int meter_get_watt_l2_zigbee(void); int meter_get_watt_l3_zigbee(void); // Potência reativa (VAR) int meter_get_var_l1_zigbee(void); int meter_get_var_l2_zigbee(void); int meter_get_var_l3_zigbee(void); // Potência aparente (VA) int meter_get_va_l1_zigbee(void); int meter_get_va_l2_zigbee(void); int meter_get_va_l3_zigbee(void); // ---------------------- // Dados adicionais // ---------------------- /** * @brief Retorna a frequência da rede em Hz. * * @return Valor da frequência da rede em Hz. */ float meter_get_frequency_zigbee(void); /** * @brief Retorna o fator de potência médio. * * @return Valor do fator de potência médio. */ float meter_get_power_factor_zigbee(void); /** * @brief Retorna a energia total acumulada (kWh ou Wh, dependendo do dispositivo). * * @return Valor da energia total acumulada. */ float meter_get_total_energy_zigbee(void); #ifdef __cplusplus } #endif