예제 #1
0
        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();
        }
예제 #2
0
        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;
                }
            }
        }