/* * SignalDecompose.cpp * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include "SYSCTRL/SignalDecompose.h" namespace SYSCTRL { //CONSTRUCTOR SignalDecompose::SignalDecompose(): m_time_sample(-1.0), m_projection_active(), m_projection_reactive(), m_projection_filter_active(), m_projection_filter_reactive(), _execute(&SYSCTRL::SignalDecompose::_execute_undef) // {}//CONSTRUCTOR void SignalDecompose::setup(float time_sample) { m_time_sample = time_sample; m_projection_filter_active.setup(m_time_sample); m_projection_filter_reactive.setup(m_time_sample); // }// // void SignalDecompose::configure(const SignalDecomposeConfiguration& config) { m_projection_filter_active.configure(config.projection_filter); m_projection_filter_reactive.configure(config.projection_filter); // if((m_time_sample > FP_ZERO) && (config.projection_filter.time > m_time_sample)) { _execute = &SYSCTRL::SignalDecompose::_execute_operational; // }//if // }// // #pragma CODE_SECTION("ramfuncs"); void SignalDecompose::reset() { m_projection_active = FP_ZERO; m_projection_reactive = FP_ZERO; m_projection_filter_active.reset(); m_projection_filter_reactive.reset(); // }// // #pragma CODE_SECTION("ramfuncs"); void SignalDecompose::get_outputs(float& projection_active, float& projection_reactive) { projection_active = m_projection_active; projection_reactive = m_projection_reactive; // }// // #pragma CODE_SECTION("ramfuncs"); void SignalDecompose::execute(float reference, float ort_cos, float ort_sin) { (this->*_execute)(reference, ort_cos, ort_sin); // }// // void SignalDecompose::_execute_undef(float reference, float ort_cos, float ort_sin) { // }// // #pragma CODE_SECTION("ramfuncs"); void SignalDecompose::_execute_operational(float reference, float ort_cos, float ort_sin) { // m_projection_active = m_projection_filter_active.execute(1.4142 * reference * ort_cos); // m_projection_reactive = m_projection_filter_reactive.execute(-(1.4142 * reference * ort_sin)); // }// // } /* namespace SYSCTRL */