加入启动任务功能

This commit is contained in:
panxu 2018-04-30 17:56:45 +08:00
parent b000e7fa0f
commit 65e7394926
6 changed files with 26 additions and 3 deletions

View File

@ -129,6 +129,7 @@ namespace Plane.Copters
Task InjectGpsDataAsync(byte[] data, ushort length);
Task MissionStartAsync(int hour_utc, int minute_utc, int second_utc, double Missionlng, double Missionlat);
}

View File

@ -147,6 +147,10 @@ namespace Plane.CopterManagement
{
return Copter.StartEmergencyHoverAsync();
}
public Task MissionStartAsync(int hour_utc, int minute_utc, int second_utc, double Missionlng, double Missionlat)
{
return Copter.MissionStartAsync(hour_utc, minute_utc, second_utc, Missionlng, Missionlat);
}
public void StartMobileControl(int? millisecondsInterval = default(int?))
{

View File

@ -93,7 +93,10 @@ namespace Plane.Copters
{
return TaskUtils.CompletedTask;
}
public Task MissionStartAsync(int hour_utc, int minute_utc, int second_utc, double Missionlng, double Missionlat)
{
return TaskUtils.CompletedTask;
}
public Task UnlockAsync()
{
return TaskUtils.CompletedTask;

View File

@ -354,6 +354,11 @@ namespace Plane.Copters
_takeOffTargetAltitude = (int)alt;
await TakeOffAsync().ConfigureAwait(false);
}
public Task MissionStartAsync(int hour_utc, int minute_utc, int second_utc, double Missionlng, double Missionlat)
{
return TaskUtils.CompletedTask;
}
public async Task UnlockAsync()
{

View File

@ -84,7 +84,13 @@ namespace Plane.Copters
await _internalCopter.DoARMAsync(false).ConfigureAwait(false);
}
}
public async Task MissionStartAsync(int hour_utc, int minute_utc, int second_utc, double Missionlng, double Missionlat)
{
if (IsUnlocked)
{
await _internalCopter.DoMissionStartAsync(hour_utc, minute_utc, second_utc, Missionlng, Missionlat).ConfigureAwait(false);
}
}
public override async Task SetChannelsAsync()
{
await _internalCopter.SetChannelsAsync(

View File

@ -607,7 +607,11 @@ namespace Plane.Copters
///<summary> Takeoff from ground / hand |Minimum pitch (if airspeed sensor present), desired pitch without sensor| Empty| Empty| Yaw angle (if magnetometer present), ignored without magnetometer| Latitude| Longitude| Altitude| </summary>
return await DoCommandAsync(MAVLink.MAV_CMD.TAKEOFF, 0, 0, 0, -1, 0, 0, 15);
}
public async Task<bool> DoMissionStartAsync(int hour_utc, int minute_utc, int second_utc, double Missionlng, double Missionlat)
{
///<summary> Takeoff from ground / hand |Minimum pitch (if airspeed sensor present), desired pitch without sensor| Empty| Empty| Yaw angle (if magnetometer present), ignored without magnetometer| Latitude| Longitude| Altitude| </summary>
return await DoCommandAsync(MAVLink.MAV_CMD.MISSION_START, hour_utc, minute_utc, second_utc, (float)Missionlng, (float)Missionlat, 0, 0);
}
public async Task<bool> DoCommandAsync(MAVLink.MAV_CMD actionid, float p1, float p2, float p3, float p4, float p5, float p6, float p7)
{
giveComport = true;