Beispiel #1
0
        public DjiSimulationWindowViewModel(string simulationFile, DjiPacketSniffer packetSniffer)
        {
            _simulationFile = simulationFile;
            _packetSniffer  = packetSniffer;

            SimulationName = new FileInfo(_simulationFile).Name;
            _simulation    = new DjiDroneSimulator(_packetSniffer);
            _simulation.SimulationStateChanged += (obj, data) => SimulationState = data;
            _ = _simulation.LoadSimulation(_simulationFile).ContinueWith(t =>
            {
                WasLoadingSuccessful = t.Exception == null && t.Result;
                IsSimulationReady    = WasLoadingSuccessful;
                IsLoading            = false;
            });

            this.WhenAnyValue(instance => instance.SimulationState).Subscribe(simulationState => CanMultiOrSingleStep =
                                                                                  (simulationState == SimulationState.Loaded ||
                                                                                   simulationState == SimulationState.Pause));

            this.WhenAnyValue(instance => instance.SimulationState).Subscribe(simulationState => IsSimulationDone =
                                                                                  (simulationState == SimulationState.Cancelled ||
                                                                                   simulationState == SimulationState.Complete));
        }
 public DroneStatusViewModel([NotNull] DjiPacketSniffer packetSniffer) => packetSniffer.NetworkStatusChanged += (obj, data) => Status = data.Status == NetworkStatus.Connected;