System.IO.BACnet.BacnetPtpProtocolTransport.RemoveGarbage C# (CSharp) Méthode

RemoveGarbage() private méthode

private RemoveGarbage ( byte buffer, int &length ) : void
buffer byte
length int
Résultat void
        private void RemoveGarbage(byte[] buffer, ref int length)
        {
            //scan for preambles
            for (int i = 0; i < (length - 1); i++)
            {
                if ((buffer[i] == PTP.PTP_PREAMBLE1 && buffer[i + 1] == PTP.PTP_PREAMBLE2) || IsGreeting(buffer, i, length))
                {
                    if (i > 0)
                    {
                        //move back
                        Array.Copy(buffer, i, buffer, 0, length - i);
                        length -= i;
                        Trace.WriteLine("Garbage", null);
                    }
                    return;
                }
            }

            //one preamble?
            if (length > 0 && (buffer[length - 1] == PTP.PTP_PREAMBLE1 || buffer[length - 1] == PTP.PTP_GREETING_PREAMBLE1))
            {
                buffer[0] = buffer[length - 1];
                length = 1;
                Trace.WriteLine("Garbage", null);
                return;
            }

            //no preamble?
            if (length > 0)
            {
                length = 0;
                Trace.WriteLine("Garbage", null);
            }
        }