コード例 #1
0
        public static List <PuntoGrafico> EnergiaAPuntosGrafico(List <HistorialEnergia> _lista)
        {
            List <PuntoGrafico> puntos = new List <PuntoGrafico>();

            for (int i = 0; i < _lista.Count; i++)
            {
                PuntoGrafico puntoInicio = new PuntoGrafico()
                {
                    Valor     = _lista[i].ValorInicio,
                    FechaHora = _lista[i].HoraInicio
                };

                PuntoGrafico puntoFinal = new PuntoGrafico()
                {
                    Valor     = _lista[i].ValorFinal,
                    FechaHora = _lista[i].HoraFinal
                };

                PuntoGrafico puntoMenor = new PuntoGrafico()
                {
                    Valor     = _lista[i].ValorMenor,
                    FechaHora = _lista[i].HoraMenor
                };

                PuntoGrafico puntoMayor = new PuntoGrafico()
                {
                    Valor     = _lista[i].ValorMayor,
                    FechaHora = _lista[i].HoraMayor
                };

                PuntoGrafico puntoMitad = new PuntoGrafico()
                {
                    Valor     = _lista[i].ValorMitad,
                    FechaHora = _lista[i].HoraMitad
                };

                puntos.Add(puntoInicio);
                puntos.Add(puntoFinal);
                puntos.Add(puntoMenor);
                puntos.Add(puntoMayor);
                puntos.Add(puntoMitad);
            }

            puntos = puntos.Distinct().ToList();
            puntos = puntos.OrderBy(p => p.FechaHora).ToList();

            return(puntos);
        }
コード例 #2
0
        public static List <PuntoGrafico> CrearHistorialEnergiaEjemplo()
        {
            List <PuntoGrafico> historial = new List <PuntoGrafico>();

            PuntoGrafico h1 = new PuntoGrafico()
            {
                FechaHora = new DateTime(2018, 1, 2, 15, 30, 50),
                Valor     = 23
            };

            historial.Add(h1);

            PuntoGrafico h2 = new PuntoGrafico()
            {
                FechaHora = new DateTime(2018, 1, 2, 16, 50, 50),
                Valor     = 43
            };

            historial.Add(h2);

            PuntoGrafico h3 = new PuntoGrafico()
            {
                FechaHora = new DateTime(2018, 1, 2, 20, 25, 42),
                Valor     = 32
            };

            historial.Add(h3);

            PuntoGrafico h4 = new PuntoGrafico()
            {
                FechaHora = new DateTime(2018, 1, 2, 20, 42, 56),
                Valor     = 55
            };

            historial.Add(h4);

            PuntoGrafico h5 = new PuntoGrafico()
            {
                FechaHora = new DateTime(2018, 1, 2, 21, 10, 56),
                Valor     = 61
            };

            historial.Add(h5);

            PuntoGrafico h6 = new PuntoGrafico()
            {
                FechaHora = new DateTime(2018, 1, 2, 21, 16, 26),
                Valor     = 32
            };

            historial.Add(h6);

            PuntoGrafico h7 = new PuntoGrafico()
            {
                FechaHora = new DateTime(2018, 1, 2, 21, 32, 15),
                Valor     = 44
            };

            historial.Add(h7);

            PuntoGrafico h8 = new PuntoGrafico()
            {
                FechaHora = new DateTime(2018, 1, 2, 21, 43, 11),
                Valor     = 51
            };

            historial.Add(h8);

            return(historial);
        }
コード例 #3
0
        public static List <PuntoGrafico> VelocidadAPuntosGrafico(List <HistorialVelocidad> _lista)
        {
            List <PuntoGrafico> puntos = new List <PuntoGrafico>();

            for (int i = 0; i < _lista.Count; i++)
            {
                PuntoGrafico puntoInicio = new PuntoGrafico()
                {
                    Valor     = _lista[i].ValorInicio,
                    FechaHora = _lista[i].HoraInicio
                };

                PuntoGrafico puntoFinal = new PuntoGrafico()
                {
                    Valor     = _lista[i].ValorFinal,
                    FechaHora = _lista[i].HoraFinal
                };

                PuntoGrafico puntoMenor = new PuntoGrafico()
                {
                    Valor     = _lista[i].ValorMenor,
                    FechaHora = _lista[i].HoraMenor
                };

                PuntoGrafico puntoMayor = new PuntoGrafico()
                {
                    Valor     = _lista[i].ValorMayor,
                    FechaHora = _lista[i].HoraMayor
                };

                PuntoGrafico puntoMitad = new PuntoGrafico()
                {
                    Valor     = _lista[i].ValorMitad,
                    FechaHora = _lista[i].HoraMitad
                };

                PuntoGrafico punto1Cuarto = new PuntoGrafico()
                {
                    Valor     = _lista[i].ValorUnCuarto,
                    FechaHora = _lista[i].HoraUnCuarto
                };

                PuntoGrafico punto3cuartos = new PuntoGrafico()
                {
                    Valor     = _lista[i].ValorTresCuartos,
                    FechaHora = _lista[i].HoraTresCuartos
                };

                //filtrar historiales cono solo ceros
                if (puntoMayor.Valor == 0)
                {
                    continue;
                }

                puntos.Add(puntoInicio);
                puntos.Add(puntoFinal);
                puntos.Add(puntoMenor);
                puntos.Add(puntoMayor);
                puntos.Add(punto1Cuarto);
                puntos.Add(puntoMitad);
                puntos.Add(punto3cuartos);
            }

            puntos = puntos.Distinct().ToList();
            puntos = puntos.OrderBy(p => p.FechaHora).ToList();

            #region Filtro velocidades

            //Hay casos en que hay 2 velocidades en la misma hora,minuto segundo y uno de ellos es 0
            //filtrar esos 0
            List <PuntoGrafico> filtro = new List <PuntoGrafico>();

            for (int i = 1; i < puntos.Count - 1; i++)
            {
                PuntoGrafico anterior  = puntos[i - 1];
                PuntoGrafico actual    = puntos[i];
                PuntoGrafico siguiente = puntos[i + 1];

                if (actual.FechaHora != siguiente.FechaHora && actual.FechaHora != anterior.FechaHora)
                {
                    filtro.Add(actual);
                }
                else if (actual.FechaHora == siguiente.FechaHora || actual.FechaHora == anterior.FechaHora)
                {
                    if (actual.Valor != 0)
                    {
                        filtro.Add(actual);
                    }
                }
            }
            #endregion
            puntos = filtro;

            #region filtro Ceros incoherentes
            //Filtrar puntos en que se baja a 0 incoherentemente
            List <PuntoGrafico> filtroCerosIncoherentes = new List <PuntoGrafico>();
            for (int i = 1; i < puntos.Count - 1; i++)
            {
                PuntoGrafico anterior  = puntos[i - 1];
                PuntoGrafico actual    = puntos[i];
                PuntoGrafico siguiente = puntos[i + 1];

                if (actual.Valor == 0)
                {
                    if (anterior.Valor <= 20 && siguiente.Valor <= 20)
                    {
                        filtroCerosIncoherentes.Add(actual);
                    }
                }
                else
                {
                    filtroCerosIncoherentes.Add(actual);
                }
            }
            #endregion

            puntos = filtroCerosIncoherentes;


            return(puntos);
        }
コード例 #4
0
        public static List <PuntoGrafico> CrearHistorialVelocidadEjemplo()
        {
            List <PuntoGrafico> historial = new List <PuntoGrafico>();

            PuntoGrafico h1 = new PuntoGrafico()
            {
                FechaHora = new DateTime(2018, 1, 2, 15, 30, 50),
                Valor     = 5
            };

            historial.Add(h1);

            PuntoGrafico h2 = new PuntoGrafico()
            {
                FechaHora = new DateTime(2018, 1, 2, 16, 50, 50),
                Valor     = 8
            };

            historial.Add(h2);

            PuntoGrafico h3 = new PuntoGrafico()
            {
                FechaHora = new DateTime(2018, 1, 2, 20, 25, 42),
                Valor     = 2
            };

            historial.Add(h3);

            PuntoGrafico h4 = new PuntoGrafico()
            {
                FechaHora = new DateTime(2018, 1, 2, 20, 42, 56),
                Valor     = 3.4f
            };

            historial.Add(h4);

            PuntoGrafico h5 = new PuntoGrafico()
            {
                FechaHora = new DateTime(2018, 1, 2, 21, 10, 56),
                Valor     = 8.2f
            };

            historial.Add(h5);

            PuntoGrafico h6 = new PuntoGrafico()
            {
                FechaHora = new DateTime(2018, 1, 2, 21, 16, 26),
                Valor     = 5
            };

            historial.Add(h6);

            PuntoGrafico h7 = new PuntoGrafico()
            {
                FechaHora = new DateTime(2018, 1, 2, 21, 32, 15),
                Valor     = 4.2f
            };

            historial.Add(h7);

            PuntoGrafico h8 = new PuntoGrafico()
            {
                FechaHora = new DateTime(2018, 1, 2, 21, 43, 11),
                Valor     = 5.12f
            };

            historial.Add(h8);


            return(historial);
        }