#pragma once #ifdef __cplusplus extern "C" { #endif #include #include #include "esp_err.h" /** * @brief Inicializa o driver do medidor ADE7758 (SPI, mutex, registradores). */ esp_err_t meter_ade7758_init(void); /** * @brief Inicia a tarefa de leitura de dados do medidor ADE7758. */ esp_err_t meter_ade7758_start(void); /** * @brief Para a tarefa de leitura e limpa os dados internos do medidor ADE7758. */ void meter_ade7758_stop(void); /** * @brief Verifica se o medidor ADE7758 está em execução. * * @return true se a tarefa estiver ativa, false caso contrário. */ bool meter_ade7758_is_running(void); /** * @brief Limpa os dados armazenados no medidor ADE7758 (zera todos os valores). */ void meter_ade7758_clear_data(void); // ----- Leituras por fase (L1, L2, L3) ----- // Tensão RMS (em volts) float meter_ade7758_get_vrms_l1(void); float meter_ade7758_get_vrms_l2(void); float meter_ade7758_get_vrms_l3(void); // Corrente RMS (em amperes) float meter_ade7758_get_irms_l1(void); float meter_ade7758_get_irms_l2(void); float meter_ade7758_get_irms_l3(void); // Potência ativa (W) int meter_ade7758_get_watt_l1(void); int meter_ade7758_get_watt_l2(void); int meter_ade7758_get_watt_l3(void); // Potência reativa (VAR) int meter_ade7758_get_var_l1(void); int meter_ade7758_get_var_l2(void); int meter_ade7758_get_var_l3(void); // Potência aparente (VA) int meter_ade7758_get_va_l1(void); int meter_ade7758_get_va_l2(void); int meter_ade7758_get_va_l3(void); // (Opcional) contador de watchdog para diagnóstico uint32_t meter_ade7758_get_watchdog_counter(void); #ifdef __cplusplus } #endif