/* * AlgoritmOff.cpp * * Author: Aleksey Gerasimenko * gerasimenko.aleksey.n@gmail.com */ #include "SYSCTRL/AlgorithmOff.h" namespace SYSCTRL { //CONSTRUCTOR AlgorithmOff::AlgorithmOff(SYSCTRL::SystemEnvironment& env): SYSCTRL::AlgorithmBase(), m_env(env), _execute(&SYSCTRL::AlgorithmOff::_execute_undef) // {}//CONSTRUCTOR // void AlgorithmOff::setup() { _execute = &SYSCTRL::AlgorithmOff::_execute_run; // }// // #pragma CODE_SECTION("ramfuncs"); void AlgorithmOff::reset() {}// // #pragma CODE_SECTION("ramfuncs"); void AlgorithmOff::execute() { (this->*_execute)(); // }// // #pragma CODE_SECTION("ramfuncs"); void AlgorithmOff::_execute_run() { static bool _high_level = true; _high_level = true; if(m_env.system_reset.boolbit.b0) { m_env.hardware.ref_control_order = ORDER_RESET; // } else { for(Uint16 cellnum = 0; cellnum < m_env.hardware.level; cellnum++) { _high_level &= m_env.hardware.hvcell.dc_voltage[0][cellnum] > m_env.hardware.dc_voltage_low_level ? true : false; _high_level &= m_env.hardware.hvcell.dc_voltage[1][cellnum] > m_env.hardware.dc_voltage_low_level ? true : false; _high_level &= m_env.hardware.hvcell.dc_voltage[2][cellnum] > m_env.hardware.dc_voltage_low_level ? true : false; // }//for // if(!_high_level & m_env.hardware.low_level()) { m_env.hardware.ref_control_order = ORDER_RESET; m_env.hardware.fault_low_level = false; } else { m_env.hardware.ref_control_order = ORDER_START; } // }//if else // m_voltage_a = FP_ZERO; m_voltage_b = FP_ZERO; m_voltage_c = FP_ZERO; // }// // } /* namespace SYSCTRL */