Exemplo n.º 1
0
        public void FlightSimulatorX_MoveAircraft_Passes_Aircraft_Information_To_SimConnect()
        {
            _Fsx.Connect(new IntPtr(10));
            _Fsx.MoveAircraft(_WriteAircraftInformation);

            _SimConnect.Verify(m => m.SetDataOnSimObject(_WriteAircraftInformationDefinitionId, 0U, 0, _WriteAircraftInformation), Times.Once());
        }
Exemplo n.º 2
0
        /// <summary>
        /// Repositions the FSX aircraft to match the location, speed and attitude of a real aircraft.
        /// </summary>
        private void MoveAircraft()
        {
            var selectedAircraft = _View.SelectedRealAircraft;

            if (_View.RidingAircraft && selectedAircraft != null)
            {
                long trash1, trash2;
                var  aircraft = _Feed == null ? null : _Feed.AircraftList.TakeSnapshot(out trash1, out trash2).Where(a => a.UniqueId == selectedAircraft.UniqueId).FirstOrDefault();
                if (aircraft != null)
                {
                    var speedLimit = (float)_MaximumAirspeed - 30f;

                    var writeAircraftInformation = new WriteAircraftInformation();
                    writeAircraftInformation.AirspeedIndicated = aircraft.GroundSpeed > speedLimit ? speedLimit : aircraft.GroundSpeed.GetValueOrDefault();
                    aircraft.GroundSpeed.GetValueOrDefault();
                    writeAircraftInformation.Altitude      = aircraft.Altitude.GetValueOrDefault();
                    writeAircraftInformation.Operator      = aircraft.Operator;
                    writeAircraftInformation.Registration  = aircraft.Registration;
                    writeAircraftInformation.Latitude      = aircraft.Latitude.GetValueOrDefault();
                    writeAircraftInformation.Longitude     = aircraft.Longitude.GetValueOrDefault();
                    writeAircraftInformation.TrueHeading   = aircraft.Track.GetValueOrDefault();
                    writeAircraftInformation.VerticalSpeed = aircraft.VerticalRate.GetValueOrDefault();
                    writeAircraftInformation.Bank          = ApproximateBank(_MovedAircraft, aircraft);

                    _MovedAircraft = aircraft;

                    _FlightSimulatorX.MoveAircraft(writeAircraftInformation);
                }
            }
        }