60 lines
1.3 KiB
C++
60 lines
1.3 KiB
C++
/*
|
|
* 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_ */
|