[Programmation] Arduino créer un classe String avec valeur Hexadécimal
Répondre à la discussion
Affichage des résultats 1 à 22 sur 22

Arduino créer un classe String avec valeur Hexadécimal



  1. #1
    Overlord54

    Arduino créer un classe String avec valeur Hexadécimal


    ------

    Bonjour, je souhaiterai créer un String et y introduire une valeur hexadécimale comme le montre le code ci dessous, cela ne fonctionne pas sur Arduino.

    Code:
    String value = 0xf62c35a;
    Merci d'avance !

    -----

  2. #2
    Chtulhu

    Re : Arduino créer un classe String avec valeur Hexadécimal

    Bonjour,

    vous pouvez essayer cela:
    Code:
    String value = "0xf62c35a";

  3. #3
    jiherve

    Re : Arduino créer un classe String avec valeur Hexadécimal

    Bonjour,
    Je ne suis pas sur que cela soit ce qu'il recherche mais qui sait ?
    car c'est vraiment trivial, wait and see
    JR
    l'électronique c'est pas du vaudou!

  4. #4
    Overlord54

    Re : Arduino créer un classe String avec valeur Hexadécimal

    Merci en utilisant les apostrophes je n'ai plus de message d'erreur à propos de ma syntaxe dans Arduino mais je ne sais pas si cela fonctionne vraiment, pour être plus clair j'ai définis une variable comme ceci :

    Code:
     String premiereValue = " ";
    // Au bout d'un moment dans mon programme cette variable (premiereValue) obtient un code Hexadécimal qui vaut : fd76be29

    Maintenant je voudrais faire un test avec un IF, si la variable premiereValue est égale à une autre variable deuxiemeValue alors allume la LED verte sinon allume la LED rouge...

    Code:
     
    if (premiereValue == deuxiemeValue)
    {
       digitalWrite( pinLedVerte, HIGH );
    }
    else 
    {
      digitalWrite( pinLedRouge, HIGH );
    }
    C'est pour cela que je veux crée une variable en faisant :

    Code:
    String deuxiemeValue = "0xfd76be29";

  5. A voir en vidéo sur Futura
  6. #5
    Chtulhu

    Re : Arduino créer un classe String avec valeur Hexadécimal

    Vous ne pouvez pas utiliser == avec 2 strings pour ce que vous voulez faire.
    Il faut utiliser la fonction strcmp().
    La fonction retournera 0 si les 2 chaînes sont égales.

  7. #6
    Chtulhu

    Re : Arduino créer un classe String avec valeur Hexadécimal

    A mon avis le mieux est de comparer des valeurs, puis de mettre au format string si on a besoin d'envoyer sur une comm.

  8. #7
    Overlord54

    Re : Arduino créer un classe String avec valeur Hexadécimal

    J'ai procédé de la manière suivante :

    Code:
     
    int comparaison = strcmp(premiereValue,"deuxiemeValue");
    
    if (comparaison ==0)
    {
      digitalWrite(pinLedVerte, HIGH);
      delay(1000);
    }
    else
    {
      digitalWrite(pinLedRouge,HIGH);
      delay(1000);
    }
    Mais j'ai ce problème là : cannot convert 'String' to 'const char*' for argument '1' to 'int strcmp(const char*, const char*)'

  9. #8
    Overlord54

    Re : Arduino créer un classe String avec valeur Hexadécimal

    J'ai trouvé la solution à mon problème de la manière suivante

    Code:
    String deuxiemeValue ; // Je déclare la variable deuxiemeValue de cette manière
    
    deuxiemeValue = String("fd76be29"); //deuxiemeValue prend la valeur de fd76be29 sous format string
    
    if (premiereValue == deuxiemeValue) // condition
    {
    
    }
    else
    {
    
    }
    Merci pour votre aide !

  10. #9
    Chtulhu

    Re : Arduino créer un classe String avec valeur Hexadécimal

    Il faut que vous regardiez de plus près la fonction strcmp() elle ne s'utilise pas comme ça (votre post#7).
    Et nous dire ce que vous comptez faire au juste.
    Dernière modification par Chtulhu ; 21/05/2018 à 14h27.

  11. #10
    albanxiii
    Modérateur

    Re : Arduino créer un classe String avec valeur Hexadécimal

    Bonjour,

    Citation Envoyé par Overlord54 Voir le message
    J'ai trouvé la solution à mon problème de la manière suivante
    Si la comparaison sur fait sur les valeurs, oui, encore que ça me semble bien étrange (cf. strcmp qui est faite pour comparer des chaînes de caractères !). Si elle se fait sur les adresses, non.
    Comme le langage arduino est un truc qui n'est ni du C, ni du C++, je ne sais pas répondre à cette question implicite.
    Not only is it not right, it's not even wrong!

  12. #11
    Seb.26

    Re : Arduino créer un classe String avec valeur Hexadécimal

    Normalement == est équivalent à String::compare() ... donc ça marche ...

    Reste à voir comment tu formates chaque String, "0xfd76be29" pas égal à "fd76be29", et "fd76be29" pas égal à "FD76BE29" ...

    Strcmp c'est du C ... donc pour les char* ... ce que ne sont pas les "String" ... donc erreur à la compil.
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  13. #12
    Seb.26

    Re : Arduino créer un classe String avec valeur Hexadécimal

    Citation Envoyé par albanxiii Voir le message
    Comme le langage arduino est un truc qui n'est ni du C, ni du C++
    Ah ... par exemple ?
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  14. #13
    Chtulhu

    Re : Arduino créer un classe String avec valeur Hexadécimal

    Il suffit de lire ce qu'en dit le site arduino:

    Nom : arduino.PNG
Affichages : 492
Taille : 12,3 Ko

    "est basé sur" et non pas "est du...".
    En effet ce n'est ni du C ni du C++ conventionnel...
    On en a suffisamment parlé ici.
    On appelle ça un métalangage:
    https://www.larousse.fr/dictionnaire...alangage/50828

  15. #14
    Seb.26

    Re : Arduino créer un classe String avec valeur Hexadécimal

    Citation Envoyé par Chtulhu Voir le message
    Il suffit de lire ce qu'en dit le site arduino
    Tout à fait : https://www.arduino.cc/en/Hacking/BuildProcess

    Pour moi l'IDE concatène les .ino, ajoute les proto manquants si besoin et compile le tout avec AVR-GCC ... mais je peux me tromper (et pour éviter un gros-troll, je vais chercher un peu par curiosité )
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  16. #15
    freepicbasic

    Re : Arduino créer un classe String avec valeur Hexadécimal

    On appelle ça un métalangage:
    Faux

    Arduino ce n'est pas du Cobol , du Pascal , du Fortran , du Lisp , du Basic , du Batch , etc ... Que sais je encore ?

    Arduino c'est un IDE qui intègre des librairies spécifiques Arduino , c'est du C et C++, compilateur GCC open source.
    Et tout ces headers (.h du C) et sources soit disant appelés métalangage sont dans les répertoires, il suffit d'être un peu curieux.

    Inutile de le faire passer pour un truc d'extra terrestre, c'est que du classique !

    Si on intègre une simple librairie de base de données ou une librairie graphique 3D , ça devient un métalangage ?
    Si vous pensez que oui ?
    Ok ça devient juste de la philosophie.

    Et dans ce cas le fait de mettre un module SD avec sa lib, Arduino sera devenu le métalangage SDuino LOL.
    A+, pat

  17. #16
    Chtulhu

    Re : Arduino créer un classe String avec valeur Hexadécimal

    C'est votre point de vue.
    voir page 5 ici:
    http://cimbcc.org/wp-content/uploads...on-JPresne.pdf

    Vous ne savez visiblement pas ce qu'est un métalangage, c'est pas grave.
    Je ne vous interdit pas de l'utiliser, ni de penser ce que vous voulez, juste si vous pouviez nous épargner vos poussées de tension inutiles...
    Merci.

  18. #17
    pm42

    Re : Arduino créer un classe String avec valeur Hexadécimal

    Citation Envoyé par Chtulhu Voir le message
    C'est votre point de vue.
    voir page 5 ici:
    http://cimbcc.org/wp-content/uploads...on-JPresne.pdf
    Vous ne savez visiblement pas ce qu'est un métalangage, c'est pas grave.
    Ce n'est en effet pas un métalangage mais un langage (ou un IDE suivant comment on veut voir les choses). La phrase disant que c'est le cas ne se trouve qu'en français, pas en anglais. Elle est d'ailleurs plus nuancée en disant "une sorte de "méta-langage"" et en mettant des guillemets.

    Mais même ainsi, c'est faux : un méta-langage permet de manipuler, définir d'autres langages ce qui n'est pas le cas ici : https://fr.wikipedia.org/wiki/Métalangage
    Les exemples donnés sont significatifs : expressions rationnels, forme de Backus-Naur... On est loin du C/C++ adapté à la programmation pour micro-controlleur.

    "concatèner les .ino, ajouter les proto manquants si besoin et compiler le tout avec AVR-GCC " est juste ajouter une étape à la compilation, pas différente du pré-processing et c'est aussi ce que font beaucoup d'environnements : XCode, QtCreator, les VisualStudio...
    On ne les appelle pas méta-langages non plus.

  19. #18
    Chtulhu

    Re : Arduino créer un classe String avec valeur Hexadécimal

    L'IDE est un programme regroupant un ensemble d'outils pour le développement de logiciels, on ne parle pas de la même chose...
    Un langage a une syntaxe qui lui est propre, or ici c'est un mélange de 2 langages, du patois ou du verlan comme vous voulez, mais pas plus.

    Pour le reste je vous laisse à vos certitudes de newbies
    Je n'ai pas envie d'en discuter avec vous 2, et ce n'est pas le sujet de ce post à la base.
    Arduino se veut un langage mais c'est tout l'opposé, pour preuve personne dans l'industrie n'adopte cette hérésie... c'est un outil de bricoleurs du dimanche.
    Ce sera tout pour moi sur ce post.

  20. #19
    Seb.26

    Re : Arduino créer un classe String avec valeur Hexadécimal

    Citation Envoyé par Chtulhu Voir le message
    Un langage a une syntaxe qui lui est propre, or ici c'est un mélange de 2 langages, du patois ou du verlan comme vous voulez, mais pas plus..
    Un exemple ??!!

    (ça fait 2 fois que je te demande un exemple et ... rien ?! ...)
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  21. #20
    freepicbasic

    Re : Arduino créer un classe String avec valeur Hexadécimal

    Pour en revenir a cette question de string, non ,non c'est pas la ficelle le cache sex dont il s'agit.

    Il s'agit en fait d'une class.
    Personnellement, je ne l'utilise pas, et ils disent d'ailleurs dans le code source "wstring.c" que le code est vraiment gros et lourd.
    D'ailleurs la question initiale laisse penser qu'on pourrait surement faire mieux et autrement.

    Je doute que le == compare 2 chaines...
    Il doit comparer 2 pointeurs et la comparaison serait alors toujours fausse.

    Sur cette page de référence en Français;
    http://www.mon-club-elec.fr/pmwiki_r...in.StringObjet
    Il existe une fonction compareTo() ,ce qui me fait penser que le == fonctionne normalement et ne compare pas.

    Seuls les structures ont des particularités comme le = qui copie une structure sur une autre.
    Et apparemment string n'est pas déclaré comme une structure...
    A+, pat

  22. #21
    freepicbasic

    Re : Arduino créer un classe String avec valeur Hexadécimal

    Apparemment ça compare avec "=="

    http://www.mon-club-elec.fr/pmwiki_r...jetComparaison
    A+, pat

  23. #22
    Chtulhu

    Re : Arduino créer un classe String avec valeur Hexadécimal

    Citation Envoyé par Seb.26 Voir le message
    Un exemple ??!!

    (ça fait 2 fois que je te demande un exemple et ... rien ?! ...)
    Désolé mais non.
    Sinon on va faire dériver le sujet qui va partir en polémiques.
    Il suffit déjà de voir les (sur)réactions sur ce pseudo sujet par les "spécialistes" locaux ...
    Une autre fois quand le sujet réapparaîtra de manière plus explicite dans le sujet du topic (ça ne saurait tarder vu l'engouement de ces produits, l'équivalent de la mal bouffe pour l'électronique...).

Discussions similaires

  1. [Programmation] Arduino comparaison array of string avec array of char.. 2 jours.. ouff...
    Par nodoubtman dans le forum Électronique
    Réponses: 21
    Dernier message: 26/03/2016, 08h00
  2. [Programmation] Arduino comparer String[] avec un char[]
    Par nodoubtman dans le forum Électronique
    Réponses: 2
    Dernier message: 22/02/2016, 09h34
  3. Créer un traqueur GPS avec Arduino ?
    Par Pouknouki dans le forum Électronique
    Réponses: 0
    Dernier message: 05/05/2014, 12h45
  4. Créer décompteur avec valeur pré-définie
    Par invite04bce7ed dans le forum Électronique
    Réponses: 4
    Dernier message: 28/11/2010, 09h07
  5. HOW TO CONVERT STRING * 16 (ASCII coded HEXADECIMAL) TO DECIMAL NUMBER?
    Par invite977903b4 dans le forum Électronique
    Réponses: 3
    Dernier message: 01/05/2008, 06h51
Découvrez nos comparatifs produits sur l'informatique et les technologies.