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