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); }
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); } } } }
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); } } } }
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); } }
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); } }