C# CRC-Implementierung
Ich versuche mich zu integrieren, ein Serial-port-device in meiner Anwendung, die Bedürfnisse der CRC-CCTT-Validierung für die bytes, die ich senden, um es.
Ich bin irgendwie neu in der Verwaltung byte-Paketen und benötigen Hilfe.
Verwendet er diese Formel für die CRC Rechnung:
[CRC-CCITT P(X)= X16 + C12 + C8 + 1]
So zum Beispiel für das Paket: 0xFC 0x05 0x11, der CRC ist 0x5627.
Dann sende ich dieses Paket an das Gerät: 0xFC 0x05 0x11 0x27 0x56
Auch, Paket-Längen variieren von 5 bis 255 (einschließlich CRC-checks bytes)
Ich weiß nicht, wie um dies zu implementieren, so dass jede Idee/Vorschläge willkommen.
Hoffe, dass ich mich klar genug ausgedrückt,
Vielen Dank im Voraus.
BEARBEITEN:
hier ist die Spezifikation, was, die ich tun müssen:
InformationsquelleAutor Mg. | 2011-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
standard-crc-ccitt ist die x16 + x12 + x5 + 1 schrieb ich eine @ http://www.sanity-free.com/133/crc_16_ccitt_in_csharp.html Wenn ich Zeit habe, werde ich sehen, ob ich nicht ändern kann und es laufen mit x16 + x12 + x8 + 1 poly.
EDIT:
hier gehen Sie:
Beispiel:
InformationsquelleAutor Steve
Haben Sie versucht, zu Googeln für ein Beispiel? Es gibt viele von Ihnen.
Beispiel 1: http://tomkaminski.com/crc32-hashalgorithm-c-net
Beispiel 2: http://www.sanity-free.com/12/crc32_implementation_in_csharp.html
Haben Sie auch native MD5-Unterstützung in .Net durch System.Sicherheit.Die Kryptographie.MD5CryptoServiceProvider.
EDIT:
Wenn Sie auf der Suche für einen 8-bit-Algorithmus: http://www.codeproject.com/KB/cs/csRedundancyChckAlgorithm.aspx
Und 16-bit: http://www.sanity-free.com/133/crc_16_ccitt_in_csharp.html
Ich habe versucht alles die Beispiele, die Sie zur Verfügung gestellt, aber ich kann nicht herausfinden, wie Sie zu übersetzen, um die Formel, die ich brauche, da in keiner von Ihnen, was meine erwarteten Werte, oder ich benutze Sie falsch. Bitte können Sie mir helfen mit diesem?
InformationsquelleAutor Tedd Hansen
LOL, ich habe festgestellt, genau den gleichen STATUS ANFRAGE sequense, ich bin derzeit auf der Entwicklung von software zur Verwendung mit CashCode-Banknotenprüfer:). Hier ist der code für mich gearbeitet, es ist CRC16-CCITT mit umgekehrten Polynom gleich 0x8408 (BDPConstants.Polynom in den code). Das ist der code war für mich:
Initialisieren Sie die Tabelle irgendwo (z.B. Formular-Konstruktor):
dann verwenden Sie es in Ihrem code einfach so,
Können Sie Liste von bytes anstelle von array, die mehr convinient für pack-byte-Daten in der 'packet' für das senden
InformationsquelleAutor Dr.Strangelove
es funktioniert und die Dosis nicht brauchen, Tabelle:
InformationsquelleAutor M-Razavi
Sind Sie eigentlich mit CRC-XMODEM LSB-reverse (mit 0x8408-Koeffizient). C# - code für dieses Kalkül ist:
Lesen Sie mehr (oder download-Projekt):
http://www.cirvirlab.com/index.php/c-sharp-code-examples/141-c-sharp-crc-computation.html
InformationsquelleAutor Patrick Chung