protected void calculatePromsAndResultates() { var campoFecha = DateTime.Parse(txtDate.Text); //Fecha de inicio var fechaFin = DateTime.Parse("1" + "/" + campoFecha.Month.ToString() + "/" + campoFecha.Year.ToString()).AddMonths(1).AddDays(-1); var pSQL = "SELECT temperatura, humedad, presionAtmosferica, Alcohol, TVOC, CO2, NH4, Metano FROM measurements WHERE registerAt >= '" + onmotica.convertD2IDate(campoFecha) + "' AND registerAt < '" + onmotica.convertD2IDate(fechaFin) + "'"; SqlDataReader dr = onmotica.fetchReader(pSQL); DataTable pResult = new DataTable(); DataTable promResult = new DataTable(); pResult.Columns.Add("Nombre", typeof(String)); pResult.Columns.Add("Resultado", typeof(String)); pResult.Columns.Add("Recomendacion", typeof(String)); promResult.Columns.Add("Temperatura", typeof(Double)); promResult.Columns.Add("Humedad", typeof(Double)); promResult.Columns.Add("PresionAtmosferica", typeof(Double)); promResult.Columns.Add("Alcohol", typeof(Double)); promResult.Columns.Add("TVOC", typeof(Double)); promResult.Columns.Add("CO2", typeof(Double)); promResult.Columns.Add("Metano", typeof(Double)); promResult.Columns.Add("NH4", typeof(Double)); double temp = 0, hum = 0, presAt = 0, Alcohol = 0, CO2 = 0, TVOC = 0, Metano = 0, NH4 = 0; int numMuestras = 0; while (dr.Read()) { if (dr.HasRows) { temp += onmotica.NZDBNum(dr["Temperatura"].ToString()); hum += onmotica.NZDBNum(dr["Humedad"].ToString()); presAt += onmotica.NZDBNum(dr["PresionAtmosferica"].ToString()); Alcohol += onmotica.NZDBNum(dr["Alcohol"].ToString()); CO2 += onmotica.NZDBNum(dr["TVOC"].ToString()); TVOC += onmotica.NZDBNum(dr["CO2"].ToString()); Metano += onmotica.NZDBNum(dr["Metano"].ToString()); NH4 += onmotica.NZDBNum(dr["NH4"].ToString()); numMuestras++; } } dr.Close(); if (temp > 0) { temp = temp / numMuestras; } ; if (hum > 0) { hum = hum / numMuestras; } ; if (presAt > 0) { presAt = presAt / numMuestras; } ; if (Alcohol > 0) { Alcohol = Alcohol / numMuestras; } ; if (CO2 > 0) { CO2 = CO2 / numMuestras; } ; if (TVOC > 0) { TVOC = TVOC / numMuestras; } ; if (Metano > 0) { Metano = Metano / numMuestras; } ; if (NH4 > 0) { NH4 = NH4 / numMuestras; } ; promResult.Rows.Add(temp, hum, presAt, Alcohol, CO2, TVOC, Metano, NH4); if (temp == 0) { pResult.Rows.Add("Alerta en temperatura", "La temperatura promedio es igual a 0ºC", "Verifique la conexion del sensor de temperatura"); } else { pResult.Rows.Add("La temperatura promedio es: " + temp.ToString() + " ºC", "Este valor se obtuvo promediando " + numMuestras.ToString() + " Mediciones individuales", ""); } if (hum == 0) { pResult.Rows.Add("Alerta en humedad", "La humedad promedio es igual a 0%", "Verifique la conexion del sensor de humedad"); } else { pResult.Rows.Add("La humedad promedio es: " + hum.ToString() + " %", "Este valor se obtuvo promediando " + numMuestras.ToString() + " Mediciones individuales", ""); } if (presAt == 0) { pResult.Rows.Add("Alerta en presion atmosferica", "La presion atmosferica promedio es igual a 0mB", "Verifique la conexion del sensor de de presion atmosferica"); } else { pResult.Rows.Add("La presion atmosferica promedio es: " + presAt.ToString() + " mB", "Este valor se obtuvo promediando " + numMuestras.ToString() + " Mediciones individuales", ""); } if (Alcohol == 0) { pResult.Rows.Add("Alerta en Alcohol", "Los niveles de Alcohol promedio es igual a 0ppb", "Verifique la conexion del sensor de Alcohol"); } else { pResult.Rows.Add("Los niveles de Alcohol promedio es: " + Alcohol.ToString() + " ppb", "Este valor se obtuvo promediando " + numMuestras.ToString() + " Mediciones individuales", ""); } if (CO2 == 0) { pResult.Rows.Add("Alerta en CO2", "Los niveles de CO2 promedio es igual a 0", "Verifique la conexion del sensor de CO2"); } else { pResult.Rows.Add("Los niveles promedio de CO2 es: " + CO2.ToString() + " ppb", "Este valor se obtuvo promediando " + numMuestras.ToString() + " Mediciones individuales", ""); } if (TVOC == 0) { pResult.Rows.Add("Alerta en TVOC", "Los niveles de TVOC promedio es igual a 0", "Verifique la conexion del sensor de TVOC"); } else { pResult.Rows.Add("Los niveles de TVOC promedio es: " + TVOC.ToString() + " ppb", "Este valor se obtuvo promediando " + numMuestras.ToString() + " Mediciones individuales", ""); } if (NH4 == 0) { pResult.Rows.Add("Alerta en gas NH4", "Los niveles promedio es igual a 0 ppm", "Verifique la conexion del sensor de gas NH4"); } else { pResult.Rows.Add("Los niveles de Gas NH4 promedio es: " + NH4.ToString() + " ppm", "Este valor se obtuvo promediando " + numMuestras.ToString() + " Mediciones individuales", ""); } if (Metano == 0) { pResult.Rows.Add("Alerta en gas Metano", "Los niveles promedio es igual a 0 ppm", "Verifique la conexion del sensor de gas Metano"); } else { pResult.Rows.Add("Los niveles de Gas Metano promedio es: " + NH4.ToString() + " ppm", "Este valor se obtuvo promediando " + numMuestras.ToString() + " Mediciones individuales", ""); } this.GVProms.Visible = true; GVProms.DataSource = promResult; GVProms.DataBind(); this.GVResults.Visible = true; GVResults.DataSource = pResult; GVResults.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { var devId = Request.QueryString["devId"]; if (devId != null) { if (Convert.ToInt32(devId) > 0) { var pSQL = "SELECT TOP(1)* FROM measurements INNER JOIN devices ON devices.inTopic = measurements.topic WHERE deviceID = @devId ORDER BY registerAt DESC"; pSQL = pSQL.Replace("@devId", devId); SqlDataReader dr = onmotica.fetchReader(pSQL); DataTable pResult = new DataTable(); pResult.Columns.Add("Nombre", typeof(String)); pResult.Columns.Add("Resultado", typeof(String)); pResult.Columns.Add("Recomendacion", typeof(String)); double temp = 0, hum = 0, presAt = 0, Alcohol = 0, CO2 = 0, TVOC = 0, Metano = 0, NH4 = 0; double tempL = 0, humL = 0, presAtL = 0, AlcoholL = 0, CO2L = 0, TVOCL = 0, MetanoL = 0, NH4L = 0; string fecha = ""; while (dr.Read()) { if (dr.HasRows) { temp = onmotica.NZDBNum(dr["Temperatura"].ToString()); hum = onmotica.NZDBNum(dr["Humedad"].ToString()); presAt = onmotica.NZDBNum(dr["PresionAtmosferica"].ToString()); Alcohol = onmotica.NZDBNum(dr["Alcohol"].ToString()); CO2 = onmotica.NZDBNum(dr["TVOC"].ToString()); TVOC = onmotica.NZDBNum(dr["CO2"].ToString()); Metano = onmotica.NZDBNum(dr["Metano"].ToString()); NH4 = onmotica.NZDBNum(dr["NH4"].ToString()); fecha = dr["Fecha"].ToString(); } } dr.Close(); pSQL = "SELECT TOP(1)* FROM limits ORDER BY limitId DESC"; pSQL = pSQL.Replace("@devId", devId); dr = onmotica.fetchReader(pSQL); while (dr.Read()) { if (dr.HasRows) { tempL = onmotica.NZDBNum(dr["temperatura"].ToString()); humL = onmotica.NZDBNum(dr["humedad"].ToString()); presAtL = onmotica.NZDBNum(dr["presionAtmosferica"].ToString()); AlcoholL = onmotica.NZDBNum(dr["Alcohol"].ToString()); CO2L = onmotica.NZDBNum(dr["TVOC"].ToString()); TVOCL = onmotica.NZDBNum(dr["CO2"].ToString()); MetanoL = onmotica.NZDBNum(dr["Metano"].ToString()); NH4L = onmotica.NZDBNum(dr["NH4"].ToString()); } } if (temp >= tempL) { pResult.Rows.Add("Alerta en temperatura", "La temperatura ha superado los limites (" + tempL + ")", "Mantengase hidratado"); } else { pResult.Rows.Add("Temperatura normal.", "La temperatura esta dentro de los limites normales", ""); } if (hum >= humL) { pResult.Rows.Add("Alerta en Humedad", "La humedad ha superado los limites (" + humL + ")", "Mantengase hidratado"); } else { pResult.Rows.Add("Humedad normal", "La humedad esta dentro de los limites normales", ""); } if (presAt >= presAtL) { pResult.Rows.Add("Alerta en presion atmosferica.", "La presion atmosferica ha superado los limites (" + presAtL + ")", ""); } else { pResult.Rows.Add("Presion atmosferica normal", "La presion atmosferica esta dentro de los limites normales", ""); } if (Alcohol >= AlcoholL) { pResult.Rows.Add("Alerta en niveles de alcohol (PPM)", "los niveles de alcohol en PPM han superado los limites (" + AlcoholL + ")", "Contacte al administrador"); } else { pResult.Rows.Add("Niveles de alcohol PPM correctos", "Los niveles no superan el humbral de alerta", ""); } if (CO2 >= CO2L) { pResult.Rows.Add("Alerta en niveles de CO2 (PPM)", "los niveles de CO2 en PPM han superado los limites (" + CO2L + ")", "Contacte al administrador"); } else { pResult.Rows.Add("Niveles de CO2 PPM correctos", "Los niveles no superan el humbral de alerta", ""); } if (TVOC >= TVOCL) { pResult.Rows.Add("Alerta en niveles de TVOC (PPM)", "los niveles de TVOC en PPM han superado los limites (" + TVOCL + ")", "Contacte al administrador"); } else { pResult.Rows.Add("Niveles de TVOC PPM correctos", "Los niveles no superan el humbral de alerta", ""); } if (Metano >= MetanoL) { pResult.Rows.Add("Alerta en niveles de Metano (PPM)", "los niveles de Metano en PPM han superado los limites (" + MetanoL + ")", "Contacte al administrador"); } else { pResult.Rows.Add("Niveles de Metano PPM correctos", "Los niveles no superan el humbral de alerta", ""); } if (NH4 >= NH4L) { pResult.Rows.Add("Alerta en niveles de NH4 (PPM)", "los niveles de NH4 en PPM han superado los limites (" + NH4L + ")", "Contacte al administrador"); } else { pResult.Rows.Add("Niveles de NH4 PPM correctos", "Los niveles no superan el humbral de alerta", ""); } this.GVResults.Visible = true; GVResults.DataSource = pResult; GVResults.DataBind(); lblFecha.Text = fecha; } } }