X-Git-Url: https://git.llucax.com/z.facultad/75.68/celdas.git/blobdiff_plain/44029734cc5263d0548dc78ce9d71c43719d1ea7..07a7e06dfcbacb8647f8bffdb117fc7e5f416ba8:/trunk/src/main.cpp?ds=sidebyside diff --git a/trunk/src/main.cpp b/trunk/src/main.cpp index 648505a..93ad8a6 100644 --- a/trunk/src/main.cpp +++ b/trunk/src/main.cpp @@ -1,38 +1,19 @@ + #include "main.h" +#include // -double CMiEntorno::AvanzarX() -{ - avanzo_en_x = true ; - return 0 ; -} - - -double CMiEntorno::AvanzarY() -{ - avanzo_en_y = true ; - return 0 ; -} - - -double CMiEntorno::AvanzarZ() -{ - avanzo_en_z = true ; - return 0 ; -} - - -CMiEntorno::CMiEntorno(): - avanzo_en_x(true), avanzo_en_y(true), avanzo_en_z(true) +void CMiEntorno::inicializar() { // Inicializo el Entorno - datos.add("robot.avanzo_en_x", 1) ; - datos.add("robot.avanzo_en_y", 1) ; - datos.add("robot.avanzo_en_z", 1) ; + datos.add("robot.avanzo_en_x", 0) ; + // old datos.add("robot.avanzo_en_y", 0) ; + // old datos.add("robot.avanzo_en_z", 0) ; datos.add("robot.sensor_1", 0) ; datos.add("robot.sensor_2", 0) ; datos.add("robot.sensor_3", 0) ; + datos.add("robot.sensor_4", 0) ; // new } @@ -41,6 +22,7 @@ void CMiEntorno::actualizar() datos.find("robot.sensor_1") = sensor_1 ; datos.find("robot.sensor_2") = sensor_2 ; datos.find("robot.sensor_3") = sensor_3 ; + datos.find("robot.sensor_4") = 20 ; // new datos.find("robot.avanzo_en_x") = avanzo_en_x?1:0 ; datos.find("robot.avanzo_en_y") = avanzo_en_y?1:0 ; @@ -49,76 +31,119 @@ void CMiEntorno::actualizar() } -struct CMiTeoria1: CTeoria< CMiEntorno > -{ - CMiTeoria1(CMiEntorno& e): - CTeoria< CMiEntorno >("Avanzar_X_1", 1, 1, e) - { - datos_iniciales.add ("robot.sensor_1", 0) ; - datos_finales.add ("robot.avanzo_en_x", 1) ; - } - double funcion() - { - entorno.avanzo_en_x = true ; - return 0 ; - } -}; - -struct CMiTeoria2: CTeoria< CMiEntorno > -{ - CMiTeoria2(CMiEntorno& e): - CTeoria< CMiEntorno >("Avanzar_Y_1", 1, 1, e) - { - datos_iniciales.add ("robot.sensor_2", 0) ; - datos_finales.add ("robot.avanzo_en_y", 1) ; - } - double funcion() - { - entorno.avanzo_en_y = true ; - return 0 ; - } -}; - -struct CMiTeoria3: CTeoria< CMiEntorno > -{ - CMiTeoria3(CMiEntorno& e): - CTeoria< CMiEntorno >("Avanzar_Z_1", 1, 1, e) - { - datos_iniciales.add ("robot.sensor_3", 0) ; - datos_finales.add ("robot.avanzo_en_z", 1) ; - } - double funcion() - { - entorno.avanzo_en_z = true ; - return 0 ; - } -}; + // -int main(int argc, char** argv) +int main(int argc, char* argv[]) { // - CMiEntorno e ; - CSistemaAutonomo< CMiEntorno > a(e) ; + CMiEntorno* e = new CMiEntorno; + CSistemaAutonomo a ; + + e->inicializar() ; + +/* OLD + // Inicializo las teorias + CTeoria t1("Avanzar_X_1", "AvanzarX", 1, 1) ; + t1.datos_iniciales.add ("robot.sensor_1", 0) ; + t1.datos_iniciales.add ("robot.sensor_2", ANY) ; + t1.datos_iniciales.add ("robot.sensor_3", ANY) ; + t1.datos_iniciales.add ("robot.avanzo_en_x", ANY) ; + t1.datos_iniciales.add ("robot.avanzo_en_y", ANY) ; + t1.datos_iniciales.add ("robot.avanzo_en_z", ANY) ; + t1.datos_finales.add ("robot.avanzo_en_x", 1) ; + t1.datos_finales.add ("robot.avanzo_en_y", ANY) ; + t1.datos_finales.add ("robot.avanzo_en_z", ANY) ; + t1.datos_finales.add ("robot.sensor_1", ANY) ; + t1.datos_finales.add ("robot.sensor_2", ANY) ; + t1.datos_finales.add ("robot.sensor_3", ANY) ; + + CTeoria t2("Avanzar_Y_1", "AvanzarY", 1, 1) ; + t2.datos_iniciales.add ("robot.sensor_1", ANY) ; + t2.datos_iniciales.add ("robot.sensor_2", 0) ; + t2.datos_iniciales.add ("robot.sensor_3", ANY) ; + t2.datos_iniciales.add ("robot.avanzo_en_x", ANY) ; + t2.datos_iniciales.add ("robot.avanzo_en_y", ANY) ; + t2.datos_iniciales.add ("robot.avanzo_en_z", ANY) ; + t2.datos_finales.add ("robot.avanzo_en_x", 0) ; + t2.datos_finales.add ("robot.avanzo_en_y", 1) ; + t2.datos_finales.add ("robot.avanzo_en_z", 0) ; + t2.datos_finales.add ("robot.sensor_1", ANY) ; + t2.datos_finales.add ("robot.sensor_2", ANY) ; + t2.datos_finales.add ("robot.sensor_3", ANY) ; + + CTeoria t3("Avanzar_Z_1", "AvanzarZ", 1, 1) ; + t3.datos_iniciales.add ("robot.sensor_1", ANY) ; + t3.datos_iniciales.add ("robot.sensor_2", ANY) ; + t3.datos_iniciales.add ("robot.sensor_3", 0) ; + t3.datos_iniciales.add ("robot.avanzo_en_x", ANY) ; + t3.datos_iniciales.add ("robot.avanzo_en_y", ANY) ; + t3.datos_iniciales.add ("robot.avanzo_en_z", ANY) ; + t3.datos_finales.add ("robot.avanzo_en_x", 0) ; + t3.datos_finales.add ("robot.avanzo_en_y", 0) ; + t3.datos_finales.add ("robot.avanzo_en_z", 1) ; + t3.datos_finales.add ("robot.sensor_1", ANY) ; + t3.datos_finales.add ("robot.sensor_2", ANY) ; + t3.datos_finales.add ("robot.sensor_3", ANY) ; +*/ + // Inicializo las teorias + CTeoria t1("Avanzar_X_1", "AvanzarX", 1, 1) ; + t1.datos_iniciales.add ("robot.sensor_1", ANY) ; + t1.datos_iniciales.add ("robot.sensor_2", ANY) ; + t1.datos_iniciales.add ("robot.sensor_3", ANY) ; + t1.datos_iniciales.add ("robot.sensor_4", ANY) ; + t1.datos_iniciales.add ("robot.avanzo_en_x", ANY) ; + t1.datos_finales.add ("robot.avanzo_en_x", ANY) ; + t1.datos_finales.add ("robot.sensor_1", ANY) ; + t1.datos_finales.add ("robot.sensor_2", ANY) ; + t1.datos_finales.add ("robot.sensor_3", ANY) ; + t1.datos_finales.add ("robot.sensor_4", ANY) ; // Inicializo las teorias - a.teorias.add("teoria1", new CMiTeoria1(e)) ; - a.teorias.add("teoria2", new CMiTeoria2(e)) ; - a.teorias.add("teoria3", new CMiTeoria3(e)) ; + CTeoria t2("Avanzar_X_2", "AvanzarX", 1, 1) ; + t2.datos_iniciales.add ("robot.sensor_1", ANY) ; + t2.datos_iniciales.add ("robot.sensor_2", ANY) ; + t2.datos_iniciales.add ("robot.sensor_3", ANY) ; + t2.datos_iniciales.add ("robot.sensor_4", ANY) ; + t2.datos_iniciales.add ("robot.avanzo_en_x", ANY) ; + t2.datos_finales.add ("robot.avanzo_en_x", ANY) ; + t2.datos_finales.add ("robot.sensor_1", ANY) ; + t2.datos_finales.add ("robot.sensor_2", ANY) ; + t2.datos_finales.add ("robot.sensor_3", ANY) ; + t2.datos_finales.add ("robot.sensor_4", ANY) ; + + a.teorias.add(t1.nombre.c_str(), t1) ; + a.teorias.add(t2.nombre.c_str(), t2) ; + // OLD a.teorias.add(t3.nombre.c_str(), t3) ; + + + // Inicializo el SA + delete a.p_entorno; + a.p_entorno = e; // Obtengo un plan double p = 1 ; - CIndiceMagico* >* p_plan ; - CIndiceMagico datos_finales ; + CIndiceMagico plan ; + CIndiceMagico datos_finales; + + a.m_datos_finales.add ("robot.avanzo_en_x", 1) ; + a.plan(); + for (unsigned i=0; idatos, datos_finales, plan, p) ; - datos_finales.add ("robot.avanzo_en_x", 1) ; +// for (unsigned i=0; icount(); i++) - std::cout << (*p_plan)[i]->nombre << std::endl ; + // Ejecuto el plan +// a.ejecutar(plan) ; return 0 ;