コード例 #1
0
ファイル: Interleaver.cs プロジェクト: BahaBulle/jHackson
        private byte MoveBit(byte code_num)
        {
            if (this.oBitInd == 0)
            {
                Sdd1.SetByte(Sdd1.OutBufferPosition, 0);
            }

            byte bit = Convert.ToByte(((this.codewBuffer[code_num][this.bytePtr[code_num]] & (0x80 >> this.bitInd[code_num])) << this.bitInd[code_num]) & 0xFF);

            Sdd1.SetByteOr(Sdd1.OutBufferPosition, Convert.ToByte((bit >> this.oBitInd) & 0xFF));
            this.logMessage.Append(string.Format(CultureInfo.InvariantCulture, "{0:X02} ", Convert.ToByte((bit >> this.oBitInd) & 0xFF)));

            if ((++this.bitInd[code_num] & 0x08) > 0)
            {
                this.bitInd[code_num] = 0;
                this.bytePtr[code_num]++;
            }

            if ((++this.oBitInd & 0x08) > 0)
            {
                this.logMessage.Append(string.Format(CultureInfo.InvariantCulture, "-> {0:X02}", Sdd1.GetByte(Sdd1.OutBufferPosition)));
                Logger.Debug(this.logMessage.ToString());
                this.logMessage.Clear();
                this.oBitInd = 0;
                Sdd1.OutBufferPosition++;
                ++Sdd1.OutBufferLength;
            }

            return(bit);
        }
コード例 #2
0
ファイル: Interleaver.cs プロジェクト: BahaBulle/jHackson
        public void PrepareComp(byte header)
        {
            Sdd1.OutBufferLength = 0;
            Sdd1.SetByte(Sdd1.OutBufferPosition, Convert.ToByte((header << 4) & 0xFF));

            this.oBitInd = 4;

            for (byte i = 0; i < 8; i++)
            {
                this.bytePtr[i] = 0;
                this.bitInd[i]  = 0;
            }
        }