Plane.Sdk3/PlaneGcsSdk.Contract_Shared/Copters/ICopterActions.cs
panxu 22b8f46359 [PlaneCopter.cs]
1加入数据量统计
2降低飞机发到地面的数据频率,5hz改为1hz
3收数据不写日志(导致死机)
4为RTK数据单独组包,以减小包大小(发送大小为:RTK数据+11字节/包协议开销,自动拆分为110字节/包)
2018-05-12 23:24:43 +08:00

135 lines
4.9 KiB
C#

using System.Threading;
using System.Threading.Tasks;
namespace Plane.Copters
{
/// <summary>
/// 定义用于操纵飞行器的属性和方法。
/// </summary>
public partial interface ICopterActions : ICopterActionsSharedByCopterManager, ICopterMissionActions
{
/// <summary>
/// 获取或设置目标通道 1。
/// </summary>
ushort? DesiredChannel1 { get; set; }
/// <summary>
/// 获取或设置目标通道 2。
/// </summary>
ushort? DesiredChannel2 { get; set; }
/// <summary>
/// 获取或设置目标通道 3。
/// </summary>
ushort? DesiredChannel3 { get; set; }
/// <summary>
/// 获取或设置目标通道 4。
/// </summary>
ushort? DesiredChannel4 { get; set; }
/// <summary>
/// 获取或设置目标通道 5。
/// </summary>
ushort? DesiredChannel5 { get; set; }
/// <summary>
/// 获取或设置目标通道 6。
/// </summary>
ushort? DesiredChannel6 { get; set; }
/// <summary>
/// 获取或设置目标通道 7。
/// </summary>
ushort? DesiredChannel7 { get; set; }
/// <summary>
/// 获取或设置目标通道 8。
/// </summary>
ushort? DesiredChannel8 { get; set; }
/// <summary>
/// 获取或设置目标偏航。
/// </summary>
float? DesiredYaw { get; set; }
/// <summary>
/// 获取一个值,指示飞行器是否正处于紧急悬停状态。
/// </summary>
bool IsEmergencyHoverActive { get; }
/// <summary>
/// 开启与飞行器之间的连接。
/// </summary>
/// <returns>表示此异步操作的 <see cref="Task"/> 实例。</returns>
Task ConnectAsync();
/// <summary>
/// 跟随。
/// </summary>
/// <param name="target">目标。</param>
/// <param name="keepYawDifference">设为 true 进保持偏航角度差,设为 false 时将保持两者在空间中的相对位置。</param>
/// <param name="keepFacingTarget">是否保持机头面对目标。</param>
void Follow(IVisibleStatus target, bool keepYawDifference = false, bool keepFacingTarget = true, bool keep3DRelativeLocations = false);
/// <summary>
/// 向飞行器请求数据。
/// </summary>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task GetCopterDataAsync();
/// <summary>
/// 获取参数的值。
/// </summary>
/// <param name="paramName">参数名。</param>
/// <param name="millisecondsTimeout">超时时间,单位为毫秒。</param>
/// <returns>表示参数获取异步操作的 <see cref="Task{TResult}"/>,其结果即为参数的值。</returns>
/// <exception cref="System.TimeoutException">操作超时。</exception>
Task<float> GetParamAsync(string paramName, int millisecondsTimeout = Timeout.Infinite);
/// <summary>
/// 把所有通道设置为目标值。
/// </summary>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task SetChannelsAsync();
/// <summary>
/// 用各个目标值属性设置通道和偏航。
/// </summary>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task SetMobileControlAsync();
/// <summary>
/// 设置参数,返回的 <see cref="Task"/> 实例在确认设置成功后完成。
/// </summary>
/// <param name="paramName">参数名。</param>
/// <param name="value">值。</param>
/// <param name="millisecondsTimeout">超时时间,单位为毫秒。</param>
/// <returns>表示异步设置参数操作的 <see cref="Task"/> 实例。</returns>
/// <exception cref="System.TimeoutException">操作超时。</exception>
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);
/// <summary>
/// 开始对频。
/// </summary>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task StartPairingAsync();
/// <summary>
/// 停止对频。
/// </summary>
/// <returns>表示此命令异步发送操作的 <see cref="Task"/> 实例。</returns>
Task StopPairingAsync();
}
}