executed k = 1 (int) succeeded p = 1 (int):
ptr = TeoriaNew(name, action, k, p).
- + to add-dato-inicial name theName (string) value theValue (float):
- TeoriaAddDatoInicial(ptr, theName, theValue).
+ + to set-dato-inicial name theName (string) value theValue (float):
+ TeoriaSetDatoInicial(ptr, theName, theValue).
- + to add-dato-final name theName (string) value theValue (float):
- TeoriaAddDatoFinal(ptr, theName, theValue).
+ + to set-dato-final name theName (string) value theValue (float):
+ TeoriaSetDatoFinal(ptr, theName, theValue).
+
+ + to get-nombre:
+ return TeoriaGetNombre(ptr).
+
+ + to get-accion:
+ return TeoriaGetAccion(ptr).
- to get-ptr:
return ptr.
+ - to set-ptr ptr p (pointer):
+ ptr = p.
+
+ to destroy:
TeoriaDelete(ptr).
}
SistemaAutonomoSetValue(ptr, theName, theValue).
+ to update entorno theEntorno (hash):
+ nombre (string).
foreach nombre in keys(theEntorno): {
+ print "Seteando valor de entorno ", nombre, " con ", theEntorno{nombre}.
self set value theEntorno{nombre} with-name nombre.
}
+ to plan:
SistemaAutonomoPlan(ptr).
- + to get-next-action:
- return SistemaAutonomoGetNextAction(ptr).
+ + to get-next-theory:
+ t (object).
+ t = new Teoria.
+ t set-ptr ptr SistemaAutonomoGetNextTheory(ptr).
+ return t.
- + to validate-current-theory:
- return SistemaAutonomoValidateCurrentTheory(ptr).
+ + to validate theory theTheory (object):
+ return SistemaAutonomoValidateTheory(ptr, (theTheory get-ptr)).
+ to destroy:
SistemaAutonomoDelete(ptr).
+ to init:
teorias (list).
sa (object).
+ teoria (object).
+ entorno (hash).
+ print "Llena entorno".
+ entorno{"sensor1"} = 10.5.
+ entorno{"sensor2"} = 1.5.
+
+ print "Crea Sistema autónomo".
sa = new SistemaAutonomo.
+
+ print "Crea Teorías".
teorias = 3 new Teorias.
teorias{0} init named "t1" with-action 1.
teorias{1} init named "t2" with-action 2.
teorias{2} init named "t3" with-action 3.
- (teorias{0}) add-dato-inicial name "sensor1" value 10.5.
- (teorias{0}) add-dato-inicial name "sensor2" value 0.5.
- (teorias{1}) add-dato-inicial name "sensor1" value 0.5.
- (teorias{1}) add-dato-inicial name "sensor2" value 10.5.
- (teorias{2}) add-dato-inicial name "sensor1" value 5.5.
- (teorias{2}) add-dato-inicial name "sensor2" value 5.5.
+ print "Carga datos a las teorías".
+ (teorias{0}) set-dato-inicial name "sensor1" value 10.5.
+ (teorias{0}) set-dato-inicial name "sensor2" value 0.5.
+ (teorias{1}) set-dato-inicial name "sensor1" value 0.5.
+ (teorias{1}) set-dato-inicial name "sensor2" value 10.5.
+ (teorias{2}) set-dato-inicial name "sensor1" value 5.5.
+ (teorias{2}) set-dato-inicial name "sensor2" value 5.5.
+ print "Agrega teorías al sistema autónomo".
sa add teoria (teorias{0}).
sa add teoria (teorias{1}).
sa add teoria (teorias{2}).
+ print "Actualiza entorno".
+ sa update entorno entorno.
+ print "Calcula el plan".
+ sa plan.
+ print "Obtiene próxima teoría".
+ teoria = sa get-next-theory.
+ print "Obtiene datos de la teoría teoría".
+ print(teoria get-nombre).
+ print(teoria get-accion).
+ print "Valida teoría".
+ if (sa validate theory teoria): {
+ print "valida".
+ }
free teorias{0}.
free teorias{1}.
return EC_OK;\r
}\r
\r
-// void TeoriaAddDatoInicial(pointer{Teoria}, string, float)\r
-int SAbrTeoriaAddDatoInicial(brEval args[], brEval* result, void* data)\r
+// void TeoriaSetDatoInicial(pointer{Teoria}, string, float)\r
+int SAbrTeoriaSetDatoInicial(brEval args[], brEval* result, void* data)\r
{\r
CTeoria* t = (CTeoria*) BRPOINTER(args);\r
- t->datos_iniciales.add(BRSTRING(args+1), BRINT(args+2));\r
+ t->datos_iniciales.set_val(BRSTRING(args+1), BRINT(args+2));\r
return EC_OK;\r
}\r
\r
-// void TeoriaAddDatoFinal(pointer{Teoria}, string, float)\r
-int SAbrTeoriaAddDatoFinal(brEval args[], brEval* result, void* data)\r
+// void TeoriaSetDatoFinal(pointer{Teoria}, string, float)\r
+int SAbrTeoriaSetDatoFinal(brEval args[], brEval* result, void* data)\r
{\r
CTeoria* t = (CTeoria*) BRPOINTER(args);\r
- t->datos_finales.add(BRSTRING(args+1), BRINT(args+2));\r
+ t->datos_finales.set_val(BRSTRING(args+1), BRINT(args+2));\r
+ return EC_OK;\r
+}\r
+\r
+// string TeoriaGetNombre(pointer{Teoria})\r
+int SAbrTeoriaGetNombre(brEval args[], brEval* result, void* data)\r
+{\r
+ CTeoria* t = (CTeoria*) BRPOINTER(args);\r
+ result->set(t->nombre.c_str());\r
+ return EC_OK;\r
+}\r
+\r
+// string TeoriaGetAccion(pointer{Teoria})\r
+int SAbrTeoriaGetAccion(brEval args[], brEval* result, void* data)\r
+{\r
+ // TODO CTeoria* t = (CTeoria*) BRPOINTER(args);\r
+ // TODO result->set(t->accion.c_str());\r
+ result->set("avanzar"); // FIXME\r
return EC_OK;\r
}\r
\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
+ sa->p_entorno->datos.set_val(BRSTRING(args+1), BRDOUBLE(args+2));\r
return EC_OK;\r
}\r
\r
return EC_OK;\r
}\r
\r
-// string SistemaAutonomoGetNextAction(pointer{SistemaAutonomo})\r
-int SAbrSistemaAutonomoGetNextAction(brEval args[], brEval* result, void* data)\r
+// pointer SistemaAutonomoGetNextTheory(pointer{SistemaAutonomo})\r
+int SAbrSistemaAutonomoGetNextTheory(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
+ // TODO result->set(sa->get_next_theory());\r
+ result->set(new CTeoria("test", NoOp, 1, 1)); // FIXME\r
return EC_OK;\r
}\r
\r
-// bool SistemaAutonomoValidateCurrentTheory(pointer{SistemaAutonomo})\r
-int SAbrSistemaAutonomoValidateCurrentTheory(brEval args[], brEval* result, void* data)\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 sa->validate_current_theory();\r
+ // TODO result->set(sa->validate_theory((CTeoria*) BRPOINTER(args+1)));\r
result->set(true); // FIXME\r
return EC_OK;\r
}\r
{\r
brNewBreveCall(data, "TeoriaNew", SAbrTeoriaNew,\r
AT_POINTER, AT_STRING, AT_STRING, AT_INT, AT_INT, 0);\r
- brNewBreveCall(data, "TeoriaAddDatoInicial", SAbrTeoriaAddDatoInicial,\r
+ brNewBreveCall(data, "TeoriaSetDatoInicial", SAbrTeoriaSetDatoInicial,\r
AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);\r
- brNewBreveCall(data, "TeoriaAddDatoFinal", SAbrTeoriaAddDatoFinal,\r
+ brNewBreveCall(data, "TeoriaSetDatoFinal", SAbrTeoriaSetDatoFinal,\r
AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);\r
+ brNewBreveCall(data, "TeoriaGetNombre", SAbrTeoriaGetNombre,\r
+ AT_STRING, AT_POINTER, 0);\r
+ brNewBreveCall(data, "TeoriaGetAccion", SAbrTeoriaGetAccion,\r
+ AT_STRING, AT_POINTER, 0);\r
brNewBreveCall(data, "TeoriaDelete", SAbrTeoriaDelete,\r
AT_NULL, AT_POINTER, 0);\r
brNewBreveCall(data, "SistemaAutonomoNew", SAbrSistemaAutonomoNew,\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, "SistemaAutonomoGetNextTheory", SAbrSistemaAutonomoGetNextTheory,\r
+ AT_POINTER, AT_POINTER, 0);\r
+ brNewBreveCall(data, "SistemaAutonomoValidateTheory", SAbrSistemaAutonomoValidateTheory,\r
+ AT_INT, AT_POINTER, AT_POINTER, 0);\r
brNewBreveCall(data, "SistemaAutonomoDelete", SAbrSistemaAutonomoDelete,\r
AT_NULL, AT_POINTER, 0);\r
}\r