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

79 lines
1.4 KiB
C++
Raw Normal View History

/*
* PhaseSpaceLimit.hh
*
* Created on: 10 <EFBFBD><EFBFBD><EFBFBD>. 2020 <EFBFBD>.
* Author: LeonidTitov
*/
#ifndef UMLIBRARY_PROCESSING_ACS_PHASESPACELIMIT_HH_
#define UMLIBRARY_PROCESSING_ACS_PHASESPACELIMIT_HH_
#include "ControlSystemInterface.hh"
#include "../../systemic/ISignal.hh"
namespace processing { namespace acs {
//!
class PhaseSpaceLimit : public PhaseSpaceToPhaseSpaceUnitInterface {
public:
void set( TypeInput );
TypeOutput get() const;
void set_output( SetInterface * );
void reset();
vector::ITechValue & getUpperLimit();
vector::ITechValue & getLowerLimit();
void apply();
const bool & valid_range() const;
const bool & is_limited() const;
struct Setting {
float upper_limit; //!<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
float lower_limit; //!<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
bool isValid();
};
void configure( Setting & config );
PhaseSpaceLimit();
private:
bool range_valid;
bool limited_flag;
struct Limit : vector::ITechValue {
void set( float limit ) {
value = limit;
}
float get() const {
return value;
}
float value;
Limit() : value(0.0f) {}
} upper, lower;
float h_t;
float l_t;
bool isConnected() const;
SetInterface * output;
TypeOutput limited_value;
};
}}
#endif /* UMLIBRARY_PROCESSING_ACS_PHASESPACELIMIT_HH_ */