BACnet.Tagging.TagWriter._writeHeader C# (CSharp) Method

_writeHeader() private method

Writes a tag header to the stream
private _writeHeader ( byte tagNumber, ApplicationTag defaultTag, byte lvt ) : void
tagNumber byte The tag number of the header, or 255 for an application tag
defaultTag ApplicationTag The default application tag if the tag number is 255
lvt byte The 3-bit Length/Value/Type value
return void
        private void _writeHeader(byte tagNumber, ApplicationTag defaultTag, byte lvt)
        {
            bool context = (tagNumber != 255);
            byte tag = (context ? tagNumber : (byte)defaultTag);

            byte header = 0x00;

            if (tag >= 0x0F)
                header |= 0xF0;
            else
                header |= (byte)(tag << 4);

            if (context)
                header |= 0x08;
            header |= lvt;

            _writer.Write(header);
            if (tag >= 0x0F)
                _writer.Write(tag);
        }