Méthode pour calculer une checksum sur 8 bits
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Méthode pour calculer une checksum sur 8 bits



  1. #1
    JOE56

    Méthode pour calculer une checksum sur 8 bits


    ------

    Bonjour,
    Je cherche la méthode (en C) pour calculer la checksum d'une trame de 6 octets, dont j'ai saisi le modèle à l'analyseur logique.
    1er trame :0x01,0x06,0x7D,0x67,0x64,0x5B le dernier octet (5B) étant la checksum transmise.
    2iem trame :0x01,0x01,0x00,0xA6,0x00,0xB4 .
    3iem trame :0x01,0x06,0x00,0x26,0x1A,0x53 .
    Il s'agit d'un système de thermostat de radiateur avec commande par radio (868Mhz) de marque ELV (Allemand). En cherchant des renseignements sur le produit, j'ai trouvé sur le Web, une phrase qui explique que la checksum est la somme des 5 premiers octets + Ch. Impossible de savoir à quoi correspont ce Ch (en Allemand)
    J'ai essayé avec une somme octet par octet, un XOR octet par octet suivit d'un modulo 256,... mais rien à faire !!! je sèche.
    le petit bout de C : (qui ne donne pas le résultat attendu)

    iuResult = 0; // Resultat sur 8 bits
    /* Calcul de la somme, le premier caractère est en position 0 */
    for ( i = 0; i <= 4; i++) iuResult += Message[i];
    /* Modulo Valeur Maxi sur 8 Bits */
    iuResult %= 0xFF;

    Si quelqu'un peut m'aider.
    Merci d'avance

    -----

  2. #2
    invitee05a3fcc

    Re : Méthode pour calculer une checksum sur 8 bits

    Bonjour JOE56 et bienvenue sur FUTURA
    Citation Envoyé par JOE56 Voir le message
    j'ai trouvé sur le Web, une phrase qui explique que la checksum est la somme des 5 premiers octets + Ch. Impossible de savoir à quoi correspont ce Ch (en Allemand)
    Donne le lien WEB sur la page du site. Quelqu'un pourra peut être traduire !

  3. #3
    JOE56

    Re : Méthode pour calculer une checksum sur 8 bits

    Bonjour,
    ci-joint le lien vers le site (Allemand) qui décrit très très brièvement le calcul de la checksum : http://fhz4linux.info/tiki-index.php...FHT%20protocol
    ci-dessous l'extrait :Format:



    HC1,HC2,AA,BB,EE,CS : HC1,HC2: Hauscode
    AA: Adresse
    BB: Befehl
    EE: Erweiterungsbyte
    CS: Prüfsumme (8bit-Summe von HC1 bis EE + Ch)

    Merci de votre aide

  4. #4
    eldudo

    Re : Méthode pour calculer une checksum sur 8 bits

    Je crois simplement que Ch c'est l'écriture hexa de 12 .
    Faut que tu rajoutes 12 à la fin .

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

    Re : Méthode pour calculer une checksum sur 8 bits

    Ca marche pour les trames 2 et 3 (pas la 1 ! une erreur de lecture ?)
    2iem trame :0x01+0x01+0x00+0xA6+0x00+0x0C = 0xB4 .
    3iem trame :0x01+0x06+0x00+0x26+0x1A+0x0C = 0x53 .

  7. #6
    Jack
    Modérateur

    Re : Méthode pour calculer une checksum sur 8 bits

    Citation Envoyé par eldudo Voir le message
    Je crois simplement que Ch c'est l'écriture hexa de 12 .
    Faut que tu rajoutes 12 à la fin .

    C'est tout à fait çà:0x01+0x06+0x7D+0x67+0x64+0x 0c = 0x15B
    et 0x15B modulo 256= 0x5B
    CQFD

    A+

  8. #7
    JOE56

    Re : Méthode pour calculer une checksum sur 8 bits

    Bonjour,
    C'est aussi ce que je croyait, malheureusement ça ne marche pas pour toutes les trames.
    J'ai un log d'environ 100 trames reçues.
    merci pour ta réponse.

  9. #8
    invitee05a3fcc

    Re : Méthode pour calculer une checksum sur 8 bits

    Exact Jack !
    Citation Envoyé par DAUDET78 Voir le message
    pas la 1 ! une erreur de lecture ?
    C'est moi qui ne sait pas taper sur un clavier !

  10. #9
    eldudo

    Re : Méthode pour calculer une checksum sur 8 bits

    Si ça marchait pour toutes les trames, la checksum n'aurait aucune utilité .
    Ca te permet de rejeter les trames foireuses.

  11. #10
    Jack
    Modérateur

    Re : Méthode pour calculer une checksum sur 8 bits

    Citation Envoyé par JOE56 Voir le message
    Bonjour,
    C'est aussi ce que je croyait, malheureusement ça ne marche pas pour toutes les trames.
    J'ai un log d'environ 100 trames reçues.
    merci pour ta réponse.
    Alors c'est que tu as un problème de transmission car on ne change pas la règle de calcul du checksum en cours de route. Donne voir un exemple de trame qui ne colle pas au principe de calcul précédent.

    A Daudet: ça arrive. Je n'avais pas encore vu ta réponse au moment ou j'avais envoyé la mienne.

    A+

    PS : même conclusion que eldudo à nouveau
    Dernière modification par Jack ; 13/12/2011 à 12h42.

  12. #11
    JOE56

    Re : Méthode pour calculer une checksum sur 8 bits

    Bonjour,
    Autant pour moi, ça marche avec +0xC, mais avec la calculette, car je me suis planté qqq part dans mon code en C.
    MERCI A TOUS

Discussions similaires

  1. méthode pour calculer les valeurs propres d'une matrice
    Par invite5ddd006f dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 02/05/2011, 20h03
  2. Méthode pour calculer les ph
    Par invite8d116bdb dans le forum Chimie
    Réponses: 3
    Dernier message: 09/07/2010, 11h47
  3. récupération du mot de 8 bits sur 4 bits
    Par grd666 dans le forum Électronique
    Réponses: 3
    Dernier message: 09/07/2008, 11h16
  4. Methode pour calculer un residu
    Par invite72dce802 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 23/06/2008, 14h12
  5. Calcul Checksum pour Transfert RS232
    Par invitee9004dcd dans le forum Matériel - Hardware
    Réponses: 1
    Dernier message: 30/08/2006, 19h40
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...