CRC på hex string
HejsaJeg er ved at lave kommunikation til en seriel enhed. Det virker som også helt fint lige indtil jeg kom til at skulle lave crc tjek på kommunikationen..
Jeg har denne HEX string: "66 31 32 33 34 35 36 37"
og jeg har CRC koden som den skal være: "2A87"
jeg kan bare ikke få min kode til at generere den rigtige.. :-(
funktionen:
public int crc16(string Buffer, int Initial)
{
int result;
int i;
int j;
int d;
int b;
result = Initial;
for (i = 2; i < Buffer.Length; i++)
{
d = (int)(Buffer[i]);
for (j = 0; j <= 7; j++)
{
b = result & 1;
result = result >> 1;
if ((d & 1) != 0)
{
result = result | 0x8000;
}
if (b != 0)
{
result = result ^ 0xA001;
}
d = d >> 1;
}
}
return result;
}