1 /*
2 * IControladorTemperatura.java
3 *
4 * Created on 12 de Mar�o de 2007, 12:19
5 *
6 * To change this template, choose Tools | Template Manager
7 * and open the template in the editor.
8 */
9
10 package tempcontroller.base;
11
12 /**
13 * Interface de comunicação com o controlador de temperatura.
14 */
15 public interface IControladorTemperatura {
16 /**
17 * Estados possíveis do controlador de temperatura.
18 */
19 enum Estado {
20 /**
21 * Controlador de temperatura sem temperatura alvo.
22 */
23 SEM_ALVO,
24 /**
25 * Controlador de temperatura esperando que o
26 * hardware chege à temperatura escolhida.
27 */
28 BUSCANDO_ALVO,
29 /**
30 * Controlador de temperatura na temperatura alvo.
31 */
32 ALVO_ALCANCADO,
33 }
34
35 /**
36 * Obtém o estado do controlador de temperatura.
37 * @return Estado do controlador de temperatura.
38 */
39 Estado getEstado();
40
41 /**
42 * Adiciona ouvinte de mudança de temperatura.
43 * @param ouvinte Novo ouvinte de temperatura.
44 */
45 void addIOuvinteMundancaTemperatura(
46 final IOuvinteMudancaTemperatura ouvinte);
47
48
49 /**
50 * Remove um ouvinte deste controlador de temperatura.
51 * @param ouvinte Ouvinte que não quer mais ouvir
52 * eventos do controlador de temperatura.
53 */
54 void removeOuvinteMudancaTemperatura(
55 final IOuvinteMudancaTemperatura ouvinte);
56
57 /**
58 * Define a temperatura alvo que o controlador deve tentar
59 * alcançar fisicamente no dispositivo.
60 * @param temperaturaAlvo Temperatura alvo.
61 */
62 void setTemperaturaAlvo(double temperaturaAlvo);
63
64 /**
65 * Obtém a temperatura alvo deste controlador.
66 * @return Temperatura alvo deste controlador.
67 */
68 double getTemperaturaAlvo();
69
70 /**
71 * Obtém a temperatura atual.
72 * @return A temperatura atual.
73 */
74 double getTemperatura();
75
76 /**
77 * Bloqueia a thead atual at� que seja alcan�ada a temperatura alvo.
78 */
79 void esperaAteTemperaturaAlvo();
80
81 /**
82 * Libera os recursos. Depois deste método executado,
83 * o controlador não poderá ser mais utilizado.
84 */
85 void dispose();
86
87 /**
88 * Cancela a temperatura alvo, permitindo que o dispositivo
89 * fique na temperatura ambiente. Não libera os recursos
90 * pois o controlador poderá ser usado novamente.
91 */
92 void cancelaTemperaturaAlvo();
93
94 /**
95 * Verifica se a temperatura passada está no intervalo válido
96 * para este controlador de temperatura.
97 * @param temperatura Temperatura que será testada.
98 * @return <code>true</code> apenas se a temperatura passada estiver
99 * dentro do intervalo válido para este controlador.
100 */
101 boolean aceitaTemperatura(double temperatura);
102 }