添加MAVLINK协议库

This commit is contained in:
OPTOC
2025-09-02 10:34:06 +08:00
parent 7960bb80ec
commit 040ce2c62c
360 changed files with 143976 additions and 0 deletions

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,34 @@
/** @file
* @brief MAVLink comm protocol built from ASLUAV.xml
* @see http://mavlink.org
*/
#pragma once
#ifndef MAVLINK_H
#define MAVLINK_H
#define MAVLINK_PRIMARY_XML_IDX 0
#ifndef MAVLINK_STX
#define MAVLINK_STX 253
#endif
#ifndef MAVLINK_ENDIAN
#define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN
#endif
#ifndef MAVLINK_ALIGNED_FIELDS
#define MAVLINK_ALIGNED_FIELDS 1
#endif
#ifndef MAVLINK_CRC_EXTRA
#define MAVLINK_CRC_EXTRA 1
#endif
#ifndef MAVLINK_COMMAND_24BIT
#define MAVLINK_COMMAND_24BIT 1
#endif
#include "version.h"
#include "ASLUAV.h"
#endif // MAVLINK_H

View File

@@ -0,0 +1,388 @@
#pragma once
// MESSAGE ASL_OBCTRL PACKING
#define MAVLINK_MSG_ID_ASL_OBCTRL 207
MAVPACKED(
typedef struct __mavlink_asl_obctrl_t {
uint64_t timestamp; /*< [us] Time since system start*/
float uElev; /*< Elevator command [~]*/
float uThrot; /*< Throttle command [~]*/
float uThrot2; /*< Throttle 2 command [~]*/
float uAilL; /*< Left aileron command [~]*/
float uAilR; /*< Right aileron command [~]*/
float uRud; /*< Rudder command [~]*/
uint8_t obctrl_status; /*< Off-board computer status*/
}) mavlink_asl_obctrl_t;
#define MAVLINK_MSG_ID_ASL_OBCTRL_LEN 33
#define MAVLINK_MSG_ID_ASL_OBCTRL_MIN_LEN 33
#define MAVLINK_MSG_ID_207_LEN 33
#define MAVLINK_MSG_ID_207_MIN_LEN 33
#define MAVLINK_MSG_ID_ASL_OBCTRL_CRC 234
#define MAVLINK_MSG_ID_207_CRC 234
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_ASL_OBCTRL { \
207, \
"ASL_OBCTRL", \
8, \
{ { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_asl_obctrl_t, timestamp) }, \
{ "uElev", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_asl_obctrl_t, uElev) }, \
{ "uThrot", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_asl_obctrl_t, uThrot) }, \
{ "uThrot2", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_asl_obctrl_t, uThrot2) }, \
{ "uAilL", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_asl_obctrl_t, uAilL) }, \
{ "uAilR", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_asl_obctrl_t, uAilR) }, \
{ "uRud", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_asl_obctrl_t, uRud) }, \
{ "obctrl_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, offsetof(mavlink_asl_obctrl_t, obctrl_status) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_ASL_OBCTRL { \
"ASL_OBCTRL", \
8, \
{ { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_asl_obctrl_t, timestamp) }, \
{ "uElev", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_asl_obctrl_t, uElev) }, \
{ "uThrot", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_asl_obctrl_t, uThrot) }, \
{ "uThrot2", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_asl_obctrl_t, uThrot2) }, \
{ "uAilL", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_asl_obctrl_t, uAilL) }, \
{ "uAilR", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_asl_obctrl_t, uAilR) }, \
{ "uRud", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_asl_obctrl_t, uRud) }, \
{ "obctrl_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, offsetof(mavlink_asl_obctrl_t, obctrl_status) }, \
} \
}
#endif
/**
* @brief Pack a asl_obctrl 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 timestamp [us] Time since system start
* @param uElev Elevator command [~]
* @param uThrot Throttle command [~]
* @param uThrot2 Throttle 2 command [~]
* @param uAilL Left aileron command [~]
* @param uAilR Right aileron command [~]
* @param uRud Rudder command [~]
* @param obctrl_status Off-board computer status
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_asl_obctrl_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint64_t timestamp, float uElev, float uThrot, float uThrot2, float uAilL, float uAilR, float uRud, uint8_t obctrl_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_ASL_OBCTRL_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_float(buf, 8, uElev);
_mav_put_float(buf, 12, uThrot);
_mav_put_float(buf, 16, uThrot2);
_mav_put_float(buf, 20, uAilL);
_mav_put_float(buf, 24, uAilR);
_mav_put_float(buf, 28, uRud);
_mav_put_uint8_t(buf, 32, obctrl_status);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ASL_OBCTRL_LEN);
#else
mavlink_asl_obctrl_t packet;
packet.timestamp = timestamp;
packet.uElev = uElev;
packet.uThrot = uThrot;
packet.uThrot2 = uThrot2;
packet.uAilL = uAilL;
packet.uAilR = uAilR;
packet.uRud = uRud;
packet.obctrl_status = obctrl_status;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ASL_OBCTRL_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_ASL_OBCTRL;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_ASL_OBCTRL_MIN_LEN, MAVLINK_MSG_ID_ASL_OBCTRL_LEN, MAVLINK_MSG_ID_ASL_OBCTRL_CRC);
}
/**
* @brief Pack a asl_obctrl 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
* @param timestamp [us] Time since system start
* @param uElev Elevator command [~]
* @param uThrot Throttle command [~]
* @param uThrot2 Throttle 2 command [~]
* @param uAilL Left aileron command [~]
* @param uAilR Right aileron command [~]
* @param uRud Rudder command [~]
* @param obctrl_status Off-board computer status
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_asl_obctrl_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint64_t timestamp,float uElev,float uThrot,float uThrot2,float uAilL,float uAilR,float uRud,uint8_t obctrl_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_ASL_OBCTRL_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_float(buf, 8, uElev);
_mav_put_float(buf, 12, uThrot);
_mav_put_float(buf, 16, uThrot2);
_mav_put_float(buf, 20, uAilL);
_mav_put_float(buf, 24, uAilR);
_mav_put_float(buf, 28, uRud);
_mav_put_uint8_t(buf, 32, obctrl_status);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ASL_OBCTRL_LEN);
#else
mavlink_asl_obctrl_t packet;
packet.timestamp = timestamp;
packet.uElev = uElev;
packet.uThrot = uThrot;
packet.uThrot2 = uThrot2;
packet.uAilL = uAilL;
packet.uAilR = uAilR;
packet.uRud = uRud;
packet.obctrl_status = obctrl_status;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ASL_OBCTRL_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_ASL_OBCTRL;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_ASL_OBCTRL_MIN_LEN, MAVLINK_MSG_ID_ASL_OBCTRL_LEN, MAVLINK_MSG_ID_ASL_OBCTRL_CRC);
}
/**
* @brief Encode a asl_obctrl 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 asl_obctrl C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_asl_obctrl_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_asl_obctrl_t* asl_obctrl)
{
return mavlink_msg_asl_obctrl_pack(system_id, component_id, msg, asl_obctrl->timestamp, asl_obctrl->uElev, asl_obctrl->uThrot, asl_obctrl->uThrot2, asl_obctrl->uAilL, asl_obctrl->uAilR, asl_obctrl->uRud, asl_obctrl->obctrl_status);
}
/**
* @brief Encode a asl_obctrl 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 asl_obctrl C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_asl_obctrl_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_asl_obctrl_t* asl_obctrl)
{
return mavlink_msg_asl_obctrl_pack_chan(system_id, component_id, chan, msg, asl_obctrl->timestamp, asl_obctrl->uElev, asl_obctrl->uThrot, asl_obctrl->uThrot2, asl_obctrl->uAilL, asl_obctrl->uAilR, asl_obctrl->uRud, asl_obctrl->obctrl_status);
}
/**
* @brief Send a asl_obctrl message
* @param chan MAVLink channel to send the message
*
* @param timestamp [us] Time since system start
* @param uElev Elevator command [~]
* @param uThrot Throttle command [~]
* @param uThrot2 Throttle 2 command [~]
* @param uAilL Left aileron command [~]
* @param uAilR Right aileron command [~]
* @param uRud Rudder command [~]
* @param obctrl_status Off-board computer status
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_asl_obctrl_send(mavlink_channel_t chan, uint64_t timestamp, float uElev, float uThrot, float uThrot2, float uAilL, float uAilR, float uRud, uint8_t obctrl_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_ASL_OBCTRL_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_float(buf, 8, uElev);
_mav_put_float(buf, 12, uThrot);
_mav_put_float(buf, 16, uThrot2);
_mav_put_float(buf, 20, uAilL);
_mav_put_float(buf, 24, uAilR);
_mav_put_float(buf, 28, uRud);
_mav_put_uint8_t(buf, 32, obctrl_status);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASL_OBCTRL, buf, MAVLINK_MSG_ID_ASL_OBCTRL_MIN_LEN, MAVLINK_MSG_ID_ASL_OBCTRL_LEN, MAVLINK_MSG_ID_ASL_OBCTRL_CRC);
#else
mavlink_asl_obctrl_t packet;
packet.timestamp = timestamp;
packet.uElev = uElev;
packet.uThrot = uThrot;
packet.uThrot2 = uThrot2;
packet.uAilL = uAilL;
packet.uAilR = uAilR;
packet.uRud = uRud;
packet.obctrl_status = obctrl_status;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASL_OBCTRL, (const char *)&packet, MAVLINK_MSG_ID_ASL_OBCTRL_MIN_LEN, MAVLINK_MSG_ID_ASL_OBCTRL_LEN, MAVLINK_MSG_ID_ASL_OBCTRL_CRC);
#endif
}
/**
* @brief Send a asl_obctrl message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_asl_obctrl_send_struct(mavlink_channel_t chan, const mavlink_asl_obctrl_t* asl_obctrl)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_asl_obctrl_send(chan, asl_obctrl->timestamp, asl_obctrl->uElev, asl_obctrl->uThrot, asl_obctrl->uThrot2, asl_obctrl->uAilL, asl_obctrl->uAilR, asl_obctrl->uRud, asl_obctrl->obctrl_status);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASL_OBCTRL, (const char *)asl_obctrl, MAVLINK_MSG_ID_ASL_OBCTRL_MIN_LEN, MAVLINK_MSG_ID_ASL_OBCTRL_LEN, MAVLINK_MSG_ID_ASL_OBCTRL_CRC);
#endif
}
#if MAVLINK_MSG_ID_ASL_OBCTRL_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.
*/
static inline void mavlink_msg_asl_obctrl_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, float uElev, float uThrot, float uThrot2, float uAilL, float uAilR, float uRud, uint8_t obctrl_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_float(buf, 8, uElev);
_mav_put_float(buf, 12, uThrot);
_mav_put_float(buf, 16, uThrot2);
_mav_put_float(buf, 20, uAilL);
_mav_put_float(buf, 24, uAilR);
_mav_put_float(buf, 28, uRud);
_mav_put_uint8_t(buf, 32, obctrl_status);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASL_OBCTRL, buf, MAVLINK_MSG_ID_ASL_OBCTRL_MIN_LEN, MAVLINK_MSG_ID_ASL_OBCTRL_LEN, MAVLINK_MSG_ID_ASL_OBCTRL_CRC);
#else
mavlink_asl_obctrl_t *packet = (mavlink_asl_obctrl_t *)msgbuf;
packet->timestamp = timestamp;
packet->uElev = uElev;
packet->uThrot = uThrot;
packet->uThrot2 = uThrot2;
packet->uAilL = uAilL;
packet->uAilR = uAilR;
packet->uRud = uRud;
packet->obctrl_status = obctrl_status;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASL_OBCTRL, (const char *)packet, MAVLINK_MSG_ID_ASL_OBCTRL_MIN_LEN, MAVLINK_MSG_ID_ASL_OBCTRL_LEN, MAVLINK_MSG_ID_ASL_OBCTRL_CRC);
#endif
}
#endif
#endif
// MESSAGE ASL_OBCTRL UNPACKING
/**
* @brief Get field timestamp from asl_obctrl message
*
* @return [us] Time since system start
*/
static inline uint64_t mavlink_msg_asl_obctrl_get_timestamp(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint64_t(msg, 0);
}
/**
* @brief Get field uElev from asl_obctrl message
*
* @return Elevator command [~]
*/
static inline float mavlink_msg_asl_obctrl_get_uElev(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 8);
}
/**
* @brief Get field uThrot from asl_obctrl message
*
* @return Throttle command [~]
*/
static inline float mavlink_msg_asl_obctrl_get_uThrot(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 12);
}
/**
* @brief Get field uThrot2 from asl_obctrl message
*
* @return Throttle 2 command [~]
*/
static inline float mavlink_msg_asl_obctrl_get_uThrot2(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 16);
}
/**
* @brief Get field uAilL from asl_obctrl message
*
* @return Left aileron command [~]
*/
static inline float mavlink_msg_asl_obctrl_get_uAilL(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 20);
}
/**
* @brief Get field uAilR from asl_obctrl message
*
* @return Right aileron command [~]
*/
static inline float mavlink_msg_asl_obctrl_get_uAilR(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 24);
}
/**
* @brief Get field uRud from asl_obctrl message
*
* @return Rudder command [~]
*/
static inline float mavlink_msg_asl_obctrl_get_uRud(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 28);
}
/**
* @brief Get field obctrl_status from asl_obctrl message
*
* @return Off-board computer status
*/
static inline uint8_t mavlink_msg_asl_obctrl_get_obctrl_status(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 32);
}
/**
* @brief Decode a asl_obctrl message into a struct
*
* @param msg The message to decode
* @param asl_obctrl C-struct to decode the message contents into
*/
static inline void mavlink_msg_asl_obctrl_decode(const mavlink_message_t* msg, mavlink_asl_obctrl_t* asl_obctrl)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
asl_obctrl->timestamp = mavlink_msg_asl_obctrl_get_timestamp(msg);
asl_obctrl->uElev = mavlink_msg_asl_obctrl_get_uElev(msg);
asl_obctrl->uThrot = mavlink_msg_asl_obctrl_get_uThrot(msg);
asl_obctrl->uThrot2 = mavlink_msg_asl_obctrl_get_uThrot2(msg);
asl_obctrl->uAilL = mavlink_msg_asl_obctrl_get_uAilL(msg);
asl_obctrl->uAilR = mavlink_msg_asl_obctrl_get_uAilR(msg);
asl_obctrl->uRud = mavlink_msg_asl_obctrl_get_uRud(msg);
asl_obctrl->obctrl_status = mavlink_msg_asl_obctrl_get_obctrl_status(msg);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_ASL_OBCTRL_LEN? msg->len : MAVLINK_MSG_ID_ASL_OBCTRL_LEN;
memset(asl_obctrl, 0, MAVLINK_MSG_ID_ASL_OBCTRL_LEN);
memcpy(asl_obctrl, _MAV_PAYLOAD(msg), len);
#endif
}

View File

@@ -0,0 +1,813 @@
#pragma once
// MESSAGE ASLCTRL_DATA PACKING
#define MAVLINK_MSG_ID_ASLCTRL_DATA 203
MAVPACKED(
typedef struct __mavlink_aslctrl_data_t {
uint64_t timestamp; /*< [us] Timestamp*/
float h; /*< See sourcecode for a description of these values... */
float hRef; /*< */
float hRef_t; /*< */
float PitchAngle; /*< [deg] Pitch angle*/
float PitchAngleRef; /*< [deg] Pitch angle reference*/
float q; /*< */
float qRef; /*< */
float uElev; /*< */
float uThrot; /*< */
float uThrot2; /*< */
float nZ; /*< */
float AirspeedRef; /*< [m/s] Airspeed reference*/
float YawAngle; /*< [deg] Yaw angle*/
float YawAngleRef; /*< [deg] Yaw angle reference*/
float RollAngle; /*< [deg] Roll angle*/
float RollAngleRef; /*< [deg] Roll angle reference*/
float p; /*< */
float pRef; /*< */
float r; /*< */
float rRef; /*< */
float uAil; /*< */
float uRud; /*< */
uint8_t aslctrl_mode; /*< ASLCTRL control-mode (manual, stabilized, auto, etc...)*/
uint8_t SpoilersEngaged; /*< */
}) mavlink_aslctrl_data_t;
#define MAVLINK_MSG_ID_ASLCTRL_DATA_LEN 98
#define MAVLINK_MSG_ID_ASLCTRL_DATA_MIN_LEN 98
#define MAVLINK_MSG_ID_203_LEN 98
#define MAVLINK_MSG_ID_203_MIN_LEN 98
#define MAVLINK_MSG_ID_ASLCTRL_DATA_CRC 172
#define MAVLINK_MSG_ID_203_CRC 172
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_ASLCTRL_DATA { \
203, \
"ASLCTRL_DATA", \
25, \
{ { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_aslctrl_data_t, timestamp) }, \
{ "aslctrl_mode", NULL, MAVLINK_TYPE_UINT8_T, 0, 96, offsetof(mavlink_aslctrl_data_t, aslctrl_mode) }, \
{ "h", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_aslctrl_data_t, h) }, \
{ "hRef", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_aslctrl_data_t, hRef) }, \
{ "hRef_t", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_aslctrl_data_t, hRef_t) }, \
{ "PitchAngle", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_aslctrl_data_t, PitchAngle) }, \
{ "PitchAngleRef", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_aslctrl_data_t, PitchAngleRef) }, \
{ "q", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_aslctrl_data_t, q) }, \
{ "qRef", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_aslctrl_data_t, qRef) }, \
{ "uElev", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_aslctrl_data_t, uElev) }, \
{ "uThrot", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_aslctrl_data_t, uThrot) }, \
{ "uThrot2", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_aslctrl_data_t, uThrot2) }, \
{ "nZ", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_aslctrl_data_t, nZ) }, \
{ "AirspeedRef", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_aslctrl_data_t, AirspeedRef) }, \
{ "SpoilersEngaged", NULL, MAVLINK_TYPE_UINT8_T, 0, 97, offsetof(mavlink_aslctrl_data_t, SpoilersEngaged) }, \
{ "YawAngle", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_aslctrl_data_t, YawAngle) }, \
{ "YawAngleRef", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_aslctrl_data_t, YawAngleRef) }, \
{ "RollAngle", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_aslctrl_data_t, RollAngle) }, \
{ "RollAngleRef", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_aslctrl_data_t, RollAngleRef) }, \
{ "p", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_aslctrl_data_t, p) }, \
{ "pRef", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_aslctrl_data_t, pRef) }, \
{ "r", NULL, MAVLINK_TYPE_FLOAT, 0, 80, offsetof(mavlink_aslctrl_data_t, r) }, \
{ "rRef", NULL, MAVLINK_TYPE_FLOAT, 0, 84, offsetof(mavlink_aslctrl_data_t, rRef) }, \
{ "uAil", NULL, MAVLINK_TYPE_FLOAT, 0, 88, offsetof(mavlink_aslctrl_data_t, uAil) }, \
{ "uRud", NULL, MAVLINK_TYPE_FLOAT, 0, 92, offsetof(mavlink_aslctrl_data_t, uRud) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_ASLCTRL_DATA { \
"ASLCTRL_DATA", \
25, \
{ { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_aslctrl_data_t, timestamp) }, \
{ "aslctrl_mode", NULL, MAVLINK_TYPE_UINT8_T, 0, 96, offsetof(mavlink_aslctrl_data_t, aslctrl_mode) }, \
{ "h", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_aslctrl_data_t, h) }, \
{ "hRef", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_aslctrl_data_t, hRef) }, \
{ "hRef_t", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_aslctrl_data_t, hRef_t) }, \
{ "PitchAngle", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_aslctrl_data_t, PitchAngle) }, \
{ "PitchAngleRef", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_aslctrl_data_t, PitchAngleRef) }, \
{ "q", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_aslctrl_data_t, q) }, \
{ "qRef", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_aslctrl_data_t, qRef) }, \
{ "uElev", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_aslctrl_data_t, uElev) }, \
{ "uThrot", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_aslctrl_data_t, uThrot) }, \
{ "uThrot2", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_aslctrl_data_t, uThrot2) }, \
{ "nZ", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_aslctrl_data_t, nZ) }, \
{ "AirspeedRef", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_aslctrl_data_t, AirspeedRef) }, \
{ "SpoilersEngaged", NULL, MAVLINK_TYPE_UINT8_T, 0, 97, offsetof(mavlink_aslctrl_data_t, SpoilersEngaged) }, \
{ "YawAngle", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_aslctrl_data_t, YawAngle) }, \
{ "YawAngleRef", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_aslctrl_data_t, YawAngleRef) }, \
{ "RollAngle", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_aslctrl_data_t, RollAngle) }, \
{ "RollAngleRef", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_aslctrl_data_t, RollAngleRef) }, \
{ "p", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_aslctrl_data_t, p) }, \
{ "pRef", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_aslctrl_data_t, pRef) }, \
{ "r", NULL, MAVLINK_TYPE_FLOAT, 0, 80, offsetof(mavlink_aslctrl_data_t, r) }, \
{ "rRef", NULL, MAVLINK_TYPE_FLOAT, 0, 84, offsetof(mavlink_aslctrl_data_t, rRef) }, \
{ "uAil", NULL, MAVLINK_TYPE_FLOAT, 0, 88, offsetof(mavlink_aslctrl_data_t, uAil) }, \
{ "uRud", NULL, MAVLINK_TYPE_FLOAT, 0, 92, offsetof(mavlink_aslctrl_data_t, uRud) }, \
} \
}
#endif
/**
* @brief Pack a aslctrl_data 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 timestamp [us] Timestamp
* @param aslctrl_mode ASLCTRL control-mode (manual, stabilized, auto, etc...)
* @param h See sourcecode for a description of these values...
* @param hRef
* @param hRef_t
* @param PitchAngle [deg] Pitch angle
* @param PitchAngleRef [deg] Pitch angle reference
* @param q
* @param qRef
* @param uElev
* @param uThrot
* @param uThrot2
* @param nZ
* @param AirspeedRef [m/s] Airspeed reference
* @param SpoilersEngaged
* @param YawAngle [deg] Yaw angle
* @param YawAngleRef [deg] Yaw angle reference
* @param RollAngle [deg] Roll angle
* @param RollAngleRef [deg] Roll angle reference
* @param p
* @param pRef
* @param r
* @param rRef
* @param uAil
* @param uRud
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_aslctrl_data_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint64_t timestamp, uint8_t aslctrl_mode, float h, float hRef, float hRef_t, float PitchAngle, float PitchAngleRef, float q, float qRef, float uElev, float uThrot, float uThrot2, float nZ, float AirspeedRef, uint8_t SpoilersEngaged, float YawAngle, float YawAngleRef, float RollAngle, float RollAngleRef, float p, float pRef, float r, float rRef, float uAil, float uRud)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_ASLCTRL_DATA_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_float(buf, 8, h);
_mav_put_float(buf, 12, hRef);
_mav_put_float(buf, 16, hRef_t);
_mav_put_float(buf, 20, PitchAngle);
_mav_put_float(buf, 24, PitchAngleRef);
_mav_put_float(buf, 28, q);
_mav_put_float(buf, 32, qRef);
_mav_put_float(buf, 36, uElev);
_mav_put_float(buf, 40, uThrot);
_mav_put_float(buf, 44, uThrot2);
_mav_put_float(buf, 48, nZ);
_mav_put_float(buf, 52, AirspeedRef);
_mav_put_float(buf, 56, YawAngle);
_mav_put_float(buf, 60, YawAngleRef);
_mav_put_float(buf, 64, RollAngle);
_mav_put_float(buf, 68, RollAngleRef);
_mav_put_float(buf, 72, p);
_mav_put_float(buf, 76, pRef);
_mav_put_float(buf, 80, r);
_mav_put_float(buf, 84, rRef);
_mav_put_float(buf, 88, uAil);
_mav_put_float(buf, 92, uRud);
_mav_put_uint8_t(buf, 96, aslctrl_mode);
_mav_put_uint8_t(buf, 97, SpoilersEngaged);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ASLCTRL_DATA_LEN);
#else
mavlink_aslctrl_data_t packet;
packet.timestamp = timestamp;
packet.h = h;
packet.hRef = hRef;
packet.hRef_t = hRef_t;
packet.PitchAngle = PitchAngle;
packet.PitchAngleRef = PitchAngleRef;
packet.q = q;
packet.qRef = qRef;
packet.uElev = uElev;
packet.uThrot = uThrot;
packet.uThrot2 = uThrot2;
packet.nZ = nZ;
packet.AirspeedRef = AirspeedRef;
packet.YawAngle = YawAngle;
packet.YawAngleRef = YawAngleRef;
packet.RollAngle = RollAngle;
packet.RollAngleRef = RollAngleRef;
packet.p = p;
packet.pRef = pRef;
packet.r = r;
packet.rRef = rRef;
packet.uAil = uAil;
packet.uRud = uRud;
packet.aslctrl_mode = aslctrl_mode;
packet.SpoilersEngaged = SpoilersEngaged;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ASLCTRL_DATA_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_ASLCTRL_DATA;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_ASLCTRL_DATA_MIN_LEN, MAVLINK_MSG_ID_ASLCTRL_DATA_LEN, MAVLINK_MSG_ID_ASLCTRL_DATA_CRC);
}
/**
* @brief Pack a aslctrl_data 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
* @param timestamp [us] Timestamp
* @param aslctrl_mode ASLCTRL control-mode (manual, stabilized, auto, etc...)
* @param h See sourcecode for a description of these values...
* @param hRef
* @param hRef_t
* @param PitchAngle [deg] Pitch angle
* @param PitchAngleRef [deg] Pitch angle reference
* @param q
* @param qRef
* @param uElev
* @param uThrot
* @param uThrot2
* @param nZ
* @param AirspeedRef [m/s] Airspeed reference
* @param SpoilersEngaged
* @param YawAngle [deg] Yaw angle
* @param YawAngleRef [deg] Yaw angle reference
* @param RollAngle [deg] Roll angle
* @param RollAngleRef [deg] Roll angle reference
* @param p
* @param pRef
* @param r
* @param rRef
* @param uAil
* @param uRud
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_aslctrl_data_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint64_t timestamp,uint8_t aslctrl_mode,float h,float hRef,float hRef_t,float PitchAngle,float PitchAngleRef,float q,float qRef,float uElev,float uThrot,float uThrot2,float nZ,float AirspeedRef,uint8_t SpoilersEngaged,float YawAngle,float YawAngleRef,float RollAngle,float RollAngleRef,float p,float pRef,float r,float rRef,float uAil,float uRud)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_ASLCTRL_DATA_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_float(buf, 8, h);
_mav_put_float(buf, 12, hRef);
_mav_put_float(buf, 16, hRef_t);
_mav_put_float(buf, 20, PitchAngle);
_mav_put_float(buf, 24, PitchAngleRef);
_mav_put_float(buf, 28, q);
_mav_put_float(buf, 32, qRef);
_mav_put_float(buf, 36, uElev);
_mav_put_float(buf, 40, uThrot);
_mav_put_float(buf, 44, uThrot2);
_mav_put_float(buf, 48, nZ);
_mav_put_float(buf, 52, AirspeedRef);
_mav_put_float(buf, 56, YawAngle);
_mav_put_float(buf, 60, YawAngleRef);
_mav_put_float(buf, 64, RollAngle);
_mav_put_float(buf, 68, RollAngleRef);
_mav_put_float(buf, 72, p);
_mav_put_float(buf, 76, pRef);
_mav_put_float(buf, 80, r);
_mav_put_float(buf, 84, rRef);
_mav_put_float(buf, 88, uAil);
_mav_put_float(buf, 92, uRud);
_mav_put_uint8_t(buf, 96, aslctrl_mode);
_mav_put_uint8_t(buf, 97, SpoilersEngaged);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ASLCTRL_DATA_LEN);
#else
mavlink_aslctrl_data_t packet;
packet.timestamp = timestamp;
packet.h = h;
packet.hRef = hRef;
packet.hRef_t = hRef_t;
packet.PitchAngle = PitchAngle;
packet.PitchAngleRef = PitchAngleRef;
packet.q = q;
packet.qRef = qRef;
packet.uElev = uElev;
packet.uThrot = uThrot;
packet.uThrot2 = uThrot2;
packet.nZ = nZ;
packet.AirspeedRef = AirspeedRef;
packet.YawAngle = YawAngle;
packet.YawAngleRef = YawAngleRef;
packet.RollAngle = RollAngle;
packet.RollAngleRef = RollAngleRef;
packet.p = p;
packet.pRef = pRef;
packet.r = r;
packet.rRef = rRef;
packet.uAil = uAil;
packet.uRud = uRud;
packet.aslctrl_mode = aslctrl_mode;
packet.SpoilersEngaged = SpoilersEngaged;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ASLCTRL_DATA_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_ASLCTRL_DATA;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_ASLCTRL_DATA_MIN_LEN, MAVLINK_MSG_ID_ASLCTRL_DATA_LEN, MAVLINK_MSG_ID_ASLCTRL_DATA_CRC);
}
/**
* @brief Encode a aslctrl_data 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 aslctrl_data C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_aslctrl_data_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_aslctrl_data_t* aslctrl_data)
{
return mavlink_msg_aslctrl_data_pack(system_id, component_id, msg, aslctrl_data->timestamp, aslctrl_data->aslctrl_mode, aslctrl_data->h, aslctrl_data->hRef, aslctrl_data->hRef_t, aslctrl_data->PitchAngle, aslctrl_data->PitchAngleRef, aslctrl_data->q, aslctrl_data->qRef, aslctrl_data->uElev, aslctrl_data->uThrot, aslctrl_data->uThrot2, aslctrl_data->nZ, aslctrl_data->AirspeedRef, aslctrl_data->SpoilersEngaged, aslctrl_data->YawAngle, aslctrl_data->YawAngleRef, aslctrl_data->RollAngle, aslctrl_data->RollAngleRef, aslctrl_data->p, aslctrl_data->pRef, aslctrl_data->r, aslctrl_data->rRef, aslctrl_data->uAil, aslctrl_data->uRud);
}
/**
* @brief Encode a aslctrl_data 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 aslctrl_data C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_aslctrl_data_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_aslctrl_data_t* aslctrl_data)
{
return mavlink_msg_aslctrl_data_pack_chan(system_id, component_id, chan, msg, aslctrl_data->timestamp, aslctrl_data->aslctrl_mode, aslctrl_data->h, aslctrl_data->hRef, aslctrl_data->hRef_t, aslctrl_data->PitchAngle, aslctrl_data->PitchAngleRef, aslctrl_data->q, aslctrl_data->qRef, aslctrl_data->uElev, aslctrl_data->uThrot, aslctrl_data->uThrot2, aslctrl_data->nZ, aslctrl_data->AirspeedRef, aslctrl_data->SpoilersEngaged, aslctrl_data->YawAngle, aslctrl_data->YawAngleRef, aslctrl_data->RollAngle, aslctrl_data->RollAngleRef, aslctrl_data->p, aslctrl_data->pRef, aslctrl_data->r, aslctrl_data->rRef, aslctrl_data->uAil, aslctrl_data->uRud);
}
/**
* @brief Send a aslctrl_data message
* @param chan MAVLink channel to send the message
*
* @param timestamp [us] Timestamp
* @param aslctrl_mode ASLCTRL control-mode (manual, stabilized, auto, etc...)
* @param h See sourcecode for a description of these values...
* @param hRef
* @param hRef_t
* @param PitchAngle [deg] Pitch angle
* @param PitchAngleRef [deg] Pitch angle reference
* @param q
* @param qRef
* @param uElev
* @param uThrot
* @param uThrot2
* @param nZ
* @param AirspeedRef [m/s] Airspeed reference
* @param SpoilersEngaged
* @param YawAngle [deg] Yaw angle
* @param YawAngleRef [deg] Yaw angle reference
* @param RollAngle [deg] Roll angle
* @param RollAngleRef [deg] Roll angle reference
* @param p
* @param pRef
* @param r
* @param rRef
* @param uAil
* @param uRud
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_aslctrl_data_send(mavlink_channel_t chan, uint64_t timestamp, uint8_t aslctrl_mode, float h, float hRef, float hRef_t, float PitchAngle, float PitchAngleRef, float q, float qRef, float uElev, float uThrot, float uThrot2, float nZ, float AirspeedRef, uint8_t SpoilersEngaged, float YawAngle, float YawAngleRef, float RollAngle, float RollAngleRef, float p, float pRef, float r, float rRef, float uAil, float uRud)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_ASLCTRL_DATA_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_float(buf, 8, h);
_mav_put_float(buf, 12, hRef);
_mav_put_float(buf, 16, hRef_t);
_mav_put_float(buf, 20, PitchAngle);
_mav_put_float(buf, 24, PitchAngleRef);
_mav_put_float(buf, 28, q);
_mav_put_float(buf, 32, qRef);
_mav_put_float(buf, 36, uElev);
_mav_put_float(buf, 40, uThrot);
_mav_put_float(buf, 44, uThrot2);
_mav_put_float(buf, 48, nZ);
_mav_put_float(buf, 52, AirspeedRef);
_mav_put_float(buf, 56, YawAngle);
_mav_put_float(buf, 60, YawAngleRef);
_mav_put_float(buf, 64, RollAngle);
_mav_put_float(buf, 68, RollAngleRef);
_mav_put_float(buf, 72, p);
_mav_put_float(buf, 76, pRef);
_mav_put_float(buf, 80, r);
_mav_put_float(buf, 84, rRef);
_mav_put_float(buf, 88, uAil);
_mav_put_float(buf, 92, uRud);
_mav_put_uint8_t(buf, 96, aslctrl_mode);
_mav_put_uint8_t(buf, 97, SpoilersEngaged);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASLCTRL_DATA, buf, MAVLINK_MSG_ID_ASLCTRL_DATA_MIN_LEN, MAVLINK_MSG_ID_ASLCTRL_DATA_LEN, MAVLINK_MSG_ID_ASLCTRL_DATA_CRC);
#else
mavlink_aslctrl_data_t packet;
packet.timestamp = timestamp;
packet.h = h;
packet.hRef = hRef;
packet.hRef_t = hRef_t;
packet.PitchAngle = PitchAngle;
packet.PitchAngleRef = PitchAngleRef;
packet.q = q;
packet.qRef = qRef;
packet.uElev = uElev;
packet.uThrot = uThrot;
packet.uThrot2 = uThrot2;
packet.nZ = nZ;
packet.AirspeedRef = AirspeedRef;
packet.YawAngle = YawAngle;
packet.YawAngleRef = YawAngleRef;
packet.RollAngle = RollAngle;
packet.RollAngleRef = RollAngleRef;
packet.p = p;
packet.pRef = pRef;
packet.r = r;
packet.rRef = rRef;
packet.uAil = uAil;
packet.uRud = uRud;
packet.aslctrl_mode = aslctrl_mode;
packet.SpoilersEngaged = SpoilersEngaged;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASLCTRL_DATA, (const char *)&packet, MAVLINK_MSG_ID_ASLCTRL_DATA_MIN_LEN, MAVLINK_MSG_ID_ASLCTRL_DATA_LEN, MAVLINK_MSG_ID_ASLCTRL_DATA_CRC);
#endif
}
/**
* @brief Send a aslctrl_data message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_aslctrl_data_send_struct(mavlink_channel_t chan, const mavlink_aslctrl_data_t* aslctrl_data)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_aslctrl_data_send(chan, aslctrl_data->timestamp, aslctrl_data->aslctrl_mode, aslctrl_data->h, aslctrl_data->hRef, aslctrl_data->hRef_t, aslctrl_data->PitchAngle, aslctrl_data->PitchAngleRef, aslctrl_data->q, aslctrl_data->qRef, aslctrl_data->uElev, aslctrl_data->uThrot, aslctrl_data->uThrot2, aslctrl_data->nZ, aslctrl_data->AirspeedRef, aslctrl_data->SpoilersEngaged, aslctrl_data->YawAngle, aslctrl_data->YawAngleRef, aslctrl_data->RollAngle, aslctrl_data->RollAngleRef, aslctrl_data->p, aslctrl_data->pRef, aslctrl_data->r, aslctrl_data->rRef, aslctrl_data->uAil, aslctrl_data->uRud);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASLCTRL_DATA, (const char *)aslctrl_data, MAVLINK_MSG_ID_ASLCTRL_DATA_MIN_LEN, MAVLINK_MSG_ID_ASLCTRL_DATA_LEN, MAVLINK_MSG_ID_ASLCTRL_DATA_CRC);
#endif
}
#if MAVLINK_MSG_ID_ASLCTRL_DATA_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.
*/
static inline void mavlink_msg_aslctrl_data_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, uint8_t aslctrl_mode, float h, float hRef, float hRef_t, float PitchAngle, float PitchAngleRef, float q, float qRef, float uElev, float uThrot, float uThrot2, float nZ, float AirspeedRef, uint8_t SpoilersEngaged, float YawAngle, float YawAngleRef, float RollAngle, float RollAngleRef, float p, float pRef, float r, float rRef, float uAil, float uRud)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_float(buf, 8, h);
_mav_put_float(buf, 12, hRef);
_mav_put_float(buf, 16, hRef_t);
_mav_put_float(buf, 20, PitchAngle);
_mav_put_float(buf, 24, PitchAngleRef);
_mav_put_float(buf, 28, q);
_mav_put_float(buf, 32, qRef);
_mav_put_float(buf, 36, uElev);
_mav_put_float(buf, 40, uThrot);
_mav_put_float(buf, 44, uThrot2);
_mav_put_float(buf, 48, nZ);
_mav_put_float(buf, 52, AirspeedRef);
_mav_put_float(buf, 56, YawAngle);
_mav_put_float(buf, 60, YawAngleRef);
_mav_put_float(buf, 64, RollAngle);
_mav_put_float(buf, 68, RollAngleRef);
_mav_put_float(buf, 72, p);
_mav_put_float(buf, 76, pRef);
_mav_put_float(buf, 80, r);
_mav_put_float(buf, 84, rRef);
_mav_put_float(buf, 88, uAil);
_mav_put_float(buf, 92, uRud);
_mav_put_uint8_t(buf, 96, aslctrl_mode);
_mav_put_uint8_t(buf, 97, SpoilersEngaged);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASLCTRL_DATA, buf, MAVLINK_MSG_ID_ASLCTRL_DATA_MIN_LEN, MAVLINK_MSG_ID_ASLCTRL_DATA_LEN, MAVLINK_MSG_ID_ASLCTRL_DATA_CRC);
#else
mavlink_aslctrl_data_t *packet = (mavlink_aslctrl_data_t *)msgbuf;
packet->timestamp = timestamp;
packet->h = h;
packet->hRef = hRef;
packet->hRef_t = hRef_t;
packet->PitchAngle = PitchAngle;
packet->PitchAngleRef = PitchAngleRef;
packet->q = q;
packet->qRef = qRef;
packet->uElev = uElev;
packet->uThrot = uThrot;
packet->uThrot2 = uThrot2;
packet->nZ = nZ;
packet->AirspeedRef = AirspeedRef;
packet->YawAngle = YawAngle;
packet->YawAngleRef = YawAngleRef;
packet->RollAngle = RollAngle;
packet->RollAngleRef = RollAngleRef;
packet->p = p;
packet->pRef = pRef;
packet->r = r;
packet->rRef = rRef;
packet->uAil = uAil;
packet->uRud = uRud;
packet->aslctrl_mode = aslctrl_mode;
packet->SpoilersEngaged = SpoilersEngaged;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASLCTRL_DATA, (const char *)packet, MAVLINK_MSG_ID_ASLCTRL_DATA_MIN_LEN, MAVLINK_MSG_ID_ASLCTRL_DATA_LEN, MAVLINK_MSG_ID_ASLCTRL_DATA_CRC);
#endif
}
#endif
#endif
// MESSAGE ASLCTRL_DATA UNPACKING
/**
* @brief Get field timestamp from aslctrl_data message
*
* @return [us] Timestamp
*/
static inline uint64_t mavlink_msg_aslctrl_data_get_timestamp(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint64_t(msg, 0);
}
/**
* @brief Get field aslctrl_mode from aslctrl_data message
*
* @return ASLCTRL control-mode (manual, stabilized, auto, etc...)
*/
static inline uint8_t mavlink_msg_aslctrl_data_get_aslctrl_mode(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 96);
}
/**
* @brief Get field h from aslctrl_data message
*
* @return See sourcecode for a description of these values...
*/
static inline float mavlink_msg_aslctrl_data_get_h(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 8);
}
/**
* @brief Get field hRef from aslctrl_data message
*
* @return
*/
static inline float mavlink_msg_aslctrl_data_get_hRef(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 12);
}
/**
* @brief Get field hRef_t from aslctrl_data message
*
* @return
*/
static inline float mavlink_msg_aslctrl_data_get_hRef_t(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 16);
}
/**
* @brief Get field PitchAngle from aslctrl_data message
*
* @return [deg] Pitch angle
*/
static inline float mavlink_msg_aslctrl_data_get_PitchAngle(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 20);
}
/**
* @brief Get field PitchAngleRef from aslctrl_data message
*
* @return [deg] Pitch angle reference
*/
static inline float mavlink_msg_aslctrl_data_get_PitchAngleRef(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 24);
}
/**
* @brief Get field q from aslctrl_data message
*
* @return
*/
static inline float mavlink_msg_aslctrl_data_get_q(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 28);
}
/**
* @brief Get field qRef from aslctrl_data message
*
* @return
*/
static inline float mavlink_msg_aslctrl_data_get_qRef(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 32);
}
/**
* @brief Get field uElev from aslctrl_data message
*
* @return
*/
static inline float mavlink_msg_aslctrl_data_get_uElev(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 36);
}
/**
* @brief Get field uThrot from aslctrl_data message
*
* @return
*/
static inline float mavlink_msg_aslctrl_data_get_uThrot(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 40);
}
/**
* @brief Get field uThrot2 from aslctrl_data message
*
* @return
*/
static inline float mavlink_msg_aslctrl_data_get_uThrot2(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 44);
}
/**
* @brief Get field nZ from aslctrl_data message
*
* @return
*/
static inline float mavlink_msg_aslctrl_data_get_nZ(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 48);
}
/**
* @brief Get field AirspeedRef from aslctrl_data message
*
* @return [m/s] Airspeed reference
*/
static inline float mavlink_msg_aslctrl_data_get_AirspeedRef(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 52);
}
/**
* @brief Get field SpoilersEngaged from aslctrl_data message
*
* @return
*/
static inline uint8_t mavlink_msg_aslctrl_data_get_SpoilersEngaged(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 97);
}
/**
* @brief Get field YawAngle from aslctrl_data message
*
* @return [deg] Yaw angle
*/
static inline float mavlink_msg_aslctrl_data_get_YawAngle(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 56);
}
/**
* @brief Get field YawAngleRef from aslctrl_data message
*
* @return [deg] Yaw angle reference
*/
static inline float mavlink_msg_aslctrl_data_get_YawAngleRef(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 60);
}
/**
* @brief Get field RollAngle from aslctrl_data message
*
* @return [deg] Roll angle
*/
static inline float mavlink_msg_aslctrl_data_get_RollAngle(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 64);
}
/**
* @brief Get field RollAngleRef from aslctrl_data message
*
* @return [deg] Roll angle reference
*/
static inline float mavlink_msg_aslctrl_data_get_RollAngleRef(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 68);
}
/**
* @brief Get field p from aslctrl_data message
*
* @return
*/
static inline float mavlink_msg_aslctrl_data_get_p(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 72);
}
/**
* @brief Get field pRef from aslctrl_data message
*
* @return
*/
static inline float mavlink_msg_aslctrl_data_get_pRef(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 76);
}
/**
* @brief Get field r from aslctrl_data message
*
* @return
*/
static inline float mavlink_msg_aslctrl_data_get_r(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 80);
}
/**
* @brief Get field rRef from aslctrl_data message
*
* @return
*/
static inline float mavlink_msg_aslctrl_data_get_rRef(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 84);
}
/**
* @brief Get field uAil from aslctrl_data message
*
* @return
*/
static inline float mavlink_msg_aslctrl_data_get_uAil(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 88);
}
/**
* @brief Get field uRud from aslctrl_data message
*
* @return
*/
static inline float mavlink_msg_aslctrl_data_get_uRud(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 92);
}
/**
* @brief Decode a aslctrl_data message into a struct
*
* @param msg The message to decode
* @param aslctrl_data C-struct to decode the message contents into
*/
static inline void mavlink_msg_aslctrl_data_decode(const mavlink_message_t* msg, mavlink_aslctrl_data_t* aslctrl_data)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
aslctrl_data->timestamp = mavlink_msg_aslctrl_data_get_timestamp(msg);
aslctrl_data->h = mavlink_msg_aslctrl_data_get_h(msg);
aslctrl_data->hRef = mavlink_msg_aslctrl_data_get_hRef(msg);
aslctrl_data->hRef_t = mavlink_msg_aslctrl_data_get_hRef_t(msg);
aslctrl_data->PitchAngle = mavlink_msg_aslctrl_data_get_PitchAngle(msg);
aslctrl_data->PitchAngleRef = mavlink_msg_aslctrl_data_get_PitchAngleRef(msg);
aslctrl_data->q = mavlink_msg_aslctrl_data_get_q(msg);
aslctrl_data->qRef = mavlink_msg_aslctrl_data_get_qRef(msg);
aslctrl_data->uElev = mavlink_msg_aslctrl_data_get_uElev(msg);
aslctrl_data->uThrot = mavlink_msg_aslctrl_data_get_uThrot(msg);
aslctrl_data->uThrot2 = mavlink_msg_aslctrl_data_get_uThrot2(msg);
aslctrl_data->nZ = mavlink_msg_aslctrl_data_get_nZ(msg);
aslctrl_data->AirspeedRef = mavlink_msg_aslctrl_data_get_AirspeedRef(msg);
aslctrl_data->YawAngle = mavlink_msg_aslctrl_data_get_YawAngle(msg);
aslctrl_data->YawAngleRef = mavlink_msg_aslctrl_data_get_YawAngleRef(msg);
aslctrl_data->RollAngle = mavlink_msg_aslctrl_data_get_RollAngle(msg);
aslctrl_data->RollAngleRef = mavlink_msg_aslctrl_data_get_RollAngleRef(msg);
aslctrl_data->p = mavlink_msg_aslctrl_data_get_p(msg);
aslctrl_data->pRef = mavlink_msg_aslctrl_data_get_pRef(msg);
aslctrl_data->r = mavlink_msg_aslctrl_data_get_r(msg);
aslctrl_data->rRef = mavlink_msg_aslctrl_data_get_rRef(msg);
aslctrl_data->uAil = mavlink_msg_aslctrl_data_get_uAil(msg);
aslctrl_data->uRud = mavlink_msg_aslctrl_data_get_uRud(msg);
aslctrl_data->aslctrl_mode = mavlink_msg_aslctrl_data_get_aslctrl_mode(msg);
aslctrl_data->SpoilersEngaged = mavlink_msg_aslctrl_data_get_SpoilersEngaged(msg);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_ASLCTRL_DATA_LEN? msg->len : MAVLINK_MSG_ID_ASLCTRL_DATA_LEN;
memset(aslctrl_data, 0, MAVLINK_MSG_ID_ASLCTRL_DATA_LEN);
memcpy(aslctrl_data, _MAV_PAYLOAD(msg), len);
#endif
}

View File

@@ -0,0 +1,463 @@
#pragma once
// MESSAGE ASLCTRL_DEBUG PACKING
#define MAVLINK_MSG_ID_ASLCTRL_DEBUG 204
MAVPACKED(
typedef struct __mavlink_aslctrl_debug_t {
uint32_t i32_1; /*< Debug data*/
float f_1; /*< Debug data */
float f_2; /*< Debug data*/
float f_3; /*< Debug data*/
float f_4; /*< Debug data*/
float f_5; /*< Debug data*/
float f_6; /*< Debug data*/
float f_7; /*< Debug data*/
float f_8; /*< Debug data*/
uint8_t i8_1; /*< Debug data*/
uint8_t i8_2; /*< Debug data*/
}) mavlink_aslctrl_debug_t;
#define MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN 38
#define MAVLINK_MSG_ID_ASLCTRL_DEBUG_MIN_LEN 38
#define MAVLINK_MSG_ID_204_LEN 38
#define MAVLINK_MSG_ID_204_MIN_LEN 38
#define MAVLINK_MSG_ID_ASLCTRL_DEBUG_CRC 251
#define MAVLINK_MSG_ID_204_CRC 251
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_ASLCTRL_DEBUG { \
204, \
"ASLCTRL_DEBUG", \
11, \
{ { "i32_1", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_aslctrl_debug_t, i32_1) }, \
{ "i8_1", NULL, MAVLINK_TYPE_UINT8_T, 0, 36, offsetof(mavlink_aslctrl_debug_t, i8_1) }, \
{ "i8_2", NULL, MAVLINK_TYPE_UINT8_T, 0, 37, offsetof(mavlink_aslctrl_debug_t, i8_2) }, \
{ "f_1", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_aslctrl_debug_t, f_1) }, \
{ "f_2", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_aslctrl_debug_t, f_2) }, \
{ "f_3", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_aslctrl_debug_t, f_3) }, \
{ "f_4", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_aslctrl_debug_t, f_4) }, \
{ "f_5", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_aslctrl_debug_t, f_5) }, \
{ "f_6", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_aslctrl_debug_t, f_6) }, \
{ "f_7", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_aslctrl_debug_t, f_7) }, \
{ "f_8", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_aslctrl_debug_t, f_8) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_ASLCTRL_DEBUG { \
"ASLCTRL_DEBUG", \
11, \
{ { "i32_1", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_aslctrl_debug_t, i32_1) }, \
{ "i8_1", NULL, MAVLINK_TYPE_UINT8_T, 0, 36, offsetof(mavlink_aslctrl_debug_t, i8_1) }, \
{ "i8_2", NULL, MAVLINK_TYPE_UINT8_T, 0, 37, offsetof(mavlink_aslctrl_debug_t, i8_2) }, \
{ "f_1", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_aslctrl_debug_t, f_1) }, \
{ "f_2", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_aslctrl_debug_t, f_2) }, \
{ "f_3", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_aslctrl_debug_t, f_3) }, \
{ "f_4", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_aslctrl_debug_t, f_4) }, \
{ "f_5", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_aslctrl_debug_t, f_5) }, \
{ "f_6", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_aslctrl_debug_t, f_6) }, \
{ "f_7", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_aslctrl_debug_t, f_7) }, \
{ "f_8", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_aslctrl_debug_t, f_8) }, \
} \
}
#endif
/**
* @brief Pack a aslctrl_debug 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 i32_1 Debug data
* @param i8_1 Debug data
* @param i8_2 Debug data
* @param f_1 Debug data
* @param f_2 Debug data
* @param f_3 Debug data
* @param f_4 Debug data
* @param f_5 Debug data
* @param f_6 Debug data
* @param f_7 Debug data
* @param f_8 Debug data
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_aslctrl_debug_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint32_t i32_1, uint8_t i8_1, uint8_t i8_2, float f_1, float f_2, float f_3, float f_4, float f_5, float f_6, float f_7, float f_8)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN];
_mav_put_uint32_t(buf, 0, i32_1);
_mav_put_float(buf, 4, f_1);
_mav_put_float(buf, 8, f_2);
_mav_put_float(buf, 12, f_3);
_mav_put_float(buf, 16, f_4);
_mav_put_float(buf, 20, f_5);
_mav_put_float(buf, 24, f_6);
_mav_put_float(buf, 28, f_7);
_mav_put_float(buf, 32, f_8);
_mav_put_uint8_t(buf, 36, i8_1);
_mav_put_uint8_t(buf, 37, i8_2);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN);
#else
mavlink_aslctrl_debug_t packet;
packet.i32_1 = i32_1;
packet.f_1 = f_1;
packet.f_2 = f_2;
packet.f_3 = f_3;
packet.f_4 = f_4;
packet.f_5 = f_5;
packet.f_6 = f_6;
packet.f_7 = f_7;
packet.f_8 = f_8;
packet.i8_1 = i8_1;
packet.i8_2 = i8_2;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_ASLCTRL_DEBUG;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_ASLCTRL_DEBUG_MIN_LEN, MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN, MAVLINK_MSG_ID_ASLCTRL_DEBUG_CRC);
}
/**
* @brief Pack a aslctrl_debug 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
* @param i32_1 Debug data
* @param i8_1 Debug data
* @param i8_2 Debug data
* @param f_1 Debug data
* @param f_2 Debug data
* @param f_3 Debug data
* @param f_4 Debug data
* @param f_5 Debug data
* @param f_6 Debug data
* @param f_7 Debug data
* @param f_8 Debug data
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_aslctrl_debug_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint32_t i32_1,uint8_t i8_1,uint8_t i8_2,float f_1,float f_2,float f_3,float f_4,float f_5,float f_6,float f_7,float f_8)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN];
_mav_put_uint32_t(buf, 0, i32_1);
_mav_put_float(buf, 4, f_1);
_mav_put_float(buf, 8, f_2);
_mav_put_float(buf, 12, f_3);
_mav_put_float(buf, 16, f_4);
_mav_put_float(buf, 20, f_5);
_mav_put_float(buf, 24, f_6);
_mav_put_float(buf, 28, f_7);
_mav_put_float(buf, 32, f_8);
_mav_put_uint8_t(buf, 36, i8_1);
_mav_put_uint8_t(buf, 37, i8_2);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN);
#else
mavlink_aslctrl_debug_t packet;
packet.i32_1 = i32_1;
packet.f_1 = f_1;
packet.f_2 = f_2;
packet.f_3 = f_3;
packet.f_4 = f_4;
packet.f_5 = f_5;
packet.f_6 = f_6;
packet.f_7 = f_7;
packet.f_8 = f_8;
packet.i8_1 = i8_1;
packet.i8_2 = i8_2;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_ASLCTRL_DEBUG;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_ASLCTRL_DEBUG_MIN_LEN, MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN, MAVLINK_MSG_ID_ASLCTRL_DEBUG_CRC);
}
/**
* @brief Encode a aslctrl_debug 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 aslctrl_debug C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_aslctrl_debug_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_aslctrl_debug_t* aslctrl_debug)
{
return mavlink_msg_aslctrl_debug_pack(system_id, component_id, msg, aslctrl_debug->i32_1, aslctrl_debug->i8_1, aslctrl_debug->i8_2, aslctrl_debug->f_1, aslctrl_debug->f_2, aslctrl_debug->f_3, aslctrl_debug->f_4, aslctrl_debug->f_5, aslctrl_debug->f_6, aslctrl_debug->f_7, aslctrl_debug->f_8);
}
/**
* @brief Encode a aslctrl_debug 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 aslctrl_debug C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_aslctrl_debug_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_aslctrl_debug_t* aslctrl_debug)
{
return mavlink_msg_aslctrl_debug_pack_chan(system_id, component_id, chan, msg, aslctrl_debug->i32_1, aslctrl_debug->i8_1, aslctrl_debug->i8_2, aslctrl_debug->f_1, aslctrl_debug->f_2, aslctrl_debug->f_3, aslctrl_debug->f_4, aslctrl_debug->f_5, aslctrl_debug->f_6, aslctrl_debug->f_7, aslctrl_debug->f_8);
}
/**
* @brief Send a aslctrl_debug message
* @param chan MAVLink channel to send the message
*
* @param i32_1 Debug data
* @param i8_1 Debug data
* @param i8_2 Debug data
* @param f_1 Debug data
* @param f_2 Debug data
* @param f_3 Debug data
* @param f_4 Debug data
* @param f_5 Debug data
* @param f_6 Debug data
* @param f_7 Debug data
* @param f_8 Debug data
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_aslctrl_debug_send(mavlink_channel_t chan, uint32_t i32_1, uint8_t i8_1, uint8_t i8_2, float f_1, float f_2, float f_3, float f_4, float f_5, float f_6, float f_7, float f_8)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN];
_mav_put_uint32_t(buf, 0, i32_1);
_mav_put_float(buf, 4, f_1);
_mav_put_float(buf, 8, f_2);
_mav_put_float(buf, 12, f_3);
_mav_put_float(buf, 16, f_4);
_mav_put_float(buf, 20, f_5);
_mav_put_float(buf, 24, f_6);
_mav_put_float(buf, 28, f_7);
_mav_put_float(buf, 32, f_8);
_mav_put_uint8_t(buf, 36, i8_1);
_mav_put_uint8_t(buf, 37, i8_2);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASLCTRL_DEBUG, buf, MAVLINK_MSG_ID_ASLCTRL_DEBUG_MIN_LEN, MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN, MAVLINK_MSG_ID_ASLCTRL_DEBUG_CRC);
#else
mavlink_aslctrl_debug_t packet;
packet.i32_1 = i32_1;
packet.f_1 = f_1;
packet.f_2 = f_2;
packet.f_3 = f_3;
packet.f_4 = f_4;
packet.f_5 = f_5;
packet.f_6 = f_6;
packet.f_7 = f_7;
packet.f_8 = f_8;
packet.i8_1 = i8_1;
packet.i8_2 = i8_2;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASLCTRL_DEBUG, (const char *)&packet, MAVLINK_MSG_ID_ASLCTRL_DEBUG_MIN_LEN, MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN, MAVLINK_MSG_ID_ASLCTRL_DEBUG_CRC);
#endif
}
/**
* @brief Send a aslctrl_debug message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_aslctrl_debug_send_struct(mavlink_channel_t chan, const mavlink_aslctrl_debug_t* aslctrl_debug)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_aslctrl_debug_send(chan, aslctrl_debug->i32_1, aslctrl_debug->i8_1, aslctrl_debug->i8_2, aslctrl_debug->f_1, aslctrl_debug->f_2, aslctrl_debug->f_3, aslctrl_debug->f_4, aslctrl_debug->f_5, aslctrl_debug->f_6, aslctrl_debug->f_7, aslctrl_debug->f_8);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASLCTRL_DEBUG, (const char *)aslctrl_debug, MAVLINK_MSG_ID_ASLCTRL_DEBUG_MIN_LEN, MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN, MAVLINK_MSG_ID_ASLCTRL_DEBUG_CRC);
#endif
}
#if MAVLINK_MSG_ID_ASLCTRL_DEBUG_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.
*/
static inline void mavlink_msg_aslctrl_debug_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t i32_1, uint8_t i8_1, uint8_t i8_2, float f_1, float f_2, float f_3, float f_4, float f_5, float f_6, float f_7, float f_8)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_uint32_t(buf, 0, i32_1);
_mav_put_float(buf, 4, f_1);
_mav_put_float(buf, 8, f_2);
_mav_put_float(buf, 12, f_3);
_mav_put_float(buf, 16, f_4);
_mav_put_float(buf, 20, f_5);
_mav_put_float(buf, 24, f_6);
_mav_put_float(buf, 28, f_7);
_mav_put_float(buf, 32, f_8);
_mav_put_uint8_t(buf, 36, i8_1);
_mav_put_uint8_t(buf, 37, i8_2);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASLCTRL_DEBUG, buf, MAVLINK_MSG_ID_ASLCTRL_DEBUG_MIN_LEN, MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN, MAVLINK_MSG_ID_ASLCTRL_DEBUG_CRC);
#else
mavlink_aslctrl_debug_t *packet = (mavlink_aslctrl_debug_t *)msgbuf;
packet->i32_1 = i32_1;
packet->f_1 = f_1;
packet->f_2 = f_2;
packet->f_3 = f_3;
packet->f_4 = f_4;
packet->f_5 = f_5;
packet->f_6 = f_6;
packet->f_7 = f_7;
packet->f_8 = f_8;
packet->i8_1 = i8_1;
packet->i8_2 = i8_2;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASLCTRL_DEBUG, (const char *)packet, MAVLINK_MSG_ID_ASLCTRL_DEBUG_MIN_LEN, MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN, MAVLINK_MSG_ID_ASLCTRL_DEBUG_CRC);
#endif
}
#endif
#endif
// MESSAGE ASLCTRL_DEBUG UNPACKING
/**
* @brief Get field i32_1 from aslctrl_debug message
*
* @return Debug data
*/
static inline uint32_t mavlink_msg_aslctrl_debug_get_i32_1(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 0);
}
/**
* @brief Get field i8_1 from aslctrl_debug message
*
* @return Debug data
*/
static inline uint8_t mavlink_msg_aslctrl_debug_get_i8_1(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 36);
}
/**
* @brief Get field i8_2 from aslctrl_debug message
*
* @return Debug data
*/
static inline uint8_t mavlink_msg_aslctrl_debug_get_i8_2(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 37);
}
/**
* @brief Get field f_1 from aslctrl_debug message
*
* @return Debug data
*/
static inline float mavlink_msg_aslctrl_debug_get_f_1(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 4);
}
/**
* @brief Get field f_2 from aslctrl_debug message
*
* @return Debug data
*/
static inline float mavlink_msg_aslctrl_debug_get_f_2(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 8);
}
/**
* @brief Get field f_3 from aslctrl_debug message
*
* @return Debug data
*/
static inline float mavlink_msg_aslctrl_debug_get_f_3(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 12);
}
/**
* @brief Get field f_4 from aslctrl_debug message
*
* @return Debug data
*/
static inline float mavlink_msg_aslctrl_debug_get_f_4(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 16);
}
/**
* @brief Get field f_5 from aslctrl_debug message
*
* @return Debug data
*/
static inline float mavlink_msg_aslctrl_debug_get_f_5(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 20);
}
/**
* @brief Get field f_6 from aslctrl_debug message
*
* @return Debug data
*/
static inline float mavlink_msg_aslctrl_debug_get_f_6(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 24);
}
/**
* @brief Get field f_7 from aslctrl_debug message
*
* @return Debug data
*/
static inline float mavlink_msg_aslctrl_debug_get_f_7(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 28);
}
/**
* @brief Get field f_8 from aslctrl_debug message
*
* @return Debug data
*/
static inline float mavlink_msg_aslctrl_debug_get_f_8(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 32);
}
/**
* @brief Decode a aslctrl_debug message into a struct
*
* @param msg The message to decode
* @param aslctrl_debug C-struct to decode the message contents into
*/
static inline void mavlink_msg_aslctrl_debug_decode(const mavlink_message_t* msg, mavlink_aslctrl_debug_t* aslctrl_debug)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
aslctrl_debug->i32_1 = mavlink_msg_aslctrl_debug_get_i32_1(msg);
aslctrl_debug->f_1 = mavlink_msg_aslctrl_debug_get_f_1(msg);
aslctrl_debug->f_2 = mavlink_msg_aslctrl_debug_get_f_2(msg);
aslctrl_debug->f_3 = mavlink_msg_aslctrl_debug_get_f_3(msg);
aslctrl_debug->f_4 = mavlink_msg_aslctrl_debug_get_f_4(msg);
aslctrl_debug->f_5 = mavlink_msg_aslctrl_debug_get_f_5(msg);
aslctrl_debug->f_6 = mavlink_msg_aslctrl_debug_get_f_6(msg);
aslctrl_debug->f_7 = mavlink_msg_aslctrl_debug_get_f_7(msg);
aslctrl_debug->f_8 = mavlink_msg_aslctrl_debug_get_f_8(msg);
aslctrl_debug->i8_1 = mavlink_msg_aslctrl_debug_get_i8_1(msg);
aslctrl_debug->i8_2 = mavlink_msg_aslctrl_debug_get_i8_2(msg);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN? msg->len : MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN;
memset(aslctrl_debug, 0, MAVLINK_MSG_ID_ASLCTRL_DEBUG_LEN);
memcpy(aslctrl_debug, _MAV_PAYLOAD(msg), len);
#endif
}

View File

@@ -0,0 +1,280 @@
#pragma once
// MESSAGE ASLUAV_STATUS PACKING
#define MAVLINK_MSG_ID_ASLUAV_STATUS 205
MAVPACKED(
typedef struct __mavlink_asluav_status_t {
float Motor_rpm; /*< Motor RPM */
uint8_t LED_status; /*< Status of the position-indicator LEDs*/
uint8_t SATCOM_status; /*< Status of the IRIDIUM satellite communication system*/
uint8_t Servo_status[8]; /*< Status vector for up to 8 servos*/
}) mavlink_asluav_status_t;
#define MAVLINK_MSG_ID_ASLUAV_STATUS_LEN 14
#define MAVLINK_MSG_ID_ASLUAV_STATUS_MIN_LEN 14
#define MAVLINK_MSG_ID_205_LEN 14
#define MAVLINK_MSG_ID_205_MIN_LEN 14
#define MAVLINK_MSG_ID_ASLUAV_STATUS_CRC 97
#define MAVLINK_MSG_ID_205_CRC 97
#define MAVLINK_MSG_ASLUAV_STATUS_FIELD_SERVO_STATUS_LEN 8
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_ASLUAV_STATUS { \
205, \
"ASLUAV_STATUS", \
4, \
{ { "LED_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_asluav_status_t, LED_status) }, \
{ "SATCOM_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 5, offsetof(mavlink_asluav_status_t, SATCOM_status) }, \
{ "Servo_status", NULL, MAVLINK_TYPE_UINT8_T, 8, 6, offsetof(mavlink_asluav_status_t, Servo_status) }, \
{ "Motor_rpm", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_asluav_status_t, Motor_rpm) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_ASLUAV_STATUS { \
"ASLUAV_STATUS", \
4, \
{ { "LED_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_asluav_status_t, LED_status) }, \
{ "SATCOM_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 5, offsetof(mavlink_asluav_status_t, SATCOM_status) }, \
{ "Servo_status", NULL, MAVLINK_TYPE_UINT8_T, 8, 6, offsetof(mavlink_asluav_status_t, Servo_status) }, \
{ "Motor_rpm", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_asluav_status_t, Motor_rpm) }, \
} \
}
#endif
/**
* @brief Pack a asluav_status 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 LED_status Status of the position-indicator LEDs
* @param SATCOM_status Status of the IRIDIUM satellite communication system
* @param Servo_status Status vector for up to 8 servos
* @param Motor_rpm Motor RPM
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_asluav_status_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint8_t LED_status, uint8_t SATCOM_status, const uint8_t *Servo_status, float Motor_rpm)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_ASLUAV_STATUS_LEN];
_mav_put_float(buf, 0, Motor_rpm);
_mav_put_uint8_t(buf, 4, LED_status);
_mav_put_uint8_t(buf, 5, SATCOM_status);
_mav_put_uint8_t_array(buf, 6, Servo_status, 8);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ASLUAV_STATUS_LEN);
#else
mavlink_asluav_status_t packet;
packet.Motor_rpm = Motor_rpm;
packet.LED_status = LED_status;
packet.SATCOM_status = SATCOM_status;
mav_array_memcpy(packet.Servo_status, Servo_status, sizeof(uint8_t)*8);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ASLUAV_STATUS_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_ASLUAV_STATUS;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_ASLUAV_STATUS_MIN_LEN, MAVLINK_MSG_ID_ASLUAV_STATUS_LEN, MAVLINK_MSG_ID_ASLUAV_STATUS_CRC);
}
/**
* @brief Pack a asluav_status 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
* @param LED_status Status of the position-indicator LEDs
* @param SATCOM_status Status of the IRIDIUM satellite communication system
* @param Servo_status Status vector for up to 8 servos
* @param Motor_rpm Motor RPM
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_asluav_status_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint8_t LED_status,uint8_t SATCOM_status,const uint8_t *Servo_status,float Motor_rpm)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_ASLUAV_STATUS_LEN];
_mav_put_float(buf, 0, Motor_rpm);
_mav_put_uint8_t(buf, 4, LED_status);
_mav_put_uint8_t(buf, 5, SATCOM_status);
_mav_put_uint8_t_array(buf, 6, Servo_status, 8);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ASLUAV_STATUS_LEN);
#else
mavlink_asluav_status_t packet;
packet.Motor_rpm = Motor_rpm;
packet.LED_status = LED_status;
packet.SATCOM_status = SATCOM_status;
mav_array_memcpy(packet.Servo_status, Servo_status, sizeof(uint8_t)*8);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ASLUAV_STATUS_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_ASLUAV_STATUS;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_ASLUAV_STATUS_MIN_LEN, MAVLINK_MSG_ID_ASLUAV_STATUS_LEN, MAVLINK_MSG_ID_ASLUAV_STATUS_CRC);
}
/**
* @brief Encode a asluav_status 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 asluav_status C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_asluav_status_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_asluav_status_t* asluav_status)
{
return mavlink_msg_asluav_status_pack(system_id, component_id, msg, asluav_status->LED_status, asluav_status->SATCOM_status, asluav_status->Servo_status, asluav_status->Motor_rpm);
}
/**
* @brief Encode a asluav_status 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 asluav_status C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_asluav_status_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_asluav_status_t* asluav_status)
{
return mavlink_msg_asluav_status_pack_chan(system_id, component_id, chan, msg, asluav_status->LED_status, asluav_status->SATCOM_status, asluav_status->Servo_status, asluav_status->Motor_rpm);
}
/**
* @brief Send a asluav_status message
* @param chan MAVLink channel to send the message
*
* @param LED_status Status of the position-indicator LEDs
* @param SATCOM_status Status of the IRIDIUM satellite communication system
* @param Servo_status Status vector for up to 8 servos
* @param Motor_rpm Motor RPM
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_asluav_status_send(mavlink_channel_t chan, uint8_t LED_status, uint8_t SATCOM_status, const uint8_t *Servo_status, float Motor_rpm)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_ASLUAV_STATUS_LEN];
_mav_put_float(buf, 0, Motor_rpm);
_mav_put_uint8_t(buf, 4, LED_status);
_mav_put_uint8_t(buf, 5, SATCOM_status);
_mav_put_uint8_t_array(buf, 6, Servo_status, 8);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASLUAV_STATUS, buf, MAVLINK_MSG_ID_ASLUAV_STATUS_MIN_LEN, MAVLINK_MSG_ID_ASLUAV_STATUS_LEN, MAVLINK_MSG_ID_ASLUAV_STATUS_CRC);
#else
mavlink_asluav_status_t packet;
packet.Motor_rpm = Motor_rpm;
packet.LED_status = LED_status;
packet.SATCOM_status = SATCOM_status;
mav_array_memcpy(packet.Servo_status, Servo_status, sizeof(uint8_t)*8);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASLUAV_STATUS, (const char *)&packet, MAVLINK_MSG_ID_ASLUAV_STATUS_MIN_LEN, MAVLINK_MSG_ID_ASLUAV_STATUS_LEN, MAVLINK_MSG_ID_ASLUAV_STATUS_CRC);
#endif
}
/**
* @brief Send a asluav_status message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_asluav_status_send_struct(mavlink_channel_t chan, const mavlink_asluav_status_t* asluav_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_asluav_status_send(chan, asluav_status->LED_status, asluav_status->SATCOM_status, asluav_status->Servo_status, asluav_status->Motor_rpm);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASLUAV_STATUS, (const char *)asluav_status, MAVLINK_MSG_ID_ASLUAV_STATUS_MIN_LEN, MAVLINK_MSG_ID_ASLUAV_STATUS_LEN, MAVLINK_MSG_ID_ASLUAV_STATUS_CRC);
#endif
}
#if MAVLINK_MSG_ID_ASLUAV_STATUS_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.
*/
static inline void mavlink_msg_asluav_status_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t LED_status, uint8_t SATCOM_status, const uint8_t *Servo_status, float Motor_rpm)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_float(buf, 0, Motor_rpm);
_mav_put_uint8_t(buf, 4, LED_status);
_mav_put_uint8_t(buf, 5, SATCOM_status);
_mav_put_uint8_t_array(buf, 6, Servo_status, 8);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASLUAV_STATUS, buf, MAVLINK_MSG_ID_ASLUAV_STATUS_MIN_LEN, MAVLINK_MSG_ID_ASLUAV_STATUS_LEN, MAVLINK_MSG_ID_ASLUAV_STATUS_CRC);
#else
mavlink_asluav_status_t *packet = (mavlink_asluav_status_t *)msgbuf;
packet->Motor_rpm = Motor_rpm;
packet->LED_status = LED_status;
packet->SATCOM_status = SATCOM_status;
mav_array_memcpy(packet->Servo_status, Servo_status, sizeof(uint8_t)*8);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ASLUAV_STATUS, (const char *)packet, MAVLINK_MSG_ID_ASLUAV_STATUS_MIN_LEN, MAVLINK_MSG_ID_ASLUAV_STATUS_LEN, MAVLINK_MSG_ID_ASLUAV_STATUS_CRC);
#endif
}
#endif
#endif
// MESSAGE ASLUAV_STATUS UNPACKING
/**
* @brief Get field LED_status from asluav_status message
*
* @return Status of the position-indicator LEDs
*/
static inline uint8_t mavlink_msg_asluav_status_get_LED_status(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 4);
}
/**
* @brief Get field SATCOM_status from asluav_status message
*
* @return Status of the IRIDIUM satellite communication system
*/
static inline uint8_t mavlink_msg_asluav_status_get_SATCOM_status(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 5);
}
/**
* @brief Get field Servo_status from asluav_status message
*
* @return Status vector for up to 8 servos
*/
static inline uint16_t mavlink_msg_asluav_status_get_Servo_status(const mavlink_message_t* msg, uint8_t *Servo_status)
{
return _MAV_RETURN_uint8_t_array(msg, Servo_status, 8, 6);
}
/**
* @brief Get field Motor_rpm from asluav_status message
*
* @return Motor RPM
*/
static inline float mavlink_msg_asluav_status_get_Motor_rpm(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 0);
}
/**
* @brief Decode a asluav_status message into a struct
*
* @param msg The message to decode
* @param asluav_status C-struct to decode the message contents into
*/
static inline void mavlink_msg_asluav_status_decode(const mavlink_message_t* msg, mavlink_asluav_status_t* asluav_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
asluav_status->Motor_rpm = mavlink_msg_asluav_status_get_Motor_rpm(msg);
asluav_status->LED_status = mavlink_msg_asluav_status_get_LED_status(msg);
asluav_status->SATCOM_status = mavlink_msg_asluav_status_get_SATCOM_status(msg);
mavlink_msg_asluav_status_get_Servo_status(msg, asluav_status->Servo_status);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_ASLUAV_STATUS_LEN? msg->len : MAVLINK_MSG_ID_ASLUAV_STATUS_LEN;
memset(asluav_status, 0, MAVLINK_MSG_ID_ASLUAV_STATUS_LEN);
memcpy(asluav_status, _MAV_PAYLOAD(msg), len);
#endif
}

View File

@@ -0,0 +1,563 @@
#pragma once
// MESSAGE COMMAND_INT_STAMPED PACKING
#define MAVLINK_MSG_ID_COMMAND_INT_STAMPED 78
MAVPACKED(
typedef struct __mavlink_command_int_stamped_t {
uint64_t vehicle_timestamp; /*< Microseconds elapsed since vehicle boot*/
uint32_t utc_time; /*< UTC time, seconds elapsed since 01.01.1970*/
float param1; /*< PARAM1, see MAV_CMD enum*/
float param2; /*< PARAM2, see MAV_CMD enum*/
float param3; /*< PARAM3, see MAV_CMD enum*/
float param4; /*< PARAM4, see MAV_CMD enum*/
int32_t x; /*< PARAM5 / local: x position in meters * 1e4, global: latitude in degrees * 10^7*/
int32_t y; /*< PARAM6 / local: y position in meters * 1e4, global: longitude in degrees * 10^7*/
float z; /*< PARAM7 / z position: global: altitude in meters (relative or absolute, depending on frame.*/
uint16_t command; /*< The scheduled action for the mission item, as defined by MAV_CMD enum*/
uint8_t target_system; /*< System ID*/
uint8_t target_component; /*< Component ID*/
uint8_t frame; /*< The coordinate system of the COMMAND, as defined by MAV_FRAME enum*/
uint8_t current; /*< false:0, true:1*/
uint8_t autocontinue; /*< autocontinue to next wp*/
}) mavlink_command_int_stamped_t;
#define MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN 47
#define MAVLINK_MSG_ID_COMMAND_INT_STAMPED_MIN_LEN 47
#define MAVLINK_MSG_ID_78_LEN 47
#define MAVLINK_MSG_ID_78_MIN_LEN 47
#define MAVLINK_MSG_ID_COMMAND_INT_STAMPED_CRC 119
#define MAVLINK_MSG_ID_78_CRC 119
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_COMMAND_INT_STAMPED { \
78, \
"COMMAND_INT_STAMPED", \
15, \
{ { "utc_time", NULL, MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_command_int_stamped_t, utc_time) }, \
{ "vehicle_timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_command_int_stamped_t, vehicle_timestamp) }, \
{ "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 42, offsetof(mavlink_command_int_stamped_t, target_system) }, \
{ "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 43, offsetof(mavlink_command_int_stamped_t, target_component) }, \
{ "frame", NULL, MAVLINK_TYPE_UINT8_T, 0, 44, offsetof(mavlink_command_int_stamped_t, frame) }, \
{ "command", NULL, MAVLINK_TYPE_UINT16_T, 0, 40, offsetof(mavlink_command_int_stamped_t, command) }, \
{ "current", NULL, MAVLINK_TYPE_UINT8_T, 0, 45, offsetof(mavlink_command_int_stamped_t, current) }, \
{ "autocontinue", NULL, MAVLINK_TYPE_UINT8_T, 0, 46, offsetof(mavlink_command_int_stamped_t, autocontinue) }, \
{ "param1", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_command_int_stamped_t, param1) }, \
{ "param2", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_command_int_stamped_t, param2) }, \
{ "param3", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_command_int_stamped_t, param3) }, \
{ "param4", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_command_int_stamped_t, param4) }, \
{ "x", NULL, MAVLINK_TYPE_INT32_T, 0, 28, offsetof(mavlink_command_int_stamped_t, x) }, \
{ "y", NULL, MAVLINK_TYPE_INT32_T, 0, 32, offsetof(mavlink_command_int_stamped_t, y) }, \
{ "z", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_command_int_stamped_t, z) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_COMMAND_INT_STAMPED { \
"COMMAND_INT_STAMPED", \
15, \
{ { "utc_time", NULL, MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_command_int_stamped_t, utc_time) }, \
{ "vehicle_timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_command_int_stamped_t, vehicle_timestamp) }, \
{ "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 42, offsetof(mavlink_command_int_stamped_t, target_system) }, \
{ "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 43, offsetof(mavlink_command_int_stamped_t, target_component) }, \
{ "frame", NULL, MAVLINK_TYPE_UINT8_T, 0, 44, offsetof(mavlink_command_int_stamped_t, frame) }, \
{ "command", NULL, MAVLINK_TYPE_UINT16_T, 0, 40, offsetof(mavlink_command_int_stamped_t, command) }, \
{ "current", NULL, MAVLINK_TYPE_UINT8_T, 0, 45, offsetof(mavlink_command_int_stamped_t, current) }, \
{ "autocontinue", NULL, MAVLINK_TYPE_UINT8_T, 0, 46, offsetof(mavlink_command_int_stamped_t, autocontinue) }, \
{ "param1", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_command_int_stamped_t, param1) }, \
{ "param2", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_command_int_stamped_t, param2) }, \
{ "param3", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_command_int_stamped_t, param3) }, \
{ "param4", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_command_int_stamped_t, param4) }, \
{ "x", NULL, MAVLINK_TYPE_INT32_T, 0, 28, offsetof(mavlink_command_int_stamped_t, x) }, \
{ "y", NULL, MAVLINK_TYPE_INT32_T, 0, 32, offsetof(mavlink_command_int_stamped_t, y) }, \
{ "z", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_command_int_stamped_t, z) }, \
} \
}
#endif
/**
* @brief Pack a command_int_stamped 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 utc_time UTC time, seconds elapsed since 01.01.1970
* @param vehicle_timestamp Microseconds elapsed since vehicle boot
* @param target_system System ID
* @param target_component Component ID
* @param frame The coordinate system of the COMMAND, as defined by MAV_FRAME enum
* @param command The scheduled action for the mission item, as defined by MAV_CMD enum
* @param current false:0, true:1
* @param autocontinue autocontinue to next wp
* @param param1 PARAM1, see MAV_CMD enum
* @param param2 PARAM2, see MAV_CMD enum
* @param param3 PARAM3, see MAV_CMD enum
* @param param4 PARAM4, see MAV_CMD enum
* @param x PARAM5 / local: x position in meters * 1e4, global: latitude in degrees * 10^7
* @param y PARAM6 / local: y position in meters * 1e4, global: longitude in degrees * 10^7
* @param z PARAM7 / z position: global: altitude in meters (relative or absolute, depending on frame.
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_command_int_stamped_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint32_t utc_time, uint64_t vehicle_timestamp, uint8_t target_system, uint8_t target_component, uint8_t frame, uint16_t command, uint8_t current, uint8_t autocontinue, float param1, float param2, float param3, float param4, int32_t x, int32_t y, float z)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN];
_mav_put_uint64_t(buf, 0, vehicle_timestamp);
_mav_put_uint32_t(buf, 8, utc_time);
_mav_put_float(buf, 12, param1);
_mav_put_float(buf, 16, param2);
_mav_put_float(buf, 20, param3);
_mav_put_float(buf, 24, param4);
_mav_put_int32_t(buf, 28, x);
_mav_put_int32_t(buf, 32, y);
_mav_put_float(buf, 36, z);
_mav_put_uint16_t(buf, 40, command);
_mav_put_uint8_t(buf, 42, target_system);
_mav_put_uint8_t(buf, 43, target_component);
_mav_put_uint8_t(buf, 44, frame);
_mav_put_uint8_t(buf, 45, current);
_mav_put_uint8_t(buf, 46, autocontinue);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN);
#else
mavlink_command_int_stamped_t packet;
packet.vehicle_timestamp = vehicle_timestamp;
packet.utc_time = utc_time;
packet.param1 = param1;
packet.param2 = param2;
packet.param3 = param3;
packet.param4 = param4;
packet.x = x;
packet.y = y;
packet.z = z;
packet.command = command;
packet.target_system = target_system;
packet.target_component = target_component;
packet.frame = frame;
packet.current = current;
packet.autocontinue = autocontinue;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_COMMAND_INT_STAMPED;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_MIN_LEN, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_CRC);
}
/**
* @brief Pack a command_int_stamped 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
* @param utc_time UTC time, seconds elapsed since 01.01.1970
* @param vehicle_timestamp Microseconds elapsed since vehicle boot
* @param target_system System ID
* @param target_component Component ID
* @param frame The coordinate system of the COMMAND, as defined by MAV_FRAME enum
* @param command The scheduled action for the mission item, as defined by MAV_CMD enum
* @param current false:0, true:1
* @param autocontinue autocontinue to next wp
* @param param1 PARAM1, see MAV_CMD enum
* @param param2 PARAM2, see MAV_CMD enum
* @param param3 PARAM3, see MAV_CMD enum
* @param param4 PARAM4, see MAV_CMD enum
* @param x PARAM5 / local: x position in meters * 1e4, global: latitude in degrees * 10^7
* @param y PARAM6 / local: y position in meters * 1e4, global: longitude in degrees * 10^7
* @param z PARAM7 / z position: global: altitude in meters (relative or absolute, depending on frame.
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_command_int_stamped_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint32_t utc_time,uint64_t vehicle_timestamp,uint8_t target_system,uint8_t target_component,uint8_t frame,uint16_t command,uint8_t current,uint8_t autocontinue,float param1,float param2,float param3,float param4,int32_t x,int32_t y,float z)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN];
_mav_put_uint64_t(buf, 0, vehicle_timestamp);
_mav_put_uint32_t(buf, 8, utc_time);
_mav_put_float(buf, 12, param1);
_mav_put_float(buf, 16, param2);
_mav_put_float(buf, 20, param3);
_mav_put_float(buf, 24, param4);
_mav_put_int32_t(buf, 28, x);
_mav_put_int32_t(buf, 32, y);
_mav_put_float(buf, 36, z);
_mav_put_uint16_t(buf, 40, command);
_mav_put_uint8_t(buf, 42, target_system);
_mav_put_uint8_t(buf, 43, target_component);
_mav_put_uint8_t(buf, 44, frame);
_mav_put_uint8_t(buf, 45, current);
_mav_put_uint8_t(buf, 46, autocontinue);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN);
#else
mavlink_command_int_stamped_t packet;
packet.vehicle_timestamp = vehicle_timestamp;
packet.utc_time = utc_time;
packet.param1 = param1;
packet.param2 = param2;
packet.param3 = param3;
packet.param4 = param4;
packet.x = x;
packet.y = y;
packet.z = z;
packet.command = command;
packet.target_system = target_system;
packet.target_component = target_component;
packet.frame = frame;
packet.current = current;
packet.autocontinue = autocontinue;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_COMMAND_INT_STAMPED;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_MIN_LEN, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_CRC);
}
/**
* @brief Encode a command_int_stamped 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 command_int_stamped C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_command_int_stamped_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_command_int_stamped_t* command_int_stamped)
{
return mavlink_msg_command_int_stamped_pack(system_id, component_id, msg, command_int_stamped->utc_time, command_int_stamped->vehicle_timestamp, command_int_stamped->target_system, command_int_stamped->target_component, command_int_stamped->frame, command_int_stamped->command, command_int_stamped->current, command_int_stamped->autocontinue, command_int_stamped->param1, command_int_stamped->param2, command_int_stamped->param3, command_int_stamped->param4, command_int_stamped->x, command_int_stamped->y, command_int_stamped->z);
}
/**
* @brief Encode a command_int_stamped 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 command_int_stamped C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_command_int_stamped_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_command_int_stamped_t* command_int_stamped)
{
return mavlink_msg_command_int_stamped_pack_chan(system_id, component_id, chan, msg, command_int_stamped->utc_time, command_int_stamped->vehicle_timestamp, command_int_stamped->target_system, command_int_stamped->target_component, command_int_stamped->frame, command_int_stamped->command, command_int_stamped->current, command_int_stamped->autocontinue, command_int_stamped->param1, command_int_stamped->param2, command_int_stamped->param3, command_int_stamped->param4, command_int_stamped->x, command_int_stamped->y, command_int_stamped->z);
}
/**
* @brief Send a command_int_stamped message
* @param chan MAVLink channel to send the message
*
* @param utc_time UTC time, seconds elapsed since 01.01.1970
* @param vehicle_timestamp Microseconds elapsed since vehicle boot
* @param target_system System ID
* @param target_component Component ID
* @param frame The coordinate system of the COMMAND, as defined by MAV_FRAME enum
* @param command The scheduled action for the mission item, as defined by MAV_CMD enum
* @param current false:0, true:1
* @param autocontinue autocontinue to next wp
* @param param1 PARAM1, see MAV_CMD enum
* @param param2 PARAM2, see MAV_CMD enum
* @param param3 PARAM3, see MAV_CMD enum
* @param param4 PARAM4, see MAV_CMD enum
* @param x PARAM5 / local: x position in meters * 1e4, global: latitude in degrees * 10^7
* @param y PARAM6 / local: y position in meters * 1e4, global: longitude in degrees * 10^7
* @param z PARAM7 / z position: global: altitude in meters (relative or absolute, depending on frame.
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_command_int_stamped_send(mavlink_channel_t chan, uint32_t utc_time, uint64_t vehicle_timestamp, uint8_t target_system, uint8_t target_component, uint8_t frame, uint16_t command, uint8_t current, uint8_t autocontinue, float param1, float param2, float param3, float param4, int32_t x, int32_t y, float z)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN];
_mav_put_uint64_t(buf, 0, vehicle_timestamp);
_mav_put_uint32_t(buf, 8, utc_time);
_mav_put_float(buf, 12, param1);
_mav_put_float(buf, 16, param2);
_mav_put_float(buf, 20, param3);
_mav_put_float(buf, 24, param4);
_mav_put_int32_t(buf, 28, x);
_mav_put_int32_t(buf, 32, y);
_mav_put_float(buf, 36, z);
_mav_put_uint16_t(buf, 40, command);
_mav_put_uint8_t(buf, 42, target_system);
_mav_put_uint8_t(buf, 43, target_component);
_mav_put_uint8_t(buf, 44, frame);
_mav_put_uint8_t(buf, 45, current);
_mav_put_uint8_t(buf, 46, autocontinue);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_INT_STAMPED, buf, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_MIN_LEN, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_CRC);
#else
mavlink_command_int_stamped_t packet;
packet.vehicle_timestamp = vehicle_timestamp;
packet.utc_time = utc_time;
packet.param1 = param1;
packet.param2 = param2;
packet.param3 = param3;
packet.param4 = param4;
packet.x = x;
packet.y = y;
packet.z = z;
packet.command = command;
packet.target_system = target_system;
packet.target_component = target_component;
packet.frame = frame;
packet.current = current;
packet.autocontinue = autocontinue;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_INT_STAMPED, (const char *)&packet, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_MIN_LEN, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_CRC);
#endif
}
/**
* @brief Send a command_int_stamped message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_command_int_stamped_send_struct(mavlink_channel_t chan, const mavlink_command_int_stamped_t* command_int_stamped)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_command_int_stamped_send(chan, command_int_stamped->utc_time, command_int_stamped->vehicle_timestamp, command_int_stamped->target_system, command_int_stamped->target_component, command_int_stamped->frame, command_int_stamped->command, command_int_stamped->current, command_int_stamped->autocontinue, command_int_stamped->param1, command_int_stamped->param2, command_int_stamped->param3, command_int_stamped->param4, command_int_stamped->x, command_int_stamped->y, command_int_stamped->z);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_INT_STAMPED, (const char *)command_int_stamped, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_MIN_LEN, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_CRC);
#endif
}
#if MAVLINK_MSG_ID_COMMAND_INT_STAMPED_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.
*/
static inline void mavlink_msg_command_int_stamped_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t utc_time, uint64_t vehicle_timestamp, uint8_t target_system, uint8_t target_component, uint8_t frame, uint16_t command, uint8_t current, uint8_t autocontinue, float param1, float param2, float param3, float param4, int32_t x, int32_t y, float z)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_uint64_t(buf, 0, vehicle_timestamp);
_mav_put_uint32_t(buf, 8, utc_time);
_mav_put_float(buf, 12, param1);
_mav_put_float(buf, 16, param2);
_mav_put_float(buf, 20, param3);
_mav_put_float(buf, 24, param4);
_mav_put_int32_t(buf, 28, x);
_mav_put_int32_t(buf, 32, y);
_mav_put_float(buf, 36, z);
_mav_put_uint16_t(buf, 40, command);
_mav_put_uint8_t(buf, 42, target_system);
_mav_put_uint8_t(buf, 43, target_component);
_mav_put_uint8_t(buf, 44, frame);
_mav_put_uint8_t(buf, 45, current);
_mav_put_uint8_t(buf, 46, autocontinue);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_INT_STAMPED, buf, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_MIN_LEN, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_CRC);
#else
mavlink_command_int_stamped_t *packet = (mavlink_command_int_stamped_t *)msgbuf;
packet->vehicle_timestamp = vehicle_timestamp;
packet->utc_time = utc_time;
packet->param1 = param1;
packet->param2 = param2;
packet->param3 = param3;
packet->param4 = param4;
packet->x = x;
packet->y = y;
packet->z = z;
packet->command = command;
packet->target_system = target_system;
packet->target_component = target_component;
packet->frame = frame;
packet->current = current;
packet->autocontinue = autocontinue;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_INT_STAMPED, (const char *)packet, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_MIN_LEN, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_CRC);
#endif
}
#endif
#endif
// MESSAGE COMMAND_INT_STAMPED UNPACKING
/**
* @brief Get field utc_time from command_int_stamped message
*
* @return UTC time, seconds elapsed since 01.01.1970
*/
static inline uint32_t mavlink_msg_command_int_stamped_get_utc_time(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 8);
}
/**
* @brief Get field vehicle_timestamp from command_int_stamped message
*
* @return Microseconds elapsed since vehicle boot
*/
static inline uint64_t mavlink_msg_command_int_stamped_get_vehicle_timestamp(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint64_t(msg, 0);
}
/**
* @brief Get field target_system from command_int_stamped message
*
* @return System ID
*/
static inline uint8_t mavlink_msg_command_int_stamped_get_target_system(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 42);
}
/**
* @brief Get field target_component from command_int_stamped message
*
* @return Component ID
*/
static inline uint8_t mavlink_msg_command_int_stamped_get_target_component(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 43);
}
/**
* @brief Get field frame from command_int_stamped message
*
* @return The coordinate system of the COMMAND, as defined by MAV_FRAME enum
*/
static inline uint8_t mavlink_msg_command_int_stamped_get_frame(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 44);
}
/**
* @brief Get field command from command_int_stamped message
*
* @return The scheduled action for the mission item, as defined by MAV_CMD enum
*/
static inline uint16_t mavlink_msg_command_int_stamped_get_command(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 40);
}
/**
* @brief Get field current from command_int_stamped message
*
* @return false:0, true:1
*/
static inline uint8_t mavlink_msg_command_int_stamped_get_current(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 45);
}
/**
* @brief Get field autocontinue from command_int_stamped message
*
* @return autocontinue to next wp
*/
static inline uint8_t mavlink_msg_command_int_stamped_get_autocontinue(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 46);
}
/**
* @brief Get field param1 from command_int_stamped message
*
* @return PARAM1, see MAV_CMD enum
*/
static inline float mavlink_msg_command_int_stamped_get_param1(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 12);
}
/**
* @brief Get field param2 from command_int_stamped message
*
* @return PARAM2, see MAV_CMD enum
*/
static inline float mavlink_msg_command_int_stamped_get_param2(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 16);
}
/**
* @brief Get field param3 from command_int_stamped message
*
* @return PARAM3, see MAV_CMD enum
*/
static inline float mavlink_msg_command_int_stamped_get_param3(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 20);
}
/**
* @brief Get field param4 from command_int_stamped message
*
* @return PARAM4, see MAV_CMD enum
*/
static inline float mavlink_msg_command_int_stamped_get_param4(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 24);
}
/**
* @brief Get field x from command_int_stamped message
*
* @return PARAM5 / local: x position in meters * 1e4, global: latitude in degrees * 10^7
*/
static inline int32_t mavlink_msg_command_int_stamped_get_x(const mavlink_message_t* msg)
{
return _MAV_RETURN_int32_t(msg, 28);
}
/**
* @brief Get field y from command_int_stamped message
*
* @return PARAM6 / local: y position in meters * 1e4, global: longitude in degrees * 10^7
*/
static inline int32_t mavlink_msg_command_int_stamped_get_y(const mavlink_message_t* msg)
{
return _MAV_RETURN_int32_t(msg, 32);
}
/**
* @brief Get field z from command_int_stamped message
*
* @return PARAM7 / z position: global: altitude in meters (relative or absolute, depending on frame.
*/
static inline float mavlink_msg_command_int_stamped_get_z(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 36);
}
/**
* @brief Decode a command_int_stamped message into a struct
*
* @param msg The message to decode
* @param command_int_stamped C-struct to decode the message contents into
*/
static inline void mavlink_msg_command_int_stamped_decode(const mavlink_message_t* msg, mavlink_command_int_stamped_t* command_int_stamped)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
command_int_stamped->vehicle_timestamp = mavlink_msg_command_int_stamped_get_vehicle_timestamp(msg);
command_int_stamped->utc_time = mavlink_msg_command_int_stamped_get_utc_time(msg);
command_int_stamped->param1 = mavlink_msg_command_int_stamped_get_param1(msg);
command_int_stamped->param2 = mavlink_msg_command_int_stamped_get_param2(msg);
command_int_stamped->param3 = mavlink_msg_command_int_stamped_get_param3(msg);
command_int_stamped->param4 = mavlink_msg_command_int_stamped_get_param4(msg);
command_int_stamped->x = mavlink_msg_command_int_stamped_get_x(msg);
command_int_stamped->y = mavlink_msg_command_int_stamped_get_y(msg);
command_int_stamped->z = mavlink_msg_command_int_stamped_get_z(msg);
command_int_stamped->command = mavlink_msg_command_int_stamped_get_command(msg);
command_int_stamped->target_system = mavlink_msg_command_int_stamped_get_target_system(msg);
command_int_stamped->target_component = mavlink_msg_command_int_stamped_get_target_component(msg);
command_int_stamped->frame = mavlink_msg_command_int_stamped_get_frame(msg);
command_int_stamped->current = mavlink_msg_command_int_stamped_get_current(msg);
command_int_stamped->autocontinue = mavlink_msg_command_int_stamped_get_autocontinue(msg);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN? msg->len : MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN;
memset(command_int_stamped, 0, MAVLINK_MSG_ID_COMMAND_INT_STAMPED_LEN);
memcpy(command_int_stamped, _MAV_PAYLOAD(msg), len);
#endif
}

View File

@@ -0,0 +1,513 @@
#pragma once
// MESSAGE COMMAND_LONG_STAMPED PACKING
#define MAVLINK_MSG_ID_COMMAND_LONG_STAMPED 79
MAVPACKED(
typedef struct __mavlink_command_long_stamped_t {
uint64_t vehicle_timestamp; /*< Microseconds elapsed since vehicle boot*/
uint32_t utc_time; /*< UTC time, seconds elapsed since 01.01.1970*/
float param1; /*< Parameter 1, as defined by MAV_CMD enum.*/
float param2; /*< Parameter 2, as defined by MAV_CMD enum.*/
float param3; /*< Parameter 3, as defined by MAV_CMD enum.*/
float param4; /*< Parameter 4, as defined by MAV_CMD enum.*/
float param5; /*< Parameter 5, as defined by MAV_CMD enum.*/
float param6; /*< Parameter 6, as defined by MAV_CMD enum.*/
float param7; /*< Parameter 7, as defined by MAV_CMD enum.*/
uint16_t command; /*< Command ID, as defined by MAV_CMD enum.*/
uint8_t target_system; /*< System which should execute the command*/
uint8_t target_component; /*< Component which should execute the command, 0 for all components*/
uint8_t confirmation; /*< 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)*/
}) mavlink_command_long_stamped_t;
#define MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN 45
#define MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_MIN_LEN 45
#define MAVLINK_MSG_ID_79_LEN 45
#define MAVLINK_MSG_ID_79_MIN_LEN 45
#define MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_CRC 102
#define MAVLINK_MSG_ID_79_CRC 102
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_COMMAND_LONG_STAMPED { \
79, \
"COMMAND_LONG_STAMPED", \
13, \
{ { "utc_time", NULL, MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_command_long_stamped_t, utc_time) }, \
{ "vehicle_timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_command_long_stamped_t, vehicle_timestamp) }, \
{ "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 42, offsetof(mavlink_command_long_stamped_t, target_system) }, \
{ "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 43, offsetof(mavlink_command_long_stamped_t, target_component) }, \
{ "command", NULL, MAVLINK_TYPE_UINT16_T, 0, 40, offsetof(mavlink_command_long_stamped_t, command) }, \
{ "confirmation", NULL, MAVLINK_TYPE_UINT8_T, 0, 44, offsetof(mavlink_command_long_stamped_t, confirmation) }, \
{ "param1", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_command_long_stamped_t, param1) }, \
{ "param2", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_command_long_stamped_t, param2) }, \
{ "param3", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_command_long_stamped_t, param3) }, \
{ "param4", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_command_long_stamped_t, param4) }, \
{ "param5", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_command_long_stamped_t, param5) }, \
{ "param6", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_command_long_stamped_t, param6) }, \
{ "param7", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_command_long_stamped_t, param7) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_COMMAND_LONG_STAMPED { \
"COMMAND_LONG_STAMPED", \
13, \
{ { "utc_time", NULL, MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_command_long_stamped_t, utc_time) }, \
{ "vehicle_timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_command_long_stamped_t, vehicle_timestamp) }, \
{ "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 42, offsetof(mavlink_command_long_stamped_t, target_system) }, \
{ "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 43, offsetof(mavlink_command_long_stamped_t, target_component) }, \
{ "command", NULL, MAVLINK_TYPE_UINT16_T, 0, 40, offsetof(mavlink_command_long_stamped_t, command) }, \
{ "confirmation", NULL, MAVLINK_TYPE_UINT8_T, 0, 44, offsetof(mavlink_command_long_stamped_t, confirmation) }, \
{ "param1", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_command_long_stamped_t, param1) }, \
{ "param2", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_command_long_stamped_t, param2) }, \
{ "param3", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_command_long_stamped_t, param3) }, \
{ "param4", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_command_long_stamped_t, param4) }, \
{ "param5", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_command_long_stamped_t, param5) }, \
{ "param6", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_command_long_stamped_t, param6) }, \
{ "param7", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_command_long_stamped_t, param7) }, \
} \
}
#endif
/**
* @brief Pack a command_long_stamped 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 utc_time UTC time, seconds elapsed since 01.01.1970
* @param vehicle_timestamp Microseconds elapsed since vehicle boot
* @param target_system System which should execute the command
* @param target_component Component which should execute the command, 0 for all components
* @param command Command ID, as defined by MAV_CMD enum.
* @param confirmation 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)
* @param param1 Parameter 1, as defined by MAV_CMD enum.
* @param param2 Parameter 2, as defined by MAV_CMD enum.
* @param param3 Parameter 3, as defined by MAV_CMD enum.
* @param param4 Parameter 4, as defined by MAV_CMD enum.
* @param param5 Parameter 5, as defined by MAV_CMD enum.
* @param param6 Parameter 6, as defined by MAV_CMD enum.
* @param param7 Parameter 7, as defined by MAV_CMD enum.
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_command_long_stamped_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint32_t utc_time, uint64_t vehicle_timestamp, uint8_t target_system, uint8_t target_component, uint16_t command, uint8_t confirmation, float param1, float param2, float param3, float param4, float param5, float param6, float param7)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN];
_mav_put_uint64_t(buf, 0, vehicle_timestamp);
_mav_put_uint32_t(buf, 8, utc_time);
_mav_put_float(buf, 12, param1);
_mav_put_float(buf, 16, param2);
_mav_put_float(buf, 20, param3);
_mav_put_float(buf, 24, param4);
_mav_put_float(buf, 28, param5);
_mav_put_float(buf, 32, param6);
_mav_put_float(buf, 36, param7);
_mav_put_uint16_t(buf, 40, command);
_mav_put_uint8_t(buf, 42, target_system);
_mav_put_uint8_t(buf, 43, target_component);
_mav_put_uint8_t(buf, 44, confirmation);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN);
#else
mavlink_command_long_stamped_t packet;
packet.vehicle_timestamp = vehicle_timestamp;
packet.utc_time = utc_time;
packet.param1 = param1;
packet.param2 = param2;
packet.param3 = param3;
packet.param4 = param4;
packet.param5 = param5;
packet.param6 = param6;
packet.param7 = param7;
packet.command = command;
packet.target_system = target_system;
packet.target_component = target_component;
packet.confirmation = confirmation;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_COMMAND_LONG_STAMPED;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_MIN_LEN, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_CRC);
}
/**
* @brief Pack a command_long_stamped 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
* @param utc_time UTC time, seconds elapsed since 01.01.1970
* @param vehicle_timestamp Microseconds elapsed since vehicle boot
* @param target_system System which should execute the command
* @param target_component Component which should execute the command, 0 for all components
* @param command Command ID, as defined by MAV_CMD enum.
* @param confirmation 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)
* @param param1 Parameter 1, as defined by MAV_CMD enum.
* @param param2 Parameter 2, as defined by MAV_CMD enum.
* @param param3 Parameter 3, as defined by MAV_CMD enum.
* @param param4 Parameter 4, as defined by MAV_CMD enum.
* @param param5 Parameter 5, as defined by MAV_CMD enum.
* @param param6 Parameter 6, as defined by MAV_CMD enum.
* @param param7 Parameter 7, as defined by MAV_CMD enum.
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_command_long_stamped_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint32_t utc_time,uint64_t vehicle_timestamp,uint8_t target_system,uint8_t target_component,uint16_t command,uint8_t confirmation,float param1,float param2,float param3,float param4,float param5,float param6,float param7)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN];
_mav_put_uint64_t(buf, 0, vehicle_timestamp);
_mav_put_uint32_t(buf, 8, utc_time);
_mav_put_float(buf, 12, param1);
_mav_put_float(buf, 16, param2);
_mav_put_float(buf, 20, param3);
_mav_put_float(buf, 24, param4);
_mav_put_float(buf, 28, param5);
_mav_put_float(buf, 32, param6);
_mav_put_float(buf, 36, param7);
_mav_put_uint16_t(buf, 40, command);
_mav_put_uint8_t(buf, 42, target_system);
_mav_put_uint8_t(buf, 43, target_component);
_mav_put_uint8_t(buf, 44, confirmation);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN);
#else
mavlink_command_long_stamped_t packet;
packet.vehicle_timestamp = vehicle_timestamp;
packet.utc_time = utc_time;
packet.param1 = param1;
packet.param2 = param2;
packet.param3 = param3;
packet.param4 = param4;
packet.param5 = param5;
packet.param6 = param6;
packet.param7 = param7;
packet.command = command;
packet.target_system = target_system;
packet.target_component = target_component;
packet.confirmation = confirmation;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_COMMAND_LONG_STAMPED;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_MIN_LEN, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_CRC);
}
/**
* @brief Encode a command_long_stamped 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 command_long_stamped C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_command_long_stamped_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_command_long_stamped_t* command_long_stamped)
{
return mavlink_msg_command_long_stamped_pack(system_id, component_id, msg, command_long_stamped->utc_time, command_long_stamped->vehicle_timestamp, command_long_stamped->target_system, command_long_stamped->target_component, command_long_stamped->command, command_long_stamped->confirmation, command_long_stamped->param1, command_long_stamped->param2, command_long_stamped->param3, command_long_stamped->param4, command_long_stamped->param5, command_long_stamped->param6, command_long_stamped->param7);
}
/**
* @brief Encode a command_long_stamped 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 command_long_stamped C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_command_long_stamped_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_command_long_stamped_t* command_long_stamped)
{
return mavlink_msg_command_long_stamped_pack_chan(system_id, component_id, chan, msg, command_long_stamped->utc_time, command_long_stamped->vehicle_timestamp, command_long_stamped->target_system, command_long_stamped->target_component, command_long_stamped->command, command_long_stamped->confirmation, command_long_stamped->param1, command_long_stamped->param2, command_long_stamped->param3, command_long_stamped->param4, command_long_stamped->param5, command_long_stamped->param6, command_long_stamped->param7);
}
/**
* @brief Send a command_long_stamped message
* @param chan MAVLink channel to send the message
*
* @param utc_time UTC time, seconds elapsed since 01.01.1970
* @param vehicle_timestamp Microseconds elapsed since vehicle boot
* @param target_system System which should execute the command
* @param target_component Component which should execute the command, 0 for all components
* @param command Command ID, as defined by MAV_CMD enum.
* @param confirmation 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)
* @param param1 Parameter 1, as defined by MAV_CMD enum.
* @param param2 Parameter 2, as defined by MAV_CMD enum.
* @param param3 Parameter 3, as defined by MAV_CMD enum.
* @param param4 Parameter 4, as defined by MAV_CMD enum.
* @param param5 Parameter 5, as defined by MAV_CMD enum.
* @param param6 Parameter 6, as defined by MAV_CMD enum.
* @param param7 Parameter 7, as defined by MAV_CMD enum.
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_command_long_stamped_send(mavlink_channel_t chan, uint32_t utc_time, uint64_t vehicle_timestamp, uint8_t target_system, uint8_t target_component, uint16_t command, uint8_t confirmation, float param1, float param2, float param3, float param4, float param5, float param6, float param7)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN];
_mav_put_uint64_t(buf, 0, vehicle_timestamp);
_mav_put_uint32_t(buf, 8, utc_time);
_mav_put_float(buf, 12, param1);
_mav_put_float(buf, 16, param2);
_mav_put_float(buf, 20, param3);
_mav_put_float(buf, 24, param4);
_mav_put_float(buf, 28, param5);
_mav_put_float(buf, 32, param6);
_mav_put_float(buf, 36, param7);
_mav_put_uint16_t(buf, 40, command);
_mav_put_uint8_t(buf, 42, target_system);
_mav_put_uint8_t(buf, 43, target_component);
_mav_put_uint8_t(buf, 44, confirmation);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED, buf, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_MIN_LEN, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_CRC);
#else
mavlink_command_long_stamped_t packet;
packet.vehicle_timestamp = vehicle_timestamp;
packet.utc_time = utc_time;
packet.param1 = param1;
packet.param2 = param2;
packet.param3 = param3;
packet.param4 = param4;
packet.param5 = param5;
packet.param6 = param6;
packet.param7 = param7;
packet.command = command;
packet.target_system = target_system;
packet.target_component = target_component;
packet.confirmation = confirmation;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED, (const char *)&packet, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_MIN_LEN, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_CRC);
#endif
}
/**
* @brief Send a command_long_stamped message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_command_long_stamped_send_struct(mavlink_channel_t chan, const mavlink_command_long_stamped_t* command_long_stamped)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_command_long_stamped_send(chan, command_long_stamped->utc_time, command_long_stamped->vehicle_timestamp, command_long_stamped->target_system, command_long_stamped->target_component, command_long_stamped->command, command_long_stamped->confirmation, command_long_stamped->param1, command_long_stamped->param2, command_long_stamped->param3, command_long_stamped->param4, command_long_stamped->param5, command_long_stamped->param6, command_long_stamped->param7);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED, (const char *)command_long_stamped, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_MIN_LEN, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_CRC);
#endif
}
#if MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_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.
*/
static inline void mavlink_msg_command_long_stamped_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t utc_time, uint64_t vehicle_timestamp, uint8_t target_system, uint8_t target_component, uint16_t command, uint8_t confirmation, float param1, float param2, float param3, float param4, float param5, float param6, float param7)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_uint64_t(buf, 0, vehicle_timestamp);
_mav_put_uint32_t(buf, 8, utc_time);
_mav_put_float(buf, 12, param1);
_mav_put_float(buf, 16, param2);
_mav_put_float(buf, 20, param3);
_mav_put_float(buf, 24, param4);
_mav_put_float(buf, 28, param5);
_mav_put_float(buf, 32, param6);
_mav_put_float(buf, 36, param7);
_mav_put_uint16_t(buf, 40, command);
_mav_put_uint8_t(buf, 42, target_system);
_mav_put_uint8_t(buf, 43, target_component);
_mav_put_uint8_t(buf, 44, confirmation);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED, buf, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_MIN_LEN, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_CRC);
#else
mavlink_command_long_stamped_t *packet = (mavlink_command_long_stamped_t *)msgbuf;
packet->vehicle_timestamp = vehicle_timestamp;
packet->utc_time = utc_time;
packet->param1 = param1;
packet->param2 = param2;
packet->param3 = param3;
packet->param4 = param4;
packet->param5 = param5;
packet->param6 = param6;
packet->param7 = param7;
packet->command = command;
packet->target_system = target_system;
packet->target_component = target_component;
packet->confirmation = confirmation;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED, (const char *)packet, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_MIN_LEN, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_CRC);
#endif
}
#endif
#endif
// MESSAGE COMMAND_LONG_STAMPED UNPACKING
/**
* @brief Get field utc_time from command_long_stamped message
*
* @return UTC time, seconds elapsed since 01.01.1970
*/
static inline uint32_t mavlink_msg_command_long_stamped_get_utc_time(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 8);
}
/**
* @brief Get field vehicle_timestamp from command_long_stamped message
*
* @return Microseconds elapsed since vehicle boot
*/
static inline uint64_t mavlink_msg_command_long_stamped_get_vehicle_timestamp(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint64_t(msg, 0);
}
/**
* @brief Get field target_system from command_long_stamped message
*
* @return System which should execute the command
*/
static inline uint8_t mavlink_msg_command_long_stamped_get_target_system(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 42);
}
/**
* @brief Get field target_component from command_long_stamped message
*
* @return Component which should execute the command, 0 for all components
*/
static inline uint8_t mavlink_msg_command_long_stamped_get_target_component(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 43);
}
/**
* @brief Get field command from command_long_stamped message
*
* @return Command ID, as defined by MAV_CMD enum.
*/
static inline uint16_t mavlink_msg_command_long_stamped_get_command(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 40);
}
/**
* @brief Get field confirmation from command_long_stamped message
*
* @return 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)
*/
static inline uint8_t mavlink_msg_command_long_stamped_get_confirmation(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 44);
}
/**
* @brief Get field param1 from command_long_stamped message
*
* @return Parameter 1, as defined by MAV_CMD enum.
*/
static inline float mavlink_msg_command_long_stamped_get_param1(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 12);
}
/**
* @brief Get field param2 from command_long_stamped message
*
* @return Parameter 2, as defined by MAV_CMD enum.
*/
static inline float mavlink_msg_command_long_stamped_get_param2(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 16);
}
/**
* @brief Get field param3 from command_long_stamped message
*
* @return Parameter 3, as defined by MAV_CMD enum.
*/
static inline float mavlink_msg_command_long_stamped_get_param3(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 20);
}
/**
* @brief Get field param4 from command_long_stamped message
*
* @return Parameter 4, as defined by MAV_CMD enum.
*/
static inline float mavlink_msg_command_long_stamped_get_param4(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 24);
}
/**
* @brief Get field param5 from command_long_stamped message
*
* @return Parameter 5, as defined by MAV_CMD enum.
*/
static inline float mavlink_msg_command_long_stamped_get_param5(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 28);
}
/**
* @brief Get field param6 from command_long_stamped message
*
* @return Parameter 6, as defined by MAV_CMD enum.
*/
static inline float mavlink_msg_command_long_stamped_get_param6(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 32);
}
/**
* @brief Get field param7 from command_long_stamped message
*
* @return Parameter 7, as defined by MAV_CMD enum.
*/
static inline float mavlink_msg_command_long_stamped_get_param7(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 36);
}
/**
* @brief Decode a command_long_stamped message into a struct
*
* @param msg The message to decode
* @param command_long_stamped C-struct to decode the message contents into
*/
static inline void mavlink_msg_command_long_stamped_decode(const mavlink_message_t* msg, mavlink_command_long_stamped_t* command_long_stamped)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
command_long_stamped->vehicle_timestamp = mavlink_msg_command_long_stamped_get_vehicle_timestamp(msg);
command_long_stamped->utc_time = mavlink_msg_command_long_stamped_get_utc_time(msg);
command_long_stamped->param1 = mavlink_msg_command_long_stamped_get_param1(msg);
command_long_stamped->param2 = mavlink_msg_command_long_stamped_get_param2(msg);
command_long_stamped->param3 = mavlink_msg_command_long_stamped_get_param3(msg);
command_long_stamped->param4 = mavlink_msg_command_long_stamped_get_param4(msg);
command_long_stamped->param5 = mavlink_msg_command_long_stamped_get_param5(msg);
command_long_stamped->param6 = mavlink_msg_command_long_stamped_get_param6(msg);
command_long_stamped->param7 = mavlink_msg_command_long_stamped_get_param7(msg);
command_long_stamped->command = mavlink_msg_command_long_stamped_get_command(msg);
command_long_stamped->target_system = mavlink_msg_command_long_stamped_get_target_system(msg);
command_long_stamped->target_component = mavlink_msg_command_long_stamped_get_target_component(msg);
command_long_stamped->confirmation = mavlink_msg_command_long_stamped_get_confirmation(msg);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN? msg->len : MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN;
memset(command_long_stamped, 0, MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_LEN);
memcpy(command_long_stamped, _MAV_PAYLOAD(msg), len);
#endif
}

View File

@@ -0,0 +1,363 @@
#pragma once
// MESSAGE EKF_EXT PACKING
#define MAVLINK_MSG_ID_EKF_EXT 206
MAVPACKED(
typedef struct __mavlink_ekf_ext_t {
uint64_t timestamp; /*< [us] Time since system start*/
float Windspeed; /*< [m/s] Magnitude of wind velocity (in lateral inertial plane)*/
float WindDir; /*< [rad] Wind heading angle from North*/
float WindZ; /*< [m/s] Z (Down) component of inertial wind velocity*/
float Airspeed; /*< [m/s] Magnitude of air velocity*/
float beta; /*< [rad] Sideslip angle*/
float alpha; /*< [rad] Angle of attack*/
}) mavlink_ekf_ext_t;
#define MAVLINK_MSG_ID_EKF_EXT_LEN 32
#define MAVLINK_MSG_ID_EKF_EXT_MIN_LEN 32
#define MAVLINK_MSG_ID_206_LEN 32
#define MAVLINK_MSG_ID_206_MIN_LEN 32
#define MAVLINK_MSG_ID_EKF_EXT_CRC 64
#define MAVLINK_MSG_ID_206_CRC 64
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_EKF_EXT { \
206, \
"EKF_EXT", \
7, \
{ { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_ekf_ext_t, timestamp) }, \
{ "Windspeed", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_ekf_ext_t, Windspeed) }, \
{ "WindDir", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_ekf_ext_t, WindDir) }, \
{ "WindZ", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_ekf_ext_t, WindZ) }, \
{ "Airspeed", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_ekf_ext_t, Airspeed) }, \
{ "beta", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_ekf_ext_t, beta) }, \
{ "alpha", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_ekf_ext_t, alpha) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_EKF_EXT { \
"EKF_EXT", \
7, \
{ { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_ekf_ext_t, timestamp) }, \
{ "Windspeed", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_ekf_ext_t, Windspeed) }, \
{ "WindDir", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_ekf_ext_t, WindDir) }, \
{ "WindZ", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_ekf_ext_t, WindZ) }, \
{ "Airspeed", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_ekf_ext_t, Airspeed) }, \
{ "beta", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_ekf_ext_t, beta) }, \
{ "alpha", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_ekf_ext_t, alpha) }, \
} \
}
#endif
/**
* @brief Pack a ekf_ext 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 timestamp [us] Time since system start
* @param Windspeed [m/s] Magnitude of wind velocity (in lateral inertial plane)
* @param WindDir [rad] Wind heading angle from North
* @param WindZ [m/s] Z (Down) component of inertial wind velocity
* @param Airspeed [m/s] Magnitude of air velocity
* @param beta [rad] Sideslip angle
* @param alpha [rad] Angle of attack
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_ekf_ext_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint64_t timestamp, float Windspeed, float WindDir, float WindZ, float Airspeed, float beta, float alpha)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_EKF_EXT_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_float(buf, 8, Windspeed);
_mav_put_float(buf, 12, WindDir);
_mav_put_float(buf, 16, WindZ);
_mav_put_float(buf, 20, Airspeed);
_mav_put_float(buf, 24, beta);
_mav_put_float(buf, 28, alpha);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_EKF_EXT_LEN);
#else
mavlink_ekf_ext_t packet;
packet.timestamp = timestamp;
packet.Windspeed = Windspeed;
packet.WindDir = WindDir;
packet.WindZ = WindZ;
packet.Airspeed = Airspeed;
packet.beta = beta;
packet.alpha = alpha;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_EKF_EXT_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_EKF_EXT;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_EKF_EXT_MIN_LEN, MAVLINK_MSG_ID_EKF_EXT_LEN, MAVLINK_MSG_ID_EKF_EXT_CRC);
}
/**
* @brief Pack a ekf_ext 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
* @param timestamp [us] Time since system start
* @param Windspeed [m/s] Magnitude of wind velocity (in lateral inertial plane)
* @param WindDir [rad] Wind heading angle from North
* @param WindZ [m/s] Z (Down) component of inertial wind velocity
* @param Airspeed [m/s] Magnitude of air velocity
* @param beta [rad] Sideslip angle
* @param alpha [rad] Angle of attack
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_ekf_ext_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint64_t timestamp,float Windspeed,float WindDir,float WindZ,float Airspeed,float beta,float alpha)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_EKF_EXT_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_float(buf, 8, Windspeed);
_mav_put_float(buf, 12, WindDir);
_mav_put_float(buf, 16, WindZ);
_mav_put_float(buf, 20, Airspeed);
_mav_put_float(buf, 24, beta);
_mav_put_float(buf, 28, alpha);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_EKF_EXT_LEN);
#else
mavlink_ekf_ext_t packet;
packet.timestamp = timestamp;
packet.Windspeed = Windspeed;
packet.WindDir = WindDir;
packet.WindZ = WindZ;
packet.Airspeed = Airspeed;
packet.beta = beta;
packet.alpha = alpha;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_EKF_EXT_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_EKF_EXT;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_EKF_EXT_MIN_LEN, MAVLINK_MSG_ID_EKF_EXT_LEN, MAVLINK_MSG_ID_EKF_EXT_CRC);
}
/**
* @brief Encode a ekf_ext 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 ekf_ext C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_ekf_ext_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_ekf_ext_t* ekf_ext)
{
return mavlink_msg_ekf_ext_pack(system_id, component_id, msg, ekf_ext->timestamp, ekf_ext->Windspeed, ekf_ext->WindDir, ekf_ext->WindZ, ekf_ext->Airspeed, ekf_ext->beta, ekf_ext->alpha);
}
/**
* @brief Encode a ekf_ext 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 ekf_ext C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_ekf_ext_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_ekf_ext_t* ekf_ext)
{
return mavlink_msg_ekf_ext_pack_chan(system_id, component_id, chan, msg, ekf_ext->timestamp, ekf_ext->Windspeed, ekf_ext->WindDir, ekf_ext->WindZ, ekf_ext->Airspeed, ekf_ext->beta, ekf_ext->alpha);
}
/**
* @brief Send a ekf_ext message
* @param chan MAVLink channel to send the message
*
* @param timestamp [us] Time since system start
* @param Windspeed [m/s] Magnitude of wind velocity (in lateral inertial plane)
* @param WindDir [rad] Wind heading angle from North
* @param WindZ [m/s] Z (Down) component of inertial wind velocity
* @param Airspeed [m/s] Magnitude of air velocity
* @param beta [rad] Sideslip angle
* @param alpha [rad] Angle of attack
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_ekf_ext_send(mavlink_channel_t chan, uint64_t timestamp, float Windspeed, float WindDir, float WindZ, float Airspeed, float beta, float alpha)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_EKF_EXT_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_float(buf, 8, Windspeed);
_mav_put_float(buf, 12, WindDir);
_mav_put_float(buf, 16, WindZ);
_mav_put_float(buf, 20, Airspeed);
_mav_put_float(buf, 24, beta);
_mav_put_float(buf, 28, alpha);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_EKF_EXT, buf, MAVLINK_MSG_ID_EKF_EXT_MIN_LEN, MAVLINK_MSG_ID_EKF_EXT_LEN, MAVLINK_MSG_ID_EKF_EXT_CRC);
#else
mavlink_ekf_ext_t packet;
packet.timestamp = timestamp;
packet.Windspeed = Windspeed;
packet.WindDir = WindDir;
packet.WindZ = WindZ;
packet.Airspeed = Airspeed;
packet.beta = beta;
packet.alpha = alpha;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_EKF_EXT, (const char *)&packet, MAVLINK_MSG_ID_EKF_EXT_MIN_LEN, MAVLINK_MSG_ID_EKF_EXT_LEN, MAVLINK_MSG_ID_EKF_EXT_CRC);
#endif
}
/**
* @brief Send a ekf_ext message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_ekf_ext_send_struct(mavlink_channel_t chan, const mavlink_ekf_ext_t* ekf_ext)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_ekf_ext_send(chan, ekf_ext->timestamp, ekf_ext->Windspeed, ekf_ext->WindDir, ekf_ext->WindZ, ekf_ext->Airspeed, ekf_ext->beta, ekf_ext->alpha);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_EKF_EXT, (const char *)ekf_ext, MAVLINK_MSG_ID_EKF_EXT_MIN_LEN, MAVLINK_MSG_ID_EKF_EXT_LEN, MAVLINK_MSG_ID_EKF_EXT_CRC);
#endif
}
#if MAVLINK_MSG_ID_EKF_EXT_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.
*/
static inline void mavlink_msg_ekf_ext_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, float Windspeed, float WindDir, float WindZ, float Airspeed, float beta, float alpha)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_float(buf, 8, Windspeed);
_mav_put_float(buf, 12, WindDir);
_mav_put_float(buf, 16, WindZ);
_mav_put_float(buf, 20, Airspeed);
_mav_put_float(buf, 24, beta);
_mav_put_float(buf, 28, alpha);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_EKF_EXT, buf, MAVLINK_MSG_ID_EKF_EXT_MIN_LEN, MAVLINK_MSG_ID_EKF_EXT_LEN, MAVLINK_MSG_ID_EKF_EXT_CRC);
#else
mavlink_ekf_ext_t *packet = (mavlink_ekf_ext_t *)msgbuf;
packet->timestamp = timestamp;
packet->Windspeed = Windspeed;
packet->WindDir = WindDir;
packet->WindZ = WindZ;
packet->Airspeed = Airspeed;
packet->beta = beta;
packet->alpha = alpha;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_EKF_EXT, (const char *)packet, MAVLINK_MSG_ID_EKF_EXT_MIN_LEN, MAVLINK_MSG_ID_EKF_EXT_LEN, MAVLINK_MSG_ID_EKF_EXT_CRC);
#endif
}
#endif
#endif
// MESSAGE EKF_EXT UNPACKING
/**
* @brief Get field timestamp from ekf_ext message
*
* @return [us] Time since system start
*/
static inline uint64_t mavlink_msg_ekf_ext_get_timestamp(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint64_t(msg, 0);
}
/**
* @brief Get field Windspeed from ekf_ext message
*
* @return [m/s] Magnitude of wind velocity (in lateral inertial plane)
*/
static inline float mavlink_msg_ekf_ext_get_Windspeed(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 8);
}
/**
* @brief Get field WindDir from ekf_ext message
*
* @return [rad] Wind heading angle from North
*/
static inline float mavlink_msg_ekf_ext_get_WindDir(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 12);
}
/**
* @brief Get field WindZ from ekf_ext message
*
* @return [m/s] Z (Down) component of inertial wind velocity
*/
static inline float mavlink_msg_ekf_ext_get_WindZ(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 16);
}
/**
* @brief Get field Airspeed from ekf_ext message
*
* @return [m/s] Magnitude of air velocity
*/
static inline float mavlink_msg_ekf_ext_get_Airspeed(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 20);
}
/**
* @brief Get field beta from ekf_ext message
*
* @return [rad] Sideslip angle
*/
static inline float mavlink_msg_ekf_ext_get_beta(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 24);
}
/**
* @brief Get field alpha from ekf_ext message
*
* @return [rad] Angle of attack
*/
static inline float mavlink_msg_ekf_ext_get_alpha(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 28);
}
/**
* @brief Decode a ekf_ext message into a struct
*
* @param msg The message to decode
* @param ekf_ext C-struct to decode the message contents into
*/
static inline void mavlink_msg_ekf_ext_decode(const mavlink_message_t* msg, mavlink_ekf_ext_t* ekf_ext)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
ekf_ext->timestamp = mavlink_msg_ekf_ext_get_timestamp(msg);
ekf_ext->Windspeed = mavlink_msg_ekf_ext_get_Windspeed(msg);
ekf_ext->WindDir = mavlink_msg_ekf_ext_get_WindDir(msg);
ekf_ext->WindZ = mavlink_msg_ekf_ext_get_WindZ(msg);
ekf_ext->Airspeed = mavlink_msg_ekf_ext_get_Airspeed(msg);
ekf_ext->beta = mavlink_msg_ekf_ext_get_beta(msg);
ekf_ext->alpha = mavlink_msg_ekf_ext_get_alpha(msg);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_EKF_EXT_LEN? msg->len : MAVLINK_MSG_ID_EKF_EXT_LEN;
memset(ekf_ext, 0, MAVLINK_MSG_ID_EKF_EXT_LEN);
memcpy(ekf_ext, _MAV_PAYLOAD(msg), len);
#endif
}

View File

@@ -0,0 +1,813 @@
#pragma once
// MESSAGE FW_SOARING_DATA PACKING
#define MAVLINK_MSG_ID_FW_SOARING_DATA 210
MAVPACKED(
typedef struct __mavlink_fw_soaring_data_t {
uint64_t timestamp; /*< [ms] Timestamp*/
uint64_t timestampModeChanged; /*< [ms] Timestamp since last mode change*/
float xW; /*< [m/s] Thermal core updraft strength*/
float xR; /*< [m] Thermal radius*/
float xLat; /*< [deg] Thermal center latitude*/
float xLon; /*< [deg] Thermal center longitude*/
float VarW; /*< Variance W*/
float VarR; /*< Variance R*/
float VarLat; /*< Variance Lat*/
float VarLon; /*< Variance Lon */
float LoiterRadius; /*< [m] Suggested loiter radius*/
float LoiterDirection; /*< Suggested loiter direction*/
float DistToSoarPoint; /*< [m] Distance to soar point*/
float vSinkExp; /*< [m/s] Expected sink rate at current airspeed, roll and throttle*/
float z1_LocalUpdraftSpeed; /*< [m/s] Measurement / updraft speed at current/local airplane position*/
float z2_DeltaRoll; /*< [deg] Measurement / roll angle tracking error*/
float z1_exp; /*< Expected measurement 1*/
float z2_exp; /*< Expected measurement 2*/
float ThermalGSNorth; /*< [m/s] Thermal drift (from estimator prediction step only)*/
float ThermalGSEast; /*< [m/s] Thermal drift (from estimator prediction step only)*/
float TSE_dot; /*< [m/s] Total specific energy change (filtered)*/
float DebugVar1; /*< Debug variable 1*/
float DebugVar2; /*< Debug variable 2*/
uint8_t ControlMode; /*< Control Mode [-]*/
uint8_t valid; /*< Data valid [-]*/
}) mavlink_fw_soaring_data_t;
#define MAVLINK_MSG_ID_FW_SOARING_DATA_LEN 102
#define MAVLINK_MSG_ID_FW_SOARING_DATA_MIN_LEN 102
#define MAVLINK_MSG_ID_210_LEN 102
#define MAVLINK_MSG_ID_210_MIN_LEN 102
#define MAVLINK_MSG_ID_FW_SOARING_DATA_CRC 20
#define MAVLINK_MSG_ID_210_CRC 20
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_FW_SOARING_DATA { \
210, \
"FW_SOARING_DATA", \
25, \
{ { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_fw_soaring_data_t, timestamp) }, \
{ "timestampModeChanged", NULL, MAVLINK_TYPE_UINT64_T, 0, 8, offsetof(mavlink_fw_soaring_data_t, timestampModeChanged) }, \
{ "xW", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_fw_soaring_data_t, xW) }, \
{ "xR", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_fw_soaring_data_t, xR) }, \
{ "xLat", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_fw_soaring_data_t, xLat) }, \
{ "xLon", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_fw_soaring_data_t, xLon) }, \
{ "VarW", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_fw_soaring_data_t, VarW) }, \
{ "VarR", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_fw_soaring_data_t, VarR) }, \
{ "VarLat", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_fw_soaring_data_t, VarLat) }, \
{ "VarLon", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_fw_soaring_data_t, VarLon) }, \
{ "LoiterRadius", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_fw_soaring_data_t, LoiterRadius) }, \
{ "LoiterDirection", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_fw_soaring_data_t, LoiterDirection) }, \
{ "DistToSoarPoint", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_fw_soaring_data_t, DistToSoarPoint) }, \
{ "vSinkExp", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_fw_soaring_data_t, vSinkExp) }, \
{ "z1_LocalUpdraftSpeed", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_fw_soaring_data_t, z1_LocalUpdraftSpeed) }, \
{ "z2_DeltaRoll", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_fw_soaring_data_t, z2_DeltaRoll) }, \
{ "z1_exp", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_fw_soaring_data_t, z1_exp) }, \
{ "z2_exp", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_fw_soaring_data_t, z2_exp) }, \
{ "ThermalGSNorth", NULL, MAVLINK_TYPE_FLOAT, 0, 80, offsetof(mavlink_fw_soaring_data_t, ThermalGSNorth) }, \
{ "ThermalGSEast", NULL, MAVLINK_TYPE_FLOAT, 0, 84, offsetof(mavlink_fw_soaring_data_t, ThermalGSEast) }, \
{ "TSE_dot", NULL, MAVLINK_TYPE_FLOAT, 0, 88, offsetof(mavlink_fw_soaring_data_t, TSE_dot) }, \
{ "DebugVar1", NULL, MAVLINK_TYPE_FLOAT, 0, 92, offsetof(mavlink_fw_soaring_data_t, DebugVar1) }, \
{ "DebugVar2", NULL, MAVLINK_TYPE_FLOAT, 0, 96, offsetof(mavlink_fw_soaring_data_t, DebugVar2) }, \
{ "ControlMode", NULL, MAVLINK_TYPE_UINT8_T, 0, 100, offsetof(mavlink_fw_soaring_data_t, ControlMode) }, \
{ "valid", NULL, MAVLINK_TYPE_UINT8_T, 0, 101, offsetof(mavlink_fw_soaring_data_t, valid) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_FW_SOARING_DATA { \
"FW_SOARING_DATA", \
25, \
{ { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_fw_soaring_data_t, timestamp) }, \
{ "timestampModeChanged", NULL, MAVLINK_TYPE_UINT64_T, 0, 8, offsetof(mavlink_fw_soaring_data_t, timestampModeChanged) }, \
{ "xW", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_fw_soaring_data_t, xW) }, \
{ "xR", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_fw_soaring_data_t, xR) }, \
{ "xLat", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_fw_soaring_data_t, xLat) }, \
{ "xLon", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_fw_soaring_data_t, xLon) }, \
{ "VarW", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_fw_soaring_data_t, VarW) }, \
{ "VarR", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_fw_soaring_data_t, VarR) }, \
{ "VarLat", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_fw_soaring_data_t, VarLat) }, \
{ "VarLon", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_fw_soaring_data_t, VarLon) }, \
{ "LoiterRadius", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_fw_soaring_data_t, LoiterRadius) }, \
{ "LoiterDirection", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_fw_soaring_data_t, LoiterDirection) }, \
{ "DistToSoarPoint", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_fw_soaring_data_t, DistToSoarPoint) }, \
{ "vSinkExp", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_fw_soaring_data_t, vSinkExp) }, \
{ "z1_LocalUpdraftSpeed", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_fw_soaring_data_t, z1_LocalUpdraftSpeed) }, \
{ "z2_DeltaRoll", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_fw_soaring_data_t, z2_DeltaRoll) }, \
{ "z1_exp", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_fw_soaring_data_t, z1_exp) }, \
{ "z2_exp", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_fw_soaring_data_t, z2_exp) }, \
{ "ThermalGSNorth", NULL, MAVLINK_TYPE_FLOAT, 0, 80, offsetof(mavlink_fw_soaring_data_t, ThermalGSNorth) }, \
{ "ThermalGSEast", NULL, MAVLINK_TYPE_FLOAT, 0, 84, offsetof(mavlink_fw_soaring_data_t, ThermalGSEast) }, \
{ "TSE_dot", NULL, MAVLINK_TYPE_FLOAT, 0, 88, offsetof(mavlink_fw_soaring_data_t, TSE_dot) }, \
{ "DebugVar1", NULL, MAVLINK_TYPE_FLOAT, 0, 92, offsetof(mavlink_fw_soaring_data_t, DebugVar1) }, \
{ "DebugVar2", NULL, MAVLINK_TYPE_FLOAT, 0, 96, offsetof(mavlink_fw_soaring_data_t, DebugVar2) }, \
{ "ControlMode", NULL, MAVLINK_TYPE_UINT8_T, 0, 100, offsetof(mavlink_fw_soaring_data_t, ControlMode) }, \
{ "valid", NULL, MAVLINK_TYPE_UINT8_T, 0, 101, offsetof(mavlink_fw_soaring_data_t, valid) }, \
} \
}
#endif
/**
* @brief Pack a fw_soaring_data 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 timestamp [ms] Timestamp
* @param timestampModeChanged [ms] Timestamp since last mode change
* @param xW [m/s] Thermal core updraft strength
* @param xR [m] Thermal radius
* @param xLat [deg] Thermal center latitude
* @param xLon [deg] Thermal center longitude
* @param VarW Variance W
* @param VarR Variance R
* @param VarLat Variance Lat
* @param VarLon Variance Lon
* @param LoiterRadius [m] Suggested loiter radius
* @param LoiterDirection Suggested loiter direction
* @param DistToSoarPoint [m] Distance to soar point
* @param vSinkExp [m/s] Expected sink rate at current airspeed, roll and throttle
* @param z1_LocalUpdraftSpeed [m/s] Measurement / updraft speed at current/local airplane position
* @param z2_DeltaRoll [deg] Measurement / roll angle tracking error
* @param z1_exp Expected measurement 1
* @param z2_exp Expected measurement 2
* @param ThermalGSNorth [m/s] Thermal drift (from estimator prediction step only)
* @param ThermalGSEast [m/s] Thermal drift (from estimator prediction step only)
* @param TSE_dot [m/s] Total specific energy change (filtered)
* @param DebugVar1 Debug variable 1
* @param DebugVar2 Debug variable 2
* @param ControlMode Control Mode [-]
* @param valid Data valid [-]
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_fw_soaring_data_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint64_t timestamp, uint64_t timestampModeChanged, float xW, float xR, float xLat, float xLon, float VarW, float VarR, float VarLat, float VarLon, float LoiterRadius, float LoiterDirection, float DistToSoarPoint, float vSinkExp, float z1_LocalUpdraftSpeed, float z2_DeltaRoll, float z1_exp, float z2_exp, float ThermalGSNorth, float ThermalGSEast, float TSE_dot, float DebugVar1, float DebugVar2, uint8_t ControlMode, uint8_t valid)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_FW_SOARING_DATA_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_uint64_t(buf, 8, timestampModeChanged);
_mav_put_float(buf, 16, xW);
_mav_put_float(buf, 20, xR);
_mav_put_float(buf, 24, xLat);
_mav_put_float(buf, 28, xLon);
_mav_put_float(buf, 32, VarW);
_mav_put_float(buf, 36, VarR);
_mav_put_float(buf, 40, VarLat);
_mav_put_float(buf, 44, VarLon);
_mav_put_float(buf, 48, LoiterRadius);
_mav_put_float(buf, 52, LoiterDirection);
_mav_put_float(buf, 56, DistToSoarPoint);
_mav_put_float(buf, 60, vSinkExp);
_mav_put_float(buf, 64, z1_LocalUpdraftSpeed);
_mav_put_float(buf, 68, z2_DeltaRoll);
_mav_put_float(buf, 72, z1_exp);
_mav_put_float(buf, 76, z2_exp);
_mav_put_float(buf, 80, ThermalGSNorth);
_mav_put_float(buf, 84, ThermalGSEast);
_mav_put_float(buf, 88, TSE_dot);
_mav_put_float(buf, 92, DebugVar1);
_mav_put_float(buf, 96, DebugVar2);
_mav_put_uint8_t(buf, 100, ControlMode);
_mav_put_uint8_t(buf, 101, valid);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_FW_SOARING_DATA_LEN);
#else
mavlink_fw_soaring_data_t packet;
packet.timestamp = timestamp;
packet.timestampModeChanged = timestampModeChanged;
packet.xW = xW;
packet.xR = xR;
packet.xLat = xLat;
packet.xLon = xLon;
packet.VarW = VarW;
packet.VarR = VarR;
packet.VarLat = VarLat;
packet.VarLon = VarLon;
packet.LoiterRadius = LoiterRadius;
packet.LoiterDirection = LoiterDirection;
packet.DistToSoarPoint = DistToSoarPoint;
packet.vSinkExp = vSinkExp;
packet.z1_LocalUpdraftSpeed = z1_LocalUpdraftSpeed;
packet.z2_DeltaRoll = z2_DeltaRoll;
packet.z1_exp = z1_exp;
packet.z2_exp = z2_exp;
packet.ThermalGSNorth = ThermalGSNorth;
packet.ThermalGSEast = ThermalGSEast;
packet.TSE_dot = TSE_dot;
packet.DebugVar1 = DebugVar1;
packet.DebugVar2 = DebugVar2;
packet.ControlMode = ControlMode;
packet.valid = valid;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_FW_SOARING_DATA_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_FW_SOARING_DATA;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_FW_SOARING_DATA_MIN_LEN, MAVLINK_MSG_ID_FW_SOARING_DATA_LEN, MAVLINK_MSG_ID_FW_SOARING_DATA_CRC);
}
/**
* @brief Pack a fw_soaring_data 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
* @param timestamp [ms] Timestamp
* @param timestampModeChanged [ms] Timestamp since last mode change
* @param xW [m/s] Thermal core updraft strength
* @param xR [m] Thermal radius
* @param xLat [deg] Thermal center latitude
* @param xLon [deg] Thermal center longitude
* @param VarW Variance W
* @param VarR Variance R
* @param VarLat Variance Lat
* @param VarLon Variance Lon
* @param LoiterRadius [m] Suggested loiter radius
* @param LoiterDirection Suggested loiter direction
* @param DistToSoarPoint [m] Distance to soar point
* @param vSinkExp [m/s] Expected sink rate at current airspeed, roll and throttle
* @param z1_LocalUpdraftSpeed [m/s] Measurement / updraft speed at current/local airplane position
* @param z2_DeltaRoll [deg] Measurement / roll angle tracking error
* @param z1_exp Expected measurement 1
* @param z2_exp Expected measurement 2
* @param ThermalGSNorth [m/s] Thermal drift (from estimator prediction step only)
* @param ThermalGSEast [m/s] Thermal drift (from estimator prediction step only)
* @param TSE_dot [m/s] Total specific energy change (filtered)
* @param DebugVar1 Debug variable 1
* @param DebugVar2 Debug variable 2
* @param ControlMode Control Mode [-]
* @param valid Data valid [-]
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_fw_soaring_data_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint64_t timestamp,uint64_t timestampModeChanged,float xW,float xR,float xLat,float xLon,float VarW,float VarR,float VarLat,float VarLon,float LoiterRadius,float LoiterDirection,float DistToSoarPoint,float vSinkExp,float z1_LocalUpdraftSpeed,float z2_DeltaRoll,float z1_exp,float z2_exp,float ThermalGSNorth,float ThermalGSEast,float TSE_dot,float DebugVar1,float DebugVar2,uint8_t ControlMode,uint8_t valid)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_FW_SOARING_DATA_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_uint64_t(buf, 8, timestampModeChanged);
_mav_put_float(buf, 16, xW);
_mav_put_float(buf, 20, xR);
_mav_put_float(buf, 24, xLat);
_mav_put_float(buf, 28, xLon);
_mav_put_float(buf, 32, VarW);
_mav_put_float(buf, 36, VarR);
_mav_put_float(buf, 40, VarLat);
_mav_put_float(buf, 44, VarLon);
_mav_put_float(buf, 48, LoiterRadius);
_mav_put_float(buf, 52, LoiterDirection);
_mav_put_float(buf, 56, DistToSoarPoint);
_mav_put_float(buf, 60, vSinkExp);
_mav_put_float(buf, 64, z1_LocalUpdraftSpeed);
_mav_put_float(buf, 68, z2_DeltaRoll);
_mav_put_float(buf, 72, z1_exp);
_mav_put_float(buf, 76, z2_exp);
_mav_put_float(buf, 80, ThermalGSNorth);
_mav_put_float(buf, 84, ThermalGSEast);
_mav_put_float(buf, 88, TSE_dot);
_mav_put_float(buf, 92, DebugVar1);
_mav_put_float(buf, 96, DebugVar2);
_mav_put_uint8_t(buf, 100, ControlMode);
_mav_put_uint8_t(buf, 101, valid);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_FW_SOARING_DATA_LEN);
#else
mavlink_fw_soaring_data_t packet;
packet.timestamp = timestamp;
packet.timestampModeChanged = timestampModeChanged;
packet.xW = xW;
packet.xR = xR;
packet.xLat = xLat;
packet.xLon = xLon;
packet.VarW = VarW;
packet.VarR = VarR;
packet.VarLat = VarLat;
packet.VarLon = VarLon;
packet.LoiterRadius = LoiterRadius;
packet.LoiterDirection = LoiterDirection;
packet.DistToSoarPoint = DistToSoarPoint;
packet.vSinkExp = vSinkExp;
packet.z1_LocalUpdraftSpeed = z1_LocalUpdraftSpeed;
packet.z2_DeltaRoll = z2_DeltaRoll;
packet.z1_exp = z1_exp;
packet.z2_exp = z2_exp;
packet.ThermalGSNorth = ThermalGSNorth;
packet.ThermalGSEast = ThermalGSEast;
packet.TSE_dot = TSE_dot;
packet.DebugVar1 = DebugVar1;
packet.DebugVar2 = DebugVar2;
packet.ControlMode = ControlMode;
packet.valid = valid;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_FW_SOARING_DATA_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_FW_SOARING_DATA;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_FW_SOARING_DATA_MIN_LEN, MAVLINK_MSG_ID_FW_SOARING_DATA_LEN, MAVLINK_MSG_ID_FW_SOARING_DATA_CRC);
}
/**
* @brief Encode a fw_soaring_data 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 fw_soaring_data C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_fw_soaring_data_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_fw_soaring_data_t* fw_soaring_data)
{
return mavlink_msg_fw_soaring_data_pack(system_id, component_id, msg, fw_soaring_data->timestamp, fw_soaring_data->timestampModeChanged, fw_soaring_data->xW, fw_soaring_data->xR, fw_soaring_data->xLat, fw_soaring_data->xLon, fw_soaring_data->VarW, fw_soaring_data->VarR, fw_soaring_data->VarLat, fw_soaring_data->VarLon, fw_soaring_data->LoiterRadius, fw_soaring_data->LoiterDirection, fw_soaring_data->DistToSoarPoint, fw_soaring_data->vSinkExp, fw_soaring_data->z1_LocalUpdraftSpeed, fw_soaring_data->z2_DeltaRoll, fw_soaring_data->z1_exp, fw_soaring_data->z2_exp, fw_soaring_data->ThermalGSNorth, fw_soaring_data->ThermalGSEast, fw_soaring_data->TSE_dot, fw_soaring_data->DebugVar1, fw_soaring_data->DebugVar2, fw_soaring_data->ControlMode, fw_soaring_data->valid);
}
/**
* @brief Encode a fw_soaring_data 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 fw_soaring_data C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_fw_soaring_data_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_fw_soaring_data_t* fw_soaring_data)
{
return mavlink_msg_fw_soaring_data_pack_chan(system_id, component_id, chan, msg, fw_soaring_data->timestamp, fw_soaring_data->timestampModeChanged, fw_soaring_data->xW, fw_soaring_data->xR, fw_soaring_data->xLat, fw_soaring_data->xLon, fw_soaring_data->VarW, fw_soaring_data->VarR, fw_soaring_data->VarLat, fw_soaring_data->VarLon, fw_soaring_data->LoiterRadius, fw_soaring_data->LoiterDirection, fw_soaring_data->DistToSoarPoint, fw_soaring_data->vSinkExp, fw_soaring_data->z1_LocalUpdraftSpeed, fw_soaring_data->z2_DeltaRoll, fw_soaring_data->z1_exp, fw_soaring_data->z2_exp, fw_soaring_data->ThermalGSNorth, fw_soaring_data->ThermalGSEast, fw_soaring_data->TSE_dot, fw_soaring_data->DebugVar1, fw_soaring_data->DebugVar2, fw_soaring_data->ControlMode, fw_soaring_data->valid);
}
/**
* @brief Send a fw_soaring_data message
* @param chan MAVLink channel to send the message
*
* @param timestamp [ms] Timestamp
* @param timestampModeChanged [ms] Timestamp since last mode change
* @param xW [m/s] Thermal core updraft strength
* @param xR [m] Thermal radius
* @param xLat [deg] Thermal center latitude
* @param xLon [deg] Thermal center longitude
* @param VarW Variance W
* @param VarR Variance R
* @param VarLat Variance Lat
* @param VarLon Variance Lon
* @param LoiterRadius [m] Suggested loiter radius
* @param LoiterDirection Suggested loiter direction
* @param DistToSoarPoint [m] Distance to soar point
* @param vSinkExp [m/s] Expected sink rate at current airspeed, roll and throttle
* @param z1_LocalUpdraftSpeed [m/s] Measurement / updraft speed at current/local airplane position
* @param z2_DeltaRoll [deg] Measurement / roll angle tracking error
* @param z1_exp Expected measurement 1
* @param z2_exp Expected measurement 2
* @param ThermalGSNorth [m/s] Thermal drift (from estimator prediction step only)
* @param ThermalGSEast [m/s] Thermal drift (from estimator prediction step only)
* @param TSE_dot [m/s] Total specific energy change (filtered)
* @param DebugVar1 Debug variable 1
* @param DebugVar2 Debug variable 2
* @param ControlMode Control Mode [-]
* @param valid Data valid [-]
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_fw_soaring_data_send(mavlink_channel_t chan, uint64_t timestamp, uint64_t timestampModeChanged, float xW, float xR, float xLat, float xLon, float VarW, float VarR, float VarLat, float VarLon, float LoiterRadius, float LoiterDirection, float DistToSoarPoint, float vSinkExp, float z1_LocalUpdraftSpeed, float z2_DeltaRoll, float z1_exp, float z2_exp, float ThermalGSNorth, float ThermalGSEast, float TSE_dot, float DebugVar1, float DebugVar2, uint8_t ControlMode, uint8_t valid)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_FW_SOARING_DATA_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_uint64_t(buf, 8, timestampModeChanged);
_mav_put_float(buf, 16, xW);
_mav_put_float(buf, 20, xR);
_mav_put_float(buf, 24, xLat);
_mav_put_float(buf, 28, xLon);
_mav_put_float(buf, 32, VarW);
_mav_put_float(buf, 36, VarR);
_mav_put_float(buf, 40, VarLat);
_mav_put_float(buf, 44, VarLon);
_mav_put_float(buf, 48, LoiterRadius);
_mav_put_float(buf, 52, LoiterDirection);
_mav_put_float(buf, 56, DistToSoarPoint);
_mav_put_float(buf, 60, vSinkExp);
_mav_put_float(buf, 64, z1_LocalUpdraftSpeed);
_mav_put_float(buf, 68, z2_DeltaRoll);
_mav_put_float(buf, 72, z1_exp);
_mav_put_float(buf, 76, z2_exp);
_mav_put_float(buf, 80, ThermalGSNorth);
_mav_put_float(buf, 84, ThermalGSEast);
_mav_put_float(buf, 88, TSE_dot);
_mav_put_float(buf, 92, DebugVar1);
_mav_put_float(buf, 96, DebugVar2);
_mav_put_uint8_t(buf, 100, ControlMode);
_mav_put_uint8_t(buf, 101, valid);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FW_SOARING_DATA, buf, MAVLINK_MSG_ID_FW_SOARING_DATA_MIN_LEN, MAVLINK_MSG_ID_FW_SOARING_DATA_LEN, MAVLINK_MSG_ID_FW_SOARING_DATA_CRC);
#else
mavlink_fw_soaring_data_t packet;
packet.timestamp = timestamp;
packet.timestampModeChanged = timestampModeChanged;
packet.xW = xW;
packet.xR = xR;
packet.xLat = xLat;
packet.xLon = xLon;
packet.VarW = VarW;
packet.VarR = VarR;
packet.VarLat = VarLat;
packet.VarLon = VarLon;
packet.LoiterRadius = LoiterRadius;
packet.LoiterDirection = LoiterDirection;
packet.DistToSoarPoint = DistToSoarPoint;
packet.vSinkExp = vSinkExp;
packet.z1_LocalUpdraftSpeed = z1_LocalUpdraftSpeed;
packet.z2_DeltaRoll = z2_DeltaRoll;
packet.z1_exp = z1_exp;
packet.z2_exp = z2_exp;
packet.ThermalGSNorth = ThermalGSNorth;
packet.ThermalGSEast = ThermalGSEast;
packet.TSE_dot = TSE_dot;
packet.DebugVar1 = DebugVar1;
packet.DebugVar2 = DebugVar2;
packet.ControlMode = ControlMode;
packet.valid = valid;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FW_SOARING_DATA, (const char *)&packet, MAVLINK_MSG_ID_FW_SOARING_DATA_MIN_LEN, MAVLINK_MSG_ID_FW_SOARING_DATA_LEN, MAVLINK_MSG_ID_FW_SOARING_DATA_CRC);
#endif
}
/**
* @brief Send a fw_soaring_data message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_fw_soaring_data_send_struct(mavlink_channel_t chan, const mavlink_fw_soaring_data_t* fw_soaring_data)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_fw_soaring_data_send(chan, fw_soaring_data->timestamp, fw_soaring_data->timestampModeChanged, fw_soaring_data->xW, fw_soaring_data->xR, fw_soaring_data->xLat, fw_soaring_data->xLon, fw_soaring_data->VarW, fw_soaring_data->VarR, fw_soaring_data->VarLat, fw_soaring_data->VarLon, fw_soaring_data->LoiterRadius, fw_soaring_data->LoiterDirection, fw_soaring_data->DistToSoarPoint, fw_soaring_data->vSinkExp, fw_soaring_data->z1_LocalUpdraftSpeed, fw_soaring_data->z2_DeltaRoll, fw_soaring_data->z1_exp, fw_soaring_data->z2_exp, fw_soaring_data->ThermalGSNorth, fw_soaring_data->ThermalGSEast, fw_soaring_data->TSE_dot, fw_soaring_data->DebugVar1, fw_soaring_data->DebugVar2, fw_soaring_data->ControlMode, fw_soaring_data->valid);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FW_SOARING_DATA, (const char *)fw_soaring_data, MAVLINK_MSG_ID_FW_SOARING_DATA_MIN_LEN, MAVLINK_MSG_ID_FW_SOARING_DATA_LEN, MAVLINK_MSG_ID_FW_SOARING_DATA_CRC);
#endif
}
#if MAVLINK_MSG_ID_FW_SOARING_DATA_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.
*/
static inline void mavlink_msg_fw_soaring_data_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, uint64_t timestampModeChanged, float xW, float xR, float xLat, float xLon, float VarW, float VarR, float VarLat, float VarLon, float LoiterRadius, float LoiterDirection, float DistToSoarPoint, float vSinkExp, float z1_LocalUpdraftSpeed, float z2_DeltaRoll, float z1_exp, float z2_exp, float ThermalGSNorth, float ThermalGSEast, float TSE_dot, float DebugVar1, float DebugVar2, uint8_t ControlMode, uint8_t valid)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_uint64_t(buf, 8, timestampModeChanged);
_mav_put_float(buf, 16, xW);
_mav_put_float(buf, 20, xR);
_mav_put_float(buf, 24, xLat);
_mav_put_float(buf, 28, xLon);
_mav_put_float(buf, 32, VarW);
_mav_put_float(buf, 36, VarR);
_mav_put_float(buf, 40, VarLat);
_mav_put_float(buf, 44, VarLon);
_mav_put_float(buf, 48, LoiterRadius);
_mav_put_float(buf, 52, LoiterDirection);
_mav_put_float(buf, 56, DistToSoarPoint);
_mav_put_float(buf, 60, vSinkExp);
_mav_put_float(buf, 64, z1_LocalUpdraftSpeed);
_mav_put_float(buf, 68, z2_DeltaRoll);
_mav_put_float(buf, 72, z1_exp);
_mav_put_float(buf, 76, z2_exp);
_mav_put_float(buf, 80, ThermalGSNorth);
_mav_put_float(buf, 84, ThermalGSEast);
_mav_put_float(buf, 88, TSE_dot);
_mav_put_float(buf, 92, DebugVar1);
_mav_put_float(buf, 96, DebugVar2);
_mav_put_uint8_t(buf, 100, ControlMode);
_mav_put_uint8_t(buf, 101, valid);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FW_SOARING_DATA, buf, MAVLINK_MSG_ID_FW_SOARING_DATA_MIN_LEN, MAVLINK_MSG_ID_FW_SOARING_DATA_LEN, MAVLINK_MSG_ID_FW_SOARING_DATA_CRC);
#else
mavlink_fw_soaring_data_t *packet = (mavlink_fw_soaring_data_t *)msgbuf;
packet->timestamp = timestamp;
packet->timestampModeChanged = timestampModeChanged;
packet->xW = xW;
packet->xR = xR;
packet->xLat = xLat;
packet->xLon = xLon;
packet->VarW = VarW;
packet->VarR = VarR;
packet->VarLat = VarLat;
packet->VarLon = VarLon;
packet->LoiterRadius = LoiterRadius;
packet->LoiterDirection = LoiterDirection;
packet->DistToSoarPoint = DistToSoarPoint;
packet->vSinkExp = vSinkExp;
packet->z1_LocalUpdraftSpeed = z1_LocalUpdraftSpeed;
packet->z2_DeltaRoll = z2_DeltaRoll;
packet->z1_exp = z1_exp;
packet->z2_exp = z2_exp;
packet->ThermalGSNorth = ThermalGSNorth;
packet->ThermalGSEast = ThermalGSEast;
packet->TSE_dot = TSE_dot;
packet->DebugVar1 = DebugVar1;
packet->DebugVar2 = DebugVar2;
packet->ControlMode = ControlMode;
packet->valid = valid;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FW_SOARING_DATA, (const char *)packet, MAVLINK_MSG_ID_FW_SOARING_DATA_MIN_LEN, MAVLINK_MSG_ID_FW_SOARING_DATA_LEN, MAVLINK_MSG_ID_FW_SOARING_DATA_CRC);
#endif
}
#endif
#endif
// MESSAGE FW_SOARING_DATA UNPACKING
/**
* @brief Get field timestamp from fw_soaring_data message
*
* @return [ms] Timestamp
*/
static inline uint64_t mavlink_msg_fw_soaring_data_get_timestamp(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint64_t(msg, 0);
}
/**
* @brief Get field timestampModeChanged from fw_soaring_data message
*
* @return [ms] Timestamp since last mode change
*/
static inline uint64_t mavlink_msg_fw_soaring_data_get_timestampModeChanged(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint64_t(msg, 8);
}
/**
* @brief Get field xW from fw_soaring_data message
*
* @return [m/s] Thermal core updraft strength
*/
static inline float mavlink_msg_fw_soaring_data_get_xW(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 16);
}
/**
* @brief Get field xR from fw_soaring_data message
*
* @return [m] Thermal radius
*/
static inline float mavlink_msg_fw_soaring_data_get_xR(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 20);
}
/**
* @brief Get field xLat from fw_soaring_data message
*
* @return [deg] Thermal center latitude
*/
static inline float mavlink_msg_fw_soaring_data_get_xLat(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 24);
}
/**
* @brief Get field xLon from fw_soaring_data message
*
* @return [deg] Thermal center longitude
*/
static inline float mavlink_msg_fw_soaring_data_get_xLon(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 28);
}
/**
* @brief Get field VarW from fw_soaring_data message
*
* @return Variance W
*/
static inline float mavlink_msg_fw_soaring_data_get_VarW(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 32);
}
/**
* @brief Get field VarR from fw_soaring_data message
*
* @return Variance R
*/
static inline float mavlink_msg_fw_soaring_data_get_VarR(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 36);
}
/**
* @brief Get field VarLat from fw_soaring_data message
*
* @return Variance Lat
*/
static inline float mavlink_msg_fw_soaring_data_get_VarLat(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 40);
}
/**
* @brief Get field VarLon from fw_soaring_data message
*
* @return Variance Lon
*/
static inline float mavlink_msg_fw_soaring_data_get_VarLon(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 44);
}
/**
* @brief Get field LoiterRadius from fw_soaring_data message
*
* @return [m] Suggested loiter radius
*/
static inline float mavlink_msg_fw_soaring_data_get_LoiterRadius(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 48);
}
/**
* @brief Get field LoiterDirection from fw_soaring_data message
*
* @return Suggested loiter direction
*/
static inline float mavlink_msg_fw_soaring_data_get_LoiterDirection(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 52);
}
/**
* @brief Get field DistToSoarPoint from fw_soaring_data message
*
* @return [m] Distance to soar point
*/
static inline float mavlink_msg_fw_soaring_data_get_DistToSoarPoint(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 56);
}
/**
* @brief Get field vSinkExp from fw_soaring_data message
*
* @return [m/s] Expected sink rate at current airspeed, roll and throttle
*/
static inline float mavlink_msg_fw_soaring_data_get_vSinkExp(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 60);
}
/**
* @brief Get field z1_LocalUpdraftSpeed from fw_soaring_data message
*
* @return [m/s] Measurement / updraft speed at current/local airplane position
*/
static inline float mavlink_msg_fw_soaring_data_get_z1_LocalUpdraftSpeed(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 64);
}
/**
* @brief Get field z2_DeltaRoll from fw_soaring_data message
*
* @return [deg] Measurement / roll angle tracking error
*/
static inline float mavlink_msg_fw_soaring_data_get_z2_DeltaRoll(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 68);
}
/**
* @brief Get field z1_exp from fw_soaring_data message
*
* @return Expected measurement 1
*/
static inline float mavlink_msg_fw_soaring_data_get_z1_exp(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 72);
}
/**
* @brief Get field z2_exp from fw_soaring_data message
*
* @return Expected measurement 2
*/
static inline float mavlink_msg_fw_soaring_data_get_z2_exp(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 76);
}
/**
* @brief Get field ThermalGSNorth from fw_soaring_data message
*
* @return [m/s] Thermal drift (from estimator prediction step only)
*/
static inline float mavlink_msg_fw_soaring_data_get_ThermalGSNorth(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 80);
}
/**
* @brief Get field ThermalGSEast from fw_soaring_data message
*
* @return [m/s] Thermal drift (from estimator prediction step only)
*/
static inline float mavlink_msg_fw_soaring_data_get_ThermalGSEast(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 84);
}
/**
* @brief Get field TSE_dot from fw_soaring_data message
*
* @return [m/s] Total specific energy change (filtered)
*/
static inline float mavlink_msg_fw_soaring_data_get_TSE_dot(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 88);
}
/**
* @brief Get field DebugVar1 from fw_soaring_data message
*
* @return Debug variable 1
*/
static inline float mavlink_msg_fw_soaring_data_get_DebugVar1(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 92);
}
/**
* @brief Get field DebugVar2 from fw_soaring_data message
*
* @return Debug variable 2
*/
static inline float mavlink_msg_fw_soaring_data_get_DebugVar2(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 96);
}
/**
* @brief Get field ControlMode from fw_soaring_data message
*
* @return Control Mode [-]
*/
static inline uint8_t mavlink_msg_fw_soaring_data_get_ControlMode(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 100);
}
/**
* @brief Get field valid from fw_soaring_data message
*
* @return Data valid [-]
*/
static inline uint8_t mavlink_msg_fw_soaring_data_get_valid(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 101);
}
/**
* @brief Decode a fw_soaring_data message into a struct
*
* @param msg The message to decode
* @param fw_soaring_data C-struct to decode the message contents into
*/
static inline void mavlink_msg_fw_soaring_data_decode(const mavlink_message_t* msg, mavlink_fw_soaring_data_t* fw_soaring_data)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
fw_soaring_data->timestamp = mavlink_msg_fw_soaring_data_get_timestamp(msg);
fw_soaring_data->timestampModeChanged = mavlink_msg_fw_soaring_data_get_timestampModeChanged(msg);
fw_soaring_data->xW = mavlink_msg_fw_soaring_data_get_xW(msg);
fw_soaring_data->xR = mavlink_msg_fw_soaring_data_get_xR(msg);
fw_soaring_data->xLat = mavlink_msg_fw_soaring_data_get_xLat(msg);
fw_soaring_data->xLon = mavlink_msg_fw_soaring_data_get_xLon(msg);
fw_soaring_data->VarW = mavlink_msg_fw_soaring_data_get_VarW(msg);
fw_soaring_data->VarR = mavlink_msg_fw_soaring_data_get_VarR(msg);
fw_soaring_data->VarLat = mavlink_msg_fw_soaring_data_get_VarLat(msg);
fw_soaring_data->VarLon = mavlink_msg_fw_soaring_data_get_VarLon(msg);
fw_soaring_data->LoiterRadius = mavlink_msg_fw_soaring_data_get_LoiterRadius(msg);
fw_soaring_data->LoiterDirection = mavlink_msg_fw_soaring_data_get_LoiterDirection(msg);
fw_soaring_data->DistToSoarPoint = mavlink_msg_fw_soaring_data_get_DistToSoarPoint(msg);
fw_soaring_data->vSinkExp = mavlink_msg_fw_soaring_data_get_vSinkExp(msg);
fw_soaring_data->z1_LocalUpdraftSpeed = mavlink_msg_fw_soaring_data_get_z1_LocalUpdraftSpeed(msg);
fw_soaring_data->z2_DeltaRoll = mavlink_msg_fw_soaring_data_get_z2_DeltaRoll(msg);
fw_soaring_data->z1_exp = mavlink_msg_fw_soaring_data_get_z1_exp(msg);
fw_soaring_data->z2_exp = mavlink_msg_fw_soaring_data_get_z2_exp(msg);
fw_soaring_data->ThermalGSNorth = mavlink_msg_fw_soaring_data_get_ThermalGSNorth(msg);
fw_soaring_data->ThermalGSEast = mavlink_msg_fw_soaring_data_get_ThermalGSEast(msg);
fw_soaring_data->TSE_dot = mavlink_msg_fw_soaring_data_get_TSE_dot(msg);
fw_soaring_data->DebugVar1 = mavlink_msg_fw_soaring_data_get_DebugVar1(msg);
fw_soaring_data->DebugVar2 = mavlink_msg_fw_soaring_data_get_DebugVar2(msg);
fw_soaring_data->ControlMode = mavlink_msg_fw_soaring_data_get_ControlMode(msg);
fw_soaring_data->valid = mavlink_msg_fw_soaring_data_get_valid(msg);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_FW_SOARING_DATA_LEN? msg->len : MAVLINK_MSG_ID_FW_SOARING_DATA_LEN;
memset(fw_soaring_data, 0, MAVLINK_MSG_ID_FW_SOARING_DATA_LEN);
memcpy(fw_soaring_data, _MAV_PAYLOAD(msg), len);
#endif
}

View File

@@ -0,0 +1,238 @@
#pragma once
// MESSAGE SENS_ATMOS PACKING
#define MAVLINK_MSG_ID_SENS_ATMOS 208
MAVPACKED(
typedef struct __mavlink_sens_atmos_t {
float TempAmbient; /*< [degC] Ambient temperature*/
float Humidity; /*< [%] Relative humidity*/
}) mavlink_sens_atmos_t;
#define MAVLINK_MSG_ID_SENS_ATMOS_LEN 8
#define MAVLINK_MSG_ID_SENS_ATMOS_MIN_LEN 8
#define MAVLINK_MSG_ID_208_LEN 8
#define MAVLINK_MSG_ID_208_MIN_LEN 8
#define MAVLINK_MSG_ID_SENS_ATMOS_CRC 175
#define MAVLINK_MSG_ID_208_CRC 175
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_SENS_ATMOS { \
208, \
"SENS_ATMOS", \
2, \
{ { "TempAmbient", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_sens_atmos_t, TempAmbient) }, \
{ "Humidity", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_sens_atmos_t, Humidity) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_SENS_ATMOS { \
"SENS_ATMOS", \
2, \
{ { "TempAmbient", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_sens_atmos_t, TempAmbient) }, \
{ "Humidity", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_sens_atmos_t, Humidity) }, \
} \
}
#endif
/**
* @brief Pack a sens_atmos 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 TempAmbient [degC] Ambient temperature
* @param Humidity [%] Relative humidity
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_sens_atmos_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
float TempAmbient, float Humidity)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENS_ATMOS_LEN];
_mav_put_float(buf, 0, TempAmbient);
_mav_put_float(buf, 4, Humidity);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SENS_ATMOS_LEN);
#else
mavlink_sens_atmos_t packet;
packet.TempAmbient = TempAmbient;
packet.Humidity = Humidity;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SENS_ATMOS_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_SENS_ATMOS;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SENS_ATMOS_MIN_LEN, MAVLINK_MSG_ID_SENS_ATMOS_LEN, MAVLINK_MSG_ID_SENS_ATMOS_CRC);
}
/**
* @brief Pack a sens_atmos 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
* @param TempAmbient [degC] Ambient temperature
* @param Humidity [%] Relative humidity
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_sens_atmos_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
float TempAmbient,float Humidity)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENS_ATMOS_LEN];
_mav_put_float(buf, 0, TempAmbient);
_mav_put_float(buf, 4, Humidity);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SENS_ATMOS_LEN);
#else
mavlink_sens_atmos_t packet;
packet.TempAmbient = TempAmbient;
packet.Humidity = Humidity;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SENS_ATMOS_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_SENS_ATMOS;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SENS_ATMOS_MIN_LEN, MAVLINK_MSG_ID_SENS_ATMOS_LEN, MAVLINK_MSG_ID_SENS_ATMOS_CRC);
}
/**
* @brief Encode a sens_atmos 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 sens_atmos C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_sens_atmos_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_sens_atmos_t* sens_atmos)
{
return mavlink_msg_sens_atmos_pack(system_id, component_id, msg, sens_atmos->TempAmbient, sens_atmos->Humidity);
}
/**
* @brief Encode a sens_atmos 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 sens_atmos C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_sens_atmos_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_sens_atmos_t* sens_atmos)
{
return mavlink_msg_sens_atmos_pack_chan(system_id, component_id, chan, msg, sens_atmos->TempAmbient, sens_atmos->Humidity);
}
/**
* @brief Send a sens_atmos message
* @param chan MAVLink channel to send the message
*
* @param TempAmbient [degC] Ambient temperature
* @param Humidity [%] Relative humidity
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_sens_atmos_send(mavlink_channel_t chan, float TempAmbient, float Humidity)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENS_ATMOS_LEN];
_mav_put_float(buf, 0, TempAmbient);
_mav_put_float(buf, 4, Humidity);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_ATMOS, buf, MAVLINK_MSG_ID_SENS_ATMOS_MIN_LEN, MAVLINK_MSG_ID_SENS_ATMOS_LEN, MAVLINK_MSG_ID_SENS_ATMOS_CRC);
#else
mavlink_sens_atmos_t packet;
packet.TempAmbient = TempAmbient;
packet.Humidity = Humidity;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_ATMOS, (const char *)&packet, MAVLINK_MSG_ID_SENS_ATMOS_MIN_LEN, MAVLINK_MSG_ID_SENS_ATMOS_LEN, MAVLINK_MSG_ID_SENS_ATMOS_CRC);
#endif
}
/**
* @brief Send a sens_atmos message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_sens_atmos_send_struct(mavlink_channel_t chan, const mavlink_sens_atmos_t* sens_atmos)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_sens_atmos_send(chan, sens_atmos->TempAmbient, sens_atmos->Humidity);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_ATMOS, (const char *)sens_atmos, MAVLINK_MSG_ID_SENS_ATMOS_MIN_LEN, MAVLINK_MSG_ID_SENS_ATMOS_LEN, MAVLINK_MSG_ID_SENS_ATMOS_CRC);
#endif
}
#if MAVLINK_MSG_ID_SENS_ATMOS_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.
*/
static inline void mavlink_msg_sens_atmos_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, float TempAmbient, float Humidity)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_float(buf, 0, TempAmbient);
_mav_put_float(buf, 4, Humidity);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_ATMOS, buf, MAVLINK_MSG_ID_SENS_ATMOS_MIN_LEN, MAVLINK_MSG_ID_SENS_ATMOS_LEN, MAVLINK_MSG_ID_SENS_ATMOS_CRC);
#else
mavlink_sens_atmos_t *packet = (mavlink_sens_atmos_t *)msgbuf;
packet->TempAmbient = TempAmbient;
packet->Humidity = Humidity;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_ATMOS, (const char *)packet, MAVLINK_MSG_ID_SENS_ATMOS_MIN_LEN, MAVLINK_MSG_ID_SENS_ATMOS_LEN, MAVLINK_MSG_ID_SENS_ATMOS_CRC);
#endif
}
#endif
#endif
// MESSAGE SENS_ATMOS UNPACKING
/**
* @brief Get field TempAmbient from sens_atmos message
*
* @return [degC] Ambient temperature
*/
static inline float mavlink_msg_sens_atmos_get_TempAmbient(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 0);
}
/**
* @brief Get field Humidity from sens_atmos message
*
* @return [%] Relative humidity
*/
static inline float mavlink_msg_sens_atmos_get_Humidity(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 4);
}
/**
* @brief Decode a sens_atmos message into a struct
*
* @param msg The message to decode
* @param sens_atmos C-struct to decode the message contents into
*/
static inline void mavlink_msg_sens_atmos_decode(const mavlink_message_t* msg, mavlink_sens_atmos_t* sens_atmos)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
sens_atmos->TempAmbient = mavlink_msg_sens_atmos_get_TempAmbient(msg);
sens_atmos->Humidity = mavlink_msg_sens_atmos_get_Humidity(msg);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_SENS_ATMOS_LEN? msg->len : MAVLINK_MSG_ID_SENS_ATMOS_LEN;
memset(sens_atmos, 0, MAVLINK_MSG_ID_SENS_ATMOS_LEN);
memcpy(sens_atmos, _MAV_PAYLOAD(msg), len);
#endif
}

View File

@@ -0,0 +1,563 @@
#pragma once
// MESSAGE SENS_BATMON PACKING
#define MAVLINK_MSG_ID_SENS_BATMON 209
MAVPACKED(
typedef struct __mavlink_sens_batmon_t {
uint64_t batmon_timestamp; /*< [us] Time since system start*/
float temperature; /*< [degC] Battery pack temperature*/
uint32_t safetystatus; /*< Battery monitor safetystatus report bits in Hex*/
uint32_t operationstatus; /*< Battery monitor operation status report bits in Hex*/
uint16_t voltage; /*< [mV] Battery pack voltage*/
int16_t current; /*< [mA] Battery pack current*/
uint16_t batterystatus; /*< Battery monitor status report bits in Hex*/
uint16_t serialnumber; /*< Battery monitor serial number in Hex*/
uint16_t cellvoltage1; /*< [mV] Battery pack cell 1 voltage*/
uint16_t cellvoltage2; /*< [mV] Battery pack cell 2 voltage*/
uint16_t cellvoltage3; /*< [mV] Battery pack cell 3 voltage*/
uint16_t cellvoltage4; /*< [mV] Battery pack cell 4 voltage*/
uint16_t cellvoltage5; /*< [mV] Battery pack cell 5 voltage*/
uint16_t cellvoltage6; /*< [mV] Battery pack cell 6 voltage*/
uint8_t SoC; /*< Battery pack state-of-charge*/
}) mavlink_sens_batmon_t;
#define MAVLINK_MSG_ID_SENS_BATMON_LEN 41
#define MAVLINK_MSG_ID_SENS_BATMON_MIN_LEN 41
#define MAVLINK_MSG_ID_209_LEN 41
#define MAVLINK_MSG_ID_209_MIN_LEN 41
#define MAVLINK_MSG_ID_SENS_BATMON_CRC 155
#define MAVLINK_MSG_ID_209_CRC 155
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_SENS_BATMON { \
209, \
"SENS_BATMON", \
15, \
{ { "batmon_timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_sens_batmon_t, batmon_timestamp) }, \
{ "temperature", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_sens_batmon_t, temperature) }, \
{ "voltage", NULL, MAVLINK_TYPE_UINT16_T, 0, 20, offsetof(mavlink_sens_batmon_t, voltage) }, \
{ "current", NULL, MAVLINK_TYPE_INT16_T, 0, 22, offsetof(mavlink_sens_batmon_t, current) }, \
{ "SoC", NULL, MAVLINK_TYPE_UINT8_T, 0, 40, offsetof(mavlink_sens_batmon_t, SoC) }, \
{ "batterystatus", NULL, MAVLINK_TYPE_UINT16_T, 0, 24, offsetof(mavlink_sens_batmon_t, batterystatus) }, \
{ "serialnumber", NULL, MAVLINK_TYPE_UINT16_T, 0, 26, offsetof(mavlink_sens_batmon_t, serialnumber) }, \
{ "safetystatus", NULL, MAVLINK_TYPE_UINT32_T, 0, 12, offsetof(mavlink_sens_batmon_t, safetystatus) }, \
{ "operationstatus", NULL, MAVLINK_TYPE_UINT32_T, 0, 16, offsetof(mavlink_sens_batmon_t, operationstatus) }, \
{ "cellvoltage1", NULL, MAVLINK_TYPE_UINT16_T, 0, 28, offsetof(mavlink_sens_batmon_t, cellvoltage1) }, \
{ "cellvoltage2", NULL, MAVLINK_TYPE_UINT16_T, 0, 30, offsetof(mavlink_sens_batmon_t, cellvoltage2) }, \
{ "cellvoltage3", NULL, MAVLINK_TYPE_UINT16_T, 0, 32, offsetof(mavlink_sens_batmon_t, cellvoltage3) }, \
{ "cellvoltage4", NULL, MAVLINK_TYPE_UINT16_T, 0, 34, offsetof(mavlink_sens_batmon_t, cellvoltage4) }, \
{ "cellvoltage5", NULL, MAVLINK_TYPE_UINT16_T, 0, 36, offsetof(mavlink_sens_batmon_t, cellvoltage5) }, \
{ "cellvoltage6", NULL, MAVLINK_TYPE_UINT16_T, 0, 38, offsetof(mavlink_sens_batmon_t, cellvoltage6) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_SENS_BATMON { \
"SENS_BATMON", \
15, \
{ { "batmon_timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_sens_batmon_t, batmon_timestamp) }, \
{ "temperature", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_sens_batmon_t, temperature) }, \
{ "voltage", NULL, MAVLINK_TYPE_UINT16_T, 0, 20, offsetof(mavlink_sens_batmon_t, voltage) }, \
{ "current", NULL, MAVLINK_TYPE_INT16_T, 0, 22, offsetof(mavlink_sens_batmon_t, current) }, \
{ "SoC", NULL, MAVLINK_TYPE_UINT8_T, 0, 40, offsetof(mavlink_sens_batmon_t, SoC) }, \
{ "batterystatus", NULL, MAVLINK_TYPE_UINT16_T, 0, 24, offsetof(mavlink_sens_batmon_t, batterystatus) }, \
{ "serialnumber", NULL, MAVLINK_TYPE_UINT16_T, 0, 26, offsetof(mavlink_sens_batmon_t, serialnumber) }, \
{ "safetystatus", NULL, MAVLINK_TYPE_UINT32_T, 0, 12, offsetof(mavlink_sens_batmon_t, safetystatus) }, \
{ "operationstatus", NULL, MAVLINK_TYPE_UINT32_T, 0, 16, offsetof(mavlink_sens_batmon_t, operationstatus) }, \
{ "cellvoltage1", NULL, MAVLINK_TYPE_UINT16_T, 0, 28, offsetof(mavlink_sens_batmon_t, cellvoltage1) }, \
{ "cellvoltage2", NULL, MAVLINK_TYPE_UINT16_T, 0, 30, offsetof(mavlink_sens_batmon_t, cellvoltage2) }, \
{ "cellvoltage3", NULL, MAVLINK_TYPE_UINT16_T, 0, 32, offsetof(mavlink_sens_batmon_t, cellvoltage3) }, \
{ "cellvoltage4", NULL, MAVLINK_TYPE_UINT16_T, 0, 34, offsetof(mavlink_sens_batmon_t, cellvoltage4) }, \
{ "cellvoltage5", NULL, MAVLINK_TYPE_UINT16_T, 0, 36, offsetof(mavlink_sens_batmon_t, cellvoltage5) }, \
{ "cellvoltage6", NULL, MAVLINK_TYPE_UINT16_T, 0, 38, offsetof(mavlink_sens_batmon_t, cellvoltage6) }, \
} \
}
#endif
/**
* @brief Pack a sens_batmon 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 batmon_timestamp [us] Time since system start
* @param temperature [degC] Battery pack temperature
* @param voltage [mV] Battery pack voltage
* @param current [mA] Battery pack current
* @param SoC Battery pack state-of-charge
* @param batterystatus Battery monitor status report bits in Hex
* @param serialnumber Battery monitor serial number in Hex
* @param safetystatus Battery monitor safetystatus report bits in Hex
* @param operationstatus Battery monitor operation status report bits in Hex
* @param cellvoltage1 [mV] Battery pack cell 1 voltage
* @param cellvoltage2 [mV] Battery pack cell 2 voltage
* @param cellvoltage3 [mV] Battery pack cell 3 voltage
* @param cellvoltage4 [mV] Battery pack cell 4 voltage
* @param cellvoltage5 [mV] Battery pack cell 5 voltage
* @param cellvoltage6 [mV] Battery pack cell 6 voltage
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_sens_batmon_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint64_t batmon_timestamp, float temperature, uint16_t voltage, int16_t current, uint8_t SoC, uint16_t batterystatus, uint16_t serialnumber, uint32_t safetystatus, uint32_t operationstatus, uint16_t cellvoltage1, uint16_t cellvoltage2, uint16_t cellvoltage3, uint16_t cellvoltage4, uint16_t cellvoltage5, uint16_t cellvoltage6)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENS_BATMON_LEN];
_mav_put_uint64_t(buf, 0, batmon_timestamp);
_mav_put_float(buf, 8, temperature);
_mav_put_uint32_t(buf, 12, safetystatus);
_mav_put_uint32_t(buf, 16, operationstatus);
_mav_put_uint16_t(buf, 20, voltage);
_mav_put_int16_t(buf, 22, current);
_mav_put_uint16_t(buf, 24, batterystatus);
_mav_put_uint16_t(buf, 26, serialnumber);
_mav_put_uint16_t(buf, 28, cellvoltage1);
_mav_put_uint16_t(buf, 30, cellvoltage2);
_mav_put_uint16_t(buf, 32, cellvoltage3);
_mav_put_uint16_t(buf, 34, cellvoltage4);
_mav_put_uint16_t(buf, 36, cellvoltage5);
_mav_put_uint16_t(buf, 38, cellvoltage6);
_mav_put_uint8_t(buf, 40, SoC);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SENS_BATMON_LEN);
#else
mavlink_sens_batmon_t packet;
packet.batmon_timestamp = batmon_timestamp;
packet.temperature = temperature;
packet.safetystatus = safetystatus;
packet.operationstatus = operationstatus;
packet.voltage = voltage;
packet.current = current;
packet.batterystatus = batterystatus;
packet.serialnumber = serialnumber;
packet.cellvoltage1 = cellvoltage1;
packet.cellvoltage2 = cellvoltage2;
packet.cellvoltage3 = cellvoltage3;
packet.cellvoltage4 = cellvoltage4;
packet.cellvoltage5 = cellvoltage5;
packet.cellvoltage6 = cellvoltage6;
packet.SoC = SoC;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SENS_BATMON_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_SENS_BATMON;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SENS_BATMON_MIN_LEN, MAVLINK_MSG_ID_SENS_BATMON_LEN, MAVLINK_MSG_ID_SENS_BATMON_CRC);
}
/**
* @brief Pack a sens_batmon 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
* @param batmon_timestamp [us] Time since system start
* @param temperature [degC] Battery pack temperature
* @param voltage [mV] Battery pack voltage
* @param current [mA] Battery pack current
* @param SoC Battery pack state-of-charge
* @param batterystatus Battery monitor status report bits in Hex
* @param serialnumber Battery monitor serial number in Hex
* @param safetystatus Battery monitor safetystatus report bits in Hex
* @param operationstatus Battery monitor operation status report bits in Hex
* @param cellvoltage1 [mV] Battery pack cell 1 voltage
* @param cellvoltage2 [mV] Battery pack cell 2 voltage
* @param cellvoltage3 [mV] Battery pack cell 3 voltage
* @param cellvoltage4 [mV] Battery pack cell 4 voltage
* @param cellvoltage5 [mV] Battery pack cell 5 voltage
* @param cellvoltage6 [mV] Battery pack cell 6 voltage
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_sens_batmon_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint64_t batmon_timestamp,float temperature,uint16_t voltage,int16_t current,uint8_t SoC,uint16_t batterystatus,uint16_t serialnumber,uint32_t safetystatus,uint32_t operationstatus,uint16_t cellvoltage1,uint16_t cellvoltage2,uint16_t cellvoltage3,uint16_t cellvoltage4,uint16_t cellvoltage5,uint16_t cellvoltage6)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENS_BATMON_LEN];
_mav_put_uint64_t(buf, 0, batmon_timestamp);
_mav_put_float(buf, 8, temperature);
_mav_put_uint32_t(buf, 12, safetystatus);
_mav_put_uint32_t(buf, 16, operationstatus);
_mav_put_uint16_t(buf, 20, voltage);
_mav_put_int16_t(buf, 22, current);
_mav_put_uint16_t(buf, 24, batterystatus);
_mav_put_uint16_t(buf, 26, serialnumber);
_mav_put_uint16_t(buf, 28, cellvoltage1);
_mav_put_uint16_t(buf, 30, cellvoltage2);
_mav_put_uint16_t(buf, 32, cellvoltage3);
_mav_put_uint16_t(buf, 34, cellvoltage4);
_mav_put_uint16_t(buf, 36, cellvoltage5);
_mav_put_uint16_t(buf, 38, cellvoltage6);
_mav_put_uint8_t(buf, 40, SoC);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SENS_BATMON_LEN);
#else
mavlink_sens_batmon_t packet;
packet.batmon_timestamp = batmon_timestamp;
packet.temperature = temperature;
packet.safetystatus = safetystatus;
packet.operationstatus = operationstatus;
packet.voltage = voltage;
packet.current = current;
packet.batterystatus = batterystatus;
packet.serialnumber = serialnumber;
packet.cellvoltage1 = cellvoltage1;
packet.cellvoltage2 = cellvoltage2;
packet.cellvoltage3 = cellvoltage3;
packet.cellvoltage4 = cellvoltage4;
packet.cellvoltage5 = cellvoltage5;
packet.cellvoltage6 = cellvoltage6;
packet.SoC = SoC;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SENS_BATMON_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_SENS_BATMON;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SENS_BATMON_MIN_LEN, MAVLINK_MSG_ID_SENS_BATMON_LEN, MAVLINK_MSG_ID_SENS_BATMON_CRC);
}
/**
* @brief Encode a sens_batmon 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 sens_batmon C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_sens_batmon_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_sens_batmon_t* sens_batmon)
{
return mavlink_msg_sens_batmon_pack(system_id, component_id, msg, sens_batmon->batmon_timestamp, sens_batmon->temperature, sens_batmon->voltage, sens_batmon->current, sens_batmon->SoC, sens_batmon->batterystatus, sens_batmon->serialnumber, sens_batmon->safetystatus, sens_batmon->operationstatus, sens_batmon->cellvoltage1, sens_batmon->cellvoltage2, sens_batmon->cellvoltage3, sens_batmon->cellvoltage4, sens_batmon->cellvoltage5, sens_batmon->cellvoltage6);
}
/**
* @brief Encode a sens_batmon 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 sens_batmon C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_sens_batmon_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_sens_batmon_t* sens_batmon)
{
return mavlink_msg_sens_batmon_pack_chan(system_id, component_id, chan, msg, sens_batmon->batmon_timestamp, sens_batmon->temperature, sens_batmon->voltage, sens_batmon->current, sens_batmon->SoC, sens_batmon->batterystatus, sens_batmon->serialnumber, sens_batmon->safetystatus, sens_batmon->operationstatus, sens_batmon->cellvoltage1, sens_batmon->cellvoltage2, sens_batmon->cellvoltage3, sens_batmon->cellvoltage4, sens_batmon->cellvoltage5, sens_batmon->cellvoltage6);
}
/**
* @brief Send a sens_batmon message
* @param chan MAVLink channel to send the message
*
* @param batmon_timestamp [us] Time since system start
* @param temperature [degC] Battery pack temperature
* @param voltage [mV] Battery pack voltage
* @param current [mA] Battery pack current
* @param SoC Battery pack state-of-charge
* @param batterystatus Battery monitor status report bits in Hex
* @param serialnumber Battery monitor serial number in Hex
* @param safetystatus Battery monitor safetystatus report bits in Hex
* @param operationstatus Battery monitor operation status report bits in Hex
* @param cellvoltage1 [mV] Battery pack cell 1 voltage
* @param cellvoltage2 [mV] Battery pack cell 2 voltage
* @param cellvoltage3 [mV] Battery pack cell 3 voltage
* @param cellvoltage4 [mV] Battery pack cell 4 voltage
* @param cellvoltage5 [mV] Battery pack cell 5 voltage
* @param cellvoltage6 [mV] Battery pack cell 6 voltage
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_sens_batmon_send(mavlink_channel_t chan, uint64_t batmon_timestamp, float temperature, uint16_t voltage, int16_t current, uint8_t SoC, uint16_t batterystatus, uint16_t serialnumber, uint32_t safetystatus, uint32_t operationstatus, uint16_t cellvoltage1, uint16_t cellvoltage2, uint16_t cellvoltage3, uint16_t cellvoltage4, uint16_t cellvoltage5, uint16_t cellvoltage6)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENS_BATMON_LEN];
_mav_put_uint64_t(buf, 0, batmon_timestamp);
_mav_put_float(buf, 8, temperature);
_mav_put_uint32_t(buf, 12, safetystatus);
_mav_put_uint32_t(buf, 16, operationstatus);
_mav_put_uint16_t(buf, 20, voltage);
_mav_put_int16_t(buf, 22, current);
_mav_put_uint16_t(buf, 24, batterystatus);
_mav_put_uint16_t(buf, 26, serialnumber);
_mav_put_uint16_t(buf, 28, cellvoltage1);
_mav_put_uint16_t(buf, 30, cellvoltage2);
_mav_put_uint16_t(buf, 32, cellvoltage3);
_mav_put_uint16_t(buf, 34, cellvoltage4);
_mav_put_uint16_t(buf, 36, cellvoltage5);
_mav_put_uint16_t(buf, 38, cellvoltage6);
_mav_put_uint8_t(buf, 40, SoC);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_BATMON, buf, MAVLINK_MSG_ID_SENS_BATMON_MIN_LEN, MAVLINK_MSG_ID_SENS_BATMON_LEN, MAVLINK_MSG_ID_SENS_BATMON_CRC);
#else
mavlink_sens_batmon_t packet;
packet.batmon_timestamp = batmon_timestamp;
packet.temperature = temperature;
packet.safetystatus = safetystatus;
packet.operationstatus = operationstatus;
packet.voltage = voltage;
packet.current = current;
packet.batterystatus = batterystatus;
packet.serialnumber = serialnumber;
packet.cellvoltage1 = cellvoltage1;
packet.cellvoltage2 = cellvoltage2;
packet.cellvoltage3 = cellvoltage3;
packet.cellvoltage4 = cellvoltage4;
packet.cellvoltage5 = cellvoltage5;
packet.cellvoltage6 = cellvoltage6;
packet.SoC = SoC;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_BATMON, (const char *)&packet, MAVLINK_MSG_ID_SENS_BATMON_MIN_LEN, MAVLINK_MSG_ID_SENS_BATMON_LEN, MAVLINK_MSG_ID_SENS_BATMON_CRC);
#endif
}
/**
* @brief Send a sens_batmon message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_sens_batmon_send_struct(mavlink_channel_t chan, const mavlink_sens_batmon_t* sens_batmon)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_sens_batmon_send(chan, sens_batmon->batmon_timestamp, sens_batmon->temperature, sens_batmon->voltage, sens_batmon->current, sens_batmon->SoC, sens_batmon->batterystatus, sens_batmon->serialnumber, sens_batmon->safetystatus, sens_batmon->operationstatus, sens_batmon->cellvoltage1, sens_batmon->cellvoltage2, sens_batmon->cellvoltage3, sens_batmon->cellvoltage4, sens_batmon->cellvoltage5, sens_batmon->cellvoltage6);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_BATMON, (const char *)sens_batmon, MAVLINK_MSG_ID_SENS_BATMON_MIN_LEN, MAVLINK_MSG_ID_SENS_BATMON_LEN, MAVLINK_MSG_ID_SENS_BATMON_CRC);
#endif
}
#if MAVLINK_MSG_ID_SENS_BATMON_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.
*/
static inline void mavlink_msg_sens_batmon_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t batmon_timestamp, float temperature, uint16_t voltage, int16_t current, uint8_t SoC, uint16_t batterystatus, uint16_t serialnumber, uint32_t safetystatus, uint32_t operationstatus, uint16_t cellvoltage1, uint16_t cellvoltage2, uint16_t cellvoltage3, uint16_t cellvoltage4, uint16_t cellvoltage5, uint16_t cellvoltage6)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_uint64_t(buf, 0, batmon_timestamp);
_mav_put_float(buf, 8, temperature);
_mav_put_uint32_t(buf, 12, safetystatus);
_mav_put_uint32_t(buf, 16, operationstatus);
_mav_put_uint16_t(buf, 20, voltage);
_mav_put_int16_t(buf, 22, current);
_mav_put_uint16_t(buf, 24, batterystatus);
_mav_put_uint16_t(buf, 26, serialnumber);
_mav_put_uint16_t(buf, 28, cellvoltage1);
_mav_put_uint16_t(buf, 30, cellvoltage2);
_mav_put_uint16_t(buf, 32, cellvoltage3);
_mav_put_uint16_t(buf, 34, cellvoltage4);
_mav_put_uint16_t(buf, 36, cellvoltage5);
_mav_put_uint16_t(buf, 38, cellvoltage6);
_mav_put_uint8_t(buf, 40, SoC);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_BATMON, buf, MAVLINK_MSG_ID_SENS_BATMON_MIN_LEN, MAVLINK_MSG_ID_SENS_BATMON_LEN, MAVLINK_MSG_ID_SENS_BATMON_CRC);
#else
mavlink_sens_batmon_t *packet = (mavlink_sens_batmon_t *)msgbuf;
packet->batmon_timestamp = batmon_timestamp;
packet->temperature = temperature;
packet->safetystatus = safetystatus;
packet->operationstatus = operationstatus;
packet->voltage = voltage;
packet->current = current;
packet->batterystatus = batterystatus;
packet->serialnumber = serialnumber;
packet->cellvoltage1 = cellvoltage1;
packet->cellvoltage2 = cellvoltage2;
packet->cellvoltage3 = cellvoltage3;
packet->cellvoltage4 = cellvoltage4;
packet->cellvoltage5 = cellvoltage5;
packet->cellvoltage6 = cellvoltage6;
packet->SoC = SoC;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_BATMON, (const char *)packet, MAVLINK_MSG_ID_SENS_BATMON_MIN_LEN, MAVLINK_MSG_ID_SENS_BATMON_LEN, MAVLINK_MSG_ID_SENS_BATMON_CRC);
#endif
}
#endif
#endif
// MESSAGE SENS_BATMON UNPACKING
/**
* @brief Get field batmon_timestamp from sens_batmon message
*
* @return [us] Time since system start
*/
static inline uint64_t mavlink_msg_sens_batmon_get_batmon_timestamp(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint64_t(msg, 0);
}
/**
* @brief Get field temperature from sens_batmon message
*
* @return [degC] Battery pack temperature
*/
static inline float mavlink_msg_sens_batmon_get_temperature(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 8);
}
/**
* @brief Get field voltage from sens_batmon message
*
* @return [mV] Battery pack voltage
*/
static inline uint16_t mavlink_msg_sens_batmon_get_voltage(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 20);
}
/**
* @brief Get field current from sens_batmon message
*
* @return [mA] Battery pack current
*/
static inline int16_t mavlink_msg_sens_batmon_get_current(const mavlink_message_t* msg)
{
return _MAV_RETURN_int16_t(msg, 22);
}
/**
* @brief Get field SoC from sens_batmon message
*
* @return Battery pack state-of-charge
*/
static inline uint8_t mavlink_msg_sens_batmon_get_SoC(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 40);
}
/**
* @brief Get field batterystatus from sens_batmon message
*
* @return Battery monitor status report bits in Hex
*/
static inline uint16_t mavlink_msg_sens_batmon_get_batterystatus(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 24);
}
/**
* @brief Get field serialnumber from sens_batmon message
*
* @return Battery monitor serial number in Hex
*/
static inline uint16_t mavlink_msg_sens_batmon_get_serialnumber(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 26);
}
/**
* @brief Get field safetystatus from sens_batmon message
*
* @return Battery monitor safetystatus report bits in Hex
*/
static inline uint32_t mavlink_msg_sens_batmon_get_safetystatus(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 12);
}
/**
* @brief Get field operationstatus from sens_batmon message
*
* @return Battery monitor operation status report bits in Hex
*/
static inline uint32_t mavlink_msg_sens_batmon_get_operationstatus(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint32_t(msg, 16);
}
/**
* @brief Get field cellvoltage1 from sens_batmon message
*
* @return [mV] Battery pack cell 1 voltage
*/
static inline uint16_t mavlink_msg_sens_batmon_get_cellvoltage1(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 28);
}
/**
* @brief Get field cellvoltage2 from sens_batmon message
*
* @return [mV] Battery pack cell 2 voltage
*/
static inline uint16_t mavlink_msg_sens_batmon_get_cellvoltage2(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 30);
}
/**
* @brief Get field cellvoltage3 from sens_batmon message
*
* @return [mV] Battery pack cell 3 voltage
*/
static inline uint16_t mavlink_msg_sens_batmon_get_cellvoltage3(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 32);
}
/**
* @brief Get field cellvoltage4 from sens_batmon message
*
* @return [mV] Battery pack cell 4 voltage
*/
static inline uint16_t mavlink_msg_sens_batmon_get_cellvoltage4(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 34);
}
/**
* @brief Get field cellvoltage5 from sens_batmon message
*
* @return [mV] Battery pack cell 5 voltage
*/
static inline uint16_t mavlink_msg_sens_batmon_get_cellvoltage5(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 36);
}
/**
* @brief Get field cellvoltage6 from sens_batmon message
*
* @return [mV] Battery pack cell 6 voltage
*/
static inline uint16_t mavlink_msg_sens_batmon_get_cellvoltage6(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 38);
}
/**
* @brief Decode a sens_batmon message into a struct
*
* @param msg The message to decode
* @param sens_batmon C-struct to decode the message contents into
*/
static inline void mavlink_msg_sens_batmon_decode(const mavlink_message_t* msg, mavlink_sens_batmon_t* sens_batmon)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
sens_batmon->batmon_timestamp = mavlink_msg_sens_batmon_get_batmon_timestamp(msg);
sens_batmon->temperature = mavlink_msg_sens_batmon_get_temperature(msg);
sens_batmon->safetystatus = mavlink_msg_sens_batmon_get_safetystatus(msg);
sens_batmon->operationstatus = mavlink_msg_sens_batmon_get_operationstatus(msg);
sens_batmon->voltage = mavlink_msg_sens_batmon_get_voltage(msg);
sens_batmon->current = mavlink_msg_sens_batmon_get_current(msg);
sens_batmon->batterystatus = mavlink_msg_sens_batmon_get_batterystatus(msg);
sens_batmon->serialnumber = mavlink_msg_sens_batmon_get_serialnumber(msg);
sens_batmon->cellvoltage1 = mavlink_msg_sens_batmon_get_cellvoltage1(msg);
sens_batmon->cellvoltage2 = mavlink_msg_sens_batmon_get_cellvoltage2(msg);
sens_batmon->cellvoltage3 = mavlink_msg_sens_batmon_get_cellvoltage3(msg);
sens_batmon->cellvoltage4 = mavlink_msg_sens_batmon_get_cellvoltage4(msg);
sens_batmon->cellvoltage5 = mavlink_msg_sens_batmon_get_cellvoltage5(msg);
sens_batmon->cellvoltage6 = mavlink_msg_sens_batmon_get_cellvoltage6(msg);
sens_batmon->SoC = mavlink_msg_sens_batmon_get_SoC(msg);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_SENS_BATMON_LEN? msg->len : MAVLINK_MSG_ID_SENS_BATMON_LEN;
memset(sens_batmon, 0, MAVLINK_MSG_ID_SENS_BATMON_LEN);
memcpy(sens_batmon, _MAV_PAYLOAD(msg), len);
#endif
}

View File

@@ -0,0 +1,513 @@
#pragma once
// MESSAGE SENS_MPPT PACKING
#define MAVLINK_MSG_ID_SENS_MPPT 202
MAVPACKED(
typedef struct __mavlink_sens_mppt_t {
uint64_t mppt_timestamp; /*< [us] MPPT last timestamp */
float mppt1_volt; /*< [V] MPPT1 voltage */
float mppt1_amp; /*< [A] MPPT1 current */
float mppt2_volt; /*< [V] MPPT2 voltage */
float mppt2_amp; /*< [A] MPPT2 current */
float mppt3_volt; /*< [V] MPPT3 voltage */
float mppt3_amp; /*< [A] MPPT3 current */
uint16_t mppt1_pwm; /*< [us] MPPT1 pwm */
uint16_t mppt2_pwm; /*< [us] MPPT2 pwm */
uint16_t mppt3_pwm; /*< [us] MPPT3 pwm */
uint8_t mppt1_status; /*< MPPT1 status */
uint8_t mppt2_status; /*< MPPT2 status */
uint8_t mppt3_status; /*< MPPT3 status */
}) mavlink_sens_mppt_t;
#define MAVLINK_MSG_ID_SENS_MPPT_LEN 41
#define MAVLINK_MSG_ID_SENS_MPPT_MIN_LEN 41
#define MAVLINK_MSG_ID_202_LEN 41
#define MAVLINK_MSG_ID_202_MIN_LEN 41
#define MAVLINK_MSG_ID_SENS_MPPT_CRC 231
#define MAVLINK_MSG_ID_202_CRC 231
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_SENS_MPPT { \
202, \
"SENS_MPPT", \
13, \
{ { "mppt_timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_sens_mppt_t, mppt_timestamp) }, \
{ "mppt1_volt", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_sens_mppt_t, mppt1_volt) }, \
{ "mppt1_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_sens_mppt_t, mppt1_amp) }, \
{ "mppt1_pwm", NULL, MAVLINK_TYPE_UINT16_T, 0, 32, offsetof(mavlink_sens_mppt_t, mppt1_pwm) }, \
{ "mppt1_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 38, offsetof(mavlink_sens_mppt_t, mppt1_status) }, \
{ "mppt2_volt", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_sens_mppt_t, mppt2_volt) }, \
{ "mppt2_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_sens_mppt_t, mppt2_amp) }, \
{ "mppt2_pwm", NULL, MAVLINK_TYPE_UINT16_T, 0, 34, offsetof(mavlink_sens_mppt_t, mppt2_pwm) }, \
{ "mppt2_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 39, offsetof(mavlink_sens_mppt_t, mppt2_status) }, \
{ "mppt3_volt", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_sens_mppt_t, mppt3_volt) }, \
{ "mppt3_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_sens_mppt_t, mppt3_amp) }, \
{ "mppt3_pwm", NULL, MAVLINK_TYPE_UINT16_T, 0, 36, offsetof(mavlink_sens_mppt_t, mppt3_pwm) }, \
{ "mppt3_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 40, offsetof(mavlink_sens_mppt_t, mppt3_status) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_SENS_MPPT { \
"SENS_MPPT", \
13, \
{ { "mppt_timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_sens_mppt_t, mppt_timestamp) }, \
{ "mppt1_volt", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_sens_mppt_t, mppt1_volt) }, \
{ "mppt1_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_sens_mppt_t, mppt1_amp) }, \
{ "mppt1_pwm", NULL, MAVLINK_TYPE_UINT16_T, 0, 32, offsetof(mavlink_sens_mppt_t, mppt1_pwm) }, \
{ "mppt1_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 38, offsetof(mavlink_sens_mppt_t, mppt1_status) }, \
{ "mppt2_volt", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_sens_mppt_t, mppt2_volt) }, \
{ "mppt2_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_sens_mppt_t, mppt2_amp) }, \
{ "mppt2_pwm", NULL, MAVLINK_TYPE_UINT16_T, 0, 34, offsetof(mavlink_sens_mppt_t, mppt2_pwm) }, \
{ "mppt2_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 39, offsetof(mavlink_sens_mppt_t, mppt2_status) }, \
{ "mppt3_volt", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_sens_mppt_t, mppt3_volt) }, \
{ "mppt3_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_sens_mppt_t, mppt3_amp) }, \
{ "mppt3_pwm", NULL, MAVLINK_TYPE_UINT16_T, 0, 36, offsetof(mavlink_sens_mppt_t, mppt3_pwm) }, \
{ "mppt3_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 40, offsetof(mavlink_sens_mppt_t, mppt3_status) }, \
} \
}
#endif
/**
* @brief Pack a sens_mppt 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 mppt_timestamp [us] MPPT last timestamp
* @param mppt1_volt [V] MPPT1 voltage
* @param mppt1_amp [A] MPPT1 current
* @param mppt1_pwm [us] MPPT1 pwm
* @param mppt1_status MPPT1 status
* @param mppt2_volt [V] MPPT2 voltage
* @param mppt2_amp [A] MPPT2 current
* @param mppt2_pwm [us] MPPT2 pwm
* @param mppt2_status MPPT2 status
* @param mppt3_volt [V] MPPT3 voltage
* @param mppt3_amp [A] MPPT3 current
* @param mppt3_pwm [us] MPPT3 pwm
* @param mppt3_status MPPT3 status
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_sens_mppt_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint64_t mppt_timestamp, float mppt1_volt, float mppt1_amp, uint16_t mppt1_pwm, uint8_t mppt1_status, float mppt2_volt, float mppt2_amp, uint16_t mppt2_pwm, uint8_t mppt2_status, float mppt3_volt, float mppt3_amp, uint16_t mppt3_pwm, uint8_t mppt3_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENS_MPPT_LEN];
_mav_put_uint64_t(buf, 0, mppt_timestamp);
_mav_put_float(buf, 8, mppt1_volt);
_mav_put_float(buf, 12, mppt1_amp);
_mav_put_float(buf, 16, mppt2_volt);
_mav_put_float(buf, 20, mppt2_amp);
_mav_put_float(buf, 24, mppt3_volt);
_mav_put_float(buf, 28, mppt3_amp);
_mav_put_uint16_t(buf, 32, mppt1_pwm);
_mav_put_uint16_t(buf, 34, mppt2_pwm);
_mav_put_uint16_t(buf, 36, mppt3_pwm);
_mav_put_uint8_t(buf, 38, mppt1_status);
_mav_put_uint8_t(buf, 39, mppt2_status);
_mav_put_uint8_t(buf, 40, mppt3_status);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SENS_MPPT_LEN);
#else
mavlink_sens_mppt_t packet;
packet.mppt_timestamp = mppt_timestamp;
packet.mppt1_volt = mppt1_volt;
packet.mppt1_amp = mppt1_amp;
packet.mppt2_volt = mppt2_volt;
packet.mppt2_amp = mppt2_amp;
packet.mppt3_volt = mppt3_volt;
packet.mppt3_amp = mppt3_amp;
packet.mppt1_pwm = mppt1_pwm;
packet.mppt2_pwm = mppt2_pwm;
packet.mppt3_pwm = mppt3_pwm;
packet.mppt1_status = mppt1_status;
packet.mppt2_status = mppt2_status;
packet.mppt3_status = mppt3_status;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SENS_MPPT_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_SENS_MPPT;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SENS_MPPT_MIN_LEN, MAVLINK_MSG_ID_SENS_MPPT_LEN, MAVLINK_MSG_ID_SENS_MPPT_CRC);
}
/**
* @brief Pack a sens_mppt 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
* @param mppt_timestamp [us] MPPT last timestamp
* @param mppt1_volt [V] MPPT1 voltage
* @param mppt1_amp [A] MPPT1 current
* @param mppt1_pwm [us] MPPT1 pwm
* @param mppt1_status MPPT1 status
* @param mppt2_volt [V] MPPT2 voltage
* @param mppt2_amp [A] MPPT2 current
* @param mppt2_pwm [us] MPPT2 pwm
* @param mppt2_status MPPT2 status
* @param mppt3_volt [V] MPPT3 voltage
* @param mppt3_amp [A] MPPT3 current
* @param mppt3_pwm [us] MPPT3 pwm
* @param mppt3_status MPPT3 status
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_sens_mppt_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint64_t mppt_timestamp,float mppt1_volt,float mppt1_amp,uint16_t mppt1_pwm,uint8_t mppt1_status,float mppt2_volt,float mppt2_amp,uint16_t mppt2_pwm,uint8_t mppt2_status,float mppt3_volt,float mppt3_amp,uint16_t mppt3_pwm,uint8_t mppt3_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENS_MPPT_LEN];
_mav_put_uint64_t(buf, 0, mppt_timestamp);
_mav_put_float(buf, 8, mppt1_volt);
_mav_put_float(buf, 12, mppt1_amp);
_mav_put_float(buf, 16, mppt2_volt);
_mav_put_float(buf, 20, mppt2_amp);
_mav_put_float(buf, 24, mppt3_volt);
_mav_put_float(buf, 28, mppt3_amp);
_mav_put_uint16_t(buf, 32, mppt1_pwm);
_mav_put_uint16_t(buf, 34, mppt2_pwm);
_mav_put_uint16_t(buf, 36, mppt3_pwm);
_mav_put_uint8_t(buf, 38, mppt1_status);
_mav_put_uint8_t(buf, 39, mppt2_status);
_mav_put_uint8_t(buf, 40, mppt3_status);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SENS_MPPT_LEN);
#else
mavlink_sens_mppt_t packet;
packet.mppt_timestamp = mppt_timestamp;
packet.mppt1_volt = mppt1_volt;
packet.mppt1_amp = mppt1_amp;
packet.mppt2_volt = mppt2_volt;
packet.mppt2_amp = mppt2_amp;
packet.mppt3_volt = mppt3_volt;
packet.mppt3_amp = mppt3_amp;
packet.mppt1_pwm = mppt1_pwm;
packet.mppt2_pwm = mppt2_pwm;
packet.mppt3_pwm = mppt3_pwm;
packet.mppt1_status = mppt1_status;
packet.mppt2_status = mppt2_status;
packet.mppt3_status = mppt3_status;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SENS_MPPT_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_SENS_MPPT;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SENS_MPPT_MIN_LEN, MAVLINK_MSG_ID_SENS_MPPT_LEN, MAVLINK_MSG_ID_SENS_MPPT_CRC);
}
/**
* @brief Encode a sens_mppt 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 sens_mppt C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_sens_mppt_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_sens_mppt_t* sens_mppt)
{
return mavlink_msg_sens_mppt_pack(system_id, component_id, msg, sens_mppt->mppt_timestamp, sens_mppt->mppt1_volt, sens_mppt->mppt1_amp, sens_mppt->mppt1_pwm, sens_mppt->mppt1_status, sens_mppt->mppt2_volt, sens_mppt->mppt2_amp, sens_mppt->mppt2_pwm, sens_mppt->mppt2_status, sens_mppt->mppt3_volt, sens_mppt->mppt3_amp, sens_mppt->mppt3_pwm, sens_mppt->mppt3_status);
}
/**
* @brief Encode a sens_mppt 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 sens_mppt C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_sens_mppt_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_sens_mppt_t* sens_mppt)
{
return mavlink_msg_sens_mppt_pack_chan(system_id, component_id, chan, msg, sens_mppt->mppt_timestamp, sens_mppt->mppt1_volt, sens_mppt->mppt1_amp, sens_mppt->mppt1_pwm, sens_mppt->mppt1_status, sens_mppt->mppt2_volt, sens_mppt->mppt2_amp, sens_mppt->mppt2_pwm, sens_mppt->mppt2_status, sens_mppt->mppt3_volt, sens_mppt->mppt3_amp, sens_mppt->mppt3_pwm, sens_mppt->mppt3_status);
}
/**
* @brief Send a sens_mppt message
* @param chan MAVLink channel to send the message
*
* @param mppt_timestamp [us] MPPT last timestamp
* @param mppt1_volt [V] MPPT1 voltage
* @param mppt1_amp [A] MPPT1 current
* @param mppt1_pwm [us] MPPT1 pwm
* @param mppt1_status MPPT1 status
* @param mppt2_volt [V] MPPT2 voltage
* @param mppt2_amp [A] MPPT2 current
* @param mppt2_pwm [us] MPPT2 pwm
* @param mppt2_status MPPT2 status
* @param mppt3_volt [V] MPPT3 voltage
* @param mppt3_amp [A] MPPT3 current
* @param mppt3_pwm [us] MPPT3 pwm
* @param mppt3_status MPPT3 status
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_sens_mppt_send(mavlink_channel_t chan, uint64_t mppt_timestamp, float mppt1_volt, float mppt1_amp, uint16_t mppt1_pwm, uint8_t mppt1_status, float mppt2_volt, float mppt2_amp, uint16_t mppt2_pwm, uint8_t mppt2_status, float mppt3_volt, float mppt3_amp, uint16_t mppt3_pwm, uint8_t mppt3_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENS_MPPT_LEN];
_mav_put_uint64_t(buf, 0, mppt_timestamp);
_mav_put_float(buf, 8, mppt1_volt);
_mav_put_float(buf, 12, mppt1_amp);
_mav_put_float(buf, 16, mppt2_volt);
_mav_put_float(buf, 20, mppt2_amp);
_mav_put_float(buf, 24, mppt3_volt);
_mav_put_float(buf, 28, mppt3_amp);
_mav_put_uint16_t(buf, 32, mppt1_pwm);
_mav_put_uint16_t(buf, 34, mppt2_pwm);
_mav_put_uint16_t(buf, 36, mppt3_pwm);
_mav_put_uint8_t(buf, 38, mppt1_status);
_mav_put_uint8_t(buf, 39, mppt2_status);
_mav_put_uint8_t(buf, 40, mppt3_status);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_MPPT, buf, MAVLINK_MSG_ID_SENS_MPPT_MIN_LEN, MAVLINK_MSG_ID_SENS_MPPT_LEN, MAVLINK_MSG_ID_SENS_MPPT_CRC);
#else
mavlink_sens_mppt_t packet;
packet.mppt_timestamp = mppt_timestamp;
packet.mppt1_volt = mppt1_volt;
packet.mppt1_amp = mppt1_amp;
packet.mppt2_volt = mppt2_volt;
packet.mppt2_amp = mppt2_amp;
packet.mppt3_volt = mppt3_volt;
packet.mppt3_amp = mppt3_amp;
packet.mppt1_pwm = mppt1_pwm;
packet.mppt2_pwm = mppt2_pwm;
packet.mppt3_pwm = mppt3_pwm;
packet.mppt1_status = mppt1_status;
packet.mppt2_status = mppt2_status;
packet.mppt3_status = mppt3_status;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_MPPT, (const char *)&packet, MAVLINK_MSG_ID_SENS_MPPT_MIN_LEN, MAVLINK_MSG_ID_SENS_MPPT_LEN, MAVLINK_MSG_ID_SENS_MPPT_CRC);
#endif
}
/**
* @brief Send a sens_mppt message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_sens_mppt_send_struct(mavlink_channel_t chan, const mavlink_sens_mppt_t* sens_mppt)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_sens_mppt_send(chan, sens_mppt->mppt_timestamp, sens_mppt->mppt1_volt, sens_mppt->mppt1_amp, sens_mppt->mppt1_pwm, sens_mppt->mppt1_status, sens_mppt->mppt2_volt, sens_mppt->mppt2_amp, sens_mppt->mppt2_pwm, sens_mppt->mppt2_status, sens_mppt->mppt3_volt, sens_mppt->mppt3_amp, sens_mppt->mppt3_pwm, sens_mppt->mppt3_status);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_MPPT, (const char *)sens_mppt, MAVLINK_MSG_ID_SENS_MPPT_MIN_LEN, MAVLINK_MSG_ID_SENS_MPPT_LEN, MAVLINK_MSG_ID_SENS_MPPT_CRC);
#endif
}
#if MAVLINK_MSG_ID_SENS_MPPT_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.
*/
static inline void mavlink_msg_sens_mppt_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t mppt_timestamp, float mppt1_volt, float mppt1_amp, uint16_t mppt1_pwm, uint8_t mppt1_status, float mppt2_volt, float mppt2_amp, uint16_t mppt2_pwm, uint8_t mppt2_status, float mppt3_volt, float mppt3_amp, uint16_t mppt3_pwm, uint8_t mppt3_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_uint64_t(buf, 0, mppt_timestamp);
_mav_put_float(buf, 8, mppt1_volt);
_mav_put_float(buf, 12, mppt1_amp);
_mav_put_float(buf, 16, mppt2_volt);
_mav_put_float(buf, 20, mppt2_amp);
_mav_put_float(buf, 24, mppt3_volt);
_mav_put_float(buf, 28, mppt3_amp);
_mav_put_uint16_t(buf, 32, mppt1_pwm);
_mav_put_uint16_t(buf, 34, mppt2_pwm);
_mav_put_uint16_t(buf, 36, mppt3_pwm);
_mav_put_uint8_t(buf, 38, mppt1_status);
_mav_put_uint8_t(buf, 39, mppt2_status);
_mav_put_uint8_t(buf, 40, mppt3_status);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_MPPT, buf, MAVLINK_MSG_ID_SENS_MPPT_MIN_LEN, MAVLINK_MSG_ID_SENS_MPPT_LEN, MAVLINK_MSG_ID_SENS_MPPT_CRC);
#else
mavlink_sens_mppt_t *packet = (mavlink_sens_mppt_t *)msgbuf;
packet->mppt_timestamp = mppt_timestamp;
packet->mppt1_volt = mppt1_volt;
packet->mppt1_amp = mppt1_amp;
packet->mppt2_volt = mppt2_volt;
packet->mppt2_amp = mppt2_amp;
packet->mppt3_volt = mppt3_volt;
packet->mppt3_amp = mppt3_amp;
packet->mppt1_pwm = mppt1_pwm;
packet->mppt2_pwm = mppt2_pwm;
packet->mppt3_pwm = mppt3_pwm;
packet->mppt1_status = mppt1_status;
packet->mppt2_status = mppt2_status;
packet->mppt3_status = mppt3_status;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_MPPT, (const char *)packet, MAVLINK_MSG_ID_SENS_MPPT_MIN_LEN, MAVLINK_MSG_ID_SENS_MPPT_LEN, MAVLINK_MSG_ID_SENS_MPPT_CRC);
#endif
}
#endif
#endif
// MESSAGE SENS_MPPT UNPACKING
/**
* @brief Get field mppt_timestamp from sens_mppt message
*
* @return [us] MPPT last timestamp
*/
static inline uint64_t mavlink_msg_sens_mppt_get_mppt_timestamp(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint64_t(msg, 0);
}
/**
* @brief Get field mppt1_volt from sens_mppt message
*
* @return [V] MPPT1 voltage
*/
static inline float mavlink_msg_sens_mppt_get_mppt1_volt(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 8);
}
/**
* @brief Get field mppt1_amp from sens_mppt message
*
* @return [A] MPPT1 current
*/
static inline float mavlink_msg_sens_mppt_get_mppt1_amp(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 12);
}
/**
* @brief Get field mppt1_pwm from sens_mppt message
*
* @return [us] MPPT1 pwm
*/
static inline uint16_t mavlink_msg_sens_mppt_get_mppt1_pwm(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 32);
}
/**
* @brief Get field mppt1_status from sens_mppt message
*
* @return MPPT1 status
*/
static inline uint8_t mavlink_msg_sens_mppt_get_mppt1_status(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 38);
}
/**
* @brief Get field mppt2_volt from sens_mppt message
*
* @return [V] MPPT2 voltage
*/
static inline float mavlink_msg_sens_mppt_get_mppt2_volt(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 16);
}
/**
* @brief Get field mppt2_amp from sens_mppt message
*
* @return [A] MPPT2 current
*/
static inline float mavlink_msg_sens_mppt_get_mppt2_amp(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 20);
}
/**
* @brief Get field mppt2_pwm from sens_mppt message
*
* @return [us] MPPT2 pwm
*/
static inline uint16_t mavlink_msg_sens_mppt_get_mppt2_pwm(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 34);
}
/**
* @brief Get field mppt2_status from sens_mppt message
*
* @return MPPT2 status
*/
static inline uint8_t mavlink_msg_sens_mppt_get_mppt2_status(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 39);
}
/**
* @brief Get field mppt3_volt from sens_mppt message
*
* @return [V] MPPT3 voltage
*/
static inline float mavlink_msg_sens_mppt_get_mppt3_volt(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 24);
}
/**
* @brief Get field mppt3_amp from sens_mppt message
*
* @return [A] MPPT3 current
*/
static inline float mavlink_msg_sens_mppt_get_mppt3_amp(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 28);
}
/**
* @brief Get field mppt3_pwm from sens_mppt message
*
* @return [us] MPPT3 pwm
*/
static inline uint16_t mavlink_msg_sens_mppt_get_mppt3_pwm(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 36);
}
/**
* @brief Get field mppt3_status from sens_mppt message
*
* @return MPPT3 status
*/
static inline uint8_t mavlink_msg_sens_mppt_get_mppt3_status(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 40);
}
/**
* @brief Decode a sens_mppt message into a struct
*
* @param msg The message to decode
* @param sens_mppt C-struct to decode the message contents into
*/
static inline void mavlink_msg_sens_mppt_decode(const mavlink_message_t* msg, mavlink_sens_mppt_t* sens_mppt)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
sens_mppt->mppt_timestamp = mavlink_msg_sens_mppt_get_mppt_timestamp(msg);
sens_mppt->mppt1_volt = mavlink_msg_sens_mppt_get_mppt1_volt(msg);
sens_mppt->mppt1_amp = mavlink_msg_sens_mppt_get_mppt1_amp(msg);
sens_mppt->mppt2_volt = mavlink_msg_sens_mppt_get_mppt2_volt(msg);
sens_mppt->mppt2_amp = mavlink_msg_sens_mppt_get_mppt2_amp(msg);
sens_mppt->mppt3_volt = mavlink_msg_sens_mppt_get_mppt3_volt(msg);
sens_mppt->mppt3_amp = mavlink_msg_sens_mppt_get_mppt3_amp(msg);
sens_mppt->mppt1_pwm = mavlink_msg_sens_mppt_get_mppt1_pwm(msg);
sens_mppt->mppt2_pwm = mavlink_msg_sens_mppt_get_mppt2_pwm(msg);
sens_mppt->mppt3_pwm = mavlink_msg_sens_mppt_get_mppt3_pwm(msg);
sens_mppt->mppt1_status = mavlink_msg_sens_mppt_get_mppt1_status(msg);
sens_mppt->mppt2_status = mavlink_msg_sens_mppt_get_mppt2_status(msg);
sens_mppt->mppt3_status = mavlink_msg_sens_mppt_get_mppt3_status(msg);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_SENS_MPPT_LEN? msg->len : MAVLINK_MSG_ID_SENS_MPPT_LEN;
memset(sens_mppt, 0, MAVLINK_MSG_ID_SENS_MPPT_LEN);
memcpy(sens_mppt, _MAV_PAYLOAD(msg), len);
#endif
}

View File

@@ -0,0 +1,288 @@
#pragma once
// MESSAGE SENS_POWER PACKING
#define MAVLINK_MSG_ID_SENS_POWER 201
MAVPACKED(
typedef struct __mavlink_sens_power_t {
float adc121_vspb_volt; /*< [V] Power board voltage sensor reading*/
float adc121_cspb_amp; /*< [A] Power board current sensor reading*/
float adc121_cs1_amp; /*< [A] Board current sensor 1 reading*/
float adc121_cs2_amp; /*< [A] Board current sensor 2 reading*/
}) mavlink_sens_power_t;
#define MAVLINK_MSG_ID_SENS_POWER_LEN 16
#define MAVLINK_MSG_ID_SENS_POWER_MIN_LEN 16
#define MAVLINK_MSG_ID_201_LEN 16
#define MAVLINK_MSG_ID_201_MIN_LEN 16
#define MAVLINK_MSG_ID_SENS_POWER_CRC 218
#define MAVLINK_MSG_ID_201_CRC 218
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_SENS_POWER { \
201, \
"SENS_POWER", \
4, \
{ { "adc121_vspb_volt", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_sens_power_t, adc121_vspb_volt) }, \
{ "adc121_cspb_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_sens_power_t, adc121_cspb_amp) }, \
{ "adc121_cs1_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_sens_power_t, adc121_cs1_amp) }, \
{ "adc121_cs2_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_sens_power_t, adc121_cs2_amp) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_SENS_POWER { \
"SENS_POWER", \
4, \
{ { "adc121_vspb_volt", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_sens_power_t, adc121_vspb_volt) }, \
{ "adc121_cspb_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_sens_power_t, adc121_cspb_amp) }, \
{ "adc121_cs1_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_sens_power_t, adc121_cs1_amp) }, \
{ "adc121_cs2_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_sens_power_t, adc121_cs2_amp) }, \
} \
}
#endif
/**
* @brief Pack a sens_power 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 adc121_vspb_volt [V] Power board voltage sensor reading
* @param adc121_cspb_amp [A] Power board current sensor reading
* @param adc121_cs1_amp [A] Board current sensor 1 reading
* @param adc121_cs2_amp [A] Board current sensor 2 reading
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_sens_power_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
float adc121_vspb_volt, float adc121_cspb_amp, float adc121_cs1_amp, float adc121_cs2_amp)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENS_POWER_LEN];
_mav_put_float(buf, 0, adc121_vspb_volt);
_mav_put_float(buf, 4, adc121_cspb_amp);
_mav_put_float(buf, 8, adc121_cs1_amp);
_mav_put_float(buf, 12, adc121_cs2_amp);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SENS_POWER_LEN);
#else
mavlink_sens_power_t packet;
packet.adc121_vspb_volt = adc121_vspb_volt;
packet.adc121_cspb_amp = adc121_cspb_amp;
packet.adc121_cs1_amp = adc121_cs1_amp;
packet.adc121_cs2_amp = adc121_cs2_amp;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SENS_POWER_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_SENS_POWER;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SENS_POWER_MIN_LEN, MAVLINK_MSG_ID_SENS_POWER_LEN, MAVLINK_MSG_ID_SENS_POWER_CRC);
}
/**
* @brief Pack a sens_power 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
* @param adc121_vspb_volt [V] Power board voltage sensor reading
* @param adc121_cspb_amp [A] Power board current sensor reading
* @param adc121_cs1_amp [A] Board current sensor 1 reading
* @param adc121_cs2_amp [A] Board current sensor 2 reading
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_sens_power_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
float adc121_vspb_volt,float adc121_cspb_amp,float adc121_cs1_amp,float adc121_cs2_amp)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENS_POWER_LEN];
_mav_put_float(buf, 0, adc121_vspb_volt);
_mav_put_float(buf, 4, adc121_cspb_amp);
_mav_put_float(buf, 8, adc121_cs1_amp);
_mav_put_float(buf, 12, adc121_cs2_amp);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SENS_POWER_LEN);
#else
mavlink_sens_power_t packet;
packet.adc121_vspb_volt = adc121_vspb_volt;
packet.adc121_cspb_amp = adc121_cspb_amp;
packet.adc121_cs1_amp = adc121_cs1_amp;
packet.adc121_cs2_amp = adc121_cs2_amp;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SENS_POWER_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_SENS_POWER;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SENS_POWER_MIN_LEN, MAVLINK_MSG_ID_SENS_POWER_LEN, MAVLINK_MSG_ID_SENS_POWER_CRC);
}
/**
* @brief Encode a sens_power 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 sens_power C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_sens_power_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_sens_power_t* sens_power)
{
return mavlink_msg_sens_power_pack(system_id, component_id, msg, sens_power->adc121_vspb_volt, sens_power->adc121_cspb_amp, sens_power->adc121_cs1_amp, sens_power->adc121_cs2_amp);
}
/**
* @brief Encode a sens_power 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 sens_power C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_sens_power_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_sens_power_t* sens_power)
{
return mavlink_msg_sens_power_pack_chan(system_id, component_id, chan, msg, sens_power->adc121_vspb_volt, sens_power->adc121_cspb_amp, sens_power->adc121_cs1_amp, sens_power->adc121_cs2_amp);
}
/**
* @brief Send a sens_power message
* @param chan MAVLink channel to send the message
*
* @param adc121_vspb_volt [V] Power board voltage sensor reading
* @param adc121_cspb_amp [A] Power board current sensor reading
* @param adc121_cs1_amp [A] Board current sensor 1 reading
* @param adc121_cs2_amp [A] Board current sensor 2 reading
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_sens_power_send(mavlink_channel_t chan, float adc121_vspb_volt, float adc121_cspb_amp, float adc121_cs1_amp, float adc121_cs2_amp)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENS_POWER_LEN];
_mav_put_float(buf, 0, adc121_vspb_volt);
_mav_put_float(buf, 4, adc121_cspb_amp);
_mav_put_float(buf, 8, adc121_cs1_amp);
_mav_put_float(buf, 12, adc121_cs2_amp);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_POWER, buf, MAVLINK_MSG_ID_SENS_POWER_MIN_LEN, MAVLINK_MSG_ID_SENS_POWER_LEN, MAVLINK_MSG_ID_SENS_POWER_CRC);
#else
mavlink_sens_power_t packet;
packet.adc121_vspb_volt = adc121_vspb_volt;
packet.adc121_cspb_amp = adc121_cspb_amp;
packet.adc121_cs1_amp = adc121_cs1_amp;
packet.adc121_cs2_amp = adc121_cs2_amp;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_POWER, (const char *)&packet, MAVLINK_MSG_ID_SENS_POWER_MIN_LEN, MAVLINK_MSG_ID_SENS_POWER_LEN, MAVLINK_MSG_ID_SENS_POWER_CRC);
#endif
}
/**
* @brief Send a sens_power message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_sens_power_send_struct(mavlink_channel_t chan, const mavlink_sens_power_t* sens_power)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_sens_power_send(chan, sens_power->adc121_vspb_volt, sens_power->adc121_cspb_amp, sens_power->adc121_cs1_amp, sens_power->adc121_cs2_amp);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_POWER, (const char *)sens_power, MAVLINK_MSG_ID_SENS_POWER_MIN_LEN, MAVLINK_MSG_ID_SENS_POWER_LEN, MAVLINK_MSG_ID_SENS_POWER_CRC);
#endif
}
#if MAVLINK_MSG_ID_SENS_POWER_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.
*/
static inline void mavlink_msg_sens_power_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, float adc121_vspb_volt, float adc121_cspb_amp, float adc121_cs1_amp, float adc121_cs2_amp)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_float(buf, 0, adc121_vspb_volt);
_mav_put_float(buf, 4, adc121_cspb_amp);
_mav_put_float(buf, 8, adc121_cs1_amp);
_mav_put_float(buf, 12, adc121_cs2_amp);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_POWER, buf, MAVLINK_MSG_ID_SENS_POWER_MIN_LEN, MAVLINK_MSG_ID_SENS_POWER_LEN, MAVLINK_MSG_ID_SENS_POWER_CRC);
#else
mavlink_sens_power_t *packet = (mavlink_sens_power_t *)msgbuf;
packet->adc121_vspb_volt = adc121_vspb_volt;
packet->adc121_cspb_amp = adc121_cspb_amp;
packet->adc121_cs1_amp = adc121_cs1_amp;
packet->adc121_cs2_amp = adc121_cs2_amp;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_POWER, (const char *)packet, MAVLINK_MSG_ID_SENS_POWER_MIN_LEN, MAVLINK_MSG_ID_SENS_POWER_LEN, MAVLINK_MSG_ID_SENS_POWER_CRC);
#endif
}
#endif
#endif
// MESSAGE SENS_POWER UNPACKING
/**
* @brief Get field adc121_vspb_volt from sens_power message
*
* @return [V] Power board voltage sensor reading
*/
static inline float mavlink_msg_sens_power_get_adc121_vspb_volt(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 0);
}
/**
* @brief Get field adc121_cspb_amp from sens_power message
*
* @return [A] Power board current sensor reading
*/
static inline float mavlink_msg_sens_power_get_adc121_cspb_amp(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 4);
}
/**
* @brief Get field adc121_cs1_amp from sens_power message
*
* @return [A] Board current sensor 1 reading
*/
static inline float mavlink_msg_sens_power_get_adc121_cs1_amp(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 8);
}
/**
* @brief Get field adc121_cs2_amp from sens_power message
*
* @return [A] Board current sensor 2 reading
*/
static inline float mavlink_msg_sens_power_get_adc121_cs2_amp(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 12);
}
/**
* @brief Decode a sens_power message into a struct
*
* @param msg The message to decode
* @param sens_power C-struct to decode the message contents into
*/
static inline void mavlink_msg_sens_power_decode(const mavlink_message_t* msg, mavlink_sens_power_t* sens_power)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
sens_power->adc121_vspb_volt = mavlink_msg_sens_power_get_adc121_vspb_volt(msg);
sens_power->adc121_cspb_amp = mavlink_msg_sens_power_get_adc121_cspb_amp(msg);
sens_power->adc121_cs1_amp = mavlink_msg_sens_power_get_adc121_cs1_amp(msg);
sens_power->adc121_cs2_amp = mavlink_msg_sens_power_get_adc121_cs2_amp(msg);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_SENS_POWER_LEN? msg->len : MAVLINK_MSG_ID_SENS_POWER_LEN;
memset(sens_power, 0, MAVLINK_MSG_ID_SENS_POWER_LEN);
memcpy(sens_power, _MAV_PAYLOAD(msg), len);
#endif
}

View File

@@ -0,0 +1,488 @@
#pragma once
// MESSAGE SENS_POWER_BOARD PACKING
#define MAVLINK_MSG_ID_SENS_POWER_BOARD 212
MAVPACKED(
typedef struct __mavlink_sens_power_board_t {
uint64_t timestamp; /*< [us] Timestamp*/
float pwr_brd_system_volt; /*< [V] Power board system voltage*/
float pwr_brd_servo_volt; /*< [V] Power board servo voltage*/
float pwr_brd_digital_volt; /*< [V] Power board digital voltage*/
float pwr_brd_mot_l_amp; /*< [A] Power board left motor current sensor*/
float pwr_brd_mot_r_amp; /*< [A] Power board right motor current sensor*/
float pwr_brd_analog_amp; /*< [A] Power board analog current sensor*/
float pwr_brd_digital_amp; /*< [A] Power board digital current sensor*/
float pwr_brd_ext_amp; /*< [A] Power board extension current sensor*/
float pwr_brd_aux_amp; /*< [A] Power board aux current sensor*/
uint8_t pwr_brd_status; /*< Power board status register*/
uint8_t pwr_brd_led_status; /*< Power board leds status*/
}) mavlink_sens_power_board_t;
#define MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN 46
#define MAVLINK_MSG_ID_SENS_POWER_BOARD_MIN_LEN 46
#define MAVLINK_MSG_ID_212_LEN 46
#define MAVLINK_MSG_ID_212_MIN_LEN 46
#define MAVLINK_MSG_ID_SENS_POWER_BOARD_CRC 222
#define MAVLINK_MSG_ID_212_CRC 222
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_SENS_POWER_BOARD { \
212, \
"SENS_POWER_BOARD", \
12, \
{ { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_sens_power_board_t, timestamp) }, \
{ "pwr_brd_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 44, offsetof(mavlink_sens_power_board_t, pwr_brd_status) }, \
{ "pwr_brd_led_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 45, offsetof(mavlink_sens_power_board_t, pwr_brd_led_status) }, \
{ "pwr_brd_system_volt", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_sens_power_board_t, pwr_brd_system_volt) }, \
{ "pwr_brd_servo_volt", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_sens_power_board_t, pwr_brd_servo_volt) }, \
{ "pwr_brd_digital_volt", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_sens_power_board_t, pwr_brd_digital_volt) }, \
{ "pwr_brd_mot_l_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_sens_power_board_t, pwr_brd_mot_l_amp) }, \
{ "pwr_brd_mot_r_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_sens_power_board_t, pwr_brd_mot_r_amp) }, \
{ "pwr_brd_analog_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_sens_power_board_t, pwr_brd_analog_amp) }, \
{ "pwr_brd_digital_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_sens_power_board_t, pwr_brd_digital_amp) }, \
{ "pwr_brd_ext_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_sens_power_board_t, pwr_brd_ext_amp) }, \
{ "pwr_brd_aux_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_sens_power_board_t, pwr_brd_aux_amp) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_SENS_POWER_BOARD { \
"SENS_POWER_BOARD", \
12, \
{ { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_sens_power_board_t, timestamp) }, \
{ "pwr_brd_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 44, offsetof(mavlink_sens_power_board_t, pwr_brd_status) }, \
{ "pwr_brd_led_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 45, offsetof(mavlink_sens_power_board_t, pwr_brd_led_status) }, \
{ "pwr_brd_system_volt", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_sens_power_board_t, pwr_brd_system_volt) }, \
{ "pwr_brd_servo_volt", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_sens_power_board_t, pwr_brd_servo_volt) }, \
{ "pwr_brd_digital_volt", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_sens_power_board_t, pwr_brd_digital_volt) }, \
{ "pwr_brd_mot_l_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_sens_power_board_t, pwr_brd_mot_l_amp) }, \
{ "pwr_brd_mot_r_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_sens_power_board_t, pwr_brd_mot_r_amp) }, \
{ "pwr_brd_analog_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_sens_power_board_t, pwr_brd_analog_amp) }, \
{ "pwr_brd_digital_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_sens_power_board_t, pwr_brd_digital_amp) }, \
{ "pwr_brd_ext_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_sens_power_board_t, pwr_brd_ext_amp) }, \
{ "pwr_brd_aux_amp", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_sens_power_board_t, pwr_brd_aux_amp) }, \
} \
}
#endif
/**
* @brief Pack a sens_power_board 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 timestamp [us] Timestamp
* @param pwr_brd_status Power board status register
* @param pwr_brd_led_status Power board leds status
* @param pwr_brd_system_volt [V] Power board system voltage
* @param pwr_brd_servo_volt [V] Power board servo voltage
* @param pwr_brd_digital_volt [V] Power board digital voltage
* @param pwr_brd_mot_l_amp [A] Power board left motor current sensor
* @param pwr_brd_mot_r_amp [A] Power board right motor current sensor
* @param pwr_brd_analog_amp [A] Power board analog current sensor
* @param pwr_brd_digital_amp [A] Power board digital current sensor
* @param pwr_brd_ext_amp [A] Power board extension current sensor
* @param pwr_brd_aux_amp [A] Power board aux current sensor
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_sens_power_board_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint64_t timestamp, uint8_t pwr_brd_status, uint8_t pwr_brd_led_status, float pwr_brd_system_volt, float pwr_brd_servo_volt, float pwr_brd_digital_volt, float pwr_brd_mot_l_amp, float pwr_brd_mot_r_amp, float pwr_brd_analog_amp, float pwr_brd_digital_amp, float pwr_brd_ext_amp, float pwr_brd_aux_amp)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_float(buf, 8, pwr_brd_system_volt);
_mav_put_float(buf, 12, pwr_brd_servo_volt);
_mav_put_float(buf, 16, pwr_brd_digital_volt);
_mav_put_float(buf, 20, pwr_brd_mot_l_amp);
_mav_put_float(buf, 24, pwr_brd_mot_r_amp);
_mav_put_float(buf, 28, pwr_brd_analog_amp);
_mav_put_float(buf, 32, pwr_brd_digital_amp);
_mav_put_float(buf, 36, pwr_brd_ext_amp);
_mav_put_float(buf, 40, pwr_brd_aux_amp);
_mav_put_uint8_t(buf, 44, pwr_brd_status);
_mav_put_uint8_t(buf, 45, pwr_brd_led_status);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN);
#else
mavlink_sens_power_board_t packet;
packet.timestamp = timestamp;
packet.pwr_brd_system_volt = pwr_brd_system_volt;
packet.pwr_brd_servo_volt = pwr_brd_servo_volt;
packet.pwr_brd_digital_volt = pwr_brd_digital_volt;
packet.pwr_brd_mot_l_amp = pwr_brd_mot_l_amp;
packet.pwr_brd_mot_r_amp = pwr_brd_mot_r_amp;
packet.pwr_brd_analog_amp = pwr_brd_analog_amp;
packet.pwr_brd_digital_amp = pwr_brd_digital_amp;
packet.pwr_brd_ext_amp = pwr_brd_ext_amp;
packet.pwr_brd_aux_amp = pwr_brd_aux_amp;
packet.pwr_brd_status = pwr_brd_status;
packet.pwr_brd_led_status = pwr_brd_led_status;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_SENS_POWER_BOARD;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SENS_POWER_BOARD_MIN_LEN, MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN, MAVLINK_MSG_ID_SENS_POWER_BOARD_CRC);
}
/**
* @brief Pack a sens_power_board 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
* @param timestamp [us] Timestamp
* @param pwr_brd_status Power board status register
* @param pwr_brd_led_status Power board leds status
* @param pwr_brd_system_volt [V] Power board system voltage
* @param pwr_brd_servo_volt [V] Power board servo voltage
* @param pwr_brd_digital_volt [V] Power board digital voltage
* @param pwr_brd_mot_l_amp [A] Power board left motor current sensor
* @param pwr_brd_mot_r_amp [A] Power board right motor current sensor
* @param pwr_brd_analog_amp [A] Power board analog current sensor
* @param pwr_brd_digital_amp [A] Power board digital current sensor
* @param pwr_brd_ext_amp [A] Power board extension current sensor
* @param pwr_brd_aux_amp [A] Power board aux current sensor
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_sens_power_board_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint64_t timestamp,uint8_t pwr_brd_status,uint8_t pwr_brd_led_status,float pwr_brd_system_volt,float pwr_brd_servo_volt,float pwr_brd_digital_volt,float pwr_brd_mot_l_amp,float pwr_brd_mot_r_amp,float pwr_brd_analog_amp,float pwr_brd_digital_amp,float pwr_brd_ext_amp,float pwr_brd_aux_amp)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_float(buf, 8, pwr_brd_system_volt);
_mav_put_float(buf, 12, pwr_brd_servo_volt);
_mav_put_float(buf, 16, pwr_brd_digital_volt);
_mav_put_float(buf, 20, pwr_brd_mot_l_amp);
_mav_put_float(buf, 24, pwr_brd_mot_r_amp);
_mav_put_float(buf, 28, pwr_brd_analog_amp);
_mav_put_float(buf, 32, pwr_brd_digital_amp);
_mav_put_float(buf, 36, pwr_brd_ext_amp);
_mav_put_float(buf, 40, pwr_brd_aux_amp);
_mav_put_uint8_t(buf, 44, pwr_brd_status);
_mav_put_uint8_t(buf, 45, pwr_brd_led_status);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN);
#else
mavlink_sens_power_board_t packet;
packet.timestamp = timestamp;
packet.pwr_brd_system_volt = pwr_brd_system_volt;
packet.pwr_brd_servo_volt = pwr_brd_servo_volt;
packet.pwr_brd_digital_volt = pwr_brd_digital_volt;
packet.pwr_brd_mot_l_amp = pwr_brd_mot_l_amp;
packet.pwr_brd_mot_r_amp = pwr_brd_mot_r_amp;
packet.pwr_brd_analog_amp = pwr_brd_analog_amp;
packet.pwr_brd_digital_amp = pwr_brd_digital_amp;
packet.pwr_brd_ext_amp = pwr_brd_ext_amp;
packet.pwr_brd_aux_amp = pwr_brd_aux_amp;
packet.pwr_brd_status = pwr_brd_status;
packet.pwr_brd_led_status = pwr_brd_led_status;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_SENS_POWER_BOARD;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SENS_POWER_BOARD_MIN_LEN, MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN, MAVLINK_MSG_ID_SENS_POWER_BOARD_CRC);
}
/**
* @brief Encode a sens_power_board 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 sens_power_board C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_sens_power_board_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_sens_power_board_t* sens_power_board)
{
return mavlink_msg_sens_power_board_pack(system_id, component_id, msg, sens_power_board->timestamp, sens_power_board->pwr_brd_status, sens_power_board->pwr_brd_led_status, sens_power_board->pwr_brd_system_volt, sens_power_board->pwr_brd_servo_volt, sens_power_board->pwr_brd_digital_volt, sens_power_board->pwr_brd_mot_l_amp, sens_power_board->pwr_brd_mot_r_amp, sens_power_board->pwr_brd_analog_amp, sens_power_board->pwr_brd_digital_amp, sens_power_board->pwr_brd_ext_amp, sens_power_board->pwr_brd_aux_amp);
}
/**
* @brief Encode a sens_power_board 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 sens_power_board C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_sens_power_board_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_sens_power_board_t* sens_power_board)
{
return mavlink_msg_sens_power_board_pack_chan(system_id, component_id, chan, msg, sens_power_board->timestamp, sens_power_board->pwr_brd_status, sens_power_board->pwr_brd_led_status, sens_power_board->pwr_brd_system_volt, sens_power_board->pwr_brd_servo_volt, sens_power_board->pwr_brd_digital_volt, sens_power_board->pwr_brd_mot_l_amp, sens_power_board->pwr_brd_mot_r_amp, sens_power_board->pwr_brd_analog_amp, sens_power_board->pwr_brd_digital_amp, sens_power_board->pwr_brd_ext_amp, sens_power_board->pwr_brd_aux_amp);
}
/**
* @brief Send a sens_power_board message
* @param chan MAVLink channel to send the message
*
* @param timestamp [us] Timestamp
* @param pwr_brd_status Power board status register
* @param pwr_brd_led_status Power board leds status
* @param pwr_brd_system_volt [V] Power board system voltage
* @param pwr_brd_servo_volt [V] Power board servo voltage
* @param pwr_brd_digital_volt [V] Power board digital voltage
* @param pwr_brd_mot_l_amp [A] Power board left motor current sensor
* @param pwr_brd_mot_r_amp [A] Power board right motor current sensor
* @param pwr_brd_analog_amp [A] Power board analog current sensor
* @param pwr_brd_digital_amp [A] Power board digital current sensor
* @param pwr_brd_ext_amp [A] Power board extension current sensor
* @param pwr_brd_aux_amp [A] Power board aux current sensor
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_sens_power_board_send(mavlink_channel_t chan, uint64_t timestamp, uint8_t pwr_brd_status, uint8_t pwr_brd_led_status, float pwr_brd_system_volt, float pwr_brd_servo_volt, float pwr_brd_digital_volt, float pwr_brd_mot_l_amp, float pwr_brd_mot_r_amp, float pwr_brd_analog_amp, float pwr_brd_digital_amp, float pwr_brd_ext_amp, float pwr_brd_aux_amp)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_float(buf, 8, pwr_brd_system_volt);
_mav_put_float(buf, 12, pwr_brd_servo_volt);
_mav_put_float(buf, 16, pwr_brd_digital_volt);
_mav_put_float(buf, 20, pwr_brd_mot_l_amp);
_mav_put_float(buf, 24, pwr_brd_mot_r_amp);
_mav_put_float(buf, 28, pwr_brd_analog_amp);
_mav_put_float(buf, 32, pwr_brd_digital_amp);
_mav_put_float(buf, 36, pwr_brd_ext_amp);
_mav_put_float(buf, 40, pwr_brd_aux_amp);
_mav_put_uint8_t(buf, 44, pwr_brd_status);
_mav_put_uint8_t(buf, 45, pwr_brd_led_status);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_POWER_BOARD, buf, MAVLINK_MSG_ID_SENS_POWER_BOARD_MIN_LEN, MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN, MAVLINK_MSG_ID_SENS_POWER_BOARD_CRC);
#else
mavlink_sens_power_board_t packet;
packet.timestamp = timestamp;
packet.pwr_brd_system_volt = pwr_brd_system_volt;
packet.pwr_brd_servo_volt = pwr_brd_servo_volt;
packet.pwr_brd_digital_volt = pwr_brd_digital_volt;
packet.pwr_brd_mot_l_amp = pwr_brd_mot_l_amp;
packet.pwr_brd_mot_r_amp = pwr_brd_mot_r_amp;
packet.pwr_brd_analog_amp = pwr_brd_analog_amp;
packet.pwr_brd_digital_amp = pwr_brd_digital_amp;
packet.pwr_brd_ext_amp = pwr_brd_ext_amp;
packet.pwr_brd_aux_amp = pwr_brd_aux_amp;
packet.pwr_brd_status = pwr_brd_status;
packet.pwr_brd_led_status = pwr_brd_led_status;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_POWER_BOARD, (const char *)&packet, MAVLINK_MSG_ID_SENS_POWER_BOARD_MIN_LEN, MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN, MAVLINK_MSG_ID_SENS_POWER_BOARD_CRC);
#endif
}
/**
* @brief Send a sens_power_board message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_sens_power_board_send_struct(mavlink_channel_t chan, const mavlink_sens_power_board_t* sens_power_board)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_sens_power_board_send(chan, sens_power_board->timestamp, sens_power_board->pwr_brd_status, sens_power_board->pwr_brd_led_status, sens_power_board->pwr_brd_system_volt, sens_power_board->pwr_brd_servo_volt, sens_power_board->pwr_brd_digital_volt, sens_power_board->pwr_brd_mot_l_amp, sens_power_board->pwr_brd_mot_r_amp, sens_power_board->pwr_brd_analog_amp, sens_power_board->pwr_brd_digital_amp, sens_power_board->pwr_brd_ext_amp, sens_power_board->pwr_brd_aux_amp);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_POWER_BOARD, (const char *)sens_power_board, MAVLINK_MSG_ID_SENS_POWER_BOARD_MIN_LEN, MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN, MAVLINK_MSG_ID_SENS_POWER_BOARD_CRC);
#endif
}
#if MAVLINK_MSG_ID_SENS_POWER_BOARD_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.
*/
static inline void mavlink_msg_sens_power_board_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, uint8_t pwr_brd_status, uint8_t pwr_brd_led_status, float pwr_brd_system_volt, float pwr_brd_servo_volt, float pwr_brd_digital_volt, float pwr_brd_mot_l_amp, float pwr_brd_mot_r_amp, float pwr_brd_analog_amp, float pwr_brd_digital_amp, float pwr_brd_ext_amp, float pwr_brd_aux_amp)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_float(buf, 8, pwr_brd_system_volt);
_mav_put_float(buf, 12, pwr_brd_servo_volt);
_mav_put_float(buf, 16, pwr_brd_digital_volt);
_mav_put_float(buf, 20, pwr_brd_mot_l_amp);
_mav_put_float(buf, 24, pwr_brd_mot_r_amp);
_mav_put_float(buf, 28, pwr_brd_analog_amp);
_mav_put_float(buf, 32, pwr_brd_digital_amp);
_mav_put_float(buf, 36, pwr_brd_ext_amp);
_mav_put_float(buf, 40, pwr_brd_aux_amp);
_mav_put_uint8_t(buf, 44, pwr_brd_status);
_mav_put_uint8_t(buf, 45, pwr_brd_led_status);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_POWER_BOARD, buf, MAVLINK_MSG_ID_SENS_POWER_BOARD_MIN_LEN, MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN, MAVLINK_MSG_ID_SENS_POWER_BOARD_CRC);
#else
mavlink_sens_power_board_t *packet = (mavlink_sens_power_board_t *)msgbuf;
packet->timestamp = timestamp;
packet->pwr_brd_system_volt = pwr_brd_system_volt;
packet->pwr_brd_servo_volt = pwr_brd_servo_volt;
packet->pwr_brd_digital_volt = pwr_brd_digital_volt;
packet->pwr_brd_mot_l_amp = pwr_brd_mot_l_amp;
packet->pwr_brd_mot_r_amp = pwr_brd_mot_r_amp;
packet->pwr_brd_analog_amp = pwr_brd_analog_amp;
packet->pwr_brd_digital_amp = pwr_brd_digital_amp;
packet->pwr_brd_ext_amp = pwr_brd_ext_amp;
packet->pwr_brd_aux_amp = pwr_brd_aux_amp;
packet->pwr_brd_status = pwr_brd_status;
packet->pwr_brd_led_status = pwr_brd_led_status;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENS_POWER_BOARD, (const char *)packet, MAVLINK_MSG_ID_SENS_POWER_BOARD_MIN_LEN, MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN, MAVLINK_MSG_ID_SENS_POWER_BOARD_CRC);
#endif
}
#endif
#endif
// MESSAGE SENS_POWER_BOARD UNPACKING
/**
* @brief Get field timestamp from sens_power_board message
*
* @return [us] Timestamp
*/
static inline uint64_t mavlink_msg_sens_power_board_get_timestamp(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint64_t(msg, 0);
}
/**
* @brief Get field pwr_brd_status from sens_power_board message
*
* @return Power board status register
*/
static inline uint8_t mavlink_msg_sens_power_board_get_pwr_brd_status(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 44);
}
/**
* @brief Get field pwr_brd_led_status from sens_power_board message
*
* @return Power board leds status
*/
static inline uint8_t mavlink_msg_sens_power_board_get_pwr_brd_led_status(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 45);
}
/**
* @brief Get field pwr_brd_system_volt from sens_power_board message
*
* @return [V] Power board system voltage
*/
static inline float mavlink_msg_sens_power_board_get_pwr_brd_system_volt(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 8);
}
/**
* @brief Get field pwr_brd_servo_volt from sens_power_board message
*
* @return [V] Power board servo voltage
*/
static inline float mavlink_msg_sens_power_board_get_pwr_brd_servo_volt(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 12);
}
/**
* @brief Get field pwr_brd_digital_volt from sens_power_board message
*
* @return [V] Power board digital voltage
*/
static inline float mavlink_msg_sens_power_board_get_pwr_brd_digital_volt(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 16);
}
/**
* @brief Get field pwr_brd_mot_l_amp from sens_power_board message
*
* @return [A] Power board left motor current sensor
*/
static inline float mavlink_msg_sens_power_board_get_pwr_brd_mot_l_amp(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 20);
}
/**
* @brief Get field pwr_brd_mot_r_amp from sens_power_board message
*
* @return [A] Power board right motor current sensor
*/
static inline float mavlink_msg_sens_power_board_get_pwr_brd_mot_r_amp(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 24);
}
/**
* @brief Get field pwr_brd_analog_amp from sens_power_board message
*
* @return [A] Power board analog current sensor
*/
static inline float mavlink_msg_sens_power_board_get_pwr_brd_analog_amp(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 28);
}
/**
* @brief Get field pwr_brd_digital_amp from sens_power_board message
*
* @return [A] Power board digital current sensor
*/
static inline float mavlink_msg_sens_power_board_get_pwr_brd_digital_amp(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 32);
}
/**
* @brief Get field pwr_brd_ext_amp from sens_power_board message
*
* @return [A] Power board extension current sensor
*/
static inline float mavlink_msg_sens_power_board_get_pwr_brd_ext_amp(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 36);
}
/**
* @brief Get field pwr_brd_aux_amp from sens_power_board message
*
* @return [A] Power board aux current sensor
*/
static inline float mavlink_msg_sens_power_board_get_pwr_brd_aux_amp(const mavlink_message_t* msg)
{
return _MAV_RETURN_float(msg, 40);
}
/**
* @brief Decode a sens_power_board message into a struct
*
* @param msg The message to decode
* @param sens_power_board C-struct to decode the message contents into
*/
static inline void mavlink_msg_sens_power_board_decode(const mavlink_message_t* msg, mavlink_sens_power_board_t* sens_power_board)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
sens_power_board->timestamp = mavlink_msg_sens_power_board_get_timestamp(msg);
sens_power_board->pwr_brd_system_volt = mavlink_msg_sens_power_board_get_pwr_brd_system_volt(msg);
sens_power_board->pwr_brd_servo_volt = mavlink_msg_sens_power_board_get_pwr_brd_servo_volt(msg);
sens_power_board->pwr_brd_digital_volt = mavlink_msg_sens_power_board_get_pwr_brd_digital_volt(msg);
sens_power_board->pwr_brd_mot_l_amp = mavlink_msg_sens_power_board_get_pwr_brd_mot_l_amp(msg);
sens_power_board->pwr_brd_mot_r_amp = mavlink_msg_sens_power_board_get_pwr_brd_mot_r_amp(msg);
sens_power_board->pwr_brd_analog_amp = mavlink_msg_sens_power_board_get_pwr_brd_analog_amp(msg);
sens_power_board->pwr_brd_digital_amp = mavlink_msg_sens_power_board_get_pwr_brd_digital_amp(msg);
sens_power_board->pwr_brd_ext_amp = mavlink_msg_sens_power_board_get_pwr_brd_ext_amp(msg);
sens_power_board->pwr_brd_aux_amp = mavlink_msg_sens_power_board_get_pwr_brd_aux_amp(msg);
sens_power_board->pwr_brd_status = mavlink_msg_sens_power_board_get_pwr_brd_status(msg);
sens_power_board->pwr_brd_led_status = mavlink_msg_sens_power_board_get_pwr_brd_led_status(msg);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN? msg->len : MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN;
memset(sens_power_board, 0, MAVLINK_MSG_ID_SENS_POWER_BOARD_LEN);
memcpy(sens_power_board, _MAV_PAYLOAD(msg), len);
#endif
}

View File

@@ -0,0 +1,388 @@
#pragma once
// MESSAGE SENSORPOD_STATUS PACKING
#define MAVLINK_MSG_ID_SENSORPOD_STATUS 211
MAVPACKED(
typedef struct __mavlink_sensorpod_status_t {
uint64_t timestamp; /*< [ms] Timestamp in linuxtime (since 1.1.1970)*/
uint16_t free_space; /*< Free space available in recordings directory in [Gb] * 1e2*/
uint8_t visensor_rate_1; /*< Rate of ROS topic 1*/
uint8_t visensor_rate_2; /*< Rate of ROS topic 2*/
uint8_t visensor_rate_3; /*< Rate of ROS topic 3*/
uint8_t visensor_rate_4; /*< Rate of ROS topic 4*/
uint8_t recording_nodes_count; /*< Number of recording nodes*/
uint8_t cpu_temp; /*< [degC] Temperature of sensorpod CPU in*/
}) mavlink_sensorpod_status_t;
#define MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN 16
#define MAVLINK_MSG_ID_SENSORPOD_STATUS_MIN_LEN 16
#define MAVLINK_MSG_ID_211_LEN 16
#define MAVLINK_MSG_ID_211_MIN_LEN 16
#define MAVLINK_MSG_ID_SENSORPOD_STATUS_CRC 54
#define MAVLINK_MSG_ID_211_CRC 54
#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_SENSORPOD_STATUS { \
211, \
"SENSORPOD_STATUS", \
8, \
{ { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_sensorpod_status_t, timestamp) }, \
{ "visensor_rate_1", NULL, MAVLINK_TYPE_UINT8_T, 0, 10, offsetof(mavlink_sensorpod_status_t, visensor_rate_1) }, \
{ "visensor_rate_2", NULL, MAVLINK_TYPE_UINT8_T, 0, 11, offsetof(mavlink_sensorpod_status_t, visensor_rate_2) }, \
{ "visensor_rate_3", NULL, MAVLINK_TYPE_UINT8_T, 0, 12, offsetof(mavlink_sensorpod_status_t, visensor_rate_3) }, \
{ "visensor_rate_4", NULL, MAVLINK_TYPE_UINT8_T, 0, 13, offsetof(mavlink_sensorpod_status_t, visensor_rate_4) }, \
{ "recording_nodes_count", NULL, MAVLINK_TYPE_UINT8_T, 0, 14, offsetof(mavlink_sensorpod_status_t, recording_nodes_count) }, \
{ "cpu_temp", NULL, MAVLINK_TYPE_UINT8_T, 0, 15, offsetof(mavlink_sensorpod_status_t, cpu_temp) }, \
{ "free_space", NULL, MAVLINK_TYPE_UINT16_T, 0, 8, offsetof(mavlink_sensorpod_status_t, free_space) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_SENSORPOD_STATUS { \
"SENSORPOD_STATUS", \
8, \
{ { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_sensorpod_status_t, timestamp) }, \
{ "visensor_rate_1", NULL, MAVLINK_TYPE_UINT8_T, 0, 10, offsetof(mavlink_sensorpod_status_t, visensor_rate_1) }, \
{ "visensor_rate_2", NULL, MAVLINK_TYPE_UINT8_T, 0, 11, offsetof(mavlink_sensorpod_status_t, visensor_rate_2) }, \
{ "visensor_rate_3", NULL, MAVLINK_TYPE_UINT8_T, 0, 12, offsetof(mavlink_sensorpod_status_t, visensor_rate_3) }, \
{ "visensor_rate_4", NULL, MAVLINK_TYPE_UINT8_T, 0, 13, offsetof(mavlink_sensorpod_status_t, visensor_rate_4) }, \
{ "recording_nodes_count", NULL, MAVLINK_TYPE_UINT8_T, 0, 14, offsetof(mavlink_sensorpod_status_t, recording_nodes_count) }, \
{ "cpu_temp", NULL, MAVLINK_TYPE_UINT8_T, 0, 15, offsetof(mavlink_sensorpod_status_t, cpu_temp) }, \
{ "free_space", NULL, MAVLINK_TYPE_UINT16_T, 0, 8, offsetof(mavlink_sensorpod_status_t, free_space) }, \
} \
}
#endif
/**
* @brief Pack a sensorpod_status 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 timestamp [ms] Timestamp in linuxtime (since 1.1.1970)
* @param visensor_rate_1 Rate of ROS topic 1
* @param visensor_rate_2 Rate of ROS topic 2
* @param visensor_rate_3 Rate of ROS topic 3
* @param visensor_rate_4 Rate of ROS topic 4
* @param recording_nodes_count Number of recording nodes
* @param cpu_temp [degC] Temperature of sensorpod CPU in
* @param free_space Free space available in recordings directory in [Gb] * 1e2
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_sensorpod_status_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint64_t timestamp, uint8_t visensor_rate_1, uint8_t visensor_rate_2, uint8_t visensor_rate_3, uint8_t visensor_rate_4, uint8_t recording_nodes_count, uint8_t cpu_temp, uint16_t free_space)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_uint16_t(buf, 8, free_space);
_mav_put_uint8_t(buf, 10, visensor_rate_1);
_mav_put_uint8_t(buf, 11, visensor_rate_2);
_mav_put_uint8_t(buf, 12, visensor_rate_3);
_mav_put_uint8_t(buf, 13, visensor_rate_4);
_mav_put_uint8_t(buf, 14, recording_nodes_count);
_mav_put_uint8_t(buf, 15, cpu_temp);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN);
#else
mavlink_sensorpod_status_t packet;
packet.timestamp = timestamp;
packet.free_space = free_space;
packet.visensor_rate_1 = visensor_rate_1;
packet.visensor_rate_2 = visensor_rate_2;
packet.visensor_rate_3 = visensor_rate_3;
packet.visensor_rate_4 = visensor_rate_4;
packet.recording_nodes_count = recording_nodes_count;
packet.cpu_temp = cpu_temp;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_SENSORPOD_STATUS;
return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_SENSORPOD_STATUS_MIN_LEN, MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN, MAVLINK_MSG_ID_SENSORPOD_STATUS_CRC);
}
/**
* @brief Pack a sensorpod_status 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
* @param timestamp [ms] Timestamp in linuxtime (since 1.1.1970)
* @param visensor_rate_1 Rate of ROS topic 1
* @param visensor_rate_2 Rate of ROS topic 2
* @param visensor_rate_3 Rate of ROS topic 3
* @param visensor_rate_4 Rate of ROS topic 4
* @param recording_nodes_count Number of recording nodes
* @param cpu_temp [degC] Temperature of sensorpod CPU in
* @param free_space Free space available in recordings directory in [Gb] * 1e2
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_sensorpod_status_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint64_t timestamp,uint8_t visensor_rate_1,uint8_t visensor_rate_2,uint8_t visensor_rate_3,uint8_t visensor_rate_4,uint8_t recording_nodes_count,uint8_t cpu_temp,uint16_t free_space)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_uint16_t(buf, 8, free_space);
_mav_put_uint8_t(buf, 10, visensor_rate_1);
_mav_put_uint8_t(buf, 11, visensor_rate_2);
_mav_put_uint8_t(buf, 12, visensor_rate_3);
_mav_put_uint8_t(buf, 13, visensor_rate_4);
_mav_put_uint8_t(buf, 14, recording_nodes_count);
_mav_put_uint8_t(buf, 15, cpu_temp);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN);
#else
mavlink_sensorpod_status_t packet;
packet.timestamp = timestamp;
packet.free_space = free_space;
packet.visensor_rate_1 = visensor_rate_1;
packet.visensor_rate_2 = visensor_rate_2;
packet.visensor_rate_3 = visensor_rate_3;
packet.visensor_rate_4 = visensor_rate_4;
packet.recording_nodes_count = recording_nodes_count;
packet.cpu_temp = cpu_temp;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN);
#endif
msg->msgid = MAVLINK_MSG_ID_SENSORPOD_STATUS;
return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_SENSORPOD_STATUS_MIN_LEN, MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN, MAVLINK_MSG_ID_SENSORPOD_STATUS_CRC);
}
/**
* @brief Encode a sensorpod_status 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 sensorpod_status C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_sensorpod_status_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_sensorpod_status_t* sensorpod_status)
{
return mavlink_msg_sensorpod_status_pack(system_id, component_id, msg, sensorpod_status->timestamp, sensorpod_status->visensor_rate_1, sensorpod_status->visensor_rate_2, sensorpod_status->visensor_rate_3, sensorpod_status->visensor_rate_4, sensorpod_status->recording_nodes_count, sensorpod_status->cpu_temp, sensorpod_status->free_space);
}
/**
* @brief Encode a sensorpod_status 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 sensorpod_status C-struct to read the message contents from
*/
static inline uint16_t mavlink_msg_sensorpod_status_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_sensorpod_status_t* sensorpod_status)
{
return mavlink_msg_sensorpod_status_pack_chan(system_id, component_id, chan, msg, sensorpod_status->timestamp, sensorpod_status->visensor_rate_1, sensorpod_status->visensor_rate_2, sensorpod_status->visensor_rate_3, sensorpod_status->visensor_rate_4, sensorpod_status->recording_nodes_count, sensorpod_status->cpu_temp, sensorpod_status->free_space);
}
/**
* @brief Send a sensorpod_status message
* @param chan MAVLink channel to send the message
*
* @param timestamp [ms] Timestamp in linuxtime (since 1.1.1970)
* @param visensor_rate_1 Rate of ROS topic 1
* @param visensor_rate_2 Rate of ROS topic 2
* @param visensor_rate_3 Rate of ROS topic 3
* @param visensor_rate_4 Rate of ROS topic 4
* @param recording_nodes_count Number of recording nodes
* @param cpu_temp [degC] Temperature of sensorpod CPU in
* @param free_space Free space available in recordings directory in [Gb] * 1e2
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_sensorpod_status_send(mavlink_channel_t chan, uint64_t timestamp, uint8_t visensor_rate_1, uint8_t visensor_rate_2, uint8_t visensor_rate_3, uint8_t visensor_rate_4, uint8_t recording_nodes_count, uint8_t cpu_temp, uint16_t free_space)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN];
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_uint16_t(buf, 8, free_space);
_mav_put_uint8_t(buf, 10, visensor_rate_1);
_mav_put_uint8_t(buf, 11, visensor_rate_2);
_mav_put_uint8_t(buf, 12, visensor_rate_3);
_mav_put_uint8_t(buf, 13, visensor_rate_4);
_mav_put_uint8_t(buf, 14, recording_nodes_count);
_mav_put_uint8_t(buf, 15, cpu_temp);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENSORPOD_STATUS, buf, MAVLINK_MSG_ID_SENSORPOD_STATUS_MIN_LEN, MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN, MAVLINK_MSG_ID_SENSORPOD_STATUS_CRC);
#else
mavlink_sensorpod_status_t packet;
packet.timestamp = timestamp;
packet.free_space = free_space;
packet.visensor_rate_1 = visensor_rate_1;
packet.visensor_rate_2 = visensor_rate_2;
packet.visensor_rate_3 = visensor_rate_3;
packet.visensor_rate_4 = visensor_rate_4;
packet.recording_nodes_count = recording_nodes_count;
packet.cpu_temp = cpu_temp;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENSORPOD_STATUS, (const char *)&packet, MAVLINK_MSG_ID_SENSORPOD_STATUS_MIN_LEN, MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN, MAVLINK_MSG_ID_SENSORPOD_STATUS_CRC);
#endif
}
/**
* @brief Send a sensorpod_status message
* @param chan MAVLink channel to send the message
* @param struct The MAVLink struct to serialize
*/
static inline void mavlink_msg_sensorpod_status_send_struct(mavlink_channel_t chan, const mavlink_sensorpod_status_t* sensorpod_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_sensorpod_status_send(chan, sensorpod_status->timestamp, sensorpod_status->visensor_rate_1, sensorpod_status->visensor_rate_2, sensorpod_status->visensor_rate_3, sensorpod_status->visensor_rate_4, sensorpod_status->recording_nodes_count, sensorpod_status->cpu_temp, sensorpod_status->free_space);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENSORPOD_STATUS, (const char *)sensorpod_status, MAVLINK_MSG_ID_SENSORPOD_STATUS_MIN_LEN, MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN, MAVLINK_MSG_ID_SENSORPOD_STATUS_CRC);
#endif
}
#if MAVLINK_MSG_ID_SENSORPOD_STATUS_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.
*/
static inline void mavlink_msg_sensorpod_status_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, uint8_t visensor_rate_1, uint8_t visensor_rate_2, uint8_t visensor_rate_3, uint8_t visensor_rate_4, uint8_t recording_nodes_count, uint8_t cpu_temp, uint16_t free_space)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_uint64_t(buf, 0, timestamp);
_mav_put_uint16_t(buf, 8, free_space);
_mav_put_uint8_t(buf, 10, visensor_rate_1);
_mav_put_uint8_t(buf, 11, visensor_rate_2);
_mav_put_uint8_t(buf, 12, visensor_rate_3);
_mav_put_uint8_t(buf, 13, visensor_rate_4);
_mav_put_uint8_t(buf, 14, recording_nodes_count);
_mav_put_uint8_t(buf, 15, cpu_temp);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENSORPOD_STATUS, buf, MAVLINK_MSG_ID_SENSORPOD_STATUS_MIN_LEN, MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN, MAVLINK_MSG_ID_SENSORPOD_STATUS_CRC);
#else
mavlink_sensorpod_status_t *packet = (mavlink_sensorpod_status_t *)msgbuf;
packet->timestamp = timestamp;
packet->free_space = free_space;
packet->visensor_rate_1 = visensor_rate_1;
packet->visensor_rate_2 = visensor_rate_2;
packet->visensor_rate_3 = visensor_rate_3;
packet->visensor_rate_4 = visensor_rate_4;
packet->recording_nodes_count = recording_nodes_count;
packet->cpu_temp = cpu_temp;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SENSORPOD_STATUS, (const char *)packet, MAVLINK_MSG_ID_SENSORPOD_STATUS_MIN_LEN, MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN, MAVLINK_MSG_ID_SENSORPOD_STATUS_CRC);
#endif
}
#endif
#endif
// MESSAGE SENSORPOD_STATUS UNPACKING
/**
* @brief Get field timestamp from sensorpod_status message
*
* @return [ms] Timestamp in linuxtime (since 1.1.1970)
*/
static inline uint64_t mavlink_msg_sensorpod_status_get_timestamp(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint64_t(msg, 0);
}
/**
* @brief Get field visensor_rate_1 from sensorpod_status message
*
* @return Rate of ROS topic 1
*/
static inline uint8_t mavlink_msg_sensorpod_status_get_visensor_rate_1(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 10);
}
/**
* @brief Get field visensor_rate_2 from sensorpod_status message
*
* @return Rate of ROS topic 2
*/
static inline uint8_t mavlink_msg_sensorpod_status_get_visensor_rate_2(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 11);
}
/**
* @brief Get field visensor_rate_3 from sensorpod_status message
*
* @return Rate of ROS topic 3
*/
static inline uint8_t mavlink_msg_sensorpod_status_get_visensor_rate_3(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 12);
}
/**
* @brief Get field visensor_rate_4 from sensorpod_status message
*
* @return Rate of ROS topic 4
*/
static inline uint8_t mavlink_msg_sensorpod_status_get_visensor_rate_4(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 13);
}
/**
* @brief Get field recording_nodes_count from sensorpod_status message
*
* @return Number of recording nodes
*/
static inline uint8_t mavlink_msg_sensorpod_status_get_recording_nodes_count(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 14);
}
/**
* @brief Get field cpu_temp from sensorpod_status message
*
* @return [degC] Temperature of sensorpod CPU in
*/
static inline uint8_t mavlink_msg_sensorpod_status_get_cpu_temp(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 15);
}
/**
* @brief Get field free_space from sensorpod_status message
*
* @return Free space available in recordings directory in [Gb] * 1e2
*/
static inline uint16_t mavlink_msg_sensorpod_status_get_free_space(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 8);
}
/**
* @brief Decode a sensorpod_status message into a struct
*
* @param msg The message to decode
* @param sensorpod_status C-struct to decode the message contents into
*/
static inline void mavlink_msg_sensorpod_status_decode(const mavlink_message_t* msg, mavlink_sensorpod_status_t* sensorpod_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
sensorpod_status->timestamp = mavlink_msg_sensorpod_status_get_timestamp(msg);
sensorpod_status->free_space = mavlink_msg_sensorpod_status_get_free_space(msg);
sensorpod_status->visensor_rate_1 = mavlink_msg_sensorpod_status_get_visensor_rate_1(msg);
sensorpod_status->visensor_rate_2 = mavlink_msg_sensorpod_status_get_visensor_rate_2(msg);
sensorpod_status->visensor_rate_3 = mavlink_msg_sensorpod_status_get_visensor_rate_3(msg);
sensorpod_status->visensor_rate_4 = mavlink_msg_sensorpod_status_get_visensor_rate_4(msg);
sensorpod_status->recording_nodes_count = mavlink_msg_sensorpod_status_get_recording_nodes_count(msg);
sensorpod_status->cpu_temp = mavlink_msg_sensorpod_status_get_cpu_temp(msg);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN? msg->len : MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN;
memset(sensorpod_status, 0, MAVLINK_MSG_ID_SENSORPOD_STATUS_LEN);
memcpy(sensorpod_status, _MAV_PAYLOAD(msg), len);
#endif
}

View File

@@ -0,0 +1,953 @@
/** @file
* @brief MAVLink comm protocol testsuite generated from ASLUAV.xml
* @see http://qgroundcontrol.org/mavlink/
*/
#pragma once
#ifndef ASLUAV_TESTSUITE_H
#define ASLUAV_TESTSUITE_H
#ifdef __cplusplus
extern "C" {
#endif
#ifndef MAVLINK_TEST_ALL
#define MAVLINK_TEST_ALL
static void mavlink_test_common(uint8_t, uint8_t, mavlink_message_t *last_msg);
static void mavlink_test_ASLUAV(uint8_t, uint8_t, mavlink_message_t *last_msg);
static void mavlink_test_all(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
mavlink_test_common(system_id, component_id, last_msg);
mavlink_test_ASLUAV(system_id, component_id, last_msg);
}
#endif
#include "../common/testsuite.h"
static void mavlink_test_command_int_stamped(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_COMMAND_INT_STAMPED >= 256) {
return;
}
#endif
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_command_int_stamped_t packet_in = {
93372036854775807ULL,963497880,101.0,129.0,157.0,185.0,963498920,963499128,269.0,19315,3,70,137,204,15
};
mavlink_command_int_stamped_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.vehicle_timestamp = packet_in.vehicle_timestamp;
packet1.utc_time = packet_in.utc_time;
packet1.param1 = packet_in.param1;
packet1.param2 = packet_in.param2;
packet1.param3 = packet_in.param3;
packet1.param4 = packet_in.param4;
packet1.x = packet_in.x;
packet1.y = packet_in.y;
packet1.z = packet_in.z;
packet1.command = packet_in.command;
packet1.target_system = packet_in.target_system;
packet1.target_component = packet_in.target_component;
packet1.frame = packet_in.frame;
packet1.current = packet_in.current;
packet1.autocontinue = packet_in.autocontinue;
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
// cope with extensions
memset(MAVLINK_MSG_ID_COMMAND_INT_STAMPED_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_COMMAND_INT_STAMPED_MIN_LEN);
}
#endif
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_command_int_stamped_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_command_int_stamped_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_command_int_stamped_pack(system_id, component_id, &msg , packet1.utc_time , packet1.vehicle_timestamp , packet1.target_system , packet1.target_component , packet1.frame , packet1.command , packet1.current , packet1.autocontinue , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.x , packet1.y , packet1.z );
mavlink_msg_command_int_stamped_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_command_int_stamped_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.utc_time , packet1.vehicle_timestamp , packet1.target_system , packet1.target_component , packet1.frame , packet1.command , packet1.current , packet1.autocontinue , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.x , packet1.y , packet1.z );
mavlink_msg_command_int_stamped_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_command_int_stamped_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_command_int_stamped_send(MAVLINK_COMM_1 , packet1.utc_time , packet1.vehicle_timestamp , packet1.target_system , packet1.target_component , packet1.frame , packet1.command , packet1.current , packet1.autocontinue , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.x , packet1.y , packet1.z );
mavlink_msg_command_int_stamped_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_command_long_stamped(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_COMMAND_LONG_STAMPED >= 256) {
return;
}
#endif
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_command_long_stamped_t packet_in = {
93372036854775807ULL,963497880,101.0,129.0,157.0,185.0,213.0,241.0,269.0,19315,3,70,137
};
mavlink_command_long_stamped_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.vehicle_timestamp = packet_in.vehicle_timestamp;
packet1.utc_time = packet_in.utc_time;
packet1.param1 = packet_in.param1;
packet1.param2 = packet_in.param2;
packet1.param3 = packet_in.param3;
packet1.param4 = packet_in.param4;
packet1.param5 = packet_in.param5;
packet1.param6 = packet_in.param6;
packet1.param7 = packet_in.param7;
packet1.command = packet_in.command;
packet1.target_system = packet_in.target_system;
packet1.target_component = packet_in.target_component;
packet1.confirmation = packet_in.confirmation;
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
// cope with extensions
memset(MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_COMMAND_LONG_STAMPED_MIN_LEN);
}
#endif
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_command_long_stamped_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_command_long_stamped_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_command_long_stamped_pack(system_id, component_id, &msg , packet1.utc_time , packet1.vehicle_timestamp , packet1.target_system , packet1.target_component , packet1.command , packet1.confirmation , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.param5 , packet1.param6 , packet1.param7 );
mavlink_msg_command_long_stamped_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_command_long_stamped_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.utc_time , packet1.vehicle_timestamp , packet1.target_system , packet1.target_component , packet1.command , packet1.confirmation , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.param5 , packet1.param6 , packet1.param7 );
mavlink_msg_command_long_stamped_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_command_long_stamped_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_command_long_stamped_send(MAVLINK_COMM_1 , packet1.utc_time , packet1.vehicle_timestamp , packet1.target_system , packet1.target_component , packet1.command , packet1.confirmation , packet1.param1 , packet1.param2 , packet1.param3 , packet1.param4 , packet1.param5 , packet1.param6 , packet1.param7 );
mavlink_msg_command_long_stamped_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_sens_power(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SENS_POWER >= 256) {
return;
}
#endif
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_sens_power_t packet_in = {
17.0,45.0,73.0,101.0
};
mavlink_sens_power_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.adc121_vspb_volt = packet_in.adc121_vspb_volt;
packet1.adc121_cspb_amp = packet_in.adc121_cspb_amp;
packet1.adc121_cs1_amp = packet_in.adc121_cs1_amp;
packet1.adc121_cs2_amp = packet_in.adc121_cs2_amp;
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
// cope with extensions
memset(MAVLINK_MSG_ID_SENS_POWER_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SENS_POWER_MIN_LEN);
}
#endif
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_power_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_sens_power_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_power_pack(system_id, component_id, &msg , packet1.adc121_vspb_volt , packet1.adc121_cspb_amp , packet1.adc121_cs1_amp , packet1.adc121_cs2_amp );
mavlink_msg_sens_power_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_power_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.adc121_vspb_volt , packet1.adc121_cspb_amp , packet1.adc121_cs1_amp , packet1.adc121_cs2_amp );
mavlink_msg_sens_power_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_sens_power_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_power_send(MAVLINK_COMM_1 , packet1.adc121_vspb_volt , packet1.adc121_cspb_amp , packet1.adc121_cs1_amp , packet1.adc121_cs2_amp );
mavlink_msg_sens_power_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_sens_mppt(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SENS_MPPT >= 256) {
return;
}
#endif
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_sens_mppt_t packet_in = {
93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,18899,19003,19107,247,58,125
};
mavlink_sens_mppt_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.mppt_timestamp = packet_in.mppt_timestamp;
packet1.mppt1_volt = packet_in.mppt1_volt;
packet1.mppt1_amp = packet_in.mppt1_amp;
packet1.mppt2_volt = packet_in.mppt2_volt;
packet1.mppt2_amp = packet_in.mppt2_amp;
packet1.mppt3_volt = packet_in.mppt3_volt;
packet1.mppt3_amp = packet_in.mppt3_amp;
packet1.mppt1_pwm = packet_in.mppt1_pwm;
packet1.mppt2_pwm = packet_in.mppt2_pwm;
packet1.mppt3_pwm = packet_in.mppt3_pwm;
packet1.mppt1_status = packet_in.mppt1_status;
packet1.mppt2_status = packet_in.mppt2_status;
packet1.mppt3_status = packet_in.mppt3_status;
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
// cope with extensions
memset(MAVLINK_MSG_ID_SENS_MPPT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SENS_MPPT_MIN_LEN);
}
#endif
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_mppt_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_sens_mppt_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_mppt_pack(system_id, component_id, &msg , packet1.mppt_timestamp , packet1.mppt1_volt , packet1.mppt1_amp , packet1.mppt1_pwm , packet1.mppt1_status , packet1.mppt2_volt , packet1.mppt2_amp , packet1.mppt2_pwm , packet1.mppt2_status , packet1.mppt3_volt , packet1.mppt3_amp , packet1.mppt3_pwm , packet1.mppt3_status );
mavlink_msg_sens_mppt_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_mppt_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.mppt_timestamp , packet1.mppt1_volt , packet1.mppt1_amp , packet1.mppt1_pwm , packet1.mppt1_status , packet1.mppt2_volt , packet1.mppt2_amp , packet1.mppt2_pwm , packet1.mppt2_status , packet1.mppt3_volt , packet1.mppt3_amp , packet1.mppt3_pwm , packet1.mppt3_status );
mavlink_msg_sens_mppt_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_sens_mppt_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_mppt_send(MAVLINK_COMM_1 , packet1.mppt_timestamp , packet1.mppt1_volt , packet1.mppt1_amp , packet1.mppt1_pwm , packet1.mppt1_status , packet1.mppt2_volt , packet1.mppt2_amp , packet1.mppt2_pwm , packet1.mppt2_status , packet1.mppt3_volt , packet1.mppt3_amp , packet1.mppt3_pwm , packet1.mppt3_status );
mavlink_msg_sens_mppt_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_aslctrl_data(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ASLCTRL_DATA >= 256) {
return;
}
#endif
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_aslctrl_data_t packet_in = {
93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,325.0,353.0,381.0,409.0,437.0,465.0,493.0,521.0,549.0,577.0,605.0,633.0,661.0,37,104
};
mavlink_aslctrl_data_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.timestamp = packet_in.timestamp;
packet1.h = packet_in.h;
packet1.hRef = packet_in.hRef;
packet1.hRef_t = packet_in.hRef_t;
packet1.PitchAngle = packet_in.PitchAngle;
packet1.PitchAngleRef = packet_in.PitchAngleRef;
packet1.q = packet_in.q;
packet1.qRef = packet_in.qRef;
packet1.uElev = packet_in.uElev;
packet1.uThrot = packet_in.uThrot;
packet1.uThrot2 = packet_in.uThrot2;
packet1.nZ = packet_in.nZ;
packet1.AirspeedRef = packet_in.AirspeedRef;
packet1.YawAngle = packet_in.YawAngle;
packet1.YawAngleRef = packet_in.YawAngleRef;
packet1.RollAngle = packet_in.RollAngle;
packet1.RollAngleRef = packet_in.RollAngleRef;
packet1.p = packet_in.p;
packet1.pRef = packet_in.pRef;
packet1.r = packet_in.r;
packet1.rRef = packet_in.rRef;
packet1.uAil = packet_in.uAil;
packet1.uRud = packet_in.uRud;
packet1.aslctrl_mode = packet_in.aslctrl_mode;
packet1.SpoilersEngaged = packet_in.SpoilersEngaged;
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
// cope with extensions
memset(MAVLINK_MSG_ID_ASLCTRL_DATA_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ASLCTRL_DATA_MIN_LEN);
}
#endif
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_aslctrl_data_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_aslctrl_data_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_aslctrl_data_pack(system_id, component_id, &msg , packet1.timestamp , packet1.aslctrl_mode , packet1.h , packet1.hRef , packet1.hRef_t , packet1.PitchAngle , packet1.PitchAngleRef , packet1.q , packet1.qRef , packet1.uElev , packet1.uThrot , packet1.uThrot2 , packet1.nZ , packet1.AirspeedRef , packet1.SpoilersEngaged , packet1.YawAngle , packet1.YawAngleRef , packet1.RollAngle , packet1.RollAngleRef , packet1.p , packet1.pRef , packet1.r , packet1.rRef , packet1.uAil , packet1.uRud );
mavlink_msg_aslctrl_data_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_aslctrl_data_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.aslctrl_mode , packet1.h , packet1.hRef , packet1.hRef_t , packet1.PitchAngle , packet1.PitchAngleRef , packet1.q , packet1.qRef , packet1.uElev , packet1.uThrot , packet1.uThrot2 , packet1.nZ , packet1.AirspeedRef , packet1.SpoilersEngaged , packet1.YawAngle , packet1.YawAngleRef , packet1.RollAngle , packet1.RollAngleRef , packet1.p , packet1.pRef , packet1.r , packet1.rRef , packet1.uAil , packet1.uRud );
mavlink_msg_aslctrl_data_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_aslctrl_data_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_aslctrl_data_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.aslctrl_mode , packet1.h , packet1.hRef , packet1.hRef_t , packet1.PitchAngle , packet1.PitchAngleRef , packet1.q , packet1.qRef , packet1.uElev , packet1.uThrot , packet1.uThrot2 , packet1.nZ , packet1.AirspeedRef , packet1.SpoilersEngaged , packet1.YawAngle , packet1.YawAngleRef , packet1.RollAngle , packet1.RollAngleRef , packet1.p , packet1.pRef , packet1.r , packet1.rRef , packet1.uAil , packet1.uRud );
mavlink_msg_aslctrl_data_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_aslctrl_debug(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ASLCTRL_DEBUG >= 256) {
return;
}
#endif
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_aslctrl_debug_t packet_in = {
963497464,45.0,73.0,101.0,129.0,157.0,185.0,213.0,241.0,113,180
};
mavlink_aslctrl_debug_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.i32_1 = packet_in.i32_1;
packet1.f_1 = packet_in.f_1;
packet1.f_2 = packet_in.f_2;
packet1.f_3 = packet_in.f_3;
packet1.f_4 = packet_in.f_4;
packet1.f_5 = packet_in.f_5;
packet1.f_6 = packet_in.f_6;
packet1.f_7 = packet_in.f_7;
packet1.f_8 = packet_in.f_8;
packet1.i8_1 = packet_in.i8_1;
packet1.i8_2 = packet_in.i8_2;
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
// cope with extensions
memset(MAVLINK_MSG_ID_ASLCTRL_DEBUG_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ASLCTRL_DEBUG_MIN_LEN);
}
#endif
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_aslctrl_debug_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_aslctrl_debug_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_aslctrl_debug_pack(system_id, component_id, &msg , packet1.i32_1 , packet1.i8_1 , packet1.i8_2 , packet1.f_1 , packet1.f_2 , packet1.f_3 , packet1.f_4 , packet1.f_5 , packet1.f_6 , packet1.f_7 , packet1.f_8 );
mavlink_msg_aslctrl_debug_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_aslctrl_debug_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.i32_1 , packet1.i8_1 , packet1.i8_2 , packet1.f_1 , packet1.f_2 , packet1.f_3 , packet1.f_4 , packet1.f_5 , packet1.f_6 , packet1.f_7 , packet1.f_8 );
mavlink_msg_aslctrl_debug_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_aslctrl_debug_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_aslctrl_debug_send(MAVLINK_COMM_1 , packet1.i32_1 , packet1.i8_1 , packet1.i8_2 , packet1.f_1 , packet1.f_2 , packet1.f_3 , packet1.f_4 , packet1.f_5 , packet1.f_6 , packet1.f_7 , packet1.f_8 );
mavlink_msg_aslctrl_debug_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_asluav_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ASLUAV_STATUS >= 256) {
return;
}
#endif
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_asluav_status_t packet_in = {
17.0,17,84,{ 151, 152, 153, 154, 155, 156, 157, 158 }
};
mavlink_asluav_status_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.Motor_rpm = packet_in.Motor_rpm;
packet1.LED_status = packet_in.LED_status;
packet1.SATCOM_status = packet_in.SATCOM_status;
mav_array_memcpy(packet1.Servo_status, packet_in.Servo_status, sizeof(uint8_t)*8);
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
// cope with extensions
memset(MAVLINK_MSG_ID_ASLUAV_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ASLUAV_STATUS_MIN_LEN);
}
#endif
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_asluav_status_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_asluav_status_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_asluav_status_pack(system_id, component_id, &msg , packet1.LED_status , packet1.SATCOM_status , packet1.Servo_status , packet1.Motor_rpm );
mavlink_msg_asluav_status_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_asluav_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.LED_status , packet1.SATCOM_status , packet1.Servo_status , packet1.Motor_rpm );
mavlink_msg_asluav_status_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_asluav_status_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_asluav_status_send(MAVLINK_COMM_1 , packet1.LED_status , packet1.SATCOM_status , packet1.Servo_status , packet1.Motor_rpm );
mavlink_msg_asluav_status_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_ekf_ext(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_EKF_EXT >= 256) {
return;
}
#endif
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_ekf_ext_t packet_in = {
93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0
};
mavlink_ekf_ext_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.timestamp = packet_in.timestamp;
packet1.Windspeed = packet_in.Windspeed;
packet1.WindDir = packet_in.WindDir;
packet1.WindZ = packet_in.WindZ;
packet1.Airspeed = packet_in.Airspeed;
packet1.beta = packet_in.beta;
packet1.alpha = packet_in.alpha;
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
// cope with extensions
memset(MAVLINK_MSG_ID_EKF_EXT_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_EKF_EXT_MIN_LEN);
}
#endif
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_ekf_ext_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_ekf_ext_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_ekf_ext_pack(system_id, component_id, &msg , packet1.timestamp , packet1.Windspeed , packet1.WindDir , packet1.WindZ , packet1.Airspeed , packet1.beta , packet1.alpha );
mavlink_msg_ekf_ext_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_ekf_ext_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.Windspeed , packet1.WindDir , packet1.WindZ , packet1.Airspeed , packet1.beta , packet1.alpha );
mavlink_msg_ekf_ext_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_ekf_ext_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_ekf_ext_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.Windspeed , packet1.WindDir , packet1.WindZ , packet1.Airspeed , packet1.beta , packet1.alpha );
mavlink_msg_ekf_ext_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_asl_obctrl(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_ASL_OBCTRL >= 256) {
return;
}
#endif
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_asl_obctrl_t packet_in = {
93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,101
};
mavlink_asl_obctrl_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.timestamp = packet_in.timestamp;
packet1.uElev = packet_in.uElev;
packet1.uThrot = packet_in.uThrot;
packet1.uThrot2 = packet_in.uThrot2;
packet1.uAilL = packet_in.uAilL;
packet1.uAilR = packet_in.uAilR;
packet1.uRud = packet_in.uRud;
packet1.obctrl_status = packet_in.obctrl_status;
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
// cope with extensions
memset(MAVLINK_MSG_ID_ASL_OBCTRL_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_ASL_OBCTRL_MIN_LEN);
}
#endif
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_asl_obctrl_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_asl_obctrl_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_asl_obctrl_pack(system_id, component_id, &msg , packet1.timestamp , packet1.uElev , packet1.uThrot , packet1.uThrot2 , packet1.uAilL , packet1.uAilR , packet1.uRud , packet1.obctrl_status );
mavlink_msg_asl_obctrl_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_asl_obctrl_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.uElev , packet1.uThrot , packet1.uThrot2 , packet1.uAilL , packet1.uAilR , packet1.uRud , packet1.obctrl_status );
mavlink_msg_asl_obctrl_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_asl_obctrl_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_asl_obctrl_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.uElev , packet1.uThrot , packet1.uThrot2 , packet1.uAilL , packet1.uAilR , packet1.uRud , packet1.obctrl_status );
mavlink_msg_asl_obctrl_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_sens_atmos(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SENS_ATMOS >= 256) {
return;
}
#endif
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_sens_atmos_t packet_in = {
17.0,45.0
};
mavlink_sens_atmos_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.TempAmbient = packet_in.TempAmbient;
packet1.Humidity = packet_in.Humidity;
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
// cope with extensions
memset(MAVLINK_MSG_ID_SENS_ATMOS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SENS_ATMOS_MIN_LEN);
}
#endif
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_atmos_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_sens_atmos_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_atmos_pack(system_id, component_id, &msg , packet1.TempAmbient , packet1.Humidity );
mavlink_msg_sens_atmos_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_atmos_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.TempAmbient , packet1.Humidity );
mavlink_msg_sens_atmos_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_sens_atmos_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_atmos_send(MAVLINK_COMM_1 , packet1.TempAmbient , packet1.Humidity );
mavlink_msg_sens_atmos_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_sens_batmon(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SENS_BATMON >= 256) {
return;
}
#endif
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_sens_batmon_t packet_in = {
93372036854775807ULL,73.0,963498088,963498296,18275,18379,18483,18587,18691,18795,18899,19003,19107,19211,125
};
mavlink_sens_batmon_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.batmon_timestamp = packet_in.batmon_timestamp;
packet1.temperature = packet_in.temperature;
packet1.safetystatus = packet_in.safetystatus;
packet1.operationstatus = packet_in.operationstatus;
packet1.voltage = packet_in.voltage;
packet1.current = packet_in.current;
packet1.batterystatus = packet_in.batterystatus;
packet1.serialnumber = packet_in.serialnumber;
packet1.cellvoltage1 = packet_in.cellvoltage1;
packet1.cellvoltage2 = packet_in.cellvoltage2;
packet1.cellvoltage3 = packet_in.cellvoltage3;
packet1.cellvoltage4 = packet_in.cellvoltage4;
packet1.cellvoltage5 = packet_in.cellvoltage5;
packet1.cellvoltage6 = packet_in.cellvoltage6;
packet1.SoC = packet_in.SoC;
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
// cope with extensions
memset(MAVLINK_MSG_ID_SENS_BATMON_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SENS_BATMON_MIN_LEN);
}
#endif
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_batmon_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_sens_batmon_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_batmon_pack(system_id, component_id, &msg , packet1.batmon_timestamp , packet1.temperature , packet1.voltage , packet1.current , packet1.SoC , packet1.batterystatus , packet1.serialnumber , packet1.safetystatus , packet1.operationstatus , packet1.cellvoltage1 , packet1.cellvoltage2 , packet1.cellvoltage3 , packet1.cellvoltage4 , packet1.cellvoltage5 , packet1.cellvoltage6 );
mavlink_msg_sens_batmon_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_batmon_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.batmon_timestamp , packet1.temperature , packet1.voltage , packet1.current , packet1.SoC , packet1.batterystatus , packet1.serialnumber , packet1.safetystatus , packet1.operationstatus , packet1.cellvoltage1 , packet1.cellvoltage2 , packet1.cellvoltage3 , packet1.cellvoltage4 , packet1.cellvoltage5 , packet1.cellvoltage6 );
mavlink_msg_sens_batmon_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_sens_batmon_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_batmon_send(MAVLINK_COMM_1 , packet1.batmon_timestamp , packet1.temperature , packet1.voltage , packet1.current , packet1.SoC , packet1.batterystatus , packet1.serialnumber , packet1.safetystatus , packet1.operationstatus , packet1.cellvoltage1 , packet1.cellvoltage2 , packet1.cellvoltage3 , packet1.cellvoltage4 , packet1.cellvoltage5 , packet1.cellvoltage6 );
mavlink_msg_sens_batmon_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_fw_soaring_data(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_FW_SOARING_DATA >= 256) {
return;
}
#endif
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_fw_soaring_data_t packet_in = {
93372036854775807ULL,93372036854776311ULL,129.0,157.0,185.0,213.0,241.0,269.0,297.0,325.0,353.0,381.0,409.0,437.0,465.0,493.0,521.0,549.0,577.0,605.0,633.0,661.0,689.0,49,116
};
mavlink_fw_soaring_data_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.timestamp = packet_in.timestamp;
packet1.timestampModeChanged = packet_in.timestampModeChanged;
packet1.xW = packet_in.xW;
packet1.xR = packet_in.xR;
packet1.xLat = packet_in.xLat;
packet1.xLon = packet_in.xLon;
packet1.VarW = packet_in.VarW;
packet1.VarR = packet_in.VarR;
packet1.VarLat = packet_in.VarLat;
packet1.VarLon = packet_in.VarLon;
packet1.LoiterRadius = packet_in.LoiterRadius;
packet1.LoiterDirection = packet_in.LoiterDirection;
packet1.DistToSoarPoint = packet_in.DistToSoarPoint;
packet1.vSinkExp = packet_in.vSinkExp;
packet1.z1_LocalUpdraftSpeed = packet_in.z1_LocalUpdraftSpeed;
packet1.z2_DeltaRoll = packet_in.z2_DeltaRoll;
packet1.z1_exp = packet_in.z1_exp;
packet1.z2_exp = packet_in.z2_exp;
packet1.ThermalGSNorth = packet_in.ThermalGSNorth;
packet1.ThermalGSEast = packet_in.ThermalGSEast;
packet1.TSE_dot = packet_in.TSE_dot;
packet1.DebugVar1 = packet_in.DebugVar1;
packet1.DebugVar2 = packet_in.DebugVar2;
packet1.ControlMode = packet_in.ControlMode;
packet1.valid = packet_in.valid;
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
// cope with extensions
memset(MAVLINK_MSG_ID_FW_SOARING_DATA_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_FW_SOARING_DATA_MIN_LEN);
}
#endif
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_fw_soaring_data_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_fw_soaring_data_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_fw_soaring_data_pack(system_id, component_id, &msg , packet1.timestamp , packet1.timestampModeChanged , packet1.xW , packet1.xR , packet1.xLat , packet1.xLon , packet1.VarW , packet1.VarR , packet1.VarLat , packet1.VarLon , packet1.LoiterRadius , packet1.LoiterDirection , packet1.DistToSoarPoint , packet1.vSinkExp , packet1.z1_LocalUpdraftSpeed , packet1.z2_DeltaRoll , packet1.z1_exp , packet1.z2_exp , packet1.ThermalGSNorth , packet1.ThermalGSEast , packet1.TSE_dot , packet1.DebugVar1 , packet1.DebugVar2 , packet1.ControlMode , packet1.valid );
mavlink_msg_fw_soaring_data_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_fw_soaring_data_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.timestampModeChanged , packet1.xW , packet1.xR , packet1.xLat , packet1.xLon , packet1.VarW , packet1.VarR , packet1.VarLat , packet1.VarLon , packet1.LoiterRadius , packet1.LoiterDirection , packet1.DistToSoarPoint , packet1.vSinkExp , packet1.z1_LocalUpdraftSpeed , packet1.z2_DeltaRoll , packet1.z1_exp , packet1.z2_exp , packet1.ThermalGSNorth , packet1.ThermalGSEast , packet1.TSE_dot , packet1.DebugVar1 , packet1.DebugVar2 , packet1.ControlMode , packet1.valid );
mavlink_msg_fw_soaring_data_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_fw_soaring_data_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_fw_soaring_data_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.timestampModeChanged , packet1.xW , packet1.xR , packet1.xLat , packet1.xLon , packet1.VarW , packet1.VarR , packet1.VarLat , packet1.VarLon , packet1.LoiterRadius , packet1.LoiterDirection , packet1.DistToSoarPoint , packet1.vSinkExp , packet1.z1_LocalUpdraftSpeed , packet1.z2_DeltaRoll , packet1.z1_exp , packet1.z2_exp , packet1.ThermalGSNorth , packet1.ThermalGSEast , packet1.TSE_dot , packet1.DebugVar1 , packet1.DebugVar2 , packet1.ControlMode , packet1.valid );
mavlink_msg_fw_soaring_data_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_sensorpod_status(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SENSORPOD_STATUS >= 256) {
return;
}
#endif
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_sensorpod_status_t packet_in = {
93372036854775807ULL,17651,163,230,41,108,175,242
};
mavlink_sensorpod_status_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.timestamp = packet_in.timestamp;
packet1.free_space = packet_in.free_space;
packet1.visensor_rate_1 = packet_in.visensor_rate_1;
packet1.visensor_rate_2 = packet_in.visensor_rate_2;
packet1.visensor_rate_3 = packet_in.visensor_rate_3;
packet1.visensor_rate_4 = packet_in.visensor_rate_4;
packet1.recording_nodes_count = packet_in.recording_nodes_count;
packet1.cpu_temp = packet_in.cpu_temp;
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
// cope with extensions
memset(MAVLINK_MSG_ID_SENSORPOD_STATUS_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SENSORPOD_STATUS_MIN_LEN);
}
#endif
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sensorpod_status_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_sensorpod_status_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sensorpod_status_pack(system_id, component_id, &msg , packet1.timestamp , packet1.visensor_rate_1 , packet1.visensor_rate_2 , packet1.visensor_rate_3 , packet1.visensor_rate_4 , packet1.recording_nodes_count , packet1.cpu_temp , packet1.free_space );
mavlink_msg_sensorpod_status_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sensorpod_status_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.visensor_rate_1 , packet1.visensor_rate_2 , packet1.visensor_rate_3 , packet1.visensor_rate_4 , packet1.recording_nodes_count , packet1.cpu_temp , packet1.free_space );
mavlink_msg_sensorpod_status_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_sensorpod_status_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sensorpod_status_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.visensor_rate_1 , packet1.visensor_rate_2 , packet1.visensor_rate_3 , packet1.visensor_rate_4 , packet1.recording_nodes_count , packet1.cpu_temp , packet1.free_space );
mavlink_msg_sensorpod_status_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_sens_power_board(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
mavlink_status_t *status = mavlink_get_channel_status(MAVLINK_COMM_0);
if ((status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) && MAVLINK_MSG_ID_SENS_POWER_BOARD >= 256) {
return;
}
#endif
mavlink_message_t msg;
uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
uint16_t i;
mavlink_sens_power_board_t packet_in = {
93372036854775807ULL,73.0,101.0,129.0,157.0,185.0,213.0,241.0,269.0,297.0,137,204
};
mavlink_sens_power_board_t packet1, packet2;
memset(&packet1, 0, sizeof(packet1));
packet1.timestamp = packet_in.timestamp;
packet1.pwr_brd_system_volt = packet_in.pwr_brd_system_volt;
packet1.pwr_brd_servo_volt = packet_in.pwr_brd_servo_volt;
packet1.pwr_brd_digital_volt = packet_in.pwr_brd_digital_volt;
packet1.pwr_brd_mot_l_amp = packet_in.pwr_brd_mot_l_amp;
packet1.pwr_brd_mot_r_amp = packet_in.pwr_brd_mot_r_amp;
packet1.pwr_brd_analog_amp = packet_in.pwr_brd_analog_amp;
packet1.pwr_brd_digital_amp = packet_in.pwr_brd_digital_amp;
packet1.pwr_brd_ext_amp = packet_in.pwr_brd_ext_amp;
packet1.pwr_brd_aux_amp = packet_in.pwr_brd_aux_amp;
packet1.pwr_brd_status = packet_in.pwr_brd_status;
packet1.pwr_brd_led_status = packet_in.pwr_brd_led_status;
#ifdef MAVLINK_STATUS_FLAG_OUT_MAVLINK1
if (status->flags & MAVLINK_STATUS_FLAG_OUT_MAVLINK1) {
// cope with extensions
memset(MAVLINK_MSG_ID_SENS_POWER_BOARD_MIN_LEN + (char *)&packet1, 0, sizeof(packet1)-MAVLINK_MSG_ID_SENS_POWER_BOARD_MIN_LEN);
}
#endif
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_power_board_encode(system_id, component_id, &msg, &packet1);
mavlink_msg_sens_power_board_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_power_board_pack(system_id, component_id, &msg , packet1.timestamp , packet1.pwr_brd_status , packet1.pwr_brd_led_status , packet1.pwr_brd_system_volt , packet1.pwr_brd_servo_volt , packet1.pwr_brd_digital_volt , packet1.pwr_brd_mot_l_amp , packet1.pwr_brd_mot_r_amp , packet1.pwr_brd_analog_amp , packet1.pwr_brd_digital_amp , packet1.pwr_brd_ext_amp , packet1.pwr_brd_aux_amp );
mavlink_msg_sens_power_board_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_power_board_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.timestamp , packet1.pwr_brd_status , packet1.pwr_brd_led_status , packet1.pwr_brd_system_volt , packet1.pwr_brd_servo_volt , packet1.pwr_brd_digital_volt , packet1.pwr_brd_mot_l_amp , packet1.pwr_brd_mot_r_amp , packet1.pwr_brd_analog_amp , packet1.pwr_brd_digital_amp , packet1.pwr_brd_ext_amp , packet1.pwr_brd_aux_amp );
mavlink_msg_sens_power_board_decode(&msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_to_send_buffer(buffer, &msg);
for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
comm_send_ch(MAVLINK_COMM_0, buffer[i]);
}
mavlink_msg_sens_power_board_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
memset(&packet2, 0, sizeof(packet2));
mavlink_msg_sens_power_board_send(MAVLINK_COMM_1 , packet1.timestamp , packet1.pwr_brd_status , packet1.pwr_brd_led_status , packet1.pwr_brd_system_volt , packet1.pwr_brd_servo_volt , packet1.pwr_brd_digital_volt , packet1.pwr_brd_mot_l_amp , packet1.pwr_brd_mot_r_amp , packet1.pwr_brd_analog_amp , packet1.pwr_brd_digital_amp , packet1.pwr_brd_ext_amp , packet1.pwr_brd_aux_amp );
mavlink_msg_sens_power_board_decode(last_msg, &packet2);
MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
}
static void mavlink_test_ASLUAV(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
{
mavlink_test_command_int_stamped(system_id, component_id, last_msg);
mavlink_test_command_long_stamped(system_id, component_id, last_msg);
mavlink_test_sens_power(system_id, component_id, last_msg);
mavlink_test_sens_mppt(system_id, component_id, last_msg);
mavlink_test_aslctrl_data(system_id, component_id, last_msg);
mavlink_test_aslctrl_debug(system_id, component_id, last_msg);
mavlink_test_asluav_status(system_id, component_id, last_msg);
mavlink_test_ekf_ext(system_id, component_id, last_msg);
mavlink_test_asl_obctrl(system_id, component_id, last_msg);
mavlink_test_sens_atmos(system_id, component_id, last_msg);
mavlink_test_sens_batmon(system_id, component_id, last_msg);
mavlink_test_fw_soaring_data(system_id, component_id, last_msg);
mavlink_test_sensorpod_status(system_id, component_id, last_msg);
mavlink_test_sens_power_board(system_id, component_id, last_msg);
}
#ifdef __cplusplus
}
#endif // __cplusplus
#endif // ASLUAV_TESTSUITE_H

View File

@@ -0,0 +1,14 @@
/** @file
* @brief MAVLink comm protocol built from ASLUAV.xml
* @see http://mavlink.org
*/
#pragma once
#ifndef MAVLINK_VERSION_H
#define MAVLINK_VERSION_H
#define MAVLINK_BUILD_DATE "Thu Aug 30 2018"
#define MAVLINK_WIRE_PROTOCOL_VERSION "2.0"
#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255
#endif // MAVLINK_VERSION_H