flyto任务加入ShowLED控制,在飞行过程中开灯或关灯

This commit is contained in:
pxzleo 2017-03-11 15:48:56 +08:00
parent 64b4412ff4
commit a3c00572c2
5 changed files with 21 additions and 15 deletions

View File

@ -184,7 +184,7 @@ namespace Plane.FormationCreator.Formation
var lastSingleCopterInfo = lastTask.SingleCopterInfos.Find(info => info.Copter == copter);
var direction = GeographyUtils.CalcDirection2D(center.Lat, center.Lng, lastSingleCopterInfo.TargetLat, lastSingleCopterInfo.TargetLng);
var targetLatLng = GeographyUtils.CalcLatLngSomeMetersAway2D(lastSingleCopterInfo.TargetLat, lastSingleCopterInfo.TargetLng, (float)GeographyUtils.RadToDeg(direction), 5);
var newSingleCopterInfo = FlightTaskSingleCopterInfo.CreateForFlyToTask(copter, targetLatLng.Item1, targetLatLng.Item2, lastSingleCopterInfo.TargetAlt);
var newSingleCopterInfo = FlightTaskSingleCopterInfo.CreateForFlyToTask(copter, targetLatLng.Item1, targetLatLng.Item2, lastSingleCopterInfo.TargetAlt,true);
newSingleCopterInfo.TargetHeading = lastSingleCopterInfo.TargetHeading;
newSingleCopterInfo.CenterDirectionDeg = lastSingleCopterInfo.TargetHeading;
newTask.SingleCopterInfos.Add(newSingleCopterInfo);
@ -265,7 +265,7 @@ namespace Plane.FormationCreator.Formation
{
var copter = copters[i];
var singleCopterInfoObj = singleCopterInfos[i];
var newSingleCopterInfo = FlightTaskSingleCopterInfo.CreateForFlyToTask(copter, new LatLng((double)singleCopterInfoObj.latOffset, (double)singleCopterInfoObj.lngOffset), (float)singleCopterInfoObj.targetAlt);
var newSingleCopterInfo = FlightTaskSingleCopterInfo.CreateForFlyToTask(copter, new LatLng((double)singleCopterInfoObj.latOffset, (double)singleCopterInfoObj.lngOffset), (float)singleCopterInfoObj.targetAlt,(bool)singleCopterInfoObj.showLED);
newTask.SingleCopterInfos.Add(newSingleCopterInfo);
}
Tasks.Add(newTask);
@ -506,7 +506,8 @@ namespace Plane.FormationCreator.Formation
{
latOffset = offset.Lat,
lngOffset = offset.Lng,
targetAlt = info.TargetAlt
targetAlt = info.TargetAlt,
showLED = info.FlytoShowLED
};
})
};

View File

@ -9,25 +9,35 @@ namespace Plane.FormationCreator.Formation
{
public partial class FlightTaskSingleCopterInfo
{
public static FlightTaskSingleCopterInfo CreateForFlyToTask(ICopter copter, double targetLat, double targetLng, float targetAlt)
public static FlightTaskSingleCopterInfo CreateForFlyToTask(ICopter copter, double targetLat, double targetLng, float targetAlt,bool showLED)
{
var info = new FlightTaskSingleCopterInfo(copter)
{
TargetLat = targetLat,
TargetLng = targetLng,
TargetAlt = targetAlt
TargetAlt = targetAlt,
FlytoShowLED= showLED
};
return info;
}
public static FlightTaskSingleCopterInfo CreateForFlyToTask(ICopter copter, LatLng latLngOffset, float targetAlt)
public static FlightTaskSingleCopterInfo CreateForFlyToTask(ICopter copter, LatLng latLngOffset, float targetAlt, bool showLED)
{
var info = new FlightTaskSingleCopterInfo(copter)
{
LatLngOffset = latLngOffset,
TargetAlt = targetAlt
TargetAlt = targetAlt,
FlytoShowLED = showLED
};
return info;
}
private bool _FlytoShowLED = true;
public bool FlytoShowLED
{
get { return _FlytoShowLED; }
set { Set(nameof(FlytoShowLED), ref _FlytoShowLED, value); }
}
}
}

View File

@ -19,12 +19,6 @@ namespace Plane.FormationCreator.Formation
}
private bool _FlytoShowLED = true;
public bool FlytoShowLED
{
get { return _FlytoShowLED; }
set { Set(nameof(FlytoShowLED), ref _FlytoShowLED, value); }
}
private bool _VerticalLift = false;
@ -531,7 +525,7 @@ namespace Plane.FormationCreator.Formation
tasks[i] = await Task.Factory.StartNew(async () =>
{
var internalInfo = info;
await info.Copter.SetShowLEDAsync(FlytoShowLED);
await info.Copter.SetShowLEDAsync(info.FlytoShowLED);
//if (i1 > 0)
//{
// var prevCopter = infos[i1 - 1].Copter;

View File

@ -225,7 +225,7 @@ namespace Plane.FormationCreator.Formation
if (info.takeOffStage == 1)
{
await info.Copter.GuidAsync();
await info.Copter.SetShowLEDAsync(false);
await info.Copter.SetShowLEDAsync(copterNextTask.FlytoShowLED );
for (int j = 0; j < 3; j++)
{
await info.Copter.FlyToAsync(copterNextTask.TargetLat, copterNextTask.TargetLng, takeOffAlt);

View File

@ -108,6 +108,7 @@
<TextBlock Grid.Row="2" Text="开灯: " />
<CheckBox Grid.Row="2" Grid.Column="1"
DataContext="{Binding ModifyingSingleCopterInfo}"
IsChecked="{Binding FlytoShowLED}" />
</Grid>