/// <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(); } }
public abstract IEnumerable<SolverNode> SuccessfulMatch(SolverNode current, ScalarConstraint constraint);