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