1.5架同时起飞

2.控制LED完成后悬停延时仍然有效
3.跑马灯完成后加入3次闪烁控制
This commit is contained in:
pxzleo 2017-03-11 18:29:31 +08:00
parent a3c00572c2
commit 94f366d011
2 changed files with 44 additions and 14 deletions

View File

@ -100,7 +100,7 @@ namespace Plane.FormationCreator.Formation
await RunLoiterTimeTaskAsync().ConfigureAwait(false); await RunLoiterTimeTaskAsync().ConfigureAwait(false);
break; break;
case FlightTaskType.TakeOff: case FlightTaskType.TakeOff:
await RunTakeOffTaskAsync().ConfigureAwait(false); await RunTakeOffTask2Async().ConfigureAwait(false);
break; break;
case FlightTaskType.ReturnToLand: // Added by ZJF case FlightTaskType.ReturnToLand: // Added by ZJF
await RunReturnToLandTaskAsync().ConfigureAwait(false); await RunReturnToLandTaskAsync().ConfigureAwait(false);

View File

@ -161,16 +161,19 @@ namespace Plane.FormationCreator.Formation
// 判断flashPeriodAttr, oneByOnePeriodAttr的值执行不同的闪烁模式 // 判断flashPeriodAttr, oneByOnePeriodAttr的值执行不同的闪烁模式
// 当flashPeriodAttr小于10正常闪烁即没有预制闪烁模式 // 当flashPeriodAttr小于10正常闪烁即没有预制闪烁模式
// 当flashPeriodAttr大于等于10小于20执行预制闪烁模式 // 当flashPeriodAttr大于等于10小于20执行预制闪烁模式
// 当flashPeriodAttr大于等于20 改变飞控闪烁模式以oneByOnePeriodAttr作为周期值 // 当flashPeriodAttr大于等于20 改变飞控闪烁模式以oneByOnePeriodAttr作为周期值
if ((flashPeriodAttr >= 10.0f) && (flashPeriodAttr < 20.0f))
//LEDFlashPlanAsync需要30架飞机
if ((flashPeriodAttr >= 10.0f) && (flashPeriodAttr < 20.0f))
{ {
await LEDFlashPlanAsync(); await LEDFlashPlanAsync();
return; return;
} }
//需要固件支持
if (flashPeriodAttr >= 20.0f) if (flashPeriodAttr >= 20.0f)
{ {
await LEDFlashParaModifyPlanAsync(); await LEDFlashParaModifyPlanAsync();
@ -205,10 +208,11 @@ namespace Plane.FormationCreator.Formation
} }
await Task.WhenAll(tasks_selected).ConfigureAwait(false); await Task.WhenAll(tasks_selected).ConfigureAwait(false);
await Task.Delay(3000).ConfigureAwait(false); await Task.Delay(3000).ConfigureAwait(false);
// LED灯全亮
await Task.WhenAll(SingleCopterInfos.Select(info => LEDFlashTaskFlySingleCopterAsync(info, true))); 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走马灯显示效果 else if (oneByOneAttr) // LED走马灯显示效果
@ -216,7 +220,7 @@ namespace Plane.FormationCreator.Formation
if (flashCopterNameArray.Equals("")) if (flashCopterNameArray.Equals(""))
return; return;
string[] copterArray = flashCopterIndexArray.Split(','); string[] copterArray = flashCopterIndexArray.Split(',');
//LED全灭
await Task.WhenAll(SingleCopterInfos.Select(info => LEDFlashTaskFlySingleCopterAsync(info, false))); await Task.WhenAll(SingleCopterInfos.Select(info => LEDFlashTaskFlySingleCopterAsync(info, false)));
await Task.Delay(1000).ConfigureAwait(false); await Task.Delay(1000).ConfigureAwait(false);
@ -231,13 +235,39 @@ namespace Plane.FormationCreator.Formation
await Task.Delay(1000).ConfigureAwait(false); await Task.Delay(1000).ConfigureAwait(false);
//////////////////全部闪烁一次
// LED灯全亮 // LED灯全亮
await Task.WhenAll(SingleCopterInfos.Select(info => LEDFlashTaskFlySingleCopterAsync(info, true))); 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); await Task.Delay((int)(LoiterTimeAttr * 1000)).ConfigureAwait(false);
} }
@ -473,7 +503,7 @@ namespace Plane.FormationCreator.Formation
await Task.Delay(200).ConfigureAwait(false); await Task.Delay(200).ConfigureAwait(false);
} }
// 一排一排闪烁 // 一排一排闪烁 需要30架飞机6排一排5架一排排闪灯
private async Task LEDColumnFlashAsync() private async Task LEDColumnFlashAsync()
{ {
await LEDArrayFlashAsync(columnFirst); await LEDArrayFlashAsync(columnFirst);