public AASettings(ISettings settings, IAltitudeAngelService altitudeAngelService, IMissionPlanner missionPlanner) { _settings = settings; _altitudeAngelService = altitudeAngelService; _missionPlanner = missionPlanner; InitializeComponent(); ThemeManager.ApplyThemeTo(this); // load settings chk_grounddata.Checked = _settings.GroundDataDisplay; chk_airdata.Checked = _settings.AirDataDisplay; chk_FlightReportEnable.Checked = _settings.FlightReportEnable; txt_FlightReportName.Text = _settings.FlightReportName; chk_FlightReportCommercial.Checked = _settings.FlightReportCommercial; txt_FlightReportDuration.Text = ((int)_settings.FlightReportTimeSpan.TotalMinutes).ToString(); but_enable.Enabled = !_altitudeAngelService.IsSignedIn; but_disable.Enabled = _altitudeAngelService.IsSignedIn; foreach (var item in AltitudeAngelWings.ApiClient.Client.Extensions.FiltersSeen) { if (_altitudeAngelService.FilteredOut.Contains(item)) { chklb_layers.Items.Add(item, false); } else { chklb_layers.Items.Add(item, true); } } RefreshControlStates(); }
public AltitudeAngelService( IMessagesService messagesService, IMissionPlanner missionPlanner, FlightDataService flightDataService ) { _messagesService = messagesService; _missionPlanner = missionPlanner; _flightDataService = flightDataService; IsSignedIn = new ObservableProperty <bool>(false); WeatherReport = new ObservableProperty <WeatherInfo>(); SentTelemetry = new ObservableProperty <Unit>(); CreateClient((url, apiUrl, state) => new AltitudeAngelClient(url, apiUrl, state, (authUrl, existingState) => new AltitudeAngelHttpHandlerFactory(authUrl, existingState))); _disposer.Add(_missionPlanner.FlightDataMap .MapChanged .Throttle(TimeSpan.FromSeconds(1)) .Subscribe(i => UpdateMapData(_missionPlanner.FlightDataMap))); try { var list = JsonConvert.DeserializeObject <List <string> >(_missionPlanner.LoadSetting("AAWings.Filters")); FilteredOut.AddRange(list.Distinct()); } catch { } TryConnect(); }
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 NavigationViewModel(IConnectedUasManager connectedUasManager, IMissionPlanner missionPlanner, INavigation navigation) { _missionPlanner = missionPlanner; _connectedUasManager = connectedUasManager; RemovewWaypointCommand = new RelayCommand(RemoveWaypoint); EditWaypointCommand = new RelayCommand(EditWaypoint); MoveUpCommand = new RelayCommand(MoveUp); MoveDownCommand = new RelayCommand(MoveDown); }
public OutboundNotifsService( IMissionPlanner missionPlanner, ISettings settings, IMessagesService messagesService, IFlightClient flightServiceClient, IMissionPlannerState missionPlannerState) { _missionPlanner = missionPlanner; _settings = settings; _messagesService = messagesService; _flightServiceClient = flightServiceClient; _missionPlannerState = missionPlannerState; }
public Navigation(IConnectedUasManager connectUasManager, IMissionPlanner missionPlanner, IFlightRecorder flightRecorder) { _connectedUasManager = connectUasManager; _flightRecorder = flightRecorder; MissionPlanner = missionPlanner; ArmCommand = new RelayCommand(Arm); DisarmCommand = new RelayCommand(Disarm); TakeoffCommand = new RelayCommand(Takeoff); LandCommand = new RelayCommand(Land); }
public MainViewModel(ISerialTelemetryLink telemeteryLink, IDroneAdapter droneAdapter, IMissionPlanner planner) { TelemetryLink = telemeteryLink; TelemetryLink.MessageParsed += _telemeteryLink_MessageParsed; OpenSerialPortCommand = new RelayCommand(HandleConnectClick, CanPressConnect); GetWaypointsCommand = new RelayCommand(GetWaypoints, CanDoConnectedStuff); Title = "Kevin"; _apmDrone = new LagoVista.Drone.Models.Drone(); _droneAdapter = droneAdapter; _planner = planner; }
private AASettings(ISettings settings, IAltitudeAngelService altitudeAngelService, IMissionPlanner missionPlanner) { _settings = settings; _altitudeAngelService = altitudeAngelService; _missionPlanner = missionPlanner; InitializeComponent(); _altitudeAngelService.IsSignedIn.ObserveOn(MainV2.instance).Subscribe(OnSignInChange); _missionPlanner.FlightDataMap.MapChanged.ObserveOn(MainV2.instance).Subscribe(OnMapChanged); _missionPlanner.FlightPlanningMap.MapChanged.ObserveOn(MainV2.instance).Subscribe(OnMapChanged); ThemeManager.ApplyThemeTo(this); pic_AboutLogo.Image = Image.FromStream(new MemoryStream(Resources.AALogo)); // load settings chk_FlightReportEnable.Checked = _settings.FlightReportEnable; chk_UseExistingFlightPlanId.Checked = _settings.UseExistingFlightPlanId; txt_ExistingFlightPlanId.Text = _settings.ExistingFlightPlanId == Guid.Empty ? "" : _settings.ExistingFlightPlanId.ToString(); txt_FlightReportName.Text = _settings.FlightReportName; txt_FlightReportDescription.Text = _settings.FlightReportDescription; chk_FlightReportCommercial.Checked = _settings.FlightReportCommercial; chk_FlightReportLocalScope.Checked = _settings.UseFlightPlanLocalScope; txt_FlightReportDuration.Text = ((int)_settings.FlightReportTimeSpan.TotalMinutes).ToString(); but_SignIn.Enabled = !_altitudeAngelService.IsSignedIn; but_SignOut.Enabled = _altitudeAngelService.IsSignedIn; chk_OverrideClientSettings.Checked = _settings.OverrideClientUrlSettings; txt_OverrideClientId.Text = _settings.OverrideClientId; txt_OverrideClientSecret.Text = _settings.OverrideClientSecret; txt_OverrideUrlSuffix.Text = _settings.OverrideUrlDomainSuffix; var opacityAdjust = (int)_settings.MapOpacityAdjust * 100; if (opacityAdjust >= trk_OpacityAdjust.Minimum && opacityAdjust <= trk_OpacityAdjust.Maximum) { trk_OpacityAdjust.Value = opacityAdjust; } chk_EnableDataMap.Checked = _settings.EnableDataMap; chk_EnablePlanMap.Checked = _settings.EnablePlanMap; txt_ContactPhone.Text = _settings.FlightPhoneNumber; chk_AllowSms.Checked = _settings.FlightAllowSms; chk_IcaoAddress.Checked = _settings.FlightIdentifierIcao; txt_IcaoAddress.Text = _settings.FlightIdentifierIcaoAddress; chk_SerialNumber.Checked = _settings.FlightIdentifierSerial; txt_SerialNumber.Text = _settings.FlightIdentifierSerialNumber; web_About.DocumentText = Resources.About; RefreshControlStates(); }
public AltitudeAngelService( IMessagesService messagesService, IMissionPlanner missionPlanner, FlightDataService flightDataService, AltitudeAngelClient.Create aaClientFactory ) { _messagesService = messagesService; _missionPlanner = missionPlanner; _flightDataService = flightDataService; IsSignedIn = new ObservableProperty <bool>(false); WeatherReport = new ObservableProperty <WeatherInfo>(); SentTelemetry = new ObservableProperty <Unit>(); CreateClient(aaClientFactory); IObservable <Models.FlightData> armedAndSignedIn = _flightDataService .FlightArmed .Join(IsSignedIn, i => _flightDataService.FlightDisarmed, i => IsSignedIn.Where(s => !IsSignedIn), (flight, signedIn) => flight); IObservable <Models.FlightData> disarmedAndSignedIn = _flightDataService .FlightDisarmed .Join(IsSignedIn, i => _flightDataService.FlightArmed, i => IsSignedIn.Where(s => !IsSignedIn), (flight, signedIn) => flight); _disposer.Add( armedAndSignedIn.SubscribeAsync(ArmedAndSignedIn)); _disposer.Add( disarmedAndSignedIn.Subscribe(DisarmedAndSignedIn)); _disposer.Add(_missionPlanner.FlightDataMap .MapChanged .Throttle(TimeSpan.FromSeconds(1)) .SubscribeAsync(i => UpdateMapData(_missionPlanner.FlightDataMap))); TryConnect(); }
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, FlightDataService flightDataService ) { _messagesService = messagesService; _missionPlanner = missionPlanner; _flightDataService = flightDataService; IsSignedIn = new ObservableProperty<bool>(false); WeatherReport = new ObservableProperty<WeatherInfo>(); SentTelemetry = new ObservableProperty<Unit>(); CreateClient((url, apiUrl, state) => new AltitudeAngelClient(url, apiUrl, state, (authUrl, existingState) => new AltitudeAngelHttpHandlerFactory(authUrl, existingState))); _disposer.Add(_missionPlanner.FlightDataMap .MapChanged .Throttle(TimeSpan.FromSeconds(1)) .Subscribe(i => UpdateMapData(_missionPlanner.FlightDataMap))); _disposer.Add(_missionPlanner.FlightPlanningMap .MapChanged .Throttle(TimeSpan.FromSeconds(1)) .Subscribe(i => UpdateMapData(_missionPlanner.FlightPlanningMap))); try { var list = JsonConvert.DeserializeObject<List<string>>(_missionPlanner.LoadSetting("AAWings.Filters")); FilteredOut.AddRange(list.Distinct()); } catch { } TryConnect(); }
public AltitudeAngelService( IMessagesService messagesService, IMissionPlanner missionPlanner, FlightDataService flightDataService ) { _messagesService = messagesService; _missionPlanner = missionPlanner; _flightDataService = flightDataService; IsSignedIn = new ObservableProperty <bool>(false); WeatherReport = new ObservableProperty <WeatherInfo>(); SentTelemetry = new ObservableProperty <Unit>(); CreateClient((url, apiUrl, state) => new AltitudeAngelClient(url, apiUrl, state, (authUrl, existingState) => new AltitudeAngelHttpHandlerFactory(authUrl, existingState))); _disposer.Add(_missionPlanner.FlightDataMap .MapChanged .Throttle(TimeSpan.FromSeconds(1)) .Subscribe(i => UpdateMapData(_missionPlanner.FlightDataMap))); TryConnect(); }
public AltitudeAngelService( IMessagesService messagesService, IMissionPlanner missionPlanner, FlightDataService flightDataService ) { _messagesService = messagesService; _missionPlanner = missionPlanner; _flightDataService = flightDataService; IsSignedIn = new ObservableProperty<bool>(false); WeatherReport = new ObservableProperty<WeatherInfo>(); SentTelemetry = new ObservableProperty<Unit>(); CreateClient((url, apiUrl, state) => new AltitudeAngelClient(url, apiUrl, state, (authUrl, existingState) => new AltitudeAngelHttpHandlerFactory(authUrl, existingState))); _disposer.Add(_missionPlanner.FlightDataMap .MapChanged .Throttle(TimeSpan.FromSeconds(1)) .Subscribe(i => UpdateMapData(_missionPlanner.FlightDataMap))); TryConnect(); }
public Settings(IMissionPlanner missionPlanner) { _missionPlanner = missionPlanner; }
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 { } }
public MainViewModel(IMissionPlanner planner, IHeartBeatManager heartBeatManager, ITelemetryService telemetryService, IConnectedUasManager connectedUasManager) { _telemetryService = telemetryService; _heartBeatManager = heartBeatManager; Connections = connectedUasManager; Connections.ActiveDroneChanged += Connections_ActiveDroneChanged; var transport = new SerialPortTransport(DispatcherServices); //Connections.Active = new ConnectedUas(new APM(null), transport); //Connections.All.Add(Connections.Active); //Connections.Active.Transport.OnMessageReceived += _telemeteryLink_MessageParsed; //TelemetryLink.MessageParsed += _telemeteryLink_MessageParsed; OpenSerialPortCommand = new RelayCommand(HandleConnectClick, CanPressConnect); ShowMissionPlannerCommand = new RelayCommand(() => ViewModelNavigation.NavigateAsync <Missions.MissionPlannerViewModel>(this), CanDoConnectedStuff); StartDataStreamsCommand = new RelayCommand(() => _telemetryService.Start(Connections.Active.Uas, Connections.Active.Transport), CanDoConnectedStuff); StopDataStreamsCommand = new RelayCommand(() => _telemetryService.Stop(Connections.Active.Transport), CanDoConnectedStuff); BeginCalibrationCommand = new RelayCommand(() => ViewModelNavigation.NavigateAsync <Calibration.AccCalibrationViewModel>(this), CanDoConnectedStuff); FlyNowCommand = new RelayCommand(() => ViewModelNavigation.NavigateAsync <HudViewModel>(this), CanDoConnectedStuff); MotorTestCommand = new RelayCommand(() => ViewModelNavigation.NavigateAsync <Testing.MotorsTestViewModel>(this), CanDoConnectedStuff); Title = "UAS NuvIoT Connector"; _planner = planner; MenuItems = new List <MenuItem>() { new MenuItem() { Command = new RelayCommand(() => ViewModelNavigation.NavigateAsync <UasTypeManagerViewModel>(this)), Name = "Settings", FontIconKey = "fa-users" }, new MenuItem() { Command = new RelayCommand(() => ViewModelNavigation.NavigateAsync <UserOrgsViewModel>(this)), Name = ClientResources.MainMenu_SwitchOrgs, FontIconKey = "fa-users" }, new MenuItem() { Command = new RelayCommand(() => ViewModelNavigation.NavigateAsync <ChangePasswordViewModel>(this)), Name = ClientResources.MainMenu_ChangePassword, FontIconKey = "fa-key" }, new MenuItem() { Command = new RelayCommand(() => ViewModelNavigation.NavigateAsync <InviteUserViewModel>(this)), Name = ClientResources.MainMenu_InviteUser, FontIconKey = "fa-user" }, new MenuItem() { Command = new RelayCommand(() => ViewModelNavigation.NavigateAsync <AboutViewModel>(this)), Name = "About", FontIconKey = "fa-info" }, new MenuItem() { Command = new RelayCommand(() => Logout()), Name = ClientResources.Common_Logout, FontIconKey = "fa-sign-out" } }; this.RefreshUI(); }