add command for ack

This commit is contained in:
Matt
2019-03-10 09:29:13 +08:00
parent a2c2cf99f2
commit 1a885d8625
5 changed files with 56 additions and 29 deletions
+47 -22
View File
@@ -5,16 +5,17 @@
MAVPACKED(
typedef struct __mavlink_xyk_command_ack_t {
uint16_t command; /*< Command ID (of command to send).*/
uint8_t REQ_status; /*< status */
}) mavlink_xyk_command_ack_t;
#define MAVLINK_MSG_ID_XYK_COMMAND_ACK_LEN 1
#define MAVLINK_MSG_ID_XYK_COMMAND_ACK_MIN_LEN 1
#define MAVLINK_MSG_ID_30011_LEN 1
#define MAVLINK_MSG_ID_30011_MIN_LEN 1
#define MAVLINK_MSG_ID_XYK_COMMAND_ACK_LEN 3
#define MAVLINK_MSG_ID_XYK_COMMAND_ACK_MIN_LEN 3
#define MAVLINK_MSG_ID_30011_LEN 3
#define MAVLINK_MSG_ID_30011_MIN_LEN 3
#define MAVLINK_MSG_ID_XYK_COMMAND_ACK_CRC 168
#define MAVLINK_MSG_ID_30011_CRC 168
#define MAVLINK_MSG_ID_XYK_COMMAND_ACK_CRC 8
#define MAVLINK_MSG_ID_30011_CRC 8
@@ -22,15 +23,17 @@ typedef struct __mavlink_xyk_command_ack_t {
#define MAVLINK_MESSAGE_INFO_XYK_COMMAND_ACK { \
30011, \
"XYK_COMMAND_ACK", \
1, \
{ { "REQ_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_xyk_command_ack_t, REQ_status) }, \
2, \
{ { "command", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_xyk_command_ack_t, command) }, \
{ "REQ_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_xyk_command_ack_t, REQ_status) }, \
} \
}
#else
#define MAVLINK_MESSAGE_INFO_XYK_COMMAND_ACK { \
"XYK_COMMAND_ACK", \
1, \
{ { "REQ_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_xyk_command_ack_t, REQ_status) }, \
2, \
{ { "command", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_xyk_command_ack_t, command) }, \
{ "REQ_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_xyk_command_ack_t, REQ_status) }, \
} \
}
#endif
@@ -41,19 +44,22 @@ typedef struct __mavlink_xyk_command_ack_t {
* @param component_id ID of this component (e.g. 200 for IMU)
* @param msg The MAVLink message to compress the data into
*
* @param command Command ID (of command to send).
* @param REQ_status status
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_xyk_command_ack_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
uint8_t REQ_status)
uint16_t command, uint8_t REQ_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_XYK_COMMAND_ACK_LEN];
_mav_put_uint8_t(buf, 0, REQ_status);
_mav_put_uint16_t(buf, 0, command);
_mav_put_uint8_t(buf, 2, REQ_status);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_XYK_COMMAND_ACK_LEN);
#else
mavlink_xyk_command_ack_t packet;
packet.command = command;
packet.REQ_status = REQ_status;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_XYK_COMMAND_ACK_LEN);
@@ -69,20 +75,23 @@ static inline uint16_t mavlink_msg_xyk_command_ack_pack(uint8_t system_id, uint8
* @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 Command ID (of command to send).
* @param REQ_status status
* @return length of the message in bytes (excluding serial stream start sign)
*/
static inline uint16_t mavlink_msg_xyk_command_ack_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
mavlink_message_t* msg,
uint8_t REQ_status)
uint16_t command,uint8_t REQ_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_XYK_COMMAND_ACK_LEN];
_mav_put_uint8_t(buf, 0, REQ_status);
_mav_put_uint16_t(buf, 0, command);
_mav_put_uint8_t(buf, 2, REQ_status);
memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_XYK_COMMAND_ACK_LEN);
#else
mavlink_xyk_command_ack_t packet;
packet.command = command;
packet.REQ_status = REQ_status;
memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_XYK_COMMAND_ACK_LEN);
@@ -102,7 +111,7 @@ static inline uint16_t mavlink_msg_xyk_command_ack_pack_chan(uint8_t system_id,
*/
static inline uint16_t mavlink_msg_xyk_command_ack_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_xyk_command_ack_t* xyk_command_ack)
{
return mavlink_msg_xyk_command_ack_pack(system_id, component_id, msg, xyk_command_ack->REQ_status);
return mavlink_msg_xyk_command_ack_pack(system_id, component_id, msg, xyk_command_ack->command, xyk_command_ack->REQ_status);
}
/**
@@ -116,26 +125,29 @@ static inline uint16_t mavlink_msg_xyk_command_ack_encode(uint8_t system_id, uin
*/
static inline uint16_t mavlink_msg_xyk_command_ack_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_xyk_command_ack_t* xyk_command_ack)
{
return mavlink_msg_xyk_command_ack_pack_chan(system_id, component_id, chan, msg, xyk_command_ack->REQ_status);
return mavlink_msg_xyk_command_ack_pack_chan(system_id, component_id, chan, msg, xyk_command_ack->command, xyk_command_ack->REQ_status);
}
/**
* @brief Send a xyk_command_ack message
* @param chan MAVLink channel to send the message
*
* @param command Command ID (of command to send).
* @param REQ_status status
*/
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
static inline void mavlink_msg_xyk_command_ack_send(mavlink_channel_t chan, uint8_t REQ_status)
static inline void mavlink_msg_xyk_command_ack_send(mavlink_channel_t chan, uint16_t command, uint8_t REQ_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char buf[MAVLINK_MSG_ID_XYK_COMMAND_ACK_LEN];
_mav_put_uint8_t(buf, 0, REQ_status);
_mav_put_uint16_t(buf, 0, command);
_mav_put_uint8_t(buf, 2, REQ_status);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_XYK_COMMAND_ACK, buf, MAVLINK_MSG_ID_XYK_COMMAND_ACK_MIN_LEN, MAVLINK_MSG_ID_XYK_COMMAND_ACK_LEN, MAVLINK_MSG_ID_XYK_COMMAND_ACK_CRC);
#else
mavlink_xyk_command_ack_t packet;
packet.command = command;
packet.REQ_status = REQ_status;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_XYK_COMMAND_ACK, (const char *)&packet, MAVLINK_MSG_ID_XYK_COMMAND_ACK_MIN_LEN, MAVLINK_MSG_ID_XYK_COMMAND_ACK_LEN, MAVLINK_MSG_ID_XYK_COMMAND_ACK_CRC);
@@ -150,7 +162,7 @@ static inline void mavlink_msg_xyk_command_ack_send(mavlink_channel_t chan, uint
static inline void mavlink_msg_xyk_command_ack_send_struct(mavlink_channel_t chan, const mavlink_xyk_command_ack_t* xyk_command_ack)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
mavlink_msg_xyk_command_ack_send(chan, xyk_command_ack->REQ_status);
mavlink_msg_xyk_command_ack_send(chan, xyk_command_ack->command, xyk_command_ack->REQ_status);
#else
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_XYK_COMMAND_ACK, (const char *)xyk_command_ack, MAVLINK_MSG_ID_XYK_COMMAND_ACK_MIN_LEN, MAVLINK_MSG_ID_XYK_COMMAND_ACK_LEN, MAVLINK_MSG_ID_XYK_COMMAND_ACK_CRC);
#endif
@@ -164,15 +176,17 @@ static inline void mavlink_msg_xyk_command_ack_send_struct(mavlink_channel_t cha
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_xyk_command_ack_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint8_t REQ_status)
static inline void mavlink_msg_xyk_command_ack_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint16_t command, uint8_t REQ_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
char *buf = (char *)msgbuf;
_mav_put_uint8_t(buf, 0, REQ_status);
_mav_put_uint16_t(buf, 0, command);
_mav_put_uint8_t(buf, 2, REQ_status);
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_XYK_COMMAND_ACK, buf, MAVLINK_MSG_ID_XYK_COMMAND_ACK_MIN_LEN, MAVLINK_MSG_ID_XYK_COMMAND_ACK_LEN, MAVLINK_MSG_ID_XYK_COMMAND_ACK_CRC);
#else
mavlink_xyk_command_ack_t *packet = (mavlink_xyk_command_ack_t *)msgbuf;
packet->command = command;
packet->REQ_status = REQ_status;
_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_XYK_COMMAND_ACK, (const char *)packet, MAVLINK_MSG_ID_XYK_COMMAND_ACK_MIN_LEN, MAVLINK_MSG_ID_XYK_COMMAND_ACK_LEN, MAVLINK_MSG_ID_XYK_COMMAND_ACK_CRC);
@@ -185,6 +199,16 @@ static inline void mavlink_msg_xyk_command_ack_send_buf(mavlink_message_t *msgbu
// MESSAGE XYK_COMMAND_ACK UNPACKING
/**
* @brief Get field command from xyk_command_ack message
*
* @return Command ID (of command to send).
*/
static inline uint16_t mavlink_msg_xyk_command_ack_get_command(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint16_t(msg, 0);
}
/**
* @brief Get field REQ_status from xyk_command_ack message
*
@@ -192,7 +216,7 @@ static inline void mavlink_msg_xyk_command_ack_send_buf(mavlink_message_t *msgbu
*/
static inline uint8_t mavlink_msg_xyk_command_ack_get_REQ_status(const mavlink_message_t* msg)
{
return _MAV_RETURN_uint8_t(msg, 0);
return _MAV_RETURN_uint8_t(msg, 2);
}
/**
@@ -204,6 +228,7 @@ static inline uint8_t mavlink_msg_xyk_command_ack_get_REQ_status(const mavlink_m
static inline void mavlink_msg_xyk_command_ack_decode(const mavlink_message_t* msg, mavlink_xyk_command_ack_t* xyk_command_ack)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
xyk_command_ack->command = mavlink_msg_xyk_command_ack_get_command(msg);
xyk_command_ack->REQ_status = mavlink_msg_xyk_command_ack_get_REQ_status(msg);
#else
uint8_t len = msg->len < MAVLINK_MSG_ID_XYK_COMMAND_ACK_LEN? msg->len : MAVLINK_MSG_ID_XYK_COMMAND_ACK_LEN;