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

WriteUnsigned64() public method

Writes an unsigned tag to the stream
public WriteUnsigned64 ( ulong value, byte tag = 255 ) : void
value ulong The value to write
tag byte The tag number, or 255 for an application tag
return void
        public void WriteUnsigned64(ulong value, byte tag = 255)
        {
            int length;

            if (value < (1ul << 8))
                length = 1;
            else if (value < (1ul << 16))
                length = 2;
            else if (value < (1ul << 24))
                length = 3;
            else if (value < (1ul << 32))
                length = 4;
            else if (value < (1ul << 40))
                length = 5;
            else if (value < (1ul << 48))
                length = 6;
            else if (value < (1ul << 56))
                length = 7;
            else
                length = 8;

            _writeLengthHeader(tag, ApplicationTag.Unsigned, length);
            value = new Union8(value << (64 - (length * 8))).Reverse().UInt64;

            for(int i = 0; i < length; i++)
            {
                _writer.Write((byte)value);
                value >>= 8;
            }
        }