[Plateformes] Communication DS / PC

Le côté programmation du développement d'un jeu vidéo.

Communication DS / PC

Messagepar deathangel » 19 Jan 2008, 03:06

Salut tout le monde

voila j'ai un petit problème de communication entre ma DS qui utilise la PA_lib et mon PC qui fait tourner un serveur java.

Pour commencer voici les codes :
DS :
Code: Tout sélectionner
// Includes
#include <PA9.h>       // Include for PA_Lib
// Function: main()
int main(int argc, char ** argv)
{
   PA_Init();    // Initializes PA_Lib
   PA_InitVBL(); // Initializes a standard VBL
   
    PA_InitWifi();
    PA_ConnectWifiWFC();
   
   // Initialise the text system on the top screen
   PA_InitText(0,0);
   PA_InitText(1, 0);

   int sock;
   PA_InitSocket(&sock,"192.168.0.13",12345,PA_NONBLOCKING_TCP);
   
   char x;
   char y;
   while (1)
   {

        if (Stylus.Held)
      {
         x=Stylus.X;
         y=Stylus.Y;
         send(sock,&x,1,0);
         send(sock,&y,1,0);
         PA_OutputSimpleText(1,0,0,"                ");
         PA_OutputText(1,0,0,"%d %d",Stylus.X,Stylus.Y);
      }
      PA_WaitForVBL();
   }
   
   return 0;
} // End of main()


et java sur PC :
Code: Tout sélectionner
import java.net.*;
import java.io.*;
import java.util.*;

class ServeurDS
{
   public static void main(String[] args)
   {
      System.out.println("Serveur actif");
      int posX=50;
      int posY=50;
      try
      {
         //on écoute sur le port 12345
         ServerSocket ecoute = new ServerSocket(12345,5);
          Socket service = (Socket)null;

         //en attente d'un message client
           service = ecoute.accept();
        
      
           System.out.println("on est connecté : ");
           InetAddress ia=ecoute.getInetAddress();
           System.out.println(ia.getHostName());
           System.out.println(ia.getCanonicalHostName());
           System.out.println(ia.getHostAddress());
          
         //récupération de l'entrée réseau
           InputStream  is = service.getInputStream();
           //récupération de la sortie réseau
           OutputStream os = service.getOutputStream();
          //on boucle
          while(posX>10)
          {
             if (is.available()>0)
            {
                posX=is.read();
                posY=is.read();
               System.out.println(posX + " " + posY);
             }
             Thread.sleep(16);
          }
          //fermeture des flux d'entrée et de sortie
         is.close();
         os.close();
         //fermeture du service réseau
         service.close();
         

      }
      catch (Exception e)
      {
         System.out.println("Erreur réseau");
         e.printStackTrace();
      }
   }
}


donc voila, je veux que quand je bouge le stylet sur la DS, je récupère les coordonnées sur mon PC. Ce programme marche, la communication se fait, mais (sinon je serais pas là) le transfert des données de la DS au PC n'est pas immédiat. Si je fais juste un simple toucher, les données sont transmises immédiatement sans problème. Par contre si je reste appuyé à faire un dessin, la DS n'envoie que les données une fois que le stylet est relaché. Quelqu'un a-t-il déjà essayé/réussi à faire que le transfert se fasse immédiatement ?

merci d'avance.

ps : c'est possible de renommer le sous-forum GBA en DS-GBA ?

(Note Admin : changement de nom effectué)
95% des problèmes informatiques se situent entre la chaise et le clavier
--> Créez votre robot chien : http://doggyproject.free.fr/
--> Gagnez des PACK+ gratuitement : http://www.packbarre.com/
--> S.U.S Tennis de table http://www.sus.asso.fr
Avatar de l’utilisateur
deathangel
Hello World, I'm new !
 
Messages: 963
Inscription: 10 Avr 2005, 08:50
Localisation: Strasbourg

Messagepar Kremtak » 19 Jan 2008, 14:52

Salut deathangel
Malheureusement je n'utilise pas PAlib...
Ton "PA_OutputText" fonctionne normalement lui, ou est-ce qu'il n'écrit que lorsque tu relève le stylet? C'est pour savoir si le problème vient du "Stylus.Held" ou plutôt du réseau...
Avatar de l’utilisateur
Kremtak
Hello World, I'm new !
 
Messages: 167
Inscription: 12 Déc 2007, 23:27
Localisation: Aubagne

Messagepar deathangel » 19 Jan 2008, 17:56

L'affichage du texte marche sans problème, il se met bien à jour. Et ca ne vient pas du côté java, je l'ai testé avec un autre PC qui lui envoyait les données, ca fonctionnait sans problème.
Tu utilises quoi pour developper sur DS si tu ne prends pas la PALib ?
95% des problèmes informatiques se situent entre la chaise et le clavier
--> Créez votre robot chien : http://doggyproject.free.fr/
--> Gagnez des PACK+ gratuitement : http://www.packbarre.com/
--> S.U.S Tennis de table http://www.sus.asso.fr
Avatar de l’utilisateur
deathangel
Hello World, I'm new !
 
Messages: 963
Inscription: 10 Avr 2005, 08:50
Localisation: Strasbourg

Messagepar Kremtak » 20 Jan 2008, 14:00

Je bosse avec un studio qui a accès au NitroSDK (truc officiel nintendo) donc pas de PALib ...
Pour ton problème, désolé je crois pas pouvoir t'aider, tu as posté sur les forums de PAlib ? T'as plus de chance d'y recevoir une solution...
Avatar de l’utilisateur
Kremtak
Hello World, I'm new !
 
Messages: 167
Inscription: 12 Déc 2007, 23:27
Localisation: Aubagne

Messagepar deathangel » 27 Jan 2008, 21:38

Je reviens avec mon programme
comme conseillé sur les forum de PaLIB, j'ai du passer en mode UDP (inspiré de DSAmp) et du coup ca fonctionne beaucoup mieux :)

J'ai donc fait une mini appli qui permet de controler son PC à distance (enfin on peut bouger la souris et cliquer quoi :p)

tout est dans le zip, le serveur made in Java donc multiplateforme et le fichier NDS à mettre sur la DS.
Il suffit de lancer le serveur, de rentrer l'IP du serveur sur la DS et c'est parti
la souris se controle avec le pavé directionnelle et le click se fait avec le bouton A. Je travaille sur une deuxième version qui n'utilisera que le stylet à la facon d'un pavé tactile d'un PC.
Si vous avez des retours, n'hésitez pas

Téléchargez DSPad
95% des problèmes informatiques se situent entre la chaise et le clavier
--> Créez votre robot chien : http://doggyproject.free.fr/
--> Gagnez des PACK+ gratuitement : http://www.packbarre.com/
--> S.U.S Tennis de table http://www.sus.asso.fr
Avatar de l’utilisateur
deathangel
Hello World, I'm new !
 
Messages: 963
Inscription: 10 Avr 2005, 08:50
Localisation: Strasbourg

Messagepar Kremtak » 29 Jan 2008, 13:40

Ca a l'air très sympa sur le papier, je vais tester! :)
But there's no sense crying over every mistake
You just keep trying until you run out of cake
Avatar de l’utilisateur
Kremtak
Hello World, I'm new !
 
Messages: 167
Inscription: 12 Déc 2007, 23:27
Localisation: Aubagne

Messagepar Kremtak » 29 Jan 2008, 13:47

Euh, pti détail, comment on le lance, sous windows? Ca fait des lustres que j'ai pas utilisé java... J'ai tenté un "java.exe ServeurDS.class" (j'ai juste le java runtime environment d'installé) et j'obtiens un "Exception in thread main NoClassDefFoundError: ServeurDS/class"
But there's no sense crying over every mistake
You just keep trying until you run out of cake
Avatar de l’utilisateur
Kremtak
Hello World, I'm new !
 
Messages: 167
Inscription: 12 Déc 2007, 23:27
Localisation: Aubagne

Messagepar deathangel » 29 Jan 2008, 15:12

il suffit juste de faire "java ServeurDS" sans .exe et sans .class
95% des problèmes informatiques se situent entre la chaise et le clavier
--> Créez votre robot chien : http://doggyproject.free.fr/
--> Gagnez des PACK+ gratuitement : http://www.packbarre.com/
--> S.U.S Tennis de table http://www.sus.asso.fr
Avatar de l’utilisateur
deathangel
Hello World, I'm new !
 
Messages: 963
Inscription: 10 Avr 2005, 08:50
Localisation: Strasbourg


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Yahoo [Bot] et 14 invités

cron