X-Git-Url: https://git.llucax.com/z.facultad/75.68/celdas.git/blobdiff_plain/44029734cc5263d0548dc78ce9d71c43719d1ea7..aa254f01dc8753ddeb193ca980b38511a3cb5b88:/trunk/src/main.cpp?ds=sidebyside diff --git a/trunk/src/main.cpp b/trunk/src/main.cpp index 648505a..3886fcf 100644 --- a/trunk/src/main.cpp +++ b/trunk/src/main.cpp @@ -1,34 +1,14 @@ + #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) ; + datos.add("robot.avanzo_en_y", 0) ; + datos.add("robot.avanzo_en_z", 0) ; datos.add("robot.sensor_1", 0) ; datos.add("robot.sensor_2", 0) ; @@ -49,76 +29,84 @@ 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) { // - CMiEntorno e ; - CSistemaAutonomo< CMiEntorno > a(e) ; + CMiEntorno e ; + CSistemaAutonomo a ; + e.inicializar() ; // 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 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) ; + + a.teorias.add(t1.nombre.c_str(), t1) ; + a.teorias.add(t2.nombre.c_str(), t2) ; + a.teorias.add(t3.nombre.c_str(), t3) ; + + + // Inicializo el SA + a.p_entorno = (CEntorno*)(&e) ; // Obtengo un plan double p = 1 ; - CIndiceMagico* >* p_plan ; + CIndiceMagico plan ; CIndiceMagico datos_finales ; - + datos_finales.add ("robot.avanzo_en_x", 1) ; - p_plan = a.new_plan(datos_finales, p) ; + a.planificar (a.p_entorno->datos, datos_finales, plan, p) ; + + for (unsigned i=0; icount(); i++) - std::cout << (*p_plan)[i]->nombre << std::endl ; + // Ejecuto el plan +// a.ejecutar(plan) ; return 0 ;