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