#ifndef ORNO_MODBUS_H_ #define ORNO_MODBUS_H_ #include #include "esp_err.h" #ifdef __cplusplus extern "C" { #endif /** * @brief Tipo do medidor ORNO usado na aplicação. */ typedef enum { ORNO_METER_GRID, ///< Medidor na entrada da rede elétrica ORNO_METER_EVSE ///< Medidor na saída da EVSE } orno_meter_type_t; /** * @brief Inicializa o driver ORNO Modbus. */ esp_err_t orno_modbus_init(void); /** * @brief Lê a corrente RMS do medidor especificado. * * @param type Tipo do medidor (GRID ou EVSE) * @param current Ponteiro para armazenar o valor da corrente (em amperes) * @return esp_err_t ESP_OK em caso de sucesso, erro caso contrário */ esp_err_t orno_modbus_read_current(orno_meter_type_t type, float *current); /** * @brief Ativa ou desativa o modo de teste (simulação). */ void orno_modbus_set_meter_test(bool state); /** * @brief Define o modelo usado do medidor (caso afete registros). */ void orno_modbus_set_model(bool enabled); /** * @brief Retorna o estado atual do medidor (ligado/desligado). */ bool orno_modbus_get_meter_state(void); /** * @brief Inicia a task interna de comunicação (se usada). */ void orno_modbus_start(void); /** * @brief Para a task de comunicação (se usada). */ void orno_modbus_stop(void); #ifdef __cplusplus } #endif #endif /* ORNO_MODBUS_H_ */