AsterixDisplayAnalyser.ASTERIX.DetermineLenghtOfFSPEC C# (CSharp) Метод

DetermineLenghtOfFSPEC() публичный статический Метод

public static DetermineLenghtOfFSPEC ( byte Data ) : int
Data byte
Результат int
        public static int DetermineLenghtOfFSPEC(byte[] Data)
        {
            // Assume it is 1
            int LenghtOfFSPEC = 1;

            // Get an instance of bit ops
            Bit_Ops BO = new Bit_Ops();

            // Move each octet into the DWORD
            BO.DWord[Bit_Ops.Bits0_7_Of_DWord] = Data[FirstFSPECS_Byte_Index];
            BO.DWord[Bit_Ops.Bits8_15_Of_DWord] = Data[SecondFSPECS_Byte_Index];
            BO.DWord[Bit_Ops.Bits16_23_Of_DWord] = Data[ThirdFSPECS_Byte_Index];
            BO.DWord[Bit_Ops.Bits24_31_Of_DWord] = Data[FourthFSPECS_Byte_Index];

            ////////////////////////////////////////////////////////////////////////
            // Now check for the 8th bit of each FSPEC field. If it is set
            // to true then the next octet is also FSPEC.
            if (BO.DWord[Bit_Ops.Bit0] == true)
            {
                LenghtOfFSPEC++;
                if (BO.DWord[Bit_Ops.Bit8] == true)
                {
                    LenghtOfFSPEC++;
                    if (BO.DWord[Bit_Ops.Bit16] == true)
                    {
                        LenghtOfFSPEC++;
                        if (BO.DWord[Bit_Ops.Bit24] == true)
                        {
                            LenghtOfFSPEC++;
                        }
                    }
                }
            }

            return LenghtOfFSPEC;
        }

Usage Example

        // This method returns the index to the first
        // byte of the user data after FSPEC, SIC and SAC
        // assumes that the first three octets from the data
        // block are removed from the buffer
        public static int GetFirstDataIndex(byte[] Data)
        {
            // Determine Length of FSPEC fields in bytes
            int FSPEC_Length = ASTERIX.DetermineLenghtOfFSPEC(Data);

            // Determine SIC/SAC Index
            int SIC_Index = FSPEC_Length;
            int SAC_Index = SIC_Index + 1;

            return(SAC_Index + 1);
        }
All Usage Examples Of AsterixDisplayAnalyser.ASTERIX::DetermineLenghtOfFSPEC