Go Down

Topic: rss con arduino (Read 449 times) previous topic - next topic

bichtrack2

May 31, 2010, 12:06 am Last Edit: May 31, 2010, 12:23 am by bichtrack Reason: 1
hola
estoy o soy (no me recurdo como se dice), frances y me pregunta como  recuperar con arduino este codigo processing que captura el rss para accionar una led . Por ejemplo solo recuperar el item...
Muchas gracias para ayudarme

Code: [Select]


//  RSS
Channel channel;
boolean DEBUG = true;
void setup() {
size(500,500);
  // l'adresse du flux RSS
 //channel = new Channel(this, "http://www.assemblee-nationale.fr/rss/rss_cri.xml");
}
void draw() {
   background(255);
 if (DEBUG) channel.draw();
 }




class Channel {

 PFont affichage;

 String title, description;
 Cri[] cris = new Cri[0]; // créer une liste de Cri vide (chacun avec titre,date,descriptif)

 Channel(PApplet app, String s) {

   XMLElement document;

   affichage = createFont("dialog",9);

   try {
     document = new XMLElement(app, s);
   }
   catch (Exception e) {
     println("Une erreur + e);  
     return;
   }

   // faire le parano
   if (!document.getStringAttribute("version").equals("2.0")) return;
   if (0 == document.getChildCount() && !document.getChild(0).getName().equals("channel")) return;

   XMLElement channel = document.getChild(0);

   int nombre_items = channel.getChildCount();

   for (int i = 0; i < nombre_items; i++) {

     XMLElement enfant = channel.getChild(i);

     if (enfant.getName().equals("title")) {
       // chercher le titre (son contenu)
       title = enfant.getContent();
       // aller au prochain enfant dans la boucle for()
       continue;
     }

     if (enfant.getName().equals("description")) {
       // chercher le descriptif
       title = enfant.getContent();
       // aller au prochain enfant dans la boucle for()
       continue;
     }

     // on a trouvé un <item> (ce qui nous intéresse)
     if (enfant.getName().equals("item")) {

       String titre;
       String date;
       String descriptif;

       // créer des variables temporaires pour les données qui nous intéressent
       try {
         titre = enfant.getChild("title").getContent();
       }
       catch (Exception e) {
         titre = "";
         println(e);
       }

       try {
         date = enfant.getChild("pubDate").getContent();
       }
       catch (Exception e) {
         date = "";
         println(e);
       }

       try {
         descriptif = enfant.getChild("description").getContent();
       }
       catch (Exception e) {
         descriptif = "";
         println(e);
       }

       cris = (Cri[])append( cris, new Cri(titre, date, descriptif) );
     }

   }

 }

 void draw() {

   // le debugger
   textFont(affichage);
   textAlign(CENTER,CENTER);

   // s'il n'y a pas eu de données
   if (0 == cris.length) {
     fill(0);
     text("Je n'ai pas pu me connecter au flux rss", random(18,20), random(18,20));
     return;
   }  

   // sinon demander à chaque donner de s'afficher
   for(int i=0; i < cris.length; i++) {
     cris[i].draw();
   }

 }

 // CRI = Compte Rendu Intégral
 class Cri {

   float x,y;
   String titre, date, descriptif;

   // le constructeur de chaque CRI
   Cri(String _titre, String _date, String _descriptif) {
     titre = _titre;
     date = _date;
     if (null == _descriptif) descriptif = "";
     else descriptif = _descriptif;
     x = random(width);
     y = random(height);
   }

   // dessiner cette dépêche
   void draw() {

     x += random(-1,1);
     y += random(-1,1);

     fill(255,0,0);
     text(titre, x, y);
     fill(0,255,0);
     text(date, x, y+10);
     fill(0,0,255);
     text(descriptif, x, y+20);
   }

 }

}




Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy