]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Model/src/main.cpp
* Se agrega carga de lineas entre compuertas.
[z.facultad/75.42/plaqui.git] / Model / src / main.cpp
index 5a1c4e5c716dedc951927b1025e6cc27e813649e..8671daa9780011119fd8efbcc3d5ba9a3c68b54e 100644 (file)
 #include "drainage.h"
 #include "exclusa.h"
 #include <unistd.h>
+#include <iostream>
+#include "simulator.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;
-       
+       Simulator *sim = new Simulator(argv[1]);
 
-       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");
-
-       split = new Splitter("splitter");
-       split->set_max_flow(8);
-       entrada = new Conduct("entrada");
-       entrada->set_max_flow(10);
-
-       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;
-       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();
+       int i=0;
+       while (i<5) {
+               if (i==1) {
+                       sim->set_open("exclusa6", false);
+                       std::cout << "apagando" << std::endl;
                }
                i++;
+               sim->simulate();
+               std::cout << sim->get_state_as_xml() << std::endl << std::endl;
        }
 
-       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;
 }