protected static bool IsValid(byte[] packet, IntFromByteArray packetLengthCallback, int length = -1)
{
if (length < 0)
{
length = packet.Length;
}
if (length < PacketLengthMin)
{
return false;
}
int packetLength = packetLengthCallback(packet);
if (length < packetLength || packetLength < PacketLengthMin)
{
return false;
}
byte check = 0x00;
for (int i = 0; i < packetLength - 1; i++)
{
check ^= packet[i];
}
return check == packet[packetLength - 1];
}