mavlink_msg_isbd_link_status.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388
  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 on a channel
  97. * @param system_id ID of this system
  98. * @param component_id ID of this component (e.g. 200 for IMU)
  99. * @param chan The MAVLink channel this message will be sent over
  100. * @param msg The MAVLink message to compress the data into
  101. * @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.
  102. * @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.
  103. * @param failed_sessions Number of failed SBD sessions.
  104. * @param successful_sessions Number of successful SBD sessions.
  105. * @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.
  106. * @param ring_pending 1: Ring call pending, 0: No call pending.
  107. * @param tx_session_pending 1: Transmission session pending, 0: No transmission session pending.
  108. * @param rx_session_pending 1: Receiving session pending, 0: No receiving session pending.
  109. * @return length of the message in bytes (excluding serial stream start sign)
  110. */
  111. static inline uint16_t mavlink_msg_isbd_link_status_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
  112. 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. 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);
  140. }
  141. /**
  142. * @brief Encode a isbd_link_status struct
  143. *
  144. * @param system_id ID of this system
  145. * @param component_id ID of this component (e.g. 200 for IMU)
  146. * @param msg The MAVLink message to compress the data into
  147. * @param isbd_link_status C-struct to read the message contents from
  148. */
  149. 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)
  150. {
  151. 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);
  152. }
  153. /**
  154. * @brief Encode a isbd_link_status struct on a channel
  155. *
  156. * @param system_id ID of this system
  157. * @param component_id ID of this component (e.g. 200 for IMU)
  158. * @param chan The MAVLink channel this message will be sent over
  159. * @param msg The MAVLink message to compress the data into
  160. * @param isbd_link_status C-struct to read the message contents from
  161. */
  162. 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)
  163. {
  164. 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);
  165. }
  166. /**
  167. * @brief Send a isbd_link_status message
  168. * @param chan MAVLink channel to send the message
  169. *
  170. * @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.
  171. * @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.
  172. * @param failed_sessions Number of failed SBD sessions.
  173. * @param successful_sessions Number of successful SBD sessions.
  174. * @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.
  175. * @param ring_pending 1: Ring call pending, 0: No call pending.
  176. * @param tx_session_pending 1: Transmission session pending, 0: No transmission session pending.
  177. * @param rx_session_pending 1: Receiving session pending, 0: No receiving session pending.
  178. */
  179. #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
  180. 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)
  181. {
  182. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  183. char buf[MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN];
  184. _mav_put_uint64_t(buf, 0, timestamp);
  185. _mav_put_uint64_t(buf, 8, last_heartbeat);
  186. _mav_put_uint16_t(buf, 16, failed_sessions);
  187. _mav_put_uint16_t(buf, 18, successful_sessions);
  188. _mav_put_uint8_t(buf, 20, signal_quality);
  189. _mav_put_uint8_t(buf, 21, ring_pending);
  190. _mav_put_uint8_t(buf, 22, tx_session_pending);
  191. _mav_put_uint8_t(buf, 23, rx_session_pending);
  192. _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);
  193. #else
  194. mavlink_isbd_link_status_t packet;
  195. packet.timestamp = timestamp;
  196. packet.last_heartbeat = last_heartbeat;
  197. packet.failed_sessions = failed_sessions;
  198. packet.successful_sessions = successful_sessions;
  199. packet.signal_quality = signal_quality;
  200. packet.ring_pending = ring_pending;
  201. packet.tx_session_pending = tx_session_pending;
  202. packet.rx_session_pending = rx_session_pending;
  203. _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);
  204. #endif
  205. }
  206. /**
  207. * @brief Send a isbd_link_status message
  208. * @param chan MAVLink channel to send the message
  209. * @param struct The MAVLink struct to serialize
  210. */
  211. static inline void mavlink_msg_isbd_link_status_send_struct(mavlink_channel_t chan, const mavlink_isbd_link_status_t* isbd_link_status)
  212. {
  213. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  214. 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);
  215. #else
  216. _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);
  217. #endif
  218. }
  219. #if MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN <= MAVLINK_MAX_PAYLOAD_LEN
  220. /*
  221. This variant of _send() can be used to save stack space by re-using
  222. memory from the receive buffer. The caller provides a
  223. mavlink_message_t which is the size of a full mavlink message. This
  224. is usually the receive buffer for the channel, and allows a reply to an
  225. incoming message with minimum stack space usage.
  226. */
  227. 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)
  228. {
  229. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  230. char *buf = (char *)msgbuf;
  231. _mav_put_uint64_t(buf, 0, timestamp);
  232. _mav_put_uint64_t(buf, 8, last_heartbeat);
  233. _mav_put_uint16_t(buf, 16, failed_sessions);
  234. _mav_put_uint16_t(buf, 18, successful_sessions);
  235. _mav_put_uint8_t(buf, 20, signal_quality);
  236. _mav_put_uint8_t(buf, 21, ring_pending);
  237. _mav_put_uint8_t(buf, 22, tx_session_pending);
  238. _mav_put_uint8_t(buf, 23, rx_session_pending);
  239. _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);
  240. #else
  241. mavlink_isbd_link_status_t *packet = (mavlink_isbd_link_status_t *)msgbuf;
  242. packet->timestamp = timestamp;
  243. packet->last_heartbeat = last_heartbeat;
  244. packet->failed_sessions = failed_sessions;
  245. packet->successful_sessions = successful_sessions;
  246. packet->signal_quality = signal_quality;
  247. packet->ring_pending = ring_pending;
  248. packet->tx_session_pending = tx_session_pending;
  249. packet->rx_session_pending = rx_session_pending;
  250. _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);
  251. #endif
  252. }
  253. #endif
  254. #endif
  255. // MESSAGE ISBD_LINK_STATUS UNPACKING
  256. /**
  257. * @brief Get field timestamp from isbd_link_status message
  258. *
  259. * @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.
  260. */
  261. static inline uint64_t mavlink_msg_isbd_link_status_get_timestamp(const mavlink_message_t* msg)
  262. {
  263. return _MAV_RETURN_uint64_t(msg, 0);
  264. }
  265. /**
  266. * @brief Get field last_heartbeat from isbd_link_status message
  267. *
  268. * @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.
  269. */
  270. static inline uint64_t mavlink_msg_isbd_link_status_get_last_heartbeat(const mavlink_message_t* msg)
  271. {
  272. return _MAV_RETURN_uint64_t(msg, 8);
  273. }
  274. /**
  275. * @brief Get field failed_sessions from isbd_link_status message
  276. *
  277. * @return Number of failed SBD sessions.
  278. */
  279. static inline uint16_t mavlink_msg_isbd_link_status_get_failed_sessions(const mavlink_message_t* msg)
  280. {
  281. return _MAV_RETURN_uint16_t(msg, 16);
  282. }
  283. /**
  284. * @brief Get field successful_sessions from isbd_link_status message
  285. *
  286. * @return Number of successful SBD sessions.
  287. */
  288. static inline uint16_t mavlink_msg_isbd_link_status_get_successful_sessions(const mavlink_message_t* msg)
  289. {
  290. return _MAV_RETURN_uint16_t(msg, 18);
  291. }
  292. /**
  293. * @brief Get field signal_quality from isbd_link_status message
  294. *
  295. * @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.
  296. */
  297. static inline uint8_t mavlink_msg_isbd_link_status_get_signal_quality(const mavlink_message_t* msg)
  298. {
  299. return _MAV_RETURN_uint8_t(msg, 20);
  300. }
  301. /**
  302. * @brief Get field ring_pending from isbd_link_status message
  303. *
  304. * @return 1: Ring call pending, 0: No call pending.
  305. */
  306. static inline uint8_t mavlink_msg_isbd_link_status_get_ring_pending(const mavlink_message_t* msg)
  307. {
  308. return _MAV_RETURN_uint8_t(msg, 21);
  309. }
  310. /**
  311. * @brief Get field tx_session_pending from isbd_link_status message
  312. *
  313. * @return 1: Transmission session pending, 0: No transmission session pending.
  314. */
  315. static inline uint8_t mavlink_msg_isbd_link_status_get_tx_session_pending(const mavlink_message_t* msg)
  316. {
  317. return _MAV_RETURN_uint8_t(msg, 22);
  318. }
  319. /**
  320. * @brief Get field rx_session_pending from isbd_link_status message
  321. *
  322. * @return 1: Receiving session pending, 0: No receiving session pending.
  323. */
  324. static inline uint8_t mavlink_msg_isbd_link_status_get_rx_session_pending(const mavlink_message_t* msg)
  325. {
  326. return _MAV_RETURN_uint8_t(msg, 23);
  327. }
  328. /**
  329. * @brief Decode a isbd_link_status message into a struct
  330. *
  331. * @param msg The message to decode
  332. * @param isbd_link_status C-struct to decode the message contents into
  333. */
  334. static inline void mavlink_msg_isbd_link_status_decode(const mavlink_message_t* msg, mavlink_isbd_link_status_t* isbd_link_status)
  335. {
  336. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  337. isbd_link_status->timestamp = mavlink_msg_isbd_link_status_get_timestamp(msg);
  338. isbd_link_status->last_heartbeat = mavlink_msg_isbd_link_status_get_last_heartbeat(msg);
  339. isbd_link_status->failed_sessions = mavlink_msg_isbd_link_status_get_failed_sessions(msg);
  340. isbd_link_status->successful_sessions = mavlink_msg_isbd_link_status_get_successful_sessions(msg);
  341. isbd_link_status->signal_quality = mavlink_msg_isbd_link_status_get_signal_quality(msg);
  342. isbd_link_status->ring_pending = mavlink_msg_isbd_link_status_get_ring_pending(msg);
  343. isbd_link_status->tx_session_pending = mavlink_msg_isbd_link_status_get_tx_session_pending(msg);
  344. isbd_link_status->rx_session_pending = mavlink_msg_isbd_link_status_get_rx_session_pending(msg);
  345. #else
  346. uint8_t len = msg->len < MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN? msg->len : MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN;
  347. memset(isbd_link_status, 0, MAVLINK_MSG_ID_ISBD_LINK_STATUS_LEN);
  348. memcpy(isbd_link_status, _MAV_PAYLOAD(msg), len);
  349. #endif
  350. }