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(int, int)
\r
57 int SAbrSistemaAutonomoNew(brEval args[], brEval* result, void* data)
\r
59 result->set(new CSistemaAutonomo(BRINT(args), BRINT(args+1)));
\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 << ":\n";
\r
71 std::cout << "\tdatos_iniciales:\n" << t->datos_iniciales << "\n";
\r
72 std::cout << "\tdatos_finales:\n" << t->datos_finales << "\n";
\r
75 std::cout << "Agrega teoria: " << *t << "," << t->datos_iniciales << "," << t->datos_finales << "\n";
\r
80 // void SistemaAutonomoSetValue(pointer{SistemaAutonomo}, string, float)
\r
81 int SAbrSistemaAutonomoSetValue(brEval args[], brEval* result, void* data)
\r
83 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
84 sa->p_entorno->datos.set_val(BRSTRING(args+1), BRDOUBLE(args+2));
\r
88 // void SistemaAutonomoSetDatoFinal(pointer{SistemaAutonomo}, string, float)
\r
89 int SAbrSistemaAutonomoSetDatoFinal(brEval args[], brEval* result, void* data)
\r
91 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
92 sa->m_datos_finales.set_val(BRSTRING(args+1), BRDOUBLE(args+2));
\r
96 // void SistemaAutonomoPlan(pointer{SistemaAutonomo})
\r
97 int SAbrSistemaAutonomoPlan(brEval args[], brEval* result, void* data)
\r
99 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
104 // bool SistemaAutonomoHasNextTheory(pointer{SistemaAutonomo})
\r
105 int SAbrSistemaAutonomoHasNextTheory(brEval args[], brEval* result, void* data)
\r
107 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
108 result->set(sa->has_next_theory());
\r
112 // pointer{Teoria} SistemaAutonomoGetNextTheory(pointer{SistemaAutonomo})
\r
113 int SAbrSistemaAutonomoGetNextTheory(brEval args[], brEval* result, void* data)
\r
115 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
116 result->set(sa->get_next_theory());
\r
120 // bool SistemaAutonomoValidateTheory(pointer{SistemaAutonomo}, pointer{Teoria})
\r
121 int SAbrSistemaAutonomoValidateTheory(brEval args[], brEval* result, void* data)
\r
123 CSistemaAutonomo* sa = (CSistemaAutonomo*) BRPOINTER(args);
\r
124 result->set(sa->validate_theory((CTeoria*) BRPOINTER(args+1)));
\r
128 // void SistemaAutonomoDelete(pointer{SistemaAutonomo})
\r
129 int SAbrSistemaAutonomoDelete(brEval args[], brEval* result, void* data)
\r
131 delete (CSistemaAutonomo*) BRPOINTER(args);
\r
136 DLLEXPORT void SAbrFunctions(void *data)
\r
138 brNewBreveCall(data, "TeoriaNew", SAbrTeoriaNew,
\r
139 AT_POINTER, AT_STRING, AT_STRING, AT_INT, AT_INT, 0);
\r
140 brNewBreveCall(data, "TeoriaSetDatoInicial", SAbrTeoriaSetDatoInicial,
\r
141 AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);
\r
142 brNewBreveCall(data, "TeoriaSetDatoFinal", SAbrTeoriaSetDatoFinal,
\r
143 AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);
\r
144 brNewBreveCall(data, "TeoriaGetNombre", SAbrTeoriaGetNombre,
\r
145 AT_STRING, AT_POINTER, 0);
\r
146 brNewBreveCall(data, "TeoriaGetAccion", SAbrTeoriaGetAccion,
\r
147 AT_STRING, AT_POINTER, 0);
\r
148 brNewBreveCall(data, "SistemaAutonomoNew", SAbrSistemaAutonomoNew,
\r
149 AT_POINTER, AT_INT, AT_INT, 0);
\r
150 brNewBreveCall(data, "SistemaAutonomoAddTeoria", SAbrSistemaAutonomoAddTeoria,
\r
151 AT_NULL, AT_POINTER, AT_POINTER, 0);
\r
152 brNewBreveCall(data, "SistemaAutonomoSetValue", SAbrSistemaAutonomoSetValue,
\r
153 AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);
\r
154 brNewBreveCall(data, "SistemaAutonomoSetDatoFinal", SAbrSistemaAutonomoSetDatoFinal,
\r
155 AT_NULL, AT_POINTER, AT_STRING, AT_DOUBLE, 0);
\r
156 brNewBreveCall(data, "SistemaAutonomoPlan", SAbrSistemaAutonomoPlan,
\r
157 AT_NULL, AT_POINTER, 0);
\r
158 brNewBreveCall(data, "SistemaAutonomoHasNextTheory", SAbrSistemaAutonomoHasNextTheory,
\r
159 AT_INT, AT_POINTER, 0);
\r
160 brNewBreveCall(data, "SistemaAutonomoGetNextTheory", SAbrSistemaAutonomoGetNextTheory,
\r
161 AT_POINTER, AT_POINTER, 0);
\r
162 brNewBreveCall(data, "SistemaAutonomoValidateTheory", SAbrSistemaAutonomoValidateTheory,
\r
163 AT_INT, AT_POINTER, AT_POINTER, 0);
\r
164 brNewBreveCall(data, "SistemaAutonomoDelete", SAbrSistemaAutonomoDelete,
\r
165 AT_NULL, AT_POINTER, 0);
\r