diff -r f4e52a4c34b3 -r d40f84d77db4 middleware/src/Communication/Server.cs --- a/middleware/src/Communication/Server.cs Thu Mar 15 13:35:25 2012 +0100 +++ b/middleware/src/Communication/Server.cs Mon Mar 19 10:21:56 2012 +0100 @@ -27,6 +27,9 @@ using System.Windows.Media.Media3D; using Trakers.Tracking.Events; using System.Timers; +using Trakers.Debug; +using System.Resources; +using System.Reflection; namespace Trakers.Communication { @@ -34,29 +37,30 @@ { //Serveur TUIO, provenant de la DLL TuioServer créé par Bespoke. private TuioServer server; + //Affichage de debug. + private DebugWindow debug; //Permet de savoir si un curseur pour la main gauche/droite a été créé. private bool leftHandCursorCreated; private bool rightHandCursorCreated; private bool messageCreated; private bool gestureLocked; - + //Intervalle minimum entre les gestures. private int timerElapsing; - - System.Timers.Timer _timer; + //Timer. + private System.Timers.Timer _timer; + //Gestionnaire de ressources. + private ResourceManager rm; /* * Constructeur : On initialise le serveur avec une adresse et un port, au début les curseurs * ne sont pas créés et on indique au ThreadPool une fonction de callback de manière à vérifier * s'il reçoit des notifications. */ - public Server(String host, int port, int _timerElapsing) + public Server(String host, int port, int _timerElapsing, DebugWindow _debug) { - //On démarre le serveur TUIO. - server = new TuioServer(host, port); - //On initialise le threadPool (appelé toutes les N ms). - ThreadPool.QueueUserWorkItem(ThreadPoolCallback); - + debug = _debug; + rm = new ResourceManager("Trakers.Properties.resources", Assembly.GetExecutingAssembly()); //Au départ, aucune main n'est dans le champ de recherche et aucune gesture n'est détectée. leftHandCursorCreated = false; rightHandCursorCreated = false; @@ -65,10 +69,22 @@ timerElapsing = _timerElapsing; - //On instancie le timer à N ms. - _timer = new System.Timers.Timer(timerElapsing); - //Dès que le timer est expiré, on appelle _timer_Elapsed. - _timer.Elapsed += new ElapsedEventHandler(_timer_Elapsed); + try + { + //On démarre le serveur TUIO. + server = new TuioServer(host, port); + //On initialise le threadPool (appelé toutes les N ms). + ThreadPool.QueueUserWorkItem(ThreadPoolCallback); + + //On instancie le timer à N ms. + _timer = new System.Timers.Timer(timerElapsing); + //Dès que le timer est expiré, on appelle _timer_Elapsed. + _timer.Elapsed += new ElapsedEventHandler(_timer_Elapsed); + } + catch (Exception) + { + debug.ExceptionLbl.Content = rm.GetString("serverCantStart"); + } } /* @@ -95,7 +111,6 @@ */ public void LeftHandTracked(object sender, LeftHandTrackedEventArgs e) { - return; //Si le curseur de la main gauche n'est pas créé, alors on le crée. if (!leftHandCursorCreated) { @@ -114,19 +129,16 @@ */ public void RightHandTracked(object sender, RightHandTrackedEventArgs e) { - return; //Si le curseur de la main droite n'est pas créé, alors on le crée. if (!rightHandCursorCreated) { server.AddTuioCursor(1, SkeletonPointToPoint3D(e.handJoint.Position)); - //server.AddTuioString(1, "BOO"); rightHandCursorCreated = true; } //S'il existe, on le met simplement à jour. else { server.UpdateTuioCursor(1, SkeletonPointToPoint3D(e.handJoint.Position)); - //server.UpdateTuioString(1, "BOO"); } } @@ -135,7 +147,6 @@ */ public void LeftHandQuit(object sender, LeftHandQuitEventArgs e) { - return; //Si le curseur de la main gauche existe, alors on le supprime. if (leftHandCursorCreated) { @@ -149,12 +160,10 @@ */ public void RightHandQuit(object sender, RightHandQuitEventArgs e) { - return; //Si le curseur de la main droite existe, alors on le supprime. if (rightHandCursorCreated) { server.DeleteTuioCursor(1); - //server.DeleteTuioString(1); rightHandCursorCreated = false; } } @@ -191,8 +200,6 @@ else hand = "BOTH"; - Console.Out.WriteLine(pushPull + "-" + hand); - GesturePerformed(pushPull + "-" + hand); } @@ -210,7 +217,7 @@ if (!messageCreated) { messageCreated = true; - server.AddTuioString(1, code); + server.AddTuioString(2, code); //On démarre le timer. _timer.Start(); } @@ -246,7 +253,7 @@ { //On débloque la détection de gesture et on supprime l'objet envoyant les messages OSC de gesture. messageCreated = false; - server.DeleteTuioString(1); + server.DeleteTuioString(2); } } }