public byte CalculateAdd(byte[] buffer)//取低八位
{
int cks = 0;
for (int i = 0; i < buffer.Length - 1; i++)
{
cks = (cks + buffer[i]) % 0xffff;
}
//byte bt = (byte)((cks & 0xff00) >> 8);//取校验和高8位
byte bt = (byte)(cks & 0xff);//取校验和低8位
return bt;
}
for (int i = 0; i < buffer.Length - 1; i++) 中buffer.Length - 1的意思是字节最后一位是校验数,前面几位的sum校验和最后一位相匹配
if (data == null || data.Length <= 0 || data[data.Length - 1] != CalculateAdd(data)) return;