Dies ist das vollständige Paket mit den letzten beiden Bytes der CRC-Berechnung:
54 A1 4A 03 E7 03 D4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 CA
Im Moment füge ich ein Synchronisierungsbyte hinzu, das 0x54 ist. Wenn ich das Synchronisierungsbyte nicht hinzufüge, wäre das Paket
54 A1 4A 03 E7 03 D4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 65 CF
Beide CRC-Werte (64 CA und 65 CF) sind falsch. Ich sollte 72 DC bzw. 99 3F erhalten.
Dies ist der Code, den ich zur Berechnung des CRC16-Bits verwende:
Code: Select all
private static ushort CRCCalc(byte[] data)
{
ushort wCRC = 0;
for (int i = 1; i < data.Length; i++)
{
wCRC = (ushort)(wCRC ^ (data[i]
Mobile version