diff --git a/PlaneGcsSdk_Shared/Copters/CopterImplSharedPart.cs b/PlaneGcsSdk_Shared/Copters/CopterImplSharedPart.cs index 0a498fc..145e8b2 100644 --- a/PlaneGcsSdk_Shared/Copters/CopterImplSharedPart.cs +++ b/PlaneGcsSdk_Shared/Copters/CopterImplSharedPart.cs @@ -179,6 +179,7 @@ namespace Plane.Copters public CopterImplSharedPart(SynchronizationContext uiSyncContext) : base(uiSyncContext) { PropertyChanged += CopterImplSharedPart_PropertyChanged; + /* Task.Run(async () => { while (true) @@ -230,7 +231,9 @@ namespace Plane.Copters await Task.Delay(5000).ConfigureAwait(false); } } + }); + */ } public event EventHandler AltitudeChanged; diff --git a/PlaneGcsSdk_Shared/Copters/FakeCopter.cs b/PlaneGcsSdk_Shared/Copters/FakeCopter.cs index 2851f3c..104bbb6 100644 --- a/PlaneGcsSdk_Shared/Copters/FakeCopter.cs +++ b/PlaneGcsSdk_Shared/Copters/FakeCopter.cs @@ -137,16 +137,13 @@ namespace Plane.Copters _scaledFastMaxMoveInInterval = MAX_MOVE_IN_INTERVAL_FAST * _speedScale; this.Connection = connection ?? EmptyConnection.Instance; - + _isRunning = true; // 持续计算并更新虚拟飞行器的状态。 Task.Run(async () => { - while (true) + while (_isRunning) { - if (_isRunning) - { - Update(); - } + Update(); await TaskUtils.Delay(UPDATE_INTERVAL).ConfigureAwait(false); } }); @@ -424,11 +421,15 @@ namespace Plane.Copters protected override void UpdateFlightDataIfNeeded() { + //计算飞机距离,没必要 + /* if (!TakeOffPoint.IsNullOrEmpty()) { FlightDistance = TakeOffPoint.CalcDistance(this); FlightDistance2D = TakeOffPoint.CalcDistance2D(this); } + + if (FlightTimeSpan.TotalSeconds > 0) { if (_lastCalcSpeedPoint.IsNullOrEmpty()) @@ -457,6 +458,7 @@ namespace Plane.Copters } } } + */ } private void MoveToPointImmediately(double lat, double lng, float alt) @@ -520,7 +522,8 @@ namespace Plane.Copters case FlightMode.GUIDED: // 林俊清, 20160317, 指点时也能体感控制若干通道。 - UpdateWithChannels(); + //考虑不更新这个,好像没必要-xu + //UpdateWithChannels(); UpdateWithDestination(_targetLat, _targetLng, _targetAlt); break; @@ -590,11 +593,14 @@ namespace Plane.Copters } _uiSyncContext.Post(() => { + //位置变化需要在UI刷新 RaiseLocationChangedIfNeeded(); - RaiseAltitudeChangedIfNeeded(); - - RaiseDataStreamReceived(PDataStreamType.GPS_RAW_INT); - RaiseAttitudeChanged(); + //高度变化需要在UI刷新 + // RaiseAltitudeChangedIfNeeded(); + //GPS数据用于显示 + // RaiseDataStreamReceived(PDataStreamType.GPS_RAW_INT); + //不考虑姿态 + // RaiseAttitudeChanged(); }); } @@ -690,9 +696,10 @@ namespace Plane.Copters } else { - var directionDelta = direction - Heading.DegToRad(); - Roll = MAX_TILT_IN_FLIGHT * (float)Math.Sin(directionDelta); - Pitch = MAX_TILT_IN_FLIGHT * (float)Math.Cos(directionDelta); + //不用更新姿态-xu + //var directionDelta = direction - Heading.DegToRad(); + // Roll = MAX_TILT_IN_FLIGHT * (float)Math.Sin(directionDelta); + // Pitch = MAX_TILT_IN_FLIGHT * (float)Math.Cos(directionDelta); } // 水平面上的移动距离。