示例#1
0
        /// <summary>
        /// Corrects the current position georeferenciation in order to maintain the original stop position.
        /// </summary>
        /// <param name="lastPosition"></param>
        /// <param name="posicion"></param>
        private void CorrectGeoreferenciation(LogPosicionBase lastPosition, LogPosicion posicion)
        {
            posicion.Longitud  = lastPosition.Longitud;
            posicion.Latitud   = lastPosition.Latitud;
            posicion.Altitud   = lastPosition.Altitud;
            posicion.Velocidad = lastPosition.Velocidad;

            DaoFactory.LogPosicionDAO.SaveOrUpdate(posicion);
        }
示例#2
0
        internal State Evaluate(LogPosicion p)
        {
            var qLevel = _repository.GetPositionClass((float)p.Latitud, (float)p.Longitud);

            if (_infraccion[qLevel] >= p.Velocidad)
            {
                return(State.Inf);
            }

            return(_excesos[qLevel] >= p.Velocidad ? State.Exc : State.None);
        }
示例#3
0
        internal static LastPosition Create(LogPosicion position)
        {
            if (position == null)
            {
                throw new ArgumentNullException("position");
            }

            return(new LastPosition()
            {
                Latitud = position.Latitud,
                Longitud = position.Longitud,
                Velocidad = position.Velocidad,
                Curso = position.Curso,
                Fecha = position.FechaMensaje
            });
        }
示例#4
0
        /// <summary>
        /// Gets the last datamart update for the specified vehicle.
        /// </summary>
        /// <param name="coche"></param>
        /// <returns></returns>
        public DateTime GetLastDatamartUpdate(int coche)
        {
            DetachedCriteria dc   = GetDatamartDetachedCriteria(coche);
            ICriteria        crit = GetDatamartCriteria(1, dc, Order.Desc("Begin"));

            var data = crit.UniqueResult <Datamart>();

            //Adds a minute to avoid regenerating the last hour.
            if (data != null)
            {
                return(data.End.AddMinutes(1));
            }

            var posicionesDao = new LogPosicionDAO();

            LogPosicion firtPosition = posicionesDao.GetFirtPosition(coche);

            DateTime result = firtPosition == null ? DateTime.MinValue : firtPosition.FechaMensaje;

            return(result);
        }
示例#5
0
 internal static VehicleState Create(LogPosicion position, Dispositivo dispositivo)
 {
     return(new VehicleState(LastPosition.Create(position), dispositivo));
 }