Calculer une checksum sur 8 bits [Résolu]

JOE56570 4 Messages postés lundi 12 décembre 2011Date d'inscription 27 avril 2012 Dernière intervention - 12 déc. 2011 à 23:01 - Dernière réponse : JOE56570 4 Messages postés lundi 12 décembre 2011Date d'inscription 27 avril 2012 Dernière intervention
- 13 déc. 2011 à 15:42
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.
2iem trame :0x01,0x01,0x00,0xA6,0x00,0xB4.
2iem 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 puis 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 1 */
for ( i = 0; i <= 4; i++)
if(Message[i]
iuResult += Message[i];
/* Modulo Valeur Maxi sur 8 Bits */
iuResult %= 0xFF;

Si quelqu'un peut m'aider.
Merci d'avance
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 13 déc. 2011 à 09:57
1
Merci
Xh est une notation indiquant le coté hexadécimal de la chose...

equivalent à 0xC dans ton cas :



int sum = 0xC; // Resultat sur 8 bits 
unsigned char chkSum;
// Calcul de la somme
for (i = 0; i < 5; i++) 
sum += Message[i]; 
chkSum = sum & 0xFF;



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp

Merci Renfield 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de Renfield
JOE56570 4 Messages postés lundi 12 décembre 2011Date d'inscription 27 avril 2012 Dernière intervention - 13 déc. 2011 à 15:42
0
Merci
Bonjour,
Merci pour la réponse, c'est bien ça, mais je m'était planté dans ma routine de calcul (au niveau de la visu du résultat).
A force de chercher, je ne voyait plus clair, il me falait un autre avis.
Merci encore.
Commenter la réponse de JOE56570

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.