20 #ifndef _SIGNAL_MANIPULATION_H_
21 #define _SIGNAL_MANIPULATION_H_
23 #include "mbsimControl/signal_.h"
24 #include <mbsim/functions/function.h>
26 namespace MBSimControl {
35 void initializeUsingXML(xercesc::DOMElement *element);
36 void init(InitStage stage);
37 void addInputSignal(
Signal * signal) {signals.push_back(signal); }
39 int getSignalSize()
const {
return signals[0]->getSignalSize(); }
41 std::vector<Signal *> signals;
42 std::vector<std::string> signalString;
52 void initializeUsingXML(xercesc::DOMElement *element);
53 void init(InitStage stage);
54 void setInputSignal(
Signal * signal_) { signal=signal_; }
55 void setIndices(
const fmatvec::VecInt &indices_) { indices = indices_; }
57 int getSignalSize()
const {
return signal->getSignalSize(); }
60 fmatvec::VecInt indices;
61 fmatvec::VecV indicesTmp;
62 std::string signalString;
72 void initializeUsingXML(xercesc::DOMElement *element);
73 void init(InitStage stage);
74 void setInputSignal(
Signal * signal_) {s=signal_; }
76 int getSignalSize()
const {
return s->getSignalSize(); }
80 std::string signalString;
91 void initializeUsingXML(xercesc::DOMElement * element);
93 void calcxSize() {xSize=updateSignalMethod==&PIDController::updateSignalPD?0:1;}
95 void init(InitStage stage);
100 void setPID(
double P_,
double I_,
double D_);
101 void setInputSignal(
Signal *inputSignal_) {s=inputSignal_; }
102 void setDerivativeOfInputSignal(
Signal *inputSignal_) {sd=inputSignal_; }
105 int getSignalSize()
const {
return s->getSignalSize(); }
110 std::string sString, sdString;
112 void updateSignalPD();
113 void updateSignalPID();
124 void initializeUsingXML(xercesc::DOMElement *element);
125 void init(InitStage stage);
126 void setInputSignal(
Signal *signal_) {s=signal_; }
130 f->setName(
"Function");
133 int getSignalSize()
const {
return s->getSignalSize(); }
136 std::string signalString;
146 BinarySignalOperation(
const std::string &name=
"") :
Signal(name), s1(NULL), s2(NULL), signal1String(
""), signal2String(
""), f(0) { }
148 void initializeUsingXML(xercesc::DOMElement *element);
149 void init(InitStage stage);
150 void setFirstInputSignal(
Signal *signal_) {s1=signal_; }
151 void setSecondInputSignal(
Signal *signal_) {s2=signal_; }
152 void setFunction(
MBSim::Function<fmatvec::VecV(fmatvec::VecV,fmatvec::VecV)> *f_) {
155 f->setName(
"Function");
158 int getSignalSize()
const {
return s1->getSignalSize(); }
161 std::string signal1String, signal2String;
SignalTimeDiscretization.
Definition: signal_manipulation.h:69
SignalMux.
Definition: signal_manipulation.h:32
BinarySignalOperation.
Definition: signal_manipulation.h:144
Signal.
Definition: signal_.h:37
UnarySignalOperation.
Definition: signal_manipulation.h:120
SignalDemux.
Definition: signal_manipulation.h:49
PID controller.
Definition: signal_manipulation.h:87