public void OnUserAircraftDataUpdated(object sender, UserAircraftDataUpdatedEventArgs e) { if (UserAircraftData == null || !UserAircraftData.Equals(e.UserAircraftData)) { UserAircraftData = e.UserAircraftData; } if ((mLastBroadcastConfig == null) || !mFsdManager.IsConnected) { mLastBroadcastConfig = AircraftConfiguration.FromUserAircraftData(UserAircraftData); } else if (mAcconfigAvailableTokens > 0) { AircraftConfiguration newCfg = AircraftConfiguration.FromUserAircraftData(UserAircraftData); if (!newCfg.Equals(mLastBroadcastConfig)) { AircraftConfiguration incremental = mLastBroadcastConfig.CreateIncremental(newCfg); mFsdManager.SendIncrementalAircraftConfigurationUpdate(incremental); mLastBroadcastConfig = newCfg; mAcconfigAvailableTokens--; } } bool wasAirborne = mAirborne; mAirborne = !UserAircraftData.OnGround; if (mInitialAircraftDataReceived && !wasAirborne && mAirborne && !mConfig.SquawkingModeC && mConfig.AutoSquawkModeC) { var laminarB738 = new XPlaneConnector.DataRefElement { DataRef = "laminar/B738/knob/transpoder_pos" }; var laminarB738_Dn_Cmd = new XPlaneConnector.XPlaneCommand("laminar/B738/knob/transponder_mode_up", ""); var laminarB738_Up_Cmd = new XPlaneConnector.XPlaneCommand("laminar/B738/knob/transponder_mode_up", ""); SendXplaneCommand?.Invoke(this, new ClientEventArgs <XPlaneConnector.XPlaneCommand>(laminarB738_Up_Cmd)); SetXplaneDataRefValue?.Invoke(this, new DataRefEventArgs(laminarB738, 3)); SendXplaneCommand?.Invoke(this, new ClientEventArgs <XPlaneConnector.XPlaneCommand>(XPlaneConnector.Commands.TransponderTransponderAlt)); } mInitialAircraftDataReceived = true; }
private void ReceivingCallsignsChanged(object sender, TransceiverReceivingCallsignsChangedEventArgs e) { switch (e.TransceiverID) { case 1: SetXplaneDataRefValue?.Invoke(this, new DataRefEventArgs(new XPlaneConnector.DataRefElement { DataRef = "xpilot/audio/com1_rx" }, e.ReceivingCallsigns.Count > 0 ? 1 : 0)); ComRadioReceivingChanged?.Invoke(this, new ComRadioTxRxChangedEventArgs(1, e.ReceivingCallsigns.Count > 0)); break; case 2: SetXplaneDataRefValue?.Invoke(this, new DataRefEventArgs(new XPlaneConnector.DataRefElement { DataRef = "xpilot/audio/com2_rx" }, e.ReceivingCallsigns.Count > 0 ? 1 : 0)); ComRadioReceivingChanged?.Invoke(this, new ComRadioTxRxChangedEventArgs(2, e.ReceivingCallsigns.Count > 0)); break; } }