pub struct GIMBAL_DEVICE_ATTITUDE_STATUS_DATA {
    pub time_boot_ms: u32,
    pub q: [f32; 4],
    pub angular_velocity_x: f32,
    pub angular_velocity_y: f32,
    pub angular_velocity_z: f32,
    pub failure_flags: GimbalDeviceErrorFlags,
    pub flags: GimbalDeviceFlags,
    pub target_system: u8,
    pub target_component: u8,
    pub delta_yaw: f32,
    pub delta_yaw_velocity: f32,
}
Expand description

id: 285 Message reporting the status of a gimbal device. This message should be broadcast by a gimbal device component at a low regular rate (e.g. 5 Hz). For the angles encoded in the quaternion and the angular velocities holds: If the flag GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME is set, then they are relative to the vehicle heading (vehicle frame). If the flag GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME is set, then they are relative to absolute North (earth frame). If neither of these flags are set, then (for backwards compatibility) it holds: If the flag GIMBAL_DEVICE_FLAGS_YAW_LOCK is set, then they are relative to absolute North (earth frame), else they are relative to the vehicle heading (vehicle frame). Other conditions of the flags are not allowed. The quaternion and angular velocities in the other frame can be calculated from delta_yaw and delta_yaw_velocity as q_earth = q_delta_yaw * q_vehicle and w_earth = w_delta_yaw_velocity + w_vehicle (if not NaN). If neither the GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME nor the GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME flag is set, then (for backwards compatibility) the data in the delta_yaw and delta_yaw_velocity fields are to be ignored. New implementations should always set either GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME or GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME, and always should set delta_yaw and delta_yaw_velocity either to the proper value or NaN..

Fields§

§time_boot_ms: u32

Timestamp (time since system boot)..

§q: [f32; 4]

Quaternion components, w, x, y, z (1 0 0 0 is the null-rotation). The frame is described in the message description..

§angular_velocity_x: f32

X component of angular velocity (positive: rolling to the right). The frame is described in the message description. NaN if unknown..

§angular_velocity_y: f32

Y component of angular velocity (positive: pitching up). The frame is described in the message description. NaN if unknown..

§angular_velocity_z: f32

Z component of angular velocity (positive: yawing to the right). The frame is described in the message description. NaN if unknown..

§failure_flags: GimbalDeviceErrorFlags

Failure flags (0 for no failure).

§flags: GimbalDeviceFlags

Current gimbal flags set..

§target_system: u8

System ID.

§target_component: u8

Component ID.

§delta_yaw: f32

Yaw angle relating the quaternions in earth and body frames (see message description). NaN if unknown..

§delta_yaw_velocity: f32

Yaw angular velocity relating the angular velocities in earth and body frames (see message description). NaN if unknown..

Implementations§

Trait Implementations§

source§

impl Clone for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA

source§

fn clone(&self) -> GIMBAL_DEVICE_ATTITUDE_STATUS_DATA

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl MessageData for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA

§

type Message = MavMessage

source§

const ID: u32 = 285u32

source§

const NAME: &'static str = "GIMBAL_DEVICE_ATTITUDE_STATUS"

source§

const EXTRA_CRC: u8 = 137u8

source§

const ENCODED_LEN: usize = 48usize

source§

fn deser(_version: MavlinkVersion, __input: &[u8]) -> Result<Self, ParserError>

source§

fn ser(&self, version: MavlinkVersion, bytes: &mut [u8]) -> usize

source§

impl PartialEq for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA

source§

fn eq(&self, other: &GIMBAL_DEVICE_ATTITUDE_STATUS_DATA) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl StructuralPartialEq for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for Twhere T: for<'de> Deserialize<'de>,