All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
function_sensor.h
1 /* Copyright (C) 2004-2009 MBSim Development Team
2  *
3  * This library is free software; you can redistribute it and/or
4  * modify it under the terms of the GNU Lesser General Public
5  * License as published by the Free Software Foundation; either
6  * version 2.1 of the License, or (at your option) any later version.
7  *
8  * This library is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  * Lesser General Public License for more details.
12  *
13  * You should have received a copy of the GNU Lesser General Public
14  * License along with this library; if not, write to the Free Software
15  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16  *
17  * Contact: markus.ms.schneider@gmail.com
18  */
19 
20 #ifndef _FUNCTION_SENSOR_H_
21 #define _FUNCTION_SENSOR_H_
22 
23 #include "mbsimControl/sensor.h"
24 #include <mbsim/functions/function.h>
25 
26 namespace MBSimControl {
27 
32  class FunctionSensor : public Sensor {
33  public:
34  FunctionSensor(const std::string &name="") : Sensor(name), function(NULL), y() {}
35  FunctionSensor(const std::string &name, MBSim::Function<fmatvec::VecV(double)>* function_);
36  ~FunctionSensor() { delete function; }
37  std::string getType() const { return "FunctionSensor"; }
38  void setFunction(MBSim::Function<fmatvec::VecV(double)>* function_);
39  fmatvec::VecV getSignal() {return y; }
40  void updateg(double t);
41  void initializeUsingXML(xercesc::DOMElement *element);
42  void init(MBSim::Element::InitStage stage);
43  private:
44  MBSim::Function<fmatvec::VecV(double)> * function;
45  fmatvec::VecV y;
46  };
47 
52  class Function_SSEvaluation : public Signal {
53  public:
54  Function_SSEvaluation(const std::string &name="") : Signal(name), signal(NULL), fun(NULL), signalString("") {}
55  ~Function_SSEvaluation() { delete fun; }
56  void initializeUsingXML(xercesc::DOMElement *element);
57  void init(InitStage stage);
58  void setSignal(Signal * s) {signal=s; }
59  void setFunction(MBSim::Function<double(double)>* fun_) {
60  fun=fun_;
61  fun->setParent(this);
62  fun->setName("Function");
63  }
64  fmatvec::VecV getSignal();
65  private:
66  Signal * signal;
67  MBSim::Function<double(double)>* fun;
68  std::string signalString;
69  };
70 
75  class Function_SSSEvaluation : public Signal {
76  public:
77  Function_SSSEvaluation(const std::string &name="") : Signal(name), signal1(NULL), signal2(NULL), fun(NULL), signal1String(""), signal2String("") {}
78  ~Function_SSSEvaluation() { delete fun; }
79  void initializeUsingXML(xercesc::DOMElement *element);
80  void init(InitStage stage);
81  void setSignals(Signal * s1, Signal * s2) {signal1=s1; signal2=s2; }
82  void setFunction(MBSim::Function<double(double,double)>* fun_) {
83  fun=fun_;
84  fun->setParent(this);
85  fun->setName("Function");
86  }
87  fmatvec::VecV getSignal();
88  private:
89  Signal * signal1;
90  Signal * signal2;
91  MBSim::Function<double(double,double)>* fun;
92  std::string signal1String;
93  std::string signal2String;
94  };
95 
96 }
97 
98 #endif /* _FUNCTION_SENSOR_H_ */
99 
Function_SSSEvaluation.
Definition: function_sensor.h:75
Signal.
Definition: signal_.h:37
Sensor.
Definition: sensor.h:31
FunctionSensor.
Definition: function_sensor.h:32
Function_SSEvaluation.
Definition: function_sensor.h:52

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML