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);
break;
case FlightTaskType.TakeOff:
await RunTakeOffTaskAsync().ConfigureAwait(false);
await RunTakeOffTask2Async().ConfigureAwait(false);
break;
case FlightTaskType.ReturnToLand: // Added by ZJF
await RunReturnToLandTaskAsync().ConfigureAwait(false);

View File

@ -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);