예제 #1
0
        /// <summary>
        /// "Places" the call by enabling the display of
        /// the link budget results as well as showing a line
        /// indicating if the link is currently valid. If links
        /// signal to noise ratio gets to high, it becomes invalid
        /// and the line disappears.
        /// </summary>
        private void OnPlaceCallClick(object sender, EventArgs e)
        {
            m_callPlaced = true;
            m_placeCallButton.Enabled                 = false;
            m_hangUpButton.Enabled                    = true;
            m_transmitPowerTrackBar.Enabled           = false;
            m_linkBudgetOverlayHelper.Overlay.Display = true;

            // We want to draw link lines representing the link, but we don't want to draw the
            // lines unless the signal quality is acceptable. We already configured the
            // link itself to take the curvature of the earth into account to ensure line
            // of sight for our assets. The next step is to choice an acceptable signal
            // quality. Below we create an AccessQuery that is only valid when the
            // carrier to noise ratio of the final downlink is over -16 dB.
            // We then pass this query to UpdateLinkGraphics which will use it to
            // configure the Display property of the link graphics. Finally, we call
            // ApplyChanges to update the display.
            var         linkBudgetScalars = m_communicationSystem.GetLinkBudgetScalars(m_iridium4ToReceiverDownLink, m_intendedSignal);
            AccessQuery query             = new ScalarConstraint(linkBudgetScalars.CarrierToNoise, CommunicationAnalysis.FromDecibels(-16.0));

            UpdateLinkGraphics(m_callerToIridium49UpLink, query);
            UpdateLinkGraphics(m_iridium4ToReceiverDownLink, query);
            UpdateLinkGraphics(m_iridium49To58Crosslink, query);
            UpdateLinkGraphics(m_iridium58To4Crosslink, query);
            m_display.ApplyChanges();

            // Manually fire the combo box change event in order to
            // properly initialize the link budget overlay.
            OnLinkComboBoxSelectedIndexChanged(this, EventArgs.Empty);

            // Start animation if it's not going.
            if (!SceneManager.Animation.IsAnimating)
            {
                SceneManager.Animation.PlayForward();
            }
        }
예제 #2
0
 public abstract IEnumerable<SolverNode> SuccessfulMatch(SolverNode current, ScalarConstraint constraint);