OpenWAM
TController.h
1 /*--------------------------------------------------------------------------------*\
2 ==========================|
3  \\ /\ /\ // O pen | OpenWAM: The Open Source 1D Gas-Dynamic Code
4  \\ | X | // W ave |
5  \\ \/_\/ // A ction | CMT-Motores Termicos / Universidad Politecnica Valencia
6  \\/ \// M odel |
7  ----------------------------------------------------------------------------------
8  License
9 
10  This file is part of OpenWAM.
11 
12  OpenWAM is free software: you can redistribute it and/or modify
13  it under the terms of the GNU General Public License as published by
14  the Free Software Foundation, either version 3 of the License, or
15  (at your option) any later version.
16 
17  OpenWAM is distributed in the hope that it will be useful,
18  but WITHOUT ANY WARRANTY; without even the implied warranty of
19  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  GNU General Public License for more details.
21 
22  You should have received a copy of the GNU General Public License
23  along with OpenWAM. If not, see <http://www.gnu.org/licenses/>.
24 
25 
26  \*--------------------------------------------------------------------------------*/
27 
28 //---------------------------------------------------------------------------
29 #ifndef TControllerH
30 #define TControllerH
31 
32 #include "Globales.h"
33 #include "TSensor.h"
34 //---------------------------------------------------------------------------
35 
37 class TController {
38  protected:
39 
40  std::vector<TSensor *> FSensor;
41 
44 
46 
47  nmControlMethod FControl;
48 
51 
52  public:
54  TController(nmControlMethod meth,
55  int i
56  );
57 
59  ~TController();
60 
62  virtual void LeeController(const char *FileWAM,
63  fpos_t &filepos
64  ) = 0;
65 
67  virtual double Output(double Time
68  ) = 0;
69 
71  virtual void AsignaObjetos(TSensor **Sensor,
72  TController **Controller
73  ) = 0;
74 
76  virtual void LeeResultadosMedControlador(const char *FileWAM,
77  fpos_t &filepos
78  ) = 0;
79 
81  virtual void LeeResultadosInsControlador(const char *FileWAM,
82  fpos_t &filepos
83  ) = 0;
84 
86  virtual void CabeceraResultadosMedControlador(std::stringstream&
87  medoutput
88  ) = 0;
89 
91  virtual void CabeceraResultadosInsControlador(std::stringstream&
92  insoutput
93  ) = 0;
94 
96  virtual void ImprimeResultadosMedControlador(std::stringstream&
97  medoutput
98  ) = 0;
99 
101  virtual void ImprimeResultadosInsControlador(std::stringstream& insoutput) = 0;
102 
104  virtual void IniciaMedias() = 0;
105 
107  virtual void ResultadosMediosController() = 0;
108 
110  virtual void AcumulaResultadosMediosController(double Actual
111  ) = 0;
112 
114  virtual void ResultadosInstantController() = 0;
115 };
116 
117 struct stGainInput {
118 
119  TSensor *InSensor;
120  TController *InController;
121 
122  stGainInput() {
123  }
124  ;
125 
126  virtual double Output(double t) = 0;
127 };
128 
130 
131  stGainInputSensor(TSensor *insens) :
132  stGainInput() {
133  InSensor = insens;
134  }
135  ;
136 
137  double Output(double t) {
138  return InSensor->Output();
139  }
140  ;
141 
142 };
143 
145 
147  stGainInput() {
148  InController = inctrl;
149  }
150  ;
151 
152  double Output(double t) {
153  return InController->Output(t);
154  }
155  ;
156 
157 };
158 #endif
TController::CabeceraResultadosInsControlador
virtual void CabeceraResultadosInsControlador(std::stringstream &insoutput)=0
TController::ImprimeResultadosInsControlador
virtual void ImprimeResultadosInsControlador(std::stringstream &insoutput)=0
stGainInputSensor
Definition: TController.h:129
TController::FNumSensors
int FNumSensors
Number of sensor input.
Definition: TController.h:42
TController
Definition: TController.h:37
stResMediosCtrl
Definition: Globales.h:672
TController::AsignaObjetos
virtual void AsignaObjetos(TSensor **Sensor, TController **Controller)=0
stResInstantCtrl
Definition: Globales.h:695
TController::ImprimeResultadosMedControlador
virtual void ImprimeResultadosMedControlador(std::stringstream &medoutput)=0
TController::LeeResultadosMedControlador
virtual void LeeResultadosMedControlador(const char *FileWAM, fpos_t &filepos)=0
TController::TController
TController(nmControlMethod meth, int i)
Definition: TController.cpp:38
TController::LeeResultadosInsControlador
virtual void LeeResultadosInsControlador(const char *FileWAM, fpos_t &filepos)=0
stGainInput
Definition: TController.h:117
iVector
std::vector< int > iVector
Integer vector.
Definition: Math_wam.h:72
TController::AcumulaResultadosMediosController
virtual void AcumulaResultadosMediosController(double Actual)=0
TController::FSensorID
iVector FSensorID
Array with the ID of the sensor inputs.
Definition: TController.h:43
TController::FResMediosCtrl
stResMediosCtrl FResMediosCtrl
Struct with the average results of the controllers.
Definition: TController.h:49
TSensor::Output
double Output()
Definition: TSensor.cpp:138
TController::LeeController
virtual void LeeController(const char *FileWAM, fpos_t &filepos)=0
TController::CabeceraResultadosMedControlador
virtual void CabeceraResultadosMedControlador(std::stringstream &medoutput)=0
TController::FResInstantCtrl
stResInstantCtrl FResInstantCtrl
Struct with the average results of the controllers.
Definition: TController.h:50
TController::FControl
nmControlMethod FControl
Type of controller.
Definition: TController.h:47
TSensor
Definition: TSensor.h:42
stGainInputController
Definition: TController.h:144
TController::Output
virtual double Output(double Time)=0
TController::IniciaMedias
virtual void IniciaMedias()=0
TController::ResultadosInstantController
virtual void ResultadosInstantController()=0
TController::~TController
~TController()
Definition: TController.cpp:50
TController::ResultadosMediosController
virtual void ResultadosMediosController()=0
TController::FSensor
std::vector< TSensor * > FSensor
Array with the pointers of the sensor inputs.
Definition: TController.h:40
TController::FControllerID
int FControllerID
ID of this controller.
Definition: TController.h:45