コード例 #1
0
ファイル: DetalhesCiclo.cs プロジェクト: zeehjr/crg08ht
        private void Grafico_Click(object sender, EventArgs e)
        {
            VO.Ciclos ciclo   = CicloDAO.buscaCiclo(crg, idCiclo);
            Grafico   grafico = new Grafico(ciclo);

            grafico.ShowDialog(this);
        }
コード例 #2
0
ファイル: DetalhesCiclo.cs プロジェクト: zeehjr/crg08ht
        private void Imprimir_Click(object sender, EventArgs e)
        {
            VO.Ciclos       ciclo     = CicloDAO.buscaCiclo(crg, idCiclo);
            OpcoesImpressao impressao = new OpcoesImpressao(ciclo);

            impressao.ShowDialog(this);
        }
コード例 #3
0
ファイル: DetalhesCiclo.cs プロジェクト: zeehjr/crg08ht
        private void Produtos_Click(object sender, EventArgs e)
        {
            VO.Ciclos             ciclo         = CicloDAO.buscaCiclo(crg, idCiclo);
            List <ProdutoCiclo>   listaProdutos = ProdutoCicloDAO.listaProdutosCiclo(ciclo);
            DetalhesProdutosCiclo produtos      = new DetalhesProdutosCiclo(listaProdutos);

            produtos.ShowDialog(this);
        }
コード例 #4
0
ファイル: RelTratamento.cs プロジェクト: zeehjr/crg08ht
 public RelTratamento(VO.Ciclos ciclo, int opcao, string empresa, string comentario, ConfiguracaoRelatorio configRelatorio)
 {
     InitializeComponent();
     this.ciclo           = ciclo;
     this.opcao           = opcao;
     this.empresa         = empresa;
     this.comentario      = comentario;
     this.configRelatorio = configRelatorio;
 }
コード例 #5
0
ファイル: Principal.cs プロジェクト: zeehjr/crg08ht
        private void button1_Click(object sender, EventArgs e)
        {
            var ciclo = new VO.Ciclos();

            ciclo.id = 1;
            List <LeiturasTrat> listaLeiturasTrat = LeiturasTratDAO.ListaLeiturasTratamento(ciclo);

            MessageBox.Show(listaLeiturasTrat.Count.ToString(), "", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
コード例 #6
0
ファイル: RelTratamento.cs プロジェクト: zeehjr/crg08ht
        private VO.Ciclos TransformaEmListaCorreta(VO.Ciclos c)
        {
            var listaLeiturasCiclo = new List <LeiturasCiclo>();
            var listaLeiturasTrat  = new List <LeiturasTrat>();

            listaLeiturasCiclo = LeiturasCicloDAO.ListaLeiturasCiclos(c);
            listaLeiturasTrat  = LeiturasTratDAO.ListaLeiturasTratamento(c);

            return(new VO.Ciclos());
        }
コード例 #7
0
ファイル: Historico.cs プロジェクト: zeehjr/crg08ht
        private void Receber_Click(object sender, EventArgs e)
        {
            dtgHistorico.Rows.Clear();
            int    numEquipamento = cmbCRG.SelectedIndex + 1;
            string porta          = ConfiguracaoDAO.retornaPorta();
            bool   continua       = false;
            byte   numBytes       = 0;

            try
            {
                t = new Thread(new ThreadStart(carregarAguarde));
                t.Start();
                var srpComm = new SerialPort(porta, 19200, Parity.None, 8, StopBits.One);
                srpComm.DtrEnable       = true;
                srpComm.RtsEnable       = false;
                srpComm.ReadBufferSize  = 50000;
                srpComm.WriteBufferSize = 50000;

                Conexao.srpComm = srpComm;

                if (Conexao.srpComm.IsOpen == false)
                {
                    Conexao.srpComm.Open();
                    Thread.Sleep(100);
                }

                int aux = numEquipamento + 63;
                Conexao.srpComm.Write(((char)19).ToString());
                Thread.Sleep(100);
                Conexao.srpComm.Write(((char)17).ToString());
                Thread.Sleep(100);
                Conexao.srpComm.Write(((char)aux).ToString());
                Thread.Sleep(100);

                if (Conexao.srpComm.BytesToRead != 0)
                {
                    numBytes       = byte.Parse(Conexao.srpComm.BytesToRead.ToString());
                    Conexao.buffer = new byte[numBytes];
                    Conexao.srpComm.Read(Conexao.buffer, 0, numBytes);
                }
                continua = true;

                if (continua)
                {
                    int contador = 0;

                    switch (Conexao.buffer[0])
                    {
                    case 167:
                        Conexao.srpComm.Write(((char)15).ToString());
                        Thread.Sleep(500);
                        do
                        {
                            if (Conexao.srpComm.BytesToRead != 0)
                            {
                                numBytes       = byte.Parse(Conexao.srpComm.BytesToRead.ToString());
                                Conexao.buffer = new byte[numBytes];
                                Conexao.srpComm.Read(Conexao.buffer, 0, numBytes);
                            }
                        } while (contador < 3 && Conexao.srpComm.BytesToRead != 0);

                        int checksum = 0;
                        for (int i = 0; i < Conexao.buffer.Length - 2; i++)
                        {
                            checksum ^= Conexao.buffer[i];
                        }

                        if (checksum == Conexao.buffer[Conexao.buffer.Length - 2])
                        {
                            for (int i = 0; i < Conexao.buffer.Length - 2; i++)
                            {
                                VO.Ciclos ciclo = new VO.Ciclos();
                                ciclo.nTrat      = (Conexao.buffer[i] * 256) + Conexao.buffer[i + 1];
                                ciclo.nl         = (Conexao.buffer[i + 2] * 256) + Conexao.buffer[i + 3];
                                ciclo.dataInicio =
                                    Convert.ToDateTime(
                                        string.Concat((Conexao.buffer[i + 7] / 16), (Conexao.buffer[i + 7] % 16)) + "/" +
                                        string.Concat((Conexao.buffer[i + 8] / 16), (Conexao.buffer[i + 8] % 16)) +
                                        "/20" +
                                        string.Concat((Conexao.buffer[i + 9] / 16), (Conexao.buffer[i + 9] % 16)) + " " +
                                        string.Concat((Conexao.buffer[i + 5] / 16), (Conexao.buffer[i + 5] % 16)) + ":" +
                                        string.Concat((Conexao.buffer[i + 4] / 16), (Conexao.buffer[i + 4] % 16)));
                                ciclo.crg = numEquipamento;
                                bool noBanco = CicloDAO.testanoBanco(ciclo);
                                if (!noBanco)
                                {
                                    dtgHistorico.Rows.Add(ciclo.nTrat, ciclo.nl,
                                                          ciclo.dataInicio.ToString("dd/MM/yyyy HH:mm"));
                                }
                                i = i + 9;
                            }
                            t.Abort();
                            Thread.Sleep(100);
                            if (dtgHistorico.Rows.Count == 0)
                            {
                                MessageBox.Show("Não há nenhum histórico novo");
                            }
                            Conexao.srpComm.Close();
                        }
                        else
                        {
                            MessageBox.Show("Erro de checksum.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            Conexao.srpComm.Close();
                        }

                        break;

                    case 166:
                        Conexao.srpComm.Write(((char)15).ToString());
                        Thread.Sleep(500);
                        do
                        {
                            if (Conexao.srpComm.BytesToRead != 0)
                            {
                                numBytes       = byte.Parse(Conexao.srpComm.BytesToRead.ToString());
                                Conexao.buffer = new byte[numBytes];
                                Conexao.srpComm.Read(Conexao.buffer, 0, numBytes);
                            }
                        } while (contador < 3 && Conexao.srpComm.BytesToRead != 0);

                        int checksum1 = 0;
                        for (int i = 0; i < Conexao.buffer.Length - 2; i++)
                        {
                            checksum1 ^= Conexao.buffer[i];
                        }

                        if (checksum1 == Conexao.buffer[Conexao.buffer.Length - 2])
                        {
                            for (int i = 0; i < Conexao.buffer.Length - 2; i++)
                            {
                                VO.Ciclos ciclo = new VO.Ciclos();
                                ciclo.nTrat      = (Conexao.buffer[i] * 256) + Conexao.buffer[i + 1];
                                ciclo.nl         = (Conexao.buffer[i + 2] * 256) + Conexao.buffer[i + 3];
                                ciclo.dataInicio =
                                    Convert.ToDateTime(
                                        string.Concat((Conexao.buffer[i + 7] / 16), (Conexao.buffer[i + 7] % 16)) + "/" +
                                        string.Concat((Conexao.buffer[i + 8] / 16), (Conexao.buffer[i + 8] % 16)) +
                                        "/20" +
                                        string.Concat((Conexao.buffer[i + 9] / 16), (Conexao.buffer[i + 9] % 16)) + " " +
                                        string.Concat((Conexao.buffer[i + 5] / 16), (Conexao.buffer[i + 5] % 16)) + ":" +
                                        string.Concat((Conexao.buffer[i + 4] / 16), (Conexao.buffer[i + 4] % 16)));
                                ciclo.crg = numEquipamento;
                                bool noBanco = CicloDAO.testanoBanco(ciclo);
                                if (!noBanco)
                                {
                                    dtgHistorico.Rows.Add(ciclo.nTrat, ciclo.nl,
                                                          ciclo.dataInicio.ToString("dd/MM/yyyy HH:mm"));
                                }
                                i = i + 9;
                            }
                            t.Abort();
                            Thread.Sleep(100);
                            if (dtgHistorico.Rows.Count == 0)
                            {
                                MessageBox.Show("Não há nenhum histórico novo", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            Conexao.srpComm.Close();
                        }
                        else
                        {
                            MessageBox.Show("Erro de checksum.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            Conexao.srpComm.Close();
                        }
                        break;

                    case 165:
                        t.Abort();
                        Thread.Sleep(100);
                        if (dtgHistorico.Rows.Count > 0)
                        {
                            dtgHistorico.Rows.Clear();
                        }
                        MessageBox.Show("Essa função não está disponivel para esse equipamento.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        Conexao.srpComm.Close();
                        break;
                    }
                    inserir.Enabled = true;
                }
            }
            catch (Exception error)
            {
                if (t.IsAlive)
                {
                    t.Abort();
                    Thread.Sleep(100);
                }
                VO.LogErro logErro = new VO.LogErro();
                logErro.crg          = numEquipamento;
                logErro.data         = DateTime.Now;
                logErro.descricao    = "Erro ao decodificar os dados do histórico, aparelho nº " + numEquipamento;
                logErro.maisDetalhes = error.Message + " " + error.StackTrace;
                LogErroDAO.inserirLogErro(logErro, logErro.crg);
                MessageBox.Show("Erro durante a comunicação com o equipamento", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
コード例 #8
0
ファイル: RelTratamento.cs プロジェクト: zeehjr/crg08ht
        public static List <ListaCiclosTratGrafico> GerarListaTratamento(VO.Ciclos ciclo,
                                                                         List <LeiturasCiclo> leiturasCiclo,
                                                                         List <LeiturasTrat> leiturasTrat, ConfiguracaoRelatorio configRelatorio)
        {
            var listaRetorno     = new List <ListaCiclosTratGrafico>();
            var linhasAntesTrat  = configRelatorio.LeiturasAntes;
            var linhasTrat       = configRelatorio.LeiturasTrat;
            var linhasDepoisTrat = configRelatorio.LeiturasDepois;

            if (leiturasTrat == null || leiturasTrat.Count == 0)
            {
                return(listaRetorno);
            }

            var totalCiclo      = leiturasCiclo.Count;
            var totalAntesTrat  = ciclo.NLIniTrat - 1;
            var inicioTrat      = ciclo.NLIniTrat;
            var totalTrat       = leiturasTrat.Count;
            var fimTrat         = inicioTrat + totalTrat - 1;
            var totalDepoisTrat = totalCiclo - fimTrat;
            var nlt             = 0;


            /// POPULA DADOS DO AQUECIMENTO

            //if (totalAntesTrat <= linhasAntesTrat)
            //{
            //    for (var i = 0; i < totalAntesTrat; i++)
            //    {
            //        nlt++;
            //        listaRetorno.Add(new ListaCiclosTratGrafico()
            //        {
            //            NLT = nlt,
            //            NL = i + 1,
            //            horario = leiturasCiclo[i].horario,
            //            T1 = leiturasCiclo[i].T1,
            //            T2 = leiturasCiclo[i].T2,
            //            T3 = leiturasCiclo[i].T3,
            //            T4 = leiturasCiclo[i].T4
            //        });
            //    }
            //}
            //else
            //{
            var indicesAntesTrat = PegarIndicesPorDivisao(0, totalAntesTrat - 1, linhasAntesTrat);

            foreach (var indice in indicesAntesTrat.ToList())
            {
                nlt++;
                listaRetorno.Add(new ListaCiclosTratGrafico()
                {
                    NLT     = nlt,
                    NL      = indice + 1,
                    horario = leiturasCiclo[indice].horario,
                    T1      = leiturasCiclo[indice].T1,
                    T2      = leiturasCiclo[indice].T2,
                    T3      = leiturasCiclo[indice].T3,
                    T4      = leiturasCiclo[indice].T4
                });
            }
            //}

            /// POPULA DADOS DO TRATAMENTO

            //if (totalTrat < linhasTrat)
            //{
            //    for (var i = 0; i < totalTrat; i++)
            //    {
            //        nlt++;
            //        listaRetorno.Add(new ListaCiclosTratGrafico()
            //        {
            //            NLT = nlt,
            //            NL = inicioTrat + i,
            //            horario = leiturasCiclo[i].horario,
            //            T1 = leiturasCiclo[i].T1,
            //            T2 = leiturasCiclo[i].T2,
            //            T3 = leiturasCiclo[i].T3,
            //            T4 = leiturasCiclo[i].T4
            //        });
            //    }
            //}
            //else
            //{
            var indicesTrat = PegarIndicesPorDivisao(0, totalTrat - 1, linhasTrat);

            foreach (var indice in indicesTrat.ToList())
            {
                nlt++;
                listaRetorno.Add(new ListaCiclosTratGrafico()
                {
                    NLT                = nlt,
                    NL                 = inicioTrat + indice,
                    horario            = leiturasTrat[indice].horario,
                    T1                 = leiturasTrat[indice].T1,
                    T2                 = leiturasTrat[indice].T2,
                    T3                 = leiturasTrat[indice].T3,
                    T4                 = leiturasTrat[indice].T4,
                    demarca_tratamento = indice == 0 || indice == (totalTrat - 1)
                });
            }
            //}


            /// POPULA DADOS DO RESFRIAMENTO

            //if (totalDepoisTrat <= linhasDepoisTrat)
            //{
            //    for (var i = fimTrat; i < totalCiclo; i++)
            //    {
            //        nlt++;
            //        listaRetorno.Add(new ListaCiclosTratGrafico()
            //        {
            //            NLT = nlt,
            //            NL = i + 1,
            //            horario = leiturasCiclo[i].horario,
            //            T1 = leiturasCiclo[i].T1,
            //            T2 = leiturasCiclo[i].T2,
            //            T3 = leiturasCiclo[i].T3,
            //            T4 = leiturasCiclo[i].T4
            //        });
            //    }
            //}
            //else
            //{
            var indicesDepoisTrat = PegarIndicesPorDivisao(fimTrat, totalCiclo - 1, linhasDepoisTrat);

            foreach (var indice in indicesDepoisTrat.ToList())
            {
                nlt++;
                listaRetorno.Add(new ListaCiclosTratGrafico()
                {
                    NLT     = nlt,
                    NL      = indice + 1,
                    horario = leiturasCiclo[indice].horario,
                    T1      = leiturasCiclo[indice].T1,
                    T2      = leiturasCiclo[indice].T2,
                    T3      = leiturasCiclo[indice].T3,
                    T4      = leiturasCiclo[indice].T4
                });
            }
            //}

            return(listaRetorno);
        }
コード例 #9
0
ファイル: RelTratamento.cs プロジェクト: zeehjr/crg08ht
        public static List <ListaCiclosTratGrafico> populaTratamento(VO.Ciclos ciclo, List <LeiturasCiclo> leiturasCiclo,
                                                                     List <LeiturasTrat> leiturasTrat, ConfiguracaoRelatorio configRelatorio)
        {
            return(GerarListaTratamento(ciclo, leiturasCiclo, leiturasTrat, configRelatorio));

            /*if (leiturasTrat == null || leiturasTrat.Count == 0)
             * {
             *  return listaRetorno;
             * }
             * var nl = 1;
             * var nlt = 1;
             * var leiturainicial = ciclo.NLIniTrat;
             * var jmp = (leiturainicial - 1) / 9;
             * var i = 0;
             *
             * for (i = 0; i < ciclo.NLIniTrat - 1; i += jmp, nl += jmp)
             * {
             *  listaRetorno.Add(new ListaCiclosTratGrafico()
             *  {
             *      NLT = nlt,
             *      NL = nl,
             *      horario = leiturasCiclo[i].horario,
             *      T1 = leiturasCiclo[i].T1,
             *      T2 = leiturasCiclo[i].T2,
             *      T3 = leiturasCiclo[i].T3,
             *      T4 = leiturasCiclo[i].T4
             *  });
             *  nlt++;
             * }
             * if (i <= ciclo.NLIniTrat - 1)
             * {
             *  nl = leiturainicial - 1;
             *  nlt = 10;
             *  listaRetorno.Add(new ListaCiclosTratGrafico()
             *  {
             *      NLT = nlt,
             *      NL = nl,
             *      horario = leiturasCiclo[ciclo.NLIniTrat-2].horario,
             *      T1 = leiturasCiclo[ciclo.NLIniTrat - 2].T1,
             *      T2 = leiturasCiclo[ciclo.NLIniTrat - 2].T2,
             *      T3 = leiturasCiclo[ciclo.NLIniTrat - 2].T3,
             *      T4 = leiturasCiclo[ciclo.NLIniTrat - 2].T4
             *  });
             *  nlt = 11;
             * }
             *
             *
             * nl = ciclo.NLIniTrat;
             *
             * for (i = 0; i <= leiturasTrat.Count - 1; i += 2, nl += 2)
             * {
             *  listaRetorno.Add(new ListaCiclosTratGrafico()
             *  {
             *      NLT = nlt,
             *      NL = nl,
             *      horario = leiturasTrat[i].horario,
             *      T1 = leiturasTrat[i].T1,
             *      T2 = leiturasTrat[i].T2,
             *      T3 = leiturasTrat[i].T3,
             *      T4 = leiturasTrat[i].T4
             *  });
             *  if (i == 0)
             *  {
             *      listaRetorno[listaRetorno.Count - 1].demarca_tratamento = true;
             *  }
             *  nlt++;
             * }
             * if (i == leiturasTrat.Count)
             * {
             *  nl = ciclo.NLIniTrat + leiturasTrat.Count - 1;
             *  listaRetorno.Add(new ListaCiclosTratGrafico()
             *  {
             *      NLT = nlt,
             *      NL = nl,
             *      horario = leiturasTrat[leiturasTrat.Count - 1].horario,
             *      T1 = leiturasTrat[leiturasTrat.Count - 1].T1,
             *      T2 = leiturasTrat[leiturasTrat.Count - 1].T2,
             *      T3 = leiturasTrat[leiturasTrat.Count - 1].T3,
             *      T4 = leiturasTrat[leiturasTrat.Count - 1].T4
             *  });
             *  nlt++;
             * }
             *
             * listaRetorno[listaRetorno.Count - 1].demarca_tratamento = true;
             *
             * nl = ciclo.NLIniTrat + ciclo.nlt;
             *
             * var countFim = ciclo.nlPostTrat;
             * jmp = countFim / 9;
             *
             * for (i = 0; i < countFim; i += 2, nl += 2)
             * {
             *  listaRetorno.Add(new ListaCiclosTratGrafico()
             *  {
             *      NLT = nlt,
             *      NL = nl,
             *      horario = leiturasCiclo[nl - 1].horario,
             *      T1 = leiturasCiclo[nl - 1].T1,
             *      T2 = leiturasCiclo[nl - 1].T2,
             *      T3 = leiturasCiclo[nl - 1].T3,
             *      T4 = leiturasCiclo[nl - 1].T4
             *  });
             *  nlt++;
             * }
             * if (i < leiturasCiclo.Count - 1)
             * {
             *  nl = leiturasCiclo.Count;
             *  listaRetorno.Add(new ListaCiclosTratGrafico()
             *  {
             *      NLT = nlt,
             *      NL = nl,
             *      horario = leiturasCiclo[leiturasCiclo.Count - 1].horario,
             *      T1 = leiturasCiclo[leiturasCiclo.Count - 1].T1,
             *      T2 = leiturasCiclo[leiturasCiclo.Count - 1].T2,
             *      T3 = leiturasCiclo[leiturasCiclo.Count - 1].T3,
             *      T4 = leiturasCiclo[leiturasCiclo.Count - 1].T4
             *  });
             * }
             * return listaRetorno;*/
        }
コード例 #10
0
ファイル: Principal.cs プロジェクト: zeehjr/crg08ht
        public bool AtualizaCiclo()
        {
            List <string> mensagens = new List <string>();
            //Lista ciclos em Andamento
            List <VO.Ciclos> ciclos = CicloDAO.listaCiclosPorSituacaoAll(0);

            t = new Thread(new ThreadStart(carregarAguarde));
            //this.Enabled = false;

            try
            {
                for (int i = 0; i < ciclos.Count; i++)
                {
                    VO.Ciclos           cic           = ciclos[i];
                    List <ProdutoCiclo> listaProdutos = ProdutoCicloDAO.listaProdutosCiclo(cic);
                    VO.Ciclos           ciclo         = new VO.Ciclos();

                    string porta    = ConfiguracaoDAO.retornaPorta();
                    bool   continua = false;
                    if (!t.IsAlive)
                    {
                        t.Start();
                    }

                    var srpComm = new SerialPort(porta, 19200, Parity.None, 8, StopBits.One);
                    srpComm.DtrEnable       = true;
                    srpComm.RtsEnable       = false;
                    srpComm.ReadBufferSize  = 100000;
                    srpComm.WriteBufferSize = 100000;

                    Conexao.srpComm = srpComm;
                    Conexao.srpComm.Open();
                    Thread.Sleep(100);

                    int numBytes = 0;
                    int aux      = cic.crg + 63;
                    Conexao.srpComm.Write(((char)19).ToString());
                    Thread.Sleep(100);
                    Conexao.srpComm.Write(((char)17).ToString());
                    Thread.Sleep(100);
                    Conexao.srpComm.Write(((char)aux).ToString());
                    Thread.Sleep(100);

                    if (Conexao.srpComm.BytesToRead != 0)
                    {
                        numBytes       = byte.Parse(Conexao.srpComm.BytesToRead.ToString());
                        Conexao.buffer = new byte[numBytes];
                        Conexao.srpComm.Read(Conexao.buffer, 0, numBytes);
                    }
                    continua = true;
                    if (continua)
                    {
                        // int cont = 0;
                        //Verifica se é aparelho novo ou antigo
                        switch (Conexao.buffer[0])
                        {
                        //Versão nova até 150ºC
                        case 167:
                            string binario = decimalParaBinario(cic.nTrat);
                            numTrat1 = binarioParaDecimal(binario.Substring(0, 8));
                            numTrat2 = binarioParaDecimal(binario.Substring(8, 8));

                            Conexao.srpComm.Write(((char)5).ToString());
                            Thread.Sleep(100);
                            Conexao.srpComm.Write(((char)numTrat1).ToString());
                            Thread.Sleep(100);
                            Conexao.srpComm.Write(((char)numTrat2).ToString());
                            Thread.Sleep(8000);

                            int contador = 0;
                            do
                            {
                                if (Conexao.srpComm.BytesToRead != 0)
                                {
                                    numBytes       = int.Parse(Conexao.srpComm.BytesToRead.ToString());
                                    Conexao.buffer = new byte[numBytes];
                                    Conexao.srpComm.Read(Conexao.buffer, 0, numBytes);
                                }
                                contador++;
                            } while (Conexao.srpComm.BytesToRead != 0);

                            int checksum = 0;
                            //Verifica se o ciclo ainda está na memória do equipamento
                            if (Conexao.buffer.Length > 2)
                            {
                                for (int j = 0; j < Conexao.buffer.Length - 2; j++)
                                {
                                    checksum ^= Conexao.buffer[j];
                                }
                                if (checksum == Conexao.buffer[Conexao.buffer.Length - 2])
                                {
                                    int aux2 = Conexao.buffer.Length - 10;
                                    cic.numSerie = ((char)Conexao.buffer[aux2]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 1]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 2]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 3]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 4]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 5]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 6]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 7]).ToString();
                                    cic.nTrat = (Conexao.buffer[0] * 256) + Conexao.buffer[1];
                                    string dataInicio =
                                        string.Concat((Conexao.buffer[7] / 16), (Conexao.buffer[7] % 16)) +
                                        "/" +
                                        string.Concat((Conexao.buffer[8] / 16), (Conexao.buffer[8] % 16)) +
                                        "/20" +
                                        string.Concat((Conexao.buffer[9] / 16), (Conexao.buffer[9] % 16)) +
                                        " " +
                                        string.Concat((Conexao.buffer[5] / 16), (Conexao.buffer[5] % 16)) +
                                        ":" +
                                        string.Concat((Conexao.buffer[4] / 16), (Conexao.buffer[4] % 16));
                                    cic.dataInicio = Convert.ToDateTime(dataInicio);
                                    cic.dataColeta = DateTime.Now;

                                    bool retorno = false;


                                    int indiceLeitCiclo = LeiturasCicloDAO.retornaQtdeLeituras(cic.id,
                                                                                               cic.crg);
                                    int indiceLeitTrat = LeiturasTratDAO.retornaQtdeLeituras(cic.id, cic.crg);
                                    retorno = ConexaoBO.EnviaBancodeDados(cic, Conexao.buffer, true,
                                                                          listaProdutos, indiceLeitCiclo, indiceLeitTrat, true);
                                    if (retorno)
                                    {
                                        AtualizaUltimo(cic.operador, cic.responsavel);
                                        mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg +
                                                      " foi atualizado com sucesso.");
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Erro no checksum.", "Erro", MessageBoxButtons.OK,
                                                    MessageBoxIcon.Information);
                                }
                            }
                            else
                            {
                                mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg +
                                              " nao está mais na memória do equipamento.");
                            }
                            break;

                        //Versão nova até 102ºC
                        case 166:
                            string binario1 = decimalParaBinario(cic.nTrat);
                            numTrat1 = binarioParaDecimal(binario1.Substring(0, 8));
                            numTrat2 = binarioParaDecimal(binario1.Substring(8, 8));

                            Conexao.srpComm.Write(((char)5).ToString());
                            Thread.Sleep(100);
                            Conexao.srpComm.Write(((char)numTrat1).ToString());
                            Thread.Sleep(100);
                            Conexao.srpComm.Write(((char)numTrat2).ToString());
                            Thread.Sleep(8000);

                            int contador1 = 0;
                            do
                            {
                                if (Conexao.srpComm.BytesToRead != 0)
                                {
                                    numBytes       = int.Parse(Conexao.srpComm.BytesToRead.ToString());
                                    Conexao.buffer = new byte[numBytes];
                                    Conexao.srpComm.Read(Conexao.buffer, 0, numBytes);
                                }
                                contador1++;
                            } while (Conexao.srpComm.BytesToRead != 0);

                            int checksum1 = 0;
                            //Verifica se o ciclo ainda está na memória do equipamento
                            if (Conexao.buffer.Length > 2)
                            {
                                for (int j = 0; j < Conexao.buffer.Length - 2; j++)
                                {
                                    checksum1 ^= Conexao.buffer[j];
                                }
                                if (checksum1 == Conexao.buffer[Conexao.buffer.Length - 2])
                                {
                                    int aux2 = Conexao.buffer.Length - 10;
                                    ciclo.numSerie = ((char)Conexao.buffer[aux2]).ToString() +
                                                     ((char)Conexao.buffer[aux2 + 1]).ToString() +
                                                     ((char)Conexao.buffer[aux2 + 2]).ToString() +
                                                     ((char)Conexao.buffer[aux2 + 3]).ToString() +
                                                     ((char)Conexao.buffer[aux2 + 4]).ToString() +
                                                     ((char)Conexao.buffer[aux2 + 5]).ToString() +
                                                     ((char)Conexao.buffer[aux2 + 6]).ToString() +
                                                     ((char)Conexao.buffer[aux2 + 7]).ToString();
                                    ciclo.nTrat = (Conexao.buffer[0] * 256) + Conexao.buffer[1];
                                    string dataInicio =
                                        string.Concat((Conexao.buffer[7] / 16), (Conexao.buffer[7] % 16)) +
                                        "/" +
                                        string.Concat((Conexao.buffer[8] / 16), (Conexao.buffer[8] % 16)) +
                                        "/20" +
                                        string.Concat((Conexao.buffer[9] / 16), (Conexao.buffer[9] % 16)) +
                                        " " +
                                        string.Concat((Conexao.buffer[5] / 16), (Conexao.buffer[5] % 16)) +
                                        ":" +
                                        string.Concat((Conexao.buffer[4] / 16), (Conexao.buffer[4] % 16));
                                    ciclo.dataInicio = Convert.ToDateTime(dataInicio);
                                    ciclo.dataColeta = DateTime.Now;

                                    bool retorno = false;


                                    int indiceLeitCiclo = LeiturasCicloDAO.retornaQtdeLeituras(ciclo.id,
                                                                                               ciclo.crg);
                                    int indiceLeitTrat = LeiturasTratDAO.retornaQtdeLeituras(ciclo.id, ciclo.crg);
                                    retorno = ConexaoBO.EnviaBancodeDados(ciclo, Conexao.buffer, true,
                                                                          listaProdutos, indiceLeitCiclo, indiceLeitTrat, false);
                                    if (retorno)
                                    {
                                        AtualizaUltimo(cic.operador, cic.responsavel);
                                        mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg +
                                                      " foi atualizado com sucesso.");
                                    }
                                }
                                else
                                {
                                    mensagens.Add("Não foi possível atualizar o ciclo nº " + cic.nTrat +
                                                  " do aparelho nº " + cic.crg + ". Erro de Checksum.");
                                }
                            }
                            else
                            {
                                mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg +
                                              " nao está mais na memória do equipamento.");
                            }
                            break;

                        //Versão antiga até 102ºC apenas
                        case 165:
                            Conexao.srpComm.Write(((char)6).ToString());
                            Thread.Sleep(8000);

                            int cont = 0;
                            do
                            {
                                if (Conexao.srpComm.BytesToRead != 0)
                                {
                                    numBytes       = int.Parse(Conexao.srpComm.BytesToRead.ToString());
                                    Conexao.buffer = new byte[numBytes];
                                    Conexao.srpComm.Read(Conexao.buffer, 0, numBytes);
                                }
                                cont++;
                            } while (Conexao.srpComm.BytesToRead != 0);

                            int chk = 0;
                            for (int j = 0; j < Conexao.buffer.Length - 2; j++)
                            {
                                chk ^= Conexao.buffer[j];
                            }

                            if (((Conexao.buffer[5] * 256) + Conexao.buffer[2]) == cic.nTrat)
                            {
                                if (chk == Conexao.buffer[Conexao.buffer.Length - 2])
                                {
                                    int aux2 = Conexao.buffer.Length - 10;
                                    cic.numSerie = ((char)Conexao.buffer[aux2]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 1]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 2]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 3]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 4]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 5]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 6]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 7]).ToString();
                                    cic.nTrat = (Conexao.buffer[5] * 256) + Conexao.buffer[2];
                                    string dataInicio =
                                        string.Concat((Conexao.buffer[6] / 16), (Conexao.buffer[6] % 16)) + "/" +
                                        string.Concat((Conexao.buffer[7] / 16), (Conexao.buffer[7] % 16)) + "/20" +
                                        string.Concat((Conexao.buffer[8] / 16), (Conexao.buffer[8] % 16)) + " " +
                                        string.Concat((Conexao.buffer[4] / 16), (Conexao.buffer[4] % 16)) + ":" +
                                        string.Concat((Conexao.buffer[3] / 16), (Conexao.buffer[3] % 16));
                                    cic.dataInicio = Convert.ToDateTime(dataInicio);
                                    cic.dataColeta = DateTime.Now;

                                    bool retorno = false;

                                    int indiceLeitCiclo = LeiturasCicloDAO.retornaQtdeLeituras(cic.id,
                                                                                               cic.crg);
                                    int indiceLeitTrat = LeiturasTratDAO.retornaQtdeLeituras(cic.id,
                                                                                             cic.crg);
                                    retorno = ConexaoBO.EnviaBancodeDadosAntigo(cic, Conexao.buffer, true,
                                                                                listaProdutos, indiceLeitCiclo, indiceLeitTrat);
                                    if (retorno)
                                    {
                                        AtualizaUltimo(cic.operador, cic.responsavel);
                                        mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg +
                                                      " foi atualizado com sucesso.");
                                    }
                                }
                                else
                                {
                                    mensagens.Add("Não foi possível atualizar o ciclo nº " + cic.nTrat +
                                                  " do aparelho nº " + cic.crg + ". Erro de Checksum.");
                                }
                            }
                            else
                            {
                                mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg +
                                              " não está mais no histórico.");
                            }


                            break;
                        }
                    }
                    Conexao.srpComm.Close();
                    Thread.Sleep(100);
                }
                t.Abort();

                if (mensagens.Count > 0)
                {
                    StatusAtualizacao frm = new StatusAtualizacao(mensagens);
                    frm.ShowDialog(this);
                }
                return(true);
            }
            catch (Exception error)
            {
                VO.LogErro logErro = new VO.LogErro();
                logErro.crg          = 0;
                logErro.descricao    = "Erro ao tentar receber o ciclo";
                logErro.maisDetalhes = error.Message + " " + error.StackTrace;
                logErro.data         = DateTime.Now;
                LogErroDAO.inserirLogErro(logErro, logErro.crg);
                t.Abort();
                return(false);
            }
        }
コード例 #11
0
ファイル: OpcoesImpressao.cs プロジェクト: zeehjr/crg08ht
 public OpcoesImpressao(VO.Ciclos ciclo)
 {
     InitializeComponent();
     this.ciclo = ciclo;
 }
コード例 #12
0
ファイル: DetalhesCiclo.cs プロジェクト: zeehjr/crg08ht
        private void DetalhesCiclo_Load(object sender, EventArgs e)
        {
            var config = ConfiguracaoDAO.PegarConfigRelatorio();

            VO.Ciclos            ciclo = CicloDAO.buscaCiclo(crg, idCiclo);
            List <LeiturasCiclo> listaLeiturasCiclo = LeiturasCicloDAO.ListaLeiturasCiclos(ciclo);
            List <LeiturasTrat>  listaLeiturasTrat  = LeiturasTratDAO.ListaLeiturasTratamento(ciclo);

            var dados = new List <string>();

            if (string.IsNullOrEmpty(ciclo.versaoEquip))
            {
                dados.Add("Controlador nº" + crg.ToString("##") + " com " + ciclo.nl + " leituras(NTRAT: " + ciclo.nTrat.ToString("000") +
                          ") - Nº Série " + ciclo.numSerie);
            }
            else
            {
                dados.Add("Controlador nº" + crg.ToString("##") + " com " + ciclo.nl + " leituras(NTRAT: " + ciclo.nTrat.ToString("000") +
                          ") " + ciclo.versaoEquip + " - Nº Série " + ciclo.numSerie);
            }



            dados.Add("Valores programados no SET POINT do equipamento");
            dados.Add("    - Temperatura de Controle(Tc): " + ciclo.temperaturaControle.ToString("##.0") + "ºC");
            dados.Add("    - Temperatura do Tratamento(Tt): " + ciclo.temperaturaTrat.ToString("##.0") + "ºC");
            dados.Add("    - Tempo do Tratamento(tt): " + ciclo.tempoTrat + " minuto(s)");
            dados.Add("Período do ciclo: " + ciclo.dataInicio + " - " + ciclo.dataFim);
            dados.Add("Descrição: " + ciclo.descricao);
            if (listaLeiturasTrat.Count > 0 && ciclo.nlt == ciclo.tempoTrat)
            {
                dados.Add("Início do tratamento na leitura " + ciclo.NLIniTrat + " - " + ciclo.dataIniTrat +
                          " (concluído)");
            }
            else
            {
                dados.Add("Não realizou o tratamento");
            }
            dados.Add("Responsável Técnico: " + ciclo.responsavel);
            dados.Add("Operador: " + ciclo.operador);

            if (!string.IsNullOrWhiteSpace(ciclo.VolumeFixo))
            {
                dados.Add("Volume total: " + ciclo.VolumeFixo + (ciclo.IsMetrosCubicos ? "m³" : " peça(s)"));
            }
            else
            {
                dados.Add("");
            }

            switch (ciclo.sensor)
            {
            case 0:
                dtgTratamento.Columns["T1T"].HeaderText = "T1 Mad";
                dtgTratamento.Columns["T2T"].HeaderText = "T2 Amb";
                dtgTratamento.Columns["T3T"].HeaderText = "T3 Amb";
                dtgTratamento.Columns["T4T"].HeaderText = "T4 Amb";
                dtgCiclo.Columns["T1"].HeaderText       = "T1 Mad";
                dtgCiclo.Columns["T2"].HeaderText       = "T2 Amb";
                dtgCiclo.Columns["T3"].HeaderText       = "T3 Amb";
                dtgCiclo.Columns["T4"].HeaderText       = "T4 Amb";
                break;

            case 16:
                dtgTratamento.Columns["T1T"].HeaderText = "T1 Mad";
                dtgTratamento.Columns["T2T"].HeaderText = "T2 Amb";
                dtgTratamento.Columns["T3T"].HeaderText = "T3 Amb";
                dtgTratamento.Columns["T4T"].HeaderText = "T4 Amb";
                dtgCiclo.Columns["T1"].HeaderText       = "T1 Mad";
                dtgCiclo.Columns["T2"].HeaderText       = "T2 Amb";
                dtgCiclo.Columns["T3"].HeaderText       = "T3 Amb";
                dtgCiclo.Columns["T4"].HeaderText       = "T4 Amb";
                break;

            case 32:
                dtgTratamento.Columns["T1T"].HeaderText = "T1 Mad";
                dtgTratamento.Columns["T2T"].HeaderText = "T2 Amb";
                dtgTratamento.Columns["T3T"].HeaderText = "T3 Amb";
                dtgTratamento.Columns["T4T"].HeaderText = "T4 Amb";
                dtgCiclo.Columns["T1"].HeaderText       = "T1 Mad";
                dtgCiclo.Columns["T2"].HeaderText       = "T2 Amb";
                dtgCiclo.Columns["T3"].HeaderText       = "T3 Amb";
                dtgCiclo.Columns["T4"].HeaderText       = "T4 Amb";
                break;

            case 48:
                dtgTratamento.Columns["T1T"].HeaderText = "T1 Mad";
                dtgTratamento.Columns["T2T"].HeaderText = "T2 Amb";
                dtgTratamento.Columns["T3T"].HeaderText = "T3 Amb";
                dtgTratamento.Columns["T4T"].HeaderText = "T4 Amb";
                dtgCiclo.Columns["T1"].HeaderText       = "T1 Mad";
                dtgCiclo.Columns["T2"].HeaderText       = "T2 Amb";
                dtgCiclo.Columns["T3"].HeaderText       = "T3 Amb";
                dtgCiclo.Columns["T4"].HeaderText       = "T4 Amb";
                break;

            case 64:
                dtgTratamento.Columns["T1T"].HeaderText = "T1 Mad";
                dtgTratamento.Columns["T2T"].HeaderText = "T2 Mad";
                dtgTratamento.Columns["T3T"].HeaderText = "T3 Amb";
                dtgTratamento.Columns["T4T"].HeaderText = "T4 Amb";
                dtgCiclo.Columns["T1"].HeaderText       = "T1 Mad";
                dtgCiclo.Columns["T2"].HeaderText       = "T2 Mad";
                dtgCiclo.Columns["T3"].HeaderText       = "T3 Amb";
                dtgCiclo.Columns["T4"].HeaderText       = "T4 Amb";
                break;

            case 80:
                dtgTratamento.Columns["T1T"].HeaderText = "T1 Mad";
                dtgTratamento.Columns["T2T"].HeaderText = "T2 Mad";
                dtgTratamento.Columns["T3T"].HeaderText = "T3 Mad";
                dtgTratamento.Columns["T4T"].HeaderText = "T4 Amb";
                dtgCiclo.Columns["T1"].HeaderText       = "T1 Mad";
                dtgCiclo.Columns["T2"].HeaderText       = "T2 Mad";
                dtgCiclo.Columns["T3"].HeaderText       = "T3 Mad";
                dtgCiclo.Columns["T4"].HeaderText       = "T4 Amb";
                break;
            }

            foreach (var dado in dados)
            {
                dtgResumo.Rows.Add(dado);
            }
            dtgResumo.Rows[1].DefaultCellStyle.Font = new Font("Microsoft Sans Seriff", 8, FontStyle.Bold);

            if (ciclo.tipoCRG == 100)
            {
                foreach (var leiturasCiclo in listaLeiturasCiclo)
                {
                    dtgCiclo.Rows.Add((dtgCiclo.Rows.Count + 1).ToString("000"), leiturasCiclo.horario,
                                      leiturasCiclo.T1.ToString("#0.0"),
                                      leiturasCiclo.T2.ToString("#0.0"), leiturasCiclo.T3.ToString("#0.0"),
                                      leiturasCiclo.T4.ToString("#0.0"));
                    if (ciclo.NLIniTrat == dtgCiclo.Rows.Count)
                    {
                        dtgCiclo.Rows[dtgCiclo.Rows.Count - 1].DefaultCellStyle.BackColor = Color.PaleGreen;
                    }
                }
                int contGeral       = 1;
                var listaTratamento = new List <ListaCiclosTratGrafico>();
                if (listaLeiturasTrat.Count > 0 && ciclo.nlt == ciclo.tempoTrat)
                {
                    listaTratamento = RelTratamento.populaTratamento(ciclo, listaLeiturasCiclo, listaLeiturasTrat,
                                                                     config);
                }

                if (listaTratamento.Count > 0)
                {
                    var nlt_inicio_tratamento = 0;
                    var nlt_fim_tratamento    = 0;
                    foreach (var item in listaTratamento.ToList())
                    {
                        if (item.demarca_tratamento)
                        {
                            if (nlt_inicio_tratamento == 0)
                            {
                                nlt_inicio_tratamento = item.NLT;
                            }
                            else
                            {
                                nlt_fim_tratamento = item.NLT;
                            }
                        }
                        dtgTratamento.Rows.Add(item.NLT.ToString("000"), item.NL.ToString("000"), item.horario,
                                               item.T1.ToString("#0.0"), item.T2.ToString("#0.0"), item.T3.ToString("#0.0"),
                                               item.T4.ToString("#0.0"));
                    }
                    foreach (DataGridViewRow row in dtgTratamento.Rows)
                    {
                        var nlt_value = Convert.ToInt32(row.Cells[0].Value);
                        if (nlt_value >= nlt_inicio_tratamento && nlt_value <= nlt_fim_tratamento)
                        {
                            row.DefaultCellStyle.BackColor = Color.PaleGreen;
                        }
                    }
                    //Leituras Anteriores ao Tratamento

                    /*for (int i = 0; i < ciclo.nlAntesTrat; i += 2)
                     * {
                     *  dtgTratamento.Rows.Add("--", contGeral.ToString("000"), listaLeiturasCiclo[i].horario,
                     *      listaLeiturasCiclo[i].T1.ToString("##.0"),
                     *      listaLeiturasCiclo[i].T2.ToString("##.0"), listaLeiturasCiclo[i].T3.ToString("##.0"),
                     *      listaLeiturasCiclo[i].T4.ToString("##.0"));
                     *  contGeral += 2;
                     * }
                     *
                     * int contTrat = 1;
                     * //Leituras do Tratamento
                     * for (int i = 0; i < listaLeiturasTrat.Count; i += 2)
                     * {
                     *  dtgTratamento.Rows.Add(contTrat.ToString("000"), contGeral.ToString("000"),
                     *      listaLeiturasTrat[i].horario, listaLeiturasTrat[i].T1.ToString("##.0"),
                     *      listaLeiturasTrat[i].T2.ToString("##.0"), listaLeiturasTrat[i].T3.ToString("##.0"),
                     *      listaLeiturasTrat[i].T4.ToString("##.0"));
                     *  contTrat += 2;
                     *  contGeral += 2;
                     *  dtgTratamento.Rows[dtgTratamento.RowCount - 1].DefaultCellStyle.BackColor = Color.PaleGreen;
                     * }
                     *
                     * //Leituras Posteriores ao Tratamento
                     * for (int i = contGeral; i < listaLeiturasCiclo.Count; i += 2)
                     * {
                     *  dtgTratamento.Rows.Add("--", contGeral.ToString("000"), listaLeiturasCiclo[i - 1].horario,
                     *      listaLeiturasCiclo[i - 1].T1.ToString("##.0"),
                     *      listaLeiturasCiclo[i - 1].T2.ToString("##.0"), listaLeiturasCiclo[i - 1].T3.ToString("##.0"),
                     *      listaLeiturasCiclo[i - 1].T4.ToString("##.0"));
                     *  contGeral += 2;
                     * }*/
                }
            }
            else if (ciclo.tipoCRG == 150)
            {
                foreach (var leiturasCiclo in listaLeiturasCiclo)
                {
                    dtgCiclo.Rows.Add((dtgCiclo.Rows.Count + 1).ToString("000"), leiturasCiclo.horario,
                                      leiturasCiclo.T1.ToString(),
                                      leiturasCiclo.T2.ToString(), leiturasCiclo.T3.ToString(),
                                      leiturasCiclo.T4.ToString());
                    if (ciclo.NLIniTrat == dtgCiclo.Rows.Count)
                    {
                        dtgCiclo.Rows[dtgCiclo.Rows.Count - 1].DefaultCellStyle.BackColor = Color.PaleGreen;
                    }
                }
                int contGeral       = 1;
                var listaTratamento = new List <ListaCiclosTratGrafico>();
                if (listaLeiturasTrat.Count > 0 && ciclo.nlt == ciclo.tempoTrat)
                {
                    listaTratamento = RelTratamento.populaTratamento(ciclo, listaLeiturasCiclo, listaLeiturasTrat,
                                                                     config);
                }
                if (listaTratamento.Count > 0)
                {
                    var nlt_inicio_tratamento = 0;
                    var nlt_fim_tratamento    = 0;
                    foreach (var item in listaTratamento.ToList())
                    {
                        if (item.demarca_tratamento)
                        {
                            if (nlt_inicio_tratamento == 0)
                            {
                                nlt_inicio_tratamento = item.NLT;
                            }
                            else
                            {
                                nlt_fim_tratamento = item.NLT;
                            }
                        }
                        dtgTratamento.Rows.Add(item.NLT.ToString("000"), item.NL.ToString("000"), item.horario,
                                               item.T1.ToString(), item.T2.ToString(), item.T3.ToString(),
                                               item.T4.ToString());
                    }
                    foreach (DataGridViewRow row in dtgTratamento.Rows)
                    {
                        var nlt_value = Convert.ToInt32(row.Cells[0].Value);
                        if (nlt_value >= nlt_inicio_tratamento && nlt_value <= nlt_fim_tratamento)
                        {
                            row.DefaultCellStyle.BackColor = Color.PaleGreen;
                        }
                    }
                    //Leituras Anteriores ao Tratamento

                    /*for (int i = 0; i < ciclo.nlAntesTrat; i += 2)
                     * {
                     *  dtgTratamento.Rows.Add("--", contGeral.ToString("000"), listaLeiturasCiclo[i].horario,
                     *      listaLeiturasCiclo[i].T1.ToString(),
                     *      listaLeiturasCiclo[i].T2.ToString(), listaLeiturasCiclo[i].T3.ToString(),
                     *      listaLeiturasCiclo[i].T4.ToString());
                     *  contGeral += 2;
                     * }
                     *
                     * int contTrat = 1;
                     * //Leituras do Tratamento
                     * for (int i = 0; i < listaLeiturasTrat.Count; i += 2)
                     * {
                     *  dtgTratamento.Rows.Add(contTrat.ToString("000"), contGeral.ToString("000"),
                     *      listaLeiturasTrat[i].horario, listaLeiturasTrat[i].T1.ToString(),
                     *      listaLeiturasTrat[i].T2.ToString(), listaLeiturasTrat[i].T3.ToString(),
                     *      listaLeiturasTrat[i].T4.ToString());
                     *  contTrat += 2;
                     *  contGeral += 2;
                     *  dtgTratamento.Rows[dtgTratamento.RowCount - 1].DefaultCellStyle.BackColor = Color.PaleGreen;
                     * }
                     *
                     * //Leituras Posteriores ao Tratamento
                     * for (int i = contGeral; i < listaLeiturasCiclo.Count; i += 2)
                     * {
                     *  dtgTratamento.Rows.Add("--", contGeral.ToString("000"), listaLeiturasCiclo[i - 1].horario,
                     *      listaLeiturasCiclo[i - 1].T1.ToString(),
                     *      listaLeiturasCiclo[i - 1].T2.ToString(), listaLeiturasCiclo[i - 1].T3.ToString(),
                     *      listaLeiturasCiclo[i - 1].T4.ToString());
                     *  contGeral += 2;
                     * }*/
                }
            }
        }
コード例 #13
0
ファイル: ImportarExportar.cs プロジェクト: zeehjr/crg08ht
        /// <summary>
        /// Geração do corpo do histórico
        /// </summary>
        /// <param name="writer"></param>
        /// <param name="ciclo"></param>
        /// <param name="id"></param>
        private void ExportarCiclo(XmlTextWriter writer, VO.Ciclos ciclo, int id)
        {
            writer.WriteStartElement("Ciclo");

            writer.WriteElementString("Id", ciclo.id.ToString());
            writer.WriteElementString("CRG", ciclo.crg.ToString());
            writer.WriteElementString("NTrat", ciclo.nTrat.ToString());
            writer.WriteElementString("NL", ciclo.nl.ToString());
            writer.WriteElementString("BaseTempo", ciclo.baseTempo.ToString());
            writer.WriteElementString("NLT", ciclo.nlt.ToString());
            writer.WriteElementString("DataColeta", ciclo.dataColeta.ToString());
            writer.WriteElementString("Descricao", ciclo.descricao);
            writer.WriteElementString("DataInicio", ciclo.dataInicio.ToString());
            writer.WriteElementString("DataFim", ciclo.dataFim.ToString());
            writer.WriteElementString("NLIniTrat", ciclo.NLIniTrat.ToString());
            writer.WriteElementString("DataIniTrat", ciclo.dataIniTrat.ToString());
            writer.WriteElementString("TemperaturaControle", ciclo.temperaturaControle.ToString());
            writer.WriteElementString("TemperaturaTrat", ciclo.temperaturaTrat.ToString());
            writer.WriteElementString("TempoTrat", ciclo.tempoTrat.ToString());
            writer.WriteElementString("Responsavel", ciclo.responsavel);
            writer.WriteElementString("Operador", ciclo.operador);
            writer.WriteElementString("Situacao", ciclo.situacao.ToString());
            writer.WriteElementString("NumSerie", ciclo.numSerie);
            writer.WriteElementString("VersaoEquip", ciclo.versaoEquip);
            writer.WriteElementString("Histerese", ciclo.histerese.ToString());
            writer.WriteElementString("TControl", ciclo.tControl.ToString());
            writer.WriteElementString("NLAntesTrat", ciclo.nlAntesTrat.ToString());
            writer.WriteElementString("NLPostTrat", ciclo.nlPostTrat.ToString());
            writer.WriteElementString("Sensor", ciclo.sensor.ToString());
            writer.WriteElementString("CA", ciclo.CA);
            writer.WriteElementString("tipoCRG", ciclo.tipoCRG.ToString());

            // Leituras do Ciclo
            var listaLeiturasCiclo = LeiturasCicloDAO.ListaLeiturasCiclos(ciclo);

            foreach (var leitura in listaLeiturasCiclo)
            {
                writer.WriteStartElement("LeituraCiclo");
                writer.WriteElementString("IdLeituraCiclo", leitura.idLeiturasCiclo.ToString());
                writer.WriteElementString("Horario", leitura.horario);
                writer.WriteElementString("T1", leitura.T1.ToString());
                writer.WriteElementString("T2", leitura.T2.ToString());
                writer.WriteElementString("T3", leitura.T3.ToString());
                writer.WriteElementString("T4", leitura.T4.ToString());
                writer.WriteElementString("Ciclo", leitura.ciclo.id.ToString());

                writer.WriteEndElement();
            }

            // Leituras de Tratamento
            var listaLeiturasTrat = LeiturasTratDAO.ListaLeiturasTratamento(ciclo);

            foreach (var leitura in listaLeiturasTrat)
            {
                writer.WriteStartElement("LeituraTratamento");
                writer.WriteElementString("IdLeituraTratamento", leitura.idLeiturasTrat.ToString());
                writer.WriteElementString("Horario", leitura.horario);
                writer.WriteElementString("T1", leitura.T1.ToString());
                writer.WriteElementString("T2", leitura.T2.ToString());
                writer.WriteElementString("T3", leitura.T3.ToString());
                writer.WriteElementString("T4", leitura.T4.ToString());
                writer.WriteElementString("Ciclo", leitura.ciclo.id.ToString());

                writer.WriteEndElement();
            }

            // Produtos
            var listaProdutos = ProdutoCicloDAO.listaProdutosCiclo(ciclo);

            foreach (var leitura in listaProdutos)
            {
                writer.WriteStartElement("ProdutoCiclo");
                writer.WriteElementString("IdProdutoCiclo", leitura.idProdutoCiclo.ToString());
                writer.WriteElementString("Produto", leitura.produto.idProduto.ToString());
                writer.WriteElementString("Volume", leitura.volume);
                writer.WriteElementString("Unidade", leitura.unidade.idUnidade.ToString());
                writer.WriteElementString("Empresa", leitura.empresa.idEmpresa.ToString());
                writer.WriteElementString("Ciclo", leitura.ciclo.id.ToString());

                writer.WriteEndElement();
            }

            writer.WriteEndElement();   // Fecha a tag <Ciclo>
        }
コード例 #14
0
ファイル: ImportarExportar.cs プロジェクト: zeehjr/crg08ht
        private void Arquivo_Click(object sender, EventArgs e)
        {
            var crg = 0;

            if (Exportar.Checked)
            {
                salvarCiclo.RestoreDirectory = true;
                salvarCiclo.Title            = "Exportar Ciclo para...";
                salvarCiclo.Filter           = "crg08 files(*.crg08)|*.crg08";
                salvarCiclo.DefaultExt       = "crg08";
                salvarCiclo.CheckPathExists  = true;

                var dialogResult = salvarCiclo.ShowDialog(this);
                if (dialogResult == DialogResult.OK)
                {
                    var writer = new XmlTextWriter(salvarCiclo.FileName, null);
                    // Gera o XML de cada ciclo
                    try
                    {
                        writer.Formatting = Formatting.Indented;
                        writer.WriteStartDocument();
                        writer.WriteStartElement("Ciclos");

                        for (int i = 0; i < dtgAndamento.RowCount; i++)
                        {
                            if (dtgAndamento.Rows[i].Cells[0].Value.ToString() == "True")
                            {
                                var id = int.Parse(dtgAndamento.Rows[i].Cells[1].Value.ToString());
                                crg = int.Parse(dtgAndamento.Rows[i].Cells[2].Value.ToString());
                                var ciclo = CicloDAO.buscaCiclo(crg, id);

                                ExportarCiclo(writer, ciclo, i + 1);
                            }
                        }

                        for (int i = 0; i < dtgFinalizados.RowCount; i++)
                        {
                            if (dtgFinalizados.Rows[i].Cells[0].Value.ToString() == "True")
                            {
                                var id = int.Parse(dtgFinalizados.Rows[i].Cells[1].Value.ToString());
                                crg = int.Parse(dtgFinalizados.Rows[i].Cells[2].Value.ToString());
                                var ciclo = CicloDAO.buscaCiclo(crg, id);

                                ExportarCiclo(writer, ciclo, i + 1);
                            }
                        }

                        writer.WriteFullEndElement();
                        writer.WriteEndDocument();
                    }
                    catch (Exception error)
                    {
                        VO.LogErro logErro = new VO.LogErro();
                        logErro.crg       = crg;
                        logErro.descricao = "Erro ao tentar exportar";
                        string dataHora = DateTime.Now.ToString();
                        logErro.data         = DateTime.Now;
                        logErro.maisDetalhes = error.Message;
                        LogErroDAO.inserirLogErro(logErro, logErro.crg);
                        MessageBox.Show("Erro ao tentar exportar.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    finally
                    {
                        writer.Flush();
                        writer.Close();

                        var xmlDoc = new XmlDocument();

                        try
                        {
                            xmlDoc.PreserveWhitespace = true;
                            xmlDoc.Load(salvarCiclo.FileName);
                        }
                        catch (Exception er)
                        {
                            Console.WriteLine(er.Message);
                        }

                        var cspParams = new CspParameters();
                        cspParams.KeyContainerName = "CRG08";

                        var rsaKey = new RSACryptoServiceProvider(cspParams);

                        try
                        {
                            Crypto.Encrypt(xmlDoc, "Ciclo", "Ciclo", rsaKey, "rsaKey");
                            xmlDoc.Save(salvarCiclo.FileName);
                        }
                        catch (Exception er)
                        {
                            VO.LogErro logErro = new VO.LogErro();
                            logErro.crg       = crg;
                            logErro.descricao = "Erro ao tentar exportar";
                            string dataHora = DateTime.Now.ToString();
                            logErro.data         = DateTime.Now;
                            logErro.maisDetalhes = er.Message;
                            LogErroDAO.inserirLogErro(logErro, logErro.crg);
                            MessageBox.Show("Erro ao tentar exportar.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }

                        CarregaCiclos();
                        MessageBox.Show("Ciclo exportado com sucesso!", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.None);
                    }
                }
            }
            else
            {
                var listaCiclos     = new List <ImportarCiclo>();
                var importacaoCiclo = new ImportarCiclo();
                var listaLeituras   = new List <LeiturasCiclo>();
                var listaTratamento = new List <LeiturasTrat>();
                var produtosCiclos  = new List <ProdutoCiclo>();
                var tag             = "";
                var stream          = new MemoryStream();
                var xmlDocument     = new XmlDocument();
                var cspParams       = new CspParameters();

                abrirCiclo.RestoreDirectory = true;
                abrirCiclo.Title            = "Importar Ciclo";
                abrirCiclo.Filter           = "crg08 files(*.crg08)|*.crg08";
                abrirCiclo.DefaultExt       = "crg08";
                abrirCiclo.CheckPathExists  = true;
                VO.Ciclos cicloTemp;
                VO.Ciclos cic = new VO.Ciclos();

                var dialogResult = abrirCiclo.ShowDialog(this);
                if (dialogResult == DialogResult.OK)
                {
                    try
                    {
                        cspParams.KeyContainerName = "CRG08";
                        var rsaKey = new RSACryptoServiceProvider(cspParams);

                        xmlDocument.PreserveWhitespace = true;
                        xmlDocument.Load(abrirCiclo.FileName);

                        Crypto.Decrypt(xmlDocument, rsaKey, "rsaKey");

                        xmlDocument.Save(stream);
                        stream.Flush();
                        stream.Position = 0;

                        // Carrega os dados no Reader para ler
                        var reader = new XmlTextReader(stream);
                        reader.WhitespaceHandling = WhitespaceHandling.None; // Para ignorar espaço em branco

                        // Carrega os dados de um ciclo, verifica se já existe e questiona
                        // o usuário se ele deseja substituir e os próximos ciclos também
                        while ((reader.Read()))
                        {
                            switch (reader.NodeType)
                            {
                            case XmlNodeType.EndElement:
                                if (reader.Name == "Ciclo")
                                {
                                    importacaoCiclo.leiturasCiclo      = listaLeituras;
                                    importacaoCiclo.leiturasTratamento = listaTratamento;
                                    importacaoCiclo.produtosCiclo      = produtosCiclos;
                                    importacaoCiclo.ciclo = cic;
                                    listaCiclos.Add(importacaoCiclo);
                                    importacaoCiclo = new ImportarCiclo();
                                    listaLeituras   = new List <LeiturasCiclo>();
                                    listaTratamento = new List <LeiturasTrat>();
                                    produtosCiclos  = new List <ProdutoCiclo>();
                                    cic             = new VO.Ciclos();
                                }
                                break;

                            case XmlNodeType.Element:
                                tag = reader.Name;

                                if (tag == "LeituraCiclo")
                                {
                                    listaLeituras.Add(CarregaLeiturasCiclo(reader.ReadSubtree()));
                                }
                                else if (tag == "LeituraTratamento")
                                {
                                    listaTratamento.Add(CarregaLeituraTratamento(reader.ReadSubtree()));
                                }
                                else if (tag == "ProdutoCiclo")
                                {
                                    produtosCiclos.Add(CarregaProdutos(reader.ReadSubtree()));
                                }
                                break;

                            case XmlNodeType.Text:

                                switch (tag)
                                {
                                // Cabeçalho
                                case "Id":
                                    cic.id = Convert.ToInt32(reader.Value);
                                    break;

                                case "CRG":
                                    cic.crg = Convert.ToInt32(reader.Value);
                                    break;

                                case "NTrat":
                                    cic.nTrat = Convert.ToInt32(reader.Value);
                                    break;

                                case "NL":
                                    cic.nl = Convert.ToInt32(reader.Value);
                                    break;

                                case "BaseTempo":
                                    cic.baseTempo = Convert.ToInt32(reader.Value);
                                    break;

                                case "NLT":
                                    cic.nlt = Convert.ToInt32(reader.Value);
                                    break;

                                case "DataColeta":
                                    cic.dataColeta = Convert.ToDateTime(reader.Value);
                                    break;

                                case "Descricao":
                                    cic.descricao = reader.Value;
                                    break;

                                case "DataInicio":
                                    cic.dataInicio = Convert.ToDateTime(reader.Value);
                                    break;

                                case "DataFim":
                                    cic.dataFim = Convert.ToDateTime(reader.Value);
                                    break;

                                case "NLIniTrat":
                                    cic.NLIniTrat = Convert.ToInt32(reader.Value);
                                    break;

                                case "TemperaturaControle":
                                    cic.temperaturaControle = Convert.ToSingle(reader.Value);
                                    break;

                                case "TemperaturaTrat":
                                    cic.temperaturaTrat = Convert.ToSingle(reader.Value);
                                    break;

                                case "TempoTrat":
                                    cic.tempoTrat = Convert.ToInt32(reader.Value);
                                    break;

                                case "Responsavel":
                                    cic.responsavel = reader.Value;
                                    break;

                                case "Operador":
                                    cic.operador = reader.Value;
                                    break;

                                case "Situacao":
                                    cic.situacao = Convert.ToInt32(reader.Value);
                                    break;

                                case "NumSerie":
                                    cic.numSerie = reader.Value;
                                    break;

                                case "VersaoEquip":
                                    cic.versaoEquip = reader.Value;
                                    break;

                                case "Histerese":
                                    cic.histerese = Convert.ToInt32(reader.Value);
                                    break;

                                case "TControl":
                                    cic.tControl = Convert.ToInt32(reader.Value);
                                    break;

                                case "NLAntesTrat":
                                    cic.nlAntesTrat = Convert.ToInt32(reader.Value);
                                    break;

                                case "NLPostTrat":
                                    cic.nlPostTrat = Convert.ToInt32(reader.Value);
                                    break;

                                case "Sensor":
                                    cic.sensor = Convert.ToInt32(reader.Value);
                                    break;

                                case "CA":
                                    cic.CA = reader.Value;
                                    break;

                                case "tipoCRG":
                                    cic.tipoCRG = Convert.ToInt32(reader.Value);
                                    break;
                                }
                                break;
                            }
                        }

                        foreach (var ciclo in listaCiclos)
                        {
                            // Verifica se o ciclo está no banco de dados e add em um Obj temporário = cicloTemp
                            cicloTemp = CicloDAO.testaCiclo(ciclo.ciclo);
                            if (cicloTemp != null)
                            {
                                // Se o obj for diferente de nulo...
                                if (MessageBox.Show("O ciclo de nº " + ciclo.ciclo.nTrat +
                                                    " já existe no Banco de Dados. Deseja atualizar?", "Atenção",
                                                    MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
                                {
                                    bool retorno = CicloDAO.alteraCiclo(ciclo.ciclo);
                                    if (retorno)
                                    {
                                        ProdutoCicloDAO.DeletaProdutosCiclo(ciclo.ciclo.id, ciclo.ciclo.crg);
                                        for (int i = 0; i < ciclo.produtosCiclo.Count; i++)
                                        {
                                            ciclo.produtosCiclo[i].ciclo = ciclo.ciclo;
                                            ProdutoCicloDAO.inserirProdutoCiclo(ciclo.produtosCiclo[i]);
                                        }
                                        if (ciclo.leiturasCiclo.Count > 0)
                                        {
                                            if (ciclo.ciclo.tipoCRG == 2)
                                            {
                                                LeiturasCicloDAO.inserirLeiturasCiclo150(ciclo.leiturasCiclo, ciclo.ciclo.nl, ciclo.ciclo);
                                            }
                                            else
                                            {
                                                LeiturasCicloDAO.inserirLeiturasCiclo(ciclo.leiturasCiclo, ciclo.ciclo.nl, ciclo.ciclo);
                                            }
                                        }
                                        if (ciclo.leiturasTratamento.Count > 0)
                                        {
                                            if (ciclo.ciclo.tipoCRG == 2)
                                            {
                                                LeiturasTratDAO.inserirLeiturasTratamento150(ciclo.leiturasTratamento, ciclo.ciclo.nlt, ciclo.ciclo);
                                            }
                                            else
                                            {
                                                LeiturasTratDAO.inserirLeiturasTratamento(ciclo.leiturasTratamento, ciclo.ciclo.nlt, ciclo.ciclo);
                                            }
                                        }
                                    }

                                    CarregaCiclos();
                                }
                            }
                            else
                            {
                                // Inclui a ciclo
                                ImportarCiclo(ciclo);
                                CarregaCiclos();
                            }
                        }

                        MessageBox.Show("Importação realizada com sucesso!", "Sucesso", MessageBoxButtons.OK,
                                        MessageBoxIcon.None);
                    }
                    catch (Exception ex)
                    {
                        VO.LogErro logErro = new VO.LogErro();
                        logErro.crg          = crg;
                        logErro.descricao    = "Erro ao tentar importar ciclo";
                        logErro.data         = DateTime.Now;
                        logErro.maisDetalhes = ex.Message;
                        LogErroDAO.inserirLogErro(logErro, logErro.crg);
                        MessageBox.Show("Erro ao tentar importar.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
        }