View Javadoc

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 }