142 lines
6.6 KiB
C#
142 lines
6.6 KiB
C#
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);
|
||
}
|
||
}
|