diff --git a/PlaneGcsSdk_Shared/Copters/FakeCopter.cs b/PlaneGcsSdk_Shared/Copters/FakeCopter.cs index 104bbb6..f750363 100644 --- a/PlaneGcsSdk_Shared/Copters/FakeCopter.cs +++ b/PlaneGcsSdk_Shared/Copters/FakeCopter.cs @@ -32,7 +32,7 @@ namespace Plane.Copters /// /// 更新虚拟飞行器状态的时间间隔,单位为毫秒。 /// - private const int UPDATE_INTERVAL = 100; + private const int UPDATE_INTERVAL = 150; //150可以跑1000架 100可以跑500架 /// /// 对飞行器的模拟是否正在运行。 @@ -139,14 +139,19 @@ namespace Plane.Copters this.Connection = connection ?? EmptyConnection.Instance; _isRunning = true; // 持续计算并更新虚拟飞行器的状态。 - Task.Run(async () => - { + // Task.Run(async () => + + Task.Factory.StartNew(async () => + + { while (_isRunning) { Update(); await TaskUtils.Delay(UPDATE_INTERVAL).ConfigureAwait(false); } - }); + } + , TaskCreationOptions.LongRunning + ); ++HeartbeatCount; @@ -682,10 +687,12 @@ namespace Plane.Copters // 更新高度。 Altitude += altDelta; + // 目标点相对于当前位置的方向。 - var direction = this.CalcDirection2D(lat, lng); - + var direction = this.CalcDirection2D(lat, lng); + /* // 更新姿态。 + if (Mode == FlightMode.RTL) { // 林俊清, 20160126, 目前飞行器只在返航时会旋转机头,面对飞行方向。 @@ -701,6 +708,7 @@ namespace Plane.Copters // Roll = MAX_TILT_IN_FLIGHT * (float)Math.Sin(directionDelta); // Pitch = MAX_TILT_IN_FLIGHT * (float)Math.Cos(directionDelta); } + */ // 水平面上的移动距离。 var moveInHorizontalPlane = Math.Sqrt(move * move - altDelta * altDelta);