Ich erhalte Daten von seriell Port in einem Byte-Arrayberechnen CRC 8 der empfangenen Daten auf dem seriell Port C#
Wie kann ich die Prüfsumme der Daten berechnet wird nicht die sync enthalten (54) und die Prüfsumme (F2) Byte und möchte mit dem letzten Prüfsummenbyte übereinstimmen.
Aktualisiert:
int bytes = comport.BytesToRead;
byte indexCRC;
int sumCRC = 0;
byte checksumCRC = 0;
byte checksum;
byte[] RXBuffer = new byte[bytes];
comport.Read(RXBuffer, 0, bytes);
checksum = RXBuffer.Last();
byte[] RXBufferCRC = new byte[bytes];
for (indexCRC = 1; indexCRC < RXBufferCRC.Length; indexCRC++)
{
sumCRC = sumCRC + RXBufferCRC[indexCRC];
}
checksumCRC = (byte)(sumCRC);
Könnten Sie vielleicht geben dabei einige Beispiel dafür, was Sie versucht haben, ? Vielleicht können wir Ihnen sagen, warum es dann nicht funktioniert. –
Hallo @StrahBehry Ich versuche so etwas. Bitte überprüfen Sie die Frage –
Sieht aus wie eine einfache Summe von Bytes 1..N-2. 80 + 71 + 01 == F2. Schwer zu erraten, was 35 tun könnte. Verwenden Sie ein Telefon, um mit einem Geräteprogrammierer zu sprechen, der die tatsächliche Antwort kennt. –