public void PreverVentoPotencia(EntradaVentoPotencia parque)
        {
            try
            {
                Dictionary <String, Object> dicPotenciaMedia = FactoryDAO.getInstance().PotenciaMediaHoraMesDAO.
                                                               carregarArquivoPotenciaMedia(Path.GetFullPath(Util.Util.POTENCIA_MEDIA_DIRECTORY_NAME), parque.ParqueEolico.Nome);

                List <List <EntradaVentoPotencia> > dados = FactoryDAO.getInstance().
                                                            PrevisorDAO.GetDadosPrevisaoPotenciaVento(parque.ParqueEolico, dicPotenciaMedia);

                gerarArquivosDeEntrada(Path.GetFullPath(PREVISOR_VP_DIRECTORY_NAME) +
                                       "\\" + parque.ParqueEolico.SiglaPrevEOL + "\\Entradas", dados);

                this.atualizarParquePastaTrabalho(parque.ParqueEolico.SiglaPrevEOL, PREVISOR_VP_DIRECTORY_NAME);
                this.atualizarCaminhoDoExecutavelDoPrevisor(Path.GetFullPath(PREVISOR_VP_DIRECTORY_NAME));
                this.executarPrevisor(PREVISOR_VP_EXE);
            }
            catch (FileNotFoundException e)
            {
                MessageBox.Show(e.Message, Constants.WARNNING_CAPTION);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void CalibrarPotenciaPotencia(ParqueEolico parqueEolico, bool isTempoReal)
        {
            try
            {
                if (isTempoReal)
                {
                    this.criarCaminhoDeDiscoCalibrador(Path.GetFullPath(CALIBRADOR_TR_DIRECTORY_NAME));
                    this.criarPastaDeTrabalhoCalibrador(CALIBRADOR_TR_DIRECTORY_NAME + PASTA_TRABALHO, parqueEolico, "TR");
                    var process = Process.Start(CALIBRADOR_TR_EXE);
                    process.WaitForExit();

                    FactoryController.getInstance().PrevisorController.montarEstruturaParaPrevisao(parqueEolico.SiglaPrevEOL, PrevisorController.PREVISAO_TIPO.TEMPO_REAL);
                    this.copiarPesosOtimos(parqueEolico, PrevisorController.PREVISAO_TIPO.TEMPO_REAL);
                    this.criarAtualizarArquivoParquesCalibrados(parqueEolico, PrevisorController.PREVISAO_TIPO.TEMPO_REAL);
                }
                else
                {
                    this.criarCaminhoDeDiscoCalibrador(Path.GetFullPath(CALIBRADOR_PP_DIRECTORY_NAME));
                    this.criarPastaDeTrabalhoCalibrador(CALIBRADOR_PP_DIRECTORY_NAME + PASTA_TRABALHO, parqueEolico, "PP");
                    var process = Process.Start(CALIBRADOR_PP_EXE);
                    process.WaitForExit();

                    FactoryController.getInstance().PrevisorController.montarEstruturaParaPrevisao(parqueEolico.SiglaPrevEOL, PrevisorController.PREVISAO_TIPO.POTENCIA_POTENCIA);
                    this.copiarPesosOtimos(parqueEolico, PrevisorController.PREVISAO_TIPO.POTENCIA_POTENCIA);
                    this.criarAtualizarArquivoParquesCalibrados(parqueEolico, PrevisorController.PREVISAO_TIPO.POTENCIA_POTENCIA);
                }
                FactoryDAO.getInstance().ParqueEolicoDAO.atualizarParqueFoiCalibrado(parqueEolico);
            }
            catch (Exception e)
            {
                throw new Exception("Ops, ocorreu um erro na calibração dos dados.");
            }
        }
        internal void realizarPrevisao(ParqueEolico parque, string tipo)
        {
            String tag = parque.SiglaGETOT;

            String initialDate     = "06/08/2014 13:00:00";
            String currentDateTime = "06/08/2014 13:00:00";

            TimeSpan span   = new TimeSpan(3, 0, 0);
            string   format = "dd/MM/yyyy HH:mm:ss";

            //Get current date
            DateTime time2 = DateTime.Now;

            currentDateTime = time2.ToString(format);

            //Get past date from desired time interval
            DateTime time1 = time2.Subtract(span);

            initialDate = time1.ToString(format);

            MyPiFileUtil fileReader = new MyPiFileUtil();

            if (tipo.Equals("PP"))
            {
                this.atualizarParquePastaTrabalho(parque.SiglaPrevEOL, PREVISOR_PP_DIRECTORY_NAME);
                this.atualizarCaminhoDoExecutavelDoPrevisor(Path.GetFullPath(PREVISOR_PP_DIRECTORY_NAME));

                //Abrir PI
                MyPiController controller = new MyPiController(tag, initialDate, currentDateTime);
                controller.run();
                ArrayList integralizedPowerList = fileReader.readPotRequestFile(tag, PREVISOR_PP_NUMERO_ENTRADAS);

                String path = PREVISOR_PP_DIRECTORY_NAME + "/" + parque.SiglaPrevEOL + PASTA_ENTRADAS;

                //Escrever arquivo com entradas para previsão
                fileReader.writeFile(integralizedPowerList, tag, path);

                this.executarPrevisor(PREVISOR_PP_EXE);
            }
            else if (tipo.Equals("TR"))
            {
                this.atualizarParquePastaTrabalho(parque.SiglaPrevEOL, PREVISOR_TR_DIRECTORY_NAME);
                this.atualizarCaminhoDoExecutavelDoPrevisor(Path.GetFullPath(PREVISOR_TR_DIRECTORY_NAME));

                //Abrir PI
                MyPiController controller = new MyPiController(tag, initialDate, currentDateTime);
                controller.run();
                ArrayList integralizedPowerList = fileReader.readPotRequestFile(tag, PREVISOR_TR_NUMERO_ENTRADAS);

                String path = PREVISOR_TR_DIRECTORY_NAME + "/" + parque.SiglaPrevEOL + PASTA_ENTRADAS;

                //Escrever arquivo com entradas para previsão
                fileReader.writeFile(integralizedPowerList, tag, path);

                //executar previsão
                this.executarPrevisor(PREVISOR_TR_EXE);
            }
            FactoryDAO.getInstance().ParqueEolicoDAO.atualizarParqueFoiPrevisto(parque);
        }
        public void gerarArquivoTreinamentoVentoPotencia(ParqueEolico parqueEolico, DateTime dataInicial, DateTime dataFinal, String intervalo)
        {
            DirectoryInfo directoryInfoCalibrador    = Util.Util.GetOrCreateIfNotExistsDiretoriosCalibracao(CALIBRADOR_VP_DIRECTORY_NAME + "/" + parqueEolico.SiglaPrevEOL);
            DirectoryInfo directoryInfoPotenciaMedia = Util.Util.GetOrCreateIfNotExistsDiretorioPotenciaMedia();

            FactoryDAO.getInstance().PotenciaMediaHoraMesDAO.gerarArquivosPotenciaMedia(parqueEolico, directoryInfoPotenciaMedia.FullName, intervalo);
            FactoryDAO.getInstance().CPTECDAO.gerarArquivoTreinamentoVentoPotencia(parqueEolico, directoryInfoCalibrador.FullName + Util.Util.getEntradaPath(),
                                                                                   directoryInfoPotenciaMedia.FullName, dataInicial, dataFinal, intervalo);
            this.criarAtualizarArquivoParquesCalibrados(parqueEolico, PrevisorController.PREVISAO_TIPO.VENTO_POTENCIA);
        }
        internal List <EntradaVentoPotencia> GetInputPrevisaoVentoPotencia()
        {
            List <EntradaVentoPotencia> ret = new List <EntradaVentoPotencia>();

            List <ParqueEolico> parquesEolicos = (List <ParqueEolico>)FactoryController.getInstance().ParqueEolicoController.getParquesCalibrados("VP");

            for (int i = 0; i < parquesEolicos.Count; i++)
            {
                EntradaVentoPotencia inVP = FactoryDAO.getInstance().PrevisorDAO.GetDadosPrevisaoPotenciaVentoVisualizar(parquesEolicos[i]);
                if (inVP != null)
                {
                    ret.Add(inVP);
                }
            }

            return(ret);
        }
        public void calibrarVentoPotencia(ParqueEolico parqueEolico)
        {
            try
            {
                this.criarCaminhoDeDiscoCalibrador(Path.GetFullPath(CALIBRADOR_VP_DIRECTORY_NAME));
                this.criarPastaDeTrabalhoCalibrador(CALIBRADOR_VP_DIRECTORY_NAME + PASTA_TRABALHO, parqueEolico, "VP");
                var process = Process.Start(CALIBRADOR_VP_EXE);
                process.WaitForExit();

                FactoryDAO.getInstance().ParqueEolicoDAO.atualizarParqueFoiCalibrado(parqueEolico);
                FactoryController.getInstance().PrevisorController.montarEstruturaParaPrevisao(parqueEolico.SiglaPrevEOL, PrevisorController.PREVISAO_TIPO.VENTO_POTENCIA);
                this.copiarPesosOtimos(parqueEolico, PrevisorController.PREVISAO_TIPO.VENTO_POTENCIA);
            }
            catch (Exception ex)
            {
                throw new Exception("Ops, ocorreu um erro durante a calibração dos dados.");
            }
        }
        public void gerarArquivosTreinamentoPotenciaPotencia(ParqueEolico parqueEolico, int numeroDeEntradas,
                                                             DateTime dataInicial, DateTime dataFinal, String intervalo, bool isTempoReal)
        {
            String parque      = parqueEolico.Nome.Replace(' ', '_');
            String nomeArquivo = "";

            try
            {
                List <ParqueEolicoImportacaoPrevEOL> listaCompleta = FactoryDAO.getInstance().PrevEOLDAO.GetList(parqueEolico,
                                                                                                                 dataInicial, dataFinal, intervalo);

                DirectoryInfo directoryInfo;
                if (isTempoReal)
                {
                    directoryInfo = Util.Util.GetOrCreateIfNotExistsDiretoriosCalibracao(CALIBRADOR_TR_DIRECTORY_NAME + "/" + parqueEolico.SiglaPrevEOL);
                }
                else
                {
                    directoryInfo = Util.Util.GetOrCreateIfNotExistsDiretoriosCalibracao(CALIBRADOR_PP_DIRECTORY_NAME + "/" + parqueEolico.SiglaPrevEOL);
                }

                if (intervalo.Equals(Util.Util.DEZ_MINUTOS))
                {
                    nomeArquivo = parque + "_10_min_full_" + (2 + numeroDeEntradas) + "_36.txt";
                    this.gerarArquivoPotenciaPotenciaCompleto(directoryInfo.FullName + Util.Util.getEntradaPath(),
                                                              numeroDeEntradas, nomeArquivo, 1, 36, listaCompleta);
                    this.gerarArquivosPotenciaPotenciaDiarios10min(directoryInfo.FullName + Util.Util.getEntradaPath(),
                                                                   numeroDeEntradas, nomeArquivo, parque);
                }
                else if (intervalo.Equals(Util.Util.TRINTA_MINUTOS))
                {
                    nomeArquivo = parque + "_30_min_full_" + (2 + numeroDeEntradas) + "_48.txt";
                    this.gerarArquivoPotenciaPotenciaCompleto(directoryInfo.FullName + Util.Util.getEntradaPath(),
                                                              numeroDeEntradas, nomeArquivo, 5, 48, listaCompleta);
                    this.gerarArquivosPotenciaPotenciaDiarios30min(directoryInfo.FullName + Util.Util.getEntradaPath(),
                                                                   numeroDeEntradas, nomeArquivo, parque);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("ERROR: " + e.Message);
            }
        }
 public List <ParqueEolicoImportacaoCPTEC> getDadosImportados(int idParqueEolico, int limit)
 {
     return(FactoryDAO.getInstance().CPTECDAO.SelectDataImported(idParqueEolico, limit));
 }
 public void importarArquivoNovo(string caminho, int idParqueEolico)
 {
     FactoryDAO.getInstance().CPTECDAO.importarArquivoNovo(caminho, idParqueEolico);
 }
Example #10
0
        private void importPrevEOLFile_Button_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                this.feedbackMessage.Visibility = Visibility.Hidden;

                if (files.Length > 0)
                {
                    int qtdArquivos         = files.Length;
                    BackgroundWorker worker = new BackgroundWorker();

                    worker.DoWork += (o, ea) =>
                    {
                        try
                        {
                            int progressoPorAquivo = 100 / files.Length;
                            int count = 0;

                            foreach (FileInfo file in this.files)
                            {
                                count++;

                                this.Dispatcher.Invoke(new Action(() => { this.txtProgressValue.Text = "Importando arquivo " + count + "/" + qtdArquivos + "."; }));

                                for (int i = 0; i < this.listaParquesEolicos.Count; i++)
                                {
                                    string sigla = this.listaParquesEolicos[i].SiglaPrevEOL;
                                    if (file.Name.IndexOf(sigla, StringComparison.OrdinalIgnoreCase) != -1)
                                    {
                                        // Arquivos de 30 minutos
                                        if (file.Name.IndexOf(Util.Util.TRINTA_MINUTOS, StringComparison.OrdinalIgnoreCase) != -1)
                                        {
                                            FactoryDAO.getInstance().PrevEOLDAO.importarArquivoPrevEOL(file.FullName, this.listaParquesEolicos[i].Id, Util.Util.TRINTA_MINUTOS);
                                        }
                                        // Arquivos de 10 minutos
                                        else if (file.Name.IndexOf(Util.Util.DEZ_MINUTOS, StringComparison.OrdinalIgnoreCase) != -1)
                                        {
                                            FactoryDAO.getInstance().PrevEOLDAO.importarArquivoPrevEOL(file.FullName, this.listaParquesEolicos[i].Id, Util.Util.DEZ_MINUTOS);
                                        }
                                        else
                                        {
                                            break;
                                        }
                                        file.CopyTo(CAMINHO_FILES + CAMINHO_SAIDA_IMPORTACAO + "\\" + file.Name, true);
                                        File.Delete(file.FullName);
                                        break;
                                    }
                                }

                                this.Dispatcher.Invoke(new Action(() =>
                                {
                                    //this.processBar.Value += progressoPorAquivo;
                                    this.LoadFiles();
                                }));
                            }
                            this.Dispatcher.Invoke(new Action(() => { this.feedbackMessage.Visibility = Visibility.Visible; }));
                        }
                        catch (Exception ex)
                        {
                            this.Dispatcher.Invoke(new Action(() => { this.ShowInfoMessage(ex.Message); }));
                        }
                    };

                    worker.RunWorkerCompleted += (param, args) =>
                    {
                        if (args.Error != null)
                        {
                            MessageBox.Show(args.Error.ToString());
                        }
                        this.Dispatcher.Invoke(new Action(() =>
                        {
                            HideProgressBar();
                        }));
                    };

                    this.Dispatcher.Invoke(new Action(() =>
                    {
                        ShowProgressBar();
                    }));

                    worker.RunWorkerAsync();
                }
            }
            catch (Exception ex)
            {
                this.ShowInfoMessage(ex.Message);
            }
        }
Example #11
0
 public List <ParqueEolicoImportacaoPrevEOL> getDadosImportados(int idParqueEolico, int limite,
                                                                bool verTodosOsAtributos, string intervalo)
 {
     return(FactoryDAO.getInstance().PrevEOLDAO.getDadosImportados(idParqueEolico, limite,
                                                                   verTodosOsAtributos, intervalo));
 }
Example #12
0
 public ParqueEolicoController()
 {
     this.ParqueEolicoDAO = FactoryDAO.getInstance().ParqueEolicoDAO;
 }