1 #include "sistemaautonomo.h"
\r
2 #include "slBrevePluginAPI.h"
\r
8 /////////////////////////// CTeoria /////////////////////////
\r
10 // pointer{Teoria} TeoriaNew(string, string, int, int)
\r
11 int SAbrTeoriaNew(brEval args[], brEval* result, void* data)
\r
13 result->set(new CTeoria(
\r
21 // void TeoriaSetDatoInicial(pointer{Teoria}, string, float)
\r
22 int SAbrTeoriaSetDatoInicial(brEval args[], brEval* result, void* data)
\r
24 CTeoria* t = (CTeoria*) BRPOINTER(args);
\r
25 t->datos_iniciales.set_val(BRSTRING(args+1), BRDOUBLE(args+2));
\r
29 // void TeoriaSetDatoFinal(pointer{Teoria}, string, float)
\r
30 int SAbrTeoriaSetDatoFinal(brEval args[], brEval* result, void* data)
\r
32 CTeoria* t = (CTeoria*) BRPOINTER(args);
\r
33 t->datos_finales.set_val(BRSTRING(args+1), BRDOUBLE(args+2));
\r
37 // string TeoriaGetNombre(pointer{Teoria})
\r
38 int SAbrTeoriaGetNombre(brEval args[], brEval* result, void* data)
\r
40 CTeoria* t = (CTeoria*) BRPOINTER(args);
\r
41 result->set(t->nombre.c_str());
\r
45 // string TeoriaGetAccion(pointer{Teoria})
\r
46 int SAbrTeoriaGetAccion(brEval args[], brEval* result, void* data)
\r
48 CTeoria* t = (CTeoria*) BRPOINTER(args);
\r
49 result->set(t->funcion.c_str());
\r
54 /////////////////////////// CSistemaAutonomo /////////////////////////
\r
56 // pointer{SistemaAutonomo} SistemaAutonomoNew()
\r
57 int SAbrSistemaAutonomoNew(brEval args[], brEval* result, void* data)
\r
59 result->set(new CSistemaAutonomo());
\r
63 // void SistemaAutonomoAddTeoria(pointer{SistemaAutonomo}, pointer{Teoria})
\r
64 int SAbrSistemaAutonomoAddTeoria(brEval args[], brEval* result, void* data)
\r
66 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
67 CTeoria* t = (CTeoria*) BRPOINTER(args+1);
\r
68 sa->teorias.add(t->nombre, t);
\r
70 std::cout << "Agrega teoria " << t->nombre << ":\n";
\r
71 std::cout << " .datos_iniciales:\n" << t->datos_iniciales << "\n";
\r
72 std::cout << " .datos_finales:\n" << t->datos_finales << "\n";
\r
77 // void SistemaAutonomoSetValue(pointer{SistemaAutonomo}, string, float)
\r
78 int SAbrSistemaAutonomoSetValue(brEval args[], brEval* result, void* data)
\r
80 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
81 sa->p_entorno->datos.set_val(BRSTRING(args+1), BRDOUBLE(args+2));
\r
85 // void SistemaAutonomoSetDatoFinal(pointer{SistemaAutonomo}, string, float)
\r
86 int SAbrSistemaAutonomoSetDatoFinal(brEval args[], brEval* result, void* data)
\r
88 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
89 sa->m_datos_finales.set_val(BRSTRING(args+1), BRDOUBLE(args+2));
\r
93 // void SistemaAutonomoPlan(pointer{SistemaAutonomo})
\r
94 int SAbrSistemaAutonomoPlan(brEval args[], brEval* result, void* data)
\r
96 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
101 // bool SistemaAutonomoHasNextTheory(pointer{SistemaAutonomo})
\r
102 int SAbrSistemaAutonomoHasNextTheory(brEval args[], brEval* result, void* data)
\r
104 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
105 result->set(sa->has_next_theory());
\r
109 // pointer{Teoria} SistemaAutonomoGetNextTheory(pointer{SistemaAutonomo})
\r
110 int SAbrSistemaAutonomoGetNextTheory(brEval args[], brEval* result, void* data)
\r
112 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
113 result->set(sa->get_next_theory());
\r
117 // bool SistemaAutonomoValidateTheory(pointer{SistemaAutonomo}, pointer{Teoria})
\r
118 int SAbrSistemaAutonomoValidateTheory(brEval args[], brEval* result, void* data)
\r
120 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
121 result->set(sa->validate_theory((CTeoria*) BRPOINTER(args+1)));
\r
125 // void SistemaAutonomoDelete(pointer{SistemaAutonomo})
\r
126 int SAbrSistemaAutonomoDelete(brEval args[], brEval* result, void* data)
\r
128 delete (CSistemaAutonomo*) BRPOINTER(args);
\r
133 DLLEXPORT void SAbrFunctions(void *data)
\r
135 brNewBreveCall(data, "TeoriaNew", SAbrTeoriaNew,
\r
136 AT_POINTER, AT_STRING, AT_STRING, AT_INT, AT_INT, 0);
\r
137 brNewBreveCall(data, "TeoriaSetDatoInicial", SAbrTeoriaSetDatoInicial,
\r
138 AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);
\r
139 brNewBreveCall(data, "TeoriaSetDatoFinal", SAbrTeoriaSetDatoFinal,
\r
140 AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);
\r
141 brNewBreveCall(data, "TeoriaGetNombre", SAbrTeoriaGetNombre,
\r
142 AT_STRING, AT_POINTER, 0);
\r
143 brNewBreveCall(data, "TeoriaGetAccion", SAbrTeoriaGetAccion,
\r
144 AT_STRING, AT_POINTER, 0);
\r
145 brNewBreveCall(data, "SistemaAutonomoNew", SAbrSistemaAutonomoNew,
\r
147 brNewBreveCall(data, "SistemaAutonomoAddTeoria", SAbrSistemaAutonomoAddTeoria,
\r
148 AT_NULL, AT_POINTER, AT_POINTER, 0);
\r
149 brNewBreveCall(data, "SistemaAutonomoSetValue", SAbrSistemaAutonomoSetValue,
\r
150 AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);
\r
151 brNewBreveCall(data, "SistemaAutonomoSetDatoFinal", SAbrSistemaAutonomoSetDatoFinal,
\r
152 AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);
\r
153 brNewBreveCall(data, "SistemaAutonomoPlan", SAbrSistemaAutonomoPlan,
\r
154 AT_NULL, AT_POINTER, 0);
\r
155 brNewBreveCall(data, "SistemaAutonomoHasNextTheory", SAbrSistemaAutonomoHasNextTheory,
\r
156 AT_INT, AT_POINTER, 0);
\r
157 brNewBreveCall(data, "SistemaAutonomoGetNextTheory", SAbrSistemaAutonomoGetNextTheory,
\r
158 AT_POINTER, AT_POINTER, 0);
\r
159 brNewBreveCall(data, "SistemaAutonomoValidateTheory", SAbrSistemaAutonomoValidateTheory,
\r
160 AT_INT, AT_POINTER, AT_POINTER, 0);
\r
161 brNewBreveCall(data, "SistemaAutonomoDelete", SAbrSistemaAutonomoDelete,
\r
162 AT_NULL, AT_POINTER, 0);
\r