Plane.Sdk3/PlaneGcsSdk.Contract_Shared/Copters/ICopterStatus.cs
pxzleo d051300171 1增加观测者位置图标,修改后直接可以使用
2增加配置FC_VER_NO = 3 使用小航点同时达到模式计算模拟飞行
3增加灯光框架,可实现闪烁等,但实际使用太慢,暂时不用
2023-11-21 21:18:03 +08:00

207 lines
6.7 KiB
C#
Raw Permalink 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;
using System.Drawing;
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; }
}
}