Discussions au sujet de NI LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

utilisation du CRC-16 CCITT

Solved!
Go to 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 Kudos
Message 1 of 15
(7,829 Views)

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 Kudos
Message 2 of 15
(7,811 Views)

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.

Download All
0 Kudos
Message 3 of 15
(7,800 Views)

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 Kudos
Message 4 of 15
(7,783 Views)
Solution
Accepted by topic author 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 of 15
(7,764 Views)

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 Kudos
Message 6 of 15
(7,741 Views)

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 Kudos
Message 7 of 15
(7,726 Views)

Bonjour,

 

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

 

Cordialement,

Rémi D.

0 Kudos
Message 8 of 15
(7,724 Views)

Heureux de t'avoir dépanné 🙂

Reg
0 Kudos
Message 9 of 15
(7,722 Views)
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 Kudos
Message 10 of 15
(7,460 Views)