public static void GetDisplayData(bool Return_Buffered, out System.Collections.Generic.List<TargetType> TargetList)
{
// First remove all the previous data
CurrentTargetList.Clear();
PSRTargetList.Clear();
if (Return_Buffered == true)
{
if (MainASTERIXDataStorage.CAT01Message.Count > 0)
{
for (int Start_Idx = 0; Start_Idx < MainASTERIXDataStorage.CAT01Message.Count; Start_Idx++)
{
MainASTERIXDataStorage.CAT01Data Msg = MainASTERIXDataStorage.CAT01Message[Start_Idx];
// Get Target Descriptor
CAT01I020UserData MyCAT01I020UserData = (CAT01I020UserData)Msg.CAT01DataItems[CAT01.ItemIDToIndex("020")].value;
// Get Mode3A
CAT01I070Types.CAT01070Mode3UserData Mode3AData = (CAT01I070Types.CAT01070Mode3UserData)Msg.CAT01DataItems[CAT01.ItemIDToIndex("070")].value;
// Get Lat/Long
CAT01I040Types.CAT01I040MeasuredPosInPolarCoordinates LatLongData_40 = (CAT01I040Types.CAT01I040MeasuredPosInPolarCoordinates)Msg.CAT01DataItems[CAT01.ItemIDToIndex("040")].value;
CAT01I042Types.CAT01I042CalculatedPositionInCartesianCoordinates LatLongData_42 = (CAT01I042Types.CAT01I042CalculatedPositionInCartesianCoordinates)Msg.CAT01DataItems[CAT01.ItemIDToIndex("042")].value;
// Get Flight Level
CAT01I090Types.CAT01I090FlightLevelUserData FlightLevelData = (CAT01I090Types.CAT01I090FlightLevelUserData)Msg.CAT01DataItems[CAT01.ItemIDToIndex("090")].value;
// Get Time Since Midnight
CAT01I141Types.CAT01141ElapsedTimeSinceMidnight TimeSinceMidnight = (CAT01I141Types.CAT01141ElapsedTimeSinceMidnight)Msg.CAT01DataItems[CAT01.ItemIDToIndex("141")].value;
// Get Calculated GSPD and HDG_Type
CAT01I200Types.CalculatedGSPandHDG_Type CalculatedGSPandHDG = null;
if (MyCAT01I020UserData.Type_Of_Report == CAT01I020Types.Type_Of_Report_Type.Track)
CalculatedGSPandHDG = (CAT01I200Types.CalculatedGSPandHDG_Type)Msg.CAT01DataItems[CAT01.ItemIDToIndex("200")].value;
TargetType Target = new TargetType();
if ((MyCAT01I020UserData != null) && (LatLongData_40 != null || LatLongData_42 != null))
{
double Lat, Lng = 0.0;
if (LatLongData_40 != null)
{
Lat = LatLongData_40.LatLong.GetLatLongDecimal().LatitudeDecimal;
Lng = LatLongData_40.LatLong.GetLatLongDecimal().LongitudeDecimal;
}
else
{
Lat = LatLongData_42.LatLong.GetLatLongDecimal().LatitudeDecimal;
Lng = LatLongData_42.LatLong.GetLatLongDecimal().LongitudeDecimal;
}
if (MyCAT01I020UserData.Type_Of_Radar_Detection == CAT01I020Types.Radar_Detection_Type.Primary)
{
Target.ModeA = "PSR";
Target.ModeC = "";
Target.Lat = Lat;
Target.Lon = Lng;
Target.TimeSinceMidnight = TimeSinceMidnight.ElapsedTimeSinceMidnight;
Target.TrackTerminateTreshold = 0;
if (CalculatedGSPandHDG != null)
{
if (CalculatedGSPandHDG.Is_Valid)
{
Target.CALC_GSPD = Math.Round(CalculatedGSPandHDG.GSPD, 0).ToString();
Target.CALC_HDG = Math.Round(CalculatedGSPandHDG.HDG, 0).ToString();
}
}
PSRTargetList.Add(Target);
}
else if ((MyCAT01I020UserData.Type_Of_Radar_Detection != CAT01I020Types.Radar_Detection_Type.No_Detection) && (MyCAT01I020UserData.Type_Of_Radar_Detection != CAT01I020Types.Radar_Detection_Type.Unknown_Data))
{
if (Mode3AData != null)
{
if (Mode3AData.Code_Validated == CAT01I070Types.Code_Validation_Type.Code_Validated)
{
Target.ModeA = Mode3AData.Mode3A_Code;
if (FlightLevelData != null)
if (FlightLevelData.Code_Validated == CAT01I090Types.Code_Validation_Type.Code_Validated)
Target.ModeC = FlightLevelData.FlightLevel.ToString();
else
Target.ModeC = "---";
else
Target.ModeC = "---";
Target.Lat = Lat;
Target.Lon = Lng;
if (TimeSinceMidnight != null)
Target.TimeSinceMidnight = TimeSinceMidnight.ElapsedTimeSinceMidnight;
if (CalculatedGSPandHDG != null)
{
if (CalculatedGSPandHDG.Is_Valid)
{
Target.CALC_GSPD = Math.Round(CalculatedGSPandHDG.GSPD, 0).ToString();
Target.CALC_HDG = Math.Round(CalculatedGSPandHDG.HDG, 0).ToString();
}
}
CurrentTargetList.Add(Target);
}
}
}
}
}
}
else if (MainASTERIXDataStorage.CAT48Message.Count > 0)
{
for (int Start_Idx = 0; Start_Idx < MainASTERIXDataStorage.CAT48Message.Count; Start_Idx++)
{
MainASTERIXDataStorage.CAT48Data Msg = MainASTERIXDataStorage.CAT48Message[Start_Idx];
// Get Target Descriptor
CAT48I020UserData MyCAT48I020UserData = (CAT48I020UserData)Msg.CAT48DataItems[CAT48.ItemIDToIndex("020")].value;
//
CAT48I070Types.CAT48I070Mode3UserData Mode3AData = (CAT48I070Types.CAT48I070Mode3UserData)Msg.CAT48DataItems[CAT48.ItemIDToIndex("070")].value;
// Get Lat/Long in decimal
CAT48I040Types.CAT48I040MeasuredPosInPolarCoordinates LatLongData = (CAT48I040Types.CAT48I040MeasuredPosInPolarCoordinates)Msg.CAT48DataItems[CAT48.ItemIDToIndex("040")].value;
// Get Flight Level
CAT48I090Types.CAT48I090FlightLevelUserData FlightLevelData = (CAT48I090Types.CAT48I090FlightLevelUserData)Msg.CAT48DataItems[CAT48.ItemIDToIndex("090")].value;
// Get Mode S Address
CAT48I220Types.CAT48AC_Address_Type Mode_S_Address = (CAT48I220Types.CAT48AC_Address_Type)Msg.CAT48DataItems[CAT48.ItemIDToIndex("220")].value;
// Get ACID data for Mode-S
CAT48I240Types.CAT48I240ACID_Data ACID_Mode_S = (CAT48I240Types.CAT48I240ACID_Data)Msg.CAT48DataItems[CAT48.ItemIDToIndex("240")].value;
// Get Mode-S MB Data
CAT48I250Types.CAT48I250DataType CAT48I250Mode_S_MB = (CAT48I250Types.CAT48I250DataType)Msg.CAT48DataItems[CAT48.ItemIDToIndex("250")].value;
// Get Time since midnight
CAT48I140Types.CAT48140ElapsedTimeSinceMidnight TimeSinceMidnight = (CAT48I140Types.CAT48140ElapsedTimeSinceMidnight)Msg.CAT48DataItems[CAT48.ItemIDToIndex("140")].value;
// Get Calculated GSPD and HDG_Type
CAT48I200Types.CalculatedGSPandHDG_Type CalculatedGSPandHDG = (CAT48I200Types.CalculatedGSPandHDG_Type)Msg.CAT48DataItems[CAT48.ItemIDToIndex("200")].value;
TargetType Target = new TargetType();
if (MyCAT48I020UserData != null)
{
if ((MyCAT48I020UserData.Type_Of_Report == CAT48I020Types.Type_Of_Report_Type.Single_PSR) || (MyCAT48I020UserData.Type_Of_Report == CAT48I020Types.Type_Of_Report_Type.Mode_S_Roll_Call_PSR))
{
Target.ModeA = "PSR";
Target.ModeC = "";
Target.ACID_Mode_S = "";
Target.Lat = LatLongData.LatLong.GetLatLongDecimal().LatitudeDecimal;
Target.Lon = LatLongData.LatLong.GetLatLongDecimal().LongitudeDecimal;
Target.TimeSinceMidnight = TimeSinceMidnight.ElapsedTimeSinceMidnight;
Target.TrackTerminateTreshold = 0;
PSRTargetList.Add(Target);
}
else if ((MyCAT48I020UserData.Type_Of_Report != CAT48I020Types.Type_Of_Report_Type.No_Detection) &&
(MyCAT48I020UserData.Type_Of_Report != CAT48I020Types.Type_Of_Report_Type.Unknown_Data))
{
if (Mode3AData != null)
{
if (Mode3AData.Code_Validated == CAT48I070Types.Code_Validation_Type.Code_Validated)
{
Target.ModeA = Mode3AData.Mode3A_Code;
if (FlightLevelData != null)
{
try
{
if (FlightLevelData.Code_Validated == CAT48I090Types.Code_Validation_Type.Code_Validated)
Target.ModeC = FlightLevelData.FlightLevel.ToString();
else
Target.ModeC = "---";
}
catch
{
MessageBox.Show("Dynamic Display Builder, CAT48, Flight Level");
}
}
else
Target.ModeC = "---";
if (ACID_Mode_S != null)
Target.ACID_Mode_S = ACID_Mode_S.ACID;
else
Target.ACID_Mode_S = "N/A";
Target.Lat = LatLongData.LatLong.GetLatLongDecimal().LatitudeDecimal;
Target.Lon = LatLongData.LatLong.GetLatLongDecimal().LongitudeDecimal;
Target.TimeSinceMidnight = TimeSinceMidnight.ElapsedTimeSinceMidnight;
if (Mode_S_Address != null)
{
if (Mode_S_Address.Is_Valid)
Target.Mode_S_Addr = Mode_S_Address.AC_ADDRESS_String;
else
Target.Mode_S_Addr = "N/A";
}
else
Target.Mode_S_Addr = "N/A";
if (CAT48I250Mode_S_MB != null)
{
if (CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.Present_This_Cycle)
{
if (CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.MAG_HDG.Is_Valid)
Target.DAP_HDG = Math.Round(CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.MAG_HDG.Value).ToString();
else
Target.DAP_HDG = "N/A";
if (CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.MACH.Is_Valid)
Target.MACH = Math.Round(CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.MACH.Value, 3).ToString();
else
Target.MACH = "N/A";
if (CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.IAS.Is_Valid)
Target.IAS = CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.IAS.Value.ToString();
else
Target.IAS = "N/A";
if (CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.Inertial_RoC.Is_Valid)
Target.Rate_Of_Climb = "I:" + CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.Inertial_RoC.Value.ToString();
else
Target.Rate_Of_Climb = "I:N/A";
if (CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.Baro_RoC.Is_Valid)
Target.Rate_Of_Climb = Target.Rate_Of_Climb + "/" + "B:" + CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.Baro_RoC.Value.ToString();
else
Target.Rate_Of_Climb = Target.Rate_Of_Climb + "/" + "B:N/A";
}
if (CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.Present_This_Cycle)
{
if (CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.Roll_Ang.Is_Valid)
Target.Roll_Ang = Math.Round(CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.Roll_Ang.Value).ToString();
else
Target.Roll_Ang = "N/A";
if (CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.TAS.Is_Valid)
Target.TAS = CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.TAS.Value.ToString();
else
Target.TAS = "N/A";
if (CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.GND_SPD.Is_Valid)
Target.DAP_GSPD = Math.Round(CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.GND_SPD.Value).ToString();
else
Target.DAP_GSPD = "N/A";
if (CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.TRUE_TRK.Is_Valid)
Target.TRK = Math.Round(CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.TRUE_TRK.Value).ToString();
else
Target.TRK = "N/A";
}
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.Present_This_Cycle)
{
switch (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.Status_Data.Target_Altitude_Source)
{
case CAT48I250Types.BDS40_Selected_Vertical_Intention_Report.Status.Target_Altitude_Mode_Type.Aircraft_Alt:
Target.SelectedAltitude_ShortTerm = "A/C:" + Target.ModeC;
break;
case CAT48I250Types.BDS40_Selected_Vertical_Intention_Report.Status.Target_Altitude_Mode_Type.FCU_MCP_Selected_Alt:
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.MCP_FCU_Sel_ALT.Is_Valid)
Target.SelectedAltitude_ShortTerm = "MCP:" + CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.MCP_FCU_Sel_ALT.Value.ToString();
else
Target.SelectedAltitude_ShortTerm = "MCP:N/A";
break;
case CAT48I250Types.BDS40_Selected_Vertical_Intention_Report.Status.Target_Altitude_Mode_Type.FMS_Selected_Alt:
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.FMS_Sel_ALT.Is_Valid)
Target.SelectedAltitude_ShortTerm = "FMS:" + CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.FMS_Sel_ALT.Value.ToString();
else
Target.SelectedAltitude_ShortTerm = "FMS:N/A";
break;
case CAT48I250Types.BDS40_Selected_Vertical_Intention_Report.Status.Target_Altitude_Mode_Type.Unknown:
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.MCP_FCU_Sel_ALT.Is_Valid)
Target.SelectedAltitude_ShortTerm = "UNK:" + CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.FMS_Sel_ALT.Value.ToString();
else
Target.SelectedAltitude_ShortTerm = "N/A";
break;
}
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.MCP_FCU_Sel_ALT.Is_Valid)
{
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.Status_Data.MCP_FCU_Mode_Bits_Populated)
{
Target.SelectedAltitude_LongTerm = "";
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.Status_Data.ALT_Hold_Active)
Target.SelectedAltitude_LongTerm = Target.SelectedAltitude_LongTerm + "AH:";
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.Status_Data.APP_Mode_Active)
Target.SelectedAltitude_LongTerm = Target.SelectedAltitude_LongTerm + "AM:";
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.Status_Data.VNAV_Mode_Active)
Target.SelectedAltitude_LongTerm = Target.SelectedAltitude_LongTerm + "MV:";
}
Target.SelectedAltitude_LongTerm = Target.SelectedAltitude_LongTerm + CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.MCP_FCU_Sel_ALT.Value.ToString();
}
else
Target.SelectedAltitude_LongTerm = "N/A";
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.Baro_Sel_ALT.Is_Valid)
Target.Barometric_Setting = Math.Round(CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.Baro_Sel_ALT.Value, 1).ToString() + "mb";
else
Target.Barometric_Setting = "N/A";
}
}
// If GSPD and HDG are available from CAT48/I200 then use it
if (CalculatedGSPandHDG != null)
{
if (CalculatedGSPandHDG.Is_Valid)
{
Target.CALC_GSPD = Math.Round(CalculatedGSPandHDG.GSPD, 0).ToString();
Target.CALC_HDG = Math.Round(CalculatedGSPandHDG.HDG, 0).ToString();
}
}
CurrentTargetList.Add(Target);
}
}
}
}
}
}
else if (MainASTERIXDataStorage.CAT62Message.Count > 0)
{
for (int Start_Idx = 0; Start_Idx < MainASTERIXDataStorage.CAT62Message.Count; Start_Idx++)
{
MainASTERIXDataStorage.CAT62Data Msg = MainASTERIXDataStorage.CAT62Message[Start_Idx];
CAT62I060Types.CAT62060Mode3UserData Mode3AData = (CAT62I060Types.CAT62060Mode3UserData)Msg.CAT62DataItems[CAT62.ItemIDToIndex("060")].value;
GeoCordSystemDegMinSecUtilities.LatLongClass LatLongData = (GeoCordSystemDegMinSecUtilities.LatLongClass)Msg.CAT62DataItems[CAT62.ItemIDToIndex("105")].value;
CAT62I380Types.CAT62I380Data CAT62I380Data = (CAT62I380Types.CAT62I380Data)Msg.CAT62DataItems[CAT62.ItemIDToIndex("380")].value;
CAT62I220Types.CalculatedRateOfClimbDescent CAT62I220Data = (CAT62I220Types.CalculatedRateOfClimbDescent)Msg.CAT62DataItems[CAT62.ItemIDToIndex("220")].value;
CAT62I070Types.CAT62070ElapsedTimeSinceMidnight TimeSinceMidnight = (CAT62I070Types.CAT62070ElapsedTimeSinceMidnight)Msg.CAT62DataItems[CAT62.ItemIDToIndex("070")].value;
CAT62I185Types.CalculatedGSPandHDG_Type GSPD_and_HDG = (CAT62I185Types.CalculatedGSPandHDG_Type)Msg.CAT62DataItems[CAT62.ItemIDToIndex("185")].value;
TargetType Target = new TargetType();
if (Msg.CAT62DataItems[CAT62.ItemIDToIndex("040")].value != null)
Target.TrackNumber = (int)Msg.CAT62DataItems[CAT62.ItemIDToIndex("040")].value;
if (Mode3AData != null && LatLongData != null)
{
Target.ModeA = Mode3AData.Mode3A_Code;
if (Msg.CAT62DataItems[CAT62.ItemIDToIndex("136")].value != null)
{
try
{
double FlightLevel = (double)Msg.CAT62DataItems[CAT62.ItemIDToIndex("136")].value;
Target.ModeC = FlightLevel.ToString();
}
catch
{
Target.ModeC = "---";
}
}
else
{
Target.ModeC = "---";
}
if (CAT62I380Data != null)
{
if (CAT62I380Data.AC_Address.Is_Valid)
Target.Mode_S_Addr = CAT62I380Data.AC_Address.AC_ADDRESS_String;
else
Target.Mode_S_Addr = "N/A";
if (CAT62I380Data.ACID.Is_Valid)
Target.ACID_Mode_S = CAT62I380Data.ACID.ACID_String;
else
Target.ACID_Mode_S = "N/A";
if (CAT62I380Data.TAS.Is_Valid)
Target.TAS = CAT62I380Data.TAS.TAS.ToString();
else
Target.TAS = "N/A";
if (CAT62I380Data.IAS.Is_Valid)
Target.IAS = CAT62I380Data.IAS.IAS.ToString();
else
Target.IAS = "N/A";
if (CAT62I380Data.MACH.Is_Valid)
Target.MACH = Math.Round(CAT62I380Data.MACH.MACH, 3).ToString();
else
Target.MACH = "N/A";
if (CAT62I380Data.M_HDG.Is_Valid)
Target.DAP_HDG = Math.Round(CAT62I380Data.M_HDG.M_HDG).ToString();
else
Target.DAP_HDG = "N/A";
if (CAT62I380Data.TRK.Is_Valid)
Target.TRK = Math.Round(CAT62I380Data.TRK.TRK).ToString();
else
Target.TRK = "N/A";
if (CAT62I380Data.GSPD.Is_Valid)
Target.DAP_GSPD = Math.Round(CAT62I380Data.GSPD.GSPD).ToString();
else
Target.DAP_GSPD = "N/A";
if (CAT62I380Data.Rool_Angle.Is_Valid)
Target.Roll_Ang = Math.Round(CAT62I380Data.Rool_Angle.Rool_Angle, 1).ToString();
else
Target.Roll_Ang = "N/A";
if (CAT62I380Data.FS_Selected_Altitude.Is_Valid)
{
Target.SelectedAltitude_LongTerm = "";
if (CAT62I380Data.FS_Selected_Altitude.Altitude_Hold_Active)
Target.SelectedAltitude_LongTerm = Target.SelectedAltitude_LongTerm + "AH:";
if (CAT62I380Data.FS_Selected_Altitude.Approach_Mode_Active)
Target.SelectedAltitude_LongTerm = Target.SelectedAltitude_LongTerm + "AM:";
if (CAT62I380Data.FS_Selected_Altitude.Manage_Mode_Active)
Target.SelectedAltitude_LongTerm = Target.SelectedAltitude_LongTerm + "MV:";
Target.SelectedAltitude_LongTerm = Target.SelectedAltitude_LongTerm + CAT62I380Data.FS_Selected_Altitude.SelectedAltitude.ToString();
}
else
Target.SelectedAltitude_LongTerm = "N/A";
if (CAT62I380Data.Selected_Altitude.Is_Valid)
{
Target.SelectedAltitude_ShortTerm = "";
switch (CAT62I380Data.Selected_Altitude.Source)
{
case CAT62I380Types.CAT62SelectedAltitudeType.SourceType.AircraftAltitude:
Target.SelectedAltitude_ShortTerm = Target.SelectedAltitude_ShortTerm + "A/C:";
break;
case CAT62I380Types.CAT62SelectedAltitudeType.SourceType.FCU_MCP:
Target.SelectedAltitude_ShortTerm = Target.SelectedAltitude_ShortTerm + "MCP:";
break;
case CAT62I380Types.CAT62SelectedAltitudeType.SourceType.FMS_Selected:
Target.SelectedAltitude_ShortTerm = Target.SelectedAltitude_ShortTerm + "FMS:";
break;
case CAT62I380Types.CAT62SelectedAltitudeType.SourceType.Unknown:
Target.SelectedAltitude_ShortTerm = Target.SelectedAltitude_ShortTerm + "UKN:";
break;
}
Target.SelectedAltitude_ShortTerm = Target.SelectedAltitude_ShortTerm + CAT62I380Data.Selected_Altitude.SelectedAltitude.ToString();
}
else
Target.SelectedAltitude_ShortTerm = "N/A";
if (CAT62I380Data.Baro_Press_Setting.Is_Valid)
Target.Barometric_Setting = Math.Round(CAT62I380Data.Baro_Press_Setting.Baro_Pressure_Setting, 1).ToString() + "mb";
else
Target.Barometric_Setting = "N/A";
}
if (CAT62I220Data != null)
{
if (CAT62I220Data.Is_Valid == true)
Target.Rate_Of_Climb = CAT62I220Data.Value.ToString();
else
Target.Rate_Of_Climb = "N/A";
}
else
{
Target.Rate_Of_Climb = "N/A";
}
Target.Lat = LatLongData.GetLatLongDecimal().LatitudeDecimal;
Target.Lon = LatLongData.GetLatLongDecimal().LongitudeDecimal;
if (TimeSinceMidnight != null)
Target.TimeSinceMidnight = TimeSinceMidnight.ElapsedTimeSinceMidnight;
if (GSPD_and_HDG != null)
{
if (GSPD_and_HDG.Is_Valid)
{
Target.CALC_GSPD = Math.Round(GSPD_and_HDG.GSPD, 0).ToString();
Target.CALC_HDG = Math.Round(GSPD_and_HDG.HDG, 0).ToString();
}
}
CurrentTargetList.Add(Target);
}
}
}
}
else
{
if (MainASTERIXDataStorage.CAT01Message.Count > 0)
{
for (int Start_Idx = LastDataIndex; Start_Idx < MainASTERIXDataStorage.CAT01Message.Count; Start_Idx++)
{
LastDataIndex++;
MainASTERIXDataStorage.CAT01Data Msg = MainASTERIXDataStorage.CAT01Message[Start_Idx];
// Get Target Descriptor
CAT01I020UserData MyCAT01I020UserData = (CAT01I020UserData)Msg.CAT01DataItems[CAT01.ItemIDToIndex("020")].value;
// Get Mode3A
CAT01I070Types.CAT01070Mode3UserData Mode3AData = (CAT01I070Types.CAT01070Mode3UserData)Msg.CAT01DataItems[CAT01.ItemIDToIndex("070")].value;
// Get Lat/Long
CAT01I040Types.CAT01I040MeasuredPosInPolarCoordinates LatLongData_40 = (CAT01I040Types.CAT01I040MeasuredPosInPolarCoordinates)Msg.CAT01DataItems[CAT01.ItemIDToIndex("040")].value;
CAT01I042Types.CAT01I042CalculatedPositionInCartesianCoordinates LatLongData_42 = (CAT01I042Types.CAT01I042CalculatedPositionInCartesianCoordinates)Msg.CAT01DataItems[CAT01.ItemIDToIndex("042")].value;
// Get Flight Level
CAT01I090Types.CAT01I090FlightLevelUserData FlightLevelData = (CAT01I090Types.CAT01I090FlightLevelUserData)Msg.CAT01DataItems[CAT01.ItemIDToIndex("090")].value;
// Get Time Since Midnight
CAT01I141Types.CAT01141ElapsedTimeSinceMidnight TimeSinceMidnight = (CAT01I141Types.CAT01141ElapsedTimeSinceMidnight)Msg.CAT01DataItems[CAT01.ItemIDToIndex("141")].value;
// Get Calculated GSPD and HDG_Type
CAT01I200Types.CalculatedGSPandHDG_Type CalculatedGSPandHDG = null;
if (MyCAT01I020UserData.Type_Of_Report == CAT01I020Types.Type_Of_Report_Type.Track)
CalculatedGSPandHDG = (CAT01I200Types.CalculatedGSPandHDG_Type)Msg.CAT01DataItems[CAT01.ItemIDToIndex("200")].value;
TargetType Target = new TargetType();
if ((MyCAT01I020UserData != null) && (LatLongData_40 != null || LatLongData_42 != null))
{
double Lat, Lng = 0.0;
if (LatLongData_40 != null)
{
Lat = LatLongData_40.LatLong.GetLatLongDecimal().LatitudeDecimal;
Lng = LatLongData_40.LatLong.GetLatLongDecimal().LongitudeDecimal;
}
else
{
Lat = LatLongData_42.LatLong.GetLatLongDecimal().LatitudeDecimal;
Lng = LatLongData_42.LatLong.GetLatLongDecimal().LongitudeDecimal;
}
if (MyCAT01I020UserData.Type_Of_Radar_Detection == CAT01I020Types.Radar_Detection_Type.Primary)
{
Target.ModeA = "PSR";
Target.ModeC = "";
Target.Lat = Lat;
Target.Lon = Lng;
Target.TimeSinceMidnight = TimeSinceMidnight.ElapsedTimeSinceMidnight;
Target.MyMarker.Position = new PointLatLng(Target.Lat, Target.Lon);
if (CalculatedGSPandHDG != null)
{
if (CalculatedGSPandHDG.Is_Valid)
{
Target.CALC_GSPD = Math.Round(CalculatedGSPandHDG.GSPD, 0).ToString();
Target.CALC_HDG = Math.Round(CalculatedGSPandHDG.HDG, 0).ToString();
}
}
PSRTargetList.Add(Target);
}
else if ((MyCAT01I020UserData.Type_Of_Radar_Detection != CAT01I020Types.Radar_Detection_Type.No_Detection) && (MyCAT01I020UserData.Type_Of_Radar_Detection != CAT01I020Types.Radar_Detection_Type.Unknown_Data))
{
if (Mode3AData != null)
{
if (Mode3AData.Code_Validated == CAT01I070Types.Code_Validation_Type.Code_Validated)
{
Target.ModeA = Mode3AData.Mode3A_Code;
if (FlightLevelData != null)
if (FlightLevelData.Code_Validated == CAT01I090Types.Code_Validation_Type.Code_Validated)
Target.ModeC = FlightLevelData.FlightLevel.ToString();
else
Target.ModeC = "---";
else
Target.ModeC = "---";
Target.Lat = Lat;
Target.Lon = Lng;
Target.TimeSinceMidnight = TimeSinceMidnight.ElapsedTimeSinceMidnight;
if (CalculatedGSPandHDG != null)
{
if (CalculatedGSPandHDG.Is_Valid)
{
Target.CALC_GSPD = Math.Round(CalculatedGSPandHDG.GSPD, 0).ToString();
Target.CALC_HDG = Math.Round(CalculatedGSPandHDG.HDG, 0).ToString();
}
}
CurrentTargetList.Add(Target);
}
}
}
}
}
}
else if (MainASTERIXDataStorage.CAT48Message.Count > 0)
{
for (int Start_Idx = LastDataIndex; Start_Idx < MainASTERIXDataStorage.CAT48Message.Count; Start_Idx++)
{
LastDataIndex++;
MainASTERIXDataStorage.CAT48Data Msg = MainASTERIXDataStorage.CAT48Message[Start_Idx];
CAT48I020UserData MyCAT48I020UserData = (CAT48I020UserData)Msg.CAT48DataItems[CAT48.ItemIDToIndex("020")].value;
CAT48I070Types.CAT48I070Mode3UserData Mode3AData = (CAT48I070Types.CAT48I070Mode3UserData)Msg.CAT48DataItems[CAT48.ItemIDToIndex("070")].value;
// Get Lat/Long in decimal
CAT48I040Types.CAT48I040MeasuredPosInPolarCoordinates LatLongData = (CAT48I040Types.CAT48I040MeasuredPosInPolarCoordinates)Msg.CAT48DataItems[CAT48.ItemIDToIndex("040")].value;
// Get Flight Level
CAT48I090Types.CAT48I090FlightLevelUserData FlightLevelData = (CAT48I090Types.CAT48I090FlightLevelUserData)Msg.CAT48DataItems[CAT48.ItemIDToIndex("090")].value;
// Get Mode S Address
CAT48I220Types.CAT48AC_Address_Type Mode_S_Address = (CAT48I220Types.CAT48AC_Address_Type)Msg.CAT48DataItems[CAT48.ItemIDToIndex("220")].value;
// Get ACID data for Mode-S
CAT48I240Types.CAT48I240ACID_Data ACID_Mode_S = (CAT48I240Types.CAT48I240ACID_Data)Msg.CAT48DataItems[CAT48.ItemIDToIndex("240")].value;
// Get Mode-S MB Data
CAT48I250Types.CAT48I250DataType CAT48I250Mode_S_MB = (CAT48I250Types.CAT48I250DataType)Msg.CAT48DataItems[CAT48.ItemIDToIndex("250")].value;
// Get Time since midnight
CAT48I140Types.CAT48140ElapsedTimeSinceMidnight TimeSinceMidnight = (CAT48I140Types.CAT48140ElapsedTimeSinceMidnight)Msg.CAT48DataItems[CAT48.ItemIDToIndex("140")].value;
// Get Calculated GSPD and HDG_Type
CAT48I200Types.CalculatedGSPandHDG_Type CalculatedGSPandHDG = (CAT48I200Types.CalculatedGSPandHDG_Type)Msg.CAT48DataItems[CAT48.ItemIDToIndex("200")].value;
TargetType Target = new TargetType();
if (MyCAT48I020UserData != null)
{
if ((MyCAT48I020UserData.Type_Of_Report == CAT48I020Types.Type_Of_Report_Type.Single_PSR) ||
(MyCAT48I020UserData.Type_Of_Report == CAT48I020Types.Type_Of_Report_Type.Mode_S_Roll_Call_PSR))
{
Target.ModeA = "PSR";
Target.ModeC = "";
Target.ACID_Mode_S = "";
Target.Lat = LatLongData.LatLong.GetLatLongDecimal().LatitudeDecimal;
Target.Lon = LatLongData.LatLong.GetLatLongDecimal().LongitudeDecimal;
Target.TimeSinceMidnight = TimeSinceMidnight.ElapsedTimeSinceMidnight;
PSRTargetList.Add(Target);
}
else if ((MyCAT48I020UserData.Type_Of_Report != CAT48I020Types.Type_Of_Report_Type.No_Detection) &&
(MyCAT48I020UserData.Type_Of_Report != CAT48I020Types.Type_Of_Report_Type.Unknown_Data))
{
if (Mode3AData != null)
{
if (Mode3AData.Code_Validated == CAT48I070Types.Code_Validation_Type.Code_Validated)
{
Target.ModeA = Mode3AData.Mode3A_Code;
if (FlightLevelData != null)
{
if (FlightLevelData.Code_Validated == CAT48I090Types.Code_Validation_Type.Code_Validated)
Target.ModeC = FlightLevelData.FlightLevel.ToString();
else
Target.ModeC = "---";
}
else
Target.ModeC = "---";
if (ACID_Mode_S != null)
{
Target.ACID_Mode_S = ACID_Mode_S.ACID;
}
else
{
Target.ACID_Mode_S = "N/A";
}
Target.Lat = LatLongData.LatLong.GetLatLongDecimal().LatitudeDecimal;
Target.Lon = LatLongData.LatLong.GetLatLongDecimal().LongitudeDecimal;
Target.TimeSinceMidnight = TimeSinceMidnight.ElapsedTimeSinceMidnight;
if (Mode_S_Address != null)
{
if (Mode_S_Address.Is_Valid)
Target.Mode_S_Addr = Mode_S_Address.AC_ADDRESS_String;
else
Target.Mode_S_Addr = "N/A";
}
else
Target.Mode_S_Addr = "N/A";
if (CAT48I250Mode_S_MB != null)
{
if (CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.Present_This_Cycle)
{
if (CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.MAG_HDG.Is_Valid)
Target.DAP_HDG = Math.Round(CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.MAG_HDG.Value).ToString();
else
Target.DAP_HDG = "N/A";
if (CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.MACH.Is_Valid)
Target.MACH = Math.Round(CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.MACH.Value, 3).ToString();
else
Target.MACH = "N/A";
if (CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.IAS.Is_Valid)
Target.IAS = CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.IAS.Value.ToString();
else
Target.IAS = "N/A";
if (CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.Inertial_RoC.Is_Valid)
Target.Rate_Of_Climb = "I:" + CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.Inertial_RoC.Value.ToString();
else
Target.Rate_Of_Climb = "I:N/A";
if (CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.Baro_RoC.Is_Valid)
Target.Rate_Of_Climb = Target.Rate_Of_Climb + "/" + "B:" + CAT48I250Mode_S_MB.BDS60_HDG_SPD_Report.Baro_RoC.Value.ToString();
else
Target.Rate_Of_Climb = Target.Rate_Of_Climb + "/" + "B:N/A";
}
if (CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.Present_This_Cycle)
{
if (CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.Roll_Ang.Is_Valid)
Target.Roll_Ang = Math.Round(CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.Roll_Ang.Value).ToString();
else
Target.Roll_Ang = "N/A";
if (CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.TAS.Is_Valid)
Target.TAS = CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.TAS.Value.ToString();
else
Target.TAS = "N/A";
if (CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.GND_SPD.Is_Valid)
Target.DAP_GSPD = Math.Round(CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.GND_SPD.Value).ToString();
else
Target.DAP_GSPD = "N/A";
if (CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.TRUE_TRK.Is_Valid)
Target.TRK = Math.Round(CAT48I250Mode_S_MB.BDS50_Track_Turn_Report.TRUE_TRK.Value).ToString();
else
Target.TRK = "N/A";
}
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.Present_This_Cycle)
{
switch (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.Status_Data.Target_Altitude_Source)
{
case CAT48I250Types.BDS40_Selected_Vertical_Intention_Report.Status.Target_Altitude_Mode_Type.Aircraft_Alt:
Target.SelectedAltitude_ShortTerm = "A/C:" + Target.ModeC;
break;
case CAT48I250Types.BDS40_Selected_Vertical_Intention_Report.Status.Target_Altitude_Mode_Type.FCU_MCP_Selected_Alt:
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.MCP_FCU_Sel_ALT.Is_Valid)
Target.SelectedAltitude_ShortTerm = "MCP:" + CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.MCP_FCU_Sel_ALT.Value.ToString();
else
Target.SelectedAltitude_ShortTerm = "MCP:N/A";
break;
case CAT48I250Types.BDS40_Selected_Vertical_Intention_Report.Status.Target_Altitude_Mode_Type.FMS_Selected_Alt:
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.FMS_Sel_ALT.Is_Valid)
Target.SelectedAltitude_ShortTerm = "FMS:" + CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.FMS_Sel_ALT.Value.ToString();
else
Target.SelectedAltitude_ShortTerm = "FMS:N/A";
break;
case CAT48I250Types.BDS40_Selected_Vertical_Intention_Report.Status.Target_Altitude_Mode_Type.Unknown:
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.MCP_FCU_Sel_ALT.Is_Valid)
Target.SelectedAltitude_ShortTerm = "UNK:" + CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.MCP_FCU_Sel_ALT.Value.ToString();
else
Target.SelectedAltitude_ShortTerm = "N/A";
break;
}
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.MCP_FCU_Sel_ALT.Is_Valid)
{
Target.SelectedAltitude_LongTerm = "";
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.Status_Data.MCP_FCU_Mode_Bits_Populated)
{
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.Status_Data.ALT_Hold_Active)
Target.SelectedAltitude_LongTerm = Target.SelectedAltitude_LongTerm + "AH:";
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.Status_Data.APP_Mode_Active)
Target.SelectedAltitude_LongTerm = Target.SelectedAltitude_LongTerm + "AM:";
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.Status_Data.VNAV_Mode_Active)
Target.SelectedAltitude_LongTerm = Target.SelectedAltitude_LongTerm + "MV:";
}
Target.SelectedAltitude_LongTerm = Target.SelectedAltitude_LongTerm + CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.MCP_FCU_Sel_ALT.Value.ToString();
}
else
Target.SelectedAltitude_LongTerm = "N/A";
if (CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.Baro_Sel_ALT.Is_Valid)
Target.Barometric_Setting = Math.Round(CAT48I250Mode_S_MB.BDS40_Selected_Vertical_Intention_Report.Baro_Sel_ALT.Value, 1).ToString() + "mb";
else
Target.Barometric_Setting = "N/A";
}
}
// If GSPD and HDG are available from CAT48/I200 then use it
if (CalculatedGSPandHDG != null)
{
if (CalculatedGSPandHDG.Is_Valid)
{
Target.CALC_GSPD = Math.Round(CalculatedGSPandHDG.GSPD, 0).ToString();
Target.CALC_HDG = Math.Round(CalculatedGSPandHDG.HDG, 0).ToString();
}
}
CurrentTargetList.Add(Target);
}
}
}
}
}
}
else if (MainASTERIXDataStorage.CAT62Message.Count > 0)
{
for (int Start_Idx = LastDataIndex; Start_Idx < MainASTERIXDataStorage.CAT62Message.Count; Start_Idx++)
{
LastDataIndex++;
MainASTERIXDataStorage.CAT62Data Msg = MainASTERIXDataStorage.CAT62Message[Start_Idx];
CAT62I060Types.CAT62060Mode3UserData Mode3AData = (CAT62I060Types.CAT62060Mode3UserData)Msg.CAT62DataItems[CAT62.ItemIDToIndex("060")].value;
// Get Lat/Long in decimal
GeoCordSystemDegMinSecUtilities.LatLongClass LatLongData = (GeoCordSystemDegMinSecUtilities.LatLongClass)Msg.CAT62DataItems[CAT62.ItemIDToIndex("105")].value;
CAT62I220Types.CalculatedRateOfClimbDescent CAT62I220Data = (CAT62I220Types.CalculatedRateOfClimbDescent)Msg.CAT62DataItems[CAT62.ItemIDToIndex("220")].value;
CAT62I380Types.CAT62I380Data CAT62I380Data = (CAT62I380Types.CAT62I380Data)Msg.CAT62DataItems[CAT62.ItemIDToIndex("380")].value;
CAT62I070Types.CAT62070ElapsedTimeSinceMidnight TimeSinceMidnight = (CAT62I070Types.CAT62070ElapsedTimeSinceMidnight)Msg.CAT62DataItems[CAT62.ItemIDToIndex("070")].value;
CAT62I185Types.CalculatedGSPandHDG_Type GSPD_and_HDG = (CAT62I185Types.CalculatedGSPandHDG_Type)Msg.CAT62DataItems[CAT62.ItemIDToIndex("185")].value;
TargetType Target = new TargetType();
if (Msg.CAT62DataItems[CAT62.ItemIDToIndex("040")].value != null)
Target.TrackNumber = (int)Msg.CAT62DataItems[CAT62.ItemIDToIndex("040")].value;
if (Mode3AData != null && LatLongData != null)
{
Target.ModeA = Mode3AData.Mode3A_Code;
if (Msg.CAT62DataItems[CAT62.ItemIDToIndex("136")].value != null)
{
try
{
double FlightLevel = (double)Msg.CAT62DataItems[CAT62.ItemIDToIndex("136")].value;
Target.ModeC = FlightLevel.ToString();
}
catch
{
Target.ModeC = "---";
}
}
else
{
Target.ModeC = "---";
}
if (CAT62I380Data != null)
{
if (CAT62I380Data.AC_Address.Is_Valid)
Target.Mode_S_Addr = CAT62I380Data.AC_Address.AC_ADDRESS_String;
else
Target.Mode_S_Addr = "N/A";
if (CAT62I380Data.ACID.Is_Valid)
Target.ACID_Mode_S = CAT62I380Data.ACID.ACID_String;
else
Target.ACID_Mode_S = "N/A";
if (CAT62I380Data.TAS.Is_Valid)
Target.TAS = CAT62I380Data.TAS.TAS.ToString();
else
Target.TAS = "N/A";
if (CAT62I380Data.IAS.Is_Valid)
Target.IAS = CAT62I380Data.IAS.IAS.ToString();
else
Target.IAS = "N/A";
if (CAT62I380Data.MACH.Is_Valid)
Target.MACH = Math.Round(CAT62I380Data.MACH.MACH, 3).ToString();
else
Target.MACH = "N/A";
if (CAT62I380Data.M_HDG.Is_Valid)
Target.DAP_HDG = Math.Round(CAT62I380Data.M_HDG.M_HDG).ToString();
else
Target.DAP_HDG = "N/A";
if (CAT62I380Data.TRK.Is_Valid)
Target.TRK = Math.Round(CAT62I380Data.TRK.TRK).ToString();
else
Target.TRK = "N/A";
if (CAT62I380Data.GSPD.Is_Valid)
Target.DAP_GSPD = Math.Round(CAT62I380Data.GSPD.GSPD).ToString();
else
Target.DAP_GSPD = "N/A";
if (CAT62I380Data.Rool_Angle.Is_Valid)
Target.Roll_Ang = Math.Round(CAT62I380Data.Rool_Angle.Rool_Angle, 1).ToString();
else
Target.Roll_Ang = "N/A";
if (CAT62I380Data.FS_Selected_Altitude.Is_Valid)
{
Target.SelectedAltitude_LongTerm = "";
if (CAT62I380Data.FS_Selected_Altitude.Altitude_Hold_Active)
Target.SelectedAltitude_LongTerm = Target.SelectedAltitude_LongTerm + "AH:";
if (CAT62I380Data.FS_Selected_Altitude.Approach_Mode_Active)
Target.SelectedAltitude_LongTerm = Target.SelectedAltitude_LongTerm + "AM:";
if (CAT62I380Data.FS_Selected_Altitude.Manage_Mode_Active)
Target.SelectedAltitude_LongTerm = Target.SelectedAltitude_LongTerm + "MV:";
Target.SelectedAltitude_LongTerm = Target.SelectedAltitude_LongTerm + CAT62I380Data.FS_Selected_Altitude.SelectedAltitude.ToString();
}
else
Target.SelectedAltitude_LongTerm = "N/A";
if (CAT62I380Data.Selected_Altitude.Is_Valid)
{
Target.SelectedAltitude_ShortTerm = "";
switch (CAT62I380Data.Selected_Altitude.Source)
{
case CAT62I380Types.CAT62SelectedAltitudeType.SourceType.AircraftAltitude:
Target.SelectedAltitude_ShortTerm = Target.SelectedAltitude_ShortTerm + "A/C:";
break;
case CAT62I380Types.CAT62SelectedAltitudeType.SourceType.FCU_MCP:
Target.SelectedAltitude_ShortTerm = Target.SelectedAltitude_ShortTerm + "MCP:";
break;
case CAT62I380Types.CAT62SelectedAltitudeType.SourceType.FMS_Selected:
Target.SelectedAltitude_ShortTerm = Target.SelectedAltitude_ShortTerm + "FMS:";
break;
case CAT62I380Types.CAT62SelectedAltitudeType.SourceType.Unknown:
Target.SelectedAltitude_ShortTerm = Target.SelectedAltitude_ShortTerm + "UKN:";
break;
}
Target.SelectedAltitude_ShortTerm = Target.SelectedAltitude_ShortTerm + CAT62I380Data.Selected_Altitude.SelectedAltitude.ToString();
}
else
Target.SelectedAltitude_ShortTerm = "N/A";
if (CAT62I380Data.Baro_Press_Setting.Is_Valid)
Target.Barometric_Setting = Math.Round(CAT62I380Data.Baro_Press_Setting.Baro_Pressure_Setting, 1).ToString() + "mb";
else
Target.Barometric_Setting = "N/A";
}
if (CAT62I220Data != null)
{
if (CAT62I220Data.Is_Valid == true)
Target.Rate_Of_Climb = CAT62I220Data.Value.ToString();
else
Target.Rate_Of_Climb = "N/A";
}
else
{
Target.Rate_Of_Climb = "N/A";
}
Target.Lat = LatLongData.GetLatLongDecimal().LatitudeDecimal;
Target.Lon = LatLongData.GetLatLongDecimal().LongitudeDecimal;
if (TimeSinceMidnight != null)
Target.TimeSinceMidnight = TimeSinceMidnight.ElapsedTimeSinceMidnight;
if (GSPD_and_HDG != null)
{
if (GSPD_and_HDG.Is_Valid)
{
Target.CALC_GSPD = Math.Round(GSPD_and_HDG.GSPD, 0).ToString();
Target.CALC_HDG = Math.Round(GSPD_and_HDG.HDG, 0).ToString();
}
}
CurrentTargetList.Add(Target);
}
}
}
}
if (Return_Buffered == false)
{
UpdateGlobalList();
}
STCA.RUN(ref CurrentTargetList);
TargetList = CurrentTargetList;
}