crc16 Berechnen

Dieses Thema im Forum "C/C++" wurde erstellt von miki, 02.07.2010.

  1. miki

    miki Jungspund

    Dabei seit:
    29.03.2004
    Beiträge:
    14
    Zustimmungen:
    0
    Ich versuche per Netzwerk die Kommunikation mit einem Gerät herzustellen. Dafür nutze ich QTcpSocket, was soweit auch klappt.

    Die Übertragungspackete beinhalten eine Checksumme. Laut Beschreibung soll das crc16 sein. Jedoch schaffe ich es nicht auf das gleiche Ergebnis zu kommen, wie in den Beispielen gegeben sind.

    Wenn ich folgendes übertrage:
    Code:
    00:00:00:0e:7d:98:b2:00:ce:64:00:00:00:00:01:01:01:01
    Bekomme ich als Antwort:
    Code:
    00:00:00:0e:00:31:16:80:b6:b2:7d:98:b2:01:02:01:01:01
    Wobei die Checksumme bei der Übertragung ce:64 9. und 10. Byte sind.
    Beim Antwort die gleiche Bytestellen, b6:b2 sind.

    L.t. Anleitung wird die Checksumme berechnet, indem man die erste vier Bytes weg lässt, d.h. 00:00:00:0e wird nicht beachtet. Die Stelle von der Checksumme mit 00:00 überschreibt. Also von folgende Bytes soll die Checksumme berechnet werden:
    Code:
    7d:98:b2:00:00:00:00:00:00:00:01:01:01:01
    und Ergebnis ce:64 erscheinen.
    Oder von
    Code:
    00:31:16:80:00:00:7d:98:b2:01:02:01:01:01
    Checksumme b6:b2.

    Ich hatte das mit qChecksum unter QT versucht. Dabei wird CRC-16-CCITT verwendet. Das Ergebnis ist jedoch anderes.
    Auch das hier hatte ich versucht
    http://www.mikrocontroller.net/topic/12177
    jedoch ergibt das dortige auch was anderes, als erwünscht.

    Daher die Frage, kann mir jemand sagen, wie ich zu obige Checksummen komme?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 engineer, 08.09.2010
    engineer

    engineer HW/SW-Entwickler

    Dabei seit:
    16.07.2002
    Beiträge:
    14
    Zustimmungen:
    0
    Ort:
    Stuttgart
    Bei den CRC-Beispielen sind of die Bits und Bytes vertauscht. Habe mich auch damit schon mehrfach abgequält. Versuche mal, die Bits innerhalb eines Bytes zu drehen, bevor Du sie in den CRC einspeist.
     
  4. miki

    miki Jungspund

    Dabei seit:
    29.03.2004
    Beiträge:
    14
    Zustimmungen:
    0
    Danke für die Antwort,

    das Problem hat sich erledigt.
    Es war kein crc16 (wie die Doku es beschrieb), sondern Checksumme nach RFC1071.

    Mangelhafte Dokumentationen, die auch noch Geld kosten sind echt zum :headup:
     
Thema: crc16 Berechnen
Besucher kamen mit folgenden Suchen
  1. crc16 berechnen linux

Die Seite wird geladen...

crc16 Berechnen - Ähnliche Themen

  1. Anzahl Blöcke Unix-Dateisystem berechnen

    Anzahl Blöcke Unix-Dateisystem berechnen: Hi, Ich möchte folgende Aufgabe berechnen: Die Blockgröße eines Unix-Dateisystems beträgt 4 kiByte. Die indirekten Blöcke enthalten 1024...
  2. Mittelwerte berechnen und auslesen lassen

    Mittelwerte berechnen und auslesen lassen: Hallo, ich bin absolut neu was Shell-Skripte angeht und hab am Montag zum ersten Mal überhaupt was von Bash gehört. Allerdings hab ich...
  3. gnuplot: R^2 berechnen

    gnuplot: R^2 berechnen: Hi, mit gnuplot kann man eine lineare Regression seiner Daten durchführen. Allerdings gibt es mir nur die Steigung und den y-Achsenabschnitt...
  4. uptime berechnen

    uptime berechnen: hallo.. ich will ein sprict schreiben, dass beim start automatisch gestartet wird und die uptime (also die zeit, in der der rechner an jedem tag...
  5. Mittelwerte berechnen

    Mittelwerte berechnen: Hallo Leute! Ich bin auf eine Aufgabe gestoßen die ich nicht lösen kann. Man soll ein Skript schreiben, das den Mittelwert für beliebig viele...