示例#1
0
 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);
 }
示例#2
0
 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;
 }
示例#3
0
 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;
 }
示例#4
0
 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)));
        }
示例#6
0
        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));
        }
示例#7
0
 private static bool ADIIsTurnedOff(HsiBits hsibits)
 {
     return((hsibits & HsiBits.ADI_OFF) == HsiBits.ADI_OFF);
 }
示例#8
0
 public FalconHsiBits(string group, string label, HsiBits bit)
     : base(group, label, (int)bit)
 {
 }
        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)));
        }
示例#10
0
 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;
     }
 }