Pages: [1]   Go Down
Author Topic: rss con arduino  (Read 374 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 25
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:

//  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);
    }

  }

}



« Last Edit: May 30, 2010, 05:23:01 pm by bichtrack » Logged

Pages: [1]   Go Up
Jump to: