private bool IsInvalidMessage(string code, IGeoPoint message) { var discardReason = DiscardReason.None; if (Coche == null && !MessageIdentifierX.IsEntityMessage(code)) { discardReason = DiscardReason.NoAssignedMobile; } else if (message.GeoPoint != null && FechaInvalida(message.GeoPoint.Date, DeviceParameters)) { discardReason = DiscardReason.InvalidDate; } else if (message.GeoPoint != null && FueraDelGlobo(message.GeoPoint)) { discardReason = DiscardReason.OutOfGlobe; } else if (IsVelocidadInvalida(message)) { discardReason = DiscardReason.InvalidSpeed; } if (discardReason.Equals(DiscardReason.None)) { return(false); } DiscardEvent(code, message, discardReason); return(true); }
protected override HandleResults OnDeviceHandleMessage(Event message) { //STrace.Debug(typeof(Events).FullName, message.DeviceId, "OnDeviceHandleMessage (EventsHandler)"); AdjustRfidData(message); var code = GetGenericEventCode(message); STrace.Debug(typeof(Events).FullName, message.DeviceId, String.Format("code:{0} Subcode:{1}", code, message.GetData())); #region protect garmin on/off messages from be banned because of invalid date if ((code == MessageCode.GarminOn.GetMessageCode() || code == MessageCode.GarminOff.GetMessageCode()) && message.GeoPoint != null && FechaInvalida(message.GeoPoint.Date, DeviceParameters)) { message.GeoPoint.Date = DateTime.UtcNow; } #endregion protect garmin on/off messages from be banned because of invalid date //if (IsGarbageMessage(code)) //{ // return HandleResults.BreakSuccess; //} if (IsInvalidMessage(code, message)) { return(HandleResults.BreakSuccess); } ExtraText = new ExtraText(DaoFactory); if (MessageIdentifierX.IsEntityMessage(code)) { ProcessEntityEvent(message, code); } else if (Coche != null) { var estado = GeocercaManager.CalcularEstadoVehiculo(Coche, message.GeoPoint, DaoFactory); ZonaManejo = estado != null && estado.ZonaManejo != null && estado.ZonaManejo.ZonaManejo > 0 ? DaoFactory.ZonaDAO.FindById(estado.ZonaManejo.ZonaManejo) : null; ProcessEvent(code, message); ProcessPosition(message); } return(HandleResults.Success); }