2017-02-27 02:02:19 +08:00
|
|
|
|
using Plane.Geography;
|
|
|
|
|
using System;
|
|
|
|
|
|
|
|
|
|
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 HDOP(horizontal 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; }
|
2018-08-23 22:37:39 +08:00
|
|
|
|
|
2018-08-26 22:11:06 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// 预留字节用于通信模块条件下的返回值
|
|
|
|
|
/// </summary>
|
2018-08-23 22:37:39 +08:00
|
|
|
|
byte[] Retain { get; }
|
2018-08-26 22:11:06 +08:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 飞机上通信模块版本
|
|
|
|
|
/// </summary>
|
|
|
|
|
byte CommModuleVersion { get; }
|
2017-02-27 02:02:19 +08:00
|
|
|
|
}
|
|
|
|
|
}
|