#ifndef METER_EA777_H_
#define METER_EA777_H_

#include <stdint.h>
#include <stdbool.h>
#include "esp_err.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Inicializa o driver do medidor EA777 (UART RS485, Modbus, registradores).
 * 
 * @return esp_err_t Retorna ESP_OK se a inicialização for bem-sucedida, caso contrário retorna um erro.
 */
esp_err_t meter_ea777_init(void);

/**
 * @brief Inicia a tarefa de leitura de dados do medidor EA777.
 * 
 * @return esp_err_t Retorna ESP_OK se a tarefa for iniciada com sucesso, caso contrário retorna um erro.
 */
esp_err_t meter_ea777_start(void);

/**
 * @brief Para a tarefa de leitura e limpa os dados internos do medidor EA777.
 */
void meter_ea777_stop(void);

#ifdef __cplusplus
}
#endif

#endif /* METER_EA777_H_ */