X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/0aacdcf95cf6d4f33a2201160d472ab84148d52b..d53ded00c10a30a17c7f0aad90acca933a7f4db9:/Model/src/main.cpp?ds=sidebyside diff --git a/Model/src/main.cpp b/Model/src/main.cpp index 5f9187e..ab4f7f6 100644 --- a/Model/src/main.cpp +++ b/Model/src/main.cpp @@ -8,88 +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; + delete sim; return 1; }