]> git.llucax.com Git - z.facultad/75.68/celdas.git/blobdiff - trunk/src/main.cpp
Encontré el bug hijoderemilputa!!! Mea culpa, mea culpa, mea culpa...
[z.facultad/75.68/celdas.git] / trunk / src / main.cpp
index a2598050905229e5d04c67105d56d18485dc2fd0..93ad8a6020c865ec7a07fb4ef45a99bbd23dfa5a 100644 (file)
@@ -2,39 +2,18 @@
 #include "main.h"
 #include <iostream>
 
-//
-double AvanzarX(CEntorno& e)
-{
-       avanzo_en_x = true ;
-       return 0 ;
-}
-
-
-double AvanzarY(CEntorno& e)
-{
-       avanzo_en_y = true ;
-       return 0 ;
-}
-
-
-double AvanzarZ(CEntorno& e)
-{
-       avanzo_en_z = true ;
-       return 0 ;
-}
-
-
 //
 void CMiEntorno::inicializar()
 {
        // Inicializo el Entorno
        datos.add("robot.avanzo_en_x", 0) ;
-       datos.add("robot.avanzo_en_y", 0) ;
-       datos.add("robot.avanzo_en_z", 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
 }
 
 
@@ -43,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 ;
@@ -54,16 +34,17 @@ void CMiEntorno::actualizar()
 
 
 //
-int main(int argc, char** argv)
+int main(int argc, char* argv[])
 {
        //
-       CMiEntorno                              e ;
+       CMiEntorno*                     e = new CMiEntorno;
        CSistemaAutonomo                a ;
 
-       e.inicializar() ;
+       e->inicializar() ;
 
+/* OLD
        // Inicializo las teorias
-       CTeoria t1("Avanzar_X_1", &AvanzarX, 1, 1) ;
+       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) ;
@@ -71,13 +52,13 @@ int main(int argc, char** argv)
        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", 0) ;
-       t1.datos_finales.add ("robot.avanzo_en_z", 0) ;
+       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) ;
+       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) ;
@@ -91,7 +72,7 @@ int main(int argc, char** argv)
        t2.datos_finales.add ("robot.sensor_2", ANY) ;
        t2.datos_finales.add ("robot.sensor_3", ANY) ;
 
-       CTeoria t3("Avanzar_Z_1", &AvanzarZ, 1, 1) ;
+       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) ;
@@ -104,31 +85,65 @@ int main(int argc, char** argv)
        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
+       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) ;
-       a.teorias.add(t3.nombre.c_str(), t3) ;
+       // OLD a.teorias.add(t3.nombre.c_str(), t3) ;
 
        
        // Inicializo el SA
-       a.p_entorno = (CEntorno*)(&e) ;
+       delete a.p_entorno;
+       a.p_entorno = e;
 
 
        // Obtengo un plan
        double p = 1 ;
        CIndiceMagico<CTeoria> plan ;
-       CIndiceMagico<t_dato> datos_finales ;
+       CIndiceMagico<t_dato> datos_finales;
+
+       a.m_datos_finales.add ("robot.avanzo_en_x", 1) ;
+       a.plan();
+       for (unsigned i=0; i<a.m_plan.count(); i++)
+               std::cout << a.m_plan[i].nombre.c_str() << std::endl ;
+
  
-       datos_finales.add ("robot.avanzo_en_y", 1) ;
+//     datos_finales.add ("robot.avanzo_en_x", 1) ;
 
-       a.planificar (a.p_entorno->datos, datos_finales, plan, p) ;
+//     a.planificar (a.p_entorno->datos, datos_finales, plan, p) ;
 
-       for (unsigned i=0; i<plan.count(); i++)
-               std::cout << plan[i].nombre.c_str() << std::endl ;
+//     for (unsigned i=0; i<plan.count(); i++)
+//             std::cout << plan[i].nombre.c_str() << std::endl ;
 
 
        // Ejecuto el plan
-       a.ejecutar(plan) ;
+//     a.ejecutar(plan) ;
 
 
        return 0 ;