Bonjour, j'ai besoin d'un petit coup de main pour convertir une variable.
je recois par radio un array contenant un string, je peux l'afficher avec =
#include <VirtualWire.h> // inclusion de la librairie VirtualWire
//pin de rx = 11 par default
uint8_t buf[VW_MAX_MESSAGE_LEN]; // Tableau qui va contenir le message recu (de taille maximum VW_MAX_MESSAGE_LEN)
uint8_t buflen = VW_MAX_MESSAGE_LEN; // Taille maximum de notre tableau
void setup()
{
Serial.begin(9600);
lcd.LCD_init(); // creates instance of LCD
lcd.LCD_write_string(0,0,"LCD OK",0);
delay(2000);
lcd.LCD_clear(); // blanks the display
pinMode(7, OUTPUT);
vw_set_ptt_inverted(true);//necessaire au reto ecl du lcd shield
vw_setup(2000); // initialisation de la librairie VirtualWire à 2000 bauds (note: je n'utilise pas la broche PTT)
vw_rx_start(); // Activation de la partie réception de la librairie VirtualWire
if (vw_get_message(buf, &buflen)) // On copie le message, qu'il soit corrompu ou non
{
lcd.LCD_clear();
int i;
lcd.LCD_write_string(0,0,"RX=>",0);
lcd.LCD_set_XY(0,1);
for (i = 0; i < buflen; i++) // Si il n'est pas corrompu on l'affiche via Serial
{
lcd.LCD_write_char(buf*,0);*
_ text= buf*;_
_ Serial.print (text);_
_ }_
_ Serial.println ("");_
affiche_text();
_ }*_
} void affiche_text() { *Serial.println (text); * }[/quote] mais apres je n'arrive pas a "sauver" cette chaine pour la manipuler avec "substring()" ou "startsWith()" Je dois me planter quelque part, mais ou ? La fonction affiche_text() ne m'affiche que le dernier char de l'array! Or c'est ici que je voudrais manipuer ma chaine =(
Merci a toi pour ton aide.
C'est vrai je sais pas ce qu'il c'est passé! j'ai poster un code erroné!
après correction =
for (i = 0; i < buflen; i++) // Si il n'est pas corrompu on l'affiche via Serial
{
lcd.LCD_write_char(buf[i],0);
text= buf[i];
Serial.print (text);
}
Serial.println ("");
affiche_text();
la console affiche bien "text" mais pas la fonction affiche_text(), qui m'affiche le dernier élément du tableau
Oui je comprend d'ou vient mon erreur, mais je ne sais pas comment la corriger
Comment faire pour que ma variable text soit = à l'assemblage des char contenu dans buf ?
Problème résolu !
A force ...
il faut incrémenter la variable text avec le contenu de buf =>
if (vw_get_message(buf, &buflen)) // On copie le message, qu'il soit corrompu ou non
{
lcd.LCD_clear();
int i;
lcd.LCD_write_string(0,0,"RX=>",0);
lcd.LCD_set_XY(0,1);
text = "";
for (i = 0; i < buflen; i++) // Si il n'est pas corrompu on l'affiche via Serial
{
lcd.LCD_write_char(buf[i],0);
text += buf[i];
}
}
et là ma variable text est un string pur et dur auquel je peux appliquer un traitement ...
Merci a tous pour votre aide
excuse pour la mauvaise utilisation... j’apprends tout seul, je suis électricien...
Tu as bien raison et c'est la meilleur façon d'apprendre! Ce qui me manque c'est le temps...(boulot, famille...)
t’inquiète pas ce n'étais point un reproche.. mais tu apprend et tu essai par toi même .. ^^.. d'autre n'essai même pas .. et veulent tout de suite la réponse sans savoir pourquoi sa marche.. ^^.. je pense que l'on ne peux pas évoluer comme sa ...
alors courage par la suite.. ^^.. n'hésite pas a reposer des questions..
Merci a toi, je ne l'ai pas pris comme un reproche
Et quand je dis "j’apprends tout seul" c'est une expression car en fait c'est grâce aux tutos et au forum...
Merci a tous ceux qui font vivre la communauté!
Au fais quel étais le terme approprier pour la construction de ma variable text ? (pour ne pas faire 2 * la même erreur)