Dans le cadre de mon projet scolaire, je dois afficher des données (récupérées par wifi) sur une tablette Android, cependant j'ai quelques problèmes pour passer de mon code sur processing du java à AndroidMode.
Mes principaux problèmes sont pour le client, afin de faire une demande d'envoi de données au serveur et pour les récupérer.
Tout d'abord un problème que je n'arrive pas à résoudre :
En Java :
Client myClient;
myClient = new Client (this, "192.168.227.219", 20000);
En AndroidMode :
Socket myClient;
myClient = new Socket("192.168.227.219", 20000) // Ici ça ne passe pas à la compilation, j'ai recherché sur le net mais je ne comprends toujours pas pourquoi ça ne passe pas (une histoire de host)
-------------------------------
Voici la partie de mon programme que je voudrais convertir, je me met pas la partie affichage graphique c'est long et brouillon :
Pour information je reçois soit une liste nommée "donnee" de 4 éléments ou une liste nommée "donnees" de 12 éléments d'une raspBerry PI, respectivement quand j'envoie la demande 1 ou 2.
int page=10, demande, fin, retour, delay, langue, langage, ModeDaltonien, dataIn, i=0;
float jour, mois, annee, puissance;
int[] donnees = new int[12];
int[] donnee = new int[4];
import processing.net.*;
Client myClient;
PImage fond;
void setup()
{
size(1024, 600);
fond = loadImage("fond.jpg");
myClient = new Client (this, "192.168.227.219", 20000);
}
void draw()
{
if (demande == 1) // Demande d'envoi et réception de la puissance.
{
myClient.write("PI");
while (i < 4)
{
if (myClient.available () > 0)
{
dataIn = myClient.read();
donnee[i]=dataIn;
i++;
}
}
demande = 0;
i = 0;
}
if (demande == 2) // Demande d'envoi et réception des données du jour, mois et année
{
myClient.write("CE");
while (i < 12)
{
if (myClient.available () > 0)
{
dataIn = myClient.read();
donnees[i]=dataIn;
i++;
}
}
demande = 0;
i = 0;
}
if (fin == 1) // Demande de fin du programme
{
println("Fin");
myClient.write("Fin");
exit();
}
puissance = (donnee[0]*pow(256, 0)) + (donnee[1]*pow(256, 1)) + (donnee[2]*pow(256, 2)) + (donnee[3]*pow(256, 3));
jour = (donnees[0]*pow(256, 0)) + (donnees[1]*pow(256, 1)) + (donnees[2]*pow(256, 2)) + (donnees[3]*pow(256, 3));
mois = (donnees[4]*pow(256, 0)) + (donnees[5]*pow(256, 1)) + (donnees[6]*pow(256, 2)) + (donnees[7]*pow(256, 3));
annee = (donnees[8]*pow(256, 0)) + (donnees[9]*pow(256, 1)) + (donnees[10]*pow(256, 2)) + (donnees[11]*pow(256, 3));
Je sais qu'il faut importer :
import java.io.*;
import java.net.*;
et utiliser des commandes telles que :
BufferedReader plec = new BufferedReader(
new InputStreamReader(myClient.getInputStream())
ou
PrintWriter pred = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(myClient.getOutputStream())), true);
mais je n'arrive pas à bien les intégrer.
Merci d'avance.
- Edité par AxelFiniarel 2 avril 2015 à 1:06:39
Java Processing AndroidMode
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.