/* * SubtractValueAsync.hh * * Created on: 8 июн. 2020 г. * Author: LeonidTitov */ #ifndef UMLIBRARY_PROCESSING_ACS_SUBTRACTVALUEASYNC_HH_ #define UMLIBRARY_PROCESSING_ACS_SUBTRACTVALUEASYNC_HH_ #include "ControlSystemInterface.hh" #include "../../systemic/ISignal.hh" #include "../../systemic/IProcess.hh" namespace processing { namespace acs { //!Задание сигнала с учетом коррекции по сигналу, вычитание. class SubtractValueAsync : public ValueToValueUnitInterface { public: //!Установить заданное значение. void set( TypeInput ); TypeOutput get() const; void set_output( SetInterface * ); void reset(); SubtractValueAsync( systemic::ISignal & subtrahend ); private: systemic::ISignal & subtrahend; SetInterface * output; }; //!Вычитание сигнала из заданного значения. class SubtractValueProcess : public ValueToValueUnitInterface, public systemic::IProcess { public: void set( TypeInput ); TypeOutput get() const; void set_output( SetInterface * ); void reset(); void process(); SubtractValueProcess( systemic::ISignal & subtrahend ); private: TypeInput demand; systemic::ISignal & subtrahend; volatile bool proc_enable; SetInterface * output; }; }} #endif /* UMLIBRARY_PROCESSING_ACS_SUBTRACTVALUEASYNC_HH_ */