次のように文書化されているシリアル接続のチェックサムがあります。
方式:
Chk = 0;
for(i=0;i<Number_Of_Bytes;i++)
{
Chk = Chk ^ Message_Byte[i]
}
私のコードは次のとおりです。
public static List<byte> GetChecksum(this List<byte> source)
{
byte sum = 0;
int length = source.Count();
for (int i = 0; i < length; i++)
{
sum ^= source[i];
}
source.Add(sum);
return source;
}
プロトコルが私のチェックサムを気に入っていないようです (チェックサム エラー応答でメッセージを拒否します)。私は何を間違っていますか?