#include "union.h"
#include "splitter.h"
#include "drainage.h"
+#include "exclusa.h"
#include <unistd.h>
using namespace std;
int main(int argc, char *argv[])
{
+/*
Pump *bomba1;
+ Exclusa *exclusa1;
Conduct *salida1;
Conduct *salida2;
Conduct *entrada;
salida1->set_max_flow(2);
salida2 = new Conduct("salida_2");
salida2->set_max_flow(5);
+ exclusa1 = new Exclusa("exclusa1");
split = new Splitter("splitter");
split->set_max_flow(8);
dren1 = new Drainage("drenaje1");
dren2 = new Drainage("drenaje2");
- bomba1->connect(entrada, IConector::OUT);
- entrada->connect(bomba1, IConector::IN);
+ bomba1->connect(exclusa1, IConector::OUT);
+ exclusa1->connect(bomba1, IConector::IN);
+ exclusa1->connect(entrada, IConector::OUT);
+ entrada->connect(exclusa1, IConector::IN);
entrada->connect(split, IConector::OUT);
split->connect(entrada, IConector::IN);
split->connect(salida1, IConector::OUT);
salida1->connect(dren1, IConector::OUT);
salida2->connect(dren2, IConector::OUT);
+ //// LOGICA DE CONTROL!!
+ // CONECTO LA SALIDA DE LA EXCLUSA A LA ENTRADA DE LA BOMBA
+ bomba1->connect_input_logic( exclusa1->get_logic_output() );
+
int i = 0;
while (i<10) {
bomba1->update();
+ exclusa1->update();
salida1->update();
salida2->update();
entrada->update();
dren2->update();
bomba1->simulate();
+ exclusa1->simulate();
salida1->simulate();
salida2->simulate();
entrada->simulate();
sleep(1);
if (i == 5) {
- bomba1->deactivate();
+ //bomba1->deactivate();
+ // Ahora cierro la exclusa!, la bomba deberia apagarse!!!
+ exclusa1->close();
}
i++;
}
delete salida2;
delete entrada;
delete split;
+*/
+
+
+ // TRATANDO DE HACER ANDAR AL UNION
+ Pump *p1, *p2;
+ Conduct *c1, *c2, *c3;
+ Drainage *d1;
+ Union *u1;
+
+ p1 = new Pump("Bomba 1");
+ p1->set_max_flow(100);
+ p2 = new Pump("Bomba 2");
+ p2->set_max_flow(100);
+ c1 = new Conduct("Para B1");
+ c1->set_max_flow(3);
+ c2 = new Conduct("Para B2");
+ c2->set_max_flow(4);
+ c3 = new Conduct("Salida");
+ c3->set_max_flow(6);
+ d1 = new Drainage("Drenaje");
+ u1 = new Union("Union");
+ u1->set_max_flow(5);
+
+ p1->connect(c1, IConector::OUT);
+ p2->connect(c2, IConector::OUT);
+ c1->connect(p1, IConector::IN);
+ c2->connect(p2, IConector::IN);
+
+ u1->connect(c1, IConector::IN);
+ u1->connect(c2, IConector::IN);
+ c1->connect(u1, IConector::OUT);
+ c2->connect(u1, IConector::OUT);
+
+ u1->connect(c3, IConector::OUT);
+ c3->connect(u1, IConector::IN);
+
+ c3->connect(d1, IConector::OUT);
+ d1->connect(c3, IConector::IN);
+
+ int i = 0;
+ while (i<8) {
+ p1->update();
+ p2->update();
+ c1->update();
+ c2->update();
+ c3->update();
+ d1->update();
+ u1->update();
+
+ p1->simulate();
+ p2->simulate();
+ c1->simulate();
+ c2->simulate();
+ c3->simulate();
+ d1->simulate();
+ u1->simulate();
+
+ sleep(1);
+ if (i == 3) {
+ p2->deactivate();
+ }
+ if (i == 6) {
+ p1->deactivate();
+ }
+ i++;
+ }
+
return 1;
}