public FlightService( IMessagesService messagesService, IMissionPlanner missionPlanner, ISettings settings, IFlightDataService flightDataService, IAltitudeAngelClient client, IOutboundNotifsService notificationsService) { _messagesService = messagesService; _missionPlanner = missionPlanner; _settings = settings; _client = client; _notificationsService = notificationsService; _settings.CurrentFlightReportId = null; _settings.CurrentFlightId = null; if (_settings.SurveillanceMode) { _disposer.Add(flightDataService.FlightArmed .SubscribeWithAsync(async(i, ct) => await StartSurveillanceFlight(await _missionPlanner.GetFlightPlan()))); } else { _disposer.Add(flightDataService.FlightArmed .SubscribeWithAsync(async(i, ct) => await StartTelemetryFlight(await _missionPlanner.GetFlightPlan()))); _disposer.Add(flightDataService.FlightDisarmed .SubscribeWithAsync((i, ct) => CompleteFlight())); } }
public AltitudeAngelService( IMessagesService messagesService, IMissionPlanner missionPlanner, ISettings settings, IAltitudeAngelClient client, ITelemetryService telemetryService, IFlightService flightService) { _messagesService = messagesService; _missionPlanner = missionPlanner; _settings = settings; _client = client; _telemetryService = telemetryService; _flightService = flightService; IsSignedIn = new ObservableProperty <bool>(false); _disposer.Add(IsSignedIn); WeatherReport = new ObservableProperty <WeatherInfo>(); _disposer.Add(WeatherReport); FilterInfoDisplay = _settings.MapFilters; _disposer.Add(_missionPlanner.FlightDataMap .MapChanged .SubscribeWithAsync((i, ct) => UpdateMapData(_missionPlanner.FlightDataMap, ct))); _disposer.Add(_missionPlanner.FlightPlanningMap .MapChanged .SubscribeWithAsync((i, ct) => UpdateMapData(_missionPlanner.FlightPlanningMap, ct))); _disposer.Add(_missionPlanner.FlightDataMap .FeatureClicked .Select(f => new { Feature = f, Properties = f.GetFeatureProperties() }) .Where(i => i.Properties.DetailedCategory == "user:flight_plan_report" && i.Properties.IsOwner) .SubscribeWithAsync((i, ct) => OnFlightReportClicked(i.Feature))); _disposer.Add(_missionPlanner.FlightPlanningMap .FeatureClicked .Select(f => new { Feature = f, Properties = f.GetFeatureProperties() }) .Where(i => i.Properties.DetailedCategory == "user:flight_plan_report" && i.Properties.IsOwner) .SubscribeWithAsync((i, ct) => OnFlightReportClicked(i.Feature))); }
public AltitudeAngelService( IMessagesService messagesService, IMissionPlanner missionPlanner, ISettings settings, IFlightDataService flightDataService, IAltitudeAngelClient client) { _messagesService = messagesService; _missionPlanner = missionPlanner; _settings = settings; _client = client; IsSignedIn = new ObservableProperty <bool>(false); _disposer.Add(IsSignedIn); WeatherReport = new ObservableProperty <WeatherInfo>(); _disposer.Add(WeatherReport); SentTelemetry = new ObservableProperty <Unit>(); _disposer.Add(SentTelemetry); try { _disposer.Add(_missionPlanner.FlightDataMap .MapChanged .Throttle(TimeSpan.FromSeconds(10)) .RepeatLastValue(TimeSpan.FromSeconds(60)) .Subscribe(async i => await UpdateMapData(_missionPlanner.FlightDataMap))); } catch { } try { _disposer.Add(_missionPlanner.FlightPlanningMap .MapChanged .Throttle(TimeSpan.FromSeconds(1)) .RepeatLastValue(TimeSpan.FromSeconds(60)) .Subscribe(async i => await UpdateMapData(_missionPlanner.FlightPlanningMap))); } catch { } try { _disposer.Add(flightDataService.FlightArmed .Subscribe(async i => await SubmitFlightReport(i))); _disposer.Add(flightDataService.FlightDisarmed .Subscribe(async i => await CompleteFlightReport(i))); } catch { } try { FilteredOut = _settings.MapFilters; } catch { } }