Plane.Sdk3/PlaneGcsSdk.Contract_Shared/Copters/ICopterActionsSharedByCopterManager.cs

137 lines
6.3 KiB
C#
Raw Normal View History

2017-02-27 02:02:19 +08:00
using System.Threading.Tasks;
namespace Plane.Copters
{
public interface ICopterActionsSharedByCopterManager
{
/// <summary>
/// 断开与飞行器之间的连接。
/// </summary>
/// <returns>表示此异步操作的 <see cref="Task"/> 实例。</returns>
Task DisconnectAsync();
/// <summary>
/// 切换到 <see cref="CopterState.FloatMode"/> 并向各个控制通道发中间值。飞行器可能受风等外力影响而在水平方向上飘动。
/// </summary>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task FloatAsync();
/// <summary>
/// 使飞行器飞往水平面上指定的点。
/// </summary>
/// <param name="lat">纬度。</param>
/// <param name="lng">经度。</param>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task FlyToAsync(double lat, double lng);
/// <summary>
/// 使飞行器飞往指定的点。
/// </summary>
/// <param name="lat">纬度。</param>
/// <param name="lng">经度。</param>
/// <param name="alt">相对于解锁点的高度。</param>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task FlyToAsync(double lat, double lng, float alt);
/// <summary>
/// 切换到 <see cref="CopterState.HoverMode"/> 并悬停。此操作需要使用 GPS 定位,卫星数不足导致定位不准时非常危险。
/// </summary>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task HoverAsync();
Task GuidAsync();
/// <summary>
/// 降落。此操作需要使用 GPS 定位,卫星数不足导致定位不准时非常危险。
/// </summary>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task LandAsync();
/// <summary>
/// 锁定飞行器(停止电机转动)。在调用之前务必判断高度及让软件使用者确认!
/// </summary>
Task LockAsync();
/// <summary>
/// 返航。此操作需要使用 GPS 定位,卫星数不足导致定位不准时非常危险。
/// </summary>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task ReturnToLaunchAsync();
/// <summary>
/// 用指定的值设置通道。
/// </summary>
/// <param name="ch1">通道 1 的目标值。</param>
/// <param name="ch2">通道 2 的目标值。</param>
/// <param name="ch3">通道 3 的目标值。</param>
/// <param name="ch4">通道 4 的目标值。</param>
/// <param name="ch5">通道 5 的目标值。</param>
/// <param name="ch6">通道 6 的目标值。</param>
/// <param name="ch7">通道 7 的目标值。</param>
/// <param name="ch8">通道 8 的目标值。</param>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task SetChannelsAsync(ushort? ch1 = null, ushort? ch2 = null, ushort? ch3 = null, ushort? ch4 = null, ushort? ch5 = null, ushort? ch6 = null, ushort? ch7 = null, ushort? ch8 = null);
/// <summary>
/// 用指定的值设置通道和偏航。
/// </summary>
/// <param name="ch1">通道 1 的目标值。</param>
/// <param name="ch2">通道 2 的目标值。</param>
/// <param name="ch3">通道 3 的目标值。</param>
/// <param name="ch4">通道 4 的目标值。目前此参数无效20160119。</param>
/// <param name="ch5">通道 5 的目标值。</param>
/// <param name="ch6">通道 6 的目标值。</param>
/// <param name="ch7">通道 7 的目标值。</param>
/// <param name="ch8">通道 8 的目标值。</param>
/// <param name="yaw">偏航的目标值</param>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task SetMobileControlAsync(ushort? ch1 = null, ushort? ch2 = null, ushort? ch3 = null, ushort? ch4 = null, ushort? ch5 = null, ushort? ch6 = null, ushort? ch7 = null, ushort? ch8 = null, float? yaw = null);
/// <summary>
/// 进入紧急悬停状态。此状态需要使用 GPS 定位,卫星数不足导致定位不准时非常危险。
/// </summary>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task StartEmergencyHoverAsync();
/// <summary>
/// 开始根据各个目标属性(如 <see cref="DesiredChannel1"/>)控制飞行器。
/// </summary>
/// <param name="millisecondsInterval">发送控制命令的时间间距,若为 null将由 SDK 决定。</param>
void StartMobileControl(int? millisecondsInterval = null);
/// <summary>
/// 停止紧急悬停。
/// </summary>
void StopEmergencyHover();
/// <summary>
/// 停止根据各个目标属性(如 <see cref="DesiredChannel1"/>)控制飞行器。
/// </summary>
void StopMobileControl();
/// <summary>
/// 自动起飞到预定高度。此操作需要使用 GPS 定位,卫星数不足导致定位不准时非常危险。
/// </summary>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task TakeOffAsync();
/// <summary>
/// 自动解锁并起飞到指定高度。此操作需要使用 GPS 定位,卫星数不足导致定位不准时非常危险。
/// </summary>
/// <param name="alt">目标高度。</param>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task TakeOffAsync(float alt);
/// <summary>
/// 解锁飞行器。螺旋桨将开始转动,但飞行器不会起飞。
/// </summary>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task UnlockAsync();
Task InjectGpsDataAsync(byte[] data, ushort length);
2018-04-30 17:56:45 +08:00
Task MissionStartAsync(int hour_utc, int minute_utc, int second_utc, double Missionlng, double Missionlat);
2017-02-27 02:02:19 +08:00
}
}