From 23c1390758bcb8c0142dd397fec217fb3b51826d Mon Sep 17 00:00:00 2001 From: xu Date: Wed, 22 Apr 2020 01:10:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B93D=E9=BB=98=E8=AE=A4=E9=A3=9E?= =?UTF-8?q?=E6=9C=BA=E9=A2=9C=E8=89=B2=20=E4=BF=AE=E5=A4=8D=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=8F=8C=E5=87=BB=E5=BF=AB=E8=BF=9B=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E9=80=80=E5=87=BA=E7=9A=84bug=202D/3D=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E9=A3=9E=E6=9C=BA=E5=A6=82=E6=9E=9C=E4=B8=8D=E5=8A=A8=E5=B0=B1?= =?UTF-8?q?=E6=B2=A1=E5=88=B7=E6=96=B0=E4=BD=8D=E7=BD=AE=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Formation/FlightTaskManager.cs | 8 +++-- .../ViewModels/MainViewModel.cs | 3 ++ .../ViewModels/TaskBarViewModel.cs | 11 ------- .../ViewModels/View3DViewModel.cs | 31 +++++++++---------- 4 files changed, 24 insertions(+), 29 deletions(-) diff --git a/Plane.FormationCreator/Formation/FlightTaskManager.cs b/Plane.FormationCreator/Formation/FlightTaskManager.cs index e45a811..824d13c 100644 --- a/Plane.FormationCreator/Formation/FlightTaskManager.cs +++ b/Plane.FormationCreator/Formation/FlightTaskManager.cs @@ -538,9 +538,11 @@ namespace Plane.FormationCreator.Formation public async Task FlyToTasks() { var copters = _copterManager.Copters; - if ((TaskState == TasksStatus.Stop)) + if ((SelectedTaskIndex==-1) ||(TaskState == TasksStatus.Stop)) return; - + + int vSelectedTaskIndex= SelectedTaskIndex; + Pause(); int i = 0; //等待暂停或2s超时(80*25ms) @@ -549,6 +551,8 @@ namespace Plane.FormationCreator.Formation await Task.Delay(25).ConfigureAwait(false); i++; } + if (SelectedTaskIndex == -1) + return; if (TaskState == TasksStatus.Paused) { diff --git a/Plane.FormationCreator/ViewModels/MainViewModel.cs b/Plane.FormationCreator/ViewModels/MainViewModel.cs index 20b0367..a1be514 100644 --- a/Plane.FormationCreator/ViewModels/MainViewModel.cs +++ b/Plane.FormationCreator/ViewModels/MainViewModel.cs @@ -16,6 +16,7 @@ using Newtonsoft.Json; using Plane.Geography; using Plane.FormationCreator.Views; using System.Windows; +using Plane.Collections; namespace Plane.FormationCreator.ViewModels { @@ -279,6 +280,8 @@ namespace Plane.FormationCreator.ViewModels b2DMapMode = true; _flightTaskManager.TaskRun_2D = b2DMapMode; //2D模式模拟显示 } + //强制刷新飞机位置 + _copterManager.Copters.ForEach(copter => copter.RefreashLoc()); diff --git a/Plane.FormationCreator/ViewModels/TaskBarViewModel.cs b/Plane.FormationCreator/ViewModels/TaskBarViewModel.cs index e395cda..f67dca7 100644 --- a/Plane.FormationCreator/ViewModels/TaskBarViewModel.cs +++ b/Plane.FormationCreator/ViewModels/TaskBarViewModel.cs @@ -67,17 +67,6 @@ namespace Plane.FormationCreator.ViewModels } - private ICommand _flyTotaskCommand; - public ICommand flyTotaskCommand - { - get - { - return _flyTotaskCommand ?? (_flyTotaskCommand = new RelayCommand(async () => - { - await _flightTaskManager.FlyToTasks(); - })); - } - } private ICommand _renametaskCommand; diff --git a/Plane.FormationCreator/ViewModels/View3DViewModel.cs b/Plane.FormationCreator/ViewModels/View3DViewModel.cs index 3d0ac8a..11e3a13 100644 --- a/Plane.FormationCreator/ViewModels/View3DViewModel.cs +++ b/Plane.FormationCreator/ViewModels/View3DViewModel.cs @@ -134,7 +134,7 @@ namespace Plane.FormationCreator.ViewModels _flightTaskManager.Orientation + 180, midColDistance * 2); } - + //没有这架飞机就加入 if (!planeModel3Ds.ContainsKey(copter)) { @@ -158,19 +158,23 @@ namespace Plane.FormationCreator.ViewModels x *= _copterManager.scale3d; y *= _copterManager.scale3d; z *= _copterManager.scale3d; - - + Color color ; + if (copter.LEDColor != null && copter.LEDColor != "") + color = (Color)ColorConverter.ConvertFromString("#" + copter.LEDColor); + else + color = (Color)ColorConverter.ConvertFromString("#" + CopterManager.CopterDefaultColor); var model3D = new GeometryModel3D { Geometry = meshwaypoint, Transform = new TranslateTransform3D(x, y, z), - Material = MaterialHelper.CreateMaterial(Color.FromRgb(238, 210, 238)), - BackMaterial = MaterialHelper.CreateMaterial(Color.FromRgb(238, 210, 238)) + Material = MaterialHelper.CreateMaterial(color), + BackMaterial = MaterialHelper.CreateMaterial(color) }; planeModel3Ds.Add(copter, model3D); planeGroup.Children.Add(model3D); } + //有飞机在视图里就移动位置 else { @@ -194,19 +198,14 @@ namespace Plane.FormationCreator.ViewModels panle3D.Transform = new TranslateTransform3D(x, y, z); } + Color color; if (copter.LEDColor != null && copter.LEDColor != "") - { + color = (Color)ColorConverter.ConvertFromString("#" + copter.LEDColor); + else + color = (Color)ColorConverter.ConvertFromString("#" + CopterManager.CopterDefaultColor); + panle3D.Material = MaterialHelper.CreateMaterial(color); + panle3D.BackMaterial = MaterialHelper.CreateMaterial(color); - Color color; - //3D在地面不能显示黑色,要不看不清楚 - if (copter.Altitude==0.0f) - color = (Color)ColorConverter.ConvertFromString("#FFFFFF"); - else - color = (Color)ColorConverter.ConvertFromString("#" + copter.LEDColor); - panle3D.Material = MaterialHelper.CreateMaterial(color); - panle3D.BackMaterial = MaterialHelper.CreateMaterial(color); - } - } //Message.Show("添加3D飞机:" + copter.Name);