99 lines
2.2 KiB
C
Executable File
99 lines
2.2 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.).
|
|
*
|
|
* @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
|