using System.Threading; using System.Threading.Tasks; namespace Plane.Copters { /// /// 定义用于操纵飞行器的属性和方法。 /// public partial interface ICopterActions : ICopterActionsSharedByCopterManager, ICopterMissionActions { /// /// 获取或设置目标通道 1。 /// ushort? DesiredChannel1 { get; set; } /// /// 获取或设置目标通道 2。 /// ushort? DesiredChannel2 { get; set; } /// /// 获取或设置目标通道 3。 /// ushort? DesiredChannel3 { get; set; } /// /// 获取或设置目标通道 4。 /// ushort? DesiredChannel4 { get; set; } /// /// 获取或设置目标通道 5。 /// ushort? DesiredChannel5 { get; set; } /// /// 获取或设置目标通道 6。 /// ushort? DesiredChannel6 { get; set; } /// /// 获取或设置目标通道 7。 /// ushort? DesiredChannel7 { get; set; } /// /// 获取或设置目标通道 8。 /// ushort? DesiredChannel8 { get; set; } /// /// 获取或设置目标偏航。 /// float? DesiredYaw { get; set; } /// /// 获取一个值,指示飞行器是否正处于紧急悬停状态。 /// bool IsEmergencyHoverActive { get; } /// /// 开启与飞行器之间的连接。 /// /// 表示此异步操作的 实例。 Task ConnectAsync(); /// /// 跟随。 /// /// 目标。 /// 设为 true 进保持偏航角度差,设为 false 时将保持两者在空间中的相对位置。 /// 是否保持机头面对目标。 void Follow(IVisibleStatus target, bool keepYawDifference = false, bool keepFacingTarget = true, bool keep3DRelativeLocations = false); /// /// 向飞行器请求数据。 /// /// 表示此命令异步发送操作的 实例。 Task GetCopterDataAsync(); /// /// 获取参数的值。 /// /// 参数名。 /// 超时时间,单位为毫秒。 /// 表示参数获取异步操作的 ,其结果即为参数的值。 /// 操作超时。 Task GetParamAsync(string paramName, int millisecondsTimeout = Timeout.Infinite); /// /// 把所有通道设置为目标值。 /// /// 表示此命令异步发送操作的 实例。 Task SetChannelsAsync(); /// /// 用各个目标值属性设置通道和偏航。 /// /// 表示此命令异步发送操作的 实例。 Task SetMobileControlAsync(); /// /// 设置参数,返回的 实例在确认设置成功后完成。 /// /// 参数名。 /// 值。 /// 超时时间,单位为毫秒。 /// 表示异步设置参数操作的 实例。 /// 操作超时。 Task SetParamAsync(string paramName, float value, int millisecondsTimeout = Timeout.Infinite); bool GetShowLEDAsync(); void GetCommunicationNumber(out int recnumber, out int sendnumber); //重设数据量 void ResetCommunicationNumber(); Task SetShowLEDAsync(bool Ledon); Task SetShowLEDFlashAsync(int Flashtype, int millisecondsTime); Task SetShowRGBLEDAsync(int RedValue, int GreenValue, int BlueValue); /// /// 开始对频。 /// /// 表示此命令异步发送操作的 实例。 Task StartPairingAsync(); /// /// 停止对频。 /// /// 表示此命令异步发送操作的 实例。 Task StopPairingAsync(); /// /// 发送命令 /// /// /// /// /// /// /// /// /// /// Task DoCommandAsync(int actionid, float p1, float p2, float p3, float p4, float p5, float p6, float p7); /// /// 发送命令数据包已生成 /// /// /// /// Task DoCommandAckAsync(ushort command, byte result); } }