15 changed files with 1706 additions and 11 deletions
@ -0,0 +1,276 @@
@@ -0,0 +1,276 @@
|
||||
// MESSAGE DCM PACKING
|
||||
|
||||
#define MAVLINK_MSG_ID_DCM 163 |
||||
|
||||
typedef struct __mavlink_dcm_t |
||||
{ |
||||
float omegaIx; ///< X gyro drift estimate rad/s
|
||||
float omegaIy; ///< Y gyro drift estimate rad/s
|
||||
float omegaIz; ///< Z gyro drift estimate rad/s
|
||||
float accel_weight; ///< average accel_weight
|
||||
float renorm_val; ///< average renormalisation value
|
||||
float error_rp; ///< average error_roll_pitch value
|
||||
float error_yaw; ///< average error_yaw value
|
||||
} mavlink_dcm_t; |
||||
|
||||
#define MAVLINK_MSG_ID_DCM_LEN 28 |
||||
#define MAVLINK_MSG_ID_163_LEN 28 |
||||
|
||||
|
||||
|
||||
#define MAVLINK_MESSAGE_INFO_DCM { \ |
||||
"DCM", \
|
||||
7, \
|
||||
{ { "omegaIx", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_dcm_t, omegaIx) }, \
|
||||
{ "omegaIy", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_dcm_t, omegaIy) }, \
|
||||
{ "omegaIz", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_dcm_t, omegaIz) }, \
|
||||
{ "accel_weight", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_dcm_t, accel_weight) }, \
|
||||
{ "renorm_val", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_dcm_t, renorm_val) }, \
|
||||
{ "error_rp", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_dcm_t, error_rp) }, \
|
||||
{ "error_yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_dcm_t, error_yaw) }, \
|
||||
} \
|
||||
} |
||||
|
||||
|
||||
/**
|
||||
* @brief Pack a dcm 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 |
||||
* |
||||
* @param omegaIx X gyro drift estimate rad/s |
||||
* @param omegaIy Y gyro drift estimate rad/s |
||||
* @param omegaIz Z gyro drift estimate rad/s |
||||
* @param accel_weight average accel_weight |
||||
* @param renorm_val average renormalisation value |
||||
* @param error_rp average error_roll_pitch value |
||||
* @param error_yaw average error_yaw value |
||||
* @return length of the message in bytes (excluding serial stream start sign) |
||||
*/ |
||||
static inline uint16_t mavlink_msg_dcm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, |
||||
float omegaIx, float omegaIy, float omegaIz, float accel_weight, float renorm_val, float error_rp, float error_yaw) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS |
||||
char buf[28]; |
||||
_mav_put_float(buf, 0, omegaIx); |
||||
_mav_put_float(buf, 4, omegaIy); |
||||
_mav_put_float(buf, 8, omegaIz); |
||||
_mav_put_float(buf, 12, accel_weight); |
||||
_mav_put_float(buf, 16, renorm_val); |
||||
_mav_put_float(buf, 20, error_rp); |
||||
_mav_put_float(buf, 24, error_yaw); |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), buf, 28); |
||||
#else |
||||
mavlink_dcm_t packet; |
||||
packet.omegaIx = omegaIx; |
||||
packet.omegaIy = omegaIy; |
||||
packet.omegaIz = omegaIz; |
||||
packet.accel_weight = accel_weight; |
||||
packet.renorm_val = renorm_val; |
||||
packet.error_rp = error_rp; |
||||
packet.error_yaw = error_yaw; |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), &packet, 28); |
||||
#endif |
||||
|
||||
msg->msgid = MAVLINK_MSG_ID_DCM; |
||||
return mavlink_finalize_message(msg, system_id, component_id, 28); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Pack a dcm 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 was sent over |
||||
* @param msg The MAVLink message to compress the data into |
||||
* @param omegaIx X gyro drift estimate rad/s |
||||
* @param omegaIy Y gyro drift estimate rad/s |
||||
* @param omegaIz Z gyro drift estimate rad/s |
||||
* @param accel_weight average accel_weight |
||||
* @param renorm_val average renormalisation value |
||||
* @param error_rp average error_roll_pitch value |
||||
* @param error_yaw average error_yaw value |
||||
* @return length of the message in bytes (excluding serial stream start sign) |
||||
*/ |
||||
static inline uint16_t mavlink_msg_dcm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, |
||||
mavlink_message_t* msg, |
||||
float omegaIx,float omegaIy,float omegaIz,float accel_weight,float renorm_val,float error_rp,float error_yaw) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS |
||||
char buf[28]; |
||||
_mav_put_float(buf, 0, omegaIx); |
||||
_mav_put_float(buf, 4, omegaIy); |
||||
_mav_put_float(buf, 8, omegaIz); |
||||
_mav_put_float(buf, 12, accel_weight); |
||||
_mav_put_float(buf, 16, renorm_val); |
||||
_mav_put_float(buf, 20, error_rp); |
||||
_mav_put_float(buf, 24, error_yaw); |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), buf, 28); |
||||
#else |
||||
mavlink_dcm_t packet; |
||||
packet.omegaIx = omegaIx; |
||||
packet.omegaIy = omegaIy; |
||||
packet.omegaIz = omegaIz; |
||||
packet.accel_weight = accel_weight; |
||||
packet.renorm_val = renorm_val; |
||||
packet.error_rp = error_rp; |
||||
packet.error_yaw = error_yaw; |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), &packet, 28); |
||||
#endif |
||||
|
||||
msg->msgid = MAVLINK_MSG_ID_DCM; |
||||
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 28); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Encode a dcm struct into a 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 |
||||
* @param dcm C-struct to read the message contents from |
||||
*/ |
||||
static inline uint16_t mavlink_msg_dcm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_dcm_t* dcm) |
||||
{ |
||||
return mavlink_msg_dcm_pack(system_id, component_id, msg, dcm->omegaIx, dcm->omegaIy, dcm->omegaIz, dcm->accel_weight, dcm->renorm_val, dcm->error_rp, dcm->error_yaw); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Send a dcm message |
||||
* @param chan MAVLink channel to send the message |
||||
* |
||||
* @param omegaIx X gyro drift estimate rad/s |
||||
* @param omegaIy Y gyro drift estimate rad/s |
||||
* @param omegaIz Z gyro drift estimate rad/s |
||||
* @param accel_weight average accel_weight |
||||
* @param renorm_val average renormalisation value |
||||
* @param error_rp average error_roll_pitch value |
||||
* @param error_yaw average error_yaw value |
||||
*/ |
||||
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS |
||||
|
||||
static inline void mavlink_msg_dcm_send(mavlink_channel_t chan, float omegaIx, float omegaIy, float omegaIz, float accel_weight, float renorm_val, float error_rp, float error_yaw) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS |
||||
char buf[28]; |
||||
_mav_put_float(buf, 0, omegaIx); |
||||
_mav_put_float(buf, 4, omegaIy); |
||||
_mav_put_float(buf, 8, omegaIz); |
||||
_mav_put_float(buf, 12, accel_weight); |
||||
_mav_put_float(buf, 16, renorm_val); |
||||
_mav_put_float(buf, 20, error_rp); |
||||
_mav_put_float(buf, 24, error_yaw); |
||||
|
||||
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DCM, buf, 28); |
||||
#else |
||||
mavlink_dcm_t packet; |
||||
packet.omegaIx = omegaIx; |
||||
packet.omegaIy = omegaIy; |
||||
packet.omegaIz = omegaIz; |
||||
packet.accel_weight = accel_weight; |
||||
packet.renorm_val = renorm_val; |
||||
packet.error_rp = error_rp; |
||||
packet.error_yaw = error_yaw; |
||||
|
||||
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DCM, (const char *)&packet, 28); |
||||
#endif |
||||
} |
||||
|
||||
#endif |
||||
|
||||
// MESSAGE DCM UNPACKING
|
||||
|
||||
|
||||
/**
|
||||
* @brief Get field omegaIx from dcm message |
||||
* |
||||
* @return X gyro drift estimate rad/s |
||||
*/ |
||||
static inline float mavlink_msg_dcm_get_omegaIx(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 0); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field omegaIy from dcm message |
||||
* |
||||
* @return Y gyro drift estimate rad/s |
||||
*/ |
||||
static inline float mavlink_msg_dcm_get_omegaIy(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 4); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field omegaIz from dcm message |
||||
* |
||||
* @return Z gyro drift estimate rad/s |
||||
*/ |
||||
static inline float mavlink_msg_dcm_get_omegaIz(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 8); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field accel_weight from dcm message |
||||
* |
||||
* @return average accel_weight |
||||
*/ |
||||
static inline float mavlink_msg_dcm_get_accel_weight(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 12); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field renorm_val from dcm message |
||||
* |
||||
* @return average renormalisation value |
||||
*/ |
||||
static inline float mavlink_msg_dcm_get_renorm_val(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 16); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field error_rp from dcm message |
||||
* |
||||
* @return average error_roll_pitch value |
||||
*/ |
||||
static inline float mavlink_msg_dcm_get_error_rp(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 20); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field error_yaw from dcm message |
||||
* |
||||
* @return average error_yaw value |
||||
*/ |
||||
static inline float mavlink_msg_dcm_get_error_yaw(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 24); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Decode a dcm message into a struct |
||||
* |
||||
* @param msg The message to decode |
||||
* @param dcm C-struct to decode the message contents into |
||||
*/ |
||||
static inline void mavlink_msg_dcm_decode(const mavlink_message_t* msg, mavlink_dcm_t* dcm) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP |
||||
dcm->omegaIx = mavlink_msg_dcm_get_omegaIx(msg); |
||||
dcm->omegaIy = mavlink_msg_dcm_get_omegaIy(msg); |
||||
dcm->omegaIz = mavlink_msg_dcm_get_omegaIz(msg); |
||||
dcm->accel_weight = mavlink_msg_dcm_get_accel_weight(msg); |
||||
dcm->renorm_val = mavlink_msg_dcm_get_renorm_val(msg); |
||||
dcm->error_rp = mavlink_msg_dcm_get_error_rp(msg); |
||||
dcm->error_yaw = mavlink_msg_dcm_get_error_yaw(msg); |
||||
#else |
||||
memcpy(dcm, _MAV_PAYLOAD(msg), 28); |
||||
#endif |
||||
} |
@ -0,0 +1,166 @@
@@ -0,0 +1,166 @@
|
||||
// MESSAGE HWSTATUS PACKING
|
||||
|
||||
#define MAVLINK_MSG_ID_HWSTATUS 165 |
||||
|
||||
typedef struct __mavlink_hwstatus_t |
||||
{ |
||||
uint16_t Vcc; ///< board voltage (mV)
|
||||
uint8_t I2Cerr; ///< I2C error count
|
||||
} mavlink_hwstatus_t; |
||||
|
||||
#define MAVLINK_MSG_ID_HWSTATUS_LEN 3 |
||||
#define MAVLINK_MSG_ID_165_LEN 3 |
||||
|
||||
|
||||
|
||||
#define MAVLINK_MESSAGE_INFO_HWSTATUS { \ |
||||
"HWSTATUS", \
|
||||
2, \
|
||||
{ { "Vcc", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_hwstatus_t, Vcc) }, \
|
||||
{ "I2Cerr", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_hwstatus_t, I2Cerr) }, \
|
||||
} \
|
||||
} |
||||
|
||||
|
||||
/**
|
||||
* @brief Pack a hwstatus 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 |
||||
* |
||||
* @param Vcc board voltage (mV) |
||||
* @param I2Cerr I2C error count |
||||
* @return length of the message in bytes (excluding serial stream start sign) |
||||
*/ |
||||
static inline uint16_t mavlink_msg_hwstatus_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, |
||||
uint16_t Vcc, uint8_t I2Cerr) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS |
||||
char buf[3]; |
||||
_mav_put_uint16_t(buf, 0, Vcc); |
||||
_mav_put_uint8_t(buf, 2, I2Cerr); |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), buf, 3); |
||||
#else |
||||
mavlink_hwstatus_t packet; |
||||
packet.Vcc = Vcc; |
||||
packet.I2Cerr = I2Cerr; |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), &packet, 3); |
||||
#endif |
||||
|
||||
msg->msgid = MAVLINK_MSG_ID_HWSTATUS; |
||||
return mavlink_finalize_message(msg, system_id, component_id, 3); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Pack a hwstatus 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 was sent over |
||||
* @param msg The MAVLink message to compress the data into |
||||
* @param Vcc board voltage (mV) |
||||
* @param I2Cerr I2C error count |
||||
* @return length of the message in bytes (excluding serial stream start sign) |
||||
*/ |
||||
static inline uint16_t mavlink_msg_hwstatus_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, |
||||
mavlink_message_t* msg, |
||||
uint16_t Vcc,uint8_t I2Cerr) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS |
||||
char buf[3]; |
||||
_mav_put_uint16_t(buf, 0, Vcc); |
||||
_mav_put_uint8_t(buf, 2, I2Cerr); |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), buf, 3); |
||||
#else |
||||
mavlink_hwstatus_t packet; |
||||
packet.Vcc = Vcc; |
||||
packet.I2Cerr = I2Cerr; |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), &packet, 3); |
||||
#endif |
||||
|
||||
msg->msgid = MAVLINK_MSG_ID_HWSTATUS; |
||||
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 3); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Encode a hwstatus struct into a 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 |
||||
* @param hwstatus C-struct to read the message contents from |
||||
*/ |
||||
static inline uint16_t mavlink_msg_hwstatus_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_hwstatus_t* hwstatus) |
||||
{ |
||||
return mavlink_msg_hwstatus_pack(system_id, component_id, msg, hwstatus->Vcc, hwstatus->I2Cerr); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Send a hwstatus message |
||||
* @param chan MAVLink channel to send the message |
||||
* |
||||
* @param Vcc board voltage (mV) |
||||
* @param I2Cerr I2C error count |
||||
*/ |
||||
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS |
||||
|
||||
static inline void mavlink_msg_hwstatus_send(mavlink_channel_t chan, uint16_t Vcc, uint8_t I2Cerr) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS |
||||
char buf[3]; |
||||
_mav_put_uint16_t(buf, 0, Vcc); |
||||
_mav_put_uint8_t(buf, 2, I2Cerr); |
||||
|
||||
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_HWSTATUS, buf, 3); |
||||
#else |
||||
mavlink_hwstatus_t packet; |
||||
packet.Vcc = Vcc; |
||||
packet.I2Cerr = I2Cerr; |
||||
|
||||
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_HWSTATUS, (const char *)&packet, 3); |
||||
#endif |
||||
} |
||||
|
||||
#endif |
||||
|
||||
// MESSAGE HWSTATUS UNPACKING
|
||||
|
||||
|
||||
/**
|
||||
* @brief Get field Vcc from hwstatus message |
||||
* |
||||
* @return board voltage (mV) |
||||
*/ |
||||
static inline uint16_t mavlink_msg_hwstatus_get_Vcc(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_uint16_t(msg, 0); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field I2Cerr from hwstatus message |
||||
* |
||||
* @return I2C error count |
||||
*/ |
||||
static inline uint8_t mavlink_msg_hwstatus_get_I2Cerr(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_uint8_t(msg, 2); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Decode a hwstatus message into a struct |
||||
* |
||||
* @param msg The message to decode |
||||
* @param hwstatus C-struct to decode the message contents into |
||||
*/ |
||||
static inline void mavlink_msg_hwstatus_decode(const mavlink_message_t* msg, mavlink_hwstatus_t* hwstatus) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP |
||||
hwstatus->Vcc = mavlink_msg_hwstatus_get_Vcc(msg); |
||||
hwstatus->I2Cerr = mavlink_msg_hwstatus_get_I2Cerr(msg); |
||||
#else |
||||
memcpy(hwstatus, _MAV_PAYLOAD(msg), 3); |
||||
#endif |
||||
} |
@ -0,0 +1,320 @@
@@ -0,0 +1,320 @@
|
||||
// MESSAGE SIMSTATE PACKING
|
||||
|
||||
#define MAVLINK_MSG_ID_SIMSTATE 164 |
||||
|
||||
typedef struct __mavlink_simstate_t |
||||
{ |
||||
float roll; ///< Roll angle (rad)
|
||||
float pitch; ///< Pitch angle (rad)
|
||||
float yaw; ///< Yaw angle (rad)
|
||||
float xacc; ///< X acceleration m/s/s
|
||||
float yacc; ///< Y acceleration m/s/s
|
||||
float zacc; ///< Z acceleration m/s/s
|
||||
float xgyro; ///< Angular speed around X axis rad/s
|
||||
float ygyro; ///< Angular speed around Y axis rad/s
|
||||
float zgyro; ///< Angular speed around Z axis rad/s
|
||||
} mavlink_simstate_t; |
||||
|
||||
#define MAVLINK_MSG_ID_SIMSTATE_LEN 36 |
||||
#define MAVLINK_MSG_ID_164_LEN 36 |
||||
|
||||
|
||||
|
||||
#define MAVLINK_MESSAGE_INFO_SIMSTATE { \ |
||||
"SIMSTATE", \
|
||||
9, \
|
||||
{ { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_simstate_t, roll) }, \
|
||||
{ "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_simstate_t, pitch) }, \
|
||||
{ "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_simstate_t, yaw) }, \
|
||||
{ "xacc", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_simstate_t, xacc) }, \
|
||||
{ "yacc", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_simstate_t, yacc) }, \
|
||||
{ "zacc", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_simstate_t, zacc) }, \
|
||||
{ "xgyro", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_simstate_t, xgyro) }, \
|
||||
{ "ygyro", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_simstate_t, ygyro) }, \
|
||||
{ "zgyro", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_simstate_t, zgyro) }, \
|
||||
} \
|
||||
} |
||||
|
||||
|
||||
/**
|
||||
* @brief Pack a simstate 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 |
||||
* |
||||
* @param roll Roll angle (rad) |
||||
* @param pitch Pitch angle (rad) |
||||
* @param yaw Yaw angle (rad) |
||||
* @param xacc X acceleration m/s/s |
||||
* @param yacc Y acceleration m/s/s |
||||
* @param zacc Z acceleration m/s/s |
||||
* @param xgyro Angular speed around X axis rad/s |
||||
* @param ygyro Angular speed around Y axis rad/s |
||||
* @param zgyro Angular speed around Z axis rad/s |
||||
* @return length of the message in bytes (excluding serial stream start sign) |
||||
*/ |
||||
static inline uint16_t mavlink_msg_simstate_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, |
||||
float roll, float pitch, float yaw, float xacc, float yacc, float zacc, float xgyro, float ygyro, float zgyro) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS |
||||
char buf[36]; |
||||
_mav_put_float(buf, 0, roll); |
||||
_mav_put_float(buf, 4, pitch); |
||||
_mav_put_float(buf, 8, yaw); |
||||
_mav_put_float(buf, 12, xacc); |
||||
_mav_put_float(buf, 16, yacc); |
||||
_mav_put_float(buf, 20, zacc); |
||||
_mav_put_float(buf, 24, xgyro); |
||||
_mav_put_float(buf, 28, ygyro); |
||||
_mav_put_float(buf, 32, zgyro); |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), buf, 36); |
||||
#else |
||||
mavlink_simstate_t packet; |
||||
packet.roll = roll; |
||||
packet.pitch = pitch; |
||||
packet.yaw = yaw; |
||||
packet.xacc = xacc; |
||||
packet.yacc = yacc; |
||||
packet.zacc = zacc; |
||||
packet.xgyro = xgyro; |
||||
packet.ygyro = ygyro; |
||||
packet.zgyro = zgyro; |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), &packet, 36); |
||||
#endif |
||||
|
||||
msg->msgid = MAVLINK_MSG_ID_SIMSTATE; |
||||
return mavlink_finalize_message(msg, system_id, component_id, 36); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Pack a simstate 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 was sent over |
||||
* @param msg The MAVLink message to compress the data into |
||||
* @param roll Roll angle (rad) |
||||
* @param pitch Pitch angle (rad) |
||||
* @param yaw Yaw angle (rad) |
||||
* @param xacc X acceleration m/s/s |
||||
* @param yacc Y acceleration m/s/s |
||||
* @param zacc Z acceleration m/s/s |
||||
* @param xgyro Angular speed around X axis rad/s |
||||
* @param ygyro Angular speed around Y axis rad/s |
||||
* @param zgyro Angular speed around Z axis rad/s |
||||
* @return length of the message in bytes (excluding serial stream start sign) |
||||
*/ |
||||
static inline uint16_t mavlink_msg_simstate_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, |
||||
mavlink_message_t* msg, |
||||
float roll,float pitch,float yaw,float xacc,float yacc,float zacc,float xgyro,float ygyro,float zgyro) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS |
||||
char buf[36]; |
||||
_mav_put_float(buf, 0, roll); |
||||
_mav_put_float(buf, 4, pitch); |
||||
_mav_put_float(buf, 8, yaw); |
||||
_mav_put_float(buf, 12, xacc); |
||||
_mav_put_float(buf, 16, yacc); |
||||
_mav_put_float(buf, 20, zacc); |
||||
_mav_put_float(buf, 24, xgyro); |
||||
_mav_put_float(buf, 28, ygyro); |
||||
_mav_put_float(buf, 32, zgyro); |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), buf, 36); |
||||
#else |
||||
mavlink_simstate_t packet; |
||||
packet.roll = roll; |
||||
packet.pitch = pitch; |
||||
packet.yaw = yaw; |
||||
packet.xacc = xacc; |
||||
packet.yacc = yacc; |
||||
packet.zacc = zacc; |
||||
packet.xgyro = xgyro; |
||||
packet.ygyro = ygyro; |
||||
packet.zgyro = zgyro; |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), &packet, 36); |
||||
#endif |
||||
|
||||
msg->msgid = MAVLINK_MSG_ID_SIMSTATE; |
||||
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 36); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Encode a simstate struct into a 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 |
||||
* @param simstate C-struct to read the message contents from |
||||
*/ |
||||
static inline uint16_t mavlink_msg_simstate_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_simstate_t* simstate) |
||||
{ |
||||
return mavlink_msg_simstate_pack(system_id, component_id, msg, simstate->roll, simstate->pitch, simstate->yaw, simstate->xacc, simstate->yacc, simstate->zacc, simstate->xgyro, simstate->ygyro, simstate->zgyro); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Send a simstate message |
||||
* @param chan MAVLink channel to send the message |
||||
* |
||||
* @param roll Roll angle (rad) |
||||
* @param pitch Pitch angle (rad) |
||||
* @param yaw Yaw angle (rad) |
||||
* @param xacc X acceleration m/s/s |
||||
* @param yacc Y acceleration m/s/s |
||||
* @param zacc Z acceleration m/s/s |
||||
* @param xgyro Angular speed around X axis rad/s |
||||
* @param ygyro Angular speed around Y axis rad/s |
||||
* @param zgyro Angular speed around Z axis rad/s |
||||
*/ |
||||
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS |
||||
|
||||
static inline void mavlink_msg_simstate_send(mavlink_channel_t chan, float roll, float pitch, float yaw, float xacc, float yacc, float zacc, float xgyro, float ygyro, float zgyro) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS |
||||
char buf[36]; |
||||
_mav_put_float(buf, 0, roll); |
||||
_mav_put_float(buf, 4, pitch); |
||||
_mav_put_float(buf, 8, yaw); |
||||
_mav_put_float(buf, 12, xacc); |
||||
_mav_put_float(buf, 16, yacc); |
||||
_mav_put_float(buf, 20, zacc); |
||||
_mav_put_float(buf, 24, xgyro); |
||||
_mav_put_float(buf, 28, ygyro); |
||||
_mav_put_float(buf, 32, zgyro); |
||||
|
||||
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SIMSTATE, buf, 36); |
||||
#else |
||||
mavlink_simstate_t packet; |
||||
packet.roll = roll; |
||||
packet.pitch = pitch; |
||||
packet.yaw = yaw; |
||||
packet.xacc = xacc; |
||||
packet.yacc = yacc; |
||||
packet.zacc = zacc; |
||||
packet.xgyro = xgyro; |
||||
packet.ygyro = ygyro; |
||||
packet.zgyro = zgyro; |
||||
|
||||
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SIMSTATE, (const char *)&packet, 36); |
||||
#endif |
||||
} |
||||
|
||||
#endif |
||||
|
||||
// MESSAGE SIMSTATE UNPACKING
|
||||
|
||||
|
||||
/**
|
||||
* @brief Get field roll from simstate message |
||||
* |
||||
* @return Roll angle (rad) |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_roll(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 0); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field pitch from simstate message |
||||
* |
||||
* @return Pitch angle (rad) |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_pitch(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 4); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field yaw from simstate message |
||||
* |
||||
* @return Yaw angle (rad) |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_yaw(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 8); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field xacc from simstate message |
||||
* |
||||
* @return X acceleration m/s/s |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_xacc(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 12); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field yacc from simstate message |
||||
* |
||||
* @return Y acceleration m/s/s |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_yacc(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 16); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field zacc from simstate message |
||||
* |
||||
* @return Z acceleration m/s/s |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_zacc(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 20); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field xgyro from simstate message |
||||
* |
||||
* @return Angular speed around X axis rad/s |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_xgyro(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 24); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field ygyro from simstate message |
||||
* |
||||
* @return Angular speed around Y axis rad/s |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_ygyro(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 28); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field zgyro from simstate message |
||||
* |
||||
* @return Angular speed around Z axis rad/s |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_zgyro(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 32); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Decode a simstate message into a struct |
||||
* |
||||
* @param msg The message to decode |
||||
* @param simstate C-struct to decode the message contents into |
||||
*/ |
||||
static inline void mavlink_msg_simstate_decode(const mavlink_message_t* msg, mavlink_simstate_t* simstate) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP |
||||
simstate->roll = mavlink_msg_simstate_get_roll(msg); |
||||
simstate->pitch = mavlink_msg_simstate_get_pitch(msg); |
||||
simstate->yaw = mavlink_msg_simstate_get_yaw(msg); |
||||
simstate->xacc = mavlink_msg_simstate_get_xacc(msg); |
||||
simstate->yacc = mavlink_msg_simstate_get_yacc(msg); |
||||
simstate->zacc = mavlink_msg_simstate_get_zacc(msg); |
||||
simstate->xgyro = mavlink_msg_simstate_get_xgyro(msg); |
||||
simstate->ygyro = mavlink_msg_simstate_get_ygyro(msg); |
||||
simstate->zgyro = mavlink_msg_simstate_get_zgyro(msg); |
||||
#else |
||||
memcpy(simstate, _MAV_PAYLOAD(msg), 36); |
||||
#endif |
||||
} |
@ -0,0 +1,276 @@
@@ -0,0 +1,276 @@
|
||||
// MESSAGE DCM PACKING
|
||||
|
||||
#define MAVLINK_MSG_ID_DCM 163 |
||||
|
||||
typedef struct __mavlink_dcm_t |
||||
{ |
||||
float omegaIx; ///< X gyro drift estimate rad/s
|
||||
float omegaIy; ///< Y gyro drift estimate rad/s
|
||||
float omegaIz; ///< Z gyro drift estimate rad/s
|
||||
float accel_weight; ///< average accel_weight
|
||||
float renorm_val; ///< average renormalisation value
|
||||
float error_rp; ///< average error_roll_pitch value
|
||||
float error_yaw; ///< average error_yaw value
|
||||
} mavlink_dcm_t; |
||||
|
||||
#define MAVLINK_MSG_ID_DCM_LEN 28 |
||||
#define MAVLINK_MSG_ID_163_LEN 28 |
||||
|
||||
|
||||
|
||||
#define MAVLINK_MESSAGE_INFO_DCM { \ |
||||
"DCM", \
|
||||
7, \
|
||||
{ { "omegaIx", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_dcm_t, omegaIx) }, \
|
||||
{ "omegaIy", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_dcm_t, omegaIy) }, \
|
||||
{ "omegaIz", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_dcm_t, omegaIz) }, \
|
||||
{ "accel_weight", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_dcm_t, accel_weight) }, \
|
||||
{ "renorm_val", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_dcm_t, renorm_val) }, \
|
||||
{ "error_rp", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_dcm_t, error_rp) }, \
|
||||
{ "error_yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_dcm_t, error_yaw) }, \
|
||||
} \
|
||||
} |
||||
|
||||
|
||||
/**
|
||||
* @brief Pack a dcm 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 |
||||
* |
||||
* @param omegaIx X gyro drift estimate rad/s |
||||
* @param omegaIy Y gyro drift estimate rad/s |
||||
* @param omegaIz Z gyro drift estimate rad/s |
||||
* @param accel_weight average accel_weight |
||||
* @param renorm_val average renormalisation value |
||||
* @param error_rp average error_roll_pitch value |
||||
* @param error_yaw average error_yaw value |
||||
* @return length of the message in bytes (excluding serial stream start sign) |
||||
*/ |
||||
static inline uint16_t mavlink_msg_dcm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, |
||||
float omegaIx, float omegaIy, float omegaIz, float accel_weight, float renorm_val, float error_rp, float error_yaw) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS |
||||
char buf[28]; |
||||
_mav_put_float(buf, 0, omegaIx); |
||||
_mav_put_float(buf, 4, omegaIy); |
||||
_mav_put_float(buf, 8, omegaIz); |
||||
_mav_put_float(buf, 12, accel_weight); |
||||
_mav_put_float(buf, 16, renorm_val); |
||||
_mav_put_float(buf, 20, error_rp); |
||||
_mav_put_float(buf, 24, error_yaw); |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), buf, 28); |
||||
#else |
||||
mavlink_dcm_t packet; |
||||
packet.omegaIx = omegaIx; |
||||
packet.omegaIy = omegaIy; |
||||
packet.omegaIz = omegaIz; |
||||
packet.accel_weight = accel_weight; |
||||
packet.renorm_val = renorm_val; |
||||
packet.error_rp = error_rp; |
||||
packet.error_yaw = error_yaw; |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), &packet, 28); |
||||
#endif |
||||
|
||||
msg->msgid = MAVLINK_MSG_ID_DCM; |
||||
return mavlink_finalize_message(msg, system_id, component_id, 28, 205); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Pack a dcm 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 was sent over |
||||
* @param msg The MAVLink message to compress the data into |
||||
* @param omegaIx X gyro drift estimate rad/s |
||||
* @param omegaIy Y gyro drift estimate rad/s |
||||
* @param omegaIz Z gyro drift estimate rad/s |
||||
* @param accel_weight average accel_weight |
||||
* @param renorm_val average renormalisation value |
||||
* @param error_rp average error_roll_pitch value |
||||
* @param error_yaw average error_yaw value |
||||
* @return length of the message in bytes (excluding serial stream start sign) |
||||
*/ |
||||
static inline uint16_t mavlink_msg_dcm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, |
||||
mavlink_message_t* msg, |
||||
float omegaIx,float omegaIy,float omegaIz,float accel_weight,float renorm_val,float error_rp,float error_yaw) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS |
||||
char buf[28]; |
||||
_mav_put_float(buf, 0, omegaIx); |
||||
_mav_put_float(buf, 4, omegaIy); |
||||
_mav_put_float(buf, 8, omegaIz); |
||||
_mav_put_float(buf, 12, accel_weight); |
||||
_mav_put_float(buf, 16, renorm_val); |
||||
_mav_put_float(buf, 20, error_rp); |
||||
_mav_put_float(buf, 24, error_yaw); |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), buf, 28); |
||||
#else |
||||
mavlink_dcm_t packet; |
||||
packet.omegaIx = omegaIx; |
||||
packet.omegaIy = omegaIy; |
||||
packet.omegaIz = omegaIz; |
||||
packet.accel_weight = accel_weight; |
||||
packet.renorm_val = renorm_val; |
||||
packet.error_rp = error_rp; |
||||
packet.error_yaw = error_yaw; |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), &packet, 28); |
||||
#endif |
||||
|
||||
msg->msgid = MAVLINK_MSG_ID_DCM; |
||||
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 28, 205); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Encode a dcm struct into a 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 |
||||
* @param dcm C-struct to read the message contents from |
||||
*/ |
||||
static inline uint16_t mavlink_msg_dcm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_dcm_t* dcm) |
||||
{ |
||||
return mavlink_msg_dcm_pack(system_id, component_id, msg, dcm->omegaIx, dcm->omegaIy, dcm->omegaIz, dcm->accel_weight, dcm->renorm_val, dcm->error_rp, dcm->error_yaw); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Send a dcm message |
||||
* @param chan MAVLink channel to send the message |
||||
* |
||||
* @param omegaIx X gyro drift estimate rad/s |
||||
* @param omegaIy Y gyro drift estimate rad/s |
||||
* @param omegaIz Z gyro drift estimate rad/s |
||||
* @param accel_weight average accel_weight |
||||
* @param renorm_val average renormalisation value |
||||
* @param error_rp average error_roll_pitch value |
||||
* @param error_yaw average error_yaw value |
||||
*/ |
||||
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS |
||||
|
||||
static inline void mavlink_msg_dcm_send(mavlink_channel_t chan, float omegaIx, float omegaIy, float omegaIz, float accel_weight, float renorm_val, float error_rp, float error_yaw) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS |
||||
char buf[28]; |
||||
_mav_put_float(buf, 0, omegaIx); |
||||
_mav_put_float(buf, 4, omegaIy); |
||||
_mav_put_float(buf, 8, omegaIz); |
||||
_mav_put_float(buf, 12, accel_weight); |
||||
_mav_put_float(buf, 16, renorm_val); |
||||
_mav_put_float(buf, 20, error_rp); |
||||
_mav_put_float(buf, 24, error_yaw); |
||||
|
||||
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DCM, buf, 28, 205); |
||||
#else |
||||
mavlink_dcm_t packet; |
||||
packet.omegaIx = omegaIx; |
||||
packet.omegaIy = omegaIy; |
||||
packet.omegaIz = omegaIz; |
||||
packet.accel_weight = accel_weight; |
||||
packet.renorm_val = renorm_val; |
||||
packet.error_rp = error_rp; |
||||
packet.error_yaw = error_yaw; |
||||
|
||||
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DCM, (const char *)&packet, 28, 205); |
||||
#endif |
||||
} |
||||
|
||||
#endif |
||||
|
||||
// MESSAGE DCM UNPACKING
|
||||
|
||||
|
||||
/**
|
||||
* @brief Get field omegaIx from dcm message |
||||
* |
||||
* @return X gyro drift estimate rad/s |
||||
*/ |
||||
static inline float mavlink_msg_dcm_get_omegaIx(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 0); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field omegaIy from dcm message |
||||
* |
||||
* @return Y gyro drift estimate rad/s |
||||
*/ |
||||
static inline float mavlink_msg_dcm_get_omegaIy(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 4); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field omegaIz from dcm message |
||||
* |
||||
* @return Z gyro drift estimate rad/s |
||||
*/ |
||||
static inline float mavlink_msg_dcm_get_omegaIz(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 8); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field accel_weight from dcm message |
||||
* |
||||
* @return average accel_weight |
||||
*/ |
||||
static inline float mavlink_msg_dcm_get_accel_weight(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 12); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field renorm_val from dcm message |
||||
* |
||||
* @return average renormalisation value |
||||
*/ |
||||
static inline float mavlink_msg_dcm_get_renorm_val(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 16); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field error_rp from dcm message |
||||
* |
||||
* @return average error_roll_pitch value |
||||
*/ |
||||
static inline float mavlink_msg_dcm_get_error_rp(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 20); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field error_yaw from dcm message |
||||
* |
||||
* @return average error_yaw value |
||||
*/ |
||||
static inline float mavlink_msg_dcm_get_error_yaw(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 24); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Decode a dcm message into a struct |
||||
* |
||||
* @param msg The message to decode |
||||
* @param dcm C-struct to decode the message contents into |
||||
*/ |
||||
static inline void mavlink_msg_dcm_decode(const mavlink_message_t* msg, mavlink_dcm_t* dcm) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP |
||||
dcm->omegaIx = mavlink_msg_dcm_get_omegaIx(msg); |
||||
dcm->omegaIy = mavlink_msg_dcm_get_omegaIy(msg); |
||||
dcm->omegaIz = mavlink_msg_dcm_get_omegaIz(msg); |
||||
dcm->accel_weight = mavlink_msg_dcm_get_accel_weight(msg); |
||||
dcm->renorm_val = mavlink_msg_dcm_get_renorm_val(msg); |
||||
dcm->error_rp = mavlink_msg_dcm_get_error_rp(msg); |
||||
dcm->error_yaw = mavlink_msg_dcm_get_error_yaw(msg); |
||||
#else |
||||
memcpy(dcm, _MAV_PAYLOAD(msg), 28); |
||||
#endif |
||||
} |
@ -0,0 +1,320 @@
@@ -0,0 +1,320 @@
|
||||
// MESSAGE SIMSTATE PACKING
|
||||
|
||||
#define MAVLINK_MSG_ID_SIMSTATE 164 |
||||
|
||||
typedef struct __mavlink_simstate_t |
||||
{ |
||||
float roll; ///< Roll angle (rad)
|
||||
float pitch; ///< Pitch angle (rad)
|
||||
float yaw; ///< Yaw angle (rad)
|
||||
float xacc; ///< X acceleration m/s/s
|
||||
float yacc; ///< Y acceleration m/s/s
|
||||
float zacc; ///< Z acceleration m/s/s
|
||||
float xgyro; ///< Angular speed around X axis rad/s
|
||||
float ygyro; ///< Angular speed around Y axis rad/s
|
||||
float zgyro; ///< Angular speed around Z axis rad/s
|
||||
} mavlink_simstate_t; |
||||
|
||||
#define MAVLINK_MSG_ID_SIMSTATE_LEN 36 |
||||
#define MAVLINK_MSG_ID_164_LEN 36 |
||||
|
||||
|
||||
|
||||
#define MAVLINK_MESSAGE_INFO_SIMSTATE { \ |
||||
"SIMSTATE", \
|
||||
9, \
|
||||
{ { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_simstate_t, roll) }, \
|
||||
{ "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_simstate_t, pitch) }, \
|
||||
{ "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_simstate_t, yaw) }, \
|
||||
{ "xacc", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_simstate_t, xacc) }, \
|
||||
{ "yacc", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_simstate_t, yacc) }, \
|
||||
{ "zacc", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_simstate_t, zacc) }, \
|
||||
{ "xgyro", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_simstate_t, xgyro) }, \
|
||||
{ "ygyro", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_simstate_t, ygyro) }, \
|
||||
{ "zgyro", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_simstate_t, zgyro) }, \
|
||||
} \
|
||||
} |
||||
|
||||
|
||||
/**
|
||||
* @brief Pack a simstate 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 |
||||
* |
||||
* @param roll Roll angle (rad) |
||||
* @param pitch Pitch angle (rad) |
||||
* @param yaw Yaw angle (rad) |
||||
* @param xacc X acceleration m/s/s |
||||
* @param yacc Y acceleration m/s/s |
||||
* @param zacc Z acceleration m/s/s |
||||
* @param xgyro Angular speed around X axis rad/s |
||||
* @param ygyro Angular speed around Y axis rad/s |
||||
* @param zgyro Angular speed around Z axis rad/s |
||||
* @return length of the message in bytes (excluding serial stream start sign) |
||||
*/ |
||||
static inline uint16_t mavlink_msg_simstate_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, |
||||
float roll, float pitch, float yaw, float xacc, float yacc, float zacc, float xgyro, float ygyro, float zgyro) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS |
||||
char buf[36]; |
||||
_mav_put_float(buf, 0, roll); |
||||
_mav_put_float(buf, 4, pitch); |
||||
_mav_put_float(buf, 8, yaw); |
||||
_mav_put_float(buf, 12, xacc); |
||||
_mav_put_float(buf, 16, yacc); |
||||
_mav_put_float(buf, 20, zacc); |
||||
_mav_put_float(buf, 24, xgyro); |
||||
_mav_put_float(buf, 28, ygyro); |
||||
_mav_put_float(buf, 32, zgyro); |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), buf, 36); |
||||
#else |
||||
mavlink_simstate_t packet; |
||||
packet.roll = roll; |
||||
packet.pitch = pitch; |
||||
packet.yaw = yaw; |
||||
packet.xacc = xacc; |
||||
packet.yacc = yacc; |
||||
packet.zacc = zacc; |
||||
packet.xgyro = xgyro; |
||||
packet.ygyro = ygyro; |
||||
packet.zgyro = zgyro; |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), &packet, 36); |
||||
#endif |
||||
|
||||
msg->msgid = MAVLINK_MSG_ID_SIMSTATE; |
||||
return mavlink_finalize_message(msg, system_id, component_id, 36, 42); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Pack a simstate 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 was sent over |
||||
* @param msg The MAVLink message to compress the data into |
||||
* @param roll Roll angle (rad) |
||||
* @param pitch Pitch angle (rad) |
||||
* @param yaw Yaw angle (rad) |
||||
* @param xacc X acceleration m/s/s |
||||
* @param yacc Y acceleration m/s/s |
||||
* @param zacc Z acceleration m/s/s |
||||
* @param xgyro Angular speed around X axis rad/s |
||||
* @param ygyro Angular speed around Y axis rad/s |
||||
* @param zgyro Angular speed around Z axis rad/s |
||||
* @return length of the message in bytes (excluding serial stream start sign) |
||||
*/ |
||||
static inline uint16_t mavlink_msg_simstate_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, |
||||
mavlink_message_t* msg, |
||||
float roll,float pitch,float yaw,float xacc,float yacc,float zacc,float xgyro,float ygyro,float zgyro) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS |
||||
char buf[36]; |
||||
_mav_put_float(buf, 0, roll); |
||||
_mav_put_float(buf, 4, pitch); |
||||
_mav_put_float(buf, 8, yaw); |
||||
_mav_put_float(buf, 12, xacc); |
||||
_mav_put_float(buf, 16, yacc); |
||||
_mav_put_float(buf, 20, zacc); |
||||
_mav_put_float(buf, 24, xgyro); |
||||
_mav_put_float(buf, 28, ygyro); |
||||
_mav_put_float(buf, 32, zgyro); |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), buf, 36); |
||||
#else |
||||
mavlink_simstate_t packet; |
||||
packet.roll = roll; |
||||
packet.pitch = pitch; |
||||
packet.yaw = yaw; |
||||
packet.xacc = xacc; |
||||
packet.yacc = yacc; |
||||
packet.zacc = zacc; |
||||
packet.xgyro = xgyro; |
||||
packet.ygyro = ygyro; |
||||
packet.zgyro = zgyro; |
||||
|
||||
memcpy(_MAV_PAYLOAD(msg), &packet, 36); |
||||
#endif |
||||
|
||||
msg->msgid = MAVLINK_MSG_ID_SIMSTATE; |
||||
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 36, 42); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Encode a simstate struct into a 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 |
||||
* @param simstate C-struct to read the message contents from |
||||
*/ |
||||
static inline uint16_t mavlink_msg_simstate_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_simstate_t* simstate) |
||||
{ |
||||
return mavlink_msg_simstate_pack(system_id, component_id, msg, simstate->roll, simstate->pitch, simstate->yaw, simstate->xacc, simstate->yacc, simstate->zacc, simstate->xgyro, simstate->ygyro, simstate->zgyro); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Send a simstate message |
||||
* @param chan MAVLink channel to send the message |
||||
* |
||||
* @param roll Roll angle (rad) |
||||
* @param pitch Pitch angle (rad) |
||||
* @param yaw Yaw angle (rad) |
||||
* @param xacc X acceleration m/s/s |
||||
* @param yacc Y acceleration m/s/s |
||||
* @param zacc Z acceleration m/s/s |
||||
* @param xgyro Angular speed around X axis rad/s |
||||
* @param ygyro Angular speed around Y axis rad/s |
||||
* @param zgyro Angular speed around Z axis rad/s |
||||
*/ |
||||
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS |
||||
|
||||
static inline void mavlink_msg_simstate_send(mavlink_channel_t chan, float roll, float pitch, float yaw, float xacc, float yacc, float zacc, float xgyro, float ygyro, float zgyro) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS |
||||
char buf[36]; |
||||
_mav_put_float(buf, 0, roll); |
||||
_mav_put_float(buf, 4, pitch); |
||||
_mav_put_float(buf, 8, yaw); |
||||
_mav_put_float(buf, 12, xacc); |
||||
_mav_put_float(buf, 16, yacc); |
||||
_mav_put_float(buf, 20, zacc); |
||||
_mav_put_float(buf, 24, xgyro); |
||||
_mav_put_float(buf, 28, ygyro); |
||||
_mav_put_float(buf, 32, zgyro); |
||||
|
||||
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SIMSTATE, buf, 36, 42); |
||||
#else |
||||
mavlink_simstate_t packet; |
||||
packet.roll = roll; |
||||
packet.pitch = pitch; |
||||
packet.yaw = yaw; |
||||
packet.xacc = xacc; |
||||
packet.yacc = yacc; |
||||
packet.zacc = zacc; |
||||
packet.xgyro = xgyro; |
||||
packet.ygyro = ygyro; |
||||
packet.zgyro = zgyro; |
||||
|
||||
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SIMSTATE, (const char *)&packet, 36, 42); |
||||
#endif |
||||
} |
||||
|
||||
#endif |
||||
|
||||
// MESSAGE SIMSTATE UNPACKING
|
||||
|
||||
|
||||
/**
|
||||
* @brief Get field roll from simstate message |
||||
* |
||||
* @return Roll angle (rad) |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_roll(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 0); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field pitch from simstate message |
||||
* |
||||
* @return Pitch angle (rad) |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_pitch(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 4); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field yaw from simstate message |
||||
* |
||||
* @return Yaw angle (rad) |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_yaw(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 8); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field xacc from simstate message |
||||
* |
||||
* @return X acceleration m/s/s |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_xacc(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 12); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field yacc from simstate message |
||||
* |
||||
* @return Y acceleration m/s/s |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_yacc(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 16); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field zacc from simstate message |
||||
* |
||||
* @return Z acceleration m/s/s |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_zacc(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 20); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field xgyro from simstate message |
||||
* |
||||
* @return Angular speed around X axis rad/s |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_xgyro(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 24); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field ygyro from simstate message |
||||
* |
||||
* @return Angular speed around Y axis rad/s |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_ygyro(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 28); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Get field zgyro from simstate message |
||||
* |
||||
* @return Angular speed around Z axis rad/s |
||||
*/ |
||||
static inline float mavlink_msg_simstate_get_zgyro(const mavlink_message_t* msg) |
||||
{ |
||||
return _MAV_RETURN_float(msg, 32); |
||||
} |
||||
|
||||
/**
|
||||
* @brief Decode a simstate message into a struct |
||||
* |
||||
* @param msg The message to decode |
||||
* @param simstate C-struct to decode the message contents into |
||||
*/ |
||||
static inline void mavlink_msg_simstate_decode(const mavlink_message_t* msg, mavlink_simstate_t* simstate) |
||||
{ |
||||
#if MAVLINK_NEED_BYTE_SWAP |
||||
simstate->roll = mavlink_msg_simstate_get_roll(msg); |
||||
simstate->pitch = mavlink_msg_simstate_get_pitch(msg); |
||||
simstate->yaw = mavlink_msg_simstate_get_yaw(msg); |
||||
simstate->xacc = mavlink_msg_simstate_get_xacc(msg); |
||||
simstate->yacc = mavlink_msg_simstate_get_yacc(msg); |
||||
simstate->zacc = mavlink_msg_simstate_get_zacc(msg); |
||||
simstate->xgyro = mavlink_msg_simstate_get_xgyro(msg); |
||||
simstate->ygyro = mavlink_msg_simstate_get_ygyro(msg); |
||||
simstate->zgyro = mavlink_msg_simstate_get_zgyro(msg); |
||||
#else |
||||
memcpy(simstate, _MAV_PAYLOAD(msg), 36); |
||||
#endif |
||||
} |
Loading…
Reference in new issue