/**
******************************************************************************
* @file modbus_data.h
* @brief Определения структур данных Modbus устройства
******************************************************************************
* @details
******************************************************************************/

#ifndef _UPP_MAIN_H
#define _UPP_MAIN_H
  
#include "main.h" // либы из AllLibs и вербальные имена из CubeMX
#include "upp_config.h"
#include "power_monitor.h" // статистика сети и АЦП
#include "pwm_thyristors.h" // Управление тиристорами
#include "angle_control.h" // Управление углом открытия

extern float alpha_dbg;

typedef struct
{
  PowerMonitor_t pm;
  PWM_Handle_t hpwm;
  Angle_Handle_t hangle;
}UPP_t;
extern UPP_t upp;


/* Инициализация УПП */
int UPP_Init(void);
/* Инициализация основного цикла УПП. */
int UPP_PreWhile(void);
/* Основной цикл УПП. */
int UPP_While(void);

void UPP_ADC_Handle(void);
void UPP_PWM_Handle(void);
void UPP_Angle_Handle(void);
#endif //_UPP_MAIN_H