X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/f567cc2cc693372bb3f920f0eb068cde3dffaa44..31b3e321726d5c3fe720dd216687d3138523714f:/Model/src/main.cpp diff --git a/Model/src/main.cpp b/Model/src/main.cpp index 5a1c4e5..ab4f7f6 100644 --- a/Model/src/main.cpp +++ b/Model/src/main.cpp @@ -8,156 +8,39 @@ #include "drainage.h" #include "exclusa.h" #include +#include +#include "simulador.h" using namespace std; using namespace PlaQui::Model; int main(int argc, char *argv[]) { -/* - Pump *bomba1; - Exclusa *exclusa1; - Conduct *salida1; - Conduct *salida2; - Conduct *entrada; - Splitter *split; - Drainage *dren1, *dren2; - + Simulador *sim = new Simulador(); - 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"); + sim->add_pump("bomba1"); + sim->add_conduct("c"); + sim->add_conduct("c1"); + sim->add_drainage("d"); + sim->add_tank("tanque"); - split = new Splitter("splitter"); - split->set_max_flow(8); - entrada = new Conduct("entrada"); - entrada->set_max_flow(10); + sim->connect("bomba1", "c", IConector::OUT); + sim->connect("c", "tanque", IConector::OUT); + sim->connect("tanque", "c1", IConector::OUT); + sim->connect("c1", "d", IConector::OUT); - dren1 = new Drainage("drenaje1"); - dren2 = new Drainage("drenaje2"); - - 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); - - //// 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; + int i=0; while (i<10) { - bomba1->update(); - exclusa1->update(); - salida1->update(); - salida2->update(); - entrada->update(); - split->update(); - dren1->update(); - dren2->update(); - - bomba1->simulate(); - exclusa1->simulate(); - salida1->simulate(); - salida2->simulate(); - entrada->simulate(); - split->simulate(); - dren1->simulate(); - dren2->simulate(); - - sleep(1); - if (i == 5) { - //bomba1->deactivate(); - // Ahora cierro la exclusa!, la bomba deberia apagarse!!! - exclusa1->close(); + sim->simulate(); + if (i == 4) { + if (!sim->pump_deactivate("bomba1")) { + std::cout << "c no es pump :-)" << std::endl; + } } i++; } - delete bomba1; - 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++; - } - + delete sim; return 1; }