Erreur avec la commande strtok

Bonjour tout le monde,

Je travail sur un petit projet, qui nécessite que je récupère depuis mon Arduino des données venant d'un capteur, le problème c'est que j'ai une liste de données et moi je souhaite juste en récupérer deux.

J'ai donc décider d'utiliser un délimiteur pour découper les données que je reçois, le bémol c'est que je ne sais pas trop comment utiliser "strtok", car quand je l'utilise vu que mes données sont de "type string" et qu'ils doivent être transformées en "type char". Quand je compile mon programme, j'ai ceci comme erreur:

expected primary-expression before 'char'

Voici mon programme:

#include <Wire.h>

//float X_Y; // déclaration de la variable X_Y
String cmd;
String Ligne_Bulle;
float X;
float Y;

void setup() {

Serial.begin(9600); // ouvre le port USB, définit le débit de données sur 9 600 bauds
Serial1.begin(9600); // ouvre le port série, définit le débit de données sur 9 600 bauds
delay(100);

}

void loop()

{
while(1);
//while(Serial1.available);
cmd="";
cmd=Serial1.readString(); //Lit la commande envoyer sur le Serial 1
Serial.println(cmd);
Serial.println(cmd.charAt(1));
if (cmd.charAt(0)== 'E'&& cmd.charAt(1)=='e') //Vérifie si les trois premier caractère correspondant
{
X = strtok(char*cmd);
delay(100);
Serial.print('Ee reconnu'); // Recupérer des X et Y de la liste des données affiché précedemment

}

}

Pouvez-vous m'aider?

Merci d'avance

  • D'abord, tu postes en français dans une partie du forum où tout le monde parle anglais : utilise la partie française du forum pour plus de visibilité.
  • Ensuite, lis les messages épinglés qui expliquent beaucoup de choses, y compris comment formatter ton message. Un code est bien plus lisible s'il est est posté entre balises CODE (le bouton </>)
  • Après, la classe String (S majuscule) dispose d'une méthode pour transformer le contenu en c-string (char array) : myString.c_str()
  • Enfin, je ne suis pas sûr que tu doives utilise strtok qui sert à séparer un bout de texte en mots. Tu veux extraire une valeur float de ta chaîne de caractères, c'est plutôt stof qu'il te faut
    Je ne peux guère plus t'aider, car il faudrait en savoir plus sur le contenu précis de ta chaîne.

En attendant, demande au modérateur de déplacer ton message dans la section french du forum (bouton 'report to moderator') ou passe en anglais si tu veux rester ici...

Merci pour ta réponse, j'ai demander à déplacer mon post et je vais lire les remarque que tu m'as faite.