Plane.Sdk3/PlaneGcsSdk.Contract_Shared/CopterManagement/ICopterManager.cs
2017-02-27 02:02:19 +08:00

65 lines
2.3 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Plane.Communication;
using Plane.Copters;
using System.Collections.ObjectModel;
using System.Threading.Tasks;
namespace Plane.CopterManagement
{
public interface ICopterManager : ICopterActionsSharedByCopterManager
{
/// <summary>
/// 获取 <see cref="ICopter"/> 实例的动态集合。
/// </summary>
ObservableCollection<ICopter> AllCopters { get; }
/// <summary>
/// 获取单个 <see cref="ICopter"/> 实例。用 <see cref="EmptyCopter.Instance"/> 代替 null使用时不必判断是否为 null。
/// </summary>
ICopter Copter { get; }
/// <summary>
/// 获取一个值,指示是否正在搜寻飞行器。
/// </summary>
bool IsSearching { get; }
/// <summary>
/// 获取被选中的 <see cref="ICopter"/> 实例的动态集合。
/// </summary>
ObservableCollection<ICopter> SelectedCopters { get; }
/// <summary>
/// 添加或更新 <see cref="ICopter"/> 实例。
/// </summary>
/// <param name="id">飞行器的唯一 ID。</param>
/// <param name="name">飞行器的名字。</param>
/// <param name="connection">用于通信的 <see cref="IConnection"/> 实例。</param>
/// <returns></returns>
Task AddOrUpdateCopterAsync(string id, string name, IConnection connection);
/// <summary>
/// 检查飞行器的状态,判断是否允许 FlyTo若允许飞往指定位置。
/// </summary>
/// <param name="lat">目的地纬度。</param>
/// <param name="lng">目的地经度。</param>
/// <returns>若允许并执行了 FlyTo返回 true否则返回 false。</returns>
Task<bool> CheckStatusAndFlyToAsync(double lat, double lng);
/// <summary>
/// 连接一个新的 <see cref="ICopter"/> 实例。
/// </summary>
/// <param name="copter">要连接的 <see cref="ICopter"/> 实例。</param>
/// <returns>表示此异步操作的 <see cref="Task"/> 实例。</returns>
Task ConnectAsync(ICopter copter);
/// <summary>
/// 开始搜索并连接飞行器。
/// </summary>
void StartSearching();
/// <summary>
/// 停止搜索飞行器。
/// </summary>
void StopSearching();
}
}