diff --git a/Plane.FormationCreator/Formation/FlightTask.cs b/Plane.FormationCreator/Formation/FlightTask.cs index 779cb86..bee05cf 100644 --- a/Plane.FormationCreator/Formation/FlightTask.cs +++ b/Plane.FormationCreator/Formation/FlightTask.cs @@ -100,7 +100,7 @@ namespace Plane.FormationCreator.Formation await RunLoiterTimeTaskAsync().ConfigureAwait(false); break; case FlightTaskType.TakeOff: - await RunTakeOffTaskAsync().ConfigureAwait(false); + await RunTakeOffTask2Async().ConfigureAwait(false); break; case FlightTaskType.ReturnToLand: // Added by ZJF await RunReturnToLandTaskAsync().ConfigureAwait(false); diff --git a/Plane.FormationCreator/Formation/FlightTask_LoiterTime.cs b/Plane.FormationCreator/Formation/FlightTask_LoiterTime.cs index 7721501..e96da89 100644 --- a/Plane.FormationCreator/Formation/FlightTask_LoiterTime.cs +++ b/Plane.FormationCreator/Formation/FlightTask_LoiterTime.cs @@ -161,16 +161,19 @@ namespace Plane.FormationCreator.Formation - // 判断flashPeriodAttr, oneByOnePeriodAttr的值,执行不同的闪烁模式 - // 当flashPeriodAttr小于10,正常闪烁,即没有预制闪烁模式 - // 当flashPeriodAttr大于等于10,小于20,执行预制闪烁模式 - // 当flashPeriodAttr大于等于20, 改变飞控闪烁模式,以oneByOnePeriodAttr作为周期值 - if ((flashPeriodAttr >= 10.0f) && (flashPeriodAttr < 20.0f)) + // 判断flashPeriodAttr, oneByOnePeriodAttr的值,执行不同的闪烁模式 + // 当flashPeriodAttr小于10,正常闪烁,即没有预制闪烁模式 + // 当flashPeriodAttr大于等于10,小于20,执行预制闪烁模式 + // 当flashPeriodAttr大于等于20, 改变飞控闪烁模式,以oneByOnePeriodAttr作为周期值 + + //LEDFlashPlanAsync需要30架飞机 + if ((flashPeriodAttr >= 10.0f) && (flashPeriodAttr < 20.0f)) { await LEDFlashPlanAsync(); return; } + //需要固件支持 if (flashPeriodAttr >= 20.0f) { await LEDFlashParaModifyPlanAsync(); @@ -205,10 +208,11 @@ namespace Plane.FormationCreator.Formation } await Task.WhenAll(tasks_selected).ConfigureAwait(false); await Task.Delay(3000).ConfigureAwait(false); - + // LED灯全亮 await Task.WhenAll(SingleCopterInfos.Select(info => LEDFlashTaskFlySingleCopterAsync(info, true))); - await Task.Delay(1000).ConfigureAwait(false); - + //延时等待 + await Task.Delay((int)(LoiterTimeAttr * 1000)).ConfigureAwait(false); + } else if (oneByOneAttr) // LED走马灯显示效果 @@ -216,7 +220,7 @@ namespace Plane.FormationCreator.Formation if (flashCopterNameArray.Equals("")) return; string[] copterArray = flashCopterIndexArray.Split(','); - + //LED全灭 await Task.WhenAll(SingleCopterInfos.Select(info => LEDFlashTaskFlySingleCopterAsync(info, false))); await Task.Delay(1000).ConfigureAwait(false); @@ -231,13 +235,39 @@ namespace Plane.FormationCreator.Formation await Task.Delay(1000).ConfigureAwait(false); + //////////////////全部闪烁一次 // LED灯全亮 await Task.WhenAll(SingleCopterInfos.Select(info => LEDFlashTaskFlySingleCopterAsync(info, true))); - await Task.Delay(1000).ConfigureAwait(false); - + await Task.Delay(200).ConfigureAwait(false); + // LED灯全灭 + await Task.WhenAll(SingleCopterInfos.Select(info => LEDFlashTaskFlySingleCopterAsync(info, false))); + await Task.Delay(200).ConfigureAwait(false); + ///////////////////////////////////// + //////////////////全部闪烁一次 + // LED灯全亮 + await Task.WhenAll(SingleCopterInfos.Select(info => LEDFlashTaskFlySingleCopterAsync(info, true))); + await Task.Delay(200).ConfigureAwait(false); + // LED灯全灭 + await Task.WhenAll(SingleCopterInfos.Select(info => LEDFlashTaskFlySingleCopterAsync(info, false))); + await Task.Delay(200).ConfigureAwait(false); + ///////////////////////////////////// + //////////////////全部闪烁一次 + // LED灯全亮 + await Task.WhenAll(SingleCopterInfos.Select(info => LEDFlashTaskFlySingleCopterAsync(info, true))); + await Task.Delay(200).ConfigureAwait(false); + // LED灯全灭 + await Task.WhenAll(SingleCopterInfos.Select(info => LEDFlashTaskFlySingleCopterAsync(info, false))); + await Task.Delay(200).ConfigureAwait(false); + ///////////////////////////////////// + + + // LED灯全亮 + await Task.WhenAll(SingleCopterInfos.Select(info => LEDFlashTaskFlySingleCopterAsync(info, true))); + //延时等待 + await Task.Delay((int)(LoiterTimeAttr * 1000)).ConfigureAwait(false); } - else // 没有LED显示效果 + else // 没有LED显示效果只等待 { await Task.Delay((int)(LoiterTimeAttr * 1000)).ConfigureAwait(false); } @@ -473,7 +503,7 @@ namespace Plane.FormationCreator.Formation await Task.Delay(200).ConfigureAwait(false); } - // 一排一排闪烁 + // 一排一排闪烁 需要30架飞机,6排,一排5架,一排排闪灯 private async Task LEDColumnFlashAsync() { await LEDArrayFlashAsync(columnFirst);