4 Controller SistemaAutonomoController.
6 Control : SistemaAutonomoController {
15 print "Crea Sistema autonomo".
16 sa = new SistemaAutonomo.
18 print "Llena entorno".
19 entorno{"sensor1"} = 0.
20 entorno{"sensor2"} = 0.
21 entorno{"sensor3"} = 0.
22 entorno{"sensor4"} = 0.
23 entorno{"movido"} = 0.
25 print "Actualiza entorno".
26 sa update-entorno entorno entorno.
28 print "Crea Teoria 1".
29 teorias = 2 new Teorias.
30 teorias{0} init named "avanzar X 1" with-action "avanzarX".
32 print "Carga datos iniciales Teoria 1".
33 (teorias{0}) set-dato-inicial name "sensor1" value ANY.
34 (teorias{0}) set-dato-inicial name "sensor2" value ANY.
35 (teorias{0}) set-dato-inicial name "sensor3" value ANY.
36 (teorias{0}) set-dato-inicial name "sensor4" value ANY.
37 (teorias{0}) set-dato-inicial name "movido" value ANY.
39 print "Carga datos finales Teoria 1".
40 (teorias{0}) set-dato-final name "sensor1" value ANY.
41 (teorias{0}) set-dato-final name "sensor2" value ANY.
42 (teorias{0}) set-dato-final name "sensor3" value ANY.
43 (teorias{0}) set-dato-final name "sensor4" value ANY.
44 (teorias{0}) set-dato-final name "movido" value ANY.
46 print "Crea Teoria 2".
47 teorias{1} init named "avanzar X 2" with-action "avanzarX".
49 print "Carga datos iniciales Teoria 2".
50 (teorias{1}) set-dato-inicial name "sensor1" value ANY.
51 (teorias{1}) set-dato-inicial name "sensor2" value ANY.
52 (teorias{1}) set-dato-inicial name "sensor3" value ANY.
53 (teorias{1}) set-dato-inicial name "sensor4" value ANY.
54 (teorias{1}) set-dato-inicial name "movido" value ANY.
56 print "Carga datos finales Teoria 1".
57 (teorias{1}) set-dato-final name "sensor1" value ANY.
58 (teorias{1}) set-dato-final name "sensor2" value ANY.
59 (teorias{1}) set-dato-final name "sensor3" value ANY.
60 (teorias{1}) set-dato-final name "sensor4" value ANY.
61 (teorias{1}) set-dato-final name "movido" value ANY.
63 print "Agrega teorias al sistema autonomo".
64 sa add teoria (teorias{0}).
65 sa add teoria (teorias{1}).
67 print "Ponemos condicion final esperada para el plan".
68 datos-finales{"movido"} = 1.
69 sa update-datos-finales datos-finales datos-finales.
71 print "Calcula el plan".
74 print "Vemos si tiene una teoria mas".
75 while (sa has-next-theory): {
78 print "Obtiene proxima teoria".
79 teoria = sa get-next-theory.
81 print "Obtiene datos de la teoria".
82 print(teoria get-nombre).
83 print(teoria get-accion).
85 if ((teoria get-accion) == "avanzarX"): {
86 entorno{"sensor1"} = 1.
87 entorno{"movido"} = 1.
90 print "Valida teoria".
91 sa update-entorno entorno entorno.
92 if (sa validate theory teoria): {
96 print "Teoria no valida, salimos".
99 print "Vemos si tiene una teoria mas".
101 print "No, no tiene".