X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/70d2e24643727ab1ea48e1793d609d27b7d21fed..f567cc2cc693372bb3f920f0eb068cde3dffaa44:/Model/src/main.cpp diff --git a/Model/src/main.cpp b/Model/src/main.cpp index 3fa359e..5a1c4e5 100644 --- a/Model/src/main.cpp +++ b/Model/src/main.cpp @@ -6,6 +6,7 @@ #include "union.h" #include "splitter.h" #include "drainage.h" +#include "exclusa.h" #include using namespace std; @@ -13,7 +14,9 @@ using namespace PlaQui::Model; int main(int argc, char *argv[]) { +/* Pump *bomba1; + Exclusa *exclusa1; Conduct *salida1; Conduct *salida2; Conduct *entrada; @@ -27,6 +30,7 @@ int main(int argc, char *argv[]) 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); @@ -36,8 +40,10 @@ int main(int argc, char *argv[]) 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); @@ -47,9 +53,14 @@ int main(int argc, char *argv[]) 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(); @@ -58,6 +69,7 @@ int main(int argc, char *argv[]) dren2->update(); bomba1->simulate(); + exclusa1->simulate(); salida1->simulate(); salida2->simulate(); entrada->simulate(); @@ -67,7 +79,9 @@ int main(int argc, char *argv[]) sleep(1); if (i == 5) { - bomba1->deactivate(); + //bomba1->deactivate(); + // Ahora cierro la exclusa!, la bomba deberia apagarse!!! + exclusa1->close(); } i++; } @@ -77,6 +91,73 @@ int main(int argc, char *argv[]) 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; }