Files
c_library_v2/common/mavlink_msg_trajectory_representation_bezier.h
T

360 lines
21 KiB
C
Raw Normal View History

2018-08-07 10:12:17 +08:00
#pragma once
// MESSAGE TRAJECTORY_REPRESENTATION_BEZIER PACKING
#define MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER 333
2020-09-20 10:12:24 +08:00
2018-08-07 10:12:17 +08:00
typedef struct __mavlink_trajectory_representation_bezier_t {
2020-09-20 13:56:18 +08:00
uint32_t time_usec; /*< [us] Timestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.*/
float pos_x[5]; /*< [m] X-coordinate of bezier control points. Set to NaN if not being used*/
float pos_y[5]; /*< [m] Y-coordinate of bezier control points. Set to NaN if not being used*/
float pos_z[5]; /*< [m] Z-coordinate of bezier control points. Set to NaN if not being used*/
float delta[5]; /*< [s] Bezier time horizon. Set to NaN if velocity/acceleration should not be incorporated*/
float pos_yaw[5]; /*< [rad] Yaw. Set to NaN for unchanged*/
uint8_t valid_points; /*< Number of valid control points (up-to 5 points are possible)*/
2020-09-20 10:12:24 +08:00
} mavlink_trajectory_representation_bezier_t;
2018-08-07 10:12:17 +08:00
2020-09-20 10:12:24 +08:00
#define MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN 105
#define MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_MIN_LEN 105
#define MAVLINK_MSG_ID_333_LEN 105
#define MAVLINK_MSG_ID_333_MIN_LEN 105
2018-08-07 10:12:17 +08:00
2020-09-20 10:12:24 +08:00
#define MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_CRC 15
#define MAVLINK_MSG_ID_333_CRC 15
2018-08-07 10:12:17 +08:00
#define MAVLINK_MSG_TRAJECTORY_REPRESENTATION_BEZIER_FIELD_POS_X_LEN 5
#define MAVLINK_MSG_TRAJECTORY_REPRESENTATION_BEZIER_FIELD_POS_Y_LEN 5
#define MAVLINK_MSG_TRAJECTORY_REPRESENTATION_BEZIER_FIELD_POS_Z_LEN 5
#define MAVLINK_MSG_TRAJECTORY_REPRESENTATION_BEZIER_FIELD_DELTA_LEN 5
#define MAVLINK_MSG_TRAJECTORY_REPRESENTATION_BEZIER_FIELD_POS_YAW_LEN 5
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_TRAJECTORY_REPRESENTATION_BEZIER { \
333, \
"TRAJECTORY_REPRESENTATION_BEZIER", \
7, \
2020-09-20 10:12:24 +08:00
{ { "time_usec", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_trajectory_representation_bezier_t, time_usec) }, \
{ "valid_points", NULL, MAVLINK_TYPE_UINT8_T, 0, 104, offsetof(mavlink_trajectory_representation_bezier_t, valid_points) }, \
{ "pos_x", NULL, MAVLINK_TYPE_FLOAT, 5, 4, offsetof(mavlink_trajectory_representation_bezier_t, pos_x) }, \
{ "pos_y", NULL, MAVLINK_TYPE_FLOAT, 5, 24, offsetof(mavlink_trajectory_representation_bezier_t, pos_y) }, \
{ "pos_z", NULL, MAVLINK_TYPE_FLOAT, 5, 44, offsetof(mavlink_trajectory_representation_bezier_t, pos_z) }, \
{ "delta", NULL, MAVLINK_TYPE_FLOAT, 5, 64, offsetof(mavlink_trajectory_representation_bezier_t, delta) }, \
{ "pos_yaw", NULL, MAVLINK_TYPE_FLOAT, 5, 84, offsetof(mavlink_trajectory_representation_bezier_t, pos_yaw) }, \
2018-08-07 10:12:17 +08:00
} \
}
#else
#define MAVLINK_MESSAGE_INFO_TRAJECTORY_REPRESENTATION_BEZIER { \
"TRAJECTORY_REPRESENTATION_BEZIER", \
7, \
2020-09-20 10:12:24 +08:00
{ { "time_usec", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_trajectory_representation_bezier_t, time_usec) }, \
{ "valid_points", NULL, MAVLINK_TYPE_UINT8_T, 0, 104, offsetof(mavlink_trajectory_representation_bezier_t, valid_points) }, \
{ "pos_x", NULL, MAVLINK_TYPE_FLOAT, 5, 4, offsetof(mavlink_trajectory_representation_bezier_t, pos_x) }, \
{ "pos_y", NULL, MAVLINK_TYPE_FLOAT, 5, 24, offsetof(mavlink_trajectory_representation_bezier_t, pos_y) }, \
{ "pos_z", NULL, MAVLINK_TYPE_FLOAT, 5, 44, offsetof(mavlink_trajectory_representation_bezier_t, pos_z) }, \
{ "delta", NULL, MAVLINK_TYPE_FLOAT, 5, 64, offsetof(mavlink_trajectory_representation_bezier_t, delta) }, \
{ "pos_yaw", NULL, MAVLINK_TYPE_FLOAT, 5, 84, offsetof(mavlink_trajectory_representation_bezier_t, pos_yaw) }, \
2018-08-07 10:12:17 +08:00
} \
}
#endif
/**
* @brief Pack a trajectory_representation_bezier 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
*
2020-09-20 13:56:18 +08:00
* @param time_usec [us] Timestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
* @param valid_points Number of valid control points (up-to 5 points are possible)
* @param pos_x [m] X-coordinate of bezier control points. Set to NaN if not being used
* @param pos_y [m] Y-coordinate of bezier control points. Set to NaN if not being used
* @param pos_z [m] Z-coordinate of bezier control points. Set to NaN if not being used
* @param delta [s] Bezier time horizon. Set to NaN if velocity/acceleration should not be incorporated
* @param pos_yaw [rad] Yaw. Set to NaN for unchanged
2018-08-07 10:12:17 +08: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_trajectory_representation_bezier_pack(uint16_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint32_t time_usec, uint8_t valid_points, const float *pos_x, const float *pos_y, const float *pos_z, const float *delta, const float *pos_yaw)
2018-08-07 10:12:17 +08:00
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN];
2020-09-20 10:12:24 +08:00
_mav_put_uint32_t(buf, 0, time_usec);
_mav_put_uint8_t(buf, 104, valid_points);
_mav_put_float_array(buf, 4, pos_x, 5);
_mav_put_float_array(buf, 24, pos_y, 5);
_mav_put_float_array(buf, 44, pos_z, 5);
_mav_put_float_array(buf, 64, delta, 5);
_mav_put_float_array(buf, 84, pos_yaw, 5);
2018-08-07 10:12:17 +08:00
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN);
#else
mavlink_trajectory_representation_bezier_t packet;
packet.time_usec = time_usec;
packet.valid_points = valid_points;
mav_array_memcpy(packet.pos_x, pos_x, sizeof(float)*5);
mav_array_memcpy(packet.pos_y, pos_y, sizeof(float)*5);
mav_array_memcpy(packet.pos_z, pos_z, sizeof(float)*5);
mav_array_memcpy(packet.delta, delta, sizeof(float)*5);
mav_array_memcpy(packet.pos_yaw, pos_yaw, sizeof(float)*5);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_MIN_LEN, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_CRC);
}
/**
* @brief Pack a trajectory_representation_bezier 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
2020-09-20 13:56:18 +08:00
* @param time_usec [us] Timestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
* @param valid_points Number of valid control points (up-to 5 points are possible)
* @param pos_x [m] X-coordinate of bezier control points. Set to NaN if not being used
* @param pos_y [m] Y-coordinate of bezier control points. Set to NaN if not being used
* @param pos_z [m] Z-coordinate of bezier control points. Set to NaN if not being used
* @param delta [s] Bezier time horizon. Set to NaN if velocity/acceleration should not be incorporated
* @param pos_yaw [rad] Yaw. Set to NaN for unchanged
2018-08-07 10:12:17 +08: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_trajectory_representation_bezier_pack_chan(uint16_t system_id, uint8_t component_id, uint8_t chan,
2018-08-07 10:12:17 +08:00
mavlink_message_t* msg,
2020-09-20 10:12:24 +08:00
uint32_t time_usec,uint8_t valid_points,const float *pos_x,const float *pos_y,const float *pos_z,const float *delta,const float *pos_yaw)
2018-08-07 10:12:17 +08:00
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN];
2020-09-20 10:12:24 +08:00
_mav_put_uint32_t(buf, 0, time_usec);
_mav_put_uint8_t(buf, 104, valid_points);
_mav_put_float_array(buf, 4, pos_x, 5);
_mav_put_float_array(buf, 24, pos_y, 5);
_mav_put_float_array(buf, 44, pos_z, 5);
_mav_put_float_array(buf, 64, delta, 5);
_mav_put_float_array(buf, 84, pos_yaw, 5);
2018-08-07 10:12:17 +08:00
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN);
#else
mavlink_trajectory_representation_bezier_t packet;
packet.time_usec = time_usec;
packet.valid_points = valid_points;
mav_array_memcpy(packet.pos_x, pos_x, sizeof(float)*5);
mav_array_memcpy(packet.pos_y, pos_y, sizeof(float)*5);
mav_array_memcpy(packet.pos_z, pos_z, sizeof(float)*5);
mav_array_memcpy(packet.delta, delta, sizeof(float)*5);
mav_array_memcpy(packet.pos_yaw, pos_yaw, sizeof(float)*5);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_MIN_LEN, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_CRC);
}
/**
* @brief Encode a trajectory_representation_bezier 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 trajectory_representation_bezier C-struct to read the message contents from
*/
2020-09-20 10:12:24 +08:00
static inline uint16_t mavlink_msg_trajectory_representation_bezier_encode(uint16_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_trajectory_representation_bezier_t* trajectory_representation_bezier)
2018-08-07 10:12:17 +08:00
{
return mavlink_msg_trajectory_representation_bezier_pack(system_id, component_id, msg, trajectory_representation_bezier->time_usec, trajectory_representation_bezier->valid_points, trajectory_representation_bezier->pos_x, trajectory_representation_bezier->pos_y, trajectory_representation_bezier->pos_z, trajectory_representation_bezier->delta, trajectory_representation_bezier->pos_yaw);
}
/**
* @brief Encode a trajectory_representation_bezier 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 trajectory_representation_bezier C-struct to read the message contents from
*/
2020-09-20 10:12:24 +08:00
static inline uint16_t mavlink_msg_trajectory_representation_bezier_encode_chan(uint16_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_trajectory_representation_bezier_t* trajectory_representation_bezier)
2018-08-07 10:12:17 +08:00
{
return mavlink_msg_trajectory_representation_bezier_pack_chan(system_id, component_id, chan, msg, trajectory_representation_bezier->time_usec, trajectory_representation_bezier->valid_points, trajectory_representation_bezier->pos_x, trajectory_representation_bezier->pos_y, trajectory_representation_bezier->pos_z, trajectory_representation_bezier->delta, trajectory_representation_bezier->pos_yaw);
}
/**
* @brief Send a trajectory_representation_bezier message
* @param chan MAVLink channel to send the message
*
2020-09-20 13:56:18 +08:00
* @param time_usec [us] Timestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
* @param valid_points Number of valid control points (up-to 5 points are possible)
* @param pos_x [m] X-coordinate of bezier control points. Set to NaN if not being used
* @param pos_y [m] Y-coordinate of bezier control points. Set to NaN if not being used
* @param pos_z [m] Z-coordinate of bezier control points. Set to NaN if not being used
* @param delta [s] Bezier time horizon. Set to NaN if velocity/acceleration should not be incorporated
* @param pos_yaw [rad] Yaw. Set to NaN for unchanged
2018-08-07 10:12:17 +08:00
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
2020-09-20 10:12:24 +08:00
static inline void mavlink_msg_trajectory_representation_bezier_send(mavlink_channel_t chan, uint32_t time_usec, uint8_t valid_points, const float *pos_x, const float *pos_y, const float *pos_z, const float *delta, const float *pos_yaw)
2018-08-07 10:12:17 +08:00
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN];
2020-09-20 10:12:24 +08:00
_mav_put_uint32_t(buf, 0, time_usec);
_mav_put_uint8_t(buf, 104, valid_points);
_mav_put_float_array(buf, 4, pos_x, 5);
_mav_put_float_array(buf, 24, pos_y, 5);
_mav_put_float_array(buf, 44, pos_z, 5);
_mav_put_float_array(buf, 64, delta, 5);
_mav_put_float_array(buf, 84, pos_yaw, 5);
2018-08-07 10:12:17 +08:00
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER, buf, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_MIN_LEN, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_CRC);
#else
mavlink_trajectory_representation_bezier_t packet;
packet.time_usec = time_usec;
packet.valid_points = valid_points;
mav_array_memcpy(packet.pos_x, pos_x, sizeof(float)*5);
mav_array_memcpy(packet.pos_y, pos_y, sizeof(float)*5);
mav_array_memcpy(packet.pos_z, pos_z, sizeof(float)*5);
mav_array_memcpy(packet.delta, delta, sizeof(float)*5);
mav_array_memcpy(packet.pos_yaw, pos_yaw, sizeof(float)*5);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER, (const char *)&packet, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_MIN_LEN, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_CRC);
#endif
}
/**
* @brief Send a trajectory_representation_bezier message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_trajectory_representation_bezier_send_struct(mavlink_channel_t chan, const mavlink_trajectory_representation_bezier_t* trajectory_representation_bezier)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_trajectory_representation_bezier_send(chan, trajectory_representation_bezier->time_usec, trajectory_representation_bezier->valid_points, trajectory_representation_bezier->pos_x, trajectory_representation_bezier->pos_y, trajectory_representation_bezier->pos_z, trajectory_representation_bezier->delta, trajectory_representation_bezier->pos_yaw);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER, (const char *)trajectory_representation_bezier, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_MIN_LEN, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_CRC);
#endif
}
#if MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_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_trajectory_representation_bezier_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t time_usec, uint8_t valid_points, const float *pos_x, const float *pos_y, const float *pos_z, const float *delta, const float *pos_yaw)
2018-08-07 10:12:17 +08:00
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
2020-09-20 10:12:24 +08:00
_mav_put_uint32_t(buf, 0, time_usec);
_mav_put_uint8_t(buf, 104, valid_points);
_mav_put_float_array(buf, 4, pos_x, 5);
_mav_put_float_array(buf, 24, pos_y, 5);
_mav_put_float_array(buf, 44, pos_z, 5);
_mav_put_float_array(buf, 64, delta, 5);
_mav_put_float_array(buf, 84, pos_yaw, 5);
2018-08-07 10:12:17 +08:00
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER, buf, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_MIN_LEN, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_CRC);
#else
mavlink_trajectory_representation_bezier_t *packet = (mavlink_trajectory_representation_bezier_t *)msgbuf;
packet->time_usec = time_usec;
packet->valid_points = valid_points;
mav_array_memcpy(packet->pos_x, pos_x, sizeof(float)*5);
mav_array_memcpy(packet->pos_y, pos_y, sizeof(float)*5);
mav_array_memcpy(packet->pos_z, pos_z, sizeof(float)*5);
mav_array_memcpy(packet->delta, delta, sizeof(float)*5);
mav_array_memcpy(packet->pos_yaw, pos_yaw, sizeof(float)*5);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER, (const char *)packet, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_MIN_LEN, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_CRC);
#endif
}
#endif
#endif
// MESSAGE TRAJECTORY_REPRESENTATION_BEZIER UNPACKING
/**
* @brief Get field time_usec from trajectory_representation_bezier message
*
2020-09-20 13:56:18 +08:00
* @return [us] Timestamp (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
2018-08-07 10:12:17 +08:00
*/
2020-09-20 10:12:24 +08:00
static inline uint32_t mavlink_msg_trajectory_representation_bezier_get_time_usec(const mavlink_message_t* msg)
2018-08-07 10:12:17 +08:00
{
2020-09-20 10:12:24 +08:00
return _MAV_RETURN_uint32_t(msg, 0);
2018-08-07 10:12:17 +08:00
}
/**
* @brief Get field valid_points from trajectory_representation_bezier message
*
2020-09-20 13:56:18 +08:00
* @return Number of valid control points (up-to 5 points are possible)
2018-08-07 10:12:17 +08:00
*/
static inline uint8_t mavlink_msg_trajectory_representation_bezier_get_valid_points(const mavlink_message_t* msg)
{
2020-09-20 10:12:24 +08:00
return _MAV_RETURN_uint8_t(msg, 104);
2018-08-07 10:12:17 +08:00
}
/**
* @brief Get field pos_x from trajectory_representation_bezier message
*
2020-09-20 13:56:18 +08:00
* @return [m] X-coordinate of bezier control points. Set to NaN if not being used
2018-08-07 10:12:17 +08:00
*/
static inline uint16_t mavlink_msg_trajectory_representation_bezier_get_pos_x(const mavlink_message_t* msg, float *pos_x)
{
2020-09-20 10:12:24 +08:00
return _MAV_RETURN_float_array(msg, pos_x, 5, 4);
2018-08-07 10:12:17 +08:00
}
/**
* @brief Get field pos_y from trajectory_representation_bezier message
*
2020-09-20 13:56:18 +08:00
* @return [m] Y-coordinate of bezier control points. Set to NaN if not being used
2018-08-07 10:12:17 +08:00
*/
static inline uint16_t mavlink_msg_trajectory_representation_bezier_get_pos_y(const mavlink_message_t* msg, float *pos_y)
{
2020-09-20 10:12:24 +08:00
return _MAV_RETURN_float_array(msg, pos_y, 5, 24);
2018-08-07 10:12:17 +08:00
}
/**
* @brief Get field pos_z from trajectory_representation_bezier message
*
2020-09-20 13:56:18 +08:00
* @return [m] Z-coordinate of bezier control points. Set to NaN if not being used
2018-08-07 10:12:17 +08:00
*/
static inline uint16_t mavlink_msg_trajectory_representation_bezier_get_pos_z(const mavlink_message_t* msg, float *pos_z)
{
2020-09-20 10:12:24 +08:00
return _MAV_RETURN_float_array(msg, pos_z, 5, 44);
2018-08-07 10:12:17 +08:00
}
/**
* @brief Get field delta from trajectory_representation_bezier message
*
2020-09-20 13:56:18 +08:00
* @return [s] Bezier time horizon. Set to NaN if velocity/acceleration should not be incorporated
2018-08-07 10:12:17 +08:00
*/
static inline uint16_t mavlink_msg_trajectory_representation_bezier_get_delta(const mavlink_message_t* msg, float *delta)
{
2020-09-20 10:12:24 +08:00
return _MAV_RETURN_float_array(msg, delta, 5, 64);
2018-08-07 10:12:17 +08:00
}
/**
* @brief Get field pos_yaw from trajectory_representation_bezier message
*
2020-09-20 13:56:18 +08:00
* @return [rad] Yaw. Set to NaN for unchanged
2018-08-07 10:12:17 +08:00
*/
static inline uint16_t mavlink_msg_trajectory_representation_bezier_get_pos_yaw(const mavlink_message_t* msg, float *pos_yaw)
{
2020-09-20 10:12:24 +08:00
return _MAV_RETURN_float_array(msg, pos_yaw, 5, 84);
2018-08-07 10:12:17 +08:00
}
/**
* @brief Decode a trajectory_representation_bezier message into a struct
*
* @param msg The message to decode
* @param trajectory_representation_bezier C-struct to decode the message contents into
*/
static inline void mavlink_msg_trajectory_representation_bezier_decode(const mavlink_message_t* msg, mavlink_trajectory_representation_bezier_t* trajectory_representation_bezier)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
trajectory_representation_bezier->time_usec = mavlink_msg_trajectory_representation_bezier_get_time_usec(msg);
mavlink_msg_trajectory_representation_bezier_get_pos_x(msg, trajectory_representation_bezier->pos_x);
mavlink_msg_trajectory_representation_bezier_get_pos_y(msg, trajectory_representation_bezier->pos_y);
mavlink_msg_trajectory_representation_bezier_get_pos_z(msg, trajectory_representation_bezier->pos_z);
mavlink_msg_trajectory_representation_bezier_get_delta(msg, trajectory_representation_bezier->delta);
mavlink_msg_trajectory_representation_bezier_get_pos_yaw(msg, trajectory_representation_bezier->pos_yaw);
trajectory_representation_bezier->valid_points = mavlink_msg_trajectory_representation_bezier_get_valid_points(msg);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN? msg->len : MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN;
memset(trajectory_representation_bezier, 0, MAVLINK_MSG_ID_TRAJECTORY_REPRESENTATION_BEZIER_LEN);
memcpy(trajectory_representation_bezier, _MAV_PAYLOAD(msg), len);
#endif
}