X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/b75b5632c75f245e59a00775ffbe0affdedf8b6c..f567cc2cc693372bb3f920f0eb068cde3dffaa44:/Model/src/main.cpp?ds=sidebyside diff --git a/Model/src/main.cpp b/Model/src/main.cpp index 01f9ecb..5a1c4e5 100644 --- a/Model/src/main.cpp +++ b/Model/src/main.cpp @@ -1,9 +1,12 @@ /* Test pedorro a ver que pasa con lo que esta programado!! */ /* Compilar : g++ -Wall -o test -I../include *.cpp */ -#include "bomb.h" +#include "pump.h" #include "conduct.h" #include "union.h" +#include "splitter.h" +#include "drainage.h" +#include "exclusa.h" #include using namespace std; @@ -11,70 +14,150 @@ using namespace PlaQui::Model; int main(int argc, char *argv[]) { - Bomb *bomba1, *bomba2; - Conduct *canio1; - Conduct *canio2; - Conduct *salida; - Union *union1; +/* + Pump *bomba1; + Exclusa *exclusa1; + Conduct *salida1; + Conduct *salida2; + Conduct *entrada; + Splitter *split; + Drainage *dren1, *dren2; - bomba1 = new Bomb("bomba1"); - bomba1->set_max_flow(3); - bomba2 = new Bomb("bomba2"); - bomba2->set_max_flow(5); - canio1 = new Conduct("cond_1"); - canio1->set_max_flow(5); - canio2 = new Conduct("cond_2"); - canio2->set_max_flow(5); + bomba1 = new Pump("bomba"); + bomba1->set_max_flow(30); + salida1 = new Conduct("salida_1"); + salida1->set_max_flow(2); + salida2 = new Conduct("salida_2"); + salida2->set_max_flow(5); + exclusa1 = new Exclusa("exclusa1"); - union1 = new Union("union"); - union1->set_max_flow(5); - salida = new Conduct("salida"); - salida->set_max_flow(10); + split = new Splitter("splitter"); + split->set_max_flow(8); + entrada = new Conduct("entrada"); + entrada->set_max_flow(10); - bomba1->connect(canio1, IConector::OUT); - canio1->connect(bomba1, IConector::IN); - canio1->connect(union1, IConector::OUT); + dren1 = new Drainage("drenaje1"); + dren2 = new Drainage("drenaje2"); - bomba2->connect(canio2, IConector::OUT); - canio2->connect(bomba2, IConector::IN); - canio2->connect(union1, IConector::OUT); + 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); + split->connect(salida2, IConector::OUT); + salida1->connect(split, IConector::IN); + salida2->connect(split, IConector::IN); + salida1->connect(dren1, IConector::OUT); + salida2->connect(dren2, IConector::OUT); - union1->connect(canio1, IConector::IN); - union1->connect(canio2, IConector::IN); - union1->connect(salida, IConector::OUT); - - salida->connect(union1, IConector::IN); + //// 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(); - bomba2->update(); - canio1->update(); - canio2->update(); - salida->update(); - union1->update(); + exclusa1->update(); + salida1->update(); + salida2->update(); + entrada->update(); + split->update(); + dren1->update(); + dren2->update(); bomba1->simulate(); - bomba2->simulate(); - canio1->simulate(); - canio2->simulate(); - salida->simulate(); - union1->simulate(); + exclusa1->simulate(); + salida1->simulate(); + salida2->simulate(); + entrada->simulate(); + split->simulate(); + dren1->simulate(); + dren2->simulate(); sleep(1); if (i == 5) { - bomba1->deactivate(); + //bomba1->deactivate(); + // Ahora cierro la exclusa!, la bomba deberia apagarse!!! + exclusa1->close(); } i++; } delete bomba1; - delete bomba2; - delete canio1; - delete canio2; - delete salida; - delete union1; + delete salida1; + 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; }