[C++] Conversion de données.
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

[C++] Conversion de données.



  1. #1
    invite7ebcb46b

    Post [C++] Conversion de données.


    ------

    Bonjour,

    J'aurais une question concernant du C++ et la conversion de donnée.
    Je m'explique : J'ai un arduino qui m’envoie par liaison série 4 blocs de 8 valeurs en hexa, de la manière suivante :
    1FB234AC,4563BFED,987ABDC1,928 3DCBA

    Liaison série oblige, je récupère ces valeurs sous forme de char ou de string.
    Suite à cela, j'aimerai effectuer une série d'opération que j'arrive a faire très bien en java, de la manière suivante :

    Code:
    float decodeFloat(String inString) {
      byte [] inData = new byte[4];
      
      if(inString.length() == 8) {
        inData[0] = (byte) unhex(inString.substring(0, 2));
        inData[1] = (byte) unhex(inString.substring(2, 4));
        inData[2] = (byte) unhex(inString.substring(4, 6));
        inData[3] = (byte) unhex(inString.substring(6, 8));
        
        
      }
     
      int intbits = (inData[3] << 24) | ((inData[2] & 0xff) << 16) | ((inData[1] & 0xff) << 8) | (inData[0] & 0xff);
    
      return Float.intBitsToFloat(intbits);
      
    }
    J'aimerai donc reproduire le code souligné, mais en C++. Cependant j'aimerai faire cela de la manière la plus efficace qui soit, mais je n'y arrive pas vraiment. Avez vous une idée?

    Merci d'avance,
    RD

    -----

  2. #2
    invite4492c379

    Re : [C++] Conversion de données.

    Salut,

    Que passes-tu comme paramètre à la fonction (un bloc, les 4 blocs) ?
    Que veux-tu comme retour (un byte[n]) ?
    Les caractères transmis le sont en ASCII ?

  3. #3
    invite7ebcb46b

    Re : [C++] Conversion de données.

    Je passe uniquement un bloc en paramètre.

    J'aimerai en retour un char ( car il me semble qu'en C++, un byte est unsigned ? ), à la manière ici de inData.

  4. #4
    invite4492c379

    Re : [C++] Conversion de données.

    Quel est le type de ton bloc ? Tout est en ASCII ?

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

    Re : [C++] Conversion de données.

    Mon bloc est un char. Donc je suppose que oui il est en ASCII

  7. #6
    invite4492c379

    Re : [C++] Conversion de données.

    Le prototype est donc du genre

    char* Decode(char[8] bloc)

    ?

  8. #7
    invite7ebcb46b

    Re : [C++] Conversion de données.

    Non car ma fonction Decode doit me retourner un Float et non pas un char.

  9. #8
    invite4492c379

    Re : [C++] Conversion de données.

    Mmm... le codage d'un float est dépendant de la plateforme il me semble, donc je ne te fais que la partie :

    Code:
        char inData[4];
        inData[0]   = (HexToDec(bloc[0]) << 4) + HexToDec(bloc[1]);
        inData[1]   = (HexToDec(bloc[2]) << 4) + HexToDec(bloc[3]);
        inData[2]   = (HexToDec(bloc[4]) << 4) + HexToDec(bloc[5]);
        inData[3]   = (HexToDec(bloc[6]) << 4) + HexToDec(bloc[7]);
    où tu auras défini une macro

    Code:
    #define HexToDec(c) ((c)<A?(c)-'0':(c)-'A'+10)
    Évidemment j'assume que bloc est toujours un char[8] qui ne peut que contenir les caratères 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E, F.

    Comment sont codés les floats et au départ et à l'arrivée ?

    Peut-être pourrais-tu jeter un coup d'œil sur std::vector ...

Discussions similaires

  1. Enregistrement des données d'un formulaire(en mode feuille de données)
    Par lordgodgiven dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 28/09/2011, 14h15
  2. lecture/écriture de fichier texte et conversion en données numériques pour création courbes&calculs
    Par invited08b581e dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 12/07/2009, 16h05
  3. Conversion de base : connaître le nième chiffre sans faire toute la conversion
    Par invitebd8dbca5 dans le forum Mathématiques du supérieur
    Réponses: 5
    Dernier message: 02/07/2009, 20h14
  4. importation de données de excel dans R : données numériques non reconnues
    Par invitef67ae3c5 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 05/02/2009, 20h00
  5. conversion de l'image d'une courbe en tableau de données
    Par invite1e5150cf dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 24/01/2006, 21h23