public MainWindow() { GamePadManager manager = new GamePadManager(); manager.Stream += (data) => { TelloManager.Instance.Controller = new ControllData(data); if (data.A && !takeoff) { takeoff = true; TelloManager.Instance.SetMaxHeight(5); TelloManager.Instance.QueryMaxHeight(); TelloManager.Instance.TakeOff(); } else if (!data.A && takeoff) { takeoff = false; } if (data.B && !land) { land = true; TelloManager.Instance.Land(); } else if (!data.B && land) { land = false; } }; manager.StartStream(); TelloManager.Instance.OnConnection += (state) => { if (state == ConnectionState.Connected) { TelloManager.Instance.SetMaxHeight(10); //TelloManager.Instance.TakeOff(); } Dispatcher.BeginInvoke(new Action(() => { if (state == ConnectionState.Disconnected) { (FindName("Connect") as Button).IsEnabled = true; } })); }; InitializeComponent(); }
public ControllData(GamePadManager manager) : this(manager.LeftX, manager.LeftY, manager.RightY, manager.RightX, manager.IsFastMode) { }