private void GPSA_BurstReceived(GpsAccess.NmeaBurst b) { if (logging) { if (logged == 0) { b.CalcZone(_currmeta.Zone); if (TtUtils.FilterBurst(b, Values.Settings.DeviceOptions.Filter_WALK_FixType, Values.Settings.DeviceOptions.Filter_WALK_DOP_TYPE, Values.Settings.DeviceOptions.Filter_WALK_DOP_VALUE)) { if (Values.Settings.DeviceOptions.Filter_Accuracy > 0) { if (CurrentNmea == null || TtUtils.BurstDistance(CurrentNmea, b) > Values.Settings.DeviceOptions.Filter_Accuracy) { CreateWalkPoint(b); } else { logged--; //try again next point } } else { CreateWalkPoint(b); } } else { logged--; //try again next point } } if (logged >= Values.Settings.DeviceOptions.Filter_Frequency) logged = 0; else logged++; } }
private void GPSA_BurstReceived(GpsAccess.NmeaBurst b) { if (checkMeta && b.IsValid) { if (b.CalcRealZone() != CurrMeta.Zone) { MessageBox.Show("The current UTM zone does not match the set metadata zone.", "Zone mismatch", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); } checkMeta = false; } if (logging) { if (logged < Values.Settings.DeviceOptions.Take5NmeaAmount && (Values.Settings.DeviceOptions.IgnoreFirst ? (Values.Settings.DeviceOptions.IgnoreFirstX - 1 < ignore) : true)) { b.CalcZone(CurrMeta.Zone); if (TtUtils.FilterBurst(b, Values.Settings.DeviceOptions.Filter_T5_FixType, Values.Settings.DeviceOptions.Filter_T5_DOP_TYPE, Values.Settings.DeviceOptions.Filter_T5_DOP_VALUE)) { b._Used = true; logged++; } else { b._Used = false; } CurrentNmea.Add(b); this.GuiInvoke(()=> { progCapture.Value = logged; }); if (logged == Values.Settings.DeviceOptions.Take5NmeaAmount) { logging = false; gpsInfoAdvCtrl.UtmRange = false; CreateNewTake5Point(); } if (Values.Settings.DeviceOptions.Take5FailTrigger && CurrentNmea.Count == Values.Settings.DeviceOptions.Take5NmeaAmount + Values.Settings.DeviceOptions.Take5FailTriggerAmount) { logging = false; gpsInfoAdvCtrl.UtmRange = false; foreach (NmeaBurst burst in CurrentNmea) { burst._Used = true; } CreateNewTake5Point(); } } else ignore++; } }