/* * AlgorithmStop.h * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include #include #ifndef SYSCTRL_ALGORITHMSTOP_H_ #define SYSCTRL_ALGORITHMSTOP_H_ #include "SYSCTRL/AlgorithmBase.h" #include "SYSCTRL/HeadersFLTSYSLIB.h" namespace SYSCTRL { class AlgorithmStop: public SYSCTRL::AlgorithmBase { private: #if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC)) SYSCTRL::VectorOrthogonalProjection m_orts; #endif SYSCTRL::SystemEnvironment& m_env; public: AlgorithmStop(SYSCTRL::SystemEnvironment& env); public: void setup(); public: void reset(); public: void execute(); private: void (AlgorithmStop::*_execute)(); void _execute_run(); #if ((TYPECONTROL == SCALARCONTROL)&&(SCALARCONTROL_VOLTAGEREGULATOR == SCALARCONTROL_VOLTAGEREGULATOR_ABC)) private: inline void _execute_single_phase(SYSCTRL::AlgorithmSinglePhaseControl& phase, FLTSYSLIB::PIController& regulator_active, FLTSYSLIB::PIController& regulator_reactive); #endif // };//AlgorithmPrestop } /* namespace SYSCTRL */ #endif /* SYSCTRL_ALGORITHMSTOP_H_ */