Go Down

Topic: rss con arduino (Read 387 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