private static void UpdateADI(IADI adi, HsiBits hsibits) { adi.InstrumentState.OffFlag = ((hsibits & HsiBits.ADI_OFF) == HsiBits.ADI_OFF); adi.InstrumentState.AuxFlag = ((hsibits & HsiBits.ADI_AUX) == HsiBits.ADI_AUX); adi.InstrumentState.GlideslopeFlag = ((hsibits & HsiBits.ADI_GS) == HsiBits.ADI_GS); adi.InstrumentState.LocalizerFlag = ((hsibits & HsiBits.ADI_LOC) == HsiBits.ADI_LOC); }
private static void UpdateHSI(IHorizontalSituationIndicator hsi, IEHSI ehsi, HsiBits hsibits, FlightData fromFalcon) { hsi.InstrumentState.OffFlag = ((hsibits & HsiBits.HSI_OFF) == HsiBits.HSI_OFF) && !Extractor.State.OptionsFormIsShowing; hsi.InstrumentState.MagneticHeadingDegrees = (360 + (fromFalcon.yaw / Common.Math.Constants.RADIANS_PER_DEGREE)) % 360; ehsi.InstrumentState.NoDataFlag = ((hsibits & HsiBits.HSI_OFF) == HsiBits.HSI_OFF) && !Extractor.State.OptionsFormIsShowing;; ehsi.InstrumentState.NoPowerFlag = ((fromFalcon.powerBits & (int)PowerBits.BusPowerBattery) != (int)PowerBits.BusPowerBattery) && !Extractor.State.OptionsFormIsShowing; ehsi.InstrumentState.MagneticHeadingDegrees = (360 + (fromFalcon.yaw / Common.Math.Constants.RADIANS_PER_DEGREE)) % 360; }
private static void UpdateEHSIFlightData(IEHSI ehsi, FlightData flightData, HsiBits hsibits) { ehsi.InstrumentState.DmeInvalidFlag = ((hsibits & HsiBits.CourseWarning) == HsiBits.CourseWarning); ehsi.InstrumentState.DeviationInvalidFlag = ((hsibits & HsiBits.IlsWarning) == HsiBits.IlsWarning); ehsi.InstrumentState.CourseDeviationLimitDegrees = flightData.deviationLimit; ehsi.InstrumentState.CourseDeviationDegrees = flightData.courseDeviation; ehsi.InstrumentState.DesiredCourseDegrees = (int)flightData.desiredCourse; ehsi.InstrumentState.DesiredHeadingDegrees = (int)flightData.desiredHeading; ehsi.InstrumentState.BearingToBeaconDegrees = flightData.bearingToBeacon; ehsi.InstrumentState.DistanceToBeaconNauticalMiles = flightData.distanceToBeacon; }
private static void UpdateVerticalVelocity(FlightData flightData, F4SharedMem.FlightData fromFalcon, HsiBits hsibits) { if (((hsibits & HsiBits.VVI) == HsiBits.VVI)) { flightData.VerticalVelocityInDecimalFeetPerSecond = 0; } else { flightData.VerticalVelocityInDecimalFeetPerSecond = -fromFalcon.zDot; } }
protected void ProcessHsiBits(HsiBits bits, float desiredCourse, float bearingToBeacon) { SetValue("HSI", "to flag", new BindingValue(bits.HasFlag(HsiBits.ToTrue))); SetValue("HSI", "from flag", new BindingValue(bits.HasFlag(HsiBits.FromTrue))); SetValue("HSI", "ils warning flag", new BindingValue(bits.HasFlag(HsiBits.IlsWarning))); SetValue("HSI", "course warning flag", new BindingValue(bits.HasFlag(HsiBits.CourseWarning))); SetValue("HSI", "off flag", new BindingValue(bits.HasFlag(HsiBits.HSI_OFF))); SetValue("HSI", "init flag", new BindingValue(bits.HasFlag(HsiBits.Init))); SetValue("ADI", "off flag", new BindingValue(bits.HasFlag(HsiBits.ADI_OFF))); SetValue("ADI", "aux flag", new BindingValue(bits.HasFlag(HsiBits.ADI_AUX))); SetValue("ADI", "gs flag", new BindingValue(bits.HasFlag(HsiBits.ADI_GS))); SetValue("ADI", "loc flag", new BindingValue(bits.HasFlag(HsiBits.ADI_LOC))); SetValue("Backup ADI", "off flag", new BindingValue(bits.HasFlag(HsiBits.BUP_ADI_OFF))); SetValue("VVI", "off flag", new BindingValue(bits.HasFlag(HsiBits.VVI))); SetValue("AOA", "off flag", new BindingValue(bits.HasFlag(HsiBits.AOA))); }
protected void ProcessHsiBits(HsiBits bits, float desiredCourse, float bearingToBeacon, BlinkBits blinkBits, int time) { SetValue("HSI", "to flag", new BindingValue(bits.HasFlag(HsiBits.ToTrue))); SetValue("HSI", "from flag", new BindingValue(bits.HasFlag(HsiBits.FromTrue))); SetValue("HSI", "ils warning flag", new BindingValue(bits.HasFlag(HsiBits.IlsWarning))); SetValue("HSI", "course warning flag", new BindingValue(bits.HasFlag(HsiBits.CourseWarning))); SetValue("HSI", "off flag", new BindingValue(bits.HasFlag(HsiBits.HSI_OFF))); SetValue("HSI", "init flag", new BindingValue(bits.HasFlag(HsiBits.Init))); SetValue("ADI", "off flag", new BindingValue(bits.HasFlag(HsiBits.ADI_OFF))); SetValue("ADI", "aux flag", new BindingValue(bits.HasFlag(HsiBits.ADI_AUX))); SetValue("ADI", "gs flag", new BindingValue(bits.HasFlag(HsiBits.ADI_GS))); SetValue("ADI", "loc flag", new BindingValue(bits.HasFlag(HsiBits.ADI_LOC))); SetValue("Backup ADI", "off flag", new BindingValue(bits.HasFlag(HsiBits.BUP_ADI_OFF))); SetValue("VVI", "off flag", new BindingValue(bits.HasFlag(HsiBits.VVI))); SetValue("AOA", "off flag", new BindingValue(bits.HasFlag(HsiBits.AOA))); SetValue("AVTR", "avtr indicator", new BindingValue(bits.HasFlag(HsiBits.AVTR))); UpdateBlinkingLightState(bits.HasFlag(HsiBits.OuterMarker), blinkBits.HasFlag(BlinkBits.OuterMarker), ref _outerMarkerLastTick, ref _outerMarkerOnState); SetValue("HSI", "Outer marker indicator", new BindingValue(_outerMarkerOnState)); UpdateBlinkingLightState(bits.HasFlag(HsiBits.MiddleMarker), blinkBits.HasFlag(BlinkBits.MiddleMarker), ref _middleMarkerLastTick, ref _middleMarkerOnState); SetValue("HSI", "Middle marker indicator", new BindingValue(_middleMarkerOnState)); }
private static bool ADIIsTurnedOff(HsiBits hsibits) { return((hsibits & HsiBits.ADI_OFF) == HsiBits.ADI_OFF); }
public FalconHsiBits(string group, string label, HsiBits bit) : base(group, label, (int)bit) { }
private static void UpdateHSIData(FlightData flightData, F4SharedMem.FlightData fromFalcon, HsiBits hsibits) { if (((hsibits & HsiBits.HSI_OFF) == HsiBits.HSI_OFF)) { TurnOffHSI(flightData); } else { flightData.HsiDistanceInvalidFlag = ((hsibits & HsiBits.CourseWarning) == HsiBits.CourseWarning); flightData.HsiDeviationInvalidFlag = ((hsibits & HsiBits.IlsWarning) == HsiBits.IlsWarning); flightData.HsiCourseDeviationLimitInDecimalDegrees = fromFalcon.deviationLimit; flightData.HsiCourseDeviationInDecimalDegrees = fromFalcon.courseDeviation; flightData.HsiLocalizerDeviationInDecimalDegrees = fromFalcon.localizerCourse; flightData.HsiDesiredCourseInDegrees = (int)fromFalcon.desiredCourse; flightData.HsiDesiredHeadingInDegrees = (int)fromFalcon.desiredHeading; flightData.HsiBearingToBeaconInDecimalDegrees = fromFalcon.bearingToBeacon; flightData.HsiDistanceToBeaconInNauticalMiles = fromFalcon.distanceToBeacon; } }