MotorControlModuleSDFM_TMS3.../Projects/EFC_Communication/UMLibrary/processing/acs/PhaseSpaceLimit.hh
2024-06-07 11:12:56 +03:00

79 lines
1.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* PhaseSpaceLimit.hh
*
* Created on: 10 авг. 2020 г.
* 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; //!<Верхнее преднастроенное ограничение.
float lower_limit; //!<Нижнее предснастроенное ограеничение.
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_ */