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;