]> git.llucax.com Git - z.facultad/75.68/celdas.git/blob - trunk/src/SistemaAutonomoDemo.tz
Evitamos memory leaks.
[z.facultad/75.68/celdas.git] / trunk / src / SistemaAutonomoDemo.tz
1 @use Control.
2 @use SistemaAutonomo.
3
4 Controller SistemaAutonomoController.
5
6 Control : SistemaAutonomoController {
7
8         + to init:
9                 teorias (list).
10                 sa (object).
11                 teoria (object).
12                 entorno (hash).
13                 datos-finales (hash).
14
15                 print "Crea Sistema autonomo".
16                 sa = new SistemaAutonomo.
17
18                 print "Llena entorno".
19                 entorno{"sensor1"} = 0.
20                 entorno{"sensor2"} = 0.
21                 entorno{"sensor3"} = 0.
22                 entorno{"sensor4"} = 0.
23                 entorno{"movido"} = 0.
24
25                 print "Actualiza entorno".
26                 sa update-entorno entorno entorno.
27
28                 print "Crea Teoria 1".
29                 teorias = 2 new Teorias.
30                 teorias{0} init named "avanzar X 1" with-action "avanzarX".
31
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.
38
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.
45
46                 print "Crea Teoria 2".
47                 teorias{1} init named "avanzar X 2" with-action "avanzarX".
48
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.
55
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.
62
63                 print "Agrega teorias al sistema autonomo".
64                 sa add teoria (teorias{0}).
65                 sa add teoria (teorias{1}).
66
67                 print "Ponemos condicion final esperada para el plan".
68                 datos-finales{"movido"} = 1.
69                 sa update-datos-finales datos-finales datos-finales.
70
71                 print "Calcula el plan".
72                 sa plan.
73
74                 print "Vemos si tiene una teoria mas".
75                 while (sa has-next-theory): {
76
77                         print "Si, tiene".
78                         print "Obtiene proxima teoria".
79                         teoria = sa get-next-theory.
80
81                         print "Obtiene datos de la teoria".
82                         print(teoria get-nombre).
83                         print(teoria get-accion).
84
85                         if ((teoria get-accion) == "avanzarX"): {
86                                 entorno{"sensor1"} = 1.
87                                 entorno{"movido"} = 1.
88                         }
89
90                         print "Valida teoria".
91                         sa update-entorno entorno entorno.
92                         if (sa validate theory teoria): {
93                                 print "valida".
94                         }
95                         else {
96                                 print "Teoria no valida, salimos".
97                         }
98
99                         print "Vemos si tiene una teoria mas".
100                 }
101                 print "No, no tiene".
102
103                 free teorias{0}.
104                 free teorias{1}.
105                 free sa.
106
107 }
108