Files
chargeflow/components/meter_zigbee/include/meter_zigbee.h
2025-06-08 18:35:32 +01:00

89 lines
1.7 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 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