]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Model/include/tank.h
El Transmitter ya anda bien (se puede escuchar con un nc -p [puerto] -l -u :).
[z.facultad/75.42/plaqui.git] / Model / include / tank.h
1
2
3 #ifndef _TANK_H_
4 #define _TANK_H_
5
6 #include "source.h"
7 #include "drain.h"
8
9 namespace PlaQui {
10         
11 namespace Model {
12
13 /** Tanque de Agua/Líquido
14  *
15  *  Se modela un tanque con una entrada y una salida. La cantidad máxima
16  *  de flujo entrante estará dada por la diferencia entre la capacidad
17  *  y la cantidad actual de líquido en el tanque.
18  *  La cantidad máxima de flujo que puede ofrecer a la salida está dada
19  *  por la cantidad de líquido en el tanque.
20  */ 
21 class Tank:public Source, public Drain {
22 public:
23         /// Constructor
24         Tank(const std::string &_name);
25         /// Destructor
26         virtual ~Tank();
27
28         virtual bool get_output();
29
30         virtual void recieve_msg(int msg, IConector *who, void *data);
31         virtual void update(int dir=OUT);
32         virtual void simulate();
33
34         void set_litros(float l) { litros = l; }
35 protected:
36         float litros;   ///< cantidad de líquido actual
37         float actual_in_flow; ///< flujo máximo a la entrada
38         float actual_out_flow; ///< flujo máximo de la salida
39 private:
40         Tank():Control("null"),Source("null"),Drain("null") {}
41         Tank &operator = (const Tank &) { return *this; } 
42 };
43
44 }
45 }
46
47 #endif // _TANK_H_
48