]> git.llucax.com Git - z.facultad/75.68/celdas.git/blobdiff - trunk/src/plugin.cpp
Nueva versión del robot usando el sistema autónomo.
[z.facultad/75.68/celdas.git] / trunk / src / plugin.cpp
index c91f5704fcaa0ad8f81bfe70052b83073ac8556a..a1098e6a1b021f22f50207feac33611af352c857 100644 (file)
@@ -4,15 +4,12 @@
 \r
 /////////////////////////// CTeoria /////////////////////////\r
 \r
 \r
 /////////////////////////// CTeoria /////////////////////////\r
 \r
-double NoOp(CEntorno&) { return 0.0; } // FIXME (hack horrible porque no puedo usar ptr a fun)\r
-\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
 // 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
+               BRSTRING(args+1),\r
                BRINT(args+2),\r
                BRINT(args+3)));\r
        return EC_OK;\r
                BRINT(args+2),\r
                BRINT(args+3)));\r
        return EC_OK;\r
@@ -85,29 +82,43 @@ int SAbrSistemaAutonomoSetValue(brEval args[], brEval* result, void* data)
        return EC_OK;\r
 }\r
 \r
        return EC_OK;\r
 }\r
 \r
+// void SistemaAutonomoSetDatoFinal(pointer{SistemaAutonomo}, string, float)\r
+int SAbrSistemaAutonomoSetDatoFinal(brEval args[], brEval* result, void* data)\r
+{\r
+       CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);\r
+       sa->m_datos_finales.set_val(BRSTRING(args+1), BRDOUBLE(args+2));\r
+       return EC_OK;\r
+}\r
+\r
 // void SistemaAutonomoPlan(pointer{SistemaAutonomo})\r
 int SAbrSistemaAutonomoPlan(brEval args[], brEval* result, void* data)\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
+       CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);\r
+       sa->plan();\r
        return EC_OK;\r
 }\r
 \r
        return EC_OK;\r
 }\r
 \r
-// pointer SistemaAutonomoGetNextTheory(pointer{SistemaAutonomo})\r
+// bool SistemaAutonomoHasNextTheory(pointer{SistemaAutonomo})\r
+int SAbrSistemaAutonomoHasNextTheory(brEval args[], brEval* result, void* data)\r
+{\r
+       CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);\r
+       result->set(sa->has_next_theory());\r
+       return EC_OK;\r
+}\r
+\r
+// pointer{Teoria} SistemaAutonomoGetNextTheory(pointer{SistemaAutonomo})\r
 int SAbrSistemaAutonomoGetNextTheory(brEval args[], brEval* result, void* data)\r
 {\r
 int SAbrSistemaAutonomoGetNextTheory(brEval args[], brEval* result, void* data)\r
 {\r
-       // TODO CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);\r
-       // TODO result->set(sa->get_next_theory());\r
-       result->set(new CTeoria("test", NoOp, 1, 1)); // FIXME\r
+       CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);\r
+       result->set(sa->get_next_theory());\r
        return EC_OK;\r
 }\r
 \r
 // bool SistemaAutonomoValidateTheory(pointer{SistemaAutonomo}, pointer{Teoria})\r
 int SAbrSistemaAutonomoValidateTheory(brEval args[], brEval* result, void* data)\r
 {\r
        return EC_OK;\r
 }\r
 \r
 // bool SistemaAutonomoValidateTheory(pointer{SistemaAutonomo}, pointer{Teoria})\r
 int SAbrSistemaAutonomoValidateTheory(brEval args[], brEval* result, void* data)\r
 {\r
-       // TODO CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);\r
-       // TODO result->set(sa->validate_theory((CTeoria*) BRPOINTER(args+1)));\r
-       result->set(true); // FIXME\r
+       CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);\r
+       result->set(sa->validate_theory((CTeoria*) BRPOINTER(args+1)));\r
        return EC_OK;\r
 }\r
 \r
        return EC_OK;\r
 }\r
 \r
@@ -139,8 +150,12 @@ DLLEXPORT void SAbrFunctions(void *data)
                       AT_NULL, AT_POINTER, AT_POINTER, 0);\r
        brNewBreveCall(data, "SistemaAutonomoSetValue", SAbrSistemaAutonomoSetValue,\r
                       AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);\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, "SistemaAutonomoSetDatoFinal", SAbrSistemaAutonomoSetDatoFinal,\r
+                      AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);\r
        brNewBreveCall(data, "SistemaAutonomoPlan", SAbrSistemaAutonomoPlan,\r
                       AT_NULL, AT_POINTER, 0);\r
        brNewBreveCall(data, "SistemaAutonomoPlan", SAbrSistemaAutonomoPlan,\r
                       AT_NULL, AT_POINTER, 0);\r
+       brNewBreveCall(data, "SistemaAutonomoHasNextTheory", SAbrSistemaAutonomoHasNextTheory,\r
+                      AT_INT, AT_POINTER, 0);\r
        brNewBreveCall(data, "SistemaAutonomoGetNextTheory", SAbrSistemaAutonomoGetNextTheory,\r
                       AT_POINTER, AT_POINTER, 0);\r
        brNewBreveCall(data, "SistemaAutonomoValidateTheory", SAbrSistemaAutonomoValidateTheory,\r
        brNewBreveCall(data, "SistemaAutonomoGetNextTheory", SAbrSistemaAutonomoGetNextTheory,\r
                       AT_POINTER, AT_POINTER, 0);\r
        brNewBreveCall(data, "SistemaAutonomoValidateTheory", SAbrSistemaAutonomoValidateTheory,\r