Forum: PC-Programmierung Checksumme berechnen


von Dirk (Gast)


Lesenswert?

Ich suche schon seit Stunden und kann nix finden. Es geht um das Polynom 
und den Startwert bei CRC 16 CCITT Kermit.
Auf 
http://www.lammertbies.nl/comm/info/crc-calculation.html?crc=00000003&method=hex%22%20target=%22_blank%22 
kann ich die CRC überprüfen, aber ich finde die Berechnung nicht.

GeGooglelt habe ich natürlich. Nur nix gefunden. Ich zähle auf Euch!

von Abdul K. (ehydra) Benutzerseite


Lesenswert?


von Dirk (Gast)


Lesenswert?

Ja, habe ich natürlich. Ich erkenne darin aber nicht das Polynom.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Einfach mit Kermit in dem zip suchen. Da taucht z.B. auf:
#define                 P_KERMIT    0x8408

von Dirk (Gast)


Lesenswert?

Ich finde auch die Berechnung der CRC mit einer Tabelle, die Erstellung 
der Tabelle, aber leider keinen Hinweis auf das Polynom.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Ich verstehe dich nicht. Da steht doch das Polynom. Was du dann noch 
brauchst ist:
1. Berechnungsvorschrift
2. Startwert

Stehen vermutlich auch in der Source.

von Dirk (Gast)


Lesenswert?

Abdul K. schrieb:
> Da steht doch das Polynom.

Danke für Deine Mühe.

Du siehst dort mehr als ich. Wir können noch weiter Ping Pong spielen 
oder die Sache extrem verkürzen:
Bitte poste das Polynom und den Startwert mal hier.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Hm. C ist ohne Kommentare für mich eigentlich unlesbar.  Ich würde 
sagen, der Startwert ist in der Funktion _tab drinnen als Konstante. 
Also nicht sonderlich schön strukturiert.
Und in der Funktion für Kermit steht dann halt: 0x0001

Mußt noch rauskriegen, ob er von links oder rechts shiftet.


Bis man durch das Kauderwelch durchgestiegen ist, würde ich per Google 
die Daten suchen.


Aber professionelle C-Programmierer werden sicherlich gleich 
widersprechen.

von Dirk (Gast)


Lesenswert?

Abdul K. schrieb:
> Hm. C ist ohne Kommentare für mich eigentlich unlesbar.  Ich würde
> sagen, der Startwert ist in der Funktion _tab drinnen als Konstante.
> Also nicht sonderlich schön strukturiert.

Ok, soweit war ich bereits vor dem ersten Beitrag.

Abdul K. schrieb:
> Bis man durch das Kauderwelch durchgestiegen ist, würde ich per Google
> die Daten suchen.

Das habe ich auch schon erfolglos probiert.

Also wieder vor ganz Vorne:
Es geht um das Polynom und den Startwert bei CRC 16 CCITT Kermit.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Du hast doch alles. Eine C-Routine die wohl funzt, aber deren Funktion 
nicht leicht nachvollziehbar ist. Das ist dem Compiler aber wurscht, der 
übersetzt dir das richtig. Notfalls eben den Debugger und durchsteppen.
Oder du vollziehst es eben per Hand:
Startwert und Rückkopplungswert habe ich dir genannt.

Dein Ton ist auch eher komisch.

Google war jetzt auch nicht großartig schwer und brachte nach ca. 20 
Sekunden:
http://plc4good.org.ua/files/02_materials/oscat/oscat_de320.pdf
Seite 220

Da siehst du auf einem Blick, daß Kermit und X25 die gleichen Polynome 
mit unterschiedlichen Startwerten benutzen. Daher kannst du alle X25 
Routinen benutzen und das sind vermutlich hunderte im Internet zu 
finden. Schon allein wegen der ganzen APRS/Packet-Radio Amateurfunker.


Wenn du wissen willst, warum man gerade diese und nicht andere 
Konstanten nimmt, dann wirds allerdings haarig und du darfst Mathe 
studieren. Schwerpunkt Topologie wäre vermutlich ok.

von Dirk (Gast)


Lesenswert?

Abdul K. schrieb:
> Du hast doch alles. Eine C-Routine die wohl funzt, aber deren Funktion
> nicht leicht nachvollziehbar ist.
Darum wollte ich die beiden Werte.

Abdul K. schrieb:
> Dein Ton ist auch eher komisch.
???
Ich habe mich doch bedankt.

Abdul K. schrieb:
> Google war jetzt auch nicht großartig schwer
Ich habe zu Kermit die beiden Werte nicht gefunden.

Jetzt habe ich die Daten und kann loslegen.
Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.