using System.Threading.Tasks; namespace Plane.Copters { public interface ICopterActionsSharedByCopterManager { /// /// 断开与飞行器之间的连接。 /// /// 表示此异步操作的 实例。 Task DisconnectAsync(); /// /// 切换到 并向各个控制通道发中间值。飞行器可能受风等外力影响而在水平方向上飘动。 /// /// 表示此命令异步发送操作的 实例。 Task FloatAsync(); /// /// 使飞行器飞往水平面上指定的点。 /// /// 纬度。 /// 经度。 /// 表示此命令异步发送操作的 实例。 Task FlyToAsync(double lat, double lng); /// /// 使飞行器飞往指定的点。 /// /// 纬度。 /// 经度。 /// 相对于解锁点的高度。 /// 表示此命令异步发送操作的 实例。 /// flytime =飞行时间 秒 /// flytype 0;匀速 1;加减速 2;单加速 3;单减速 Task FlyToAsync(double lat, double lng, float alt,float flytime=0,int flytype = 0); /// /// 切换到 并悬停。此操作需要使用 GPS 定位,卫星数不足导致定位不准时非常危险。 /// /// 表示此命令异步发送操作的 实例。 Task HoverAsync(); Task GuidAsync(); /// /// 降落。此操作需要使用 GPS 定位,卫星数不足导致定位不准时非常危险。 /// /// 表示此命令异步发送操作的 实例。 Task LandAsync(); /// /// 锁定飞行器(停止电机转动)。在调用之前务必判断高度及让软件使用者确认! /// Task LockAsync(); /// /// 返航。此操作需要使用 GPS 定位,卫星数不足导致定位不准时非常危险。 /// /// 表示此命令异步发送操作的 实例。 Task ReturnToLaunchAsync(); /// /// 用指定的值设置通道。 /// /// 通道 1 的目标值。 /// 通道 2 的目标值。 /// 通道 3 的目标值。 /// 通道 4 的目标值。 /// 通道 5 的目标值。 /// 通道 6 的目标值。 /// 通道 7 的目标值。 /// 通道 8 的目标值。 /// 表示此命令异步发送操作的 实例。 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); /// /// 用指定的值设置通道和偏航。 /// /// 通道 1 的目标值。 /// 通道 2 的目标值。 /// 通道 3 的目标值。 /// 通道 4 的目标值。目前此参数无效(20160119)。 /// 通道 5 的目标值。 /// 通道 6 的目标值。 /// 通道 7 的目标值。 /// 通道 8 的目标值。 /// 偏航的目标值 /// 表示此命令异步发送操作的 实例。 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); /// /// 进入紧急悬停状态。此状态需要使用 GPS 定位,卫星数不足导致定位不准时非常危险。 /// /// 表示此命令异步发送操作的 实例。 Task StartEmergencyHoverAsync(); /// /// 开始根据各个目标属性(如 )控制飞行器。 /// /// 发送控制命令的时间间距,若为 null,将由 SDK 决定。 void StartMobileControl(int? millisecondsInterval = null); /// /// 停止紧急悬停。 /// void StopEmergencyHover(); /// /// 停止根据各个目标属性(如 )控制飞行器。 /// void StopMobileControl(); /// /// 自动起飞到预定高度。此操作需要使用 GPS 定位,卫星数不足导致定位不准时非常危险。 /// /// 表示此命令异步发送操作的 实例。 Task TakeOffAsync(); /// /// 自动解锁并起飞到指定高度。此操作需要使用 GPS 定位,卫星数不足导致定位不准时非常危险。 /// /// 目标高度。 /// 表示此命令异步发送操作的 实例。 Task TakeOffAsync(float alt); /// /// 解锁飞行器。螺旋桨将开始转动,但飞行器不会起飞。 /// /// 表示此命令异步发送操作的 实例。 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); } }