#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
}
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 ;
//
-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) ;
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) ;
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) ;
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 ;