mavlink_msg_camera_trigger.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. #pragma once
  2. // MESSAGE CAMERA_TRIGGER PACKING
  3. #define MAVLINK_MSG_ID_CAMERA_TRIGGER 112
  4. typedef struct __mavlink_camera_trigger_t {
  5. uint64_t time_usec; /*< [us] Timestamp for image frame (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.*/
  6. uint32_t seq; /*< Image frame sequence*/
  7. } mavlink_camera_trigger_t;
  8. #define MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN 12
  9. #define MAVLINK_MSG_ID_CAMERA_TRIGGER_MIN_LEN 12
  10. #define MAVLINK_MSG_ID_112_LEN 12
  11. #define MAVLINK_MSG_ID_112_MIN_LEN 12
  12. #define MAVLINK_MSG_ID_CAMERA_TRIGGER_CRC 174
  13. #define MAVLINK_MSG_ID_112_CRC 174
  14. #if MAVLINK_COMMAND_24BIT
  15. #define MAVLINK_MESSAGE_INFO_CAMERA_TRIGGER { \
  16. 112, \
  17. "CAMERA_TRIGGER", \
  18. 2, \
  19. { { "time_usec", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_camera_trigger_t, time_usec) }, \
  20. { "seq", NULL, MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_camera_trigger_t, seq) }, \
  21. } \
  22. }
  23. #else
  24. #define MAVLINK_MESSAGE_INFO_CAMERA_TRIGGER { \
  25. "CAMERA_TRIGGER", \
  26. 2, \
  27. { { "time_usec", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_camera_trigger_t, time_usec) }, \
  28. { "seq", NULL, MAVLINK_TYPE_UINT32_T, 0, 8, offsetof(mavlink_camera_trigger_t, seq) }, \
  29. } \
  30. }
  31. #endif
  32. /**
  33. * @brief Pack a camera_trigger message
  34. * @param system_id ID of this system
  35. * @param component_id ID of this component (e.g. 200 for IMU)
  36. * @param msg The MAVLink message to compress the data into
  37. *
  38. * @param time_usec [us] Timestamp for image frame (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
  39. * @param seq Image frame sequence
  40. * @return length of the message in bytes (excluding serial stream start sign)
  41. */
  42. static inline uint16_t mavlink_msg_camera_trigger_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
  43. uint64_t time_usec, uint32_t seq)
  44. {
  45. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  46. char buf[MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN];
  47. _mav_put_uint64_t(buf, 0, time_usec);
  48. _mav_put_uint32_t(buf, 8, seq);
  49. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN);
  50. #else
  51. mavlink_camera_trigger_t packet;
  52. packet.time_usec = time_usec;
  53. packet.seq = seq;
  54. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN);
  55. #endif
  56. msg->msgid = MAVLINK_MSG_ID_CAMERA_TRIGGER;
  57. return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_CAMERA_TRIGGER_MIN_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_CRC);
  58. }
  59. /**
  60. * @brief Pack a camera_trigger message
  61. * @param system_id ID of this system
  62. * @param component_id ID of this component (e.g. 200 for IMU)
  63. * @param status MAVLink status structure
  64. * @param msg The MAVLink message to compress the data into
  65. *
  66. * @param time_usec [us] Timestamp for image frame (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
  67. * @param seq Image frame sequence
  68. * @return length of the message in bytes (excluding serial stream start sign)
  69. */
  70. static inline uint16_t mavlink_msg_camera_trigger_pack_status(uint8_t system_id, uint8_t component_id, mavlink_status_t *_status, mavlink_message_t* msg,
  71. uint64_t time_usec, uint32_t seq)
  72. {
  73. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  74. char buf[MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN];
  75. _mav_put_uint64_t(buf, 0, time_usec);
  76. _mav_put_uint32_t(buf, 8, seq);
  77. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN);
  78. #else
  79. mavlink_camera_trigger_t packet;
  80. packet.time_usec = time_usec;
  81. packet.seq = seq;
  82. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN);
  83. #endif
  84. msg->msgid = MAVLINK_MSG_ID_CAMERA_TRIGGER;
  85. #if MAVLINK_CRC_EXTRA
  86. return mavlink_finalize_message_buffer(msg, system_id, component_id, _status, MAVLINK_MSG_ID_CAMERA_TRIGGER_MIN_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_CRC);
  87. #else
  88. return mavlink_finalize_message_buffer(msg, system_id, component_id, _status, MAVLINK_MSG_ID_CAMERA_TRIGGER_MIN_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN);
  89. #endif
  90. }
  91. /**
  92. * @brief Pack a camera_trigger message on a channel
  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 time_usec [us] Timestamp for image frame (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
  98. * @param seq Image frame sequence
  99. * @return length of the message in bytes (excluding serial stream start sign)
  100. */
  101. static inline uint16_t mavlink_msg_camera_trigger_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
  102. mavlink_message_t* msg,
  103. uint64_t time_usec,uint32_t seq)
  104. {
  105. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  106. char buf[MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN];
  107. _mav_put_uint64_t(buf, 0, time_usec);
  108. _mav_put_uint32_t(buf, 8, seq);
  109. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN);
  110. #else
  111. mavlink_camera_trigger_t packet;
  112. packet.time_usec = time_usec;
  113. packet.seq = seq;
  114. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN);
  115. #endif
  116. msg->msgid = MAVLINK_MSG_ID_CAMERA_TRIGGER;
  117. return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_CAMERA_TRIGGER_MIN_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_CRC);
  118. }
  119. /**
  120. * @brief Encode a camera_trigger struct
  121. *
  122. * @param system_id ID of this system
  123. * @param component_id ID of this component (e.g. 200 for IMU)
  124. * @param msg The MAVLink message to compress the data into
  125. * @param camera_trigger C-struct to read the message contents from
  126. */
  127. static inline uint16_t mavlink_msg_camera_trigger_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_camera_trigger_t* camera_trigger)
  128. {
  129. return mavlink_msg_camera_trigger_pack(system_id, component_id, msg, camera_trigger->time_usec, camera_trigger->seq);
  130. }
  131. /**
  132. * @brief Encode a camera_trigger struct on a channel
  133. *
  134. * @param system_id ID of this system
  135. * @param component_id ID of this component (e.g. 200 for IMU)
  136. * @param chan The MAVLink channel this message will be sent over
  137. * @param msg The MAVLink message to compress the data into
  138. * @param camera_trigger C-struct to read the message contents from
  139. */
  140. static inline uint16_t mavlink_msg_camera_trigger_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_camera_trigger_t* camera_trigger)
  141. {
  142. return mavlink_msg_camera_trigger_pack_chan(system_id, component_id, chan, msg, camera_trigger->time_usec, camera_trigger->seq);
  143. }
  144. /**
  145. * @brief Encode a camera_trigger struct with provided status structure
  146. *
  147. * @param system_id ID of this system
  148. * @param component_id ID of this component (e.g. 200 for IMU)
  149. * @param status MAVLink status structure
  150. * @param msg The MAVLink message to compress the data into
  151. * @param camera_trigger C-struct to read the message contents from
  152. */
  153. static inline uint16_t mavlink_msg_camera_trigger_encode_status(uint8_t system_id, uint8_t component_id, mavlink_status_t* _status, mavlink_message_t* msg, const mavlink_camera_trigger_t* camera_trigger)
  154. {
  155. return mavlink_msg_camera_trigger_pack_status(system_id, component_id, _status, msg, camera_trigger->time_usec, camera_trigger->seq);
  156. }
  157. /**
  158. * @brief Send a camera_trigger message
  159. * @param chan MAVLink channel to send the message
  160. *
  161. * @param time_usec [us] Timestamp for image frame (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
  162. * @param seq Image frame sequence
  163. */
  164. #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
  165. static inline void mavlink_msg_camera_trigger_send(mavlink_channel_t chan, uint64_t time_usec, uint32_t seq)
  166. {
  167. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  168. char buf[MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN];
  169. _mav_put_uint64_t(buf, 0, time_usec);
  170. _mav_put_uint32_t(buf, 8, seq);
  171. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CAMERA_TRIGGER, buf, MAVLINK_MSG_ID_CAMERA_TRIGGER_MIN_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_CRC);
  172. #else
  173. mavlink_camera_trigger_t packet;
  174. packet.time_usec = time_usec;
  175. packet.seq = seq;
  176. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CAMERA_TRIGGER, (const char *)&packet, MAVLINK_MSG_ID_CAMERA_TRIGGER_MIN_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_CRC);
  177. #endif
  178. }
  179. /**
  180. * @brief Send a camera_trigger message
  181. * @param chan MAVLink channel to send the message
  182. * @param struct The MAVLink struct to serialize
  183. */
  184. static inline void mavlink_msg_camera_trigger_send_struct(mavlink_channel_t chan, const mavlink_camera_trigger_t* camera_trigger)
  185. {
  186. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  187. mavlink_msg_camera_trigger_send(chan, camera_trigger->time_usec, camera_trigger->seq);
  188. #else
  189. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CAMERA_TRIGGER, (const char *)camera_trigger, MAVLINK_MSG_ID_CAMERA_TRIGGER_MIN_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_CRC);
  190. #endif
  191. }
  192. #if MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN <= MAVLINK_MAX_PAYLOAD_LEN
  193. /*
  194. This variant of _send() can be used to save stack space by re-using
  195. memory from the receive buffer. The caller provides a
  196. mavlink_message_t which is the size of a full mavlink message. This
  197. is usually the receive buffer for the channel, and allows a reply to an
  198. incoming message with minimum stack space usage.
  199. */
  200. static inline void mavlink_msg_camera_trigger_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t time_usec, uint32_t seq)
  201. {
  202. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  203. char *buf = (char *)msgbuf;
  204. _mav_put_uint64_t(buf, 0, time_usec);
  205. _mav_put_uint32_t(buf, 8, seq);
  206. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CAMERA_TRIGGER, buf, MAVLINK_MSG_ID_CAMERA_TRIGGER_MIN_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_CRC);
  207. #else
  208. mavlink_camera_trigger_t *packet = (mavlink_camera_trigger_t *)msgbuf;
  209. packet->time_usec = time_usec;
  210. packet->seq = seq;
  211. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CAMERA_TRIGGER, (const char *)packet, MAVLINK_MSG_ID_CAMERA_TRIGGER_MIN_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN, MAVLINK_MSG_ID_CAMERA_TRIGGER_CRC);
  212. #endif
  213. }
  214. #endif
  215. #endif
  216. // MESSAGE CAMERA_TRIGGER UNPACKING
  217. /**
  218. * @brief Get field time_usec from camera_trigger message
  219. *
  220. * @return [us] Timestamp for image frame (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
  221. */
  222. static inline uint64_t mavlink_msg_camera_trigger_get_time_usec(const mavlink_message_t* msg)
  223. {
  224. return _MAV_RETURN_uint64_t(msg, 0);
  225. }
  226. /**
  227. * @brief Get field seq from camera_trigger message
  228. *
  229. * @return Image frame sequence
  230. */
  231. static inline uint32_t mavlink_msg_camera_trigger_get_seq(const mavlink_message_t* msg)
  232. {
  233. return _MAV_RETURN_uint32_t(msg, 8);
  234. }
  235. /**
  236. * @brief Decode a camera_trigger message into a struct
  237. *
  238. * @param msg The message to decode
  239. * @param camera_trigger C-struct to decode the message contents into
  240. */
  241. static inline void mavlink_msg_camera_trigger_decode(const mavlink_message_t* msg, mavlink_camera_trigger_t* camera_trigger)
  242. {
  243. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  244. camera_trigger->time_usec = mavlink_msg_camera_trigger_get_time_usec(msg);
  245. camera_trigger->seq = mavlink_msg_camera_trigger_get_seq(msg);
  246. #else
  247. uint8_t len = msg->len < MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN? msg->len : MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN;
  248. memset(camera_trigger, 0, MAVLINK_MSG_ID_CAMERA_TRIGGER_LEN);
  249. memcpy(camera_trigger, _MAV_PAYLOAD(msg), len);
  250. #endif
  251. }