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

142 lines
6.6 KiB
C#
Raw 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 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>
/// flytime =飞行时间 秒
/// flytype 0;匀速 1;加减速 2;单加速 3;单减速
Task FlyToAsync(double lat, double lng, float alt,float flytime=0,int flytype = 0);
/// <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);
Task MissionStartAsync(int hour_utc, int minute_utc, int second_utc, double Missionlng, double Missionlat);
Task LEDAsync();
//电机转动
Task MotorTestAsync(int motor);
}
}