mavlink_msg_isbd_link_status.h 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  1. #pragma once
  2. // MESSAGE ISBD_LINK_STATUS PACKING
  3. #define MAVLINK_MSG_ID_ISBD_LINK_STATUS 335
  4. typedef struct __mavlink_isbd_link_status_t {
  5. uint64_t timestamp; /*< [us] Timestamp (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. uint64_t last_heartbeat; /*< [us] Timestamp of the last successful sbd session. The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.*/
  7. uint16_t failed_sessions; /*< Number of failed SBD sessions.*/
  8. uint16_t successful_sessions; /*< Number of successful SBD sessions.*/
  9. uint8_t signal_quality; /*< Signal quality equal to the number of bars displayed on the ISU signal strength indicator. Range is 0 to 5, where 0 indicates no signal and 5 indicates maximum signal strength.*/
  10. uint8_t ring_pending; /*< 1: Ring call pending, 0: No call pending.*/
  11. uint8_t tx_session_pending; /*< 1: Transmission session pending, 0: No transmission session pending.*/
  12. uint8_t rx_session_pending; /*< 1: Receiving session pending, 0: No receiving session pending.*/
  13. } mavlink_isbd_link_status_t;
  14. #define MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN 24
  15. #define MAVLINK_MSG_ID_ISBD_LINK_STATUS_MIN_LEN 24
  16. #define MAVLINK_MSG_ID_335_LEN 24
  17. #define MAVLINK_MSG_ID_335_MIN_LEN 24
  18. #define MAVLINK_MSG_ID_ISBD_LINK_STATUS_CRC 225
  19. #define MAVLINK_MSG_ID_335_CRC 225
  20. #if MAVLINK_COMMAND_24BIT
  21. #define MAVLINK_MESSAGE_INFO_ISBD_LINK_STATUS { \
  22. 335, \
  23. "ISBD_LINK_STATUS", \
  24. 8, \
  25. { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_isbd_link_status_t, timestamp) }, \
  26. { "last_heartbeat", NULL, MAVLINK_TYPE_UINT64_T, 0, 8, offsetof(mavlink_isbd_link_status_t, last_heartbeat) }, \
  27. { "failed_sessions", NULL, MAVLINK_TYPE_UINT16_T, 0, 16, offsetof(mavlink_isbd_link_status_t, failed_sessions) }, \
  28. { "successful_sessions", NULL, MAVLINK_TYPE_UINT16_T, 0, 18, offsetof(mavlink_isbd_link_status_t, successful_sessions) }, \
  29. { "signal_quality", NULL, MAVLINK_TYPE_UINT8_T, 0, 20, offsetof(mavlink_isbd_link_status_t, signal_quality) }, \
  30. { "ring_pending", NULL, MAVLINK_TYPE_UINT8_T, 0, 21, offsetof(mavlink_isbd_link_status_t, ring_pending) }, \
  31. { "tx_session_pending", NULL, MAVLINK_TYPE_UINT8_T, 0, 22, offsetof(mavlink_isbd_link_status_t, tx_session_pending) }, \
  32. { "rx_session_pending", NULL, MAVLINK_TYPE_UINT8_T, 0, 23, offsetof(mavlink_isbd_link_status_t, rx_session_pending) }, \
  33. } \
  34. }
  35. #else
  36. #define MAVLINK_MESSAGE_INFO_ISBD_LINK_STATUS { \
  37. "ISBD_LINK_STATUS", \
  38. 8, \
  39. { { "timestamp", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_isbd_link_status_t, timestamp) }, \
  40. { "last_heartbeat", NULL, MAVLINK_TYPE_UINT64_T, 0, 8, offsetof(mavlink_isbd_link_status_t, last_heartbeat) }, \
  41. { "failed_sessions", NULL, MAVLINK_TYPE_UINT16_T, 0, 16, offsetof(mavlink_isbd_link_status_t, failed_sessions) }, \
  42. { "successful_sessions", NULL, MAVLINK_TYPE_UINT16_T, 0, 18, offsetof(mavlink_isbd_link_status_t, successful_sessions) }, \
  43. { "signal_quality", NULL, MAVLINK_TYPE_UINT8_T, 0, 20, offsetof(mavlink_isbd_link_status_t, signal_quality) }, \
  44. { "ring_pending", NULL, MAVLINK_TYPE_UINT8_T, 0, 21, offsetof(mavlink_isbd_link_status_t, ring_pending) }, \
  45. { "tx_session_pending", NULL, MAVLINK_TYPE_UINT8_T, 0, 22, offsetof(mavlink_isbd_link_status_t, tx_session_pending) }, \
  46. { "rx_session_pending", NULL, MAVLINK_TYPE_UINT8_T, 0, 23, offsetof(mavlink_isbd_link_status_t, rx_session_pending) }, \
  47. } \
  48. }
  49. #endif
  50. /**
  51. * @brief Pack a isbd_link_status message
  52. * @param system_id ID of this system
  53. * @param component_id ID of this component (e.g. 200 for IMU)
  54. * @param msg The MAVLink message to compress the data into
  55. *
  56. * @param timestamp [us] Timestamp (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.
  57. * @param last_heartbeat [us] Timestamp of the last successful sbd session. The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
  58. * @param failed_sessions Number of failed SBD sessions.
  59. * @param successful_sessions Number of successful SBD sessions.
  60. * @param signal_quality Signal quality equal to the number of bars displayed on the ISU signal strength indicator. Range is 0 to 5, where 0 indicates no signal and 5 indicates maximum signal strength.
  61. * @param ring_pending 1: Ring call pending, 0: No call pending.
  62. * @param tx_session_pending 1: Transmission session pending, 0: No transmission session pending.
  63. * @param rx_session_pending 1: Receiving session pending, 0: No receiving session pending.
  64. * @return length of the message in bytes (excluding serial stream start sign)
  65. */
  66. static inline uint16_t mavlink_msg_isbd_link_status_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
  67. uint64_t timestamp, uint64_t last_heartbeat, uint16_t failed_sessions, uint16_t successful_sessions, uint8_t signal_quality, uint8_t ring_pending, uint8_t tx_session_pending, uint8_t rx_session_pending)
  68. {
  69. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  70. char buf[MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN];
  71. _mav_put_uint64_t(buf, 0, timestamp);
  72. _mav_put_uint64_t(buf, 8, last_heartbeat);
  73. _mav_put_uint16_t(buf, 16, failed_sessions);
  74. _mav_put_uint16_t(buf, 18, successful_sessions);
  75. _mav_put_uint8_t(buf, 20, signal_quality);
  76. _mav_put_uint8_t(buf, 21, ring_pending);
  77. _mav_put_uint8_t(buf, 22, tx_session_pending);
  78. _mav_put_uint8_t(buf, 23, rx_session_pending);
  79. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN);
  80. #else
  81. mavlink_isbd_link_status_t packet;
  82. packet.timestamp = timestamp;
  83. packet.last_heartbeat = last_heartbeat;
  84. packet.failed_sessions = failed_sessions;
  85. packet.successful_sessions = successful_sessions;
  86. packet.signal_quality = signal_quality;
  87. packet.ring_pending = ring_pending;
  88. packet.tx_session_pending = tx_session_pending;
  89. packet.rx_session_pending = rx_session_pending;
  90. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN);
  91. #endif
  92. msg->msgid = MAVLINK_MSG_ID_ISBD_LINK_STATUS;
  93. return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_ISBD_LINK_STATUS_MIN_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_CRC);
  94. }
  95. /**
  96. * @brief Pack a isbd_link_status message
  97. * @param system_id ID of this system
  98. * @param component_id ID of this component (e.g. 200 for IMU)
  99. * @param status MAVLink status structure
  100. * @param msg The MAVLink message to compress the data into
  101. *
  102. * @param timestamp [us] Timestamp (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.
  103. * @param last_heartbeat [us] Timestamp of the last successful sbd session. The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
  104. * @param failed_sessions Number of failed SBD sessions.
  105. * @param successful_sessions Number of successful SBD sessions.
  106. * @param signal_quality Signal quality equal to the number of bars displayed on the ISU signal strength indicator. Range is 0 to 5, where 0 indicates no signal and 5 indicates maximum signal strength.
  107. * @param ring_pending 1: Ring call pending, 0: No call pending.
  108. * @param tx_session_pending 1: Transmission session pending, 0: No transmission session pending.
  109. * @param rx_session_pending 1: Receiving session pending, 0: No receiving session pending.
  110. * @return length of the message in bytes (excluding serial stream start sign)
  111. */
  112. static inline uint16_t mavlink_msg_isbd_link_status_pack_status(uint8_t system_id, uint8_t component_id, mavlink_status_t *_status, mavlink_message_t* msg,
  113. uint64_t timestamp, uint64_t last_heartbeat, uint16_t failed_sessions, uint16_t successful_sessions, uint8_t signal_quality, uint8_t ring_pending, uint8_t tx_session_pending, uint8_t rx_session_pending)
  114. {
  115. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  116. char buf[MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN];
  117. _mav_put_uint64_t(buf, 0, timestamp);
  118. _mav_put_uint64_t(buf, 8, last_heartbeat);
  119. _mav_put_uint16_t(buf, 16, failed_sessions);
  120. _mav_put_uint16_t(buf, 18, successful_sessions);
  121. _mav_put_uint8_t(buf, 20, signal_quality);
  122. _mav_put_uint8_t(buf, 21, ring_pending);
  123. _mav_put_uint8_t(buf, 22, tx_session_pending);
  124. _mav_put_uint8_t(buf, 23, rx_session_pending);
  125. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN);
  126. #else
  127. mavlink_isbd_link_status_t packet;
  128. packet.timestamp = timestamp;
  129. packet.last_heartbeat = last_heartbeat;
  130. packet.failed_sessions = failed_sessions;
  131. packet.successful_sessions = successful_sessions;
  132. packet.signal_quality = signal_quality;
  133. packet.ring_pending = ring_pending;
  134. packet.tx_session_pending = tx_session_pending;
  135. packet.rx_session_pending = rx_session_pending;
  136. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN);
  137. #endif
  138. msg->msgid = MAVLINK_MSG_ID_ISBD_LINK_STATUS;
  139. #if MAVLINK_CRC_EXTRA
  140. return mavlink_finalize_message_buffer(msg, system_id, component_id, _status, MAVLINK_MSG_ID_ISBD_LINK_STATUS_MIN_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_CRC);
  141. #else
  142. return mavlink_finalize_message_buffer(msg, system_id, component_id, _status, MAVLINK_MSG_ID_ISBD_LINK_STATUS_MIN_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN);
  143. #endif
  144. }
  145. /**
  146. * @brief Pack a isbd_link_status message on a channel
  147. * @param system_id ID of this system
  148. * @param component_id ID of this component (e.g. 200 for IMU)
  149. * @param chan The MAVLink channel this message will be sent over
  150. * @param msg The MAVLink message to compress the data into
  151. * @param timestamp [us] Timestamp (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.
  152. * @param last_heartbeat [us] Timestamp of the last successful sbd session. The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
  153. * @param failed_sessions Number of failed SBD sessions.
  154. * @param successful_sessions Number of successful SBD sessions.
  155. * @param signal_quality Signal quality equal to the number of bars displayed on the ISU signal strength indicator. Range is 0 to 5, where 0 indicates no signal and 5 indicates maximum signal strength.
  156. * @param ring_pending 1: Ring call pending, 0: No call pending.
  157. * @param tx_session_pending 1: Transmission session pending, 0: No transmission session pending.
  158. * @param rx_session_pending 1: Receiving session pending, 0: No receiving session pending.
  159. * @return length of the message in bytes (excluding serial stream start sign)
  160. */
  161. static inline uint16_t mavlink_msg_isbd_link_status_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
  162. mavlink_message_t* msg,
  163. uint64_t timestamp,uint64_t last_heartbeat,uint16_t failed_sessions,uint16_t successful_sessions,uint8_t signal_quality,uint8_t ring_pending,uint8_t tx_session_pending,uint8_t rx_session_pending)
  164. {
  165. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  166. char buf[MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN];
  167. _mav_put_uint64_t(buf, 0, timestamp);
  168. _mav_put_uint64_t(buf, 8, last_heartbeat);
  169. _mav_put_uint16_t(buf, 16, failed_sessions);
  170. _mav_put_uint16_t(buf, 18, successful_sessions);
  171. _mav_put_uint8_t(buf, 20, signal_quality);
  172. _mav_put_uint8_t(buf, 21, ring_pending);
  173. _mav_put_uint8_t(buf, 22, tx_session_pending);
  174. _mav_put_uint8_t(buf, 23, rx_session_pending);
  175. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN);
  176. #else
  177. mavlink_isbd_link_status_t packet;
  178. packet.timestamp = timestamp;
  179. packet.last_heartbeat = last_heartbeat;
  180. packet.failed_sessions = failed_sessions;
  181. packet.successful_sessions = successful_sessions;
  182. packet.signal_quality = signal_quality;
  183. packet.ring_pending = ring_pending;
  184. packet.tx_session_pending = tx_session_pending;
  185. packet.rx_session_pending = rx_session_pending;
  186. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN);
  187. #endif
  188. msg->msgid = MAVLINK_MSG_ID_ISBD_LINK_STATUS;
  189. return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_ISBD_LINK_STATUS_MIN_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_CRC);
  190. }
  191. /**
  192. * @brief Encode a isbd_link_status struct
  193. *
  194. * @param system_id ID of this system
  195. * @param component_id ID of this component (e.g. 200 for IMU)
  196. * @param msg The MAVLink message to compress the data into
  197. * @param isbd_link_status C-struct to read the message contents from
  198. */
  199. static inline uint16_t mavlink_msg_isbd_link_status_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_isbd_link_status_t* isbd_link_status)
  200. {
  201. return mavlink_msg_isbd_link_status_pack(system_id, component_id, msg, isbd_link_status->timestamp, isbd_link_status->last_heartbeat, isbd_link_status->failed_sessions, isbd_link_status->successful_sessions, isbd_link_status->signal_quality, isbd_link_status->ring_pending, isbd_link_status->tx_session_pending, isbd_link_status->rx_session_pending);
  202. }
  203. /**
  204. * @brief Encode a isbd_link_status struct on a channel
  205. *
  206. * @param system_id ID of this system
  207. * @param component_id ID of this component (e.g. 200 for IMU)
  208. * @param chan The MAVLink channel this message will be sent over
  209. * @param msg The MAVLink message to compress the data into
  210. * @param isbd_link_status C-struct to read the message contents from
  211. */
  212. static inline uint16_t mavlink_msg_isbd_link_status_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_isbd_link_status_t* isbd_link_status)
  213. {
  214. return mavlink_msg_isbd_link_status_pack_chan(system_id, component_id, chan, msg, isbd_link_status->timestamp, isbd_link_status->last_heartbeat, isbd_link_status->failed_sessions, isbd_link_status->successful_sessions, isbd_link_status->signal_quality, isbd_link_status->ring_pending, isbd_link_status->tx_session_pending, isbd_link_status->rx_session_pending);
  215. }
  216. /**
  217. * @brief Encode a isbd_link_status struct with provided status structure
  218. *
  219. * @param system_id ID of this system
  220. * @param component_id ID of this component (e.g. 200 for IMU)
  221. * @param status MAVLink status structure
  222. * @param msg The MAVLink message to compress the data into
  223. * @param isbd_link_status C-struct to read the message contents from
  224. */
  225. static inline uint16_t mavlink_msg_isbd_link_status_encode_status(uint8_t system_id, uint8_t component_id, mavlink_status_t* _status, mavlink_message_t* msg, const mavlink_isbd_link_status_t* isbd_link_status)
  226. {
  227. return mavlink_msg_isbd_link_status_pack_status(system_id, component_id, _status, msg, isbd_link_status->timestamp, isbd_link_status->last_heartbeat, isbd_link_status->failed_sessions, isbd_link_status->successful_sessions, isbd_link_status->signal_quality, isbd_link_status->ring_pending, isbd_link_status->tx_session_pending, isbd_link_status->rx_session_pending);
  228. }
  229. /**
  230. * @brief Send a isbd_link_status message
  231. * @param chan MAVLink channel to send the message
  232. *
  233. * @param timestamp [us] Timestamp (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.
  234. * @param last_heartbeat [us] Timestamp of the last successful sbd session. The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
  235. * @param failed_sessions Number of failed SBD sessions.
  236. * @param successful_sessions Number of successful SBD sessions.
  237. * @param signal_quality Signal quality equal to the number of bars displayed on the ISU signal strength indicator. Range is 0 to 5, where 0 indicates no signal and 5 indicates maximum signal strength.
  238. * @param ring_pending 1: Ring call pending, 0: No call pending.
  239. * @param tx_session_pending 1: Transmission session pending, 0: No transmission session pending.
  240. * @param rx_session_pending 1: Receiving session pending, 0: No receiving session pending.
  241. */
  242. #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
  243. static inline void mavlink_msg_isbd_link_status_send(mavlink_channel_t chan, uint64_t timestamp, uint64_t last_heartbeat, uint16_t failed_sessions, uint16_t successful_sessions, uint8_t signal_quality, uint8_t ring_pending, uint8_t tx_session_pending, uint8_t rx_session_pending)
  244. {
  245. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  246. char buf[MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN];
  247. _mav_put_uint64_t(buf, 0, timestamp);
  248. _mav_put_uint64_t(buf, 8, last_heartbeat);
  249. _mav_put_uint16_t(buf, 16, failed_sessions);
  250. _mav_put_uint16_t(buf, 18, successful_sessions);
  251. _mav_put_uint8_t(buf, 20, signal_quality);
  252. _mav_put_uint8_t(buf, 21, ring_pending);
  253. _mav_put_uint8_t(buf, 22, tx_session_pending);
  254. _mav_put_uint8_t(buf, 23, rx_session_pending);
  255. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ISBD_LINK_STATUS, buf, MAVLINK_MSG_ID_ISBD_LINK_STATUS_MIN_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_CRC);
  256. #else
  257. mavlink_isbd_link_status_t packet;
  258. packet.timestamp = timestamp;
  259. packet.last_heartbeat = last_heartbeat;
  260. packet.failed_sessions = failed_sessions;
  261. packet.successful_sessions = successful_sessions;
  262. packet.signal_quality = signal_quality;
  263. packet.ring_pending = ring_pending;
  264. packet.tx_session_pending = tx_session_pending;
  265. packet.rx_session_pending = rx_session_pending;
  266. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ISBD_LINK_STATUS, (const char *)&packet, MAVLINK_MSG_ID_ISBD_LINK_STATUS_MIN_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_CRC);
  267. #endif
  268. }
  269. /**
  270. * @brief Send a isbd_link_status message
  271. * @param chan MAVLink channel to send the message
  272. * @param struct The MAVLink struct to serialize
  273. */
  274. static inline void mavlink_msg_isbd_link_status_send_struct(mavlink_channel_t chan, const mavlink_isbd_link_status_t* isbd_link_status)
  275. {
  276. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  277. mavlink_msg_isbd_link_status_send(chan, isbd_link_status->timestamp, isbd_link_status->last_heartbeat, isbd_link_status->failed_sessions, isbd_link_status->successful_sessions, isbd_link_status->signal_quality, isbd_link_status->ring_pending, isbd_link_status->tx_session_pending, isbd_link_status->rx_session_pending);
  278. #else
  279. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ISBD_LINK_STATUS, (const char *)isbd_link_status, MAVLINK_MSG_ID_ISBD_LINK_STATUS_MIN_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_CRC);
  280. #endif
  281. }
  282. #if MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN <= MAVLINK_MAX_PAYLOAD_LEN
  283. /*
  284. This variant of _send() can be used to save stack space by re-using
  285. memory from the receive buffer. The caller provides a
  286. mavlink_message_t which is the size of a full mavlink message. This
  287. is usually the receive buffer for the channel, and allows a reply to an
  288. incoming message with minimum stack space usage.
  289. */
  290. static inline void mavlink_msg_isbd_link_status_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint64_t timestamp, uint64_t last_heartbeat, uint16_t failed_sessions, uint16_t successful_sessions, uint8_t signal_quality, uint8_t ring_pending, uint8_t tx_session_pending, uint8_t rx_session_pending)
  291. {
  292. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  293. char *buf = (char *)msgbuf;
  294. _mav_put_uint64_t(buf, 0, timestamp);
  295. _mav_put_uint64_t(buf, 8, last_heartbeat);
  296. _mav_put_uint16_t(buf, 16, failed_sessions);
  297. _mav_put_uint16_t(buf, 18, successful_sessions);
  298. _mav_put_uint8_t(buf, 20, signal_quality);
  299. _mav_put_uint8_t(buf, 21, ring_pending);
  300. _mav_put_uint8_t(buf, 22, tx_session_pending);
  301. _mav_put_uint8_t(buf, 23, rx_session_pending);
  302. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ISBD_LINK_STATUS, buf, MAVLINK_MSG_ID_ISBD_LINK_STATUS_MIN_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_CRC);
  303. #else
  304. mavlink_isbd_link_status_t *packet = (mavlink_isbd_link_status_t *)msgbuf;
  305. packet->timestamp = timestamp;
  306. packet->last_heartbeat = last_heartbeat;
  307. packet->failed_sessions = failed_sessions;
  308. packet->successful_sessions = successful_sessions;
  309. packet->signal_quality = signal_quality;
  310. packet->ring_pending = ring_pending;
  311. packet->tx_session_pending = tx_session_pending;
  312. packet->rx_session_pending = rx_session_pending;
  313. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ISBD_LINK_STATUS, (const char *)packet, MAVLINK_MSG_ID_ISBD_LINK_STATUS_MIN_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN, MAVLINK_MSG_ID_ISBD_LINK_STATUS_CRC);
  314. #endif
  315. }
  316. #endif
  317. #endif
  318. // MESSAGE ISBD_LINK_STATUS UNPACKING
  319. /**
  320. * @brief Get field timestamp from isbd_link_status message
  321. *
  322. * @return [us] Timestamp (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.
  323. */
  324. static inline uint64_t mavlink_msg_isbd_link_status_get_timestamp(const mavlink_message_t* msg)
  325. {
  326. return _MAV_RETURN_uint64_t(msg, 0);
  327. }
  328. /**
  329. * @brief Get field last_heartbeat from isbd_link_status message
  330. *
  331. * @return [us] Timestamp of the last successful sbd session. The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number.
  332. */
  333. static inline uint64_t mavlink_msg_isbd_link_status_get_last_heartbeat(const mavlink_message_t* msg)
  334. {
  335. return _MAV_RETURN_uint64_t(msg, 8);
  336. }
  337. /**
  338. * @brief Get field failed_sessions from isbd_link_status message
  339. *
  340. * @return Number of failed SBD sessions.
  341. */
  342. static inline uint16_t mavlink_msg_isbd_link_status_get_failed_sessions(const mavlink_message_t* msg)
  343. {
  344. return _MAV_RETURN_uint16_t(msg, 16);
  345. }
  346. /**
  347. * @brief Get field successful_sessions from isbd_link_status message
  348. *
  349. * @return Number of successful SBD sessions.
  350. */
  351. static inline uint16_t mavlink_msg_isbd_link_status_get_successful_sessions(const mavlink_message_t* msg)
  352. {
  353. return _MAV_RETURN_uint16_t(msg, 18);
  354. }
  355. /**
  356. * @brief Get field signal_quality from isbd_link_status message
  357. *
  358. * @return Signal quality equal to the number of bars displayed on the ISU signal strength indicator. Range is 0 to 5, where 0 indicates no signal and 5 indicates maximum signal strength.
  359. */
  360. static inline uint8_t mavlink_msg_isbd_link_status_get_signal_quality(const mavlink_message_t* msg)
  361. {
  362. return _MAV_RETURN_uint8_t(msg, 20);
  363. }
  364. /**
  365. * @brief Get field ring_pending from isbd_link_status message
  366. *
  367. * @return 1: Ring call pending, 0: No call pending.
  368. */
  369. static inline uint8_t mavlink_msg_isbd_link_status_get_ring_pending(const mavlink_message_t* msg)
  370. {
  371. return _MAV_RETURN_uint8_t(msg, 21);
  372. }
  373. /**
  374. * @brief Get field tx_session_pending from isbd_link_status message
  375. *
  376. * @return 1: Transmission session pending, 0: No transmission session pending.
  377. */
  378. static inline uint8_t mavlink_msg_isbd_link_status_get_tx_session_pending(const mavlink_message_t* msg)
  379. {
  380. return _MAV_RETURN_uint8_t(msg, 22);
  381. }
  382. /**
  383. * @brief Get field rx_session_pending from isbd_link_status message
  384. *
  385. * @return 1: Receiving session pending, 0: No receiving session pending.
  386. */
  387. static inline uint8_t mavlink_msg_isbd_link_status_get_rx_session_pending(const mavlink_message_t* msg)
  388. {
  389. return _MAV_RETURN_uint8_t(msg, 23);
  390. }
  391. /**
  392. * @brief Decode a isbd_link_status message into a struct
  393. *
  394. * @param msg The message to decode
  395. * @param isbd_link_status C-struct to decode the message contents into
  396. */
  397. static inline void mavlink_msg_isbd_link_status_decode(const mavlink_message_t* msg, mavlink_isbd_link_status_t* isbd_link_status)
  398. {
  399. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  400. isbd_link_status->timestamp = mavlink_msg_isbd_link_status_get_timestamp(msg);
  401. isbd_link_status->last_heartbeat = mavlink_msg_isbd_link_status_get_last_heartbeat(msg);
  402. isbd_link_status->failed_sessions = mavlink_msg_isbd_link_status_get_failed_sessions(msg);
  403. isbd_link_status->successful_sessions = mavlink_msg_isbd_link_status_get_successful_sessions(msg);
  404. isbd_link_status->signal_quality = mavlink_msg_isbd_link_status_get_signal_quality(msg);
  405. isbd_link_status->ring_pending = mavlink_msg_isbd_link_status_get_ring_pending(msg);
  406. isbd_link_status->tx_session_pending = mavlink_msg_isbd_link_status_get_tx_session_pending(msg);
  407. isbd_link_status->rx_session_pending = mavlink_msg_isbd_link_status_get_rx_session_pending(msg);
  408. #else
  409. uint8_t len = msg->len < MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN? msg->len : MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN;
  410. memset(isbd_link_status, 0, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN);
  411. memcpy(isbd_link_status, _MAV_PAYLOAD(msg), len);
  412. #endif
  413. }