imBMW.iBus.Message.IsValid C# (CSharp) Method

IsValid() protected static method

protected static IsValid ( byte packet, IntFromByteArray packetLengthCallback, int length = -1 ) : bool
packet byte
packetLengthCallback IntFromByteArray
length int
return bool
        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];
        }

Same methods

Message::IsValid ( byte packet, int length = -1 ) : bool