コード例 #1
0
        static object ReadFloatPrimitiveType(BitStreamReader reader, FloatDsdlType t)
        {
            switch (t.MaxBitlen)
            {
            case 16:
                var value = (ushort)BitSerializer.ReadUInt(reader, 16);
                return(BitSerializer.UInt16ToFloat32(value));

            case 32:
                return(BitSerializer.ReadSingle(reader, 32));

            case 64:
                return(BitSerializer.ReadDouble(reader, 64));

            default:
                throw new InvalidOperationException($"Unexpected float bit lenght: {t.MaxBitlen}.");
            }
        }
コード例 #2
0
        int ReadDynamicArraySize(BitStreamReader reader, ArrayDsdlType t)
        {
            var bitLen = BitSerializer.IntBitLength(t.MaxSize + 1);

            return((int)BitSerializer.ReadUInt(reader, bitLen));
        }
コード例 #3
0
        int ReadUnionFieldIndex(BitStreamReader reader, CompositeDsdlTypeBase t)
        {
            var bitLen = BitSerializer.IntBitLength(t.Fields.Count);

            return((int)BitSerializer.ReadUInt(reader, bitLen));
        }