Plane.Sdk3/PlaneGcsSdk_Shared/CopterControllers/FlyToController.cs
2017-02-27 02:02:19 +08:00

51 lines
1.2 KiB
C#

using Plane.CopterManagement;
using Plane.Messaging;
namespace Plane.CopterControllers
{
public class FlyToController : CopterControllerBase
{
public FlyToController(IPLMessenger messenger, ICopterManager copterManager) : base(messenger, copterManager)
{
}
public override bool IsEnabled
{
get
{
return base.IsEnabled;
}
set
{
base.IsEnabled = value;
if (value)
{
_messenger.Register<RequestFlyToMessage>(this, OnRequestFlyTo);
}
else
{
_messenger.Unregister(this);
}
}
}
public override CopterControllerTypes Type
{
get
{
return CopterControllerTypes.FlyToController;
}
}
private async void OnRequestFlyTo(RequestFlyToMessage m)
{
var accepted = await _copterManager.CheckStatusAndFlyToAsync(m.Latitude, m.Longitude);
if (accepted)
{
_messenger.Send(new FlyToRequestAcceptedMessage(m));
}
}
}
}