1 /* |
|
2 * This file is part of the TraKERS\Middleware package. |
|
3 * |
|
4 * (c) IRI <http://www.iri.centrepompidou.fr/> |
|
5 * |
|
6 * For the full copyright and license information, please view the LICENSE |
|
7 * file that was distributed with this source code. |
|
8 */ |
|
9 |
|
10 /* |
|
11 * Projet : TraKERS |
|
12 * Module : MIDDLEWARE |
|
13 * Sous-Module : Debug |
|
14 * Classe : DebugParameters |
|
15 * |
|
16 * Auteur : alexandre.bastien@iri.centrepompidou.fr |
|
17 * |
|
18 * Fonctionnalités : Code source attaché à la fenêtre de paramétrage du Middleware. |
|
19 * Celui-ci permet de charger/sauvegarder les paramètres stockés dans KinectMain. |
|
20 */ |
|
21 |
|
22 using System; |
|
23 using System.Reflection; |
|
24 using System.Resources; |
|
25 using System.Windows; |
|
26 using System.Windows.Controls; |
|
27 |
|
28 namespace Trakers.Debug |
|
29 { |
|
30 /// <summary> |
|
31 /// Interaction logic for DebugParameters.xaml |
|
32 /// </summary> |
|
33 public partial class DebugParameters : Window |
|
34 { |
|
35 private ResourceManager rm; |
|
36 private DebugWindow debug; |
|
37 |
|
38 /* |
|
39 * Constructeur : On ouvre la fenêtre et on charge les paramètres. |
|
40 */ |
|
41 public DebugParameters(DebugWindow _debug) |
|
42 { |
|
43 rm = new ResourceManager("Trakers.Debug.Properties.Resources", Assembly.GetExecutingAssembly()); |
|
44 debug = _debug; |
|
45 InitializeComponent(); |
|
46 getParameters(); |
|
47 } |
|
48 |
|
49 /* |
|
50 * Permet de charger les paramètres depuis KinectMain et les affiche dans la fenêtre de paramétrage. |
|
51 */ |
|
52 public void getParameters() |
|
53 { |
|
54 |
|
55 searchMinDistanceTB.Text = debug.getMinDistHands().ToString(); |
|
56 searchMaxDistanceTB.Text = debug.getMaxDistHands().ToString(); |
|
57 minDistanceTB.Text = debug.getMinDist().ToString(); |
|
58 maxDistanceTB.Text = debug.getMaxDist().ToString(); |
|
59 zeroPointTB.Text = debug.getZeroPoint().ToString(); |
|
60 connexionHostTB.Text = debug.getConnexionHost(); |
|
61 connexionPortTB.Text = debug.getConnexionPort().ToString(); |
|
62 timerElapsingTB.Text = debug.getTimerElapsing().ToString(); |
|
63 imagesToShowTB.Text = debug.getImagesToShow().ToString(); |
|
64 takenPointsTB.Text = debug.getTakenPoints().ToString(); |
|
65 directionChangeTresholdXYTB.Text = debug.getTakenPoints().ToString(); |
|
66 directionChangeTresholdZTB.Text = debug.getTakenPoints().ToString(); |
|
67 } |
|
68 |
|
69 /* |
|
70 * Permet de sauvegarder les paramètres de la fenêtre de paramétrage vers KinectMain. |
|
71 */ |
|
72 public void setParameters() |
|
73 { |
|
74 try |
|
75 { |
|
76 ExceptionInParametersLbl.Content = ""; |
|
77 |
|
78 float minDistHands = float.Parse(searchMinDistanceTB.Text); |
|
79 float maxDistHands = float.Parse(searchMaxDistanceTB.Text); |
|
80 float minDist = float.Parse(minDistanceTB.Text); |
|
81 float maxDist = float.Parse(maxDistanceTB.Text); |
|
82 float zeroPoint = float.Parse(zeroPointTB.Text); |
|
83 int connexionPort = int.Parse(connexionPortTB.Text); |
|
84 int timerElapsing = int.Parse(timerElapsingTB.Text); |
|
85 int imagesToShow = int.Parse(imagesToShowTB.Text); |
|
86 int takenPoints = int.Parse(takenPointsTB.Text); |
|
87 int directionChangeTresholdXY = int.Parse(directionChangeTresholdXYTB.Text); |
|
88 float directionChangeTresholdZ = float.Parse(directionChangeTresholdZTB.Text); |
|
89 |
|
90 if (maxDistHands <= 0f || minDistHands <= 0f || maxDistHands > maxDist || minDistHands > maxDist || |
|
91 minDistHands >= maxDistHands || zeroPoint < maxDistHands || minDistHands > minDist || |
|
92 zeroPoint >= maxDist || connexionPort < 0 || timerElapsing < 0 || imagesToShow < 1 || |
|
93 takenPoints <= 0 || directionChangeTresholdXY < 0 || directionChangeTresholdZ < 0) |
|
94 { |
|
95 ExceptionInParametersLbl.Content = rm.GetString("loadParametersIncorrect"); |
|
96 } |
|
97 else |
|
98 { |
|
99 debug.setMinDistHands(minDistHands); |
|
100 debug.setMaxDistHands(maxDistHands); |
|
101 debug.setMinDist(minDist); |
|
102 debug.setMaxDist(maxDist); |
|
103 debug.setZeroPoint(zeroPoint); |
|
104 debug.setConnexionHost(connexionHostTB.Text); |
|
105 debug.setConnexionPort(connexionPort); |
|
106 debug.setTimerElapsing(timerElapsing); |
|
107 debug.setImagesToShow(imagesToShow); |
|
108 debug.setTakenPoints(takenPoints); |
|
109 debug.setDirectionChangeTresholdXY(directionChangeTresholdXY); |
|
110 debug.setDirectionChangeTresholdZ(directionChangeTresholdZ); |
|
111 |
|
112 debug.updateParameters(); |
|
113 ExceptionInParametersLbl.Content = null; |
|
114 } |
|
115 } |
|
116 catch (Exception) |
|
117 { |
|
118 //S'il y a eu un problème de parsing (i.e si l'utilisateur a entré une mauvaise valeur), |
|
119 //Alors on affiche l'erreur, puis on recharge les paramètres précédents. |
|
120 ExceptionInParametersLbl.Content = rm.GetString("loadParametersFail"); |
|
121 getParameters(); |
|
122 } |
|
123 } |
|
124 |
|
125 /* |
|
126 * Méthode attachée à l'événement click sur le bouton de validation de la fenêtre de paramétrage. |
|
127 * Les données sont sauvegardées vers KinectMain, puis rechargées dans la fenêtre. |
|
128 */ |
|
129 private void Button_Click(object sender, RoutedEventArgs e) |
|
130 { |
|
131 setParameters(); |
|
132 } |
|
133 |
|
134 /* |
|
135 * Getters et Setters. |
|
136 */ |
|
137 public void setModButton(Button button) |
|
138 { |
|
139 ModButton = button; |
|
140 } |
|
141 |
|
142 public Button getModButton() |
|
143 { |
|
144 return ModButton; |
|
145 } |
|
146 |
|
147 /* |
|
148 * S'effectue lorsque la fenêtre se ferme. |
|
149 */ |
|
150 private void Window_Closed(object sender, EventArgs e) |
|
151 { |
|
152 |
|
153 } |
|
154 } |
|
155 } |
|