mavlink_msg_data_transmission_handshake.h 11.2 KB
Newer Older
James Goppert's avatar
James Goppert committed
1 2
// MESSAGE DATA_TRANSMISSION_HANDSHAKE PACKING

lm's avatar
lm committed
3
#define MAVLINK_MSG_ID_DATA_TRANSMISSION_HANDSHAKE 193
James Goppert's avatar
James Goppert committed
4

lm's avatar
lm committed
5
typedef struct __mavlink_data_transmission_handshake_t
James Goppert's avatar
James Goppert committed
6
{
lm's avatar
lm committed
7
 uint32_t size; ///< total data size in bytes (set on ACK only)
8 9
 uint16_t width; ///< Width of a matrix or image
 uint16_t height; ///< Height of a matrix or image
lm's avatar
lm committed
10 11 12 13
 uint8_t type; ///< type of requested/acknowledged data (as defined in ENUM DATA_TYPES in mavlink/include/mavlink_types.h)
 uint8_t packets; ///< number of packets beeing sent (set on ACK only)
 uint8_t payload; ///< payload size per packet (normally 253 byte, see DATA field size in message ENCAPSULATED_DATA) (set on ACK only)
 uint8_t jpg_quality; ///< JPEG quality out of [1,100]
James Goppert's avatar
James Goppert committed
14 15
} mavlink_data_transmission_handshake_t;

16 17
#define MAVLINK_MSG_ID_DATA_TRANSMISSION_HANDSHAKE_LEN 12
#define MAVLINK_MSG_ID_193_LEN 12
lm's avatar
lm committed
18 19 20 21 22



#define MAVLINK_MESSAGE_INFO_DATA_TRANSMISSION_HANDSHAKE { \
	"DATA_TRANSMISSION_HANDSHAKE", \
23
	7, \
lm's avatar
lm committed
24
	{  { "size", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_data_transmission_handshake_t, size) }, \
25 26 27 28 29 30
         { "width", NULL, MAVLINK_TYPE_UINT16_T, 0, 4, offsetof(mavlink_data_transmission_handshake_t, width) }, \
         { "height", NULL, MAVLINK_TYPE_UINT16_T, 0, 6, offsetof(mavlink_data_transmission_handshake_t, height) }, \
         { "type", NULL, MAVLINK_TYPE_UINT8_T, 0, 8, offsetof(mavlink_data_transmission_handshake_t, type) }, \
         { "packets", NULL, MAVLINK_TYPE_UINT8_T, 0, 9, offsetof(mavlink_data_transmission_handshake_t, packets) }, \
         { "payload", NULL, MAVLINK_TYPE_UINT8_T, 0, 10, offsetof(mavlink_data_transmission_handshake_t, payload) }, \
         { "jpg_quality", NULL, MAVLINK_TYPE_UINT8_T, 0, 11, offsetof(mavlink_data_transmission_handshake_t, jpg_quality) }, \
lm's avatar
lm committed
31 32 33 34
         } \
}


James Goppert's avatar
James Goppert committed
35 36 37 38 39 40 41 42
/**
 * @brief Pack a data_transmission_handshake 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 type type of requested/acknowledged data (as defined in ENUM DATA_TYPES in mavlink/include/mavlink_types.h)
 * @param size total data size in bytes (set on ACK only)
43 44
 * @param width Width of a matrix or image
 * @param height Height of a matrix or image
James Goppert's avatar
James Goppert committed
45 46 47 48 49
 * @param packets number of packets beeing sent (set on ACK only)
 * @param payload payload size per packet (normally 253 byte, see DATA field size in message ENCAPSULATED_DATA) (set on ACK only)
 * @param jpg_quality JPEG quality out of [1,100]
 * @return length of the message in bytes (excluding serial stream start sign)
 */
lm's avatar
lm committed
50
static inline uint16_t mavlink_msg_data_transmission_handshake_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
51
						       uint8_t type, uint32_t size, uint16_t width, uint16_t height, uint8_t packets, uint8_t payload, uint8_t jpg_quality)
James Goppert's avatar
James Goppert committed
52
{
LM's avatar
LM committed
53
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
54
	char buf[12];
LM's avatar
LM committed
55
	_mav_put_uint32_t(buf, 0, size);
56 57 58 59 60 61
	_mav_put_uint16_t(buf, 4, width);
	_mav_put_uint16_t(buf, 6, height);
	_mav_put_uint8_t(buf, 8, type);
	_mav_put_uint8_t(buf, 9, packets);
	_mav_put_uint8_t(buf, 10, payload);
	_mav_put_uint8_t(buf, 11, jpg_quality);
LM's avatar
LM committed
62

63
        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
LM's avatar
LM committed
64 65 66
#else
	mavlink_data_transmission_handshake_t packet;
	packet.size = size;
67 68
	packet.width = width;
	packet.height = height;
LM's avatar
LM committed
69 70 71 72 73
	packet.type = type;
	packet.packets = packets;
	packet.payload = payload;
	packet.jpg_quality = jpg_quality;

74
        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
LM's avatar
LM committed
75
#endif
James Goppert's avatar
James Goppert committed
76

LM's avatar
LM committed
77
	msg->msgid = MAVLINK_MSG_ID_DATA_TRANSMISSION_HANDSHAKE;
78
	return mavlink_finalize_message(msg, system_id, component_id, 12, 23);
James Goppert's avatar
James Goppert committed
79 80 81
}

/**
lm's avatar
lm committed
82
 * @brief Pack a data_transmission_handshake message on a channel
James Goppert's avatar
James Goppert committed
83 84 85 86 87 88
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param chan The MAVLink channel this message was sent over
 * @param msg The MAVLink message to compress the data into
 * @param type type of requested/acknowledged data (as defined in ENUM DATA_TYPES in mavlink/include/mavlink_types.h)
 * @param size total data size in bytes (set on ACK only)
89 90
 * @param width Width of a matrix or image
 * @param height Height of a matrix or image
James Goppert's avatar
James Goppert committed
91 92 93 94 95
 * @param packets number of packets beeing sent (set on ACK only)
 * @param payload payload size per packet (normally 253 byte, see DATA field size in message ENCAPSULATED_DATA) (set on ACK only)
 * @param jpg_quality JPEG quality out of [1,100]
 * @return length of the message in bytes (excluding serial stream start sign)
 */
lm's avatar
lm committed
96 97
static inline uint16_t mavlink_msg_data_transmission_handshake_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
							   mavlink_message_t* msg,
98
						           uint8_t type,uint32_t size,uint16_t width,uint16_t height,uint8_t packets,uint8_t payload,uint8_t jpg_quality)
James Goppert's avatar
James Goppert committed
99
{
LM's avatar
LM committed
100
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
101
	char buf[12];
LM's avatar
LM committed
102
	_mav_put_uint32_t(buf, 0, size);
103 104 105 106 107 108
	_mav_put_uint16_t(buf, 4, width);
	_mav_put_uint16_t(buf, 6, height);
	_mav_put_uint8_t(buf, 8, type);
	_mav_put_uint8_t(buf, 9, packets);
	_mav_put_uint8_t(buf, 10, payload);
	_mav_put_uint8_t(buf, 11, jpg_quality);
LM's avatar
LM committed
109

110
        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
LM's avatar
LM committed
111 112 113
#else
	mavlink_data_transmission_handshake_t packet;
	packet.size = size;
114 115
	packet.width = width;
	packet.height = height;
LM's avatar
LM committed
116 117 118 119 120
	packet.type = type;
	packet.packets = packets;
	packet.payload = payload;
	packet.jpg_quality = jpg_quality;

121
        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
LM's avatar
LM committed
122
#endif
James Goppert's avatar
James Goppert committed
123

LM's avatar
LM committed
124
	msg->msgid = MAVLINK_MSG_ID_DATA_TRANSMISSION_HANDSHAKE;
125
	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 12, 23);
James Goppert's avatar
James Goppert committed
126 127 128 129 130 131 132 133 134 135 136 137
}

/**
 * @brief Encode a data_transmission_handshake struct into a message
 *
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param msg The MAVLink message to compress the data into
 * @param data_transmission_handshake C-struct to read the message contents from
 */
static inline uint16_t mavlink_msg_data_transmission_handshake_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_data_transmission_handshake_t* data_transmission_handshake)
{
138
	return mavlink_msg_data_transmission_handshake_pack(system_id, component_id, msg, data_transmission_handshake->type, data_transmission_handshake->size, data_transmission_handshake->width, data_transmission_handshake->height, data_transmission_handshake->packets, data_transmission_handshake->payload, data_transmission_handshake->jpg_quality);
James Goppert's avatar
James Goppert committed
139 140 141 142 143 144 145 146
}

/**
 * @brief Send a data_transmission_handshake message
 * @param chan MAVLink channel to send the message
 *
 * @param type type of requested/acknowledged data (as defined in ENUM DATA_TYPES in mavlink/include/mavlink_types.h)
 * @param size total data size in bytes (set on ACK only)
147 148
 * @param width Width of a matrix or image
 * @param height Height of a matrix or image
James Goppert's avatar
James Goppert committed
149 150 151 152
 * @param packets number of packets beeing sent (set on ACK only)
 * @param payload payload size per packet (normally 253 byte, see DATA field size in message ENCAPSULATED_DATA) (set on ACK only)
 * @param jpg_quality JPEG quality out of [1,100]
 */
lm's avatar
lm committed
153 154
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS

155
static inline void mavlink_msg_data_transmission_handshake_send(mavlink_channel_t chan, uint8_t type, uint32_t size, uint16_t width, uint16_t height, uint8_t packets, uint8_t payload, uint8_t jpg_quality)
lm's avatar
lm committed
156
{
LM's avatar
LM committed
157
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
158
	char buf[12];
LM's avatar
LM committed
159
	_mav_put_uint32_t(buf, 0, size);
160 161 162 163 164 165
	_mav_put_uint16_t(buf, 4, width);
	_mav_put_uint16_t(buf, 6, height);
	_mav_put_uint8_t(buf, 8, type);
	_mav_put_uint8_t(buf, 9, packets);
	_mav_put_uint8_t(buf, 10, payload);
	_mav_put_uint8_t(buf, 11, jpg_quality);
LM's avatar
LM committed
166

167
	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DATA_TRANSMISSION_HANDSHAKE, buf, 12, 23);
LM's avatar
LM committed
168 169 170
#else
	mavlink_data_transmission_handshake_t packet;
	packet.size = size;
171 172
	packet.width = width;
	packet.height = height;
LM's avatar
LM committed
173 174 175 176 177
	packet.type = type;
	packet.packets = packets;
	packet.payload = payload;
	packet.jpg_quality = jpg_quality;

178
	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DATA_TRANSMISSION_HANDSHAKE, (const char *)&packet, 12, 23);
LM's avatar
LM committed
179
#endif
James Goppert's avatar
James Goppert committed
180 181 182
}

#endif
lm's avatar
lm committed
183

James Goppert's avatar
James Goppert committed
184 185
// MESSAGE DATA_TRANSMISSION_HANDSHAKE UNPACKING

lm's avatar
lm committed
186

James Goppert's avatar
James Goppert committed
187 188 189 190 191 192 193
/**
 * @brief Get field type from data_transmission_handshake message
 *
 * @return type of requested/acknowledged data (as defined in ENUM DATA_TYPES in mavlink/include/mavlink_types.h)
 */
static inline uint8_t mavlink_msg_data_transmission_handshake_get_type(const mavlink_message_t* msg)
{
194
	return _MAV_RETURN_uint8_t(msg,  8);
James Goppert's avatar
James Goppert committed
195 196 197 198 199 200 201 202 203
}

/**
 * @brief Get field size from data_transmission_handshake message
 *
 * @return total data size in bytes (set on ACK only)
 */
static inline uint32_t mavlink_msg_data_transmission_handshake_get_size(const mavlink_message_t* msg)
{
LM's avatar
LM committed
204
	return _MAV_RETURN_uint32_t(msg,  0);
James Goppert's avatar
James Goppert committed
205 206
}

207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226
/**
 * @brief Get field width from data_transmission_handshake message
 *
 * @return Width of a matrix or image
 */
static inline uint16_t mavlink_msg_data_transmission_handshake_get_width(const mavlink_message_t* msg)
{
	return _MAV_RETURN_uint16_t(msg,  4);
}

/**
 * @brief Get field height from data_transmission_handshake message
 *
 * @return Height of a matrix or image
 */
static inline uint16_t mavlink_msg_data_transmission_handshake_get_height(const mavlink_message_t* msg)
{
	return _MAV_RETURN_uint16_t(msg,  6);
}

James Goppert's avatar
James Goppert committed
227 228 229 230 231 232 233
/**
 * @brief Get field packets from data_transmission_handshake message
 *
 * @return number of packets beeing sent (set on ACK only)
 */
static inline uint8_t mavlink_msg_data_transmission_handshake_get_packets(const mavlink_message_t* msg)
{
234
	return _MAV_RETURN_uint8_t(msg,  9);
James Goppert's avatar
James Goppert committed
235 236 237 238 239 240 241 242 243
}

/**
 * @brief Get field payload from data_transmission_handshake message
 *
 * @return payload size per packet (normally 253 byte, see DATA field size in message ENCAPSULATED_DATA) (set on ACK only)
 */
static inline uint8_t mavlink_msg_data_transmission_handshake_get_payload(const mavlink_message_t* msg)
{
244
	return _MAV_RETURN_uint8_t(msg,  10);
James Goppert's avatar
James Goppert committed
245 246 247 248 249 250 251 252 253
}

/**
 * @brief Get field jpg_quality from data_transmission_handshake message
 *
 * @return JPEG quality out of [1,100]
 */
static inline uint8_t mavlink_msg_data_transmission_handshake_get_jpg_quality(const mavlink_message_t* msg)
{
254
	return _MAV_RETURN_uint8_t(msg,  11);
James Goppert's avatar
James Goppert committed
255 256 257 258 259 260 261 262 263 264
}

/**
 * @brief Decode a data_transmission_handshake message into a struct
 *
 * @param msg The message to decode
 * @param data_transmission_handshake C-struct to decode the message contents into
 */
static inline void mavlink_msg_data_transmission_handshake_decode(const mavlink_message_t* msg, mavlink_data_transmission_handshake_t* data_transmission_handshake)
{
lm's avatar
lm committed
265 266
#if MAVLINK_NEED_BYTE_SWAP
	data_transmission_handshake->size = mavlink_msg_data_transmission_handshake_get_size(msg);
267 268
	data_transmission_handshake->width = mavlink_msg_data_transmission_handshake_get_width(msg);
	data_transmission_handshake->height = mavlink_msg_data_transmission_handshake_get_height(msg);
lm's avatar
lm committed
269 270 271 272 273
	data_transmission_handshake->type = mavlink_msg_data_transmission_handshake_get_type(msg);
	data_transmission_handshake->packets = mavlink_msg_data_transmission_handshake_get_packets(msg);
	data_transmission_handshake->payload = mavlink_msg_data_transmission_handshake_get_payload(msg);
	data_transmission_handshake->jpg_quality = mavlink_msg_data_transmission_handshake_get_jpg_quality(msg);
#else
274
	memcpy(data_transmission_handshake, _MAV_PAYLOAD(msg), 12);
lm's avatar
lm committed
275
#endif
James Goppert's avatar
James Goppert committed
276
}