40 lines
1.2 KiB
C++
40 lines
1.2 KiB
C++
/*
|
||
* DiscreteSwitch.h
|
||
*
|
||
* Created on: 21 мая 2021 г.
|
||
* Author: sozonov
|
||
*/
|
||
|
||
#ifndef UMLIBRARY_SCHEMATIC_DISCRETESWITCH_HH_
|
||
#define UMLIBRARY_SCHEMATIC_DISCRETESWITCH_H_
|
||
#include "../systemic/IFunctor.hh"
|
||
|
||
//!Класс вызова функции при наличии разрешающего статуса.
|
||
class DiscreteSwitchLogics {
|
||
public:
|
||
bool enable; //!<Значение разрешающего статуса.
|
||
DiscreteSwitchLogics(){}
|
||
|
||
//!Входной сигнал. При выставленном разрешающем статусе вызов выходного сигнала.
|
||
void inputSignal(){if(enable) outputSignal();}
|
||
//!Выходной сигнал.
|
||
virtual void outputSignal();
|
||
};
|
||
|
||
namespace application { namespace schematic {
|
||
class DiscreteSwitchInterface : public systemic::IFunctor<void>{
|
||
|
||
public:
|
||
systemic::IFunctor<void> & output; //!<Колбэк выходного сигнала.
|
||
systemic::IStatus & enable;
|
||
DiscreteSwitchInterface(systemic::IFunctor<void> & _out, systemic::IStatus &_enable):output(_out), enable(_enable){}
|
||
|
||
virtual void operator()() {
|
||
if(enable) output();
|
||
}
|
||
|
||
};
|
||
|
||
}}
|
||
#endif /* UMLIBRARY_SCHEMATIC_DISCRETESWITCH_HH_ */
|