2016-10-05 22:52:07 +00:00
# pragma once
2014-08-10 21:01:07 +02:00
// MESSAGE VISION_POSITION_ESTIMATE PACKING
# define MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE 102
2020-09-20 10:12:24 +08:00
2016-08-02 12:16:40 +00:00
typedef struct __mavlink_vision_position_estimate_t {
2020-09-20 10:12:24 +08:00
uint32_t usec ; /*< [us] Timestamp (UNIX time or time since system boot)*/
2018-06-03 17:07:10 +08:00
float x ; /*< [m] Global X position*/
float y ; /*< [m] Global Y position*/
float z ; /*< [m] Global Z position*/
2018-08-07 10:12:17 +08:00
float roll ; /*< [rad] Roll angle*/
float pitch ; /*< [rad] Pitch angle*/
float yaw ; /*< [rad] Yaw angle*/
2018-06-03 17:07:10 +08:00
float covariance [ 21 ] ; /*< Pose covariance matrix upper right triangular (first six entries are the first ROW, next five entries are the second ROW, etc.)*/
2020-09-20 10:12:24 +08:00
} mavlink_vision_position_estimate_t ;
2014-08-10 21:01:07 +02:00
2020-09-20 10:12:24 +08:00
# define MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN 112
# define MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_MIN_LEN 28
# define MAVLINK_MSG_ID_102_LEN 112
# define MAVLINK_MSG_ID_102_MIN_LEN 28
2014-08-10 21:01:07 +02:00
2020-09-20 10:12:24 +08:00
# define MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_CRC 14
# define MAVLINK_MSG_ID_102_CRC 14
2014-08-10 21:01:07 +02:00
2018-04-29 09:48:09 +08:00
# define MAVLINK_MSG_VISION_POSITION_ESTIMATE_FIELD_COVARIANCE_LEN 21
2014-08-10 21:01:07 +02:00
2016-05-16 08:33:08 +00:00
# if MAVLINK_COMMAND_24BIT
2014-08-10 21:01:07 +02:00
# define MAVLINK_MESSAGE_INFO_VISION_POSITION_ESTIMATE { \
2016-10-10 10:40:57 +00:00
102, \
"VISION_POSITION_ESTIMATE", \
2018-04-29 09:48:09 +08:00
8, \
2020-09-20 10:12:24 +08:00
{ { "usec", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vision_position_estimate_t, usec) }, \
{ "x", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_vision_position_estimate_t, x) }, \
{ "y", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_vision_position_estimate_t, y) }, \
{ "z", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_vision_position_estimate_t, z) }, \
{ "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_vision_position_estimate_t, roll) }, \
{ "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_vision_position_estimate_t, pitch) }, \
{ "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_vision_position_estimate_t, yaw) }, \
{ "covariance", NULL, MAVLINK_TYPE_FLOAT, 21, 28, offsetof(mavlink_vision_position_estimate_t, covariance) }, \
2014-08-10 21:01:07 +02:00
} \
}
2016-05-16 08:33:08 +00:00
# else
# define MAVLINK_MESSAGE_INFO_VISION_POSITION_ESTIMATE { \
2016-10-10 10:40:57 +00:00
"VISION_POSITION_ESTIMATE", \
2018-04-29 09:48:09 +08:00
8, \
2020-09-20 10:12:24 +08:00
{ { "usec", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vision_position_estimate_t, usec) }, \
{ "x", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_vision_position_estimate_t, x) }, \
{ "y", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_vision_position_estimate_t, y) }, \
{ "z", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_vision_position_estimate_t, z) }, \
{ "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_vision_position_estimate_t, roll) }, \
{ "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_vision_position_estimate_t, pitch) }, \
{ "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_vision_position_estimate_t, yaw) }, \
{ "covariance", NULL, MAVLINK_TYPE_FLOAT, 21, 28, offsetof(mavlink_vision_position_estimate_t, covariance) }, \
2016-05-16 08:33:08 +00:00
} \
}
# endif
2014-08-10 21:01:07 +02:00
/**
* @brief Pack a vision_position_estimate message
* @param system_id ID of this system
* @param component_id ID of this component (e.g. 200 for IMU)
* @param msg The MAVLink message to compress the data into
*
2018-08-07 10:12:17 +08:00
* @param usec [us] Timestamp (UNIX time or time since system boot)
2018-06-03 17:07:10 +08:00
* @param x [m] Global X position
* @param y [m] Global Y position
* @param z [m] Global Z position
2018-08-07 10:12:17 +08:00
* @param roll [rad] Roll angle
* @param pitch [rad] Pitch angle
* @param yaw [rad] Yaw angle
2018-06-03 17:07:10 +08:00
* @param covariance Pose covariance matrix upper right triangular (first six entries are the first ROW, next five entries are the second ROW, etc.)
2014-08-10 21:01:07 +02:00
* @return length of the message in bytes (excluding serial stream start sign)
*/
2020-09-20 10:12:24 +08:00
static inline uint16_t mavlink_msg_vision_position_estimate_pack ( uint16_t system_id , uint8_t component_id , mavlink_message_t * msg ,
uint32_t usec , float x , float y , float z , float roll , float pitch , float yaw , const float * covariance )
2014-08-10 21:01:07 +02:00
{
# if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
2016-10-10 10:40:57 +00:00
char buf [ MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN ] ;
2020-09-20 10:12:24 +08:00
_mav_put_uint32_t ( buf , 0 , usec ) ;
_mav_put_float ( buf , 4 , x ) ;
_mav_put_float ( buf , 8 , y ) ;
_mav_put_float ( buf , 12 , z ) ;
_mav_put_float ( buf , 16 , roll ) ;
_mav_put_float ( buf , 20 , pitch ) ;
_mav_put_float ( buf , 24 , yaw ) ;
_mav_put_float_array ( buf , 28 , covariance , 21 ) ;
2014-08-10 21:01:07 +02:00
memcpy ( _MAV_PAYLOAD_NON_CONST ( msg ) , buf , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN ) ;
# else
2016-10-10 10:40:57 +00:00
mavlink_vision_position_estimate_t packet ;
packet . usec = usec ;
packet . x = x ;
packet . y = y ;
packet . z = z ;
packet . roll = roll ;
packet . pitch = pitch ;
packet . yaw = yaw ;
2018-04-29 09:48:09 +08:00
mav_array_memcpy ( packet . covariance , covariance , sizeof ( float ) * 21 ) ;
2014-08-10 21:01:07 +02:00
memcpy ( _MAV_PAYLOAD_NON_CONST ( msg ) , & packet , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN ) ;
# endif
2016-10-10 10:40:57 +00:00
msg - > msgid = MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE ;
2016-05-16 08:33:08 +00:00
return mavlink_finalize_message ( msg , system_id , component_id , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_MIN_LEN , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_CRC ) ;
2014-08-10 21:01:07 +02:00
}
/**
* @brief Pack a vision_position_estimate message on a channel
* @param system_id ID of this system
* @param component_id ID of this component (e.g. 200 for IMU)
* @param chan The MAVLink channel this message will be sent over
* @param msg The MAVLink message to compress the data into
2018-08-07 10:12:17 +08:00
* @param usec [us] Timestamp (UNIX time or time since system boot)
2018-06-03 17:07:10 +08:00
* @param x [m] Global X position
* @param y [m] Global Y position
* @param z [m] Global Z position
2018-08-07 10:12:17 +08:00
* @param roll [rad] Roll angle
* @param pitch [rad] Pitch angle
* @param yaw [rad] Yaw angle
2018-06-03 17:07:10 +08:00
* @param covariance Pose covariance matrix upper right triangular (first six entries are the first ROW, next five entries are the second ROW, etc.)
2014-08-10 21:01:07 +02:00
* @return length of the message in bytes (excluding serial stream start sign)
*/
2020-09-20 10:12:24 +08:00
static inline uint16_t mavlink_msg_vision_position_estimate_pack_chan ( uint16_t system_id , uint8_t component_id , uint8_t chan ,
2016-10-10 10:40:57 +00:00
mavlink_message_t * msg ,
2020-09-20 10:12:24 +08:00
uint32_t usec , float x , float y , float z , float roll , float pitch , float yaw , const float * covariance )
2014-08-10 21:01:07 +02:00
{
# if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
2016-10-10 10:40:57 +00:00
char buf [ MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN ] ;
2020-09-20 10:12:24 +08:00
_mav_put_uint32_t ( buf , 0 , usec ) ;
_mav_put_float ( buf , 4 , x ) ;
_mav_put_float ( buf , 8 , y ) ;
_mav_put_float ( buf , 12 , z ) ;
_mav_put_float ( buf , 16 , roll ) ;
_mav_put_float ( buf , 20 , pitch ) ;
_mav_put_float ( buf , 24 , yaw ) ;
_mav_put_float_array ( buf , 28 , covariance , 21 ) ;
2014-08-10 21:01:07 +02:00
memcpy ( _MAV_PAYLOAD_NON_CONST ( msg ) , buf , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN ) ;
# else
2016-10-10 10:40:57 +00:00
mavlink_vision_position_estimate_t packet ;
packet . usec = usec ;
packet . x = x ;
packet . y = y ;
packet . z = z ;
packet . roll = roll ;
packet . pitch = pitch ;
packet . yaw = yaw ;
2018-04-29 09:48:09 +08:00
mav_array_memcpy ( packet . covariance , covariance , sizeof ( float ) * 21 ) ;
2014-08-10 21:01:07 +02:00
memcpy ( _MAV_PAYLOAD_NON_CONST ( msg ) , & packet , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN ) ;
# endif
2016-10-10 10:40:57 +00:00
msg - > msgid = MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE ;
2016-05-16 08:33:08 +00:00
return mavlink_finalize_message_chan ( msg , system_id , component_id , chan , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_MIN_LEN , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_CRC ) ;
2014-08-10 21:01:07 +02:00
}
/**
* @brief Encode a vision_position_estimate struct
*
* @param system_id ID of this system
* @param component_id ID of this component (e.g. 200 for IMU)
* @param msg The MAVLink message to compress the data into
* @param vision_position_estimate C-struct to read the message contents from
*/
2020-09-20 10:12:24 +08:00
static inline uint16_t mavlink_msg_vision_position_estimate_encode ( uint16_t system_id , uint8_t component_id , mavlink_message_t * msg , const mavlink_vision_position_estimate_t * vision_position_estimate )
2014-08-10 21:01:07 +02:00
{
2018-04-29 09:48:09 +08:00
return mavlink_msg_vision_position_estimate_pack ( system_id , component_id , msg , vision_position_estimate - > usec , vision_position_estimate - > x , vision_position_estimate - > y , vision_position_estimate - > z , vision_position_estimate - > roll , vision_position_estimate - > pitch , vision_position_estimate - > yaw , vision_position_estimate - > covariance ) ;
2014-08-10 21:01:07 +02:00
}
/**
* @brief Encode a vision_position_estimate struct on a channel
*
* @param system_id ID of this system
* @param component_id ID of this component (e.g. 200 for IMU)
* @param chan The MAVLink channel this message will be sent over
* @param msg The MAVLink message to compress the data into
* @param vision_position_estimate C-struct to read the message contents from
*/
2020-09-20 10:12:24 +08:00
static inline uint16_t mavlink_msg_vision_position_estimate_encode_chan ( uint16_t system_id , uint8_t component_id , uint8_t chan , mavlink_message_t * msg , const mavlink_vision_position_estimate_t * vision_position_estimate )
2014-08-10 21:01:07 +02:00
{
2018-04-29 09:48:09 +08:00
return mavlink_msg_vision_position_estimate_pack_chan ( system_id , component_id , chan , msg , vision_position_estimate - > usec , vision_position_estimate - > x , vision_position_estimate - > y , vision_position_estimate - > z , vision_position_estimate - > roll , vision_position_estimate - > pitch , vision_position_estimate - > yaw , vision_position_estimate - > covariance ) ;
2014-08-10 21:01:07 +02:00
}
/**
* @brief Send a vision_position_estimate message
* @param chan MAVLink channel to send the message
*
2018-08-07 10:12:17 +08:00
* @param usec [us] Timestamp (UNIX time or time since system boot)
2018-06-03 17:07:10 +08:00
* @param x [m] Global X position
* @param y [m] Global Y position
* @param z [m] Global Z position
2018-08-07 10:12:17 +08:00
* @param roll [rad] Roll angle
* @param pitch [rad] Pitch angle
* @param yaw [rad] Yaw angle
2018-06-03 17:07:10 +08:00
* @param covariance Pose covariance matrix upper right triangular (first six entries are the first ROW, next five entries are the second ROW, etc.)
2014-08-10 21:01:07 +02:00
*/
# ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
2020-09-20 10:12:24 +08:00
static inline void mavlink_msg_vision_position_estimate_send ( mavlink_channel_t chan , uint32_t usec , float x , float y , float z , float roll , float pitch , float yaw , const float * covariance )
2014-08-10 21:01:07 +02:00
{
# if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
2016-10-10 10:40:57 +00:00
char buf [ MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN ] ;
2020-09-20 10:12:24 +08:00
_mav_put_uint32_t ( buf , 0 , usec ) ;
_mav_put_float ( buf , 4 , x ) ;
_mav_put_float ( buf , 8 , y ) ;
_mav_put_float ( buf , 12 , z ) ;
_mav_put_float ( buf , 16 , roll ) ;
_mav_put_float ( buf , 20 , pitch ) ;
_mav_put_float ( buf , 24 , yaw ) ;
_mav_put_float_array ( buf , 28 , covariance , 21 ) ;
2016-05-16 08:33:08 +00:00
_mav_finalize_message_chan_send ( chan , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE , buf , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_MIN_LEN , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_CRC ) ;
2014-08-10 21:01:07 +02:00
# else
2016-10-10 10:40:57 +00:00
mavlink_vision_position_estimate_t packet ;
packet . usec = usec ;
packet . x = x ;
packet . y = y ;
packet . z = z ;
packet . roll = roll ;
packet . pitch = pitch ;
packet . yaw = yaw ;
2018-04-29 09:48:09 +08:00
mav_array_memcpy ( packet . covariance , covariance , sizeof ( float ) * 21 ) ;
2016-05-16 08:33:08 +00:00
_mav_finalize_message_chan_send ( chan , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE , ( const char * ) & packet , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_MIN_LEN , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_CRC ) ;
2014-08-10 21:01:07 +02:00
# endif
2016-05-16 08:33:08 +00:00
}
/**
* @brief Send a vision_position_estimate message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_vision_position_estimate_send_struct ( mavlink_channel_t chan , const mavlink_vision_position_estimate_t * vision_position_estimate )
{
# if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
2018-04-29 09:48:09 +08:00
mavlink_msg_vision_position_estimate_send ( chan , vision_position_estimate - > usec , vision_position_estimate - > x , vision_position_estimate - > y , vision_position_estimate - > z , vision_position_estimate - > roll , vision_position_estimate - > pitch , vision_position_estimate - > yaw , vision_position_estimate - > covariance ) ;
2016-05-16 08:33:08 +00:00
# else
_mav_finalize_message_chan_send ( chan , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE , ( const char * ) vision_position_estimate , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_MIN_LEN , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_CRC ) ;
2014-08-10 21:01:07 +02:00
# endif
}
# if MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN <= MAVLINK_MAX_PAYLOAD_LEN
/*
This varient of _send() can be used to save stack space by re-using
memory from the receive buffer. The caller provides a
mavlink_message_t which is the size of a full mavlink message. This
is usually the receive buffer for the channel, and allows a reply to an
incoming message with minimum stack space usage.
*/
2020-09-20 10:12:24 +08:00
static inline void mavlink_msg_vision_position_estimate_send_buf ( mavlink_message_t * msgbuf , mavlink_channel_t chan , uint32_t usec , float x , float y , float z , float roll , float pitch , float yaw , const float * covariance )
2014-08-10 21:01:07 +02:00
{
# if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
2016-10-10 10:40:57 +00:00
char * buf = ( char * ) msgbuf ;
2020-09-20 10:12:24 +08:00
_mav_put_uint32_t ( buf , 0 , usec ) ;
_mav_put_float ( buf , 4 , x ) ;
_mav_put_float ( buf , 8 , y ) ;
_mav_put_float ( buf , 12 , z ) ;
_mav_put_float ( buf , 16 , roll ) ;
_mav_put_float ( buf , 20 , pitch ) ;
_mav_put_float ( buf , 24 , yaw ) ;
_mav_put_float_array ( buf , 28 , covariance , 21 ) ;
2016-05-16 08:33:08 +00:00
_mav_finalize_message_chan_send ( chan , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE , buf , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_MIN_LEN , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_CRC ) ;
2014-08-10 21:01:07 +02:00
# else
2016-10-10 10:40:57 +00:00
mavlink_vision_position_estimate_t * packet = ( mavlink_vision_position_estimate_t * ) msgbuf ;
packet - > usec = usec ;
packet - > x = x ;
packet - > y = y ;
packet - > z = z ;
packet - > roll = roll ;
packet - > pitch = pitch ;
packet - > yaw = yaw ;
2018-04-29 09:48:09 +08:00
mav_array_memcpy ( packet - > covariance , covariance , sizeof ( float ) * 21 ) ;
2016-05-16 08:33:08 +00:00
_mav_finalize_message_chan_send ( chan , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE , ( const char * ) packet , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_MIN_LEN , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_CRC ) ;
2014-08-10 21:01:07 +02:00
# endif
}
# endif
# endif
// MESSAGE VISION_POSITION_ESTIMATE UNPACKING
/**
* @brief Get field usec from vision_position_estimate message
*
2018-08-07 10:12:17 +08:00
* @return [us] Timestamp (UNIX time or time since system boot)
2014-08-10 21:01:07 +02:00
*/
2020-09-20 10:12:24 +08:00
static inline uint32_t mavlink_msg_vision_position_estimate_get_usec ( const mavlink_message_t * msg )
2014-08-10 21:01:07 +02:00
{
2020-09-20 10:12:24 +08:00
return _MAV_RETURN_uint32_t ( msg , 0 ) ;
2014-08-10 21:01:07 +02:00
}
/**
* @brief Get field x from vision_position_estimate message
*
2018-06-03 17:07:10 +08:00
* @return [m] Global X position
2014-08-10 21:01:07 +02:00
*/
static inline float mavlink_msg_vision_position_estimate_get_x ( const mavlink_message_t * msg )
{
2020-09-20 10:12:24 +08:00
return _MAV_RETURN_float ( msg , 4 ) ;
2014-08-10 21:01:07 +02:00
}
/**
* @brief Get field y from vision_position_estimate message
*
2018-06-03 17:07:10 +08:00
* @return [m] Global Y position
2014-08-10 21:01:07 +02:00
*/
static inline float mavlink_msg_vision_position_estimate_get_y ( const mavlink_message_t * msg )
{
2020-09-20 10:12:24 +08:00
return _MAV_RETURN_float ( msg , 8 ) ;
2014-08-10 21:01:07 +02:00
}
/**
* @brief Get field z from vision_position_estimate message
*
2018-06-03 17:07:10 +08:00
* @return [m] Global Z position
2014-08-10 21:01:07 +02:00
*/
static inline float mavlink_msg_vision_position_estimate_get_z ( const mavlink_message_t * msg )
{
2020-09-20 10:12:24 +08:00
return _MAV_RETURN_float ( msg , 12 ) ;
2014-08-10 21:01:07 +02:00
}
/**
* @brief Get field roll from vision_position_estimate message
*
2018-08-07 10:12:17 +08:00
* @return [rad] Roll angle
2014-08-10 21:01:07 +02:00
*/
static inline float mavlink_msg_vision_position_estimate_get_roll ( const mavlink_message_t * msg )
{
2020-09-20 10:12:24 +08:00
return _MAV_RETURN_float ( msg , 16 ) ;
2014-08-10 21:01:07 +02:00
}
/**
* @brief Get field pitch from vision_position_estimate message
*
2018-08-07 10:12:17 +08:00
* @return [rad] Pitch angle
2014-08-10 21:01:07 +02:00
*/
static inline float mavlink_msg_vision_position_estimate_get_pitch ( const mavlink_message_t * msg )
{
2020-09-20 10:12:24 +08:00
return _MAV_RETURN_float ( msg , 20 ) ;
2014-08-10 21:01:07 +02:00
}
/**
* @brief Get field yaw from vision_position_estimate message
*
2018-08-07 10:12:17 +08:00
* @return [rad] Yaw angle
2014-08-10 21:01:07 +02:00
*/
static inline float mavlink_msg_vision_position_estimate_get_yaw ( const mavlink_message_t * msg )
{
2020-09-20 10:12:24 +08:00
return _MAV_RETURN_float ( msg , 24 ) ;
2014-08-10 21:01:07 +02:00
}
2018-04-29 09:48:09 +08:00
/**
* @brief Get field covariance from vision_position_estimate message
*
2018-06-03 17:07:10 +08:00
* @return Pose covariance matrix upper right triangular (first six entries are the first ROW, next five entries are the second ROW, etc.)
2018-04-29 09:48:09 +08:00
*/
static inline uint16_t mavlink_msg_vision_position_estimate_get_covariance ( const mavlink_message_t * msg , float * covariance )
{
2020-09-20 10:12:24 +08:00
return _MAV_RETURN_float_array ( msg , covariance , 21 , 28 ) ;
2018-04-29 09:48:09 +08:00
}
2014-08-10 21:01:07 +02:00
/**
* @brief Decode a vision_position_estimate message into a struct
*
* @param msg The message to decode
* @param vision_position_estimate C-struct to decode the message contents into
*/
static inline void mavlink_msg_vision_position_estimate_decode ( const mavlink_message_t * msg , mavlink_vision_position_estimate_t * vision_position_estimate )
{
2016-05-16 08:33:08 +00:00
# if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
2016-10-10 10:40:57 +00:00
vision_position_estimate - > usec = mavlink_msg_vision_position_estimate_get_usec ( msg ) ;
vision_position_estimate - > x = mavlink_msg_vision_position_estimate_get_x ( msg ) ;
vision_position_estimate - > y = mavlink_msg_vision_position_estimate_get_y ( msg ) ;
vision_position_estimate - > z = mavlink_msg_vision_position_estimate_get_z ( msg ) ;
vision_position_estimate - > roll = mavlink_msg_vision_position_estimate_get_roll ( msg ) ;
vision_position_estimate - > pitch = mavlink_msg_vision_position_estimate_get_pitch ( msg ) ;
vision_position_estimate - > yaw = mavlink_msg_vision_position_estimate_get_yaw ( msg ) ;
2018-04-29 09:48:09 +08:00
mavlink_msg_vision_position_estimate_get_covariance ( msg , vision_position_estimate - > covariance ) ;
2014-08-10 21:01:07 +02:00
# else
2016-05-16 08:33:08 +00:00
uint8_t len = msg - > len < MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN ? msg - > len : MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN ;
memset ( vision_position_estimate , 0 , MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN ) ;
2016-10-10 10:40:57 +00:00
memcpy ( vision_position_estimate , _MAV_PAYLOAD ( msg ) , len ) ;
2014-08-10 21:01:07 +02:00
# endif
}