Plane.Sdk3/PlaneGcsSdk.Contract_Shared/Copters/ICopterStatus.cs
pxzleo fb17c0a3f9 加入两个参数,一个CopterLocationType在连接后取一次,确定飞机的定位方式,用于判断是否向它发送RTCM差分数据
一个MissionStatus参数,确定当前飞行任务执行情况,如果是1就是正在飞行到目标航点中,界面上飞机图标前面会有个小标识,到达航点后消失,用来人为判断哪些飞机没有到达航点
2017-09-11 03:57:47 +08:00

187 lines
6.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 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; }
//定位类型RTK,GPS
CopterLocationType LocationType { get; }
/// <summary>
/// MissionStatus=1表示正在飞向目标中0标识达到目标
/// </summary>
int MissionStatus { get; set; }
}
}