MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/processing/acs/RampGenerationProcess.hh

68 lines
1.6 KiB
C++
Raw Normal View History

/*
* RampGenerationProcess.hh
*
* Created on: 31 <EFBFBD><EFBFBD><EFBFBD> 2020 <EFBFBD>.
* Author: LeonidTitov
*/
#ifndef UMLIBRARY_PROCESSING_ACS_RAMPGENERATIONPROCESS_HH_
#define UMLIBRARY_PROCESSING_ACS_RAMPGENERATIONPROCESS_HH_
#include "ControlSystemInterface.hh"
#include "../../systemic/ISignal.hh"
#include "../../systemic/IProcess.hh"
#include "../../common/ShadowGuard.hh"
#include "../../control/generator/Generator_1stOrder.hh"
namespace processing { namespace acs {
//!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
class RampGeneration1stOrderProcess : public PhaseSpaceToPhaseSpaceUnitInterface, public systemic::IProcess {
public:
typedef ::control::generator::Generator_1stOrder Generator;
vector::ITechValue & getDerivativeLimit();
void set( TypeInput );
TypeOutput get() const;
void set_output( SetInterface * );
void setSampleTime( float ts_in_second );
void process();
void reset();
RampGeneration1stOrderProcess( Generator & generator, systemic::ISignal & value );
bool isConnected() const { return output; }
private:
systemic::ISignal & value;
Generator & generator;
SetInterface * output;
TypeInput trajectory;
ShadowGuard< control::PhaseSpaceValue > setpoint; //!<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
struct DerivativeLimit : public vector::ITechValue {
void set( float limit );
float get() const;
Generator & generator;
DerivativeLimit( Generator & gen ) : generator(gen) {}
} limit;
bool proc_enable;
};
}}
#endif /* UMLIBRARY_PROCESSING_ACS_RAMPGENERATIONPROCESS_HH_ */