diff -r 10d5199d9874 -r 4b78f179e7ce middleware/Debug/DebugParameters.xaml.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/middleware/Debug/DebugParameters.xaml.cs Mon Apr 02 16:30:56 2012 +0200 @@ -0,0 +1,132 @@ +/* +* This file is part of the TraKERS\Middleware package. +* +* (c) IRI +* +* For the full copyright and license information, please view the LICENSE_MIDDLEWARE +* file that was distributed with this source code. +*/ + +/* + * Projet : TraKERS + * Module : MIDDLEWARE + * Sous-Module : Debug + * Classe : DebugParameters + * + * Auteur : alexandre.bastien@iri.centrepompidou.fr + * + * Fonctionnalités : Code source attaché à la fenêtre de paramétrage du Middleware. + * Celui-ci permet de charger/sauvegarder les paramètres stockés dans KinectMain. + */ + +using System; +using System.Reflection; +using System.Resources; +using System.Windows; + +namespace Trakers.Debug +{ + /// + /// Interaction logic for DebugParameters.xaml + /// + public partial class DebugParameters : Window + { + private ResourceManager rm; + private DebugWindow debug; + + /* + * Constructeur : On ouvre la fenêtre et on charge les paramètres. + */ + public DebugParameters(DebugWindow _debug) + { + rm = new ResourceManager("Trakers.Debug.Properties.Resources", Assembly.GetExecutingAssembly()); + debug = _debug; + InitializeComponent(); + getParameters(); + } + + /* + * Permet de charger les paramètres depuis KinectMain et les affiche dans la fenêtre de paramétrage. + */ + public void getParameters() + { + searchMinDistanceTB.Text = debug.getMinDistHands().ToString(); + searchMaxDistanceTB.Text = debug.getMaxDistHands().ToString(); + minDistanceTB.Text = debug.getMinDist().ToString(); + maxDistanceTB.Text = debug.getMaxDist().ToString(); + zeroPointTB.Text = debug.getZeroPoint().ToString(); + connexionHostTB.Text = debug.getConnexionHost(); + connexionPortTB.Text = debug.getConnexionPort().ToString(); + timerElapsingTB.Text = debug.getTimerElapsing().ToString(); + imagesToShowTB.Text = debug.getImagesToShow().ToString(); + takenPointsTB.Text = debug.getTakenPoints().ToString(); + directionChangeTresholdXYTB.Text = debug.getTakenPoints().ToString(); + directionChangeTresholdZTB.Text = debug.getTakenPoints().ToString(); + } + + /* + * Permet de sauvegarder les paramètres de la fenêtre de paramétrage vers KinectMain. + */ + public void setParameters() + { + try + { + ExceptionInParametersLbl.Content = ""; + + float minDistHands = float.Parse(searchMinDistanceTB.Text); + float maxDistHands = float.Parse(searchMaxDistanceTB.Text); + float minDist = float.Parse(minDistanceTB.Text); + float maxDist = float.Parse(maxDistanceTB.Text); + float zeroPoint = float.Parse(zeroPointTB.Text); + int connexionPort = int.Parse(connexionPortTB.Text); + int timerElapsing = int.Parse(timerElapsingTB.Text); + int imagesToShow = int.Parse(imagesToShowTB.Text); + int takenPoints = int.Parse(takenPointsTB.Text); + int directionChangeTresholdXY = int.Parse(directionChangeTresholdXYTB.Text); + float directionChangeTresholdZ = float.Parse(directionChangeTresholdZTB.Text); + + if (maxDistHands <= 0f || minDistHands <= 0f || maxDistHands > maxDist || minDistHands > maxDist || + minDistHands >= maxDistHands || zeroPoint < maxDistHands || minDistHands > minDist || + zeroPoint >= maxDist || connexionPort < 0 || timerElapsing < 0 || imagesToShow < 1 || + takenPoints <= 0 || directionChangeTresholdXY < 0 || directionChangeTresholdZ < 0) + { + ExceptionInParametersLbl.Content = rm.GetString("loadParametersIncorrect"); + } + else + { + debug.setMinDistHands(minDistHands); + debug.setMaxDistHands(maxDistHands); + debug.setMinDist(minDist); + debug.setMaxDist(maxDist); + debug.setZeroPoint(zeroPoint); + debug.setConnexionHost(connexionHostTB.Text); + debug.setConnexionPort(connexionPort); + debug.setTimerElapsing(timerElapsing); + debug.setImagesToShow(imagesToShow); + debug.setTakenPoints(takenPoints); + debug.setDirectionChangeTresholdXY(directionChangeTresholdXY); + debug.setDirectionChangeTresholdZ(directionChangeTresholdZ); + + debug.updateParameters(); + ExceptionInParametersLbl.Content = null; + } + } + catch (Exception) + { + //S'il y a eu un problème de parsing (i.e si l'utilisateur a entré une mauvaise valeur), + //Alors on affiche l'erreur, puis on recharge les paramètres précédents. + ExceptionInParametersLbl.Content = rm.GetString("loadParametersFail"); + getParameters(); + } + } + + /* + * Méthode attachée à l'événement click sur le bouton de validation de la fenêtre de paramétrage. + * Les données sont sauvegardées vers KinectMain, puis rechargées dans la fenêtre. + */ + private void Button_Click(object sender, RoutedEventArgs e) + { + setParameters(); + } + } +}