mavlink_msg_mission_item_reached.h 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. #pragma once
  2. // MESSAGE MISSION_ITEM_REACHED PACKING
  3. #define MAVLINK_MSG_ID_MISSION_ITEM_REACHED 46
  4. typedef struct __mavlink_mission_item_reached_t {
  5. uint16_t seq; /*< Sequence*/
  6. } mavlink_mission_item_reached_t;
  7. #define MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN 2
  8. #define MAVLINK_MSG_ID_MISSION_ITEM_REACHED_MIN_LEN 2
  9. #define MAVLINK_MSG_ID_46_LEN 2
  10. #define MAVLINK_MSG_ID_46_MIN_LEN 2
  11. #define MAVLINK_MSG_ID_MISSION_ITEM_REACHED_CRC 11
  12. #define MAVLINK_MSG_ID_46_CRC 11
  13. #if MAVLINK_COMMAND_24BIT
  14. #define MAVLINK_MESSAGE_INFO_MISSION_ITEM_REACHED { \
  15. 46, \
  16. "MISSION_ITEM_REACHED", \
  17. 1, \
  18. { { "seq", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_mission_item_reached_t, seq) }, \
  19. } \
  20. }
  21. #else
  22. #define MAVLINK_MESSAGE_INFO_MISSION_ITEM_REACHED { \
  23. "MISSION_ITEM_REACHED", \
  24. 1, \
  25. { { "seq", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_mission_item_reached_t, seq) }, \
  26. } \
  27. }
  28. #endif
  29. /**
  30. * @brief Pack a mission_item_reached message
  31. * @param system_id ID of this system
  32. * @param component_id ID of this component (e.g. 200 for IMU)
  33. * @param msg The MAVLink message to compress the data into
  34. *
  35. * @param seq Sequence
  36. * @return length of the message in bytes (excluding serial stream start sign)
  37. */
  38. static inline uint16_t mavlink_msg_mission_item_reached_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
  39. uint16_t seq)
  40. {
  41. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  42. char buf[MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN];
  43. _mav_put_uint16_t(buf, 0, seq);
  44. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN);
  45. #else
  46. mavlink_mission_item_reached_t packet;
  47. packet.seq = seq;
  48. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN);
  49. #endif
  50. msg->msgid = MAVLINK_MSG_ID_MISSION_ITEM_REACHED;
  51. return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_MIN_LEN, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_CRC);
  52. }
  53. /**
  54. * @brief Pack a mission_item_reached message on a channel
  55. * @param system_id ID of this system
  56. * @param component_id ID of this component (e.g. 200 for IMU)
  57. * @param chan The MAVLink channel this message will be sent over
  58. * @param msg The MAVLink message to compress the data into
  59. * @param seq Sequence
  60. * @return length of the message in bytes (excluding serial stream start sign)
  61. */
  62. static inline uint16_t mavlink_msg_mission_item_reached_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
  63. mavlink_message_t* msg,
  64. uint16_t seq)
  65. {
  66. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  67. char buf[MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN];
  68. _mav_put_uint16_t(buf, 0, seq);
  69. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN);
  70. #else
  71. mavlink_mission_item_reached_t packet;
  72. packet.seq = seq;
  73. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN);
  74. #endif
  75. msg->msgid = MAVLINK_MSG_ID_MISSION_ITEM_REACHED;
  76. return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_MIN_LEN, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_CRC);
  77. }
  78. /**
  79. * @brief Encode a mission_item_reached struct
  80. *
  81. * @param system_id ID of this system
  82. * @param component_id ID of this component (e.g. 200 for IMU)
  83. * @param msg The MAVLink message to compress the data into
  84. * @param mission_item_reached C-struct to read the message contents from
  85. */
  86. static inline uint16_t mavlink_msg_mission_item_reached_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_mission_item_reached_t* mission_item_reached)
  87. {
  88. return mavlink_msg_mission_item_reached_pack(system_id, component_id, msg, mission_item_reached->seq);
  89. }
  90. /**
  91. * @brief Encode a mission_item_reached struct on a channel
  92. *
  93. * @param system_id ID of this system
  94. * @param component_id ID of this component (e.g. 200 for IMU)
  95. * @param chan The MAVLink channel this message will be sent over
  96. * @param msg The MAVLink message to compress the data into
  97. * @param mission_item_reached C-struct to read the message contents from
  98. */
  99. static inline uint16_t mavlink_msg_mission_item_reached_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_mission_item_reached_t* mission_item_reached)
  100. {
  101. return mavlink_msg_mission_item_reached_pack_chan(system_id, component_id, chan, msg, mission_item_reached->seq);
  102. }
  103. /**
  104. * @brief Send a mission_item_reached message
  105. * @param chan MAVLink channel to send the message
  106. *
  107. * @param seq Sequence
  108. */
  109. #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
  110. static inline void mavlink_msg_mission_item_reached_send(mavlink_channel_t chan, uint16_t seq)
  111. {
  112. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  113. char buf[MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN];
  114. _mav_put_uint16_t(buf, 0, seq);
  115. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MISSION_ITEM_REACHED, buf, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_MIN_LEN, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_CRC);
  116. #else
  117. mavlink_mission_item_reached_t packet;
  118. packet.seq = seq;
  119. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MISSION_ITEM_REACHED, (const char *)&packet, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_MIN_LEN, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_CRC);
  120. #endif
  121. }
  122. /**
  123. * @brief Send a mission_item_reached message
  124. * @param chan MAVLink channel to send the message
  125. * @param struct The MAVLink struct to serialize
  126. */
  127. static inline void mavlink_msg_mission_item_reached_send_struct(mavlink_channel_t chan, const mavlink_mission_item_reached_t* mission_item_reached)
  128. {
  129. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  130. mavlink_msg_mission_item_reached_send(chan, mission_item_reached->seq);
  131. #else
  132. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MISSION_ITEM_REACHED, (const char *)mission_item_reached, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_MIN_LEN, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_CRC);
  133. #endif
  134. }
  135. #if MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN <= MAVLINK_MAX_PAYLOAD_LEN
  136. /*
  137. This variant of _send() can be used to save stack space by re-using
  138. memory from the receive buffer. The caller provides a
  139. mavlink_message_t which is the size of a full mavlink message. This
  140. is usually the receive buffer for the channel, and allows a reply to an
  141. incoming message with minimum stack space usage.
  142. */
  143. static inline void mavlink_msg_mission_item_reached_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint16_t seq)
  144. {
  145. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  146. char *buf = (char *)msgbuf;
  147. _mav_put_uint16_t(buf, 0, seq);
  148. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MISSION_ITEM_REACHED, buf, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_MIN_LEN, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_CRC);
  149. #else
  150. mavlink_mission_item_reached_t *packet = (mavlink_mission_item_reached_t *)msgbuf;
  151. packet->seq = seq;
  152. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_MISSION_ITEM_REACHED, (const char *)packet, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_MIN_LEN, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_CRC);
  153. #endif
  154. }
  155. #endif
  156. #endif
  157. // MESSAGE MISSION_ITEM_REACHED UNPACKING
  158. /**
  159. * @brief Get field seq from mission_item_reached message
  160. *
  161. * @return Sequence
  162. */
  163. static inline uint16_t mavlink_msg_mission_item_reached_get_seq(const mavlink_message_t* msg)
  164. {
  165. return _MAV_RETURN_uint16_t(msg, 0);
  166. }
  167. /**
  168. * @brief Decode a mission_item_reached message into a struct
  169. *
  170. * @param msg The message to decode
  171. * @param mission_item_reached C-struct to decode the message contents into
  172. */
  173. static inline void mavlink_msg_mission_item_reached_decode(const mavlink_message_t* msg, mavlink_mission_item_reached_t* mission_item_reached)
  174. {
  175. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  176. mission_item_reached->seq = mavlink_msg_mission_item_reached_get_seq(msg);
  177. #else
  178. uint8_t len = msg->len < MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN? msg->len : MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN;
  179. memset(mission_item_reached, 0, MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN);
  180. memcpy(mission_item_reached, _MAV_PAYLOAD(msg), len);
  181. #endif
  182. }