Pages: [1] 2   Go Down
Author Topic: Envoi de données sur internet via processing  (Read 3565 times)
0 Members and 1 Guest are viewing this topic.
Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3228
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Je cherche à envoyer des données lues par mes plaques Arduino sur une page de mon site internet.

J'aimerais utiliser pour cela Processing (si c'est possible), car cela me permettrait de faire une petite interface me permettant de manipuler ces données.

J'aimerais me connecter à une certaine heure tout les jours, à une page déterminée, remplir les champs d'identification et les valider puis commencer le transfert de données, puis finir par fermer la page, tout cela par le biais d'une appli Processing.

J'ai vu qu'il existait la librairie "processing.net".

J'ai fait une essai avec cet exemple :

Code:
import processing.net.*;
Client myClient;
int dataIn;
 
void setup() {
  size(200, 200);
  // Connect to the local machine at port 5204.
  // This example will not run if you haven't
  // previously started a server on this port
  myClient = new Client(this, "http://www.processing.org/reference/libraries/net/Client.html", 5204);
}
 
void draw() {
  if (myClient.available() > 0) {
    dataIn = myClient.read();
  }
  background(dataIn);
}

mais cela ne fonctionne pas, processing me renvoi ces erreurs :

Code:
java.net.UnknownHostException: http://www.processing.org/reference/libraries/net/Client.html
      at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
      at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:433)
      at java.net.Socket.connect(Socket.java:524)
      at java.net.Socket.connect(Socket.java:474)
      at java.net.Socket.<init>(Socket.java:371)
      at java.net.Socket.<init>(Socket.java:184)
      at processing.net.Client.<init>(Client.java:60)
      at sketch_sep26a.setup(sketch_sep26a.java:28)
      at processing.core.PApplet.handleDraw(PApplet.java:1383)
      at processing.core.PApplet.run(PApplet.java:1311)
      at java.lang.Thread.run(Thread.java:613)

Est ce que cela peut venir du N[ch730]de port qui ne serait pas le bon ?
Ou est ce que cette librairie n'est pas faite pour cela?
« Last Edit: September 26, 2009, 04:55:55 am by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Sophia-Antipolis (06)
Offline Offline
God Member
*****
Karma: 4
Posts: 618
Rejoignez le club !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

euh... oui le port est un problème, mais ce n'est pas le seul smiley

en fait le client ne fonctionne que s'il y a un serveur de l'autre côté sur le même port. Par "serveur", on entend un programme spécifique jouant le rôle de maitre dans la connexion client/serveur, et pas de "serveur web" en tant que machine hébergeant des fichiers et des programmes.

donc deux choix s'offrent à toi :

- tu as un serveur (machine) sur lequel tu peux faire fonctionner des programmes java : donc tu peux écrire un serveur (programme) également en Processing

- tu as un serveur (machine) qui ne fait que de l'hébergement : dans ce cas il faut chercher quel type de langage de programmation t'est autorisé. Ensuite il faudra écrire une page dynamique (exemple : php).

Ce serait moi, je connecterai mon Arduino directement sur ma box internet, avec un shield Ethernet qui envoit des données à Pachube (un serveur machine/programme indépendant), puis je fais une page sur mon propre serveur qui va chercher sur Pachube les différentes valeurs et les affiche.

Cela fait un circuit avec un serveur en + mais je n'utiliserais que des briques déjà existantes.

« Last Edit: September 27, 2009, 03:15:28 am by julien@pobot.org » Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3228
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok.... merci pour ces éclaircissements, je vais voir comment faire avec ces deux solutions.
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Pays de la betise
Offline Offline
Sr. Member
****
Karma: 4
Posts: 418
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir Jean-François.
Pour ma part, je fais un peu comme de Luj06.
Mon arduino se connecte au serveur apache via un shield ethernet.
Il fait une requete sur une page "toto.php" en passant des paramètres (?nom_de_variable;sa_valeur).
Dans toto.php, le script va mettre à jour la base de données MySQL en fonction des paramètres passés dans l'URL. C'est simple et direct. En réponse, arduino peut recevoir des données du serveur (confirmation de bonne exécution par ex)
Et ça marche, mais sans utiliser processing...  :-/
Logged

"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..."

projet domotique xPLDuino
IRC: freenode #xplduino

Sophia-Antipolis (06)
Offline Offline
God Member
*****
Karma: 4
Posts: 618
Rejoignez le club !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Tout à fait, c'est une très bonne solution. C'est comme ça que je ferais, en récupérant des exemples de php et de sql, car il est désormais simple et peu onéreux de trouver un hébergement php/mysql.

Mais je comprends aussi qu'on recherche une solution à base de fichiers. Donc voici un article décrivant comment écrire un petit programme php (appelé par l'Arduino ou par Processing) qui écrit directement dans un fichier. Il faut ensuite transformer la page html qui devait afficher les données en une page php (mais le contenu reste le même) en ajoutant à l'endroit où on veut afficher le résultat le code php de lecture du fichier précédemment créé.

Pour l'instant on est en pleins préparatifs de la Fête de la Science (novembre) donc je suis pas trop dispo pour commencer un nouveau projet développant ces propositions, mais si vous voulez le faire pour les prochains, vous pouvez publier un article sur notre site web et je vous aiderai pour le code et pour les tests (hébergement php).
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3228
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai justement un hébergement avec php/mysql, je ferai des essai et transmettrai mes expériences.
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3228
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Après quelques essais, j'arrive à lire les données HTML sur une page web (code source).

Code:

import processing.net.*;
Client myClient;
int dataIn;
 
void setup() {
  size(200, 200);


String lines[] = loadStrings("http://www.arduino.cc");
println("there are " + lines.length + " lines");
for (int i=0; i < lines.length; i++) {
  println(lines[i]);
}}

Voici un extrait ce que je lis dans la console :

Code:









there are 175 lines
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <title>Arduino - HomePage </title>
  <link rel='stylesheet' href='http://arduino.cc/en/pub/skins/arduino/arduino.css' type='text/css' />
  <meta name="verify-v1" content="TtxFIEJAB6zdJ509wLxjnapQzKAMNm9u0Wj4ho6wxIY=" />
</head>
<body>
<div id="page">
<!--PageHeaderFmt-->
<div id="pageheader">
  <div class="title"><a href="/">Arduino</a></div>
  <div class="search">
    <!-- SiteSearch Google -->
    <FORM method=GET action="http://www.google.com/search">
    <input type=hidden name=ie value=UTF-8>
    <input type=hidden name=oe value=UTF-8>
    <INPUT TYPE=text name=q size=25 maxlength=255 value="">
    <INPUT type=submit name=btnG VALUE="search">
    <input type=hidden name=domains value="http://www.arduino.cc/">
    <input type=hidden name=sitesearch value="http://www.arduino.cc/">
    </FORM>
    <!-- SiteSearch Google -->
  </div>
</div>
<!--/PageHeaderFmt-->
<!--PageLeftFmt-->
<div id="pagenav" style="text-align: right">
  <div style="float: left;">
  <p><a class='wikilink' href='http://arduino.cc/en/Main/Buy'>Buy</a>
|
<a class='wikilink' href='http://arduino.cc/en/Main/Software'>Download</a>
|
<a class='wikilink' href='http://arduino.cc/en/Guide/HomePage'>Getting Started</a>
|
<a class='wikilink' href='http://arduino.cc/en/Tutorial/HomePage'>Learning</a>
|
<a class='wikilink' href='http://arduino.cc/en/Reference/HomePage'>Reference</a>
|
<a class='wikilink' href='http://arduino.cc/en/Main/Hardware'>Hardware</a>
|
<a class='wikilink' href='http://arduino.cc/en/Main/FAQ'>FAQ</a>
</p>
<p class='vspace'></p>

  </div>
  <a class="urllink" href="http://www.arduino.cc/blog/" rel="nofollow">Blog &raquo;</a> |
  <a class="urllink" href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl" rel="nofollow">Forum &raquo;</a> |
  <a class="urllink" href="http://www.arduino.cc/playground/" rel="nofollow">Playground &raquo;</a>
</div>
<!--/PageLeftFmt-->
<div id="pagetext">
<!--PageText-->
<div id='wikitext'>
<table  width='100%' border='0' cellpadding='0' cellspacing='0'><tr><td  width='48%' valign='top'>
<p class='vspace'></p><div><img src='http://arduino.cc/en/uploads/Main/arduino316.jpg' alt='' title='' /></div>
<p class='vspace'></p><p><em>Photo by Nicholas Zambetti</em>
</p>
<p class='vspace'></p><p><br clear='all' />
</p>
<p class='vspace'></p><h3>Arduino News (<a class='wikilink' href='http://arduino.cc/en/Main/News'>archive</a>)</h3>
<p>2009.08.12 Arduino 0017 available from the <a class='wikilink' href='http://arduino.cc/en/Main/Software'>download page</a>.
</p>
<p class='vspace'></p><p>2009.06.17 <span  style='color: red;'> Can't run Arduino after updating Java on your Mac? </span> See the <a class='wikilink' href='http://arduino.cc/en/Guide/Troubleshooting#macupdate'>solution in the troubleshooting guide</a>.
</p>
<p class='vspace'></p><p>2009.06.04 Arduino 0016 for Windows, Mac OS X, and Linux available from the <a class='wikilink' href='http://arduino.cc/en/Main/Software'>software</a> page.
</p>
<p class='vspace'></p><p>2009.03.26 <a class='wikilink' href='http://arduino.cc/en/Main/ArduinoBoardMega'>Arduino Mega</a> released.  <a class='wikilink' href='http://arduino.cc/en/Main/Software'>Download</a> the new Arduino 0015 software to use it.
</p>
<p class='vspace'></p><p>2009.03.11 Arduino 0014 for Windows and Mac OS X available from the <a class='wikilink' href='http://arduino.cc/en/Main/Software'>software</a> page.  This is a minor bug fix release.
</p>
<p class='vspace'></p><p>2009.02.07 Uploaded a slightly updated version of <a class='urllink' href='http://arduino.googlecode.com/files/arduino-0013-linux2.tgz' rel='nofollow'>Arduino 0013 for Linux (32 bit)</a>.
</p>
<p class='vspace'></p><p>2009.02.06 Arduino 0013 is now available (<a class='wikilink' href='http://arduino.cc/en/Main/ReleaseNotes'>release notes</a>): <a class='urllink' href='http://arduino.googlecode.com/files/arduino-0013-win.zip' rel='nofollow'>Windows</a>,  <a class='urllink' href='http://arduino.googlecode.com/files/arduino-0013-mac.zip' rel='nofollow'>Mac OS X</a>, <a class='urllink' href='http://arduino.googlecode.com/files/arduino-0013-linux2.tgz' rel='nofollow'>Linux (32bit)</a>.
</p>
<p class='vspace'></p><p>2008.12.23 The Arduino software is now available for <a class='urllink' href='http://code.google.com/p/arduino/downloads/list' rel='nofollow'>download from Google Code</a>.  If you have any problems, please <a class='urllink' href='http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?board=swtrouble' rel='nofollow'>let us know</a>.
</p>
<p class='vspace'></p><p>2008.10.24 Arduino 0012 for Linux AMD 64bit available for download: <a class='urllink' href='http://www.arduino.cc/files/arduino-0012-linux-amd64.tgz' rel='nofollow'>arduino-0012-linux-amd64.tgz</a>
</p>
<p class='vspace'></p><p>2008.10.19 Announcing the <a class='wikilink' href='http://arduino.cc/en/Main/ArduinoBoardDuemilanove'>Arduino Duemilanove</a>, the latest and easiest-to-use version of the basic Arduino USB board.
</p>
<p class='vspace'></p><p>2008.10.12 Arduino 0012 for Linux 32bit available: <a class='urllink' href='http://www.arduino.cc/files/arduino-0012-linux.tgz' rel='nofollow'>arduino-0012-linux.tgz</a>
</p>
<p class='vspace'></p><p>2008.09.18 Arduino 0012 available (<a class='wikilink' href='http://arduino.cc/en/Main/ReleaseNotes'>release notes</a>): <a class='urllink' href='http://www.arduino.cc/files/arduino-0012-win.zip' rel='nofollow'>Windows</a>, <a class='urllink' href='http://www.arduino.cc/files/arduino-0012-mac.zip' rel='nofollow'>Mac OS X</a>.  Linux version coming soon.
</p>
<p class='vspace'></p><p><span  style='color: red;'>2008.09.16 New Arduino Server!!</span><span  style='color: red;'> Faster, Better, and already breaking the records ... read about it on our <a style='color: red' class='urllink' href='http://arduino.cc/blog/?p=74' rel='nofollow'>blog</a></span>
</p>
<p class='vspace'></p><p>2008.09.03 Arduino.cc on the move!! During the next week we will migrate all our online services to a new and better server, we apologize for eventual cuts while in the process.
</p>
<p class='vspace'></p><p>2008.07.11 New distributors: <a class='urllink' href='http://www.robotev.com/index.php?cPath=21' rel='nofollow'>Robotev</a> in Bulgaria and <a class='urllink' href='http://www.linuxcenter.ru/shop/embedded/' rel='nofollow'>Linux Center</a> in Russia.  Full list on the <a class='wikilink' href='http://arduino.cc/en/Main/Buy'>buy</a> page.
</p>
<p class='vspace'></p><p>2008.05.17 New Hardware: <a class='urllink' href='http://www.arduino.cc/blog/?p=39' rel='nofollow'>Arduino Nano</a> available for pre-order, by <a class='urllink' href='http://store.gravitech.us/' rel='nofollow'>Gravitech</a>.  Shipping June 16.
</p>
<p class='vspace'></p><p>2008.04.29 Check out: <a class='urllink' href='http://www.mecharoboshop.com/Products/physicalcomputing/arduino/' rel='nofollow'>Mecharoboshop</a>, our latest distributor in Japan
</p>
<p class='vspace'></p><p>2008.04.14 <a class='urllink' href='http://www.plughouse.co.kr' rel='nofollow'>Plughouse</a> becomes the first Arduino distributor in South Korea
</p>
<p class='vspace'></p><p>2008.03.28 Arduino 0011 now available (<a class='wikilink' href='http://arduino.cc/en/Main/ReleaseNotes'>release notes</a>): <a class='urllink' href='http://www.arduino.cc/files/arduino-0011-mac.zip' rel='nofollow'>Mac OS X</a>, <a class='urllink' href='http://www.arduino.cc/files/arduino-0011-win.zip' rel='nofollow'>Windows</a>, <a class='urllink' href='http://www.arduino.cc/files/arduino-0011-linux.tgz' rel='nofollow'>Linux</a>.
</p>
<p class='vspace'></p><p><br clear='all' />
</p>
<p class='vspace'></p><h3>Workshops (<a class='wikilink' href='http://arduino.cc/en/Main/Workshops'>archive</a>)</h3>
<p>28 and 29 March, 2009 <a class='urllink' href='http://www.tinker.it/it/now/2009/03/10/workshop-arduino-a-milano-28-e-29-marzo/' rel='nofollow'>Workshop su Arduino</a> a Milano, Italia
</p>
<p class='vspace'></p><p>7 March, 2009 <a class='urllink' href='http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1234645199' rel='nofollow'>Flash and Physical Computing</a> in Boston, US
</p>
<p class='vspace'></p><p>5-6 March, 2009 <a class='urllink' href='http://blushingboy.org/content/16kb-sound' rel='nofollow'>16KB of Sound</a> by <span class='wikiword'>BlushingBoy</span> at Arteleku, Spain
</p>
<p class='vspace'></p><p>22 February, 2009 <a class='urllink' href='http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1234325654' rel='nofollow'>Arduino class</a> at the <span class='wikiword'>TechShop</span>, San Francisco, US
</p>
<p class='vspace'></p><p>21 February, 2009 <a class='urllink' href='http://thehacktory.org/classes/arduino-beginner-microcontroller-amp-electronics-class' rel='nofollow'>Arduino starting class</a> at the Hacktory, Philly, US
(...)

 smiley C'est cool...
« Last Edit: October 07, 2009, 01:26:53 pm by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3228
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Je lis des données sur un site de cette façon :

Code:
byte lines[] = loadBytes("http://www.lurloujelismesdonnees");

J'ai un petit problème, si le serveur est indisponible durant une lecture, ça me plante mon sketch.

J'aimerais faire une validation de la connection qui me permettait ensuite de continuer le traitement des données entrantes si il y en a et qui me mettrait en attente lorsque rien ne rentre.

Je pensais faire un code genre :
Code:
if(loadBytes()<0){}

Mais ça ne fonctionne pas, si quelqu'un pouvait m'indiquer une piste pour faire ça
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3228
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai fait ce code pour controler ma connection, ça fonctionne plus longtemps que si ce controle n'était pas là, mais ça plante au bout d'un moment et jamais après le même nombre de demande url.
Code:
for(int i=0;i<Heure;i++){
            if(loadBytes("http://www.LURLOUJELISMESDONNEES+i")== null){
              println(loadBytes("http://www.LURLOUJELISMESDONNEES+i"));
              delay(5000);
            }
            else {
               byte lines[] = loadBytes("http://www.LURLOUJELISMESDONNEES+i");

              println("there are " + lines.length + " lines");

...


Voici le message d'erreur qui m'est renvoyé:

Code:
java.net.ConnectException: Connection refused
      at java.net.PlainSocketImpl.socketConnect(Native Method)
      at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
      at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
      at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
      at java.net.Socket.connect(Socket.java:524)
      at java.net.Socket.connect(Socket.java:474)
      at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
      at sun.net.www.http.HttpClient.openServer(HttpClient.java:388)
      at sun.net.www.http.HttpClient.openServer(HttpClient.java:523)
      at sun.net.www.http.HttpClient.<init>(HttpClient.java:231)
      at sun.net.www.http.HttpClient.New(HttpClient.java:304)
      at sun.net.www.http.HttpClient.New(HttpClient.java:321)
      at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:839)
      at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:791)
      at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:716)
      at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:960)
      at java.net.URL.openStream(URL.java:1007)
      at processing.core.PApplet.createInputRaw(PApplet.java:4001)
      at processing.core.PApplet.createInput(PApplet.java:3970)
      at processing.core.PApplet.loadBytes(PApplet.java:4144)
      at scann.draw(scann.java:133)
      at processing.core.PApplet.handleDraw(PApplet.java:1425)
      at processing.core.PApplet.run(PApplet.java:1327)
      at java.lang.Thread.run(Thread.java:613)
The file "http://www.LURLOUJELISMESDONNEES" is missing or inaccessible, make sure the URL is valid or that the file has been added to your sketch and is readable.
Exception in thread "Animation Thread" java.lang.NullPointerException
      at scann.draw(scann.java:135)
      at processing.core.PApplet.handleDraw(PApplet.java:1425)
      at processing.core.PApplet.run(PApplet.java:1327)
      at java.lang.Thread.run(Thread.java:613)

Et cette ligne est soulignée avec un "NullPointerException" :

Code:
println("there are " + lines.length + " lines");

Comment est ce que je peux éviter ce plantage ?
« Last Edit: October 14, 2009, 02:15:57 am by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

France
Offline Offline
Faraday Member
**
Karma: 36
Posts: 3435
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu pourrais très bien te monter le serveur sur ta machine en local (donc en principe toujours disponible) au lieu d'aller chercher à l'extérieur sur internet.

Il y a des installations simple est complète sous windows avec Apache, PHP et MySQL
EasyPHP http://www.easyphp.org/
ZazouMiniWebServerhttp://www.zmws.com/
Logged

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3228
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ce qui est intéressant en allant sur des serveurs "extérieurs" c'est de pouvoir obtenir des infos que l'on arrive pas à obtenir en local.... comme des données météo par exemple.

Je pense avoir trouver le problème qui me provoquait ce plantage, mais pour l'instant je teste et ça n'a jamais tenu aussi longtemps  smiley
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3228
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

En utilisant la fonction createReader() le contrôle de la connection devrait être plus fiable.... et plus rapide :

Code:
      

BufferedReader reader;
String line;
 
void setup() {
  // Open the file from the createWriter() example
 
}
 
void draw() {
   reader = createReader("MonUrl....");

  if (reader == null) {
    // Nothing left in the file, stop reading.
  print(reader);
  delay(1000);
  } else {
      try {
    line = reader.readLine();
  } catch (IOException e) {
    e.printStackTrace();
    reader = null;
  }
    print (line);
    delay(500);
  }
}
          
         //  byte lines[] = loadBytes("http://www.monopolycitystreets.com/buy/getstreetstobuy?lat=557000000&lng=376000000");
              

Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3228
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Je reprends le fil de ce sujet.

Je suis maintenant sur un projet qui utilise les mêmes fonction décrites plus haut et j'ai toujours ce problème lors d'une connection qui n'aboutit pas, cette ligne me fige le processus et je doit tout relancer :

Code:
line = reader.readLine();

Est ce que quelqu'un saurait comment mettre une sorte de TimeOut en rapport avec cette ligne ?
« Last Edit: November 24, 2010, 05:54:11 am by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Geneva
Offline Offline
Faraday Member
**
Karma: 30
Posts: 3228
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La solution est là :

http://www.devdaily.com/blog/post/java/how-open-url-read-contents-httpurl-connection-java

J'ai pas eu à faire grand chose pour que ça tourne sur Processing :

Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

/**
 *
 * A complete Java class that shows how to open a URL, then read data (text) from that URL,
 * HttpURLConnection class (in combination with an InputStreamReader and BufferedReader).
 *
 * @author alvin alexander, devdaily.com.
 *
 */
void draw(){
    try
    {
      String myUrl = "http://lesiteoujenvoimesrequetes.com";
      // if your url can contain weird characters you will want to
      // encode it here, something like this:
      // myUrl = URLEncoder.encode(myUrl, "UTF-8");

      String results = doHttpUrlConnectionAction(myUrl);
      System.out.println(results);
    }
    catch (Exception e)
    {
      // deal with the exception in your "controller"
    }
  }

  /**
   * Returns the output from the given URL.
   *
   * I tried to hide some of the ugliness of the exception-handling
   * in this method, and just return a high level Exception from here.
   * Modify this behavior as desired.
   *
   * @param desiredUrl
   * @return
   * @throws Exception
   */
  private String doHttpUrlConnectionAction(String desiredUrl)
  throws Exception
  {
    URL url = null;
    BufferedReader reader = null;
    StringBuilder stringBuilder;

    try
    {
      // create the HttpURLConnection
      url = new URL(desiredUrl);
      HttpURLConnection connection = (HttpURLConnection) url.openConnection();
      
      // just want to do an HTTP GET here
      connection.setRequestMethod("GET");
      
      // uncomment this if you want to write output to this url
      //connection.setDoOutput(true);
      
      // give it 15 seconds to respond
      connection.setReadTimeout(5*1000);
      connection.connect();

      // read the output from the server
      reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
      stringBuilder = new StringBuilder();

      String line = null;
      while ((line = reader.readLine()) != null)
      {
        stringBuilder.append(line + "\n");
      }
      return stringBuilder.toString();
    }
    catch (Exception e)
    {
      //e.printStackTrace();
            println("url not found");
      throw e;

    }
    finally
    {
      // close the reader; this can throw an exception too, so
      // wrap it in another try/catch block.
      if (reader != null)
      {
        try
        {
          reader.close();
        }
        catch (IOException ioe)
        {
          ioe.printStackTrace();
          
        }
      }
    }
  }


et ça fonctionne du tonnerre  smiley-grin
« Last Edit: November 24, 2010, 05:15:48 pm by jfs » Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

0
Offline Offline
Full Member
***
Karma: 0
Posts: 104
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

désolé de remonter un peu ce sujet, mais tu script final permet de lire le code source d'un site internet, et ton sujet parle d'envoyer des données? Je suis intéressé par les 2 donc ça me plait smiley
Y a t il un moyen d'utiliser processing pour éditer une sorte de blog (je dis blog car au moins on a une adresse fixe et gratuitement/simplement).
Je suppose que ça doit énormément dépendre du site/blog concerné!
Enfin voilà je ne sais même pas si je cherche dans le bon sens, le but serai d'envoyer des données d'un sketch processing à un autre, sans avoir recours à des adressages IP dynamique et autres joyeusetés payantes et/ou en dehors de mes compétences.
Logged

J'apprends tous les jours!

Pages: [1] 2   Go Up
Jump to: