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

207 lines
6.7 KiB
C#
Raw Normal View History

2017-02-27 02:02:19 +08:00
using Plane.Geography;
using System;
using System.Drawing;
2017-02-27 02:02:19 +08:00
namespace Plane.Copters
{
/// <summary>
/// 定义用于获取飞行器状态的属性。
/// </summary>
public partial interface ICopterStatus : IVisibleStatus
{
/// <summary>
/// 获取当前空速,单位为 m/s。
/// </summary>
float AirSpeed { get; }
/// <summary>
/// 获取剩余电量百分比,其范围为 [0, 100]。
/// </summary>
byte BatteryPer { get; }
/// <summary>
/// 获取通道 1 的值。该值在飞控中用于改变飞行器横滚姿态,从而控制其左右方向的移动。有效范围为 [1100, 1900]。小于 1500 时使飞行器向左倾斜,大于 1500 时使飞行器向右倾斜。
/// </summary>
ushort Channel1 { get; }
/// <summary>
/// 获取通道 2 的值。该值在飞控中用于改变飞行器俯仰姿态,从而控制其前后方向的移动。有效范围为 [1100, 1900]。小于 1500 时使飞行器向前倾斜,大于 1500 时使飞行器向后倾斜。
/// </summary>
ushort Channel2 { get; }
/// <summary>
/// 获取通道 3 的值。该值在飞控中用于改变飞行器油门,从而控制其上下方向的移动。有效范围为 [1100, 1900]。在能够定高的模式(如 ALT_HOLD、LOITER小于 1500 时使飞行器下降,大于 1500 时使飞行器上升。
/// </summary>
ushort Channel3 { get; }
/// <summary>
/// 获取通道 4 的值。该值在飞控中用于使飞行器改变机头方向。有效范围为 [1100, 1900]。小于 1500 时使飞行器逆时针旋转,大于 1500 时使飞行器顺时针旋转。
/// </summary>
ushort Channel4 { get; }
/// <summary>
/// 获取通道 5 的值。其作用未定义。
/// </summary>
ushort Channel5 { get; }
/// <summary>
/// 获取通道 6 的值。该值在飞控中用于控制相机正对的方向。有效范围为 [1100, 1900]。小于 1500 时使相机逆时针旋转,大于 1500 时使相机顺时针旋转。
/// </summary>
ushort Channel6 { get; }
/// <summary>
/// 获取通道 7 的值。该值在飞控中用于控制相机俯仰姿态。有效范围为 [1100, 1900]。小于 1500 时使相机向后旋转,大于 1500 时使相机向前旋转。
/// </summary>
ushort Channel7 { get; }
/// <summary>
/// 获取通道 8 的值。其作用未定义。
/// </summary>
ushort Channel8 { get; }
/// <summary>
/// 获取海拔。
/// </summary>
float Elevation { get; }
/// <summary>
/// 获取固件版本。
/// </summary>
int? FirmwareVersion { get; }
/// <summary>
/// 获取固件版本的文本形式。
/// </summary>
string FirmwareVersionText { get; }
/// <summary>
/// 获取在三维空间中的飞行距离。
/// </summary>
double FlightDistance { get; }
/// <summary>
/// 获取在水平面上的飞行距离。
/// </summary>
double FlightDistance2D { get; }
/// <summary>
/// 获取飞行时间。
/// </summary>
TimeSpan FlightTimeSpan { get; }
/// <summary>
/// 获取 GPS 锁定状态。
/// </summary>
GpsFixType GpsFixType { get; }
/// <summary>
/// 获取 GPS HDOPhorizontal dilution of position单位为米。
/// </summary>
float GpsHdop { get; }
/// <summary>
/// 获取当前地速,单位为 m/s。
/// </summary>
float GroundSpeed { get; }
/// <summary>
/// 获取一个值,指示是否切过 GPS 模式。
/// </summary>
bool HasSwitchedToGpsMode { get; }
/// <summary>
/// 获取收到心跳的总数。
/// </summary>
ulong HeartbeatCount { get; }
/// <summary>
/// 获取飞行器的标识。
/// </summary>
string Id { get; }
/// <summary>
/// 获取一个值,指示是否确定飞行器与地面站正常连接。在实现中,一般根据对心跳包的接收情况判断。
/// </summary>
bool IsAbsolutelyConnected { get; }
/// <summary>
/// 获取一个值,指示是否正在检查飞行器与地面站的连接以确定通信正常。在实现中,一般在建立连接后设为 true在收到飞行器发回的数据后设为 false。
/// </summary>
bool IsCheckingConnection { get; set; }
/// <summary>
/// 获取一个值,指示飞行器与地面站之间的连接是否正常。
/// </summary>
bool IsConnected { get; }
/// <summary>
/// 获取一个值,指示当前的 GPS 定位是否足够精确。
/// </summary>
bool IsGpsAccurate { get; }
/// <summary>
/// 获取一个值,指示飞行器是否已解锁。
/// </summary>
bool IsUnlocked { get; }
/// <summary>
/// 获取任务总数。
/// </summary>
ushort? MissionCount { get; }
/// <summary>
/// 获取飞行器的 GPS 卫星数。
/// </summary>
byte SatCount { get; }
/// <summary>
/// 获取当前所处状态。
/// </summary>
CopterState State { get; }
/// <summary>
/// 获取飞控发回的消息,如起飞失败原因。
/// </summary>
string StatusText { get; }
/// <summary>
/// 获取起飞点。
/// </summary>
ILocation TakeOffPoint { get; }
/// <summary>
/// 获取当前电池电压,单位为伏特。
/// </summary>
float Voltage { get; }
/// <summary>
/// 预留字节用于通信模块条件下的返回值
/// </summary>
byte[] Retain { get; }
/// <summary>
/// 飞机上通信模块版本
/// </summary>
byte CommModuleVersion { get; }
/// <summary>
/// LED颜色
/// </summary>
string LEDColor { get; set; }
/// <summary>
/// LED灯光模式 0常亮 1闪烁 2随机闪烁(RGB无意义)
/// </summary>
int LEDMode { get; set; }
/// <summary>
/// LED变化间隔
/// </summary>
float LEDInterval { get; set; }
/// <summary>
/// LED显示颜色---内部计算后的真实颜色,用于显示
/// </summary>
Color LEDShowColor { get; set; }
2017-02-27 02:02:19 +08:00
}
}