]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Model/src/main.cpp
Ya se mandan seniales cuando se reciben comandos.
[z.facultad/75.42/plaqui.git] / Model / src / main.cpp
1
2 /* Test pedorro a ver que pasa con lo que esta programado!! */
3 /* Compilar : g++ -Wall -o test -I../include *.cpp */
4 #include "pump.h"
5 #include "conduct.h"
6 #include "union.h"
7 #include "splitter.h"
8 #include "drainage.h"
9 #include "exclusa.h"
10 #include <unistd.h>
11
12 using namespace std;
13 using namespace PlaQui::Model;
14
15 int main(int argc, char *argv[])
16 {
17         Pump *bomba1;
18         Exclusa *exclusa1;
19         Conduct *salida1;
20         Conduct *salida2;
21         Conduct *entrada;
22         Splitter *split;
23         Drainage *dren1, *dren2;
24         
25
26         bomba1 = new Pump("bomba");
27         bomba1->set_max_flow(30);
28         salida1 = new Conduct("salida_1");
29         salida1->set_max_flow(2);
30         salida2 = new Conduct("salida_2");
31         salida2->set_max_flow(5);
32         exclusa1 = new Exclusa("exclusa1");
33
34         split = new Splitter("splitter");
35         split->set_max_flow(8);
36         entrada = new Conduct("entrada");
37         entrada->set_max_flow(10);
38
39         dren1 = new Drainage("drenaje1");
40         dren2 = new Drainage("drenaje2");
41
42         bomba1->connect(exclusa1, IConector::OUT);
43         exclusa1->connect(bomba1, IConector::IN);
44         exclusa1->connect(entrada, IConector::OUT);
45         entrada->connect(exclusa1, IConector::IN);
46         entrada->connect(split, IConector::OUT);
47         split->connect(entrada, IConector::IN);
48         split->connect(salida1, IConector::OUT);
49         split->connect(salida2, IConector::OUT);
50         salida1->connect(split, IConector::IN);
51         salida2->connect(split, IConector::IN);
52         salida1->connect(dren1, IConector::OUT);
53         salida2->connect(dren2, IConector::OUT);
54
55         //// LOGICA DE CONTROL!!
56         // CONECTO LA SALIDA DE LA EXCLUSA A LA ENTRADA DE LA BOMBA
57         bomba1->connect_input_logic( exclusa1->get_logic_output() );
58
59         int i = 0;
60         while (i<10) {
61                 bomba1->update();
62                 exclusa1->update();
63                 salida1->update();
64                 salida2->update();
65                 entrada->update();
66                 split->update();
67                 dren1->update();
68                 dren2->update();
69
70                 bomba1->simulate();
71                 exclusa1->simulate();
72                 salida1->simulate();
73                 salida2->simulate();
74                 entrada->simulate();
75                 split->simulate();
76                 dren1->simulate();
77                 dren2->simulate();
78                                         
79                 sleep(1);
80                 if (i == 5) {
81                         //bomba1->deactivate();
82                         // Ahora cierro la exclusa!, la bomba deberia apagarse!!!
83                         exclusa1->close();
84                 }
85                 i++;
86         }
87
88         delete bomba1;
89         delete salida1;
90         delete salida2;
91         delete entrada;
92         delete split;
93         return 1;
94 }
95
96