1 /*
2 * IControladorAmostragem.java
3 *
4 * Created on 11 de Abril de 2007, 17:02
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 import java.io.File;
13 import java.io.IOException;
14
15 /**
16 * Definição de um controlador de amostragem.
17 */
18 public interface IControladorAmostragem
19 extends IOuvinteMudancaTemperatura, IOuvinteTimer {
20 /**
21 * Método que inicia o controlador com os objetos necessários para a
22 * execução da amostragem.
23 * Ele retorna o status indicando se a amostragem pode ou não prosseguir.
24 *
25 * @param prog Programação de Amostragem.
26 * @param control Controlador de Temperatura que será utilizado.
27 * @param leitor O Leitor de espectro que será utilizado.
28 * @param timerLocal O timer que será utilizado
29 * @return <code>true</code> caso a programação possa ser executada com
30 * este controlador, leitor de espectro e timer.
31 */
32 boolean aceita(final IProgramacaoAmostragem prog,
33 final IControladorTemperatura control,
34 final ILeitorEspectro leitor,
35 final ITimer timerLocal);
36
37 /**
38 * Adiciona um ouvinte aos eventos gerados por este controlador.
39 *
40 * @param ouvinte o ouvinte que será notificado sempre que o estado
41 * deste controlador mudar.
42 */
43 void addOuvinteEventosControladorAmostragem(
44 final IOuvinteEventosControladorAmostragem ouvinte);
45
46 /**
47 * Cancela a execução da programação atual.
48 */
49 void cancel();
50
51 /**
52 * Carrega uma programação de um arquivo.
53 *
54 * @param file O arquivo que será lido.
55 * @return A programação lida.
56 * @throws IOException Se ocorrer algum erro de leitura.
57 * @throws ClassNotFoundException Se o arquivo não tiver um
58 * uma programação gravada.
59 */
60 IProgramacaoAmostragem carregaProgramacao(final File file)
61 throws IOException, ClassNotFoundException;
62
63 /**
64 * Obtém o status corrente.
65 *
66 * @return O status corrente.
67 */
68 Status getStatus();
69
70 /**
71 * Grava uma programação para um arquivo.
72 *
73 * @param programacaoLocal Programação que será gravada
74 * @param file Arquivo que será gravado.
75 * @throws IOException Se ocorrer algum erro durante a gravação.
76 */
77 void gravaProgramacao(final IProgramacaoAmostragem programacaoLocal,
78 final File file) throws IOException;
79
80 /**
81 * Limpa todos os recursos utilizados por este controlador, inclusive
82 * a programação atual.
83 */
84 void limpaProgramacao();
85
86 /**
87 * Inicia a execução da programação atual.
88 */
89 void start();
90
91
92 /**
93 * Status do controlador de amostragem.
94 */
95 public interface Status {
96 /**
97 * Obtém o estado do controlador de amostragem.
98 *
99 * @return Estado do controlador de amostragem.
100 */
101 Estado getEstado();
102
103 /**
104 * Obtém o nome da amostragem atual.
105 *
106 * @return Nome da amostragem atual.
107 */
108 String getNomeAmostragemAtual();
109
110 /**
111 * Obtém a temperatura atual do controlador de temperatura
112 * controlado pelo controlador de amostragem.
113 *
114 * @return Temperatura atual do controlador de temperatura.
115 */
116 double getTemperaturaAtual();
117
118 /**
119 * Obtém o momento da última gravação parcial do espectro.
120 *
121 * @return Momento da última gravação parcial do espectro.
122 */
123 long getTempoDaUltimaGravacao();
124
125 /**
126 * Obtém o tempo decorrido da programação.
127 *
128 * @return Tempo decorrido da programação.
129 */
130 long getTempoDecorridoProgramacao();
131
132 /**
133 * Obtém o tempo decorrido da amostragem atual.
134 *
135 * @return Tempo decorrido da amostragem atual.
136 */
137 long getTempoDecorridoAmostragem();
138
139 /**
140 * Obtém o tempo total da amostragem atual.
141 *
142 * @return O tempo total da amostragem atual.
143 */
144 long getTempoTotalAmostragem();
145
146 /**
147 * Obtém o tempo total da programação.
148 *
149 * @return Tempo total de programação.
150 */
151 long getTempoTotalProgramacao();
152
153 }
154
155 /**
156 * Estado corrente do controlador de amostragem.
157 */
158 public enum Estado {
159 /**
160 * Sem nenhuma programação.
161 */
162 SEM_PROGRAMACAO,
163 /**
164 * Com programação válida mas não iniciado.
165 */
166 NAO_INICIADO,
167 /**
168 * Preparando a amostragem para iniciar a sua execução.
169 */
170 PREPARA_AMOSTRAGEM,
171 /**
172 * Esperando que o controlador de temperatura chegue à temperatura
173 * definida pela amostragem atual.
174 */
175 ESPERANDO_TEMPERATURA_INICIAL,
176
177 /**
178 * Temperatura está de acordo com a amostrage atual. Esperando
179 * alcançar o término da amostragem.
180 */
181 EM_AMOSTRAGEM,
182
183 /**
184 * Durante a amostragem atual, o controlador de temperatura
185 * saiu da temperatura aceita. Esperando que o
186 * controlador retorne à temperatura correta da
187 * amostragem atual.
188 */
189 ESPERANDO_RETORNO_TEMPERATURA,
190
191 /**
192 * A programação das amostragens terminou com sucesso.
193 */
194 PROGRAMACAO_TERMINADA,
195 /**
196 * A programação foi encerrada pelo usuário.
197 */
198 CANCELADO
199 }
200 }