Pages: [1]   Go Down
Author Topic: string et substring  (Read 659 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous,
Je reçois par le port série une chaine du style: abc,def
Comment affecter à une variable 'freq' les caractères abc et à une autre variable 'dc' les caractères def?
J'ai injecté ça, sans trop de succès:

String carac_lus="";
int nb_carac=carac_lus.length();
int pos_sep;
String freq;
String dc;

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  while (Serial.available()>0)
  {
    char carac=Serial.read();
    carac_lus += carac;
  }
  if (carac_lus.length() != nb_carac)
  {
    pos_sep = carac_lus.indexOf(',');
    freq = carac_lus.substring(1, pos_sep);
    dc = carac_lus.substring(pos_sep, nb_carac);
    Serial.print("freq: ");
    Serial.print(freq);
    Serial.print(" - dc: ");
    Serial.println(dc);
  }  
  nb_carac=carac_lus.length();
  carac_lus="";
}

Merci de votre aide.
V.
Logged

Pays de la betise
Offline Offline
Sr. Member
****
Karma: 4
Posts: 419
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

salut,

tu peux récupérer tes données 'abc,def' dans un buffer, puis utiliser une fonction du type sscanf:

sscanf(carac_lus, "%[^','],%s", &freq, &dc);

mais il te faut passer par des tableaux de char plutôt que le format String...

Gromain
Logged

"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..."

projet domotique xPLDuino
IRC: freenode #xplduino

0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci Gromain.
La réponse est là: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1286806945/0
Doublon efficace!
Logged

Pages: [1]   Go Up
Jump to: