Go Down

Topic: Découper en plusieurs morceau une ligne de chiffres reçue par la carte. (Read 135 times) previous topic - next topic

Vokun

Bonjour, j'ai un petit problème concernant mon programme arduino.
J'ai développé une application qui me permet d'envoyer plusieurs valeurs, qui sont reçue sous la forme de trois valeurs, en ligne, séparé par des points (ex: 10.5.5).
Mon problème est que je voudrais pouvoir traiter les valeurs une par une et non pas traiter cette ligne comme une valeur unique.
 J'ai trouvé une fonction "strtok" je ne sais pas si c'est la solution la plus approprié à mon problème.

P.S: Je suis débutant dans le domaine de l'arduino

kamill

Bonjour,

Oui, strtok() suivi de atoi() est la solution à ton problème.

J-M-L

vos valeurs sont envoyées et reçues comment ? par le port Série?
si oui vous pouvez simplement les lire en disant que le séparateur c'est un point ou un retour à la ligne et lire nombre par nombre plutôt que d'avoir à lire toute une ligne et ensuite devoir décoder

mais bon, sinon oui strtok peut le faire par exemple
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

lesept

Avec strtok, tu obtiendras encore des char : exemple adapté de cette page
Code: [Select]
void setup() {
  Serial.begin(115200);

  char str[7] = "10.5.5";
  const char s[2] = ".";
  char *token;

  /* get the first token */
  token = strtok(str, s);

  /* walk through other tokens */
  while ( token != NULL ) {
    Serial.println(token);
    token = strtok(NULL, s);
  }
}

void loop() {}

fournit sur la console
Quote
10
5
5
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

Go Up