Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

utilisation du CRC-16 CCITT

Résolu !
Accéder à la solution

Bonjour,

 

J'ai besoin d'utiliser le calcul de checksum a l'aide du CRC-16 CCITT, cependant je ne comprend pas comment celui fonctionne, et n'arrivant pas à trouver le^bon résultat par rapport à ce que j'ai récupérer, j'aimerai savoir si quelqu'un pouvait m'expliquer en détail son fonctionnement pour pouvoir le traduire sur labview.

 pour exemple j'ai cette trame : 0202033B026C15A7620FD80B1D140068B8AC48F948F90020003989500004AC3080000000800000000000000080000000

je doit obtenir le checksum 89AC.

 

Merci d'avance,

Cordialement,

Rémi D.

0 Compliments
Message 1 sur 15
6 225 Visites

Salut,

on utilisant le code ci-dessous je ne retrouve pas ta valeur 89AC, j'ai essayé plusieurs valeurs initiales (FFFF,1F0D,0000...) avec et sans XOR:

exp.png

J'ai déjà implémenté l'algo CRC16 CCITT pour communiquer avec un appareil, néanmoins j'ai dû l'adapter légèrement pour que ça fonctionne avec mon matériel.

 

Peux-tu fournir l'algorithme/pseudo code utilisé par ton materiel?

Reg
0 Compliments
Message 2 sur 15
6 207 Visites

Bonjour,

 

Je vous fourni le code de la documentation en dessous,

Merci de votre aide cela fait maintenant trois jours que je suis sur ce problème je commence à m'arracher les cheveux,

 

Merci beaucoup,

Cordialement,

Rémi D.

Tout télécharger
0 Compliments
Message 3 sur 15
6 196 Visites

Bonjour,

 

Pour plus de précision, voici ma trame complète

7E02023B036C020F62A715141D0BD8ACD86800F948F94802005089390030AC04000000008000000080000000000000008089AC7E

 

ou 7E sont les balises de début et de fin de la trame, tout en sachant que celle-ci à été lu sous le format little endian également.

 

Merci d'avance,

Cordialement,

Rémi Domenge

0 Compliments
Message 4 sur 15
6 179 Visites
Solution
Accepté par l'auteur du sujet DODO13

DODO13 a écrit :

Btout en sachant que celle-ci à été lu sous le format little endian également.

 


exp.png

 

résultat= 0x89AC.

 

L'image ci-dessus et un Snippet. il faut faire un glisser/déposer dans un diagramme pour le convertir en code LabVIEW.

 

ça te convient?

 

 

Reg
Message 5 sur 15
6 160 Visites

Bonjour,

 

Merci pour votre réponse, c'est exactement la solution que je cherchais!!

Pouvez-vous m'expliquer ce que vous avez fait pour que je n'utilise pas votre réponse sans rien comprendre s'il vous plait?

 

Merci beaucoup,

Cordialement,

Rémi D.

0 Compliments
Message 6 sur 15
6 137 Visites

En ce qui concerne les fonctions, tu peux utiliser l'aide (ctrl+H) pour avoir de l'aide sur chaque fonction.

Le code ci-dessus est un code du standard CRC-16 CCITT, l'algorithme et facilement trouvable sur le net.

Reg
0 Compliments
Message 7 sur 15
6 122 Visites

Bonjour,

 

D'accord en tout cas merci beaucoup pour l'aide, cela m'a bien aidé.

 

Cordialement,

Rémi D.

0 Compliments
Message 8 sur 15
6 120 Visites

Heureux de t'avoir dépanné 🙂

Reg
0 Compliments
Message 9 sur 15
6 118 Visites
Bonjour Reg, Je revient vers vous car le programme labview ne me donne pas la bonne réponse sur une trame plus courte, J'ai une trame que j'ai récupérer comme l'autre en little endian et je ne trouve pas le bon checksum La trame est 7E041937F65A0036107E Merci par avance, Cordialement, Rémi D.
0 Compliments
Message 10 sur 15
5 856 Visites