flyto任务加入ShowLED控制,在飞行过程中开灯或关灯
This commit is contained in:
parent
64b4412ff4
commit
a3c00572c2
@ -184,7 +184,7 @@ namespace Plane.FormationCreator.Formation
|
|||||||
var lastSingleCopterInfo = lastTask.SingleCopterInfos.Find(info => info.Copter == copter);
|
var lastSingleCopterInfo = lastTask.SingleCopterInfos.Find(info => info.Copter == copter);
|
||||||
var direction = GeographyUtils.CalcDirection2D(center.Lat, center.Lng, lastSingleCopterInfo.TargetLat, lastSingleCopterInfo.TargetLng);
|
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 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.TargetHeading = lastSingleCopterInfo.TargetHeading;
|
||||||
newSingleCopterInfo.CenterDirectionDeg = lastSingleCopterInfo.TargetHeading;
|
newSingleCopterInfo.CenterDirectionDeg = lastSingleCopterInfo.TargetHeading;
|
||||||
newTask.SingleCopterInfos.Add(newSingleCopterInfo);
|
newTask.SingleCopterInfos.Add(newSingleCopterInfo);
|
||||||
@ -265,7 +265,7 @@ namespace Plane.FormationCreator.Formation
|
|||||||
{
|
{
|
||||||
var copter = copters[i];
|
var copter = copters[i];
|
||||||
var singleCopterInfoObj = singleCopterInfos[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);
|
newTask.SingleCopterInfos.Add(newSingleCopterInfo);
|
||||||
}
|
}
|
||||||
Tasks.Add(newTask);
|
Tasks.Add(newTask);
|
||||||
@ -506,7 +506,8 @@ namespace Plane.FormationCreator.Formation
|
|||||||
{
|
{
|
||||||
latOffset = offset.Lat,
|
latOffset = offset.Lat,
|
||||||
lngOffset = offset.Lng,
|
lngOffset = offset.Lng,
|
||||||
targetAlt = info.TargetAlt
|
targetAlt = info.TargetAlt,
|
||||||
|
showLED = info.FlytoShowLED
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
@ -9,25 +9,35 @@ namespace Plane.FormationCreator.Formation
|
|||||||
{
|
{
|
||||||
public partial class FlightTaskSingleCopterInfo
|
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)
|
var info = new FlightTaskSingleCopterInfo(copter)
|
||||||
{
|
{
|
||||||
TargetLat = targetLat,
|
TargetLat = targetLat,
|
||||||
TargetLng = targetLng,
|
TargetLng = targetLng,
|
||||||
TargetAlt = targetAlt
|
TargetAlt = targetAlt,
|
||||||
|
FlytoShowLED= showLED
|
||||||
};
|
};
|
||||||
return info;
|
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)
|
var info = new FlightTaskSingleCopterInfo(copter)
|
||||||
{
|
{
|
||||||
LatLngOffset = latLngOffset,
|
LatLngOffset = latLngOffset,
|
||||||
TargetAlt = targetAlt
|
TargetAlt = targetAlt,
|
||||||
|
FlytoShowLED = showLED
|
||||||
};
|
};
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
private bool _FlytoShowLED = true;
|
||||||
|
public bool FlytoShowLED
|
||||||
|
{
|
||||||
|
get { return _FlytoShowLED; }
|
||||||
|
set { Set(nameof(FlytoShowLED), ref _FlytoShowLED, value); }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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;
|
private bool _VerticalLift = false;
|
||||||
@ -531,7 +525,7 @@ namespace Plane.FormationCreator.Formation
|
|||||||
tasks[i] = await Task.Factory.StartNew(async () =>
|
tasks[i] = await Task.Factory.StartNew(async () =>
|
||||||
{
|
{
|
||||||
var internalInfo = info;
|
var internalInfo = info;
|
||||||
await info.Copter.SetShowLEDAsync(FlytoShowLED);
|
await info.Copter.SetShowLEDAsync(info.FlytoShowLED);
|
||||||
//if (i1 > 0)
|
//if (i1 > 0)
|
||||||
//{
|
//{
|
||||||
// var prevCopter = infos[i1 - 1].Copter;
|
// var prevCopter = infos[i1 - 1].Copter;
|
||||||
|
@ -225,7 +225,7 @@ namespace Plane.FormationCreator.Formation
|
|||||||
if (info.takeOffStage == 1)
|
if (info.takeOffStage == 1)
|
||||||
{
|
{
|
||||||
await info.Copter.GuidAsync();
|
await info.Copter.GuidAsync();
|
||||||
await info.Copter.SetShowLEDAsync(false);
|
await info.Copter.SetShowLEDAsync(copterNextTask.FlytoShowLED );
|
||||||
for (int j = 0; j < 3; j++)
|
for (int j = 0; j < 3; j++)
|
||||||
{
|
{
|
||||||
await info.Copter.FlyToAsync(copterNextTask.TargetLat, copterNextTask.TargetLng, takeOffAlt);
|
await info.Copter.FlyToAsync(copterNextTask.TargetLat, copterNextTask.TargetLng, takeOffAlt);
|
||||||
|
@ -108,6 +108,7 @@
|
|||||||
|
|
||||||
<TextBlock Grid.Row="2" Text="开灯: " />
|
<TextBlock Grid.Row="2" Text="开灯: " />
|
||||||
<CheckBox Grid.Row="2" Grid.Column="1"
|
<CheckBox Grid.Row="2" Grid.Column="1"
|
||||||
|
DataContext="{Binding ModifyingSingleCopterInfo}"
|
||||||
IsChecked="{Binding FlytoShowLED}" />
|
IsChecked="{Binding FlytoShowLED}" />
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
Loading…
Reference in New Issue
Block a user