mavlink_msg_command_long.h 13.8 KB
Newer Older
1
// MESSAGE COMMAND_LONG PACKING
James Goppert's avatar
James Goppert committed
2

3
#define MAVLINK_MSG_ID_COMMAND_LONG 76
James Goppert's avatar
James Goppert committed
4

lm's avatar
lm committed
5
typedef struct __mavlink_command_long_t
James Goppert's avatar
James Goppert committed
6
{
lm's avatar
lm committed
7 8 9 10 11 12 13 14 15 16 17
 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.
 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 command; ///< Command ID, as defined by MAV_CMD enum.
 uint8_t confirmation; ///< 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)
18
} mavlink_command_long_t;
James Goppert's avatar
James Goppert committed
19

lm's avatar
lm committed
20 21 22 23 24 25 26 27
#define MAVLINK_MSG_ID_COMMAND_LONG_LEN 32
#define MAVLINK_MSG_ID_76_LEN 32



#define MAVLINK_MESSAGE_INFO_COMMAND_LONG { \
	"COMMAND_LONG", \
	11, \
lm's avatar
lm committed
28 29 30 31 32 33 34 35 36 37 38
	{  { "param1", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_command_long_t, param1) }, \
         { "param2", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_command_long_t, param2) }, \
         { "param3", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_command_long_t, param3) }, \
         { "param4", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_command_long_t, param4) }, \
         { "param5", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_command_long_t, param5) }, \
         { "param6", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_command_long_t, param6) }, \
         { "param7", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_command_long_t, param7) }, \
         { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 28, offsetof(mavlink_command_long_t, target_system) }, \
         { "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 29, offsetof(mavlink_command_long_t, target_component) }, \
         { "command", NULL, MAVLINK_TYPE_UINT8_T, 0, 30, offsetof(mavlink_command_long_t, command) }, \
         { "confirmation", NULL, MAVLINK_TYPE_UINT8_T, 0, 31, offsetof(mavlink_command_long_t, confirmation) }, \
lm's avatar
lm committed
39 40 41 42
         } \
}


James Goppert's avatar
James Goppert committed
43
/**
44
 * @brief Pack a command_long message
James Goppert's avatar
James Goppert committed
45 46 47 48 49 50 51 52 53 54 55 56
 * @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 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.
57 58 59
 * @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.
James Goppert's avatar
James Goppert committed
60 61
 * @return length of the message in bytes (excluding serial stream start sign)
 */
lm's avatar
lm committed
62 63
static inline uint16_t mavlink_msg_command_long_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
						       uint8_t target_system, uint8_t target_component, uint8_t command, uint8_t confirmation, float param1, float param2, float param3, float param4, float param5, float param6, float param7)
James Goppert's avatar
James Goppert committed
64
{
LM's avatar
LM committed
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
	char buf[32];
	_mav_put_float(buf, 0, param1);
	_mav_put_float(buf, 4, param2);
	_mav_put_float(buf, 8, param3);
	_mav_put_float(buf, 12, param4);
	_mav_put_float(buf, 16, param5);
	_mav_put_float(buf, 20, param6);
	_mav_put_float(buf, 24, param7);
	_mav_put_uint8_t(buf, 28, target_system);
	_mav_put_uint8_t(buf, 29, target_component);
	_mav_put_uint8_t(buf, 30, command);
	_mav_put_uint8_t(buf, 31, confirmation);

        memcpy(_MAV_PAYLOAD(msg), buf, 32);
#else
	mavlink_command_long_t packet;
	packet.param1 = param1;
	packet.param2 = param2;
	packet.param3 = param3;
	packet.param4 = param4;
	packet.param5 = param5;
	packet.param6 = param6;
	packet.param7 = param7;
	packet.target_system = target_system;
	packet.target_component = target_component;
	packet.command = command;
	packet.confirmation = confirmation;

        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
#endif
lm's avatar
lm committed
96

LM's avatar
LM committed
97
	msg->msgid = MAVLINK_MSG_ID_COMMAND_LONG;
lm's avatar
lm committed
98
	return mavlink_finalize_message(msg, system_id, component_id, 32, 168);
James Goppert's avatar
James Goppert committed
99 100 101
}

/**
lm's avatar
lm committed
102
 * @brief Pack a command_long message on a channel
James Goppert's avatar
James Goppert committed
103 104 105 106 107 108 109 110 111 112 113 114
 * @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 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.
115 116 117
 * @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.
James Goppert's avatar
James Goppert committed
118 119
 * @return length of the message in bytes (excluding serial stream start sign)
 */
lm's avatar
lm committed
120 121 122
static inline uint16_t mavlink_msg_command_long_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
							   mavlink_message_t* msg,
						           uint8_t target_system,uint8_t target_component,uint8_t command,uint8_t confirmation,float param1,float param2,float param3,float param4,float param5,float param6,float param7)
James Goppert's avatar
James Goppert committed
123
{
LM's avatar
LM committed
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
	char buf[32];
	_mav_put_float(buf, 0, param1);
	_mav_put_float(buf, 4, param2);
	_mav_put_float(buf, 8, param3);
	_mav_put_float(buf, 12, param4);
	_mav_put_float(buf, 16, param5);
	_mav_put_float(buf, 20, param6);
	_mav_put_float(buf, 24, param7);
	_mav_put_uint8_t(buf, 28, target_system);
	_mav_put_uint8_t(buf, 29, target_component);
	_mav_put_uint8_t(buf, 30, command);
	_mav_put_uint8_t(buf, 31, confirmation);

        memcpy(_MAV_PAYLOAD(msg), buf, 32);
#else
	mavlink_command_long_t packet;
	packet.param1 = param1;
	packet.param2 = param2;
	packet.param3 = param3;
	packet.param4 = param4;
	packet.param5 = param5;
	packet.param6 = param6;
	packet.param7 = param7;
	packet.target_system = target_system;
	packet.target_component = target_component;
	packet.command = command;
	packet.confirmation = confirmation;

        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
#endif
lm's avatar
lm committed
155

LM's avatar
LM committed
156
	msg->msgid = MAVLINK_MSG_ID_COMMAND_LONG;
lm's avatar
lm committed
157
	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 32, 168);
James Goppert's avatar
James Goppert committed
158 159 160
}

/**
161
 * @brief Encode a command_long struct into a message
James Goppert's avatar
James Goppert committed
162 163 164 165
 *
 * @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
166
 * @param command_long C-struct to read the message contents from
James Goppert's avatar
James Goppert committed
167
 */
168
static inline uint16_t mavlink_msg_command_long_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_command_long_t* command_long)
James Goppert's avatar
James Goppert committed
169
{
170
	return mavlink_msg_command_long_pack(system_id, component_id, msg, command_long->target_system, command_long->target_component, command_long->command, command_long->confirmation, command_long->param1, command_long->param2, command_long->param3, command_long->param4, command_long->param5, command_long->param6, command_long->param7);
James Goppert's avatar
James Goppert committed
171 172 173
}

/**
174
 * @brief Send a command_long message
James Goppert's avatar
James Goppert committed
175 176 177 178 179 180 181 182 183 184
 * @param chan MAVLink channel to send the message
 *
 * @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.
185 186 187
 * @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.
James Goppert's avatar
James Goppert committed
188
 */
lm's avatar
lm committed
189 190
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS

191
static inline void mavlink_msg_command_long_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component, uint8_t command, uint8_t confirmation, float param1, float param2, float param3, float param4, float param5, float param6, float param7)
lm's avatar
lm committed
192
{
LM's avatar
LM committed
193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
	char buf[32];
	_mav_put_float(buf, 0, param1);
	_mav_put_float(buf, 4, param2);
	_mav_put_float(buf, 8, param3);
	_mav_put_float(buf, 12, param4);
	_mav_put_float(buf, 16, param5);
	_mav_put_float(buf, 20, param6);
	_mav_put_float(buf, 24, param7);
	_mav_put_uint8_t(buf, 28, target_system);
	_mav_put_uint8_t(buf, 29, target_component);
	_mav_put_uint8_t(buf, 30, command);
	_mav_put_uint8_t(buf, 31, confirmation);

	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_LONG, buf, 32, 168);
#else
	mavlink_command_long_t packet;
	packet.param1 = param1;
	packet.param2 = param2;
	packet.param3 = param3;
	packet.param4 = param4;
	packet.param5 = param5;
	packet.param6 = param6;
	packet.param7 = param7;
	packet.target_system = target_system;
	packet.target_component = target_component;
	packet.command = command;
	packet.confirmation = confirmation;

	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_LONG, (const char *)&packet, 32, 168);
#endif
James Goppert's avatar
James Goppert committed
224 225 226
}

#endif
lm's avatar
lm committed
227

228
// MESSAGE COMMAND_LONG UNPACKING
James Goppert's avatar
James Goppert committed
229

lm's avatar
lm committed
230

James Goppert's avatar
James Goppert committed
231
/**
232
 * @brief Get field target_system from command_long message
James Goppert's avatar
James Goppert committed
233 234 235
 *
 * @return System which should execute the command
 */
236
static inline uint8_t mavlink_msg_command_long_get_target_system(const mavlink_message_t* msg)
James Goppert's avatar
James Goppert committed
237
{
LM's avatar
LM committed
238
	return _MAV_RETURN_uint8_t(msg,  28);
James Goppert's avatar
James Goppert committed
239 240 241
}

/**
242
 * @brief Get field target_component from command_long message
James Goppert's avatar
James Goppert committed
243 244 245
 *
 * @return Component which should execute the command, 0 for all components
 */
246
static inline uint8_t mavlink_msg_command_long_get_target_component(const mavlink_message_t* msg)
James Goppert's avatar
James Goppert committed
247
{
LM's avatar
LM committed
248
	return _MAV_RETURN_uint8_t(msg,  29);
James Goppert's avatar
James Goppert committed
249 250 251
}

/**
252
 * @brief Get field command from command_long message
James Goppert's avatar
James Goppert committed
253 254 255
 *
 * @return Command ID, as defined by MAV_CMD enum.
 */
256
static inline uint8_t mavlink_msg_command_long_get_command(const mavlink_message_t* msg)
James Goppert's avatar
James Goppert committed
257
{
LM's avatar
LM committed
258
	return _MAV_RETURN_uint8_t(msg,  30);
James Goppert's avatar
James Goppert committed
259 260 261
}

/**
262
 * @brief Get field confirmation from command_long message
James Goppert's avatar
James Goppert committed
263 264 265
 *
 * @return 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)
 */
266
static inline uint8_t mavlink_msg_command_long_get_confirmation(const mavlink_message_t* msg)
James Goppert's avatar
James Goppert committed
267
{
LM's avatar
LM committed
268
	return _MAV_RETURN_uint8_t(msg,  31);
James Goppert's avatar
James Goppert committed
269 270 271
}

/**
272
 * @brief Get field param1 from command_long message
James Goppert's avatar
James Goppert committed
273 274 275
 *
 * @return Parameter 1, as defined by MAV_CMD enum.
 */
276
static inline float mavlink_msg_command_long_get_param1(const mavlink_message_t* msg)
James Goppert's avatar
James Goppert committed
277
{
LM's avatar
LM committed
278
	return _MAV_RETURN_float(msg,  0);
James Goppert's avatar
James Goppert committed
279 280 281
}

/**
282
 * @brief Get field param2 from command_long message
James Goppert's avatar
James Goppert committed
283 284 285
 *
 * @return Parameter 2, as defined by MAV_CMD enum.
 */
286
static inline float mavlink_msg_command_long_get_param2(const mavlink_message_t* msg)
James Goppert's avatar
James Goppert committed
287
{
LM's avatar
LM committed
288
	return _MAV_RETURN_float(msg,  4);
James Goppert's avatar
James Goppert committed
289 290 291
}

/**
292
 * @brief Get field param3 from command_long message
James Goppert's avatar
James Goppert committed
293 294 295
 *
 * @return Parameter 3, as defined by MAV_CMD enum.
 */
296
static inline float mavlink_msg_command_long_get_param3(const mavlink_message_t* msg)
James Goppert's avatar
James Goppert committed
297
{
LM's avatar
LM committed
298
	return _MAV_RETURN_float(msg,  8);
James Goppert's avatar
James Goppert committed
299 300 301
}

/**
302
 * @brief Get field param4 from command_long message
James Goppert's avatar
James Goppert committed
303 304 305
 *
 * @return Parameter 4, as defined by MAV_CMD enum.
 */
306
static inline float mavlink_msg_command_long_get_param4(const mavlink_message_t* msg)
James Goppert's avatar
James Goppert committed
307
{
LM's avatar
LM committed
308
	return _MAV_RETURN_float(msg,  12);
James Goppert's avatar
James Goppert committed
309 310 311
}

/**
312 313 314 315 316 317
 * @brief Get field param5 from command_long message
 *
 * @return Parameter 5, as defined by MAV_CMD enum.
 */
static inline float mavlink_msg_command_long_get_param5(const mavlink_message_t* msg)
{
LM's avatar
LM committed
318
	return _MAV_RETURN_float(msg,  16);
319 320 321 322 323 324 325 326 327
}

/**
 * @brief Get field param6 from command_long message
 *
 * @return Parameter 6, as defined by MAV_CMD enum.
 */
static inline float mavlink_msg_command_long_get_param6(const mavlink_message_t* msg)
{
LM's avatar
LM committed
328
	return _MAV_RETURN_float(msg,  20);
329 330 331 332 333 334 335 336 337
}

/**
 * @brief Get field param7 from command_long message
 *
 * @return Parameter 7, as defined by MAV_CMD enum.
 */
static inline float mavlink_msg_command_long_get_param7(const mavlink_message_t* msg)
{
LM's avatar
LM committed
338
	return _MAV_RETURN_float(msg,  24);
339 340 341 342
}

/**
 * @brief Decode a command_long message into a struct
James Goppert's avatar
James Goppert committed
343 344
 *
 * @param msg The message to decode
345
 * @param command_long C-struct to decode the message contents into
James Goppert's avatar
James Goppert committed
346
 */
347
static inline void mavlink_msg_command_long_decode(const mavlink_message_t* msg, mavlink_command_long_t* command_long)
James Goppert's avatar
James Goppert committed
348
{
lm's avatar
lm committed
349 350 351 352 353 354 355 356 357 358 359 360 361
#if MAVLINK_NEED_BYTE_SWAP
	command_long->param1 = mavlink_msg_command_long_get_param1(msg);
	command_long->param2 = mavlink_msg_command_long_get_param2(msg);
	command_long->param3 = mavlink_msg_command_long_get_param3(msg);
	command_long->param4 = mavlink_msg_command_long_get_param4(msg);
	command_long->param5 = mavlink_msg_command_long_get_param5(msg);
	command_long->param6 = mavlink_msg_command_long_get_param6(msg);
	command_long->param7 = mavlink_msg_command_long_get_param7(msg);
	command_long->target_system = mavlink_msg_command_long_get_target_system(msg);
	command_long->target_component = mavlink_msg_command_long_get_target_component(msg);
	command_long->command = mavlink_msg_command_long_get_command(msg);
	command_long->confirmation = mavlink_msg_command_long_get_confirmation(msg);
#else
LM's avatar
LM committed
362
	memcpy(command_long, _MAV_PAYLOAD(msg), 32);
lm's avatar
lm committed
363
#endif
James Goppert's avatar
James Goppert committed
364
}