Bonjour, je suis actuellement en terminal S SI et ait donc un PPE a faire, moi et mes camarade avons choisie de faire un store pilotable depuis une application mobile.
Nous avons choisie d’utilisée une carte Arduino, celle ci doit:
-
Récupéré un flux RSS dans lequel sera inscrit “ouvert” ou “fermé”.
-
Si l’information est “ouvert” on ouvre le store dans le cas contraire on le ferme
le store possède des capteurs pour connaitre sa position “ouvert” “fermé” ou “intermédiaire”, les capteur renvoi cette information a l’Arduino.
- L’Arduino reçoit les info des capteurs et envoie dans la base de donné du site l’état du volet “ouvert” “fermé” ou “intermédiaire”
Aucun de nous ne connait la programmation C/C++ malheureusement, si l’un de vous pouvez m’aider a réalisé ce programme ça me permettrai de faire un démonstration pendant la soutenance (on possède la carte.
J’ai trouver déjà ce programme sur internet pour récupéré le flux RSS mais le compilateur Arduino trouve plusieurs erreurs :
le programme Code C :
// déclarer l'objet qui contiendra les données RSS
Channel channel;
void setup() {
// lors de la création de la chaine, on passe l'adresse du flux RSS
channel = new Channel(this, "http://www.assemblee-nationale.fr/rss/rss_presse.xml");
channel.on_screen();
}
class Channel {
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;
try {
document = new XMLElement(app, s);
}
catch (Exception e) {
println(" erreur ):" + e);
return;
}
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();
}
if (enfant.getName().equals("description")) {
// chercher le descriptif
title = enfant.getContent();
}
// 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 on_screen() {
// le debugger
// s'il n'y a pas eu de données
if (0 == cris.length) {
println("Je n'ai pas pu me connecter au flux rss");
return;
}
// sinon demander à chaque donner de s'afficher
for(int i=0; i < cris.length; i++) {
cris[i].read();
}
}
class Cri {
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;
}
// dessiner cette dépêche
void read() {
println(titre);
println(date);
println(descriptif);
println("------------------------------------------------------");
}
}
}
les erreurs :
sketch_apr03a:1: error: ‘Channel’ does not name a type
sketch_apr03a.cpp: In function ‘void setup()’:
sketch_apr03a:6: error: ‘channel’ was not declared in this scope
sketch_apr03a:6: error: expected type-specifier before ‘Channel’
sketch_apr03a:6: error: expected ;' before 'Channel' sketch_apr03a.cpp: At global scope: sketch_apr03a:14: error: ISO C++ forbids declaration of 'Cri' with no type sketch_apr03a:14: error: expected ';' before 'cris' sketch_apr03a:16: error: expected
)’ before ‘app’
sketch_apr03a:135: error: expected `}’ at end of input
sketch_apr03a:135: error: expected unqualified-id at end of input
Si quelqu’un pouvait m’aider a debuger ce programme et faire le second pour récupérer les informations des capteurs.
Si vous voulez on peut vous achetez le programme 5-10e je sait pas combien ça peut valoir.
En tout cas Merci