コード例 #1
0
        public JsonResult RouteLocations(int startid)
        {
            int RouteObjCounter          = 0;
            var startObj                 = db.AspNetVehicleLocationTables.FirstOrDefault(s => s.Id == startid);
            List <routeValues> RouteList = new List <routeValues>();

            RouteObjCounter = Convert.ToInt32(startObj.Id);
            int VehicleID = startObj.VehicleID;
            var routeobj  = new AspNetVehicleLocationTable();

            do
            {
                routeobj = null;
                routeobj = db.AspNetVehicleLocationTables.FirstOrDefault(x => x.Id == RouteObjCounter && x.VehicleID == VehicleID);

                if (routeobj != null)
                {
                    routeValues routeValObj = new routeValues();
                    routeValObj.latitude   = routeobj.LastLatitude;
                    routeValObj.longitude  = routeobj.LastLongitude;
                    routeValObj.vehicleid  = routeobj.VehicleID;
                    routeValObj.TripStatus = routeobj.TripStatus;
                    RouteList.Add(routeValObj);
                    routeValObj = null;
                }
                RouteObjCounter++;
            }while (routeobj == null || routeobj.TripStatus != "EndTrip");


            return(Json(RouteList, JsonRequestBehavior.AllowGet));
        }
コード例 #2
0
        public ActionResult DeleteConfirmed(int id)
        {
            AspNetVehicleLocationTable aspNetVehicleLocationTable = db.AspNetVehicleLocationTables.Find(id);

            db.AspNetVehicleLocationTables.Remove(aspNetVehicleLocationTable);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #3
0
 public ActionResult Edit([Bind(Include = "Id,LastLatitude,LastLongitude,EngineRPM,Speed,FuelPressure,Throttle_Pos,FuelType,Fuel_Rail_Pressure,TimeStamp,VehicleID")] AspNetVehicleLocationTable aspNetVehicleLocationTable)
 {
     if (ModelState.IsValid)
     {
         db.Entry(aspNetVehicleLocationTable).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.VehicleID = new SelectList(db.AspNetVehicles, "VehicleID", "VehicleID", aspNetVehicleLocationTable.VehicleID);
     return(View(aspNetVehicleLocationTable));
 }
コード例 #4
0
        // GET: AspNetVehicleLocationTables/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AspNetVehicleLocationTable aspNetVehicleLocationTable = db.AspNetVehicleLocationTables.Find(id);

            if (aspNetVehicleLocationTable == null)
            {
                return(HttpNotFound());
            }
            return(View(aspNetVehicleLocationTable));
        }
コード例 #5
0
        // GET: AspNetVehicleLocationTables/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AspNetVehicleLocationTable aspNetVehicleLocationTable = db.AspNetVehicleLocationTables.Find(id);

            if (aspNetVehicleLocationTable == null)
            {
                return(HttpNotFound());
            }
            ViewBag.VehicleID = new SelectList(db.AspNetVehicles, "VehicleID", "VehicleID", aspNetVehicleLocationTable.VehicleID);
            return(View(aspNetVehicleLocationTable));
        }
コード例 #6
0
        public JsonResult RouteHistory(string DriverID)
        {
            var vehicleDriverObj = db.AspNetDriver_Vehicle.FirstOrDefault(s => s.DriverID == DriverID);
            var id = vehicleDriverObj.VehicleID;

            int loopCounter  = 0;
            int routeCounter = 1;
            int counter      = 0;
            List <TripRoute> TripRouteList = new List <TripRoute>();
            var CounterObj = db.AspNetVehicleLocationTables.OrderByDescending(s => s.Id).FirstOrDefault(x => x.VehicleID == id && x.TripStatus == "EndTrip");

            loopCounter = CounterObj.Id;

            do
            {
                var RouteEnd = db.AspNetVehicleLocationTables.OrderByDescending(s => s.Id).FirstOrDefault(x => x.VehicleID == id && x.TripStatus == "EndTrip" && x.Id == loopCounter);
                if (RouteEnd != null)
                {
                    TripRoute route = new TripRoute();
                    route.RouteID    = routeCounter;
                    route.RouteEndID = RouteEnd.Id;
                    AspNetVehicleLocationTable RouteStart = new AspNetVehicleLocationTable();
                    counter = RouteEnd.Id - 1;
                    do
                    {
                        RouteStart = db.AspNetVehicleLocationTables.OrderByDescending(x => x.Id).FirstOrDefault(s => s.Id == counter && s.VehicleID == id && s.TripStatus == "StartTrip");
                        counter--;
                    }while (RouteStart == null && counter > 0);
                    if (RouteStart != null)
                    {
                        route.RouteStartID = RouteStart.Id;
                        TripRouteList.Add(route);
                        loopCounter = RouteStart.Id;
                        routeCounter++;
                        RouteStart = null;
                        RouteEnd   = null;
                    }
                }
                loopCounter--;
            }while (loopCounter > 0);

            return(Json(TripRouteList, JsonRequestBehavior.AllowGet));
        }
コード例 #7
0
        public JsonResult OverSpeedData(string id)
        {
            List <OverSpeed> data = new List <OverSpeed>();
            var x = 0;
            var a = 0;

            var vehicleObj = db.AspNetDriver_Vehicle.FirstOrDefault(s => s.DriverID == id);

            var overspeedPositions = (from sub in db.AspNetVehicleLocationTables
                                      where sub.VehicleID == vehicleObj.VehicleID
                                      select new { sub.Id, sub.LastLatitude, sub.Speed, sub.LastLongitude, sub.VehicleID, sub.EngineRPM }).ToList();

            foreach (var item in overspeedPositions)
            {
                OverSpeed overspeedobj = new OverSpeed();
                int       counter      = item.Id - 1;
                x = Convert.ToInt32(item.Speed);
                a = Convert.ToInt32(item.EngineRPM);
                if (x >= 50 && a >= 100)
                {
                    AspNetVehicleLocationTable LastLocation = null;
                    do
                    {
                        LastLocation = db.AspNetVehicleLocationTables.FirstOrDefault(s => s.Id == counter && s.VehicleID == item.VehicleID);
                        if (LastLocation != null)
                        {
                            var y = Convert.ToInt32(LastLocation.Speed);
                            if (y <= 49)
                            {
                                overspeedobj.latitude  = item.LastLatitude;
                                overspeedobj.longitude = item.LastLongitude;
                                overspeedobj.vehicleid = item.VehicleID;
                                data.Add(overspeedobj);
                            }
                        }
                        counter--;
                    }while (LastLocation == null);
                }
            }
            return(Json(data, JsonRequestBehavior.AllowGet));
        }
コード例 #8
0
        public void UpdateDB(ObdReading reading)
        {
            var vehicleobj = db.AspNetVehicles.FirstOrDefault(s => s.VehicleID == reading.vehicleid);
            var ReadingObj = new AspNetVehicleLocationTable();
            //var PreDecessorObj = new AspNetVehicleLocationTable();
            //try
            //{
            //    PreDecessorObj = db.AspNetVehicleLocationTables.OrderByDescending(x => x.Id).FirstOrDefault(x => x.VehicleID == Convert.ToInt32(reading.vehicleid));
            //}
            //catch { }
            //if (PreDecessorObj != null)
            //{
            //    int? TimeStampDiff = 0;
            //    var counter = PreDecessorObj.Id;
            //    var PredecessorCheckObj = new AspNetVehicleLocationTable();
            //    do
            //    {
            //        PredecessorCheckObj = db.AspNetVehicleLocationTables.FirstOrDefault(s => s.Id == counter && s.VehicleID == Convert.ToInt32(reading.vehicleid) && s.TripStatus == "End");
            //        if (PredecessorCheckObj != null)
            //        {
            //            TimeStampDiff = reading.timestamp - PredecessorCheckObj.TimeStamp;
            //        }
            //        counter--;
            //    }
            //    while (PredecessorCheckObj == null && counter >= 0);
            //    if (TimeStampDiff > 90000 && PredecessorCheckObj != null)//here: 1000ms = 1s
            //    {
            //        ReadingObj.TripStatus = "Start";
            //    }
            //    else if(Convert.ToInt32(reading.readings.ENGINE_RPM) < 500)
            //    {
            //        PreDecessorObj.TripStatus = "OnRoad";
            //        db.SaveChanges();
            //        ReadingObj.TripStatus = "End";
            //    }
            //    else
            //    {
            //        ReadingObj.TripStatus = "OnRoad";
            //    }
            //}



            var PreDecessorObj = new AspNetVehicleLocationTable();

            try
            {
                PreDecessorObj = db.AspNetVehicleLocationTables.OrderByDescending(x => x.Id).FirstOrDefault(x => x.VehicleID == Convert.ToInt32(reading.vehicleid));
            }
            catch { }

            var counter             = PreDecessorObj.Id;
            var PredecessorCheckObj = new AspNetVehicleLocationTable();

            if (PreDecessorObj != null)
            {
                do
                {
                    PredecessorCheckObj = db.AspNetVehicleLocationTables.OrderByDescending(x => x.Id).FirstOrDefault(s => s.Id == counter && s.VehicleID == Convert.ToInt32(reading.vehicleid) && s.TripStatus == "StartTrip" && Convert.ToInt32(reading.readings.ENGINE_RPM) >= 500);
                    if (PredecessorCheckObj != null)
                    {
                        ReadingObj.TripStatus = "OnTrip";
                    }
                    counter--;
                }while (PredecessorCheckObj == null && counter >= 0);
            }

            if (Convert.ToInt32(reading.readings.ENGINE_RPM) >= 500 && PredecessorCheckObj == null)
            {
                ReadingObj.TripStatus = "StartTrip";
            }
            else if (Convert.ToInt32(reading.readings.ENGINE_RPM) < 500 && PredecessorCheckObj == null)
            {
                ReadingObj.TripStatus = "EndTrip";
            }

            ReadingObj.LastLatitude  = reading.latitude;
            ReadingObj.LastLongitude = reading.longitude;
            if (reading.readings.ENGINE_RPM == null)
            {
                reading.readings.ENGINE_RPM = "0";
            }
            else
            {
                ReadingObj.EngineRPM = Regex.Replace(reading.readings.ENGINE_RPM, "[A-Za-z ]", "");
                float engineRPM = Convert.ToInt32(ReadingObj.EngineRPM);
                ReadingObj.EngineRPM = Convert.ToString(engineRPM / 1000);
            }

            if (reading.readings.SPEED == null)
            {
                reading.readings.SPEED = "0";
            }
            else
            {
                ReadingObj.Speed = Regex.Replace(reading.readings.SPEED, "[A-Za-z ]", "");
                ReadingObj.Speed = Regex.Replace(ReadingObj.Speed, "/", "");
            }

            if (reading.readings.FUEL_PRESSURE == null)
            {
                reading.readings.FUEL_PRESSURE = "0";
            }
            else
            {
                ReadingObj.FuelPressure = Regex.Replace(reading.readings.FUEL_PRESSURE, "[A-Za-z ]", "");
            }

            if (reading.readings.THROTTLE_POS == null)
            {
                reading.readings.THROTTLE_POS = "0";
            }
            else
            {
                ReadingObj.Throttle_Pos = Regex.Replace(reading.readings.THROTTLE_POS, "[A-Za-z ]", "");
                ReadingObj.Throttle_Pos = Regex.Replace(reading.readings.THROTTLE_POS, "%", "");
            }

            if (reading.readings.FUEL_TYPE == null)
            {
                reading.readings.FUEL_TYPE = "0";
            }
            else
            {
                ReadingObj.FuelType = Regex.Replace(reading.readings.FUEL_TYPE, "[A-Za-z ]", "");
            }


            // ReadingObj.TimeStamp = Convert.ToInt32(reading.timestamp);
            ReadingObj.VehicleID = vehicleobj.Id;

            db.AspNetVehicleLocationTables.Add(ReadingObj);
            db.SaveChanges();
        }
コード例 #9
0
        /***************************************************************************************************************************************************/
        public JsonResult OverSpeedDataByTrip(int startid)
        {
            var vehiclelocationobj = db.AspNetVehicleLocationTables.FirstOrDefault(s => s.Id == startid);
            int RouteObjCounter    = 0;
            var driverobj          = db.AspNetDriver_Vehicle.FirstOrDefault(s => s.VehicleID == vehiclelocationobj.VehicleID);
            List <OverSpeed> data  = new List <OverSpeed>();
            var x = 0;
            var a = 0;

            var vehicleObj = db.AspNetDriver_Vehicle.FirstOrDefault(s => s.DriverID == driverobj.DriverID);

            //var overspeedPositions = (from sub in db.AspNetVehicleLocationTables
            //                          where sub.VehicleID == vehicleObj.VehicleID
            //                          select new { sub.Id, sub.LastLatitude, sub.Speed, sub.LastLongitude, sub.VehicleID, sub.EngineRPM }).ToList();

            List <AspNetVehicleLocationTable> overspeedPositions = new List <AspNetVehicleLocationTable>();

            RouteObjCounter = startid;
            var routeobj = new AspNetVehicleLocationTable();

            do
            {
                routeobj = null;
                routeobj = db.AspNetVehicleLocationTables.FirstOrDefault(s => s.Id == RouteObjCounter && s.VehicleID == vehiclelocationobj.VehicleID);

                if (routeobj != null)
                {
                    overspeedPositions.Add(routeobj);
                }
                RouteObjCounter++;
            }while (routeobj == null || routeobj.TripStatus != "EndTrip");



            foreach (var item in overspeedPositions)
            {
                OverSpeed overspeedobj = new OverSpeed();
                int       counter      = item.Id - 1;
                x = Convert.ToInt32(item.Speed);
                a = Convert.ToInt32(item.EngineRPM);
                if (x >= 50 && a >= 100)
                {
                    AspNetVehicleLocationTable LastLocation = null;
                    do
                    {
                        LastLocation = db.AspNetVehicleLocationTables.FirstOrDefault(s => s.Id == counter && s.VehicleID == item.VehicleID);
                        if (LastLocation != null)
                        {
                            var y = Convert.ToInt32(LastLocation.Speed);
                            if (y <= 49)
                            {
                                overspeedobj.latitude  = item.LastLatitude;
                                overspeedobj.longitude = item.LastLongitude;
                                overspeedobj.vehicleid = item.VehicleID;
                                data.Add(overspeedobj);
                            }
                        }
                        counter--;
                    }while (LastLocation == null);
                }
            }
            return(Json(data, JsonRequestBehavior.AllowGet));
        }