/* * FaultDecrease.cpp * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include "Alert/FaultDecrease.h" namespace ALERT { //CONSTRUCTOR FaultDecrease::FaultDecrease(): ALERT::AlertBase(), // m_state(ALERT::FaultDecrease::UNKNOWN), m_fault(false), fault(false), _execute(&ALERT::FaultDecrease::_execute_undef) // {}//CONSTRUCTOR // void FaultDecrease::setup(float time_sample) { m_time_sample = time_sample; // }//setup() // void FaultDecrease::configure(const ALERT::AlertBaseConfiguration& config) { m_level = config.level; m_period = config.period; m_timer = FP_ZERO; // m_fault = false; fault = false; // if((m_time_sample > FP_ZERO) && (m_period > m_time_sample) && (m_level >= FP_ZERO)) { _execute = &ALERT::FaultDecrease::_execute_operational; } // }//configure() // // #pragma CODE_SECTION("ramfuncs"); void FaultDecrease::reset() { m_fault = false; fault = false; m_timer = FP_ZERO; // }//reset() // #pragma CODE_SECTION("ramfuncs"); void FaultDecrease::execute(float reference) { (this->*_execute)(reference); // }//execute() // void FaultDecrease::_execute_undef(float reference) { // }//_execute_undef() // #pragma CODE_SECTION("ramfuncs"); void FaultDecrease::_execute_operational(float reference) { if(reference <= m_level) { if(m_timer >= m_period) { m_fault = true; fault = true; } else { m_timer += m_time_sample; m_fault = false; fault = false; // }// // } else { m_timer = FP_ZERO; m_fault = false; fault = false; // }// // }//_execute_operational_warning() // } /* namespace ALERT */