]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Model/include/condition.h
* Se agrega carga de lineas entre compuertas.
[z.facultad/75.42/plaqui.git] / Model / include / condition.h
1
2 #ifndef _CONDITION_H_
3 #define _CONDITION_H_
4
5 #include "logiccontrol.h"
6 #include <iostream>
7 #include <limits.h>
8 #include "tank.h"
9
10 namespace PlaQui {
11 namespace Model {
12
13 /** Verificador de condición de nivel 
14  *
15  */
16 class Condition:public LogicControl {
17 public:
18         typedef enum {LT,GT} t_C;
19                                 
20         Condition(t_C c, float _percent, Tank *who):LogicControl(1,1)
21         {
22                 control = who;
23                 percent = _percent;
24                 cond = c;
25         }
26         virtual ~Condition() {}
27
28         virtual bool get_output() {
29                 /* Obtengo el contenido */
30                 float litros = control->get_litros();
31                 /* y la capacidad */
32                 float capac = control->get_capacity();
33                 float tmp;
34                 /* Calculo el % de liquido en el tanque */
35                 tmp = litros / capac;
36                 switch (cond) {
37                         case LT:
38                                 return (tmp < percent);
39                         case GT:
40                                 return (tmp > percent);
41                 }
42         }
43 protected:
44         /// Objeto a controlar
45         Tank *control;
46         /* tipo de condicion */
47         t_C cond;
48         /* porcentaje */
49         float percent;
50 };
51
52 }
53 }
54
55 #endif // _Cpndition_H_
56