]> git.llucax.com Git - z.facultad/75.68/celdas.git/commitdiff
Construyo wrappers con la nueva interfaz que habíamos hablado para el sistema autónom...
authorLeandro Lucarella <llucax@gmail.com>
Sun, 10 Dec 2006 23:35:50 +0000 (23:35 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Sun, 10 Dec 2006 23:35:50 +0000 (23:35 +0000)
trunk/src/SistemaAutonomo.tz
trunk/src/plugin.cpp
trunk/src/sistemaautonomo.cpp

index d3246c839ac4bf00d3365affda61d0217cbbad3c..b5e01acf49585e9d85e3dbce27b744a522846239 100644 (file)
@@ -7,7 +7,7 @@ Object : Teoria (aka Teorias) {
        + variables:
                ptr (pointer).
 
-       + to init named name (string) with-action action (int)
+       + to init named name (string) with-action action (string)
                        executed k = 1 (int) succeeded p = 1 (int):
                ptr = TeoriaNew(name, action, k, p).
                
@@ -35,6 +35,23 @@ Object : SistemaAutonomo {
        + to add teoria theTeoria (object):
                SistemaAutonomoAddTeoria(ptr, (theTeoria get-ptr)).
 
+       + to set value theValue (float) with-name theName (string):
+               SistemaAutonomoSetValue(ptr, theName, theValue).
+
+       + to update entorno theEntorno (hash):
+               foreach nombre in keys(theEntorno): {
+                       self set value theEntorno{nombre} with-name nombre.
+               }
+
+       + to plan:
+               SistemaAutonomoPlan(ptr).
+
+       + to get-next-action:
+               return SistemaAutonomoGetNextAction(ptr).
+
+       + to validate-current-theory:
+               return SistemaAutonomoValidateCurrentTheory(ptr).
+
        + to destroy:
                SistemaAutonomoDelete(ptr).
 }
index 31d2ce1f813a0681fca1e3d7112d3c3e8ffbb095..ed52b4b3c0f78351cf69294663e293c6a961592f 100644 (file)
@@ -6,12 +6,13 @@
 \r
 double NoOp(CEntorno&) { return 0.0; } // FIXME (hack horrible porque no puedo usar ptr a fun)\r
 \r
-// pointer{Teoria} TeoriaNew(string, int, int, int)\r
+// pointer{Teoria} TeoriaNew(string, string, int, int)\r
 int SAbrTeoriaNew(brEval args[], brEval* result, void* data)\r
 {\r
        result->set(new CTeoria(\r
                BRSTRING(args),\r
                NoOp, // FIXME (no hay puntero a funcion, poner BRINT(args+1))\r
+               //BRSTRING(args+1),\r
                BRINT(args+2),\r
                BRINT(args+3)));\r
        return EC_OK;\r
@@ -59,6 +60,40 @@ int SAbrSistemaAutonomoAddTeoria(brEval args[], brEval* result, void* data)
        return EC_OK;\r
 }\r
 \r
+// void SistemaAutonomoSetValue(pointer{SistemaAutonomo}, string, float)\r
+int SAbrSistemaAutonomoSetValue(brEval args[], brEval* result, void* data)\r
+{\r
+       CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);\r
+       sa->p_entorno->datos.set_val(BRSTRING(args), BRDOUBLE(args+1));\r
+       return EC_OK;\r
+}\r
+\r
+// void SistemaAutonomoPlan(pointer{SistemaAutonomo})\r
+int SAbrSistemaAutonomoPlan(brEval args[], brEval* result, void* data)\r
+{\r
+       // TODO CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);\r
+       // TODO sa->plan();\r
+       return EC_OK;\r
+}\r
+\r
+// string SistemaAutonomoGetNextAction(pointer{SistemaAutonomo})\r
+int SAbrSistemaAutonomoGetNextAction(brEval args[], brEval* result, void* data)\r
+{\r
+       // TODO CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);\r
+       // TODO sa->get_next_action();\r
+       result->set("avanzar"); // FIXME\r
+       return EC_OK;\r
+}\r
+\r
+// bool SistemaAutonomoValidateCurrentTheory(pointer{SistemaAutonomo})\r
+int SAbrSistemaAutonomoValidateCurrentTheory(brEval args[], brEval* result, void* data)\r
+{\r
+       // TODO CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);\r
+       // TODO sa->validate_current_theory();\r
+       result->set(true); // FIXME\r
+       return EC_OK;\r
+}\r
+\r
 // void SistemaAutonomoDelete(pointer{SistemaAutonomo})\r
 int SAbrSistemaAutonomoDelete(brEval args[], brEval* result, void* data)\r
 {\r
@@ -70,7 +105,7 @@ int SAbrSistemaAutonomoDelete(brEval args[], brEval* result, void* data)
 DLLEXPORT void SAbrFunctions(void *data)\r
 {\r
        brNewBreveCall(data, "TeoriaNew", SAbrTeoriaNew,\r
-                      AT_POINTER, AT_STRING, AT_INT, AT_INT, AT_INT, 0);\r
+                      AT_POINTER, AT_STRING, AT_STRING, AT_INT, AT_INT, 0);\r
        brNewBreveCall(data, "TeoriaAddDatoInicial", SAbrTeoriaAddDatoInicial,\r
                       AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);\r
        brNewBreveCall(data, "TeoriaAddDatoFinal", SAbrTeoriaAddDatoFinal,\r
@@ -81,6 +116,14 @@ DLLEXPORT void SAbrFunctions(void *data)
                       AT_POINTER, 0);\r
        brNewBreveCall(data, "SistemaAutonomoAddTeoria", SAbrSistemaAutonomoAddTeoria,\r
                       AT_NULL, AT_POINTER, AT_POINTER, 0);\r
+       brNewBreveCall(data, "SistemaAutonomoSetValue", SAbrSistemaAutonomoSetValue,\r
+                      AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);\r
+       brNewBreveCall(data, "SistemaAutonomoPlan", SAbrSistemaAutonomoPlan,\r
+                      AT_NULL, AT_POINTER, 0);\r
+       brNewBreveCall(data, "SistemaAutonomoGetNextAction", SAbrSistemaAutonomoGetNextAction,\r
+                      AT_STRING, AT_POINTER, 0);\r
+       brNewBreveCall(data, "SistemaAutonomoValidateCurrentTheory", SAbrSistemaAutonomoValidateCurrentTheory,\r
+                      AT_INT, AT_POINTER, 0);\r
        brNewBreveCall(data, "SistemaAutonomoDelete", SAbrSistemaAutonomoDelete,\r
                       AT_NULL, AT_POINTER, 0);\r
 }\r
index 73394ea48f964180cce0494dd8e0c003cf879761..2b988f088856f06d4259455a2a03b187bba73bce 100644 (file)
@@ -73,10 +73,9 @@ void CSistemaAutonomo::heurisitca_generalizacion(CTeoria& t)
        CTeoria nt ; //Nueva Teoria
        unsigned i ;
        int count = 0;
-       int k = 0;
-       int j = 0;
+       unsigned k = 0;
+       unsigned j = 0;
        int posicionCambio = -1;
-       bool seguir = true;
        unsigned cantidadTeorias = 0;
        std::string nombreTeoria;