mavlink_msg_command_long.h 13.9 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
 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.
14
 uint16_t command; ///< Command ID, as defined by MAV_CMD enum.
lm's avatar
lm committed
15 16 17
 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)
18
} mavlink_command_long_t;
James Goppert's avatar
James Goppert committed
19

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



#define MAVLINK_MESSAGE_INFO_COMMAND_LONG { \
	"COMMAND_LONG", \
	11, \
lm's avatar
lm committed
28 29 30 31 32 33 34
	{  { "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) }, \
35 36 37 38
         { "command", NULL, MAVLINK_TYPE_UINT16_T, 0, 28, offsetof(mavlink_command_long_t, command) }, \
         { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 30, offsetof(mavlink_command_long_t, target_system) }, \
         { "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 31, offsetof(mavlink_command_long_t, target_component) }, \
         { "confirmation", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, 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
static inline uint16_t mavlink_msg_command_long_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
63
						       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)
James Goppert's avatar
James Goppert committed
64
{
LM's avatar
LM committed
65
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
66
	char buf[33];
LM's avatar
LM committed
67 68 69 70 71 72 73
	_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);
74 75 76 77
	_mav_put_uint16_t(buf, 28, command);
	_mav_put_uint8_t(buf, 30, target_system);
	_mav_put_uint8_t(buf, 31, target_component);
	_mav_put_uint8_t(buf, 32, confirmation);
LM's avatar
LM committed
78

79
        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 33);
LM's avatar
LM committed
80 81 82 83 84 85 86 87 88
#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;
89
	packet.command = command;
LM's avatar
LM committed
90 91 92 93
	packet.target_system = target_system;
	packet.target_component = target_component;
	packet.confirmation = confirmation;

94
        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 33);
LM's avatar
LM committed
95
#endif
lm's avatar
lm committed
96

LM's avatar
LM committed
97
	msg->msgid = MAVLINK_MSG_ID_COMMAND_LONG;
98
	return mavlink_finalize_message(msg, system_id, component_id, 33, 152);
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
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,
122
						           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)
James Goppert's avatar
James Goppert committed
123
{
LM's avatar
LM committed
124
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
125
	char buf[33];
LM's avatar
LM committed
126 127 128 129 130 131 132
	_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);
133 134 135 136
	_mav_put_uint16_t(buf, 28, command);
	_mav_put_uint8_t(buf, 30, target_system);
	_mav_put_uint8_t(buf, 31, target_component);
	_mav_put_uint8_t(buf, 32, confirmation);
LM's avatar
LM committed
137

138
        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 33);
LM's avatar
LM committed
139 140 141 142 143 144 145 146 147
#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;
148
	packet.command = command;
LM's avatar
LM committed
149 150 151 152
	packet.target_system = target_system;
	packet.target_component = target_component;
	packet.confirmation = confirmation;

153
        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 33);
LM's avatar
LM committed
154
#endif
lm's avatar
lm committed
155

LM's avatar
LM committed
156
	msg->msgid = MAVLINK_MSG_ID_COMMAND_LONG;
157
	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 33, 152);
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, uint16_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
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
194
	char buf[33];
LM's avatar
LM committed
195 196 197 198 199 200 201
	_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);
202 203 204 205
	_mav_put_uint16_t(buf, 28, command);
	_mav_put_uint8_t(buf, 30, target_system);
	_mav_put_uint8_t(buf, 31, target_component);
	_mav_put_uint8_t(buf, 32, confirmation);
LM's avatar
LM committed
206

207
	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_LONG, buf, 33, 152);
LM's avatar
LM committed
208 209 210 211 212 213 214 215 216
#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;
217
	packet.command = command;
LM's avatar
LM committed
218 219 220 221
	packet.target_system = target_system;
	packet.target_component = target_component;
	packet.confirmation = confirmation;

222
	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND_LONG, (const char *)&packet, 33, 152);
LM's avatar
LM committed
223
#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
{
238
	return _MAV_RETURN_uint8_t(msg,  30);
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
{
248
	return _MAV_RETURN_uint8_t(msg,  31);
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 uint16_t mavlink_msg_command_long_get_command(const mavlink_message_t* msg)
James Goppert's avatar
James Goppert committed
257
{
258
	return _MAV_RETURN_uint16_t(msg,  28);
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
{
268
	return _MAV_RETURN_uint8_t(msg,  32);
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
#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);
357
	command_long->command = mavlink_msg_command_long_get_command(msg);
lm's avatar
lm committed
358 359 360 361
	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->confirmation = mavlink_msg_command_long_get_confirmation(msg);
#else
362
	memcpy(command_long, _MAV_PAYLOAD(msg), 33);
lm's avatar
lm committed
363
#endif
James Goppert's avatar
James Goppert committed
364
}