예제 #1
0
        public ActionResult ControlFlota()
        {
            List <Evento> listaEventos = new List <Evento>();
            string        markers      = "[";
            Empresa       emp          = new UserRole().GetEmpresaUser(HttpContext.User.Identity.Name);

            foreach (Vehiculo v in emp.Lista_Vehiculos)
            {
                listaEventos.AddRange(v.Lista_Eventos);
                markers += "{";
                markers += "'title': ' ";
                markers += v.Marca;
                markers += "  " + v.Modelo + "' ,";
                markers += "'description':'" + blemp.GetEmpleado(v.Id_Empleado).Nombre + "', ";
                foreach (Sensor s in v.Lista_Sensores)
                {
                    if (s.Tipo_Sensor.Equals("G"))
                    {
                        LecturaSensor l = s.GetUltimaLectura();
                        markers += "'lat': '" + l.Latitud.ToString() + " ',";
                        markers += "'lng': '" + l.Longitud.ToString() + "',";
                        markers += "'id': '" + v.Id.ToString() + "'}";
                    }
                }
                if (!v.Equals(emp.Lista_Vehiculos.Last()))
                {
                    markers += " , ";
                }
            }
            markers        += "]";
            ViewBag.Markers = markers;
            ViewBag.Eventos = listaEventos;
            return(View());
        }
예제 #2
0
        public void EnvioLecturas()
        {
            while (true)
            {
                LecturaSensor lec = new LecturaSensor();
                lec.Latitud           = float.Parse(this.Latitude.Text);
                lec.Longitud          = float.Parse(this.Longitud.Text);
                lec.Aceleracion       = int.Parse(this.Aceleracion.Text);
                lec.Temperatura       = int.Parse(this.Temperatura.Text);
                lec.Presion           = int.Parse(this.Presion.Text);
                lec.Velocidad         = int.Parse(this.Velocidad.Text);
                lec.Nivel_Combustible = int.Parse(this.NivelCombustible.Text);
                lec.SensorRef         = int.Parse(this.IdSensor.Text);
                lec.FechaLectura      = DateTime.Now;
                if (this.AlarmaActiva.SelectedItem.Equals("A"))
                {
                    lec.Alarma_Activa = true;
                }
                else
                {
                    lec.Alarma_Activa = false;
                }

                Console.WriteLine(Call(lec));
                Thread.Sleep(5000);
            }
        }
예제 #3
0
        static async Task <string> Call(LecturaSensor lec)
        {
            using (var cliente = new HttpClient())
            {
                cliente.BaseAddress = new Uri("https://monitorflota.azurewebsites.net/");
                var content = new StringContent(JsonConvert.SerializeObject(lec), Encoding.UTF8, "application/json");
                var request = await cliente.PostAsync("/api/LecturaSensor", content);

                return(await request.Content.ReadAsStringAsync());
            }
        }
예제 #4
0
 public List <Evento> AltaLectura(LecturaSensor lec)
 {
     if (lec != null)
     {
         DALELectura.AddLectura(lec);
         return(AnalizoEventos(lec));
     }
     else
     {
         return(null);
     }
 }
예제 #5
0
 public void AddLectura(LecturaSensor lec)
 {
     using (CEREBROEntities1 db = new CEREBROEntities1())
     {
         if (lec != null)
         {
             LecturaSensores nuevo = new LecturaSensores();
             nuevo.setModel(lec);
             db.LecturaSensores.Add(nuevo);
             db.SaveChanges();
         }
     }
 }
예제 #6
0
 public void setModel(LecturaSensor lec)
 {
     this.Id                = lec.Id;
     this.Aceleracion       = lec.Aceleracion;
     this.Alarma_Activa     = lec.Alarma_Activa;
     this.Fecha_Lectura     = lec.FechaLectura;
     this.Latitud           = lec.Latitud;
     this.Nivel_Combustible = lec.Nivel_Combustible;
     this.Presion           = lec.Presion;
     this.Id_Sensor         = lec.SensorRef;
     this.Temperatura       = lec.Temperatura;
     this.Velocidad         = lec.Velocidad;
     this.Longitud          = lec.Longitud;
 }
예제 #7
0
        public List <LecturaSensor> LecturaDBToLectura(List <LecturaSensores> lecturas)
        {
            List <LecturaSensor> ret = new List <LecturaSensor>();

            if (lecturas != null)
            {
                foreach (LecturaSensores cursor in lecturas)
                {
                    LecturaSensor nuevo = cursor.getEntity();
                    ret.Add(nuevo);
                }
            }
            return(ret);
        }
예제 #8
0
        public LecturaSensor getEntity()
        {
            LecturaSensor sen = new LecturaSensor();

            sen.Id                = this.Id;
            sen.Longitud          = (float)this.Longitud;
            sen.Aceleracion       = (float)this.Aceleracion;
            sen.Alarma_Activa     = (bool)this.Alarma_Activa;
            sen.FechaLectura      = (DateTime)this.Fecha_Lectura;
            sen.Latitud           = (float)this.Latitud;
            sen.Nivel_Combustible = (int)this.Nivel_Combustible;
            sen.Presion           = (float)this.Presion;
            sen.SensorRef         = (int)this.Id_Sensor;
            sen.Temperatura       = (float)this.Temperatura;
            sen.Velocidad         = (int)this.Velocidad;
            return(sen);
        }
예제 #9
0
 public bool ActualizoLectura(LecturaSensor lec)
 {
     if (lec != null)
     {
         Sensor nuevo = DALESensor.GetSensor(lec.SensorRef);
         if (nuevo.Tipo_Sensor.Equals("G"))
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     else
     {
         return(false);
     }
 }
예제 #10
0
        // POST: api/LecturaSensor
        public HttpResponseMessage Post([FromBody] LecturaSensor value)
        {
            if (value != null)
            {
                ListaEventos = BLLectura.AltaLectura(value);
                if (BLLectura.ActualizoLectura(value))
                {
                    DTOLecturaHub lec = new DTOLecturaHub();
                    lec.Lectura     = value;
                    lec.vehiculoRef = BLvehiculo.GetVehiculo(BLSensor.GetSensor(value.SensorRef).VehiculoRef).Id;
                    Task <String> responselec = CallLectura(lec);
                }
                if (!ListaEventos.Count.Equals(0))
                {
                    Vehiculo nuevo = new Vehiculo();
                    nuevo = BLvehiculo.GetVehiculo(ListaEventos.First().VehiculoRef);
                    foreach (Sensor s in nuevo.Lista_Sensores)
                    {
                        if (s.Tipo_Sensor.Equals("G"))
                        {
                            Task <String> response = Call(ListaEventos);
                            EnvioEventoCoord = true;
                        }
                    }
                    if (!EnvioEventoCoord)
                    {
                        Task <String> response = Call(ListaEventos);
                    }
                }

                return(new HttpResponseMessage()
                {
                    Content = new StringContent("200")
                });
            }
            else
            {
                return(new HttpResponseMessage()
                {
                    Content = new StringContent("500")
                });
            }
        }
예제 #11
0
        public List <Evento> AnalizoLecturas(LecturaSensor lec)
        {
            Vehiculo           veh;
            Sensor             sen;
            List <Tipo_Evento> ListaEventos;
            List <Evento>      retorno = new List <Evento>();

            if (lec != null)
            {
                sen          = DALESensor.GetSensor(lec.SensorRef);
                veh          = DALEVehiculo.GetVehiculo(sen.VehiculoRef);
                ListaEventos = veh.Lista_Tipo_Eventos;
                switch (sen.Tipo_Sensor)
                {
                case "G":
                    foreach (Tipo_Evento TE in ListaEventos)
                    {
                        switch (TE.TipoLectura)
                        {
                        case "V":
                            if ((!(lec.Velocidad <= TE.Maximo) || !(lec.Velocidad >= TE.Minimo)) && lec.Velocidad != -1)
                            {
                                Evento nuevo = new Evento();
                                nuevo.TipoEventoRef = TE;
                                nuevo.VehiculoRef   = DALESensor.GetSensor(lec.SensorRef).VehiculoRef;
                                nuevo.Fecha         = lec.FechaLectura;
                                nuevo.Latitud       = veh.GetUltimaLecturaGPS().Latitud;
                                nuevo.Longitud      = veh.GetUltimaLecturaGPS().Longitud;
                                retorno.Add(nuevo);
                            }
                            break;

                        case "A":
                            if ((!(lec.Aceleracion <= TE.Maximo) || !(lec.Aceleracion >= TE.Minimo)) && lec.Aceleracion != -1)
                            {
                                Evento nuevo = new Evento();
                                nuevo.TipoEventoRef = TE;
                                nuevo.VehiculoRef   = DALESensor.GetSensor(lec.SensorRef).VehiculoRef;
                                nuevo.Fecha         = lec.FechaLectura;
                                nuevo.Latitud       = veh.GetUltimaLecturaGPS().Latitud;
                                nuevo.Longitud      = veh.GetUltimaLecturaGPS().Longitud;
                                retorno.Add(nuevo);
                            }
                            break;
                        }
                    }
                    break;

                case "M":
                    foreach (Tipo_Evento TE in ListaEventos)
                    {
                        switch (TE.TipoLectura)
                        {
                        case "P":
                            if ((!(lec.Presion <= TE.Maximo) || !(lec.Presion >= TE.Minimo)) && lec.Presion != -1)
                            {
                                Evento nuevo = new Evento();
                                nuevo.TipoEventoRef = TE;
                                nuevo.VehiculoRef   = DALESensor.GetSensor(lec.SensorRef).VehiculoRef;
                                nuevo.Fecha         = lec.FechaLectura;
                                nuevo.Latitud       = veh.GetUltimaLecturaGPS().Latitud;
                                nuevo.Longitud      = veh.GetUltimaLecturaGPS().Longitud;
                                retorno.Add(nuevo);
                            }
                            break;

                        case "T":
                            if ((!(lec.Temperatura <= TE.Maximo) || !(lec.Temperatura >= TE.Minimo)) && lec.Temperatura != -1)
                            {
                                Evento nuevo = new Evento();
                                nuevo.TipoEventoRef = TE;
                                nuevo.VehiculoRef   = DALESensor.GetSensor(lec.SensorRef).VehiculoRef;
                                nuevo.Fecha         = lec.FechaLectura;
                                nuevo.Latitud       = veh.GetUltimaLecturaGPS().Latitud;
                                nuevo.Longitud      = veh.GetUltimaLecturaGPS().Longitud;
                                retorno.Add(nuevo);
                            }
                            break;
                        }
                    }
                    break;

                case "S":
                    foreach (Tipo_Evento TE in ListaEventos)
                    {
                        switch (TE.TipoLectura)
                        {
                        case "S":
                            if (lec.Alarma_Activa)
                            {
                                Evento nuevo = new Evento();
                                nuevo.TipoEventoRef = TE;
                                nuevo.VehiculoRef   = DALESensor.GetSensor(lec.SensorRef).VehiculoRef;
                                nuevo.Fecha         = lec.FechaLectura;
                                nuevo.Latitud       = veh.GetUltimaLecturaGPS().Latitud;
                                nuevo.Longitud      = veh.GetUltimaLecturaGPS().Longitud;
                                retorno.Add(nuevo);
                            }
                            break;
                        }
                    }
                    break;

                case "C":
                    foreach (Tipo_Evento TE in ListaEventos)
                    {
                        switch (TE.TipoLectura)
                        {
                        case "C":
                            if (lec.Nivel_Combustible < TE.Minimo && lec.Nivel_Combustible != -1)
                            {
                                Evento nuevo = new Evento();
                                nuevo.TipoEventoRef = TE;
                                nuevo.VehiculoRef   = DALESensor.GetSensor(lec.SensorRef).VehiculoRef;
                                nuevo.Fecha         = lec.FechaLectura;
                                nuevo.Latitud       = veh.GetUltimaLecturaGPS().Latitud;
                                nuevo.Longitud      = veh.GetUltimaLecturaGPS().Longitud;
                                retorno.Add(nuevo);
                            }
                            break;
                        }
                    }
                    break;
                }
            }
            return(retorno);
        }
예제 #12
0
 static async Task <string> Call(LecturaSensor lec)
 {
     using (var cliente = new HttpClient())
     {