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 }