// Mostra o raio do campo de visão do inimigo e o angulo da visao no editor private void OnSceneGUI() { Visao fow = (Visao)target; Handles.color = Color.white; Vector3 viewAngleA = fow.DirectionFromAngle(-fow.AnguloVisao / 2, false); Vector3 viewAngleB = fow.DirectionFromAngle(fow.AnguloVisao / 2, false); //Handles.DrawWireArc(fow.transform.position, Vector3.up, Vector3.forward, 360, fow.DistanciaVisao); Handles.DrawWireArc(fow.transform.position, Vector3.up, viewAngleA, fow.AnguloVisao, fow.DistanciaVisao); Handles.DrawLine(fow.transform.position, fow.transform.position + viewAngleA * fow.DistanciaVisao); Handles.DrawLine(fow.transform.position, fow.transform.position + viewAngleB * fow.DistanciaVisao); Handles.color = Color.red; foreach (Transform visibleTarget in fow.visibleTargets) { Debug.Log("nunca entro aqui"); Handles.DrawLine(fow.transform.position, visibleTarget.position); } }
public static void CarregarVariaveisComDados(Visao visao, List<Variavel> variaveis) { visao.Valores = new Dictionary<int, List<MaquinaInequacoesServiceReference.Variavel>>(); visao.Variaveis = new List<KeyValuePair<MaquinaInequacoesServiceReference.Variavel, int>>(); //Abre CSV como texto string fileName = GetCaminhoCompletoArquivoTeste_ValidacaoLimites_Aba_S_SE(); System.IO.StreamReader sr = new System.IO.StreamReader(File.OpenRead(fileName)); int iLinhaIdx = 0; while (sr.Peek() != -1) { string line = sr.ReadLine(); // separa linha do CSV string[] valores = line.Split(','); double primeiraColunaComValor = 0.0; if (valores.Length > 3 && double.TryParse(valores[3], out primeiraColunaComValor)) { List<MaquinaInequacoesServiceReference.Variavel> variaveisDaLinha = new List<MaquinaInequacoesServiceReference.Variavel>(); InserirVariavelGlobal("FSE_Programado", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[3]), variaveisDaLinha); InserirVariavelGlobal("RSE_Eletrico", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[4]), variaveisDaLinha); //Carregado na VisaoSUL: InserirVariavelGlobal("RSUL", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[5]), variaveisDaLinha); InserirVariavelGlobal("FBAIN", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[6]), variaveisDaLinha); InserirVariavelGlobal("FINBA", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[7]), variaveisDaLinha); InserirVariavelGlobal("POT_ELO_CC", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[8]), variaveisDaLinha); InserirVariavelGlobal("FIV", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[9]), variaveisDaLinha); InserirVariavelGlobal("GIPU_60Hz", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[10]), variaveisDaLinha); InserirVariavelGlobal("Mq_60Hz", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[11]), variaveisDaLinha); InserirVariavelGlobal("CARGA_SIN", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[12]), variaveisDaLinha); InserirVariavelGlobal("CARGA_SUL", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[13]), variaveisDaLinha); InserirVariavelGlobal("LIM_ELO_CC", MaquinaInequacoesServiceReference.TipoDado.String, valores[23].Trim().ToLower(), variaveisDaLinha); InserirVariavelGlobal("Gera_Usinas", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[25]), variaveisDaLinha); visao.Valores.Add(iLinhaIdx, variaveisDaLinha); iLinhaIdx++; } } // Carrega variáveis globais na visão foreach (MaquinaInequacoesServiceReference.Variavel var in visao.Valores[0]) { KeyValuePair<MaquinaInequacoesServiceReference.Variavel, int> variavel = new KeyValuePair<MaquinaInequacoesServiceReference.Variavel, int>(var, 0); visao.Variaveis.Add(variavel); variaveis.Add(variavel.Key); } }
/// <summary> /// Carrega funções na visão adicionando mapeamento valor da variável global para variável "interna" da função /// </summary> /// <param name="visao"></param> /// <param name="variaveis"></param> /// <param name="funcoes"></param> public static void CarregarFuncoes(Visao visao, List<Variavel> variaveis, List<Funcao> funcoes) { visao.Funcoes = new List<KeyValuePair<Funcao, int>>(); int i = 0; // Adiciona primeiro o periodo de carga pois o resultado será usado nas outras funções (variável PeriodoCarga_SE_CO atualizada no Main.Executar() Funcao funcaoPeriodoCarga = funcoes.Where(f => f.Nome == "Modulo_PERIODO_SE_CO_RNE_2009-PeriodoCarga_SE_CO").FirstOrDefault(); // xHora As Date, xDiaSemana As String, xTipo As String, Hverao funcaoPeriodoCarga.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "PeriodoCarga_SE_CO".ToLower()).FirstOrDefault(); KeyValuePair<Funcao, int> funcKVP = new KeyValuePair<Funcao, int>(funcaoPeriodoCarga, i); visao.Funcoes.Add(funcKVP); foreach (Funcao funcao in funcoes) { Decisao decisao = new Decisao(); List<Decisao> decisoes = new List<Decisao>(); KeyValuePair<Funcao, int> func = new KeyValuePair<Funcao, int>(); switch (funcao.Nome) { case "Modulo_Interligacao_SSE-LimiteFBAIN": //-> dependencia pro xpercarga = PeriodoCarga_SE_CO(...): executado no SUL (melhoria: não executar novamente) decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xNMaqIpu = vglobal_Mq_60Hz; xGerIPU = vglobal_GIPU_60Hz; xpercarga = PeriodoCarga_SE_CO;"; // xangra = vglobal_GIPU_60Hz"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Interligacao_SSE-limiteFINBA": // dependência da VisaoSUL: xUGarauc, x_refFRS_Ger, xFRS_GerUSs, xJLP, xJLM, xJLG, xJLGG decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xrsul = vglobal_RSUL; xcargasul = vglobal_CARGA_SUL;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Interligacao_SSE-LimiteFSE": // xpercarga <- PeriodoCarga_SE_CO decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xMaqIpu = vglobal_Mq_60Hz; xGerIPU = vglobal_GIPU_60Hz; xpercarga = PeriodoCarga_SE_CO;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Interligacao_SSE-Limite_RSE": // xpercarga <- PeriodoCarga_SE_CO // xangra decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xelo = vglobal_POT_ELO_CC; xMaq = vglobal_Mq_60Hz; xGerIPU = vglobal_GIPU_60Hz; xrsul = vglobal_RSUL; xpercarga = PeriodoCarga_SE_CO;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Interligacao_SSE-LIMITE_RSUL": // xpercarga <- PeriodoCarga_SE_CO // VisaoSUL: xUGarauc, xugG1, xugG2, xugG3, xugG4 decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xrsul = vglobal_RSUL; xcargasul = vglobal_CARGA_SUL; xelo = vglobal_POT_ELO_CC; xMaq = vglobal_Mq_60Hz; xGerIPU = vglobal_GIPU_60Hz; xpercarga = PeriodoCarga_SE_CO;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Interligacao_SSE-LIMITE_FSUL": // xpercarga <- PeriodoCarga_SE_CO /* decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = " "; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); */ funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Interligacao_SSE-Mqs_CORTE_FIPU_FSE": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = " xFIV = vglobal_FIV; xFSE = vglobal_FSE_Programado; xMqs = vglobal_Mq_60Hz;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Interligacao_SSE-LimGIPU": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xmaq60 = vglobal_Mq_60Hz;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Interligacao_SSE-GIPU_minimo": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xrsul = vglobal_RSUL; xcargasul = vglobal_CARGA_SUL;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Interligacao_SSE-refFRS_Ger": // VisaoSUL: xUGarauc decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xcargasul = vglobal_CARGA_SUL;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; default: break; } } }
/// <summary> /// Carrega funções na visão adicionando mapeamento valor da variável global para variável "interna" da função /// </summary> /// <param name="visao"></param> /// <param name="variaveis"></param> /// <param name="funcoes"></param> public static void CarregarFuncoes(Visao visao, List<Variavel> variaveis, List<Funcao> funcoes) { visao.Funcoes = new List<KeyValuePair<Funcao, int>>(); int i = 0; /* // Adiciona primeiro o periodo de carga pois o resultado será usado nas outras funções (variável PeriodoCarga_SE_CO atualizada no Main.Executar() Funcao funcaoPeriodoCarga = funcoes.Where(f => f.Nome == "Modulo_PERIODO_SE_CO_RNE_2009-PeriodoCarga_SE_CO").FirstOrDefault(); // xHora As Date, xDiaSemana As String, xTipo As String, Hverao funcaoPeriodoCarga.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "PeriodoCarga_SE_CO".ToLower()).FirstOrDefault(); KeyValuePair<Funcao, int> funcKVP = new KeyValuePair<Funcao, int>(funcaoPeriodoCarga, i); visao.Funcoes.Add(funcKVP); */ foreach (Funcao funcao in funcoes) { Decisao decisao = new Decisao(); List<Decisao> decisoes = new List<Decisao>(); KeyValuePair<Funcao, int> func = new KeyValuePair<Funcao, int>(); switch (funcao.Nome) { case "Modulo_Acre_Rondonia_MT-limite_FMT": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "ger_Itq_PPdr = vglobal_GeracaoItqPPdr;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_RACRO-Limite_Sup_FACRO": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xBtB = vglobal_FBtB; xTR_prov = vglobal_FTRpr; t_nort = vglobal_GerTNorteII; xPOLO1 = vglobal_POLO1"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_RACRO-Limite_Inf_FACRO": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xFACRO = vglobal_FACRO; xMaqSA = vglobal_UHESantoAntonioNumUGs; xMaqJir = vglobal_UHJirauNumUgs; xilha1 = vglobal_UHESantoAntonioGeracaoIlha1; xilha2 = vglobal_UHESantoAntonioGeracaoIlha1; xmesq = vglobal_UHESantoAntonioGeracaoMEsqrd; xJirau = vglobal_UHJirauGer; xTR_prov = vglobal_FTRpr; xBtB = vglobal_FBtB; xPOLO1 = vglobal_POLO1"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_RACRO-Limite_Sam_Ariq": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xTN2 = vglobal_GerTNorteII;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_RACRO-Limite_BtB": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xPOLO1 = vglobal_POLO1; xMaqSA = vglobal_UHESantoAntonioNumUGs; xMaqJir = vglobal_UHJirauNumUgs; xTR_prov = vglobal_FTRpr; Facro = vglobal_FACRO;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_RACRO-Limite_TRprov": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xFACRO = vglobal_FACRO; xPOLO1 = vglobal_POLO1; xMaqSA = vglobal_UHESantoAntonioNumUGs; xMaqJir = vglobal_UHJirauNumUgs; xBtB = vglobal_FBtB;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_RACRO-Limite_POLO": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xPolo = vglobal_POLO1; BtB = vglobal_FBtB; xMaqSA = vglobal_UHESantoAntonioNumUGs; xMaqJir = vglobal_UHJirauNumUgs;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_RACRO-Limite_SA_JI": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xPolo = vglobal_POLO1; xTR_prov = vglobal_FTRpr; xBtB = vglobal_FBtB; xGerSA = vglobal_UHESantoAntonioGerTotal; xGerJir = vglobal_UHJirauGer;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; default: break; } } }
public static void CarregarVariaveisComDados(Visao visao, List<Variavel> variaveis) { visao.Valores = new Dictionary<int, List<MaquinaInequacoesServiceReference.Variavel>>(); visao.Variaveis = new List<KeyValuePair<MaquinaInequacoesServiceReference.Variavel, int>>(); //Abre CSV como texto string fileName = GetCaminhoCompletoArquivoTeste_ValidacaoLimites_Aba_ACRO_MT(); System.IO.StreamReader sr = new System.IO.StreamReader(File.OpenRead(fileName)); int iLinhaIdx = 0; while (sr.Peek() != -1) { string line = sr.ReadLine(); // separa linha do CSV string[] valores = line.Split(','); double primeiraColunaComValor = 0.0; if (valores.Length > 3 && double.TryParse(valores[4], out primeiraColunaComValor)) { List<MaquinaInequacoesServiceReference.Variavel> variaveisDaLinha = new List<MaquinaInequacoesServiceReference.Variavel>(); InserirVariavelGlobal("FACRO", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[4]), variaveisDaLinha); InserirVariavelGlobal("FluxoSamAq", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[5]), variaveisDaLinha); InserirVariavelGlobal("FBtB", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[6]), variaveisDaLinha); InserirVariavelGlobal("FTRpr", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[7]), variaveisDaLinha); InserirVariavelGlobal("POLO1", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[8]), variaveisDaLinha); InserirVariavelGlobal("GeracaoItqPPdr", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[22]), variaveisDaLinha); InserirVariavelGlobal("UHESantoAntonioNumUGs", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[23]), variaveisDaLinha); InserirVariavelGlobal("UHESantoAntonioGerTotal", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[24]), variaveisDaLinha); InserirVariavelGlobal("UHESantoAntonioGeracaoIlha1", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[25]), variaveisDaLinha); InserirVariavelGlobal("UHESantoAntonioGeracaoIlha2", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[26]), variaveisDaLinha); InserirVariavelGlobal("UHESantoAntonioGeracaoMEsqrd", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[27]), variaveisDaLinha); InserirVariavelGlobal("GerTNorteII", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[28]), variaveisDaLinha); InserirVariavelGlobal("UHJirauGer", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[29]), variaveisDaLinha); InserirVariavelGlobal("UHJirauNumUgs", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[30]), variaveisDaLinha); visao.Valores.Add(iLinhaIdx, variaveisDaLinha); iLinhaIdx++; } } // Carrega variáveis globais na visão foreach (MaquinaInequacoesServiceReference.Variavel var in visao.Valores[0]) { KeyValuePair<MaquinaInequacoesServiceReference.Variavel, int> variavel = new KeyValuePair<MaquinaInequacoesServiceReference.Variavel, int>(var, 0); visao.Variaveis.Add(variavel); variaveis.Add(variavel.Key); } }
/// <summary> /// Carrega funções na visão adicionando mapeamento valor da variável global para variável "interna" da função /// </summary> /// <param name="visao"></param> /// <param name="variaveis"></param> /// <param name="funcoes"></param> public static void CarregarFuncoes(Visao visao, List<Variavel> variaveis, List<Funcao> funcoes) { visao.Funcoes = new List<KeyValuePair<Funcao, int>>(); int i = 0; foreach(Funcao funcao in funcoes) { Decisao decisao = new Decisao(); List<Decisao> decisoes = new List<Decisao>(); KeyValuePair<Funcao, int> func = new KeyValuePair<Funcao, int>(); switch(funcao.Nome) { case "Modulo_Interligacao_SSE-UGminARAUC": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xcargasul = vglobal_CARGA_do_SUL; xrsul = vglobal_RSUL"; decisoes.Add(decisao); foreach(Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Interligacao_SSE-GERminARAUC": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xcargasul = vglobal_CARGA_do_SUL; xrsul = vglobal_RSUL"; decisoes.Add(decisao); foreach(Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_GARABI_ITASSA1-LimiteSUPGARABI1": funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_GARABI_ITASSA1-LimiteINFGARABI1": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xGarabi1 = vglobal_Grbi_I; xGarabi2 = vglobal_Grbi_II;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_GARABI_ITASSA1-LimiteSUPGARABI2": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xGarabi1 = vglobal_Grbi_I; xGarabi2 = vglobal_Grbi_II;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_GARABI_ITASSA1-LimiteINFGARABI2": funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_PERIODO_SE_CO_RNE_2009-PeriodoCarga_SE_CO": // xHora As Date, xDiaSemana As String, xTipo As String, Hverao funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "PeriodoCarga_SE_CO".ToLower()).FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Interligacao_SSE-refFRS_Ger": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xcargasul = vglobal_CARGA_do_SUL; xUGarauc = vglobal_Gera_Araucara"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; default: break; } } }
public static void CarregarVariaveisComDados(Visao visao, List<Variavel> variaveis) { visao.Valores = new Dictionary<int, List<MaquinaInequacoesServiceReference.Variavel>>(); visao.Variaveis = new List<KeyValuePair<MaquinaInequacoesServiceReference.Variavel, int>>(); //Abre CSV como texto string fileName = GetCaminhoCompletoArquivoTeste_ValidacaoLimites_Aba_SUL(); System.IO.StreamReader sr = new System.IO.StreamReader(File.OpenRead(fileName)); int iLinhaIdx = 0; while (sr.Peek() != -1) { string line = sr.ReadLine(); // separa linha do CSV string[] valores = line.Split(','); double primeiraColunaComValor = 0.0; if (valores.Length > 3 && double.TryParse(valores[3], out primeiraColunaComValor)) { List<MaquinaInequacoesServiceReference.Variavel> variaveisDaLinha = new List<MaquinaInequacoesServiceReference.Variavel>(); InserirVariavelGlobal("FRS", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[3]), variaveisDaLinha); InserirVariavelGlobal("RSUL", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[4]), variaveisDaLinha); InserirVariavelGlobal("Grbi_I", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[5]), variaveisDaLinha); InserirVariavelGlobal("Grbi_II", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[6]), variaveisDaLinha); InserirVariavelGlobal("CARGA_do_SUL", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[7]), variaveisDaLinha); InserirVariavelGlobal("Gera_Araucara", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[8]), variaveisDaLinha); InserirVariavelGlobal("UGs_Gerando_GBM", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[16]), variaveisDaLinha); InserirVariavelGlobal("UGs_Gerando_GNB", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[17]), variaveisDaLinha); InserirVariavelGlobal("UGs_Gerando_SSA", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[18]), variaveisDaLinha); InserirVariavelGlobal("UGs_Gerando_Ita", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[19]), variaveisDaLinha); InserirVariavelGlobal("UGs_Gerando_Mach", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[20]), variaveisDaLinha); InserirVariavelGlobal("UGs_Gerando_BGrande", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[21]), variaveisDaLinha); InserirVariavelGlobal("UGs_Gerando_CNO", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[22]), variaveisDaLinha); InserirVariavelGlobal("UGs_Gerando_GPS", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[23]), variaveisDaLinha); InserirVariavelGlobal("UGs_Gerando_S_Osorio", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[24]), variaveisDaLinha); InserirVariavelGlobal("UGs_Gerando_Araucaria", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[25]), variaveisDaLinha); InserirVariavelGlobal("C_Sincrono_GBM", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[26]), variaveisDaLinha); InserirVariavelGlobal("C_Sincrono_GNB", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[27]), variaveisDaLinha); InserirVariavelGlobal("C_Sincrono_SSA", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[28]), variaveisDaLinha); InserirVariavelGlobal("C_Sincrono_Ita", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[29]), variaveisDaLinha); InserirVariavelGlobal("C_Sincrono_Mach", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[30]), variaveisDaLinha); InserirVariavelGlobal("C_Sincrono_B_Grande", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[31]), variaveisDaLinha); InserirVariavelGlobal("C_Sincrono_CNO", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[32]), variaveisDaLinha); InserirVariavelGlobal("C_Sincrono_GPS", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[33]), variaveisDaLinha); InserirVariavelGlobal("C_Sincrono_S_Osorio", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[34]), variaveisDaLinha); InserirVariavelGlobal("J_Lacerda_P", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[35]), variaveisDaLinha); InserirVariavelGlobal("J_Lacerda_M", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[36]), variaveisDaLinha); InserirVariavelGlobal("J_Lacerda_G", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[37]), variaveisDaLinha); InserirVariavelGlobal("J_Lacerda_GG", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[38]), variaveisDaLinha); InserirVariavelGlobal("G1", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[39]), variaveisDaLinha); InserirVariavelGlobal("G2", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[40]), variaveisDaLinha); InserirVariavelGlobal("G3", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[41]), variaveisDaLinha); InserirVariavelGlobal("G4", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[42]), variaveisDaLinha); visao.Valores.Add(iLinhaIdx, variaveisDaLinha); iLinhaIdx++; } } // Carrega variáveis globais na visão foreach(MaquinaInequacoesServiceReference.Variavel var in visao.Valores[0]) { KeyValuePair<MaquinaInequacoesServiceReference.Variavel, int> variavel = new KeyValuePair<MaquinaInequacoesServiceReference.Variavel, int>(var, 0); visao.Variaveis.Add(variavel); variaveis.Add(variavel.Key); } }
/// <summary> /// Carrega funções na visão adicionando mapeamento valor da variável global para variável "interna" da função /// </summary> /// <param name="visao"></param> /// <param name="variaveis"></param> /// <param name="funcoes"></param> public static void CarregarFuncoes(Visao visao, List<Variavel> variaveis, List<Funcao> funcoes) { visao.Funcoes = new List<KeyValuePair<Funcao, int>>(); int i = 0; // Adiciona primeiro o periodo de carga pois o resultado será usado nas outras funções (variável PeriodoCarga_SE_CO atualizada no Main.Executar() Funcao funcaoPeriodoCarga = funcoes.Where(f => f.Nome == "Modulo_PERIODO_SE_CO_RNE_2009-PeriodoCarga_SE_CO").FirstOrDefault(); // xHora As Date, xDiaSemana As String, xTipo As String, Hverao funcaoPeriodoCarga.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "PeriodoCarga_SE_CO".ToLower()).FirstOrDefault(); KeyValuePair<Funcao, int> funcKVP = new KeyValuePair<Funcao, int>(funcaoPeriodoCarga, i); visao.Funcoes.Add(funcKVP); foreach (Funcao funcao in funcoes) { Decisao decisao = new Decisao(); List<Decisao> decisoes = new List<Decisao>(); KeyValuePair<Funcao, int> func = new KeyValuePair<Funcao, int>(); switch (funcao.Nome) { case "Modulo_Limites_MOPs-Limite_GIPU_n3": /* decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xlogica24"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); */ funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Limites_MOPs-LIM_FSE_n3": decisao.Inequacao = string.Empty; // xcargaSIN, xelocc, , xlimite_fse decisao.BlocoDeAcao = "xpercarga = PeriodoCarga_SE_CO; xhbo = vglobal_HBO;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Limites_MOPs-LIM_RSE_n3": decisao.Inequacao = string.Empty; // xcargaSIN, xelocc, , xlimite_rse decisao.BlocoDeAcao = "xpercarga = PeriodoCarga_SE_CO; xhbo = vglobal_HBO;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Limites_MOPs-LIM_FNS_n3": decisao.Inequacao = string.Empty; // xcargaSIN, xcbrava, xmq_sm = N_NE_SE!L6+N_NE_SE!O6 decisao.BlocoDeAcao = "xcbrava = vglobal_MqsCanaBrava; xhbo = vglobal_HBO; xpercarga = PeriodoCarga_SE_CO;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Limites_MOPs-LIM_FSM_n3": decisao.Inequacao = string.Empty; // xcargaSIN, , xmq_sm, decisao.BlocoDeAcao = "xcbrava = vglobal_MqsCanaBrava; xhbo = vglobal_HBO; xpercarga = PeriodoCarga_SE_CO;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Limites_MOPs-Limite_RSUL_n3": // xcarga_SIN funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; default: break; } } }
public static void CarregarVariaveisComDados(Visao visao, List<Variavel> variaveis) { visao.Valores = new Dictionary<int, List<MaquinaInequacoesServiceReference.Variavel>>(); visao.Variaveis = new List<KeyValuePair<MaquinaInequacoesServiceReference.Variavel, int>>(); //Abre CSV como texto string fileName = GetCaminhoCompletoArquivoTeste_ValidacaoLimites_Aba_SEVERA_N3(); System.IO.StreamReader sr = new System.IO.StreamReader(File.OpenRead(fileName)); int iLinhaIdx = 0; while (sr.Peek() != -1) { string line = sr.ReadLine(); // separa linha do CSV string[] valores = line.Split(','); double primeiraColunaComValor = 0.0; if (valores.Length > 3 && double.TryParse(valores[3], out primeiraColunaComValor)) { List<MaquinaInequacoesServiceReference.Variavel> variaveisDaLinha = new List<MaquinaInequacoesServiceReference.Variavel>(); InserirVariavelGlobal("HBO", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[9]), variaveisDaLinha); InserirVariavelGlobal("MqsCanaBrava", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[11]), variaveisDaLinha); visao.Valores.Add(iLinhaIdx, variaveisDaLinha); iLinhaIdx++; } } // Carrega variáveis globais na visão foreach (MaquinaInequacoesServiceReference.Variavel var in visao.Valores[0]) { KeyValuePair<MaquinaInequacoesServiceReference.Variavel, int> variavel = new KeyValuePair<MaquinaInequacoesServiceReference.Variavel, int>(var, 0); visao.Variaveis.Add(variavel); variaveis.Add(variavel.Key); } }
public static void CarregarVariaveisComDados(Visao visao, List<Variavel> variaveis) { visao.Valores = new Dictionary<int, List<MaquinaInequacoesServiceReference.Variavel>>(); visao.Variaveis = new List<KeyValuePair<MaquinaInequacoesServiceReference.Variavel, int>>(); //Abre CSV como texto string fileName = GetCaminhoCompletoArquivoTeste_ValidacaoLimites_Aba_N_NE_SE(); System.IO.StreamReader sr = new System.IO.StreamReader(File.OpenRead(fileName)); int iLinhaIdx = 0; while (sr.Peek() != -1) { string line = sr.ReadLine(); // separa linha do CSV string[] valores = line.Split(','); double primeiraColunaComValor = 0.0; if (valores.Length > 3 && double.TryParse(valores[3], out primeiraColunaComValor)) { List<MaquinaInequacoesServiceReference.Variavel> variaveisDaLinha = new List<MaquinaInequacoesServiceReference.Variavel>(); InserirVariavelGlobal("EXP_N", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[3]), variaveisDaLinha); InserirVariavelGlobal("RNE", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[4]), variaveisDaLinha); InserirVariavelGlobal("FNE", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[5]), variaveisDaLinha); InserirVariavelGlobal("EXP_SE", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[6]), variaveisDaLinha); InserirVariavelGlobal("FMCCO", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[7]), variaveisDaLinha); InserirVariavelGlobal("FSENE", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[8]), variaveisDaLinha); InserirVariavelGlobal("FNS", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[9]), variaveisDaLinha); InserirVariavelGlobal("FSM", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[10]), variaveisDaLinha); InserirVariavelGlobal("SMGerando", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[11]), variaveisDaLinha); InserirVariavelGlobal("Maqs_Laj", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[12]), variaveisDaLinha); InserirVariavelGlobal("Maqs_Px", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[13]), variaveisDaLinha); InserirVariavelGlobal("Maqs_SMCOp", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[14]), variaveisDaLinha); InserirVariavelGlobal("CARGASIN", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[15]), variaveisDaLinha); InserirVariavelGlobal("CargaNE", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[18]), variaveisDaLinha); InserirVariavelGlobal("Xingo_Gera", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[19]), variaveisDaLinha); InserirVariavelGlobal("Xingo_NumUgs", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[20]), variaveisDaLinha); InserirVariavelGlobal("Gera_Porto_Pecem", MaquinaInequacoesServiceReference.TipoDado.Numerico, double.Parse(valores[21]), variaveisDaLinha); visao.Valores.Add(iLinhaIdx, variaveisDaLinha); iLinhaIdx++; } } // Carrega variáveis globais na visão foreach (MaquinaInequacoesServiceReference.Variavel var in visao.Valores[0]) { KeyValuePair<MaquinaInequacoesServiceReference.Variavel, int> variavel = new KeyValuePair<MaquinaInequacoesServiceReference.Variavel, int>(var, 0); visao.Variaveis.Add(variavel); variaveis.Add(variavel.Key); } }
/// <summary> /// Carrega funções na visão adicionando mapeamento valor da variável global para variável "interna" da função /// </summary> /// <param name="visao"></param> /// <param name="variaveis"></param> /// <param name="funcoes"></param> public static void CarregarFuncoes(Visao visao, List<Variavel> variaveis, List<Funcao> funcoes) { visao.Funcoes = new List<KeyValuePair<Funcao, int>>(); int i = 0; // Adiciona o periodo de carga N/NE pois o resultado será usado nas outras funções Funcao funcaoPeriodoCargaNNE = funcoes.Where(f => f.Nome == "Modulo_Horarios_RNE_2009-PeriodoCarga_N_NE").FirstOrDefault(); // xHora As Date, xDiaSemana As String, xTipo As String, Hverao funcaoPeriodoCargaNNE.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "PeriodoCarga_N_NE".ToLower()).FirstOrDefault(); KeyValuePair<Funcao, int> funcKVPNNE = new KeyValuePair<Funcao, int>(funcaoPeriodoCargaNNE, i); visao.Funcoes.Add(funcKVPNNE); // Adiciona o periodo de carga SE/CO pois o resultado será usado nas outras funções Funcao funcaoPeriodoCarga = funcoes.Where(f => f.Nome == "Modulo_PERIODO_SE_CO_RNE_2009-PeriodoCarga_SE_CO").FirstOrDefault(); // xHora As Date, xDiaSemana As String, xTipo As String, Hverao funcaoPeriodoCarga.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "PeriodoCarga_SE_CO".ToLower()).FirstOrDefault(); i++; KeyValuePair<Funcao, int> funcKVP = new KeyValuePair<Funcao, int>(funcaoPeriodoCarga, i); visao.Funcoes.Add(funcKVP); // Adiciona função pois o resultado será usado nas outras funções Funcao funcaoXingoMinMaqs = funcoes.Where(f => f.Nome == "Modulo_N_NE_SE_semECE_RNE_2009-min_Xingo").FirstOrDefault(); Decisao decisaoXingo = new Decisao(); List<Decisao> decisoesXingo = new List<Decisao>(); decisaoXingo.Inequacao = string.Empty; decisaoXingo.BlocoDeAcao = "xRNE = vglobal_RNE; xger_xingo = vglobal_Xingo_Gera;"; decisoesXingo.Add(decisaoXingo); foreach (Decisao dec in funcaoXingoMinMaqs.ListaDecisoes.Decisoes) { decisoesXingo.Add(dec); } funcaoXingoMinMaqs.ListaDecisoes.Decisoes = decisoesXingo.ToArray(); funcaoXingoMinMaqs.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "maqs".ToLower()).FirstOrDefault(); i++; KeyValuePair<Funcao, int> funcKVPXingo = new KeyValuePair<Funcao, int>(funcaoXingoMinMaqs, i); visao.Funcoes.Add(funcKVPXingo); foreach (Funcao funcao in funcoes) { Decisao decisao = new Decisao(); List<Decisao> decisoes = new List<Decisao>(); KeyValuePair<Funcao, int> func = new KeyValuePair<Funcao, int>(); switch (funcao.Nome) { case "Modulo_N_NE_SE_comECE_RNE_2009-ECE_ON_OFF": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xFNS = vglobal_FNS;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "estado_ece").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_N_NE_apoio-LimiteEXPN_N_EXP": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xpercarga = PeriodoCarga_SE_CO; xRNE = vglobal_RNE; xEXPN = vglobal_EXP_N; xFSENE = vglobal_FSENE;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_N_NE_apoio-Limite_Inf_EXPN_IO_NNE": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xpercarga = PeriodoCarga_N_NE; xRNE = vglobal_RNE; xEXPN = vglobal_EXP_N; xEXPSE = vglobal_EXP_SE;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_N_NE_apoio-LimiteRNE_Cenarios_N_NE_SE": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xEXPN = vglobal_EXP_N; xRNE = vglobal_RNE; xEXP_SE = vglobal_EXP_SE; xpercarga = PeriodoCarga_N_NE; x_cargaNE = vglobal_CargaNE; xugxingo = vglobal_Xingo_NumUgs; xlimugx = maqs; xFSENE = vglobal_FSENE;"; //xEXPN As Double, xRNE As Double, xEXP_SE As Double, xpercarga As String, x_cargaNE, xugxingo, xlimugx, xFSENE decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_N_NE_apoio-LimiteEXP_SE_cenarios": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xpercarga = PeriodoCarga_N_NE; xRNE = vglobal_RNE; xEXP_SE = vglobal_EXP_SE; xPpecem = vglobal_Gera_Porto_Pecem; xFSENE = vglobal_FSENE;"; //xpercarga As String, xRNE As Double, xEXP_SE As Double, xPpecem, xFSENE decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_N_NE_apoio-Limite_inf_EXP_SE_SE_EXP": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xpercarga = PeriodoCarga_N_NE; xRNE = vglobal_RNE; xEXPSE = vglobal_EXP_SE;"; //xpercarga As String, xRNE As Double, xEXPSE decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_N_NE_apoio-LimiteFSENE": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xpercarga = PeriodoCarga_N_NE; x_cargaNE = vglobal_CargaNE;"; //xpercarga As String, x_cargaNE decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Limites_MOPs-LimiteFNS_IO": decisao.Inequacao = string.Empty; // xMqIPU = vglobal_ [S_SE:U] // xECE_IPU_TUC // xMW_ug_ipu [S_SE!K6/S_SE!L6] decisao.BlocoDeAcao = "xMqSM = vglobal_SMGerando; xSM_cs = vglobal_Maqs_SMCOp; xMqLJ = vglobal_Maqs_Laj; xMqPX = vglobal_Maqs_Px; xcarga_SIN = vglobal_CARGASIN; xpercarga = PeriodoCarga_N_NE; xFSM = vglobal_FSM; xFSENE = vglobal_FSENE;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Limites_MOPs-Lim_Inferior_FSM": decisao.Inequacao = string.Empty; decisao.BlocoDeAcao = "xEXPSE = vglobal_EXP_SE; xugSM = vglobal_SMGerando; xpercarga = PeriodoCarga_N_NE;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; case "Modulo_Limites_MOPs-Limite_Superior_FSM": decisao.Inequacao = string.Empty; // xMqIPU, xECE_IPU_TUC, xMW_ug_ipu decisao.BlocoDeAcao = "xMqSM = vglobal_SMGerando; xSM_cs = vglobal_Maqs_SMCOp; xMqLJ = vglobal_Maqs_Laj; xMqPX = vglobal_Maqs_Px; xcarga_SIN = vglobal_CARGASIN; xpercarga = PeriodoCarga_N_NE; xEXPN = vglobal_EXP_N; xFNS = vglobal_FNS; xFSENE = vglobal_FSENE;"; decisoes.Add(decisao); foreach (Decisao dec in funcao.ListaDecisoes.Decisoes) { decisoes.Add(dec); } funcao.ListaDecisoes.Decisoes = decisoes.ToArray(); funcao.VariavelRetorno = variaveis.Where(v => v.Nome.Trim().ToLower() == "lim").FirstOrDefault(); func = new KeyValuePair<Funcao, int>(funcao, i); visao.Funcoes.Add(func); i++; break; default: break; } } }