// 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);
        }
    }
Example #2
0
        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);
            }
        }
Example #3
0
        /// <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;
                }

            }
        }
Example #4
0
        /// <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;
                }

            }
        }
Example #5
0
        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);
            }
        }
Example #6
0
        /// <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;
                }

            }
        }
Example #7
0
        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);
            }
        }
Example #8
0
        /// <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;
                }

            }
        }
Example #9
0
        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);
            }
        }
Example #10
0
        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);
            }
        }
Example #11
0
        /// <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;
                }

            }
        }