71 lines
1.4 KiB
C
Executable File
71 lines
1.4 KiB
C
Executable File
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
#include "esp_err.h"
|
|
|
|
/**
|
|
* @brief Inicializa o driver do medidor (SPI, mutex, registradores ADE7758).
|
|
*/
|
|
esp_err_t meter_init(void);
|
|
|
|
/**
|
|
* @brief Inicia a tarefa de leitura de dados do medidor.
|
|
*/
|
|
esp_err_t meter_start(void);
|
|
|
|
/**
|
|
* @brief Para a tarefa de leitura e limpa os dados internos.
|
|
*/
|
|
void meter_stop(void);
|
|
|
|
/**
|
|
* @brief Verifica se o medidor está em execução.
|
|
*
|
|
* @return true se a tarefa estiver ativa, false caso contrário.
|
|
*/
|
|
bool meter_is_running(void);
|
|
|
|
/**
|
|
* @brief Limpa os dados armazenados no medidor (zera todos os valores).
|
|
*/
|
|
void meter_clear_data(void);
|
|
|
|
// ----- Leituras por fase (L1, L2, L3) -----
|
|
|
|
// Tensão RMS (em volts)
|
|
float meter_get_vrms_l1(void);
|
|
float meter_get_vrms_l2(void);
|
|
float meter_get_vrms_l3(void);
|
|
|
|
// Corrente RMS (em amperes)
|
|
float meter_get_irms_l1(void);
|
|
float meter_get_irms_l2(void);
|
|
float meter_get_irms_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);
|
|
|
|
// (Opcional) contador de watchdog para diagnóstico
|
|
uint32_t meter_get_watchdog_counter(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|