/* * VectorSpinner.cpp * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include "SYSCTRL/VectorSpinner.h" namespace SYSCTRL { //CONSTRUCTOR VectorSpinner::VectorSpinner() {}//CONSTRUCTOR // #pragma CODE_SECTION("ramfuncs"); void VectorSpinner::spin_calculator(SYSCTRL::ProjectionAnalogSignalStructure& projection, SYSCTRL::VecorModuleStructure& module, SYSCTRL::ProjectionAnalogSignalStructure& spinner) { module.module = sqrtf(projection.active * projection.active + projection.reactive * projection.reactive); if(module.module > FP_ZERO) { module.reciprocal = 1.0/module.module; // spinner.active = module.reciprocal * projection.active; spinner.reactive = -module.reciprocal * projection.reactive; // } else { spinner.active = 1.0; spinner.reactive = FP_ZERO; // };//if else // }// // #pragma CODE_SECTION("ramfuncs"); void VectorSpinner::spin_reset(SYSCTRL::ProjectionAnalogSignalStructure& spinner) { spinner.active = 1.0; spinner.reactive = FP_ZERO; // }// // #pragma CODE_SECTION("ramfuncs"); void VectorSpinner::ort_corrector(SYSCTRL::ProjectionAnalogSignalStructure& spinner, SYSCTRL::VectorOrthogonalProjection& ort, SYSCTRL::VectorOrthogonalProjection& twisted) { twisted.active = spinner.active * ort.active + spinner.reactive * ort.reactive; twisted.reactive = -spinner.reactive * ort.active + spinner.active * ort.reactive; // }// // } /* namespace SYSCTRL */