#ifndef CURRENTSHAPER_H_
#define CURRENTSHAPER_H_

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Inicia a tarefa do shaper de corrente dinâmica.
 */
void currentshaper_start(void);

/**
 * @brief Encerra a tarefa do shaper de corrente dinâmica.
 */
void currentshaper_stop(void);

/**
 * @brief Executa a lógica de modelagem da corrente com base nos dados atuais.
 */
void shapeCurrent(void);

/**
 * @brief Define a corrente máxima disponível da rede elétrica (A*10).
 * 
 * @param max_grid_current Corrente máxima da rede (em A*10)
 */
void setMaxGridCurrent(int max_grid_current);

/**
 * @brief Define a corrente medida em tempo real disponível na rede (A*10).
 * 
 * @param live_grid_current Corrente de rede ao vivo (em A*10)
 */
void setLiveGridCurrent(int live_grid_current);

/**
 * @brief Define a tensão medida em tempo real da rede (V).
 * 
 * @param live_volt Tensão da rede (em volts)
 */
void setLiveVolt(int live_volt);

#ifdef __cplusplus
}
#endif

#endif /* CURRENTSHAPER_H_ */
