4 Controller SistemaAutonomoController.
6 Control : SistemaAutonomoController {
15 print "Crea Sistema autonomo".
16 sa = new SistemaAutonomo.
17 sa init with-max-pasos 4 with-max-teorias 15.
19 print "Llena entorno".
20 entorno{"sensor1"} = 0.
21 entorno{"sensor2"} = 0.
22 entorno{"sensor3"} = 0.
23 entorno{"sensor4"} = 0.
24 entorno{"movido"} = 0.
26 print "Actualiza entorno".
27 sa update-entorno with entorno.
29 print "Crea Teoria 1".
30 teorias = 2 new Teorias.
31 teorias{0} init named "avanzar X 1" with-action "avanzarX".
33 print "Carga datos iniciales Teoria 1".
34 (teorias{0}) set-dato-inicial name "sensor1" value ANY.
35 (teorias{0}) set-dato-inicial name "sensor2" value ANY.
36 (teorias{0}) set-dato-inicial name "sensor3" value ANY.
37 (teorias{0}) set-dato-inicial name "sensor4" value ANY.
38 (teorias{0}) set-dato-inicial name "movido" value ANY.
40 print "Carga datos finales Teoria 1".
41 (teorias{0}) set-dato-final name "sensor1" value ANY.
42 (teorias{0}) set-dato-final name "sensor2" value ANY.
43 (teorias{0}) set-dato-final name "sensor3" value ANY.
44 (teorias{0}) set-dato-final name "sensor4" value ANY.
45 (teorias{0}) set-dato-final name "movido" value ANY.
47 print "Crea Teoria 2".
48 teorias{1} init named "avanzar X 2" with-action "avanzarX".
50 print "Carga datos iniciales Teoria 2".
51 (teorias{1}) set-dato-inicial name "sensor1" value ANY.
52 (teorias{1}) set-dato-inicial name "sensor2" value ANY.
53 (teorias{1}) set-dato-inicial name "sensor3" value ANY.
54 (teorias{1}) set-dato-inicial name "sensor4" value ANY.
55 (teorias{1}) set-dato-inicial name "movido" value ANY.
57 print "Carga datos finales Teoria 1".
58 (teorias{1}) set-dato-final name "sensor1" value ANY.
59 (teorias{1}) set-dato-final name "sensor2" value ANY.
60 (teorias{1}) set-dato-final name "sensor3" value ANY.
61 (teorias{1}) set-dato-final name "sensor4" value ANY.
62 (teorias{1}) set-dato-final name "movido" value ANY.
64 print "Agrega teorias al sistema autonomo".
65 sa add teoria (teorias{0}).
66 sa add teoria (teorias{1}).
68 print "Ponemos condicion final esperada para el plan".
69 datos-finales{"movido"} = 1.
70 sa update-datos-finales with datos-finales.
72 print "Calcula el plan".
75 print "Vemos si tiene una teoria mas".
76 while (sa has-next-theory): {
79 print "Obtiene proxima teoria".
80 teoria = sa get-next-theory.
82 print "Obtiene datos de la teoria".
83 print(teoria get-nombre).
84 print(teoria get-accion).
86 if ((teoria get-accion) == "avanzarX"): {
87 entorno{"sensor1"} = 1.
88 entorno{"movido"} = 1.
91 print "Valida teoria".
92 sa update-entorno with entorno.
93 if (sa validate theory teoria): {
97 print "Teoria no valida, salimos".
100 print "Vemos si tiene una teoria mas".
102 print "No, no tiene".