<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Exemple Java</title><link>https://sourceforge.net/p/tuxdroidserver/francais/Exemple%2520Java/</link><description>Recent changes to Exemple Java</description><atom:link href="https://sourceforge.net/p/tuxdroidserver/francais/Exemple%20Java/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 27 Nov 2013 17:10:18 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/tuxdroidserver/francais/Exemple%20Java/feed" rel="self" type="application/rss+xml"/><item><title>Exemple Java modified by Joël Matteotti</title><link>https://sourceforge.net/p/tuxdroidserver/francais/Exemple%2520Java/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -132,6 +132,19 @@
        {
            //c'est un bouton
            sp = message.split(":");
+
+                if(sp[0].equalsIgnoreCase("#TUXDROIDSERVER")) //Message: #TUXDROIDSERVER:XXXXX
+                {
+                    if(sp[1].equalsIgnorecase("VALIDEDKEY")) //Message: #TUXDROIDSERVER:VALIDEDKEY
+                    {
+                        //la clef d'authentification fourni par Tux_Key() a été accepter
+                        //on défini donc maintenantun identifiant unique 
+                        //(devenu obligatoire en révision 151)
+
+                        out.println("Tux_SetId(monapp1234)");
+                    }
+                }
+

            if(sp[0].equalsIgnoreCase("#TUXBUTTON"))
            {
@@ -196,17 +209,9 @@
             in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

             out.println("Tux_Key(test)"); //regarder la page wiki de la commande Tux_Key pour plus d'informations là dessus.
-            try
-            {
-                /*attend un peut pour être sur que le server à pris Tux_Key() en compte 
-                avant d'envoyer la seconde commande*/
-                Thread.currentThread().sleep(100); 
-            }
-            catch(ItrerruptedException ie)
-            {
-            }
-
-            out.println("Tux_SetId(monapp1234)"); //défini un identifiant unique (devenu obligatoire en révision 151)
+
+
+
         } 
         catch (IOException e) 
         {
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joël Matteotti</dc:creator><pubDate>Wed, 27 Nov 2013 17:10:18 -0000</pubDate><guid>https://sourceforge.netdca2c0b196945df7b9440997505664f578eab4bf</guid></item><item><title>Exemple Java modified by Joël Matteotti</title><link>https://sourceforge.net/p/tuxdroidserver/francais/Exemple%2520Java/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -196,6 +196,17 @@
             in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

             out.println("Tux_Key(test)"); //regarder la page wiki de la commande Tux_Key pour plus d'informations là dessus.
+            try
+            {
+                /*attend un peut pour être sur que le server à pris Tux_Key() en compte 
+                avant d'envoyer la seconde commande*/
+                Thread.currentThread().sleep(100); 
+            }
+            catch(ItrerruptedException ie)
+            {
+            }
+
+            out.println("Tux_SetId(monapp1234)"); //défini un identifiant unique (devenu obligatoire en révision 151)
         } 
         catch (IOException e) 
         {
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joël Matteotti</dc:creator><pubDate>Wed, 27 Nov 2013 11:38:23 -0000</pubDate><guid>https://sourceforge.netcf17c49a00bd551910b5048640b41bfb32113c25</guid></item><item><title>Exemple Java modified by Sebastien Duthil</title><link>https://sourceforge.net/p/tuxdroidserver/francais/Exemple%2520Java/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -1,17 +1,12 @@
-&lt;font color="#FF0000"&gt;&lt;b&gt;ATTENTION !!&lt;/b&gt; Le projet étant encore au tout début de sont développement il se peut que cette documentation contienne des erreurs du fait des nombreuses modifications permanente !!&lt;/font&gt;
-
-
-
-## Exemple de programme Java communiquant avec TuxDroidServer ##
-
-&lt;br /&gt;
+Exemple de programme Java communiquant avec TuxDroidServer
+==========================================================
+
+Il ne s'agit que d'un simple squelette d'un programme (avec quelques fonctions utilisées pour l'exemple) communiquant avec TuxDroidServer, en se basant sur ce code il est très facile de créer un programme complet comme par exemple une interface graphique qui gérera TuxDroid via le TuxDroidServer.
+
 &lt;b&gt;NOTE:&lt;/b&gt; Pour utiliser ce code vous devez utiliser au minimum Java 7, dans le cas contraire il vous faudra remplacer les switch() par des condition if/else.

-Il s'agit que d'un simple squeltte d'un programme (avec quelques fonction utilisé pour l'exemple) communiquant avec TuxDroidServer, en se basant sur ce code il est très facile de créer un programme complet comme par exemple une interface graphique qui gérera TuxDroid via le TuxDroidServer.
-
-
-
 ~~~~~~
+#!java
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sebastien Duthil</dc:creator><pubDate>Wed, 01 May 2013 02:39:12 -0000</pubDate><guid>https://sourceforge.netfa5415c167befe51bfa6fe2a4412274bf0a53d7a</guid></item><item><title>WikiPage Exemple Java modified by Joe</title><link>https://sourceforge.net/p/tuxdroidserver/francais/Exemple%2520Java/</link><description>&lt;pre&gt;--- v1
+++ v2
@@ -1,6 +1,8 @@
+&lt;font color="#FF0000"&gt;&lt;b&gt;ATTENTION !!&lt;/b&gt; Le projet étant encore au tout début de sont développement il se peut que cette documentation contienne des erreurs du fait des nombreuses modifications permanente !!&lt;/font&gt;
+
+
+
 ## Exemple de programme Java communiquant avec TuxDroidServer ##
-
-&lt;font color="#FF0000"&gt;&lt;b&gt;ATTENTION !!&lt;/b&gt; Le projet étant encore au tout début de sont développement il se peut que ce code ne fonctionne pas correctement ou pas du tout avec la dernière révision du SVN.
 
 &lt;br/&gt;
 &lt;b&gt;NOTE:&lt;/b&gt; Pour utiliser ce code vous devez utiliser au minimum Java 7, dans le cas contraire il vous faudra remplacer les switch() par des condition if/else.
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joe</dc:creator><pubDate>Wed, 27 Jun 2012 21:18:11 -0000</pubDate><guid>https://sourceforge.netb650c81c66d7ed80ef7eaa119ee381961433d8bb</guid></item><item><title>WikiPage Exemple Java modified by Joe</title><link>https://sourceforge.net/p/tuxdroidserver/francais/Exemple%2520Java/</link><description>## Exemple de programme Java communiquant avec TuxDroidServer ##

&lt;font color="#FF0000"&gt;&lt;b&gt;ATTENTION !!&lt;/b&gt; Le projet étant encore au tout début de sont développement il se peut que ce code ne fonctionne pas correctement ou pas du tout avec la dernière révision du SVN.

&lt;br/&gt;
&lt;b&gt;NOTE:&lt;/b&gt; Pour utiliser ce code vous devez utiliser au minimum Java 7, dans le cas contraire il vous faudra remplacer les switch() par des condition if/else.

Il s'agit que d'un simple squeltte d'un programme (avec quelques fonction utilisé pour l'exemple) communiquant avec TuxDroidServer, en se basant sur ce code il est très facile de créer un programme complet comme par exemple une interface graphique qui gérera TuxDroid via le TuxDroidServer.



~~~~~~
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;


public class TuxDroid 
{
	private static Socket socket = null;		/* déclaration de la socket */
	private static PrintWriter out = null;		/* déclaratiion du buffer de sortie */
	private static BufferedReader in = null;	/* déclaration du buffer d'entrée */
    
    /***
     * Fonction appeller lors de l'appuie sur le bouton de la tête
     */
    private static void onHeadButton()
    {
    	System.out.println("bouton de la tête");
    }
   
    /***
     * Fonction appeller lors de l'appuie de l'aile gauche
     */
    private static void onLeftButton()
    {
    	System.out.println("bouton gauche");
    }
    
    /***
     * Fonction appeller lors de l'appuie de l'aile droite
     */
    private static void onRightButton()
    {
    	System.out.println("bouton droit");
    }

    /***
     * Fonction appeller lorsqu'on branche le chargeur au TuxDroid
     */
    private static void onChargerPlugged()
    {
    	//
    }
    
    /***
     * Fonction appeller lorsqu'on débranche le chargeur
     */
    private static void onChargerUnPlugged()
    {
    	//
    }
    
    /***
     * Fonction appeller lorsqu'on connecte le dongle au PC
     */
    private static void onDongleConnected()
    {
    	//
    }
    
    /***
     * Fonction appeller lorsqu'on débranche le dongle
     */
    private static void onDongleDisConnected()
    {
    	//
    }
    
    /***
     * Fonction appeller lors de l'appuie d'un bouton de la télécommande
     * 
     * @param button Nom du boutton qui a été appuyer
     */
    private static void onRemoteButton(String button)
    {
    	switch(button)
    	{
	    	case "K_RED": //bouton rouge de la télécommande
	    	{
	    		out.println("Tux_State(16)");
	    		System.out.println("Niveau de batterie: "+getServerResponse());
	      	}
	    	break;
    	}
    }
    
    /***
     * Permet d'obtenir une réponse du server après requête
     * 
     * @return Renvoie le message du server
     */
    private static String getServerResponse()
    {
    	String str="";
    	
    	try
    	{
	    	int x;
	        while((x = in.read()) != '\r')
	        {
	        	if(x &gt; 1)
	        		str=str+(char)x;
	        }
	        return str;
    	}
    	catch(IOException ioe)
    	{
    		return "";
    	}
    }
    
    /***
     * Fonction permettant de gérer les événements du TuxDroid comme par exemple l'appuie d'un bouton
     * 
     * @param message
     */
    private static void manageEvents(String message)
    {
    	String[] sp = null;
    	
    	if(message.startsWith("#TUXBUTTON") || message.startsWith("#TUXREMOTE"))
    	{
    		//c'est un bouton
    		sp = message.split(":");
    		
    		if(sp[0].equalsIgnoreCase("#TUXBUTTON"))
    		{
    			switch(sp[1])
    			{
	    			case "LEFT": onLeftButton();
	    			break;
	    			
	    			case "RIGHT": onRightButton();
	    			break;
	    			
	    			case "HEAD": onHeadButton();
	    			break;
    			}
    		}
    		
    		if(sp[0].equalsIgnoreCase("#TUXREMOTE"))
    		{
    			//télécommande
    			onRemoteButton(sp[1]);
    		}
    	}
    	else
    	{
    		if(message.startsWith("#TUXCHARGER"))
    		{
    			sp = message.split(":");
    			
    			switch(sp[1])
    			{
	    			case "PLUGGED": onChargerPlugged();
	    			break;
	    			
	    			case "UNPLUGGED": onChargerUnPlugged();
	    			break;
    			}
    		}
    		
    		if(message.startsWith("#TUXDONGLE"))
    		{
    			sp = message.split(":");
    			
    			switch(sp[1])
    			{
	    			case "CONNECTED": onDongleConnected();
	    			break;
	    			
	    			case "DISCONNECTED": onDongleDisConnected();
	    			break;
    			}
    		}
    	}
    }
    
    public static void main(String[] args) throws IOException 
    {
    	/* tente de se connecter au server */
        try 
        {
            socket = new Socket("192.168.1.43", 9090); // ip et port d'écoute de TuxDroidServer
            out = new PrintWriter(socket.getOutputStream(), true);
            in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            
            out.println("Tux_Key(test)"); //regarder la page wiki de la commande Tux_Key pour plus d'informations là dessus.
        } 
        catch (IOException e) 
        {
            return;
        }
        
     	String str="";
    	int x;
   
        // Boucle de gestion des événements
        while(true)
        {
        	str="";
            while((x = in.read()) != '\r')
	        {
	        	if(x &gt; 31) /* de 0 à 31 il s'agit de code spéciaux du tableau ASCII */
	        		str=str+(char)x;
	        }
	        manageEvents(str);
        }
    }
}
~~~~~~
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joe</dc:creator><pubDate>Thu, 21 Jun 2012 16:27:17 -0000</pubDate><guid>https://sourceforge.net48274f8ac9501ae68272f6e9075ccba787d3ea5d</guid></item></channel></rss>