middleware/Debug/DebugParameters.xaml.cs
changeset 15 4b78f179e7ce
child 16 a9ebacd6c089
equal deleted inserted replaced
14:10d5199d9874 15:4b78f179e7ce
       
     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_MIDDLEWARE
       
     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 
       
    27 namespace Trakers.Debug
       
    28 {
       
    29     /// <summary>
       
    30     /// Interaction logic for DebugParameters.xaml
       
    31     /// </summary>
       
    32     public partial class DebugParameters : Window
       
    33     {
       
    34         private ResourceManager rm;
       
    35         private DebugWindow debug;
       
    36 
       
    37         /*
       
    38          * Constructeur : On ouvre la fenêtre et on charge les paramètres.
       
    39          */
       
    40         public DebugParameters(DebugWindow _debug)
       
    41         {
       
    42             rm = new ResourceManager("Trakers.Debug.Properties.Resources", Assembly.GetExecutingAssembly());
       
    43             debug = _debug;
       
    44             InitializeComponent();
       
    45             getParameters();
       
    46         }
       
    47 
       
    48         /*
       
    49          * Permet de charger les paramètres depuis KinectMain et les affiche dans la fenêtre de paramétrage.
       
    50          */
       
    51         public void getParameters()
       
    52         {
       
    53             searchMinDistanceTB.Text = debug.getMinDistHands().ToString();
       
    54             searchMaxDistanceTB.Text = debug.getMaxDistHands().ToString();
       
    55             minDistanceTB.Text = debug.getMinDist().ToString();
       
    56             maxDistanceTB.Text = debug.getMaxDist().ToString();
       
    57             zeroPointTB.Text = debug.getZeroPoint().ToString();
       
    58             connexionHostTB.Text = debug.getConnexionHost();
       
    59             connexionPortTB.Text = debug.getConnexionPort().ToString();
       
    60             timerElapsingTB.Text = debug.getTimerElapsing().ToString();
       
    61             imagesToShowTB.Text = debug.getImagesToShow().ToString();
       
    62             takenPointsTB.Text = debug.getTakenPoints().ToString();
       
    63             directionChangeTresholdXYTB.Text = debug.getTakenPoints().ToString();
       
    64             directionChangeTresholdZTB.Text = debug.getTakenPoints().ToString();
       
    65         }
       
    66 
       
    67         /*
       
    68          * Permet de sauvegarder les paramètres de la fenêtre de paramétrage vers KinectMain.
       
    69          */
       
    70         public void setParameters()
       
    71         {
       
    72             try
       
    73             {
       
    74                 ExceptionInParametersLbl.Content = "";
       
    75 
       
    76                 float minDistHands = float.Parse(searchMinDistanceTB.Text);
       
    77                 float maxDistHands = float.Parse(searchMaxDistanceTB.Text);
       
    78                 float minDist = float.Parse(minDistanceTB.Text);
       
    79                 float maxDist = float.Parse(maxDistanceTB.Text);
       
    80                 float zeroPoint = float.Parse(zeroPointTB.Text);
       
    81                 int connexionPort = int.Parse(connexionPortTB.Text);
       
    82                 int timerElapsing = int.Parse(timerElapsingTB.Text);
       
    83                 int imagesToShow = int.Parse(imagesToShowTB.Text);
       
    84                 int takenPoints = int.Parse(takenPointsTB.Text);
       
    85                 int directionChangeTresholdXY = int.Parse(directionChangeTresholdXYTB.Text);
       
    86                 float directionChangeTresholdZ = float.Parse(directionChangeTresholdZTB.Text);
       
    87 
       
    88                 if (maxDistHands <= 0f || minDistHands <= 0f || maxDistHands > maxDist || minDistHands > maxDist ||
       
    89                 minDistHands >= maxDistHands || zeroPoint < maxDistHands || minDistHands > minDist ||
       
    90                 zeroPoint >= maxDist || connexionPort < 0 || timerElapsing < 0 || imagesToShow < 1 ||
       
    91                 takenPoints <= 0 || directionChangeTresholdXY < 0 || directionChangeTresholdZ < 0)
       
    92                 {
       
    93                     ExceptionInParametersLbl.Content = rm.GetString("loadParametersIncorrect");
       
    94                 }
       
    95                 else
       
    96                 {
       
    97                     debug.setMinDistHands(minDistHands);
       
    98                     debug.setMaxDistHands(maxDistHands);
       
    99                     debug.setMinDist(minDist);
       
   100                     debug.setMaxDist(maxDist);
       
   101                     debug.setZeroPoint(zeroPoint);
       
   102                     debug.setConnexionHost(connexionHostTB.Text);
       
   103                     debug.setConnexionPort(connexionPort);
       
   104                     debug.setTimerElapsing(timerElapsing);
       
   105                     debug.setImagesToShow(imagesToShow);
       
   106                     debug.setTakenPoints(takenPoints);
       
   107                     debug.setDirectionChangeTresholdXY(directionChangeTresholdXY);
       
   108                     debug.setDirectionChangeTresholdZ(directionChangeTresholdZ);
       
   109 
       
   110                     debug.updateParameters();
       
   111                     ExceptionInParametersLbl.Content = null;
       
   112                 }
       
   113             }
       
   114             catch (Exception)
       
   115             {
       
   116                 //S'il y a eu un problème de parsing (i.e si l'utilisateur a entré une mauvaise valeur),
       
   117                 //Alors on affiche l'erreur, puis on recharge les paramètres précédents.
       
   118                 ExceptionInParametersLbl.Content = rm.GetString("loadParametersFail");
       
   119                 getParameters();
       
   120             }
       
   121         }
       
   122 
       
   123         /*
       
   124          * Méthode attachée à l'événement click sur le bouton de validation de la fenêtre de paramétrage.
       
   125          * Les données sont sauvegardées vers KinectMain, puis rechargées dans la fenêtre.
       
   126          */
       
   127         private void Button_Click(object sender, RoutedEventArgs e)
       
   128         {
       
   129             setParameters();
       
   130         }
       
   131     }
       
   132 }