middleware/Debug/DebugParameters.xaml.cs
changeset 41 d2f735d7763f
parent 40 0f31ebcc62b7
child 42 e511a6f9dbd4
equal deleted inserted replaced
40:0f31ebcc62b7 41:d2f735d7763f
     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 }