/
ConfigurationPage.xaml.cs
109 lines (95 loc) · 4.47 KB
/
ConfigurationPage.xaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using ARDrone2Client.Common;
using ARDrone2Client.Common.Configuration;
using ARDrone2Client.Common.Input;
using ARDrone2Client.Common.Navigation;
using ARDrone2Client.Common.ViewModel;
using AR.Drone2.Sample.W8.Views;
namespace ARDrone2.Sample
{
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class ConfigurationPage : ARDrone2.Sample.Common.LayoutAwarePage
{
private DroneClient _droneClient;
public ConfigurationPage()
{
this.InitializeComponent();
_droneClient = DroneClient.Instance;
this.DataContext = _droneClient;
}
/// <summary>
/// Invoked when this page is about to be displayed in a Frame.
/// </summary>
/// <param name="e">Event data that describes how this page was reached. The Parameter
/// property is typically used to configure the page.</param>
protected override void OnNavigatedTo(NavigationEventArgs e)
{
AltitudeMax.Value = _droneClient.Configuration.Control.AltitudeMax/1000;
VitesseVerticaleMax.Value = _droneClient.Configuration.Control.ControlVzMax;
VitesseRotationMax.Value = (int)(_droneClient.Configuration.Control.ControlYaw * 180 / System.Math.PI);
AngleInclinaisonMax.Value = (int)(_droneClient.Configuration.Control.EulerAngleMax * 180 / System.Math.PI);
CareneExterieureToggle.IsOn = _droneClient.Configuration.Control.FlightWithoutShell;
ExterieurToggle.IsOn = _droneClient.Configuration.Control.Outdoor;
}
private async void AltitudeMax_PointerReleased(object sender, PointerRoutedEventArgs e)
{
_droneClient.Configuration.Control.AltitudeMax = (int)(AltitudeMax.Value * 1000);
await _droneClient.SendConfiguration();
}
private async void VitesseVerticaleMax_PointerReleased(object sender, PointerRoutedEventArgs e)
{
_droneClient.Configuration.Control.ControlVzMax = (int)VitesseVerticaleMax.Value;
await _droneClient.SendConfiguration();
}
private async void VitesseRotationMax_PointerReleased(object sender, PointerRoutedEventArgs e)
{
_droneClient.Configuration.Control.ControlYaw = VitesseRotationMax.Value * System.Math.PI / 180;
await _droneClient.SendConfiguration();
}
private async void AngleInclinaisonMax_PointerReleased(object sender, PointerRoutedEventArgs e)
{
_droneClient.Configuration.Control.EulerAngleMax = AngleInclinaisonMax.Value * System.Math.PI / 180;
await _droneClient.SendConfiguration();
}
private async void CareneExterieureToggle_Toggled(object sender, RoutedEventArgs e)
{
_droneClient.Configuration.Control.FlightWithoutShell = CareneExterieureToggle.IsOn;
await _droneClient.SendConfiguration();
}
private async void ExterieurToggle_Toggled(object sender, RoutedEventArgs e)
{
_droneClient.Configuration.Control.Outdoor = ExterieurToggle.IsOn;
await _droneClient.SendConfiguration();
}
private async void ReinitButton_Click(object sender, RoutedEventArgs e)
{
_droneClient.Configuration.Control.ControlVzMax = 700;
_droneClient.Configuration.Control.ControlYaw = 100 * System.Math.PI / 180;
_droneClient.Configuration.Control.EulerAngleMax = 12 * System.Math.PI / 180;
VitesseVerticaleMax.Value = _droneClient.Configuration.Control.ControlVzMax;
VitesseRotationMax.Value = (int)(_droneClient.Configuration.Control.ControlYaw * 180 / System.Math.PI);
AngleInclinaisonMax.Value = (int)(_droneClient.Configuration.Control.EulerAngleMax * 180 / System.Math.PI);
await _droneClient.SendConfiguration();
}
private void ShowCommandButton_Click(object sender, RoutedEventArgs e)
{
Frame.Navigate(typeof(XboxControls));
}
}
}