From c72399d3b0f7033d2d62e4205f0e0e8035ef99e7 Mon Sep 17 00:00:00 2001 From: xu Date: Wed, 29 Jan 2020 02:40:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=99=9A=E6=8B=9F=E9=A3=9E?= =?UTF-8?q?=E6=9C=BA=E8=AE=A1=E7=AE=97=E8=BF=87=E7=A8=8B=EF=BC=8C=E9=97=B4?= =?UTF-8?q?=E9=9A=94=E6=94=B9=E4=B8=BA150ms=E5=8F=AF=E4=BB=A5=E5=9F=BA?= =?UTF-8?q?=E6=9C=AC=E6=B5=81=E7=A8=8B=E6=A8=A1=E6=8B=9F1000=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PlaneGcsSdk_Shared/Copters/FakeCopter.cs | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) 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);