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

RemoveXonOff() private méthode

private RemoveXonOff ( byte buffer, int offset, int &max_offset, bool &compliment_next ) : void
buffer byte
offset int
max_offset int
compliment_next bool
Résultat void
        private void RemoveXonOff(byte[] buffer, int offset, ref int max_offset, ref bool compliment_next)
        {
            //X'10' (DLE)  => X'10' X'90'
            //X'11' (XON)  => X'10' X'91'
            //X'13' (XOFF) => X'10' X'93'

            for (int i = offset; i < max_offset; i++)
            {
                if (compliment_next)
                {
                    buffer[i] &= 0x7F;
                    compliment_next = false;
                }
                else if (buffer[i] == 0x11 || buffer[i] == 0x13 || buffer[i] == 0x10)
                {
                    if (buffer[i] == 0x10) compliment_next = true;
                    if ((max_offset - i) > 0)
                        Array.Copy(buffer, i + 1, buffer, i, max_offset - i);
                    max_offset--;
                    i--;
                }
            }
        }