AsterixDisplayAnalyser.CAT62.Intitialize C# (CSharp) Method

Intitialize() public static method

public static Intitialize ( bool Hard_Reset ) : void
Hard_Reset bool
return void
        public static void Intitialize(bool Hard_Reset)
        {
            if (!Hard_Reset)
            {
                foreach (CAT62.CAT062DataItem Item in CAT62.I062DataItems)
                    Item.value = null;
            }
            else
            {

                I062DataItems.Clear();

                // I062/010 Data Source Identifier
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("010")].ID = "010";
                I062DataItems[ItemIDToIndex("010")].Description = "Data Source Identifier";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("010")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("010")].CurrentlyPresent = false;
                // I062/015 Service Identification
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("015")].ID = "015";
                I062DataItems[ItemIDToIndex("015")].Description = "Service Identification";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("015")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("015")].CurrentlyPresent = false;
                // I062/070 Time Of Track Information
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("070")].ID = "070";
                I062DataItems[ItemIDToIndex("070")].Description = "Time Of Track Information";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("070")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("070")].CurrentlyPresent = false;
                // I062/105 Calculated Track Position (WGS-84)
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("105")].ID = "105";
                I062DataItems[ItemIDToIndex("105")].Description = "Calculated Track Position (WGS-84)";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("105")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("105")].CurrentlyPresent = false;
                // I062/100 Calculated Track Position (Cartesian)
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("100")].ID = "100";
                I062DataItems[ItemIDToIndex("100")].Description = "Data Source Identifier";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("100")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("100")].CurrentlyPresent = false;
                // I062/185 Calculated Track Velocity (Cartesian)
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("185")].ID = "185";
                I062DataItems[ItemIDToIndex("185")].Description = "Calculated Track Velocity (Cartesian)";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("185")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("185")].CurrentlyPresent = false;
                // I062/210 Calculated Acceleration (Cartesian)
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("210")].ID = "210";
                I062DataItems[ItemIDToIndex("210")].Description = "Calculated Acceleration (Cartesian)";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("210")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("210")].CurrentlyPresent = false;
                // I062/060 Track Mode 3/A Code
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("060")].ID = "060";
                I062DataItems[ItemIDToIndex("060")].Description = " Track Mode 3/A Code";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("060")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("060")].CurrentlyPresent = false;
                // I062/245 Target Identification
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("245")].ID = "245";
                I062DataItems[ItemIDToIndex("245")].Description = "Target Identification";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("245")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("245")].CurrentlyPresent = false;
                // I062/380 Aircraft Derived Data
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("380")].ID = "380";
                I062DataItems[ItemIDToIndex("380")].Description = "Aircraft Derived Data";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("380")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("380")].CurrentlyPresent = false;
                // I062/040 Track Number
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("040")].ID = "040";
                I062DataItems[ItemIDToIndex("040")].Description = "Track Number";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("040")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("040")].CurrentlyPresent = false;
                // I062/080 Track Status
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("080")].ID = "080";
                I062DataItems[ItemIDToIndex("080")].Description = "Track Status";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("080")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("080")].CurrentlyPresent = false;
                // I062/290 System Track Update Ages
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("290")].ID = "290";
                I062DataItems[ItemIDToIndex("290")].Description = "System Track Update Ages";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("290")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("290")].CurrentlyPresent = false;
                // I062/200 Mode of Movement
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("200")].ID = "200";
                I062DataItems[ItemIDToIndex("200")].Description = "Mode of Movement";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("200")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("200")].CurrentlyPresent = false;
                // I062/295 Track Data Ages
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("295")].ID = "295";
                I062DataItems[ItemIDToIndex("295")].Description = "Track Data Ages";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("295")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("295")].CurrentlyPresent = false;
                // I062/136 Measured Flight Level
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("136")].ID = "136";
                I062DataItems[ItemIDToIndex("136")].Description = "Measured Flight Level";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("136")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("136")].CurrentlyPresent = false;
                // I062/130 Calculated Track Geometric Altitude
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("130")].ID = "130";
                I062DataItems[ItemIDToIndex("130")].Description = "Calculated Track Geometric Altitude";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("130")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("130")].CurrentlyPresent = false;
                // I062/135 Calculated Track Barometric Altitude
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("135")].ID = "135";
                I062DataItems[ItemIDToIndex("135")].Description = "Calculated Track Barometric Altitude ";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("135")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("135")].CurrentlyPresent = false;
                // I062/220 Calculated Rate Of Climb/Descent
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("220")].ID = "220";
                I062DataItems[ItemIDToIndex("220")].Description = "Calculated Rate Of Climb/Descent";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("220")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("220")].CurrentlyPresent = false;
                // I062/390 Flight Plan Related Data
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("390")].ID = "390";
                I062DataItems[ItemIDToIndex("390")].Description = "Flight Plan Related Data";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("390")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("390")].CurrentlyPresent = false;
                // I062/270 Target Size & Orientation
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("270")].ID = "270";
                I062DataItems[ItemIDToIndex("270")].Description = "Target Size & Orientation";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("270")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("270")].CurrentlyPresent = false;
                // I062/300 Vehicle Fleet Identification
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("300")].ID = "300";
                I062DataItems[ItemIDToIndex("300")].Description = "Vehicle Fleet Identification";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("300")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("300")].CurrentlyPresent = false;
                // I062/110 Mode 5 Data reports & Extended Mode 1 Code
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("110")].ID = "110";
                I062DataItems[ItemIDToIndex("110")].Description = "Mode 5 Data reports & Extended Mode 1 Code";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("110")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("110")].CurrentlyPresent = false;
                // I062/120 Track Mode 2 Code
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("120")].ID = "120";
                I062DataItems[ItemIDToIndex("120")].Description = "Track Mode 2 Code";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("120")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("120")].CurrentlyPresent = false;
                // I062/510 Composed Track Number
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("510")].ID = "510";
                I062DataItems[ItemIDToIndex("510")].Description = "Composed Track Number";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("510")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("510")].CurrentlyPresent = false;
                // I062/500 Estimated Accuracies
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("500")].ID = "500";
                I062DataItems[ItemIDToIndex("500")].Description = "Estimated Accuracies";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("500")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("500")].CurrentlyPresent = false;
                // I062/340 Measured Information
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("340")].ID = "340";
                I062DataItems[ItemIDToIndex("340")].Description = "Measured Information";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("340")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("340")].CurrentlyPresent = false;
                // I062/REF
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("REF")].ID = "REF";
                I062DataItems[ItemIDToIndex("REF")].Description = "Reserved Expansion Field";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("REF")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("REF")].CurrentlyPresent = false;
                // I062/SPI
                I062DataItems.Add(new CAT062DataItem());
                I062DataItems[ItemIDToIndex("SPI")].ID = "SPI";
                I062DataItems[ItemIDToIndex("SPI")].Description = "Special Purpose Indicator";
                if (Hard_Reset)
                    I062DataItems[ItemIDToIndex("SPI")].HasBeenPresent = false;
                I062DataItems[ItemIDToIndex("SPI")].CurrentlyPresent = false;
            }
        }

Usage Example

Example #1
0
        // This method will accept a buffer of data with the assumption that
        // category has been determined. It will then decode the data and save
        // it in the shared buffer. Everry time a message is passed in the data
        // will be appended to the buffer. This means that each line will contain
        // data for one message. For data items which are not in the message,
        // indicated by the FSPEC field, N/A will be inserted instead. The shared
        // buffer is loacted in the SharedData and will not be saved. It is responsibility
        // of the user to save the data in a file it desired.
        public static void Do(byte[] Data)
        {
            // I048/010     Data Source Identifier                     2
            // NO NEED to do anything this is handled in CAT01

            // 2.     - Spare -

            // I062/015 Service Identification                          1
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("015")].CurrentlyPresent == true)
            {
                CAT62I015UserData.DecodeCAT62I015(Data);
            }

            // I062/070 Time Of Track Information                       3
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("070")].CurrentlyPresent == true)
            {
                CAT62I070UserData.DecodeCAT62I070(Data);
            }

            // I062/105 Calculated Track Position (WGS-84)              8
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("105")].CurrentlyPresent == true)
            {
                CAT62I105UserData.DecodeCAT62I105(Data);
            }

            // I062/100 Calculated Track Position (Cartesian)           6
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("100")].CurrentlyPresent == true)
            {
                CAT62I100UserData.DecodeCAT62I100(Data);
            }

            // I062/185 Calculated Track Velocity (Cartesian)           4
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("185")].CurrentlyPresent == true)
            {
                CAT62I185UserData.DecodeCAT62I185(Data);
            }

            // FX.     - Field extension indicator -
            //

            // I062/210 Calculated Acceleration (Cartesian)             2
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("210")].CurrentlyPresent == true)
            {
                CAT62I210UserData.DecodeCAT62I210(Data);
            }

            // I062/060 Track Mode 3/A Code                             2
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("060")].CurrentlyPresent == true)
            {
                CAT62I060UserData.DecodeCAT62I060(Data);
            }

            // I062/245 Target Identification                           7
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("245")].CurrentlyPresent == true)
            {
                CAT62I245UserData.DecodeCAT62I245(Data);
            }

            // I062/380 Aircraft Derived Data                           1+
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("380")].CurrentlyPresent == true)
            {
                CAT62I380UserData.DecodeCAT62I380(Data);
            }

            // I062/040 Track Number                                    2
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("040")].CurrentlyPresent == true)
            {
                CAT62I040UserData.DecodeCAT62I040(Data);
            }

            // I062/080 Track Status                                    1+
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("080")].CurrentlyPresent == true)
            {
                CAT62I080UserData.DecodeCAT62I080(Data);
            }

            // I062/290 System Track Update Ages                        1+
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("290")].CurrentlyPresent == true)
            {
                CAT62I290UserData.DecodeCAT62I290(Data);
            }

            // FX.     - Field extension indicator -
            //
            // I062/200 Mode of Movement                                1
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("200")].CurrentlyPresent == true)
            {
                CAT62I200UserData.DecodeCAT62I200(Data);
            }

            // I062/295 Track Data Ages                                 1+
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("295")].CurrentlyPresent == true)
            {
                CAT62I295UserData.DecodeCAT62I295(Data);
            }

            // I062/136 Measured Flight Level                           2
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("136")].CurrentlyPresent == true)
            {
                CAT62I136UserData.DecodeCAT62I136(Data);
            }

            // I062/130 Calculated Track Geometric Altitude             2
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("130")].CurrentlyPresent == true)
            {
                CAT62I130UserData.DecodeCAT62I130(Data);
            }

            // I062/135 Calculated Track Barometric Altitude            2
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("135")].CurrentlyPresent == true)
            {
                CAT62I135UserData.DecodeCAT62I135(Data);
            }

            // I062/220 Calculated Rate Of Climb/Descent                2
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("220")].CurrentlyPresent == true)
            {
                CAT62I220UserData.DecodeCAT62I220(Data);
            }

            // I062/390 Flight Plan Related Data                        1+
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("390")].CurrentlyPresent == true)
            {
                CAT62I390UserData.DecodeCAT62I390(Data);
            }

            // FX.     - Field extension indicator -
            //

            // I062/270 Target Size & Orientation                       1+
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("270")].CurrentlyPresent == true)
            {
                CAT62I270UserData.DecodeCAT62I270(Data);
            }

            // I062/300 Vehicle Fleet Identification                    1
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("300")].CurrentlyPresent == true)
            {
                CAT62I300UserData.DecodeCAT62I300(Data);
            }

            // I062/110 Mode 5 Data reports & Extended Mode 1 Code      1+
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("110")].CurrentlyPresent == true)
            {
                CAT62I110UserData.DecodeCAT62I110(Data);
            }

            // I062/120 Track Mode 2 Code                               2
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("120")].CurrentlyPresent == true)
            {
                CAT62I120UserData.DecodeCAT62I120(Data);
            }

            // I062/510 Composed Track Number                           3+
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("510")].CurrentlyPresent == true)
            {
                CAT62I510UserData.DecodeCAT62I510(Data);
            }

            // I062/500 Estimated Accuracies                            1+
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("500")].CurrentlyPresent == true)
            {
                CAT62I500UserData.DecodeCAT62I500(Data);
            }

            // I062/340 Measured Information                            1+
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("340")].CurrentlyPresent == true)
            {
                CAT62I340UserData.DecodeCAT62I340(Data);
            }

            // FX.     - Field extension indicator -

            // I062/500 Estimated Accuracies                            1+
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("REF")].CurrentlyPresent == true)
            {
                CAT62IREFUserData.DecodeCAT62IREF(Data);
            }

            // I062/340 Measured Information                            1+
            if (CAT62.I062DataItems[CAT62.ItemIDToIndex("SPI")].CurrentlyPresent == true)
            {
                CAT62ISPIUserData.DecodeCAT62ISPI(Data);
            }


            ////////////////////////////////////////////////////////////////////////////////////
            // All CAT62 data has been decoded, so lets save off the message data to the global
            // storage for latter usage

            MainASTERIXDataStorage.CAT62Data CAT62MessageData = new MainASTERIXDataStorage.CAT62Data();

            foreach (CAT62.CAT062DataItem Item in CAT62.I062DataItems)
            {
                CAT62.CAT062DataItem MyItem = new CAT62.CAT062DataItem();

                MyItem.CurrentlyPresent = Item.CurrentlyPresent;
                MyItem.Description      = Item.Description;
                MyItem.HasBeenPresent   = Item.HasBeenPresent;
                MyItem.ID    = Item.ID;
                MyItem.value = Item.value;
                CAT62MessageData.CAT62DataItems.Add(MyItem);
            }

            MainASTERIXDataStorage.CAT62Message.Add(CAT62MessageData);
            CAT62.Intitialize(false);
        }