mavlink_msg_vkins_status.h 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748
  1. #pragma once
  2. // MESSAGE VKINS_STATUS PACKING
  3. #define MAVLINK_MSG_ID_VKINS_STATUS 53000
  4. typedef struct __mavlink_vkins_status_t {
  5. uint32_t time_boot_ms; /*< [ms] Timestamp in ms from system boot.*/
  6. float g0; /*< [m/s/s] vkins initial calibrated gravitation acceleration.*/
  7. int32_t raw_latitude; /*< [degE7] raw longitude for data fusion*/
  8. int32_t raw_longitude; /*< [degE7] raw latitidue for data fusion*/
  9. float baro_alt; /*< [m] raw baromoter altitude for data fusion*/
  10. float raw_gps_alt; /*< [m] gps amsl altitude for data fusion*/
  11. int16_t temperature; /*< [cdegC] temperature*/
  12. uint8_t nav_status; /*< VKINS
  13. navigation status flag.*/
  14. uint8_t s_flag1; /*< vinks flag1*/
  15. uint8_t s_flag2; /*< vinks flag2.*/
  16. uint8_t s_flag3; /*< vinks flag3.*/
  17. uint8_t s_flag4; /*< vinks flag4.*/
  18. uint8_t s_flag5; /*< vinks flag5.*/
  19. uint8_t s_flag6; /*< vinks flag6.*/
  20. uint8_t mag_calib_stage; /*< vkins mag calib
  21. stage.*/
  22. uint8_t solv_psat_num; /*< satelites number for position*/
  23. uint8_t solv_hsat_num; /*< satelites number for heading*/
  24. uint8_t vibe_coe; /*< */
  25. } mavlink_vkins_status_t;
  26. #define MAVLINK_MSG_ID_VKINS_STATUS_LEN 37
  27. #define MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN 37
  28. #define MAVLINK_MSG_ID_53000_LEN 37
  29. #define MAVLINK_MSG_ID_53000_MIN_LEN 37
  30. #define MAVLINK_MSG_ID_VKINS_STATUS_CRC 22
  31. #define MAVLINK_MSG_ID_53000_CRC 22
  32. #if MAVLINK_COMMAND_24BIT
  33. #define MAVLINK_MESSAGE_INFO_VKINS_STATUS { \
  34. 53000, \
  35. "VKINS_STATUS", \
  36. 18, \
  37. { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vkins_status_t, time_boot_ms) }, \
  38. { "nav_status", "0x%02x", MAVLINK_TYPE_UINT8_T, 0, 26, offsetof(mavlink_vkins_status_t, nav_status) }, \
  39. { "s_flag1", NULL, MAVLINK_TYPE_UINT8_T, 0, 27, offsetof(mavlink_vkins_status_t, s_flag1) }, \
  40. { "s_flag2", NULL, MAVLINK_TYPE_UINT8_T, 0, 28, offsetof(mavlink_vkins_status_t, s_flag2) }, \
  41. { "s_flag3", NULL, MAVLINK_TYPE_UINT8_T, 0, 29, offsetof(mavlink_vkins_status_t, s_flag3) }, \
  42. { "s_flag4", NULL, MAVLINK_TYPE_UINT8_T, 0, 30, offsetof(mavlink_vkins_status_t, s_flag4) }, \
  43. { "s_flag5", NULL, MAVLINK_TYPE_UINT8_T, 0, 31, offsetof(mavlink_vkins_status_t, s_flag5) }, \
  44. { "s_flag6", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, offsetof(mavlink_vkins_status_t, s_flag6) }, \
  45. { "mag_calib_stage", NULL, MAVLINK_TYPE_UINT8_T, 0, 33, offsetof(mavlink_vkins_status_t, mag_calib_stage) }, \
  46. { "g0", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_vkins_status_t, g0) }, \
  47. { "raw_latitude", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_vkins_status_t, raw_latitude) }, \
  48. { "raw_longitude", NULL, MAVLINK_TYPE_INT32_T, 0, 12, offsetof(mavlink_vkins_status_t, raw_longitude) }, \
  49. { "baro_alt", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_vkins_status_t, baro_alt) }, \
  50. { "raw_gps_alt", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_vkins_status_t, raw_gps_alt) }, \
  51. { "solv_psat_num", NULL, MAVLINK_TYPE_UINT8_T, 0, 34, offsetof(mavlink_vkins_status_t, solv_psat_num) }, \
  52. { "solv_hsat_num", NULL, MAVLINK_TYPE_UINT8_T, 0, 35, offsetof(mavlink_vkins_status_t, solv_hsat_num) }, \
  53. { "temperature", NULL, MAVLINK_TYPE_INT16_T, 0, 24, offsetof(mavlink_vkins_status_t, temperature) }, \
  54. { "vibe_coe", NULL, MAVLINK_TYPE_UINT8_T, 0, 36, offsetof(mavlink_vkins_status_t, vibe_coe) }, \
  55. } \
  56. }
  57. #else
  58. #define MAVLINK_MESSAGE_INFO_VKINS_STATUS { \
  59. "VKINS_STATUS", \
  60. 18, \
  61. { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vkins_status_t, time_boot_ms) }, \
  62. { "nav_status", "0x%02x", MAVLINK_TYPE_UINT8_T, 0, 26, offsetof(mavlink_vkins_status_t, nav_status) }, \
  63. { "s_flag1", NULL, MAVLINK_TYPE_UINT8_T, 0, 27, offsetof(mavlink_vkins_status_t, s_flag1) }, \
  64. { "s_flag2", NULL, MAVLINK_TYPE_UINT8_T, 0, 28, offsetof(mavlink_vkins_status_t, s_flag2) }, \
  65. { "s_flag3", NULL, MAVLINK_TYPE_UINT8_T, 0, 29, offsetof(mavlink_vkins_status_t, s_flag3) }, \
  66. { "s_flag4", NULL, MAVLINK_TYPE_UINT8_T, 0, 30, offsetof(mavlink_vkins_status_t, s_flag4) }, \
  67. { "s_flag5", NULL, MAVLINK_TYPE_UINT8_T, 0, 31, offsetof(mavlink_vkins_status_t, s_flag5) }, \
  68. { "s_flag6", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, offsetof(mavlink_vkins_status_t, s_flag6) }, \
  69. { "mag_calib_stage", NULL, MAVLINK_TYPE_UINT8_T, 0, 33, offsetof(mavlink_vkins_status_t, mag_calib_stage) }, \
  70. { "g0", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_vkins_status_t, g0) }, \
  71. { "raw_latitude", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_vkins_status_t, raw_latitude) }, \
  72. { "raw_longitude", NULL, MAVLINK_TYPE_INT32_T, 0, 12, offsetof(mavlink_vkins_status_t, raw_longitude) }, \
  73. { "baro_alt", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_vkins_status_t, baro_alt) }, \
  74. { "raw_gps_alt", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_vkins_status_t, raw_gps_alt) }, \
  75. { "solv_psat_num", NULL, MAVLINK_TYPE_UINT8_T, 0, 34, offsetof(mavlink_vkins_status_t, solv_psat_num) }, \
  76. { "solv_hsat_num", NULL, MAVLINK_TYPE_UINT8_T, 0, 35, offsetof(mavlink_vkins_status_t, solv_hsat_num) }, \
  77. { "temperature", NULL, MAVLINK_TYPE_INT16_T, 0, 24, offsetof(mavlink_vkins_status_t, temperature) }, \
  78. { "vibe_coe", NULL, MAVLINK_TYPE_UINT8_T, 0, 36, offsetof(mavlink_vkins_status_t, vibe_coe) }, \
  79. } \
  80. }
  81. #endif
  82. /**
  83. * @brief Pack a vkins_status message
  84. * @param system_id ID of this system
  85. * @param component_id ID of this component (e.g. 200 for IMU)
  86. * @param msg The MAVLink message to compress the data into
  87. *
  88. * @param time_boot_ms [ms] Timestamp in ms from system boot.
  89. * @param nav_status VKINS
  90. navigation status flag.
  91. * @param s_flag1 vinks flag1
  92. * @param s_flag2 vinks flag2.
  93. * @param s_flag3 vinks flag3.
  94. * @param s_flag4 vinks flag4.
  95. * @param s_flag5 vinks flag5.
  96. * @param s_flag6 vinks flag6.
  97. * @param mag_calib_stage vkins mag calib
  98. stage.
  99. * @param g0 [m/s/s] vkins initial calibrated gravitation acceleration.
  100. * @param raw_latitude [degE7] raw longitude for data fusion
  101. * @param raw_longitude [degE7] raw latitidue for data fusion
  102. * @param baro_alt [m] raw baromoter altitude for data fusion
  103. * @param raw_gps_alt [m] gps amsl altitude for data fusion
  104. * @param solv_psat_num satelites number for position
  105. * @param solv_hsat_num satelites number for heading
  106. * @param temperature [cdegC] temperature
  107. * @param vibe_coe
  108. * @return length of the message in bytes (excluding serial stream start sign)
  109. */
  110. static inline uint16_t mavlink_msg_vkins_status_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
  111. uint32_t time_boot_ms, uint8_t nav_status, uint8_t s_flag1, uint8_t s_flag2, uint8_t s_flag3, uint8_t s_flag4, uint8_t s_flag5, uint8_t s_flag6, uint8_t mag_calib_stage, float g0, int32_t raw_latitude, int32_t raw_longitude, float baro_alt, float raw_gps_alt, uint8_t solv_psat_num, uint8_t solv_hsat_num, int16_t temperature, uint8_t vibe_coe)
  112. {
  113. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  114. char buf[MAVLINK_MSG_ID_VKINS_STATUS_LEN];
  115. _mav_put_uint32_t(buf, 0, time_boot_ms);
  116. _mav_put_float(buf, 4, g0);
  117. _mav_put_int32_t(buf, 8, raw_latitude);
  118. _mav_put_int32_t(buf, 12, raw_longitude);
  119. _mav_put_float(buf, 16, baro_alt);
  120. _mav_put_float(buf, 20, raw_gps_alt);
  121. _mav_put_int16_t(buf, 24, temperature);
  122. _mav_put_uint8_t(buf, 26, nav_status);
  123. _mav_put_uint8_t(buf, 27, s_flag1);
  124. _mav_put_uint8_t(buf, 28, s_flag2);
  125. _mav_put_uint8_t(buf, 29, s_flag3);
  126. _mav_put_uint8_t(buf, 30, s_flag4);
  127. _mav_put_uint8_t(buf, 31, s_flag5);
  128. _mav_put_uint8_t(buf, 32, s_flag6);
  129. _mav_put_uint8_t(buf, 33, mag_calib_stage);
  130. _mav_put_uint8_t(buf, 34, solv_psat_num);
  131. _mav_put_uint8_t(buf, 35, solv_hsat_num);
  132. _mav_put_uint8_t(buf, 36, vibe_coe);
  133. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
  134. #else
  135. mavlink_vkins_status_t packet;
  136. packet.time_boot_ms = time_boot_ms;
  137. packet.g0 = g0;
  138. packet.raw_latitude = raw_latitude;
  139. packet.raw_longitude = raw_longitude;
  140. packet.baro_alt = baro_alt;
  141. packet.raw_gps_alt = raw_gps_alt;
  142. packet.temperature = temperature;
  143. packet.nav_status = nav_status;
  144. packet.s_flag1 = s_flag1;
  145. packet.s_flag2 = s_flag2;
  146. packet.s_flag3 = s_flag3;
  147. packet.s_flag4 = s_flag4;
  148. packet.s_flag5 = s_flag5;
  149. packet.s_flag6 = s_flag6;
  150. packet.mag_calib_stage = mag_calib_stage;
  151. packet.solv_psat_num = solv_psat_num;
  152. packet.solv_hsat_num = solv_hsat_num;
  153. packet.vibe_coe = vibe_coe;
  154. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
  155. #endif
  156. msg->msgid = MAVLINK_MSG_ID_VKINS_STATUS;
  157. return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKINS_STATUS_LEN, MAVLINK_MSG_ID_VKINS_STATUS_CRC);
  158. }
  159. /**
  160. * @brief Pack a vkins_status message
  161. * @param system_id ID of this system
  162. * @param component_id ID of this component (e.g. 200 for IMU)
  163. * @param status MAVLink status structure
  164. * @param msg The MAVLink message to compress the data into
  165. *
  166. * @param time_boot_ms [ms] Timestamp in ms from system boot.
  167. * @param nav_status VKINS
  168. navigation status flag.
  169. * @param s_flag1 vinks flag1
  170. * @param s_flag2 vinks flag2.
  171. * @param s_flag3 vinks flag3.
  172. * @param s_flag4 vinks flag4.
  173. * @param s_flag5 vinks flag5.
  174. * @param s_flag6 vinks flag6.
  175. * @param mag_calib_stage vkins mag calib
  176. stage.
  177. * @param g0 [m/s/s] vkins initial calibrated gravitation acceleration.
  178. * @param raw_latitude [degE7] raw longitude for data fusion
  179. * @param raw_longitude [degE7] raw latitidue for data fusion
  180. * @param baro_alt [m] raw baromoter altitude for data fusion
  181. * @param raw_gps_alt [m] gps amsl altitude for data fusion
  182. * @param solv_psat_num satelites number for position
  183. * @param solv_hsat_num satelites number for heading
  184. * @param temperature [cdegC] temperature
  185. * @param vibe_coe
  186. * @return length of the message in bytes (excluding serial stream start sign)
  187. */
  188. static inline uint16_t mavlink_msg_vkins_status_pack_status(uint8_t system_id, uint8_t component_id, mavlink_status_t *_status, mavlink_message_t* msg,
  189. uint32_t time_boot_ms, uint8_t nav_status, uint8_t s_flag1, uint8_t s_flag2, uint8_t s_flag3, uint8_t s_flag4, uint8_t s_flag5, uint8_t s_flag6, uint8_t mag_calib_stage, float g0, int32_t raw_latitude, int32_t raw_longitude, float baro_alt, float raw_gps_alt, uint8_t solv_psat_num, uint8_t solv_hsat_num, int16_t temperature, uint8_t vibe_coe)
  190. {
  191. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  192. char buf[MAVLINK_MSG_ID_VKINS_STATUS_LEN];
  193. _mav_put_uint32_t(buf, 0, time_boot_ms);
  194. _mav_put_float(buf, 4, g0);
  195. _mav_put_int32_t(buf, 8, raw_latitude);
  196. _mav_put_int32_t(buf, 12, raw_longitude);
  197. _mav_put_float(buf, 16, baro_alt);
  198. _mav_put_float(buf, 20, raw_gps_alt);
  199. _mav_put_int16_t(buf, 24, temperature);
  200. _mav_put_uint8_t(buf, 26, nav_status);
  201. _mav_put_uint8_t(buf, 27, s_flag1);
  202. _mav_put_uint8_t(buf, 28, s_flag2);
  203. _mav_put_uint8_t(buf, 29, s_flag3);
  204. _mav_put_uint8_t(buf, 30, s_flag4);
  205. _mav_put_uint8_t(buf, 31, s_flag5);
  206. _mav_put_uint8_t(buf, 32, s_flag6);
  207. _mav_put_uint8_t(buf, 33, mag_calib_stage);
  208. _mav_put_uint8_t(buf, 34, solv_psat_num);
  209. _mav_put_uint8_t(buf, 35, solv_hsat_num);
  210. _mav_put_uint8_t(buf, 36, vibe_coe);
  211. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
  212. #else
  213. mavlink_vkins_status_t packet;
  214. packet.time_boot_ms = time_boot_ms;
  215. packet.g0 = g0;
  216. packet.raw_latitude = raw_latitude;
  217. packet.raw_longitude = raw_longitude;
  218. packet.baro_alt = baro_alt;
  219. packet.raw_gps_alt = raw_gps_alt;
  220. packet.temperature = temperature;
  221. packet.nav_status = nav_status;
  222. packet.s_flag1 = s_flag1;
  223. packet.s_flag2 = s_flag2;
  224. packet.s_flag3 = s_flag3;
  225. packet.s_flag4 = s_flag4;
  226. packet.s_flag5 = s_flag5;
  227. packet.s_flag6 = s_flag6;
  228. packet.mag_calib_stage = mag_calib_stage;
  229. packet.solv_psat_num = solv_psat_num;
  230. packet.solv_hsat_num = solv_hsat_num;
  231. packet.vibe_coe = vibe_coe;
  232. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
  233. #endif
  234. msg->msgid = MAVLINK_MSG_ID_VKINS_STATUS;
  235. #if MAVLINK_CRC_EXTRA
  236. return mavlink_finalize_message_buffer(msg, system_id, component_id, _status, MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKINS_STATUS_LEN, MAVLINK_MSG_ID_VKINS_STATUS_CRC);
  237. #else
  238. return mavlink_finalize_message_buffer(msg, system_id, component_id, _status, MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
  239. #endif
  240. }
  241. /**
  242. * @brief Pack a vkins_status message on a channel
  243. * @param system_id ID of this system
  244. * @param component_id ID of this component (e.g. 200 for IMU)
  245. * @param chan The MAVLink channel this message will be sent over
  246. * @param msg The MAVLink message to compress the data into
  247. * @param time_boot_ms [ms] Timestamp in ms from system boot.
  248. * @param nav_status VKINS
  249. navigation status flag.
  250. * @param s_flag1 vinks flag1
  251. * @param s_flag2 vinks flag2.
  252. * @param s_flag3 vinks flag3.
  253. * @param s_flag4 vinks flag4.
  254. * @param s_flag5 vinks flag5.
  255. * @param s_flag6 vinks flag6.
  256. * @param mag_calib_stage vkins mag calib
  257. stage.
  258. * @param g0 [m/s/s] vkins initial calibrated gravitation acceleration.
  259. * @param raw_latitude [degE7] raw longitude for data fusion
  260. * @param raw_longitude [degE7] raw latitidue for data fusion
  261. * @param baro_alt [m] raw baromoter altitude for data fusion
  262. * @param raw_gps_alt [m] gps amsl altitude for data fusion
  263. * @param solv_psat_num satelites number for position
  264. * @param solv_hsat_num satelites number for heading
  265. * @param temperature [cdegC] temperature
  266. * @param vibe_coe
  267. * @return length of the message in bytes (excluding serial stream start sign)
  268. */
  269. static inline uint16_t mavlink_msg_vkins_status_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
  270. mavlink_message_t* msg,
  271. uint32_t time_boot_ms,uint8_t nav_status,uint8_t s_flag1,uint8_t s_flag2,uint8_t s_flag3,uint8_t s_flag4,uint8_t s_flag5,uint8_t s_flag6,uint8_t mag_calib_stage,float g0,int32_t raw_latitude,int32_t raw_longitude,float baro_alt,float raw_gps_alt,uint8_t solv_psat_num,uint8_t solv_hsat_num,int16_t temperature,uint8_t vibe_coe)
  272. {
  273. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  274. char buf[MAVLINK_MSG_ID_VKINS_STATUS_LEN];
  275. _mav_put_uint32_t(buf, 0, time_boot_ms);
  276. _mav_put_float(buf, 4, g0);
  277. _mav_put_int32_t(buf, 8, raw_latitude);
  278. _mav_put_int32_t(buf, 12, raw_longitude);
  279. _mav_put_float(buf, 16, baro_alt);
  280. _mav_put_float(buf, 20, raw_gps_alt);
  281. _mav_put_int16_t(buf, 24, temperature);
  282. _mav_put_uint8_t(buf, 26, nav_status);
  283. _mav_put_uint8_t(buf, 27, s_flag1);
  284. _mav_put_uint8_t(buf, 28, s_flag2);
  285. _mav_put_uint8_t(buf, 29, s_flag3);
  286. _mav_put_uint8_t(buf, 30, s_flag4);
  287. _mav_put_uint8_t(buf, 31, s_flag5);
  288. _mav_put_uint8_t(buf, 32, s_flag6);
  289. _mav_put_uint8_t(buf, 33, mag_calib_stage);
  290. _mav_put_uint8_t(buf, 34, solv_psat_num);
  291. _mav_put_uint8_t(buf, 35, solv_hsat_num);
  292. _mav_put_uint8_t(buf, 36, vibe_coe);
  293. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
  294. #else
  295. mavlink_vkins_status_t packet;
  296. packet.time_boot_ms = time_boot_ms;
  297. packet.g0 = g0;
  298. packet.raw_latitude = raw_latitude;
  299. packet.raw_longitude = raw_longitude;
  300. packet.baro_alt = baro_alt;
  301. packet.raw_gps_alt = raw_gps_alt;
  302. packet.temperature = temperature;
  303. packet.nav_status = nav_status;
  304. packet.s_flag1 = s_flag1;
  305. packet.s_flag2 = s_flag2;
  306. packet.s_flag3 = s_flag3;
  307. packet.s_flag4 = s_flag4;
  308. packet.s_flag5 = s_flag5;
  309. packet.s_flag6 = s_flag6;
  310. packet.mag_calib_stage = mag_calib_stage;
  311. packet.solv_psat_num = solv_psat_num;
  312. packet.solv_hsat_num = solv_hsat_num;
  313. packet.vibe_coe = vibe_coe;
  314. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
  315. #endif
  316. msg->msgid = MAVLINK_MSG_ID_VKINS_STATUS;
  317. return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKINS_STATUS_LEN, MAVLINK_MSG_ID_VKINS_STATUS_CRC);
  318. }
  319. /**
  320. * @brief Encode a vkins_status struct
  321. *
  322. * @param system_id ID of this system
  323. * @param component_id ID of this component (e.g. 200 for IMU)
  324. * @param msg The MAVLink message to compress the data into
  325. * @param vkins_status C-struct to read the message contents from
  326. */
  327. static inline uint16_t mavlink_msg_vkins_status_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_vkins_status_t* vkins_status)
  328. {
  329. return mavlink_msg_vkins_status_pack(system_id, component_id, msg, vkins_status->time_boot_ms, vkins_status->nav_status, vkins_status->s_flag1, vkins_status->s_flag2, vkins_status->s_flag3, vkins_status->s_flag4, vkins_status->s_flag5, vkins_status->s_flag6, vkins_status->mag_calib_stage, vkins_status->g0, vkins_status->raw_latitude, vkins_status->raw_longitude, vkins_status->baro_alt, vkins_status->raw_gps_alt, vkins_status->solv_psat_num, vkins_status->solv_hsat_num, vkins_status->temperature, vkins_status->vibe_coe);
  330. }
  331. /**
  332. * @brief Encode a vkins_status struct on a channel
  333. *
  334. * @param system_id ID of this system
  335. * @param component_id ID of this component (e.g. 200 for IMU)
  336. * @param chan The MAVLink channel this message will be sent over
  337. * @param msg The MAVLink message to compress the data into
  338. * @param vkins_status C-struct to read the message contents from
  339. */
  340. static inline uint16_t mavlink_msg_vkins_status_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_vkins_status_t* vkins_status)
  341. {
  342. return mavlink_msg_vkins_status_pack_chan(system_id, component_id, chan, msg, vkins_status->time_boot_ms, vkins_status->nav_status, vkins_status->s_flag1, vkins_status->s_flag2, vkins_status->s_flag3, vkins_status->s_flag4, vkins_status->s_flag5, vkins_status->s_flag6, vkins_status->mag_calib_stage, vkins_status->g0, vkins_status->raw_latitude, vkins_status->raw_longitude, vkins_status->baro_alt, vkins_status->raw_gps_alt, vkins_status->solv_psat_num, vkins_status->solv_hsat_num, vkins_status->temperature, vkins_status->vibe_coe);
  343. }
  344. /**
  345. * @brief Encode a vkins_status struct with provided status structure
  346. *
  347. * @param system_id ID of this system
  348. * @param component_id ID of this component (e.g. 200 for IMU)
  349. * @param status MAVLink status structure
  350. * @param msg The MAVLink message to compress the data into
  351. * @param vkins_status C-struct to read the message contents from
  352. */
  353. static inline uint16_t mavlink_msg_vkins_status_encode_status(uint8_t system_id, uint8_t component_id, mavlink_status_t* _status, mavlink_message_t* msg, const mavlink_vkins_status_t* vkins_status)
  354. {
  355. return mavlink_msg_vkins_status_pack_status(system_id, component_id, _status, msg, vkins_status->time_boot_ms, vkins_status->nav_status, vkins_status->s_flag1, vkins_status->s_flag2, vkins_status->s_flag3, vkins_status->s_flag4, vkins_status->s_flag5, vkins_status->s_flag6, vkins_status->mag_calib_stage, vkins_status->g0, vkins_status->raw_latitude, vkins_status->raw_longitude, vkins_status->baro_alt, vkins_status->raw_gps_alt, vkins_status->solv_psat_num, vkins_status->solv_hsat_num, vkins_status->temperature, vkins_status->vibe_coe);
  356. }
  357. /**
  358. * @brief Send a vkins_status message
  359. * @param chan MAVLink channel to send the message
  360. *
  361. * @param time_boot_ms [ms] Timestamp in ms from system boot.
  362. * @param nav_status VKINS
  363. navigation status flag.
  364. * @param s_flag1 vinks flag1
  365. * @param s_flag2 vinks flag2.
  366. * @param s_flag3 vinks flag3.
  367. * @param s_flag4 vinks flag4.
  368. * @param s_flag5 vinks flag5.
  369. * @param s_flag6 vinks flag6.
  370. * @param mag_calib_stage vkins mag calib
  371. stage.
  372. * @param g0 [m/s/s] vkins initial calibrated gravitation acceleration.
  373. * @param raw_latitude [degE7] raw longitude for data fusion
  374. * @param raw_longitude [degE7] raw latitidue for data fusion
  375. * @param baro_alt [m] raw baromoter altitude for data fusion
  376. * @param raw_gps_alt [m] gps amsl altitude for data fusion
  377. * @param solv_psat_num satelites number for position
  378. * @param solv_hsat_num satelites number for heading
  379. * @param temperature [cdegC] temperature
  380. * @param vibe_coe
  381. */
  382. #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
  383. static inline void mavlink_msg_vkins_status_send(mavlink_channel_t chan, uint32_t time_boot_ms, uint8_t nav_status, uint8_t s_flag1, uint8_t s_flag2, uint8_t s_flag3, uint8_t s_flag4, uint8_t s_flag5, uint8_t s_flag6, uint8_t mag_calib_stage, float g0, int32_t raw_latitude, int32_t raw_longitude, float baro_alt, float raw_gps_alt, uint8_t solv_psat_num, uint8_t solv_hsat_num, int16_t temperature, uint8_t vibe_coe)
  384. {
  385. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  386. char buf[MAVLINK_MSG_ID_VKINS_STATUS_LEN];
  387. _mav_put_uint32_t(buf, 0, time_boot_ms);
  388. _mav_put_float(buf, 4, g0);
  389. _mav_put_int32_t(buf, 8, raw_latitude);
  390. _mav_put_int32_t(buf, 12, raw_longitude);
  391. _mav_put_float(buf, 16, baro_alt);
  392. _mav_put_float(buf, 20, raw_gps_alt);
  393. _mav_put_int16_t(buf, 24, temperature);
  394. _mav_put_uint8_t(buf, 26, nav_status);
  395. _mav_put_uint8_t(buf, 27, s_flag1);
  396. _mav_put_uint8_t(buf, 28, s_flag2);
  397. _mav_put_uint8_t(buf, 29, s_flag3);
  398. _mav_put_uint8_t(buf, 30, s_flag4);
  399. _mav_put_uint8_t(buf, 31, s_flag5);
  400. _mav_put_uint8_t(buf, 32, s_flag6);
  401. _mav_put_uint8_t(buf, 33, mag_calib_stage);
  402. _mav_put_uint8_t(buf, 34, solv_psat_num);
  403. _mav_put_uint8_t(buf, 35, solv_hsat_num);
  404. _mav_put_uint8_t(buf, 36, vibe_coe);
  405. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VKINS_STATUS, buf, MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKINS_STATUS_LEN, MAVLINK_MSG_ID_VKINS_STATUS_CRC);
  406. #else
  407. mavlink_vkins_status_t packet;
  408. packet.time_boot_ms = time_boot_ms;
  409. packet.g0 = g0;
  410. packet.raw_latitude = raw_latitude;
  411. packet.raw_longitude = raw_longitude;
  412. packet.baro_alt = baro_alt;
  413. packet.raw_gps_alt = raw_gps_alt;
  414. packet.temperature = temperature;
  415. packet.nav_status = nav_status;
  416. packet.s_flag1 = s_flag1;
  417. packet.s_flag2 = s_flag2;
  418. packet.s_flag3 = s_flag3;
  419. packet.s_flag4 = s_flag4;
  420. packet.s_flag5 = s_flag5;
  421. packet.s_flag6 = s_flag6;
  422. packet.mag_calib_stage = mag_calib_stage;
  423. packet.solv_psat_num = solv_psat_num;
  424. packet.solv_hsat_num = solv_hsat_num;
  425. packet.vibe_coe = vibe_coe;
  426. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VKINS_STATUS, (const char *)&packet, MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKINS_STATUS_LEN, MAVLINK_MSG_ID_VKINS_STATUS_CRC);
  427. #endif
  428. }
  429. /**
  430. * @brief Send a vkins_status message
  431. * @param chan MAVLink channel to send the message
  432. * @param struct The MAVLink struct to serialize
  433. */
  434. static inline void mavlink_msg_vkins_status_send_struct(mavlink_channel_t chan, const mavlink_vkins_status_t* vkins_status)
  435. {
  436. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  437. mavlink_msg_vkins_status_send(chan, vkins_status->time_boot_ms, vkins_status->nav_status, vkins_status->s_flag1, vkins_status->s_flag2, vkins_status->s_flag3, vkins_status->s_flag4, vkins_status->s_flag5, vkins_status->s_flag6, vkins_status->mag_calib_stage, vkins_status->g0, vkins_status->raw_latitude, vkins_status->raw_longitude, vkins_status->baro_alt, vkins_status->raw_gps_alt, vkins_status->solv_psat_num, vkins_status->solv_hsat_num, vkins_status->temperature, vkins_status->vibe_coe);
  438. #else
  439. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VKINS_STATUS, (const char *)vkins_status, MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKINS_STATUS_LEN, MAVLINK_MSG_ID_VKINS_STATUS_CRC);
  440. #endif
  441. }
  442. #if MAVLINK_MSG_ID_VKINS_STATUS_LEN <= MAVLINK_MAX_PAYLOAD_LEN
  443. /*
  444. This variant of _send() can be used to save stack space by re-using
  445. memory from the receive buffer. The caller provides a
  446. mavlink_message_t which is the size of a full mavlink message. This
  447. is usually the receive buffer for the channel, and allows a reply to an
  448. incoming message with minimum stack space usage.
  449. */
  450. static inline void mavlink_msg_vkins_status_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t time_boot_ms, uint8_t nav_status, uint8_t s_flag1, uint8_t s_flag2, uint8_t s_flag3, uint8_t s_flag4, uint8_t s_flag5, uint8_t s_flag6, uint8_t mag_calib_stage, float g0, int32_t raw_latitude, int32_t raw_longitude, float baro_alt, float raw_gps_alt, uint8_t solv_psat_num, uint8_t solv_hsat_num, int16_t temperature, uint8_t vibe_coe)
  451. {
  452. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  453. char *buf = (char *)msgbuf;
  454. _mav_put_uint32_t(buf, 0, time_boot_ms);
  455. _mav_put_float(buf, 4, g0);
  456. _mav_put_int32_t(buf, 8, raw_latitude);
  457. _mav_put_int32_t(buf, 12, raw_longitude);
  458. _mav_put_float(buf, 16, baro_alt);
  459. _mav_put_float(buf, 20, raw_gps_alt);
  460. _mav_put_int16_t(buf, 24, temperature);
  461. _mav_put_uint8_t(buf, 26, nav_status);
  462. _mav_put_uint8_t(buf, 27, s_flag1);
  463. _mav_put_uint8_t(buf, 28, s_flag2);
  464. _mav_put_uint8_t(buf, 29, s_flag3);
  465. _mav_put_uint8_t(buf, 30, s_flag4);
  466. _mav_put_uint8_t(buf, 31, s_flag5);
  467. _mav_put_uint8_t(buf, 32, s_flag6);
  468. _mav_put_uint8_t(buf, 33, mag_calib_stage);
  469. _mav_put_uint8_t(buf, 34, solv_psat_num);
  470. _mav_put_uint8_t(buf, 35, solv_hsat_num);
  471. _mav_put_uint8_t(buf, 36, vibe_coe);
  472. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VKINS_STATUS, buf, MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKINS_STATUS_LEN, MAVLINK_MSG_ID_VKINS_STATUS_CRC);
  473. #else
  474. mavlink_vkins_status_t *packet = (mavlink_vkins_status_t *)msgbuf;
  475. packet->time_boot_ms = time_boot_ms;
  476. packet->g0 = g0;
  477. packet->raw_latitude = raw_latitude;
  478. packet->raw_longitude = raw_longitude;
  479. packet->baro_alt = baro_alt;
  480. packet->raw_gps_alt = raw_gps_alt;
  481. packet->temperature = temperature;
  482. packet->nav_status = nav_status;
  483. packet->s_flag1 = s_flag1;
  484. packet->s_flag2 = s_flag2;
  485. packet->s_flag3 = s_flag3;
  486. packet->s_flag4 = s_flag4;
  487. packet->s_flag5 = s_flag5;
  488. packet->s_flag6 = s_flag6;
  489. packet->mag_calib_stage = mag_calib_stage;
  490. packet->solv_psat_num = solv_psat_num;
  491. packet->solv_hsat_num = solv_hsat_num;
  492. packet->vibe_coe = vibe_coe;
  493. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VKINS_STATUS, (const char *)packet, MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKINS_STATUS_LEN, MAVLINK_MSG_ID_VKINS_STATUS_CRC);
  494. #endif
  495. }
  496. #endif
  497. #endif
  498. // MESSAGE VKINS_STATUS UNPACKING
  499. /**
  500. * @brief Get field time_boot_ms from vkins_status message
  501. *
  502. * @return [ms] Timestamp in ms from system boot.
  503. */
  504. static inline uint32_t mavlink_msg_vkins_status_get_time_boot_ms(const mavlink_message_t* msg)
  505. {
  506. return _MAV_RETURN_uint32_t(msg, 0);
  507. }
  508. /**
  509. * @brief Get field nav_status from vkins_status message
  510. *
  511. * @return VKINS
  512. navigation status flag.
  513. */
  514. static inline uint8_t mavlink_msg_vkins_status_get_nav_status(const mavlink_message_t* msg)
  515. {
  516. return _MAV_RETURN_uint8_t(msg, 26);
  517. }
  518. /**
  519. * @brief Get field s_flag1 from vkins_status message
  520. *
  521. * @return vinks flag1
  522. */
  523. static inline uint8_t mavlink_msg_vkins_status_get_s_flag1(const mavlink_message_t* msg)
  524. {
  525. return _MAV_RETURN_uint8_t(msg, 27);
  526. }
  527. /**
  528. * @brief Get field s_flag2 from vkins_status message
  529. *
  530. * @return vinks flag2.
  531. */
  532. static inline uint8_t mavlink_msg_vkins_status_get_s_flag2(const mavlink_message_t* msg)
  533. {
  534. return _MAV_RETURN_uint8_t(msg, 28);
  535. }
  536. /**
  537. * @brief Get field s_flag3 from vkins_status message
  538. *
  539. * @return vinks flag3.
  540. */
  541. static inline uint8_t mavlink_msg_vkins_status_get_s_flag3(const mavlink_message_t* msg)
  542. {
  543. return _MAV_RETURN_uint8_t(msg, 29);
  544. }
  545. /**
  546. * @brief Get field s_flag4 from vkins_status message
  547. *
  548. * @return vinks flag4.
  549. */
  550. static inline uint8_t mavlink_msg_vkins_status_get_s_flag4(const mavlink_message_t* msg)
  551. {
  552. return _MAV_RETURN_uint8_t(msg, 30);
  553. }
  554. /**
  555. * @brief Get field s_flag5 from vkins_status message
  556. *
  557. * @return vinks flag5.
  558. */
  559. static inline uint8_t mavlink_msg_vkins_status_get_s_flag5(const mavlink_message_t* msg)
  560. {
  561. return _MAV_RETURN_uint8_t(msg, 31);
  562. }
  563. /**
  564. * @brief Get field s_flag6 from vkins_status message
  565. *
  566. * @return vinks flag6.
  567. */
  568. static inline uint8_t mavlink_msg_vkins_status_get_s_flag6(const mavlink_message_t* msg)
  569. {
  570. return _MAV_RETURN_uint8_t(msg, 32);
  571. }
  572. /**
  573. * @brief Get field mag_calib_stage from vkins_status message
  574. *
  575. * @return vkins mag calib
  576. stage.
  577. */
  578. static inline uint8_t mavlink_msg_vkins_status_get_mag_calib_stage(const mavlink_message_t* msg)
  579. {
  580. return _MAV_RETURN_uint8_t(msg, 33);
  581. }
  582. /**
  583. * @brief Get field g0 from vkins_status message
  584. *
  585. * @return [m/s/s] vkins initial calibrated gravitation acceleration.
  586. */
  587. static inline float mavlink_msg_vkins_status_get_g0(const mavlink_message_t* msg)
  588. {
  589. return _MAV_RETURN_float(msg, 4);
  590. }
  591. /**
  592. * @brief Get field raw_latitude from vkins_status message
  593. *
  594. * @return [degE7] raw longitude for data fusion
  595. */
  596. static inline int32_t mavlink_msg_vkins_status_get_raw_latitude(const mavlink_message_t* msg)
  597. {
  598. return _MAV_RETURN_int32_t(msg, 8);
  599. }
  600. /**
  601. * @brief Get field raw_longitude from vkins_status message
  602. *
  603. * @return [degE7] raw latitidue for data fusion
  604. */
  605. static inline int32_t mavlink_msg_vkins_status_get_raw_longitude(const mavlink_message_t* msg)
  606. {
  607. return _MAV_RETURN_int32_t(msg, 12);
  608. }
  609. /**
  610. * @brief Get field baro_alt from vkins_status message
  611. *
  612. * @return [m] raw baromoter altitude for data fusion
  613. */
  614. static inline float mavlink_msg_vkins_status_get_baro_alt(const mavlink_message_t* msg)
  615. {
  616. return _MAV_RETURN_float(msg, 16);
  617. }
  618. /**
  619. * @brief Get field raw_gps_alt from vkins_status message
  620. *
  621. * @return [m] gps amsl altitude for data fusion
  622. */
  623. static inline float mavlink_msg_vkins_status_get_raw_gps_alt(const mavlink_message_t* msg)
  624. {
  625. return _MAV_RETURN_float(msg, 20);
  626. }
  627. /**
  628. * @brief Get field solv_psat_num from vkins_status message
  629. *
  630. * @return satelites number for position
  631. */
  632. static inline uint8_t mavlink_msg_vkins_status_get_solv_psat_num(const mavlink_message_t* msg)
  633. {
  634. return _MAV_RETURN_uint8_t(msg, 34);
  635. }
  636. /**
  637. * @brief Get field solv_hsat_num from vkins_status message
  638. *
  639. * @return satelites number for heading
  640. */
  641. static inline uint8_t mavlink_msg_vkins_status_get_solv_hsat_num(const mavlink_message_t* msg)
  642. {
  643. return _MAV_RETURN_uint8_t(msg, 35);
  644. }
  645. /**
  646. * @brief Get field temperature from vkins_status message
  647. *
  648. * @return [cdegC] temperature
  649. */
  650. static inline int16_t mavlink_msg_vkins_status_get_temperature(const mavlink_message_t* msg)
  651. {
  652. return _MAV_RETURN_int16_t(msg, 24);
  653. }
  654. /**
  655. * @brief Get field vibe_coe from vkins_status message
  656. *
  657. * @return
  658. */
  659. static inline uint8_t mavlink_msg_vkins_status_get_vibe_coe(const mavlink_message_t* msg)
  660. {
  661. return _MAV_RETURN_uint8_t(msg, 36);
  662. }
  663. /**
  664. * @brief Decode a vkins_status message into a struct
  665. *
  666. * @param msg The message to decode
  667. * @param vkins_status C-struct to decode the message contents into
  668. */
  669. static inline void mavlink_msg_vkins_status_decode(const mavlink_message_t* msg, mavlink_vkins_status_t* vkins_status)
  670. {
  671. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  672. vkins_status->time_boot_ms = mavlink_msg_vkins_status_get_time_boot_ms(msg);
  673. vkins_status->g0 = mavlink_msg_vkins_status_get_g0(msg);
  674. vkins_status->raw_latitude = mavlink_msg_vkins_status_get_raw_latitude(msg);
  675. vkins_status->raw_longitude = mavlink_msg_vkins_status_get_raw_longitude(msg);
  676. vkins_status->baro_alt = mavlink_msg_vkins_status_get_baro_alt(msg);
  677. vkins_status->raw_gps_alt = mavlink_msg_vkins_status_get_raw_gps_alt(msg);
  678. vkins_status->temperature = mavlink_msg_vkins_status_get_temperature(msg);
  679. vkins_status->nav_status = mavlink_msg_vkins_status_get_nav_status(msg);
  680. vkins_status->s_flag1 = mavlink_msg_vkins_status_get_s_flag1(msg);
  681. vkins_status->s_flag2 = mavlink_msg_vkins_status_get_s_flag2(msg);
  682. vkins_status->s_flag3 = mavlink_msg_vkins_status_get_s_flag3(msg);
  683. vkins_status->s_flag4 = mavlink_msg_vkins_status_get_s_flag4(msg);
  684. vkins_status->s_flag5 = mavlink_msg_vkins_status_get_s_flag5(msg);
  685. vkins_status->s_flag6 = mavlink_msg_vkins_status_get_s_flag6(msg);
  686. vkins_status->mag_calib_stage = mavlink_msg_vkins_status_get_mag_calib_stage(msg);
  687. vkins_status->solv_psat_num = mavlink_msg_vkins_status_get_solv_psat_num(msg);
  688. vkins_status->solv_hsat_num = mavlink_msg_vkins_status_get_solv_hsat_num(msg);
  689. vkins_status->vibe_coe = mavlink_msg_vkins_status_get_vibe_coe(msg);
  690. #else
  691. uint8_t len = msg->len < MAVLINK_MSG_ID_VKINS_STATUS_LEN? msg->len : MAVLINK_MSG_ID_VKINS_STATUS_LEN;
  692. memset(vkins_status, 0, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
  693. memcpy(vkins_status, _MAV_PAYLOAD(msg), len);
  694. #endif
  695. }