20#ifndef _SIGNAL_MANIPULATION_H_
21#define _SIGNAL_MANIPULATION_H_
23#include "mbsimControl/signal_.h"
24#include <mbsim/functions/function.h>
30namespace MBSimControl {
39 void initializeUsingXML(xercesc::DOMElement *element)
override;
40 void init(
InitStage stage,
const MBSim::InitConfigSet &config)
override;
41 void addInputSignal(
Signal * signal_) { signal.push_back(signal_); }
42 void updateSignal()
override;
43 int getSignalSize()
const override;
45 std::vector<Signal*> signal;
46 std::vector<std::string> signalString;
56 void initializeUsingXML(xercesc::DOMElement *element)
override;
57 void init(
InitStage stage,
const MBSim::InitConfigSet &config)
override;
58 void setInputSignal(
Signal *signal_) { signal = signal_; }
59 void setIndices(
const std::vector<MBSim::Index> &index_) { index = index_; }
60 void updateSignal()
override;
61 int getSignalSize()
const override {
return index.size(); }
64 std::vector<MBSim::Index> index;
65 std::string signalString;
75 void initializeUsingXML(xercesc::DOMElement *element)
override;
76 void init(
InitStage stage,
const MBSim::InitConfigSet &config)
override;
77 void setInputSignal(
Signal *signal_) { s=signal_; }
78 void updateSignal()
override;
79 int getSignalSize()
const override {
return s->getSignalSize(); }
83 std::string signalString;
94 void initializeUsingXML(xercesc::DOMElement *element)
override;
95 void init(
InitStage stage,
const MBSim::InitConfigSet &config)
override;
96 void setInputSignal(
Signal *signal_) { signal.resize(1,signal_); }
97 void addInputSignal(
Signal *signal_) { signal.push_back(signal_); }
103 void setFunction(
MBSim::Function<fmatvec::VecV(fmatvec::VecV,fmatvec::VecV)> *f) {
108 void setMultiplexInputSignals(
bool multiplex_) { multiplex = multiplex_; }
109 void updateSignal()
override { (this->*updateSignal_)(); }
110 void updateSignal1();
111 void updateSignal2();
112 int getSignalSize()
const override {
return f1?f1->getRetSize().first:f2->getRetSize().first; }
114 std::vector<Signal*> signal;
115 std::vector<std::string> signalString;
117 MBSim::Function<fmatvec::VecV(fmatvec::VecV,fmatvec::VecV)> *f2{
nullptr};
118 bool multiplex{
false};
Demultiplexer.
Definition: signal_manipulation.h:53
Multiplexer.
Definition: signal_manipulation.h:36
SignalOperation.
Definition: signal_manipulation.h:90
SignalTimeDiscretization.
Definition: signal_manipulation.h:72
Signal.
Definition: signal_.h:38
void setName(const std::string &str)