Beispiel #1
0
        private void UpdateMarkerBeaconLight(FlightData flightData, F4SharedMem.FlightData fromFalcon)
        {
            bool outerMarkerFromFalcon  = ((fromFalcon.hsiBits & (int)HsiBits.OuterMarker) == (int)HsiBits.OuterMarker);
            bool middleMarkerFromFalcon = ((fromFalcon.hsiBits & (int)HsiBits.MiddleMarker) ==
                                           (int)HsiBits.MiddleMarker);

            if (Settings.Default.RunAsServer)
            {
                flightData.MarkerBeaconOuterMarkerFlag  = outerMarkerFromFalcon;
                flightData.MarkerBeaconMiddleMarkerFlag = middleMarkerFromFalcon;
            }
            else
            {
                flightData.MarkerBeaconOuterMarkerFlag  = outerMarkerFromFalcon & _morseCodeSignalLineValue;
                flightData.MarkerBeaconMiddleMarkerFlag = middleMarkerFromFalcon & _morseCodeSignalLineValue;

                if (outerMarkerFromFalcon)
                {
                    _morseCodeGenerator.PlainText = "T"; //dot
                }
                else if (middleMarkerFromFalcon)
                {
                    _morseCodeGenerator.PlainText = "A"; //dot-dash
                }
                if ((outerMarkerFromFalcon || middleMarkerFromFalcon) && !_morseCodeGenerator.Sending)
                {
                    _morseCodeGenerator.StartSending();
                }
                else if (!outerMarkerFromFalcon && !middleMarkerFromFalcon)
                {
                    _morseCodeGenerator.StopSending();
                }
            }
        }