Salut à tous!!!
Je cherche le moyen de calculer le crc d'une trame (stockée dans un buffer) avec le polynome 0x1021!!!
Je ne sais ps comment procéder!!!
Merci pour votre aide!!!
Bonne journée!!!![]()
Salut à tous!!!
Je cherche le moyen de calculer le crc d'une trame (stockée dans un buffer) avec le polynome 0x1021!!!
Je ne sais ps comment procéder!!!
Merci pour votre aide!!!
Bonne journée!!!![]()
Salut,
En suivant les trois étapes classiques:
- Analyse: questionner le client (toi meme) pour définir clairement ce qu'il faut (valeurs entrées, valeurs de sorties ...)
- Conception: concevoir l'algorithme qui permettra, sur base des valeurs entrées, d'obtenir la valeur de sortie
- Mise en oeuvre:coder l'application qui mettra l'algorithme en oeuvre
L'analyse se fera sous la forme de
La conception devra se faire sous la forme deEn travaillant sous <tel OS>, je veux créer une application <graphique/console> qui récupérera les trames de <telle manière> en <telle quantité> dans un buffer géré de <telle manière> et en calculera le CRC16 <si graphique, avec telle bibliotheque>.
Le CRC16 est obtenu en applicant le <<polynome de 0x1021>>, c'est à dire <description textuelle du CRC16>
Apres calcul du CRC16, l'application devra <gestion finale du résultat>
- Création de l'algorithme pour calculer le CRC16
- Création de l'algorithme pour récupération des trames dans le buffer
- Création de l'algorithme pour la vérification du CRC16 de l'ensemble des trames
- Création de l'algorithme pour la gestion du résultat final
Sur base de ces quatre algorithmes, sous réserve que j'en ai oublié, il ne te restera plus qu'à coder l'application qui les mets en oeuvre
De manière génréale, le premier conseil donné sur un forum c'est "aide nous à t'aider"...
On peut, certes, t'aider pour chacune de ces étapes, mais il n'est pas dans les habitudes de tout faire non plus, principalement parce que c'est le pire des services à te rendre que de tout faire pour toi, et de te donner un code qui fonctionne sans que tu n'ai réfléchi et surtout compris ce qui est fait...
Pour nous aider à t'aider, fournis nous déjà l'analyse complete et cohérente, les algorithmes que tu as trouvés/envisagés, ou dis nous sur lequel tu bloque, et, éventuellement, un code minimum compilable si c'est au niveau du code meme que tu coinces...
Sur base du travail que TU auras effectué, il sera alors possible de t'aiguiller le plus efficacement possible, en évitant - si possible- de te faire reprendre l'ensemble du code![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Merci beaucoup pour la réponse!!![]()
![]()
En fait, il ne me manque que l'algorithme du crc...
Je t'explique je suis sensée deviner l'alogorithme de calcul du crc (selon le polynome 0x1021) à partir du résultat que j'ai dans une trame qui en contient...
Je t'explique encore plusen fait j'ai la trame suivante :00 35 01 06...A5 E2
les octets en rouge correspondent au crc...or je suis sensée trouvé l'algorithme qi me permet de trouver ces deux octets!!! je suis sensé faire le chemin inverse quoi!!!
Sauf que d'après mes connaissances, ça ne marche pas comme ça, il faut avoir un algorithme qui te permet de calculer ton crc et non le contraire!!!
Ma question en fait c'était est ce que c'est possible de faire ce chemin inverse et comment justement!!!
Merci beaucoup beaucoup pour ta patience!!!![]()
![]()
Alors, déjà, n'oublie pas que...
Une rapide recherche t'aurait menée tout droit sur=>ce fichier pdf<= qui traite tant des CRC que des reverses CRC (dont, meme si c'est présenté sous une forme assembleur, une partie pour le CRC16), voire, sur =>cet article<= (du site sur lequel tu te trouves) et sur bien d'autres ressources que je n'ai pas toutes parcourrues...
L'avantage d'un CRC, c'est, justement, qu'il est réversible, à l'opposé des sommes md5 et similaires (qui sont "destructifs" dans le sens où tu ne peux pas récupérer les données au départ de la somme)
Même si ca n'a pas grand chose à voir (le lien traite en fait du RAID), les explications données =>ici<= devraient te permettre de comprendre pourquoi, et surtout, comment, le CRC peut etre inversé
Une bonne partie des liens que je te fournis ici sont, tout simplement issus de ==>cette recherche<==
Fait ce que tu peux, et reviens nous voir si tu coinces réellement sur un point précis![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
re-Merci beaucoup beaucoup![]()
![]()
je vais éplucher les docs que tu m'a fournit!!
je te souhaite une très bonne soirée!!![]()
Bonjour à tous,![]()
Je reviens parce qu'en fait je n'ai pas trouvé de solution à mon problème!!!
Je veux savoir si c'est possible de reconstituer (de deviner!!!) l'algorithme d'un crc16, sachant que tout ce dont je dispose c'est deux malheureux petits octets en fin de trame et le fait qu'il est basé sur le polynome 0x1021!!!!
a ma connaissance non...
Toutes contribution serait la bienvenue!!!
bonne journée!!!![]()
Tout est dit. Qu'est ce qu'il te manque ?Envoyé par sanatou
Je me dit que je ne peut pas reconstituer un algorithme de crc16 avec pour seul base de travail un polynome et 2 octets...la démarche ne me semble pas logique et c'est sela que j'ai envi de vérifier jhustement :
plus clairement est ce que à partir de deux octets et d'un polynome on peut reconstituer l'algorithme qui donne comme résultat ces même deux octets????????![]()
A partir du moment ou tu sais que c'est un CRC, le polynome suffit. Avec le resultat pour un exemple, tu peux lever les doutes eventuels que tu aurais sur certaine details. Ce dont tu n'as pas l'air de te rendre compte, c'est que CRC, ca designe un algorithme bien precis et pas n'importe quelle maniere de calculer une somme de controle.
Partager