private Double[] lerArquivoEntradaPrevisor(ParqueEolico p) { DirectoryInfo dir = new DirectoryInfo(PREVISOR_TR_DIRECTORY_NAME + "/" + p.SiglaPrevEOL + "/" + PASTA_ENTRADAS); FileInfo[] fileInfo = dir.GetFiles(); Double[] inputData = new Double[0]; if (fileInfo.Length != 0) { foreach (FileInfo file in fileInfo) { StreamReader inputFile = file.OpenText(); String linha = inputFile.ReadLine(); //data linha = inputFile.ReadLine(); //dados string[] linha2 = linha.Split('\t'); inputData = new Double[linha2.Count() - 1]; for (int i = 0; i < linha2.Count() - 1; i++) { inputData[i] = Double.Parse(linha2[i].Replace('.', ',')); } } } return(inputData); }
private void ExcluirParque_Click(object sender, RoutedEventArgs e) { int index = this.dataGridParqueEolico.SelectedIndex; if (index == -1) { MessageBox.Show("Por favor, selecione um parque eólico."); } else { try { if (MessageBox.Show("Tem certeza que deseja remover o parque eólico selecionado? Atenção, sua exclusão pode implicar na exclusão dos dados já importados associados a este parque.", Constants.CONFIRMATION_CAPTION, MessageBoxButton.YesNo) == MessageBoxResult.Yes) { ParqueEolico parqueSelecionado = (ParqueEolico)this.dataGridParqueEolico.SelectedItem; FactoryController.getInstance().ParqueEolicoController.Delete(parqueSelecionado); this.listaParquesEolicos.Remove((ParqueEolico)this.dataGridParqueEolico.SelectedItem); MessageBox.Show("Parque eólico removido com sucesso."); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
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 atualizarParqueFoiPrevisto(ParqueEolico p) { try { SqlConnection connection = (SqlConnection)Database.openConnection(); SqlCommand command = connection.CreateCommand(); command.CommandText = "SELECT COUNT(*) FROM previsao WHERE idParque = " + p.Id + " AND tipo = '" + p.Previsao.Tipo + "'"; int?count = int.Parse(command.ExecuteScalar().ToString()); if (count != null && count != 0) { command.CommandText = "UPDATE previsao SET data = GetDate() WHERE idParque = " + p.Id + ";"; } else { command.CommandText = "INSERT INTO previsao (foiPrevisto, data, idParque, tipo) VALUES (1,GetDate(), " + p.Id + ", '" + p.Previsao.Tipo + "')"; } command.ExecuteNonQuery(); connection.Close(); } catch (Exception e) { throw new Exception("Ops, não foi possível atualizar o status de previsão do parque eólico." + e.Data); } }
public void gerarArquivosPotenciaMedia(ParqueEolico parqueEolico, string caminhoArquivo, String intervalo) { StreamWriter arquivo = new StreamWriter(caminhoArquivo + "\\" + parqueEolico.Nome + ".txt"); try { SqlConnection connection = (SqlConnection)Database.openConnection(); SqlCommand command = connection.CreateCommand(); for (int mes = 1; mes <= 12; mes++) { queryAgregarMesesCalcularMedia(command, parqueEolico, arquivo, mes.ToString(), intervalo); } arquivo.Close(); connection.Close(); } catch (Exception e) { arquivo.Close(); throw e; } }
private static void queryAgregarMesesCalcularMedia(SqlCommand command, ParqueEolico parque, StreamWriter file, String padraoMeses, String intervalo) { String query = "SELECT count(*), AVG(potenciaMedia), hora FROM parque_eolico_importacao WHERE mes in (" + padraoMeses + ") AND idParque = " + parque.Id + " AND minuto = 0 AND ano >= 2012 AND potenciaMedia != '-999' " + " AND intervalo = '" + intervalo + "' GROUP BY hora;"; command.CommandText = query; SqlDataReader reader = command.ExecuteReader(); int contadorDeMeses = 1; while (reader.Read()) { file.Write(Math.Round(reader.GetDouble((int)PotenciaMediaHoraMes.EnumCampos.POTENCIA_MEDIA), 4).ToString().Replace(",", ".") + " "); contadorDeMeses++; } // Se o contador de meses for menor que 24 é porque está faltando // a média de uma determinada hora do dia, em um determinado mês... if (contadorDeMeses < 25) { throw new Exception("Erro. Desculpe, está faltando importar dados para geração correta do arquivo de potência média..."); } file.WriteLine(); reader.Close(); }
private void criarPastaDeTrabalhoCalibrador(string caminhoCalibrador, ParqueEolico parqueEolico, string tipoCalibrador) { if (tipoCalibrador.Equals("PP")) { StreamWriter file = new StreamWriter(caminhoCalibrador); file.WriteLine(parqueEolico.SiglaPrevEOL); file.WriteLine(parqueEolico.PotenciaMaxima.ToString().Replace(',', '.')); file.WriteLine("8"); file.WriteLine("5"); file.Close(); } if (tipoCalibrador.Equals("TR")) { StreamWriter file = new StreamWriter(caminhoCalibrador); file.WriteLine(parqueEolico.SiglaPrevEOL); file.WriteLine(parqueEolico.PotenciaMaxima.ToString().Replace(',', '.')); file.WriteLine("20"); file.WriteLine("1"); file.Close(); } if (tipoCalibrador.Equals("VP")) { StreamWriter file = new StreamWriter(caminhoCalibrador); file.WriteLine(parqueEolico.SiglaPrevEOL); file.WriteLine(parqueEolico.PotenciaMaxima.ToString().Replace(',', '.')); file.WriteLine("6"); file.WriteLine("5"); file.Close(); } }
internal EntradaVentoPotencia GetDadosPrevisaoPotenciaVentoVisualizar(ParqueEolico parque) { EntradaVentoPotencia ret = null; try { SqlConnection connection = (SqlConnection)Database.openConnection(); SqlCommand command = connection.CreateCommand(); /* * string query = "SELECT p.id, p.nome, p.siglaCPTEC, p.siglaPrevEOL, vv.dia, vv.mes, vv.ano, vv.mes " + * " FROM velocidadevento vv, direcaovento dv, parque p WHERE p.id = " + parque.Id + * " AND dv.idParque = " + parque.Id + " AND vv.idParque = " + parque.Id + * " AND vv.dia = dv.dia " + * " AND vv.mes = dv.mes " + * " AND vv.ano = dv.ano " + * " AND str_to_date(CONCAT(vv.ano,'-',vv.mes,'-',vv.dia),'%Y-%m-%d') <= '" + String.Format("{0:yyyy-M-d}", DateTime.Now) + "'" + * " ORDER BY vv.ano DESC, vv.mes DESC, vv.dia DESC " + * " LIMIT 1;"; */ /* * string query = "SELECT TOP 1 p.id, p.nome, p.siglaCPTEC, p.siglaPrevEOL, p.siglaGETOT, vv.dia, vv.mes, vv.ano " + * " FROM [NeuroEolica].[dbo].[velocidadevento] vv, [NeuroEolica].[dbo].[direcaovento] dv, [NeuroEolica].[dbo].[parque] p WHERE p.id = " + parque.Id + * " AND dv.idParque = " + parque.Id + " AND vv.idParque = " + parque.Id + * " AND vv.dia = dv.dia " + * " AND vv.mes = dv.mes " + * " AND vv.ano = dv.ano " + * " AND CONVERT(DATETIME,(CONCAT(vv.ano,'-',vv.mes,'-',vv.dia)),101) <= '" + DateTime.Now + "'" + * " ORDER BY vv.ano DESC, vv.mes DESC, vv.dia DESC; ";*/ DateTime dataAtual = DateTime.Now; string query = "SELECT TOP 1 p.id, p.nome, p.siglaCPTEC, p.siglaPrevEOL, p.siglaGETOT, vv.dia, vv.mes, vv.ano " + " FROM [NeuroEolica].[dbo].[velocidadevento] vv, [NeuroEolica].[dbo].[direcaovento] dv, [NeuroEolica].[dbo].[parque] p WHERE p.id = " + parque.Id + " AND dv.idParque = " + parque.Id + " AND vv.idParque = " + parque.Id + " AND vv.dia = dv.dia " + " AND vv.mes = dv.mes " + " AND vv.ano = dv.ano " + " AND CONVERT(DATETIME,(CONCAT(vv.ano,'-',vv.mes,'-',vv.dia)),102) <= '" + String.Format("{0:yyyy-M-d}", dataAtual) + "' " + " ORDER BY vv.ano DESC, vv.mes DESC, vv.dia DESC; "; command.CommandText = query; SqlDataReader reader = command.ExecuteReader(); if (reader.Read()) { ParqueEolico p = new ParqueEolico(reader.GetInt32(0), reader.GetString(1), reader.GetString(2), reader.GetString(3), reader.GetString(4), -1, -1, new Calibracao()); ret = new EntradaVentoPotencia(p, reader.GetInt32(5), reader.GetInt32(6), reader.GetInt32(7), -1, "", "", ""); } reader.Close(); } catch (Exception e) { throw e; } return(ret); }
public void gerarArquivoTreinamentoVentoPotencia(ParqueEolico parqueEolico, string caminhoArquivo, string caminhoPotenciaMedia, DateTime dataInicial, DateTime dataFinal, String intervalo) { SqlConnection connection = (SqlConnection)Database.openConnection(); SqlCommand command = connection.CreateCommand(); //command.CommandTimeout = 120; try { Dictionary <String, Object> dicPotenciaMedia = FactoryDAO.getInstance().PotenciaMediaHoraMesDAO. carregarArquivoPotenciaMedia(caminhoPotenciaMedia, parqueEolico.Nome); for (int diaPrevisto = 0; diaPrevisto < 5; diaPrevisto++) { this.montarArquivoVentoPotencia(command, dicPotenciaMedia, diaPrevisto, parqueEolico, caminhoArquivo, dataInicial, dataFinal, intervalo); } } catch (Exception e) { Console.WriteLine("ERROR: " + e.Message); throw e; } connection.Close();; }
public bool Exists(ParqueEolico parque) { bool ret = false; try { SqlConnection connection = (SqlConnection)Database.openConnection(); SqlCommand command = connection.CreateCommand(); command.CommandText = "SELECT count(*) FROM parque WHERE (nome = @Nome OR siglaPrevEOL = @SiglaPrevEOL AND siglaCPTEC= @SiglaCPTEC) AND id != @Id;"; command.Parameters.AddWithValue("Id", parque.Id); command.Parameters.AddWithValue("Nome", parque.Nome); command.Parameters.AddWithValue("SiglaCPTEC", parque.SiglaCPTEC); command.Parameters.AddWithValue("SiglaPrevEOL", parque.SiglaPrevEOL); SqlDataReader reader = command.ExecuteReader(); // Corresponde ao count(*) reader.Read(); if (reader.GetInt32(0) > 0) { ret = true; } } catch (Exception ex) { Console.WriteLine(ex.Message); } return(ret); }
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); }
private void criarAtualizarArquivoParquesCalibrados(ParqueEolico parqueEolico, PrevisorController.PREVISAO_TIPO tipo) { if (parqueEolico.Calibracao.FoiCalibrado == 0) { StreamWriter file = File.AppendText(Path.GetFullPath("Arquivos") + ARQUIVO_PARQUES_CALIBRADOS); file.WriteLine(parqueEolico.SiglaPrevEOL + "_" + tipo); file.Close(); } }
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); }
public void atualizar(ParqueEolico parque) { if (!ParqueEolicoDAO.Exists(parque)) { ParqueEolicoDAO.Update(parque); } else { throw new Exception("Já existe um parque eólico cadastrado com o nome ou código informado."); } }
public void Delete(ParqueEolico parque) { try { SqlConnection connection = (SqlConnection)Database.openConnection(); SqlCommand command = connection.CreateCommand(); command.CommandText = "DELETE FROM parque WHERE id = @Id"; command.Parameters.AddWithValue("Id", parque.Id); command.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } }
private void UpdateDatagridRowsAndColumns(bool verTodosOsAtributos) { if (this.cmbBoxParquesEolicos.SelectedItem != null) { ParqueEolico parqueEolico = (ParqueEolico)this.cmbBoxParquesEolicos.SelectedItem; String intervalo = ((ComboBoxItem)this.cmbBoxIntervalo.SelectedItem).Tag.ToString(); BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (o, ea) => { try { List <ParqueEolicoImportacaoPrevEOL> listaDadosImportados = FactoryController.getInstance(). PrevEOL_Controller.getDadosImportados(parqueEolico.Id, this.Limit, verTodosOsAtributos, intervalo); this.Dispatcher.BeginInvoke(new Action(() => { if (listaDadosImportados.Count > 0) { this.ShowDataGrid(); this.dataGridVisualizarDados.ItemsSource = listaDadosImportados; } else { this.ShowMessageEmptyData(); } })); } catch (Exception e) { this.Dispatcher.BeginInvoke(new Action(() => { this.txtMessage.Text = e.Message; })); } }; worker.RunWorkerCompleted += (param, args) => { if (args.Error != null) { MessageBox.Show(args.Error.ToString()); } this.BusyIndicatorCarregando.IsBusy = false; }; BusyIndicatorCarregando.IsBusy = true; worker.RunWorkerAsync(); } }
public List <ParqueEolicoImportacaoPrevEOL> GetList(ParqueEolico parqueEolico, DateTime dataInicial, DateTime dataFinal, String intervalo) { SqlConnection connection = (SqlConnection)Database.openConnection(); SqlCommand command = connection.CreateCommand(); List <ParqueEolicoImportacaoPrevEOL> listaCompleta = new List <ParqueEolicoImportacaoPrevEOL>(); List <ParqueEolicoImportacaoPrevEOL> listaMesAtual = new List <ParqueEolicoImportacaoPrevEOL>(); /* * command.CommandText = "SELECT dia, mes, ano, hora, minuto, segundo, velocidademedia," + * "direcaomedia, PotenciaMedia FROM parque_eolico_importacao WHERE idParque = " + parqueEolico.Id + * " AND CONVERT(DATETIME,(CONCAT(ano,'-',mes,'-',dia)),102) >= '" + String.Format("{0:yyyy-M-d}", dataInicial) + "' " + * " AND CONVERT(DATETIME,(CONCAT(ano,'-',mes,'-',dia)),102) <= '" + String.Format("{0:yyyy-M-d}", dataFinal) + "' " + * " AND intervalo = '" + intervalo + "'" +" ORDER BY ano, mes, dia, hora, minuto LIMIT 18000;" ;// Tamanho máximo de instâncias para o treinamento */ command.CommandText = "SELECT TOP 18000 dia, mes, ano, hora, minuto, segundo, velocidademedia," + "direcaomedia, PotenciaMedia FROM parque_eolico_importacao WHERE idParque = " + parqueEolico.Id + " AND CONVERT(DATETIME,(CONCAT(ano,'-',mes,'-',dia)),102) >= '" + String.Format("{0:yyyy-M-d}", dataInicial) + "' " + " AND CONVERT(DATETIME,(CONCAT(ano,'-',mes,'-',dia)),102) <= '" + String.Format("{0:yyyy-M-d}", dataFinal) + "' " + " AND intervalo = '" + intervalo + "'" + " ORDER BY ano, mes, dia, hora, minuto;";// Tamanho máximo de instâncias para o treinamento SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { listaMesAtual.Add(new ParqueEolicoImportacaoPrevEOL(reader.GetInt32((int)ParqueEolicoImportacaoPrevEOL.EnumCampos.DIA), reader.GetInt32((int)ParqueEolicoImportacaoPrevEOL.EnumCampos.MES), reader.GetInt32((int)ParqueEolicoImportacaoPrevEOL.EnumCampos.ANO), reader.GetInt32((int)ParqueEolicoImportacaoPrevEOL.EnumCampos.HORA), reader.GetInt32((int)ParqueEolicoImportacaoPrevEOL.EnumCampos.MINUTO), reader.GetInt32((int)ParqueEolicoImportacaoPrevEOL.EnumCampos.SEGUNDO), Double.Parse(reader.GetString((int)ParqueEolicoImportacaoPrevEOL.EnumCampos.VELOCIDADE_MEDIA).Replace(".", ",")), Double.Parse(reader.GetString((int)ParqueEolicoImportacaoPrevEOL.EnumCampos.DIRECAO_MEDIA).Replace(".", ",")), reader.GetDouble((int)ParqueEolicoImportacaoPrevEOL.EnumCampos.POTENCIA))); } reader.Close(); //listaCompleta.AddRange(ajustarTamanhoLista(listaMesAtual, 1200)); listaCompleta.AddRange(listaMesAtual); connection.Close(); return(listaCompleta); }
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); } }
private void copiarPesosOtimos(ParqueEolico p, PrevisorController.PREVISAO_TIPO tipo) { if (tipo == PrevisorController.PREVISAO_TIPO.POTENCIA_POTENCIA) { DirectoryInfo dir = new DirectoryInfo(CALIBRADOR_PP_DIRECTORY_NAME + "/" + p.SiglaPrevEOL + "/" + PASTA_PESOS_OTIMOS); FileInfo[] fileInfo = dir.GetFiles(); if (fileInfo.Length != 0) { foreach (FileInfo file in fileInfo) { FactoryController.getInstance().PrevisorController.importarPesoOtimo(file, PrevisorController.PREVISAO_TIPO.POTENCIA_POTENCIA, p.SiglaPrevEOL); } } } else if (tipo == PrevisorController.PREVISAO_TIPO.TEMPO_REAL) { DirectoryInfo dir = new DirectoryInfo(CALIBRADOR_TR_DIRECTORY_NAME + "/" + p.SiglaPrevEOL + "/" + PASTA_PESOS_OTIMOS); FileInfo[] fileInfo = dir.GetFiles(); if (fileInfo.Length != 0) { foreach (FileInfo file in fileInfo) { FactoryController.getInstance().PrevisorController.importarPesoOtimo(file, PrevisorController.PREVISAO_TIPO.TEMPO_REAL, p.SiglaPrevEOL); } } } else { DirectoryInfo dir = new DirectoryInfo(CALIBRADOR_VP_DIRECTORY_NAME + "/" + p.SiglaPrevEOL + "/" + PASTA_PESOS_OTIMOS); FileInfo[] fileInfo = dir.GetFiles(); if (fileInfo.Length != 0) { foreach (FileInfo file in fileInfo) { FactoryController.getInstance().PrevisorController.importarPesoOtimo(file, PrevisorController.PREVISAO_TIPO.VENTO_POTENCIA, p.SiglaPrevEOL); } } } }
private void InitializeMyComponents(EnumParqueEolicoFormType tipo, object elemento) { if (tipo == EnumParqueEolicoFormType.CADASTRAR) { this.btnAction.Content = "Cadastrar"; this.txtTitulo.Text = "Cadastrar Parque Eólico"; this.parqueEolico = new ParqueEolico(); this.strPotenciaMaxima = "0"; } else if (tipo == EnumParqueEolicoFormType.ALTERAR) { this.btnAction.Content = "Alterar"; this.txtTitulo.Text = "Alterar Parque Eólico"; this.parqueEolico = (ParqueEolico)elemento; this.strPotenciaMaxima = Math.Round(this.parqueEolico.PotenciaMaxima, 2).ToString().Replace(".", ","); } this.DataContext = parqueEolico; }
public void Insert(ParqueEolico parque) { try { SqlConnection connection = (SqlConnection)Database.openConnection(); SqlCommand command = connection.CreateCommand(); command.CommandText = "INSERT INTO parque (nome, siglaCPTEC, siglaPrevEOL, siglaGETOT, numMaquinas, potenciaMaxima) VALUES (@Nome, @SiglaCPTEC, @SiglaPrevEOL, @SiglaGETOT, @NumMaquinas, @PotenciaMaxima)"; command.Parameters.AddWithValue("Nome", parque.Nome); command.Parameters.AddWithValue("SiglaCPTEC", parque.SiglaCPTEC); command.Parameters.AddWithValue("SiglaPrevEOL", parque.SiglaPrevEOL); command.Parameters.AddWithValue("SiglaGETOT", parque.SiglaGETOT); command.Parameters.AddWithValue("NumMaquinas", parque.NumMaquinas); command.Parameters.AddWithValue("PotenciaMaxima", parque.PotenciaMaxima); command.ExecuteNonQuery(); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public void Update(ParqueEolico parque) { try { SqlConnection connection = (SqlConnection)Database.openConnection(); SqlCommand command = connection.CreateCommand(); command.CommandText = "UPDATE parque SET nome = @Nome, siglaCPTEC = @SiglaCPTEC, siglaPrevEOL = @SiglaPrevEOL, siglaGETOT = @SiglaGETOT, numMaquinas = @NumMaquinas, " + "potenciaMaxima = @PotenciaMaxima WHERE id = @Id"; command.Parameters.AddWithValue("Id", parque.Id); command.Parameters.AddWithValue("Nome", parque.Nome); command.Parameters.AddWithValue("SiglaCPTEC", parque.SiglaCPTEC); command.Parameters.AddWithValue("SiglaPrevEOL", parque.SiglaPrevEOL); command.Parameters.AddWithValue("SiglaGETOT", parque.SiglaGETOT); command.Parameters.AddWithValue("NumMaquinas", parque.NumMaquinas); command.Parameters.AddWithValue("PotenciaMaxima", parque.PotenciaMaxima); int numRowsUpdated = command.ExecuteNonQuery(); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
private void montarArquivoVentoPotencia(SqlCommand command, Dictionary <String, Object> dic, int diaPrevisto, ParqueEolico parqueEolico, string caminhoArquivo, DateTime dataInicial, DateTime dataFinal, String intervalo) { StreamWriter file = null; try { String fileName = caminhoArquivo + "NEURO_EOLICA_ENTRADAS_0" + (diaPrevisto + 1) + ".txt"; /* * command.CommandText = "SELECT parque.potenciaMedia, parque.dia, parque.mes, parque.ano, parque.hora, v.velocidade00 , v.velocidade01," + * "v.velocidade02, v.velocidade03, v.velocidade04, v.velocidade05, v.velocidade06, v.velocidade07, " + * "v.velocidade08, v.velocidade09, v.velocidade10, v.velocidade11, v.velocidade12, v.velocidade13, " + * "v.velocidade14, v.velocidade15, v.velocidade16, v.velocidade17, v.velocidade18, v.velocidade19, " + * "v.velocidade20, v.velocidade21, v.velocidade22, v.velocidade23, d.direcao00 , d.direcao01, d.direcao02, " + * "d.direcao03, d.direcao04, d.direcao05, d.direcao06, d.direcao07, d.direcao08, d.direcao09, d.direcao10, " + * "d.direcao11, d.direcao12, d.direcao13, d.direcao14, d.direcao15, d.direcao16, d.direcao17, d.direcao18, " + * "d.direcao19, d.direcao20, d.direcao21, d.direcao22, d.direcao23 " + * "FROM velocidadevento v, direcaovento d, parque_eolico_importacao parque " + * "WHERE v.diaPrevisto = " + diaPrevisto + " AND d.diaPrevisto = " + diaPrevisto + * " AND v.idParque = " + parqueEolico.Id + " AND d.idParque = " + parqueEolico.Id + " and parque.idParque = " + parqueEolico.Id + * " AND str_to_date(CONCAT(v.ano,'-',v.mes,'-',v.dia),'%Y-%m-%d') = str_to_date(CONCAT(d.ano,'-',d.mes,'-',d.dia),'%Y-%m-%d')" + * " AND str_to_date(CONCAT(v.ano,'-',v.mes,'-',v.dia),'%Y-%m-%d') = str_to_date(CONCAT(parque.ano,'-',parque.mes,'-',parque.dia),'%Y-%m-%d')" + * " AND str_to_date(CONCAT(v.ano,'-',v.mes,'-',v.dia),'%Y-%m-%d') >= '" + String.Format("{0:yyyy-M-d}", dataInicial) + "' " + * " AND str_to_date(CONCAT(v.ano,'-',v.mes,'-',v.dia),'%Y-%m-%d') <= '" + String.Format("{0:yyyy-M-d}", dataFinal) + "' " + * " AND parque.minuto = 00 AND parque.intervalo = '" + intervalo + "';"; */ command.CommandText = "SELECT parque.potenciaMedia, parque.dia, parque.mes, parque.ano, parque.hora, v.velocidade00 , v.velocidade01," + "v.velocidade02, v.velocidade03, v.velocidade04, v.velocidade05, v.velocidade06, v.velocidade07, " + "v.velocidade08, v.velocidade09, v.velocidade10, v.velocidade11, v.velocidade12, v.velocidade13, " + "v.velocidade14, v.velocidade15, v.velocidade16, v.velocidade17, v.velocidade18, v.velocidade19, " + "v.velocidade20, v.velocidade21, v.velocidade22, v.velocidade23, d.direcao00 , d.direcao01, d.direcao02, " + "d.direcao03, d.direcao04, d.direcao05, d.direcao06, d.direcao07, d.direcao08, d.direcao09, d.direcao10, " + "d.direcao11, d.direcao12, d.direcao13, d.direcao14, d.direcao15, d.direcao16, d.direcao17, d.direcao18, " + "d.direcao19, d.direcao20, d.direcao21, d.direcao22, d.direcao23 " + "FROM [NeuroEolica].[dbo].[velocidadevento] v, [NeuroEolica].[dbo].[direcaovento] d, [NeuroEolica].[dbo].[parque_eolico_importacao] parque " + "WHERE v.diaPrevisto = " + diaPrevisto + " AND d.diaPrevisto = " + diaPrevisto + " AND v.idParque = " + parqueEolico.Id + " AND d.idParque = " + parqueEolico.Id + " and parque.idParque = " + parqueEolico.Id + " AND CONVERT(DATETIME,(CONCAT(v.ano,'-',v.mes,'-',v.dia)),102) = CONVERT(DATETIME,(CONCAT(d.ano,'-',d.mes,'-',d.dia)),102)" + " AND CONVERT(DATETIME,(CONCAT(v.ano,'-',v.mes,'-',v.dia)),102) = CONVERT(DATETIME,(CONCAT(parque.ano,'-',parque.mes,'-',parque.dia)),102)" + " AND CONVERT(DATETIME,(CONCAT(v.ano,'-',v.mes,'-',v.dia)),102) >= '" + String.Format("{0:yyyy-M-d}", dataInicial) + "' " + " AND CONVERT(DATETIME,(CONCAT(v.ano,'-',v.mes,'-',v.dia)),102) <= '" + String.Format("{0:yyyy-M-d}", dataFinal) + "' " + " AND parque.minuto = 00 AND parque.intervalo = '" + intervalo + "';"; SqlDataReader reader = command.ExecuteReader(); file = new StreamWriter(fileName); //this.criarCabecalhoArquivo(file); this.criarCorpoArquivo(file, reader, dic); reader.Close(); file.Close(); } catch (Exception e) { file.Close(); Console.WriteLine(e.Message); } }
public List <List <EntradaVentoPotencia> > GetDadosPrevisaoPotenciaVento(ParqueEolico parque, Dictionary <String, Object> dicPotenciaMedia) { List <List <EntradaVentoPotencia> > ret = new List <List <EntradaVentoPotencia> >(); SqlConnection connection = (SqlConnection)Database.openConnection(); SqlCommand command = connection.CreateCommand(); for (int diaPrevisto = 0; diaPrevisto < 5; diaPrevisto++) { /* * string query = "SELECT p.id, p.nome, vv.dia, vv.mes, vv.ano, vv.mes, vv.velocidade00, vv.velocidade01, " + * " vv.velocidade02, vv.velocidade03, vv.velocidade04, vv.velocidade05, vv.velocidade06, vv.velocidade07, vv.velocidade08," + * " vv.velocidade09, vv.velocidade10, vv.velocidade11, vv.velocidade12, vv.velocidade13, vv.velocidade14, vv.velocidade15," + * " vv.velocidade16, vv.velocidade17, vv.velocidade18, vv.velocidade19, vv.velocidade20, vv.velocidade21, vv.velocidade22, " + * " vv.velocidade23, dv.direcao00, dv.direcao01, dv.direcao02, dv.direcao03, dv.direcao04, dv.direcao05, dv.direcao06, " + * " dv.direcao07, dv.direcao08, dv.direcao09, dv.direcao10, dv.direcao11, dv.direcao12, dv.direcao13, dv.direcao14, dv.direcao15," + * " dv.direcao16, dv.direcao17, dv.direcao18, dv.direcao19, dv.direcao20, dv.direcao21, dv.direcao22, " + * " dv.direcao23 FROM velocidadevento vv, direcaovento dv, parque p WHERE p.id = " + parque.Id + * " AND dv.idParque = " + parque.Id + " AND vv.idParque = " + parque.Id + * " AND vv.dia = dv.dia " + * " AND vv.mes = dv.mes " + * " AND vv.ano = dv.ano " + * " AND vv.diaPrevisto = " + diaPrevisto + * " AND str_to_date(CONCAT(vv.ano,'-',vv.mes,'-',vv.dia),'%Y-%m-%d') <= '" + String.Format("{0:yyyy-M-d}", DateTime.Now) + "'" + * " ORDER BY vv.ano DESC, vv.mes DESC, vv.dia DESC " + * " LIMIT 1;"; */ DateTime dataAgora = DateTime.Now; string query = "SELECT TOP 1 p.id, p.nome, vv.dia, vv.mes, vv.ano, vv.velocidade00, vv.velocidade01, " + " vv.velocidade02, vv.velocidade03, vv.velocidade04, vv.velocidade05, vv.velocidade06, vv.velocidade07, vv.velocidade08," + " vv.velocidade09, vv.velocidade10, vv.velocidade11, vv.velocidade12, vv.velocidade13, vv.velocidade14, vv.velocidade15," + " vv.velocidade16, vv.velocidade17, vv.velocidade18, vv.velocidade19, vv.velocidade20, vv.velocidade21, vv.velocidade22, " + " vv.velocidade23, dv.direcao00, dv.direcao01, dv.direcao02, dv.direcao03, dv.direcao04, dv.direcao05, dv.direcao06, " + " dv.direcao07, dv.direcao08, dv.direcao09, dv.direcao10, dv.direcao11, dv.direcao12, dv.direcao13, dv.direcao14, dv.direcao15," + " dv.direcao16, dv.direcao17, dv.direcao18, dv.direcao19, dv.direcao20, dv.direcao21, dv.direcao22, " + " dv.direcao23 FROM velocidadevento vv, direcaovento dv, parque p WHERE p.id = " + parque.Id + " AND dv.idParque = " + parque.Id + " AND vv.idParque = " + parque.Id + " AND vv.dia = dv.dia " + " AND vv.mes = dv.mes " + " AND vv.ano = dv.ano " + " AND vv.diaPrevisto = " + diaPrevisto + " AND CONVERT(DATETIME,(CONCAT(vv.ano,'-',vv.mes,'-',vv.dia)),102) <= '" + String.Format("{0:yyyy-M-d}", dataAgora) + "' " + " ORDER BY vv.ano DESC, vv.mes DESC, vv.dia DESC;"; command.CommandText = query; SqlDataReader reader = command.ExecuteReader(); if (reader.Read()) { List <EntradaVentoPotencia> entrada = new List <EntradaVentoPotencia>(); // 24 valores de velocidade e direção correspondentes a 1 valor por hora. int totalHorasPorDia = 24; for (int hora = 0; hora < totalHorasPorDia; hora++) { // A chave do dictionary de potencias medias é a hora;mes string key = hora + ";" + reader.GetInt32(3); ParqueEolico p = new ParqueEolico(reader.GetInt32(0), reader.GetString(1), "", "", "", 0, 0, new Calibracao()); entrada.Add(new EntradaVentoPotencia(p, reader.GetInt32(2), reader.GetInt32(3), reader.GetInt32(4), hora, reader.GetString(5 + hora), reader.GetString(29 + hora), (string)dicPotenciaMedia[key])); } ret.Add(entrada); } reader.Close(); } return(ret); }
public void Delete(ParqueEolico parque) { ParqueEolicoDAO.Delete(parque); }
private void UpdateDatagridItemsSourceCPTEC() { this.cmbBoxIntervalo.Visibility = Visibility.Hidden; if (this.cmbBoxParquesEolicos.SelectedItem != null) { ParqueEolico parqueEolico = (ParqueEolico)this.cmbBoxParquesEolicos.SelectedItem; BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (o, ea) => { try { List <ParqueEolicoImportacaoCPTEC> dados = FactoryController.getInstance(). CPTEC_Controller.getDadosImportados(parqueEolico.Id, this.Limit); this.Dispatcher.BeginInvoke(new Action(() => { if (dados.Count > 0) { this.TreeViewDadosCPTEC.Items.Clear(); } for (int i = 0; i < dados.Count; i++) { TreeViewItem item = new TreeViewItem(); item.Header = "Dia Previsto: " + (dados[i].diaPrevisto + 1).ToString().PadLeft(2, '0') + " | " + dados[i].dia.PadLeft(2, '0') + "/" + dados[i].mes.PadLeft(2, '0') + "/" + dados[i].ano; item.Margin = new Thickness(5); List <string> listVelocidadeDirecao = new List <string>(); List <string> listaVelocidades = dados[i].velocidades; List <string> listaDirecoes = dados[i].direcoes; for (int k = 0; k < listaVelocidades.Count; k++) { listVelocidadeDirecao.Add("Hora: " + k.ToString().PadLeft(2, '0') + ": " + "| Velocidade: " + dados[i].velocidades[k].PadLeft(5, '0') + " " + "| Direção: " + dados[i].direcoes[k]); } item.ItemsSource = listVelocidadeDirecao; this.TreeViewDadosCPTEC.Items.Add(item); } this.ShowTreeView(); })); } catch (Exception e) { this.Dispatcher.BeginInvoke(new Action(() => { this.txtMessage.Text = e.Message; })); } }; worker.RunWorkerCompleted += (param, args) => { if (args.Error != null) { MessageBox.Show(args.Error.ToString()); } this.BusyIndicatorCarregando.IsBusy = false; }; BusyIndicatorCarregando.IsBusy = true; worker.RunWorkerAsync(); } }