예제 #1
0
        /// <summary>
        /// This method is used to convert the element of ExGuid basic object into a byte List.
        /// </summary>
        /// <returns>Return the byte list which store the byte information of ExGuid.</returns>
        public override List <byte> SerializeToByteList()
        {
            BitWriter bitWriter = new BitWriter(21);

            if (this.GUID == Guid.Empty)
            {
                bitWriter.AppendUInit32(0, 8);
            }
            else if (this.Value >= 0x00 && this.Value <= 0x1F)
            {
                bitWriter.AppendUInit32(ExtendedGUID5BitUintType, 3);
                bitWriter.AppendUInit32(this.Value, 5);
                bitWriter.AppendGUID(this.GUID);
            }
            else if (this.Value >= 0x20 && this.Value <= 0x3FF)
            {
                bitWriter.AppendUInit32(ExtendedGUID10BitUintType, 6);
                bitWriter.AppendUInit32(this.Value, 10);
                bitWriter.AppendGUID(this.GUID);
            }
            else if (this.Value >= 0x400 && this.Value <= 0x1FFFF)
            {
                bitWriter.AppendUInit32(ExtendedGUID17BitUintType, 7);
                bitWriter.AppendUInit32(this.Value, 17);
                bitWriter.AppendGUID(this.GUID);
            }
            else if (this.Value >= 0x20000 && this.Value <= 0xFFFFFFFF)
            {
                bitWriter.AppendUInit32(ExtendedGUID32BitUintType, 8);
                bitWriter.AppendUInit32(this.Value, 32);
                bitWriter.AppendGUID(this.GUID);
            }

            return(new List <byte>(bitWriter.Bytes));
        }
예제 #2
0
        /// <summary>
        /// This method is used to convert the element of SerialNumber basic object into a byte List.
        /// </summary>
        /// <returns>Return the byte list which store the byte information of SerialNumber.</returns>
        public override List <byte> SerializeToByteList()
        {
            BitWriter bitWriter = null;

            if (this.GUID == Guid.Empty)
            {
                bitWriter = new BitWriter(1);
                bitWriter.AppendUInit32(0, 8);
            }
            else
            {
                bitWriter = new BitWriter(25);
                bitWriter.AppendUInit32(128, 8);
                bitWriter.AppendGUID(this.GUID);
                bitWriter.AppendUInt64(this.Value, 64);
            }

            return(new List <byte>(bitWriter.Bytes));
        }