1 #ifndef ORG_EEROS_CONTROL_TRANSITION_HPP_ 2 #define ORG_EEROS_CONTROL_TRANSITION_HPP_ 14 template <
typename T =
double >
35 auto val = this->
getIn().getSignal();
48 template <
typename T =
double >
57 this->getOut().getSignal().setValue(
container->in.getValue());
58 this->getOut().getSignal().setTimestamp(
container->in.getTimestamp());
70 dVal = (
in.getValue() - prevIn.getValue()) /
container->ratio;
71 dTime= (
in.getTimestamp() - prevIn.getTimestamp()) /
container->ratio;
73 T val = prevIn.getValue() + dVal * count;
74 this->getOut().getSignal().setValue(val);
75 timestamp_t time = prevIn.getTimestamp() + count * dTime;
76 this->getOut().getSignal().setTimestamp(time);
79 auto time = this->
getIn().getSignal().getTimestamp();
82 while (i < container->buf.size() && time >
container->buf[i].getTimestamp()) i++;
87 this->getOut().getSignal().setValue(sig.
getValue());
88 this->getOut().getSignal().setTimestamp(sig.
getTimestamp());
103 template <
typename T =
double >
108 Transition(
double ratio,
bool steady =
false) : ratio(ratio), inBlock(this), outBlock(this), steady(steady) {
127 std::vector<Signal<T>> buf;
137 template <
typename T>
138 std::ostream& operator<<(std::ostream& os, Transition<T>& t) {
139 os <<
"Block transition: '" << t.getName() <<
"'";
uint32_t count
Definition: Transition.hpp:100
virtual T getValue() const
Definition: Signal.hpp:49
Definition: Block1i.hpp:12
virtual void run()
Definition: Transition.hpp:20
Transition< T > * container
Definition: Transition.hpp:96
bool up
Definition: Transition.hpp:42
virtual ~TransitionInBlock()
Definition: Transition.hpp:18
Definition: Config.hpp:14
virtual void run()
Definition: Transition.hpp:54
TransitionOutBlock< T > outBlock
Definition: Transition.hpp:124
double dTime
Definition: Transition.hpp:99
TransitionInBlock(Transition< T > *c)
Definition: Transition.hpp:17
Transition(double ratio, bool steady=false)
Definition: Transition.hpp:108
Definition: Transition.hpp:12
virtual ~Transition()
Definition: Transition.hpp:121
bool up
Definition: Transition.hpp:93
Definition: Block1i1o.hpp:12
virtual Input< T > & getIn()
Definition: Block1i.hpp:16
Signal< T > prevIn
Definition: Transition.hpp:97
virtual timestamp_t getTimestamp() const
Definition: Signal.hpp:62
virtual ~TransitionOutBlock()
Definition: Transition.hpp:52
TransitionInBlock< T > inBlock
Definition: Transition.hpp:123
Transition< T > * container
Definition: Transition.hpp:45
Definition: Signal.hpp:17
Definition: Transition.hpp:15
Definition: Transition.hpp:49
Input< T > in
Definition: Block1i.hpp:21
uint64_t timestamp_t
Definition: types.hpp:12
T dVal
Definition: Transition.hpp:98
TransitionOutBlock(Transition< T > *c)
Definition: Transition.hpp:51