Esempio n. 1
0
        private LeiturasTrat CarregaLeituraTratamento(XmlReader reader)
        {
            var tag = "";
            var leituraTratamento = new LeiturasTrat();

            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                case XmlNodeType.Element:
                    tag = reader.Name;
                    break;

                case XmlNodeType.Text:

                    switch (tag)
                    {
                    case "IdLeituraTratamento":
                        leituraTratamento.idLeiturasTrat = Convert.ToInt32(reader.Value);
                        break;

                    case "Horario":
                        leituraTratamento.horario = reader.Value;
                        break;

                    case "T1":
                        leituraTratamento.T1 = Convert.ToSingle(reader.Value);
                        break;

                    case "T2":
                        leituraTratamento.T2 = Convert.ToSingle(reader.Value);
                        break;

                    case "T3":
                        leituraTratamento.T3 = Convert.ToSingle(reader.Value);
                        break;

                    case "T4":
                        leituraTratamento.T4 = Convert.ToSingle(reader.Value);
                        break;

                    case "Ciclo":
                        leituraTratamento.ciclo    = new VO.Ciclos();
                        leituraTratamento.ciclo.id = Convert.ToInt32(reader.Value);
                        break;
                    }
                    break;
                }
            }

            return(leituraTratamento);
        }
Esempio n. 2
0
 public static List <LeiturasTrat> ListaLeiturasTratamento(Ciclos ciclo)
 {
     using (FbConnection fbConn = new FbConnection(Util.DAO.Conn))
     {
         using (FbCommand cmd = new FbCommand())
         {
             try
             {
                 fbConn.Open();
                 cmd.Connection  = fbConn;
                 cmd.CommandText = "SELECT * FROM LEITURAS_TRATAMENTO WHERE CICLO = " + ciclo.id + " ORDER BY ID";
                 FbDataReader        dr            = cmd.ExecuteReader();
                 List <LeiturasTrat> listaLeituras = new List <LeiturasTrat>();
                 while (dr.Read())
                 {
                     LeiturasTrat leituras = new LeiturasTrat();
                     leituras.idLeiturasTrat = (int)dr["ID"];
                     leituras.horario        = dr["HORARIO"].ToString();
                     leituras.T1             = Convert.ToSingle(dr["T1"]);
                     leituras.T2             = Convert.ToSingle(dr["T2"]);
                     leituras.T3             = Convert.ToSingle(dr["T3"]);
                     leituras.T4             = Convert.ToSingle(dr["T4"]);
                     leituras.ciclo          = ciclo;
                     listaLeituras.Add(leituras);
                 }
                 return(listaLeituras);
             }
             catch (FbException fbError)
             {
                 LogErro logErro = new LogErro();
                 logErro.crg          = ciclo.crg;
                 logErro.descricao    = "Erro ao listar as Leituras do Tratamento";
                 logErro.data         = DateTime.Now;
                 logErro.maisDetalhes = fbError.Message;
                 LogErroDAO.inserirLogErro(logErro, 0);
                 return(null);
             }
             catch (Exception error)
             {
                 LogErro logErro = new LogErro();
                 logErro.crg          = ciclo.crg;
                 logErro.descricao    = "Erro ao listar as Leituras do Tratamento";
                 logErro.data         = DateTime.Now;
                 logErro.maisDetalhes = error.Message;
                 LogErroDAO.inserirLogErro(logErro, 0);
                 return(null);
             }
         }
     }
 }
Esempio n. 3
0
 public static bool alterarLeiturasTratamento(LeiturasTrat leituras)
 {
     using (FbConnection fbConn = new FbConnection(Util.DAO.Conn))
     {
         using (FbCommand cmd = new FbCommand())
         {
             try
             {
                 fbConn.Open();
                 cmd.Connection  = fbConn;
                 cmd.CommandText = "UPDATE LEITURAS_TRATAMENTO SET HORARIO = @HORARIO, T1 = @T1, T2 = @T2, T3 = @T3, T4 = @T4, CICLO = @CICLO" +
                                   " WHERE ID = " + leituras.idLeiturasTrat;
                 cmd.Parameters.AddWithValue("@HORARIO", leituras.horario);
                 cmd.Parameters.AddWithValue("@T1", leituras.T1);
                 cmd.Parameters.AddWithValue("@T2", leituras.T2);
                 cmd.Parameters.AddWithValue("@T3", leituras.T3);
                 cmd.Parameters.AddWithValue("@T4", leituras.T4);
                 cmd.Parameters.AddWithValue("@CICLO", leituras.ciclo.id);
                 cmd.ExecuteNonQuery();
                 cmd.Parameters.Clear();
                 return(true);
             }
             catch (FbException fbError)
             {
                 LogErro logErro = new LogErro();
                 logErro.crg          = leituras.ciclo.crg;
                 logErro.descricao    = "Erro no alterar as Leituras do Tratamento";
                 logErro.data         = DateTime.Now;
                 logErro.maisDetalhes = fbError.Message;
                 LogErroDAO.inserirLogErro(logErro, 0);
                 return(false);
             }
             catch (Exception error)
             {
                 LogErro logErro = new LogErro();
                 logErro.crg          = leituras.ciclo.crg;
                 logErro.descricao    = "Erro no alterar as Leituras do Tratamento";
                 logErro.data         = DateTime.Now;
                 logErro.maisDetalhes = error.Message;
                 LogErroDAO.inserirLogErro(logErro, 0);
                 return(false);
             }
         }
     }
 }
Esempio n. 4
0
        public static bool EnviaBancodeDadosAntigo(Ciclos ciclo, byte[] buffer, bool atualiza,
                                                   List <ProdutoCiclo> listaProdutos, int indiceLeitCiclo, int indiceLeitTrat)
        {
            try
            {
                //Novo histórico

                List <LeiturasTrat>  leiturasTrat  = new List <LeiturasTrat>();
                List <LeiturasCiclo> leiturasCiclo = new List <LeiturasCiclo>();


                if ((Conexao.buffer[0] & 128) == 0)
                {
                    ciclo.baseTempo = 0;
                }
                else
                {
                    ciclo.baseTempo = 1;
                }

                ciclo.nl = ((Conexao.buffer[0] & 127) * 256) + Conexao.buffer[1];

                string dataFim = string.Concat((Conexao.buffer[12] / 16), (Conexao.buffer[12] % 16)) + "/" +
                                 string.Concat((Conexao.buffer[13] / 16), (Conexao.buffer[13] % 16)) + "/20" +
                                 string.Concat((Conexao.buffer[14] / 16), (Conexao.buffer[14] % 16)) + " " +
                                 string.Concat((Conexao.buffer[10] / 16), (Conexao.buffer[10] % 16)) + ":" +
                                 string.Concat((Conexao.buffer[9] / 16), (Conexao.buffer[9] % 16));
                ciclo.dataFim = Convert.ToDateTime(dataFim);

                //Sensor
                ciclo.sensor = Conexao.buffer[16] & 240;

                int cont = 20;


                ciclo.tipoCRG = 100;
                //Qtde leituras do Tratamento
                ciclo.nlt = ((Conexao.buffer.Length - ((ciclo.nl * 8) + 42)) / 8);

                //leituras do Ciclo
                if (ciclo.nl > 0)
                {
                    for (int i = 0; i < ciclo.nl; i++)
                    {
                        LeiturasCiclo leitura = new LeiturasCiclo();

                        int auxL = (Conexao.buffer[cont] * 16) + (Conexao.buffer[cont + 1] / 16);
                        if (auxL < 1000)
                        {
                            leitura.T1 = auxL / 10.0;
                        }
                        else
                        {
                            leitura.T1 = 999 / 10.0;
                        }

                        auxL = ((Conexao.buffer[cont + 1] % 16) * 256) + Conexao.buffer[cont + 2];
                        if (auxL < 1000)
                        {
                            leitura.T2 = auxL / 10.0;
                        }
                        else
                        {
                            leitura.T2 = 999 / 10.0;
                        }

                        auxL = (Conexao.buffer[cont + 3] * 16) + (Conexao.buffer[cont + 4] / 16);
                        if (auxL < 1000)
                        {
                            leitura.T3 = auxL / 10.0;
                        }
                        else
                        {
                            leitura.T3 = 999 / 10.0;
                        }

                        auxL = ((Conexao.buffer[cont + 4] % 16) * 256) + Conexao.buffer[cont + 5];
                        if (auxL < 1000)
                        {
                            leitura.T4 = auxL / 10.0;
                        }
                        else
                        {
                            leitura.T4 = 999 / 10.0;
                        }

                        leitura.horario =
                            string.Concat((Conexao.buffer[cont + 7] / 16), (Conexao.buffer[cont + 7] % 16)) + ":" +
                            string.Concat((Conexao.buffer[cont + 6] / 16), (Conexao.buffer[cont + 6] % 16));
                        leiturasCiclo.Add(leitura);
                        cont = cont + 8;
                    }
                }

                //Temperatura de Controle e do Tratamento
                int auxT = (Conexao.buffer[cont] * 256) + Conexao.buffer[cont + 1];
                if (auxT < 1000)
                {
                    ciclo.temperaturaControle = auxT / 10;
                }
                else
                {
                    ciclo.temperaturaControle = 999 / 10;
                }

                auxT = (Conexao.buffer[cont + 2] * 256) + Conexao.buffer[cont + 3];
                if (auxT < 1000)
                {
                    ciclo.temperaturaTrat = auxT / 10;
                }
                else
                {
                    ciclo.temperaturaTrat = 999 / 10;
                }

                //Tempo Tratamento
                ciclo.tempoTrat = Conexao.buffer[cont + 4];
                if (ciclo.tempoTrat > 100)
                {
                    ciclo.tempoTrat = 99;
                }

                //Data e hora inicio do tratamento
                String dataInicioTrat = string.Concat((Conexao.buffer[cont + 8] / 16), (Conexao.buffer[cont + 8] % 16)) +
                                        "/" +
                                        string.Concat((Conexao.buffer[cont + 9] / 16), (Conexao.buffer[cont + 9] % 16)) +
                                        "/20" +
                                        string.Concat((Conexao.buffer[cont + 10] / 16), (Conexao.buffer[cont + 10] % 16)) +
                                        " " +
                                        string.Concat((Conexao.buffer[cont + 6] / 16), (Conexao.buffer[cont + 6] % 16)) +
                                        ":" +
                                        string.Concat((Conexao.buffer[cont + 5] / 16), (Conexao.buffer[cont + 5] % 16));
                ciclo.dataIniTrat = Convert.ToDateTime(dataInicioTrat);

                //Leitura inicio do Tratamento
                ciclo.NLIniTrat = ((Conexao.buffer[cont + 11] & 127) * 256) + Conexao.buffer[cont + 12];

                //leituras do Tratamento
                if (ciclo.nlt > 0)
                {
                    cont = cont + 13;
                    for (int i = 0; i < ciclo.nlt; i++)
                    {
                        LeiturasTrat leitura = new LeiturasTrat();
                        int          auxL    = (Conexao.buffer[cont] * 16) + (Conexao.buffer[cont + 1] / 16);
                        if (auxL < 1000)
                        {
                            leitura.T1 = auxL / 10.0;
                        }
                        else
                        {
                            leitura.T1 = 999 / 10.0;
                        }

                        auxL = ((Conexao.buffer[cont + 1] % 16) * 256) + Conexao.buffer[cont + 2];
                        if (auxL < 1000)
                        {
                            leitura.T2 = auxL / 10.0;
                        }
                        else
                        {
                            leitura.T2 = 999 / 10.0;
                        }

                        auxL = (Conexao.buffer[cont + 3] * 16) + (Conexao.buffer[cont + 4] / 16);
                        if (auxL < 1000)
                        {
                            leitura.T3 = auxL / 10.0;
                        }
                        else
                        {
                            leitura.T3 = 999 / 10.0;
                        }

                        auxL = ((Conexao.buffer[cont + 4] % 16) * 256) + Conexao.buffer[cont + 5];
                        if (auxL < 1000)
                        {
                            leitura.T4 = auxL / 10.0;
                        }
                        else
                        {
                            leitura.T4 = 999 / 10.0;
                        }

                        leitura.horario = string.Concat((Conexao.buffer[cont + 7] / 16), (Conexao.buffer[cont + 7] % 16)) +
                                          ":" +
                                          string.Concat((Conexao.buffer[cont + 6] / 16), (Conexao.buffer[cont + 6] % 16));
                        leiturasTrat.Add(leitura);
                        cont = cont + 8;
                    }
                }

                ciclo.nlAntesTrat = ciclo.NLIniTrat - 1;
                int iniResf;
                if (ciclo.baseTempo == 0)
                {
                    iniResf = ciclo.NLIniTrat + ciclo.tempoTrat;
                }
                else
                {
                    iniResf = ciclo.NLIniTrat + 1;
                }
                if (ciclo.nl - iniResf >= 19 && ciclo.baseTempo == 0)
                {
                    ciclo.nlPostTrat = 20;
                }
                else if (ciclo.nl - iniResf >= 9 && ciclo.baseTempo == 1)
                {
                    ciclo.nlPostTrat = 10;
                }
                else if (ciclo.nl >= iniResf)
                {
                    ciclo.nlPostTrat = ((ciclo.nl - iniResf) + 1);
                }

                ciclo.nlPostTrat = Conexao.buffer[28];

                ciclo.situacao = 0;
                if (!atualiza)
                {
                    bool retorno = CicloDAO.inserirCiclo(ciclo);
                    if (retorno)
                    {
                        ciclo.id = CicloDAO.retornaId(ciclo);
                        foreach (var l in listaProdutos)
                        {
                            l.ciclo = ciclo;
                            ProdutoCicloDAO.inserirProdutoCiclo(l);
                        }
                        if (leiturasCiclo.Count > 0)
                        {
                            LeiturasCicloDAO.inserirLeiturasCiclo(leiturasCiclo, 0, ciclo);
                        }
                        if (leiturasTrat.Count > 0)
                        {
                            LeiturasTratDAO.inserirLeiturasTratamento(leiturasTrat, 0, ciclo);
                        }
                    }
                }
                else
                {
                    bool retorno = CicloDAO.alteraCiclo(ciclo);
                    if (retorno)
                    {
                        ProdutoCicloDAO.DeletaProdutosCiclo(ciclo.id, ciclo.crg);
                        for (int i = 0; i < listaProdutos.Count; i++)
                        {
                            listaProdutos[i].ciclo = ciclo;
                            ProdutoCicloDAO.inserirProdutoCiclo(listaProdutos[i]);
                        }
                        if (leiturasCiclo.Count > 0)
                        {
                            LeiturasCicloDAO.inserirLeiturasCiclo(leiturasCiclo, indiceLeitCiclo, ciclo);
                        }
                        if (leiturasTrat.Count > 0)
                        {
                            LeiturasTratDAO.inserirLeiturasTratamento(leiturasTrat, indiceLeitTrat, ciclo);
                        }
                    }
                }


                return(true);
            }
            catch (Exception error)
            {
                LogErro logErro = new LogErro();
                logErro.crg          = ciclo.crg;
                logErro.data         = DateTime.Now;
                logErro.descricao    = "Erro ao tentar processar os dados do Tratamento e salvá-lo";
                logErro.maisDetalhes = error.Message + " " + error.StackTrace;
                return(false);
            }
        }
Esempio n. 5
0
        public static bool EnviaBancodeDados(Ciclos ciclo, byte[] buffer, bool atualiza,
                                             List <ProdutoCiclo> listaProdutos, int indiceLeitCiclo, int indiceLeitTrat, bool crg150)
        {
            try
            {
                //Novo histórico

                List <LeiturasTrat>  leiturasTrat  = new List <LeiturasTrat>();
                List <LeiturasCiclo> leiturasCiclo = new List <LeiturasCiclo>();


                ciclo.nl = (Conexao.buffer[2] * 256) + Conexao.buffer[3];
                string dataFim = string.Concat((Conexao.buffer[13] / 16), (Conexao.buffer[13] % 16)) + "/" +
                                 string.Concat((Conexao.buffer[14] / 16), (Conexao.buffer[14] % 16)) + "/20" +
                                 string.Concat((Conexao.buffer[15] / 16), (Conexao.buffer[15] % 16)) + " " +
                                 string.Concat((Conexao.buffer[11] / 16), (Conexao.buffer[11] % 16)) + ":" +
                                 string.Concat((Conexao.buffer[10] / 16), (Conexao.buffer[10] % 16));
                ciclo.dataFim = Convert.ToDateTime(dataFim);
                string dataIniTrat = string.Concat((Conexao.buffer[19] / 16), (Conexao.buffer[19] % 16)) +
                                     "/" +
                                     string.Concat((Conexao.buffer[20] / 16), (Conexao.buffer[20] % 16)) +
                                     "/20" +
                                     string.Concat((Conexao.buffer[21] / 16), (Conexao.buffer[21] % 16)) +
                                     " " +
                                     string.Concat((Conexao.buffer[17] / 16), (Conexao.buffer[17] % 16)) +
                                     ":" +
                                     string.Concat((Conexao.buffer[16] / 16), (Conexao.buffer[16] % 16));
                ciclo.dataIniTrat = Convert.ToDateTime(dataIniTrat);
                //Leitura inicio do Tratamento
                ciclo.NLIniTrat = ((Conexao.buffer[22] & 127) * 256) + Conexao.buffer[23];
                //Qtde leituras do Tratamento
                ciclo.nlt = Conexao.buffer[24];
                //Flags
                string flags = decimalParaBinario(Conexao.buffer[25]);

                ciclo.baseTempo = Convert.ToInt32(flags.Substring(6, 1));
                //TControl e Histerese
                string aux = decimalParaBinario(Conexao.buffer[26]);
                ciclo.tControl  = binarioParaDecimal(aux.Substring(0, 4));
                ciclo.histerese = binarioParaDecimal(aux.Substring(4, 4));

                ciclo.nlAntesTrat = Conexao.buffer[27];
                ciclo.nlPostTrat  = Conexao.buffer[28];

                //Tempo Tratamento
                ciclo.tempoTrat = Conexao.buffer[33];

                //Sensor
                ciclo.sensor = Conexao.buffer[26] & 240;
                if (crg150)
                {
                    //Tipo 1 é normal e 2 é 150
                    ciclo.tipoCRG = 150;
                    //Temperatura de Controle e do Tratamento
                    int auxT = (Conexao.buffer[29] * 256) + Conexao.buffer[30];
                    if (auxT < 150)
                    {
                        ciclo.temperaturaControle = auxT;
                    }
                    else
                    {
                        ciclo.temperaturaControle = 150;
                    }
                    auxT = (Conexao.buffer[31] * 256) + Conexao.buffer[32];
                    if (auxT < 150)
                    {
                        ciclo.temperaturaTrat = auxT;
                    }
                    else
                    {
                        ciclo.temperaturaTrat = 150;
                    }

                    //leituras do Ciclo
                    int cont = 34;
                    if (ciclo.nl > 0)
                    {
                        for (int i = 0; i < ciclo.nl; i++)
                        {
                            LeiturasCiclo leitura = new LeiturasCiclo();

                            int auxL = (Conexao.buffer[cont + 2] * 16) + (Conexao.buffer[cont + 3] / 16);
                            if (auxL < 150)
                            {
                                leitura.T1 = auxL;
                            }
                            else
                            {
                                leitura.T1 = 150;
                            }

                            auxL = ((Conexao.buffer[cont + 3] % 16) * 256) + Conexao.buffer[cont + 4];
                            if (auxL < 150)
                            {
                                leitura.T2 = auxL;
                            }
                            else
                            {
                                leitura.T2 = 150;
                            }

                            auxL = (Conexao.buffer[cont + 5] * 16) + (Conexao.buffer[cont + 6] / 16);
                            if (auxL < 150)
                            {
                                leitura.T3 = auxL;
                            }
                            else
                            {
                                leitura.T3 = 150;
                            }

                            auxL = ((Conexao.buffer[cont + 6] % 16) * 256) + Conexao.buffer[cont + 7];
                            if (auxL < 150)
                            {
                                leitura.T4 = auxL;
                            }
                            else
                            {
                                leitura.T4 = 150;
                            }

                            leitura.horario =
                                string.Concat((Conexao.buffer[cont] / 16), (Conexao.buffer[cont] % 16)) + ":" +
                                string.Concat((Conexao.buffer[cont + 1] / 16), (Conexao.buffer[cont + 1] % 16));
                            leiturasCiclo.Add(leitura);
                            cont = cont + 8;
                        }
                    }

                    //leituras do Tratamento
                    if (ciclo.nlt > 0)
                    {
                        for (int i = 0; i < ciclo.nlt; i++)
                        {
                            LeiturasTrat leitura = new LeiturasTrat();

                            int auxL = (Conexao.buffer[cont + 2] * 16) + (Conexao.buffer[cont + 3] / 16);
                            if (auxL < 150)
                            {
                                leitura.T1 = auxL;
                            }
                            else
                            {
                                leitura.T1 = 150;
                            }

                            auxL = ((Conexao.buffer[cont + 3] % 16) * 256) + Conexao.buffer[cont + 4];
                            if (auxL < 150)
                            {
                                leitura.T2 = auxL;
                            }
                            else
                            {
                                leitura.T2 = 150;
                            }

                            auxL = (Conexao.buffer[cont + 5] * 16) + (Conexao.buffer[cont + 6] / 16);
                            if (auxL < 150)
                            {
                                leitura.T3 = auxL;
                            }
                            else
                            {
                                leitura.T3 = 150;
                            }

                            auxL = ((Conexao.buffer[cont + 6] % 16) * 256) + Conexao.buffer[cont + 7];
                            if (auxL < 150)
                            {
                                leitura.T4 = auxL;
                            }
                            else
                            {
                                leitura.T4 = 150;
                            }

                            string binario = decimalParaBinario(Conexao.buffer[cont]);
                            auxL            = binarioParaDecimal(binario.Substring(1, 7));
                            leitura.horario = string.Concat((auxL / 16), (auxL % 16)) + ":" +
                                              string.Concat((Conexao.buffer[cont + 1] / 16),
                                                            (Conexao.buffer[cont + 1] % 16));
                            leiturasTrat.Add(leitura);
                            cont = cont + 8;
                        }
                    }
                }
                else
                {
                    //1 é normal e 2 é 150
                    ciclo.tipoCRG = 100;
                    //Temperatura de Controle e do Tratamento
                    int auxT = (Conexao.buffer[29] * 256) + Conexao.buffer[30];
                    if (auxT < 1000)
                    {
                        ciclo.temperaturaControle = auxT / 10;
                    }
                    else
                    {
                        ciclo.temperaturaControle = 999 / 10;
                    }
                    auxT = (Conexao.buffer[31] * 256) + Conexao.buffer[32];
                    if (auxT < 1000)
                    {
                        ciclo.temperaturaTrat = auxT / 10;
                    }
                    else
                    {
                        ciclo.temperaturaTrat = 999 / 10;
                    }

                    //leituras do Ciclo
                    int cont = 34;
                    if (ciclo.nl > 0)
                    {
                        for (int i = 0; i < ciclo.nl; i++)
                        {
                            LeiturasCiclo leitura = new LeiturasCiclo();

                            int auxL = (Conexao.buffer[cont + 2] * 16) + (Conexao.buffer[cont + 3] / 16);
                            if (auxL < 1000)
                            {
                                leitura.T1 = auxL / 10.0;
                            }
                            else
                            {
                                leitura.T1 = 999 / 10.0;
                            }

                            auxL = ((Conexao.buffer[cont + 3] % 16) * 256) + Conexao.buffer[cont + 4];
                            if (auxL < 1000)
                            {
                                leitura.T2 = auxL / 10.0;
                            }
                            else
                            {
                                leitura.T2 = 999 / 10.0;
                            }

                            auxL = (Conexao.buffer[cont + 5] * 16) + (Conexao.buffer[cont + 6] / 16);
                            if (auxL < 1000)
                            {
                                leitura.T3 = auxL / 10.0;
                            }
                            else
                            {
                                leitura.T3 = 999 / 10.0;
                            }

                            auxL = ((Conexao.buffer[cont + 6] % 16) * 256) + Conexao.buffer[cont + 7];
                            if (auxL < 1000)
                            {
                                leitura.T4 = auxL / 10.0;
                            }
                            else
                            {
                                leitura.T4 = 999 / 10.0;
                            }

                            leitura.horario =
                                string.Concat((Conexao.buffer[cont] / 16), (Conexao.buffer[cont] % 16)) + ":" +
                                string.Concat((Conexao.buffer[cont + 1] / 16), (Conexao.buffer[cont + 1] % 16));
                            leiturasCiclo.Add(leitura);
                            cont = cont + 8;
                        }
                    }

                    //leituras do Tratamento
                    if (ciclo.nlt > 0)
                    {
                        for (int i = 0; i < ciclo.nlt; i++)
                        {
                            LeiturasTrat leitura = new LeiturasTrat();

                            int auxL = (Conexao.buffer[cont + 2] * 16) + (Conexao.buffer[cont + 3] / 16);
                            if (auxL < 1000)
                            {
                                leitura.T1 = auxL / 10.0;
                            }
                            else
                            {
                                leitura.T1 = 999 / 10.0;
                            }

                            auxL = ((Conexao.buffer[cont + 3] % 16) * 256) + Conexao.buffer[cont + 4];
                            if (auxL < 1000)
                            {
                                leitura.T2 = auxL / 10.0;
                            }
                            else
                            {
                                leitura.T2 = 999 / 10.0;
                            }

                            auxL = (Conexao.buffer[cont + 5] * 16) + (Conexao.buffer[cont + 6] / 16);
                            if (auxL < 1000)
                            {
                                leitura.T3 = auxL / 10.0;
                            }
                            else
                            {
                                leitura.T3 = 999 / 10.0;
                            }

                            auxL = ((Conexao.buffer[cont + 6] % 16) * 256) + Conexao.buffer[cont + 7];
                            if (auxL < 1000)
                            {
                                leitura.T4 = auxL / 10.0;
                            }
                            else
                            {
                                leitura.T4 = 999 / 10.0;
                            }

                            string binario = decimalParaBinario(Conexao.buffer[cont]);
                            auxL            = binarioParaDecimal(binario.Substring(1, 7));
                            leitura.horario = string.Concat((auxL / 16), (auxL % 16)) + ":" +
                                              string.Concat((Conexao.buffer[cont + 1] / 16),
                                                            (Conexao.buffer[cont + 1] % 16));
                            leiturasTrat.Add(leitura);
                            cont = cont + 8;
                        }
                    }
                }
                ciclo.situacao = 0;
                if (!atualiza)
                {
                    bool retorno = CicloDAO.inserirCiclo(ciclo);
                    if (retorno)
                    {
                        ciclo.id = CicloDAO.retornaId(ciclo);
                        foreach (var l in listaProdutos)
                        {
                            l.ciclo = ciclo;
                            ProdutoCicloDAO.inserirProdutoCiclo(l);
                        }
                        if (leiturasCiclo.Count > 0)
                        {
                            LeiturasCicloDAO.inserirLeiturasCiclo(leiturasCiclo, 0, ciclo);
                        }
                        if (leiturasTrat.Count > 0)
                        {
                            LeiturasTratDAO.inserirLeiturasTratamento(leiturasTrat, 0, ciclo);
                        }
                    }
                }
                else
                {
                    bool retorno = CicloDAO.alteraCiclo(ciclo);
                    if (retorno)
                    {
                        ProdutoCicloDAO.DeletaProdutosCiclo(ciclo.id, ciclo.crg);
                        for (int i = 0; i < listaProdutos.Count; i++)
                        {
                            listaProdutos[i].ciclo = ciclo;
                            ProdutoCicloDAO.inserirProdutoCiclo(listaProdutos[i]);
                        }
                        if (leiturasCiclo.Count > 0)
                        {
                            LeiturasCicloDAO.inserirLeiturasCiclo(leiturasCiclo, indiceLeitCiclo, ciclo);
                        }
                        if (leiturasTrat.Count > 0)
                        {
                            LeiturasTratDAO.inserirLeiturasTratamento(leiturasTrat, indiceLeitTrat, ciclo);
                        }
                    }
                }


                return(true);
            }
            catch (Exception error)
            {
                LogErro logErro = new LogErro();
                logErro.crg          = ciclo.crg;
                logErro.data         = DateTime.Now;
                logErro.descricao    = "Erro ao tentar processar os dados do Tratamento e salvá-lo";
                logErro.maisDetalhes = error.Message + " " + error.StackTrace;
                return(false);
            }
        }