mavlink_msg_vkins_status.h 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140
  1. #pragma once
  2. // MESSAGE VKINS_STATUS PACKING
  3. #define MAVLINK_MSG_ID_VKINS_STATUS 53000
  4. MAVPACKED(
  5. typedef struct __mavlink_vkins_status_t {
  6. uint32_t time_boot_ms; /*< [ms] Timestamp in ms from system boot.*/
  7. float g0; /*< [m/s/s] vkins initial calibrated gravitation acceleration.*/
  8. int32_t raw_latitude; /*< [degE7] raw longitude for data fusion*/
  9. int32_t raw_longitude; /*< [degE7] raw latitidue for data fusion*/
  10. float baro_alt; /*< [m] raw baromoter altitude for data fusion*/
  11. float raw_gps_alt; /*< [m] gps amsl altitude for data fusion*/
  12. int16_t temperature; /*< [degC] temperature*/
  13. uint8_t nav_status; /*< VKINS
  14. navigation status flag.*/
  15. uint8_t s_flag1; /*< vinks flag1*/
  16. uint8_t s_flag2; /*< vinks flag2.*/
  17. uint8_t s_flag3; /*< vinks flag3.*/
  18. uint8_t s_flag4; /*< vinks flag4.*/
  19. uint8_t s_flag5; /*< vinks flag5.*/
  20. uint8_t s_flag6; /*< vinks flag6.*/
  21. uint8_t mag_calib_stage; /*< vkins mag calib
  22. stage.*/
  23. uint8_t solv_psat_num; /*< satelites number for position*/
  24. uint8_t solv_hsat_num; /*< satelites number for heading*/
  25. uint8_t vibe_coe; /*< */
  26. float roll; /*< [deg] solved roll angle*/
  27. float pitch; /*< [deg] solved pitch angle*/
  28. float yaw; /*< [deg] solved yaw angle*/
  29. float ve; /*< [m/s] solved east speed*/
  30. float vn; /*< [m/s] solved north speed*/
  31. float vu; /*< [m/s] solved up speed*/
  32. float ae; /*< [m/s/s] solved east acceleration*/
  33. float an; /*< [m/s/s] solved north acceleration*/
  34. float au; /*< [m/s/s] solved up acceleration*/
  35. int32_t solv_lon; /*< [degE7] solved longitude*/
  36. int32_t solv_lat; /*< [degE7] solved lattidue*/
  37. float solv_hR; /*< [m] solved relative altitude*/
  38. uint32_t sensor_state; /*< sensor state*/
  39. uint8_t id; /*< nav id, 0 for main nav, 1 for aux nav*/
  40. }) mavlink_vkins_status_t;
  41. #define MAVLINK_MSG_ID_VKINS_STATUS_LEN 90
  42. #define MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN 37
  43. #define MAVLINK_MSG_ID_53000_LEN 90
  44. #define MAVLINK_MSG_ID_53000_MIN_LEN 37
  45. #define MAVLINK_MSG_ID_VKINS_STATUS_CRC 22
  46. #define MAVLINK_MSG_ID_53000_CRC 22
  47. #if MAVLINK_COMMAND_24BIT
  48. #define MAVLINK_MESSAGE_INFO_VKINS_STATUS { \
  49. 53000, \
  50. "VKINS_STATUS", \
  51. 32, \
  52. { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vkins_status_t, time_boot_ms) }, \
  53. { "nav_status", "0x%02x", MAVLINK_TYPE_UINT8_T, 0, 26, offsetof(mavlink_vkins_status_t, nav_status) }, \
  54. { "s_flag1", NULL, MAVLINK_TYPE_UINT8_T, 0, 27, offsetof(mavlink_vkins_status_t, s_flag1) }, \
  55. { "s_flag2", NULL, MAVLINK_TYPE_UINT8_T, 0, 28, offsetof(mavlink_vkins_status_t, s_flag2) }, \
  56. { "s_flag3", NULL, MAVLINK_TYPE_UINT8_T, 0, 29, offsetof(mavlink_vkins_status_t, s_flag3) }, \
  57. { "s_flag4", NULL, MAVLINK_TYPE_UINT8_T, 0, 30, offsetof(mavlink_vkins_status_t, s_flag4) }, \
  58. { "s_flag5", NULL, MAVLINK_TYPE_UINT8_T, 0, 31, offsetof(mavlink_vkins_status_t, s_flag5) }, \
  59. { "s_flag6", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, offsetof(mavlink_vkins_status_t, s_flag6) }, \
  60. { "mag_calib_stage", NULL, MAVLINK_TYPE_UINT8_T, 0, 33, offsetof(mavlink_vkins_status_t, mag_calib_stage) }, \
  61. { "g0", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_vkins_status_t, g0) }, \
  62. { "raw_latitude", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_vkins_status_t, raw_latitude) }, \
  63. { "raw_longitude", NULL, MAVLINK_TYPE_INT32_T, 0, 12, offsetof(mavlink_vkins_status_t, raw_longitude) }, \
  64. { "baro_alt", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_vkins_status_t, baro_alt) }, \
  65. { "raw_gps_alt", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_vkins_status_t, raw_gps_alt) }, \
  66. { "solv_psat_num", NULL, MAVLINK_TYPE_UINT8_T, 0, 34, offsetof(mavlink_vkins_status_t, solv_psat_num) }, \
  67. { "solv_hsat_num", NULL, MAVLINK_TYPE_UINT8_T, 0, 35, offsetof(mavlink_vkins_status_t, solv_hsat_num) }, \
  68. { "temperature", NULL, MAVLINK_TYPE_INT16_T, 0, 24, offsetof(mavlink_vkins_status_t, temperature) }, \
  69. { "vibe_coe", NULL, MAVLINK_TYPE_UINT8_T, 0, 36, offsetof(mavlink_vkins_status_t, vibe_coe) }, \
  70. { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 37, offsetof(mavlink_vkins_status_t, roll) }, \
  71. { "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 41, offsetof(mavlink_vkins_status_t, pitch) }, \
  72. { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 45, offsetof(mavlink_vkins_status_t, yaw) }, \
  73. { "ve", NULL, MAVLINK_TYPE_FLOAT, 0, 49, offsetof(mavlink_vkins_status_t, ve) }, \
  74. { "vn", NULL, MAVLINK_TYPE_FLOAT, 0, 53, offsetof(mavlink_vkins_status_t, vn) }, \
  75. { "vu", NULL, MAVLINK_TYPE_FLOAT, 0, 57, offsetof(mavlink_vkins_status_t, vu) }, \
  76. { "ae", NULL, MAVLINK_TYPE_FLOAT, 0, 61, offsetof(mavlink_vkins_status_t, ae) }, \
  77. { "an", NULL, MAVLINK_TYPE_FLOAT, 0, 65, offsetof(mavlink_vkins_status_t, an) }, \
  78. { "au", NULL, MAVLINK_TYPE_FLOAT, 0, 69, offsetof(mavlink_vkins_status_t, au) }, \
  79. { "solv_lon", NULL, MAVLINK_TYPE_INT32_T, 0, 73, offsetof(mavlink_vkins_status_t, solv_lon) }, \
  80. { "solv_lat", NULL, MAVLINK_TYPE_INT32_T, 0, 77, offsetof(mavlink_vkins_status_t, solv_lat) }, \
  81. { "solv_hR", NULL, MAVLINK_TYPE_FLOAT, 0, 81, offsetof(mavlink_vkins_status_t, solv_hR) }, \
  82. { "sensor_state", NULL, MAVLINK_TYPE_UINT32_T, 0, 85, offsetof(mavlink_vkins_status_t, sensor_state) }, \
  83. { "id", NULL, MAVLINK_TYPE_UINT8_T, 0, 89, offsetof(mavlink_vkins_status_t, id) }, \
  84. } \
  85. }
  86. #else
  87. #define MAVLINK_MESSAGE_INFO_VKINS_STATUS { \
  88. "VKINS_STATUS", \
  89. 32, \
  90. { { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vkins_status_t, time_boot_ms) }, \
  91. { "nav_status", "0x%02x", MAVLINK_TYPE_UINT8_T, 0, 26, offsetof(mavlink_vkins_status_t, nav_status) }, \
  92. { "s_flag1", NULL, MAVLINK_TYPE_UINT8_T, 0, 27, offsetof(mavlink_vkins_status_t, s_flag1) }, \
  93. { "s_flag2", NULL, MAVLINK_TYPE_UINT8_T, 0, 28, offsetof(mavlink_vkins_status_t, s_flag2) }, \
  94. { "s_flag3", NULL, MAVLINK_TYPE_UINT8_T, 0, 29, offsetof(mavlink_vkins_status_t, s_flag3) }, \
  95. { "s_flag4", NULL, MAVLINK_TYPE_UINT8_T, 0, 30, offsetof(mavlink_vkins_status_t, s_flag4) }, \
  96. { "s_flag5", NULL, MAVLINK_TYPE_UINT8_T, 0, 31, offsetof(mavlink_vkins_status_t, s_flag5) }, \
  97. { "s_flag6", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, offsetof(mavlink_vkins_status_t, s_flag6) }, \
  98. { "mag_calib_stage", NULL, MAVLINK_TYPE_UINT8_T, 0, 33, offsetof(mavlink_vkins_status_t, mag_calib_stage) }, \
  99. { "g0", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_vkins_status_t, g0) }, \
  100. { "raw_latitude", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_vkins_status_t, raw_latitude) }, \
  101. { "raw_longitude", NULL, MAVLINK_TYPE_INT32_T, 0, 12, offsetof(mavlink_vkins_status_t, raw_longitude) }, \
  102. { "baro_alt", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_vkins_status_t, baro_alt) }, \
  103. { "raw_gps_alt", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_vkins_status_t, raw_gps_alt) }, \
  104. { "solv_psat_num", NULL, MAVLINK_TYPE_UINT8_T, 0, 34, offsetof(mavlink_vkins_status_t, solv_psat_num) }, \
  105. { "solv_hsat_num", NULL, MAVLINK_TYPE_UINT8_T, 0, 35, offsetof(mavlink_vkins_status_t, solv_hsat_num) }, \
  106. { "temperature", NULL, MAVLINK_TYPE_INT16_T, 0, 24, offsetof(mavlink_vkins_status_t, temperature) }, \
  107. { "vibe_coe", NULL, MAVLINK_TYPE_UINT8_T, 0, 36, offsetof(mavlink_vkins_status_t, vibe_coe) }, \
  108. { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 37, offsetof(mavlink_vkins_status_t, roll) }, \
  109. { "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 41, offsetof(mavlink_vkins_status_t, pitch) }, \
  110. { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 45, offsetof(mavlink_vkins_status_t, yaw) }, \
  111. { "ve", NULL, MAVLINK_TYPE_FLOAT, 0, 49, offsetof(mavlink_vkins_status_t, ve) }, \
  112. { "vn", NULL, MAVLINK_TYPE_FLOAT, 0, 53, offsetof(mavlink_vkins_status_t, vn) }, \
  113. { "vu", NULL, MAVLINK_TYPE_FLOAT, 0, 57, offsetof(mavlink_vkins_status_t, vu) }, \
  114. { "ae", NULL, MAVLINK_TYPE_FLOAT, 0, 61, offsetof(mavlink_vkins_status_t, ae) }, \
  115. { "an", NULL, MAVLINK_TYPE_FLOAT, 0, 65, offsetof(mavlink_vkins_status_t, an) }, \
  116. { "au", NULL, MAVLINK_TYPE_FLOAT, 0, 69, offsetof(mavlink_vkins_status_t, au) }, \
  117. { "solv_lon", NULL, MAVLINK_TYPE_INT32_T, 0, 73, offsetof(mavlink_vkins_status_t, solv_lon) }, \
  118. { "solv_lat", NULL, MAVLINK_TYPE_INT32_T, 0, 77, offsetof(mavlink_vkins_status_t, solv_lat) }, \
  119. { "solv_hR", NULL, MAVLINK_TYPE_FLOAT, 0, 81, offsetof(mavlink_vkins_status_t, solv_hR) }, \
  120. { "sensor_state", NULL, MAVLINK_TYPE_UINT32_T, 0, 85, offsetof(mavlink_vkins_status_t, sensor_state) }, \
  121. { "id", NULL, MAVLINK_TYPE_UINT8_T, 0, 89, offsetof(mavlink_vkins_status_t, id) }, \
  122. } \
  123. }
  124. #endif
  125. /**
  126. * @brief Pack a vkins_status message
  127. * @param system_id ID of this system
  128. * @param component_id ID of this component (e.g. 200 for IMU)
  129. * @param msg The MAVLink message to compress the data into
  130. *
  131. * @param time_boot_ms [ms] Timestamp in ms from system boot.
  132. * @param nav_status VKINS
  133. navigation status flag.
  134. * @param s_flag1 vinks flag1
  135. * @param s_flag2 vinks flag2.
  136. * @param s_flag3 vinks flag3.
  137. * @param s_flag4 vinks flag4.
  138. * @param s_flag5 vinks flag5.
  139. * @param s_flag6 vinks flag6.
  140. * @param mag_calib_stage vkins mag calib
  141. stage.
  142. * @param g0 [m/s/s] vkins initial calibrated gravitation acceleration.
  143. * @param raw_latitude [degE7] raw longitude for data fusion
  144. * @param raw_longitude [degE7] raw latitidue for data fusion
  145. * @param baro_alt [m] raw baromoter altitude for data fusion
  146. * @param raw_gps_alt [m] gps amsl altitude for data fusion
  147. * @param solv_psat_num satelites number for position
  148. * @param solv_hsat_num satelites number for heading
  149. * @param temperature [degC] temperature
  150. * @param vibe_coe
  151. * @param roll [deg] solved roll angle
  152. * @param pitch [deg] solved pitch angle
  153. * @param yaw [deg] solved yaw angle
  154. * @param ve [m/s] solved east speed
  155. * @param vn [m/s] solved north speed
  156. * @param vu [m/s] solved up speed
  157. * @param ae [m/s/s] solved east acceleration
  158. * @param an [m/s/s] solved north acceleration
  159. * @param au [m/s/s] solved up acceleration
  160. * @param solv_lon [degE7] solved longitude
  161. * @param solv_lat [degE7] solved lattidue
  162. * @param solv_hR [m] solved relative altitude
  163. * @param sensor_state sensor state
  164. * @param id nav id, 0 for main nav, 1 for aux nav
  165. * @return length of the message in bytes (excluding serial stream start sign)
  166. */
  167. static inline uint16_t mavlink_msg_vkins_status_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
  168. 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, float roll, float pitch, float yaw, float ve, float vn, float vu, float ae, float an, float au, int32_t solv_lon, int32_t solv_lat, float solv_hR, uint32_t sensor_state, uint8_t id)
  169. {
  170. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  171. char buf[MAVLINK_MSG_ID_VKINS_STATUS_LEN];
  172. _mav_put_uint32_t(buf, 0, time_boot_ms);
  173. _mav_put_float(buf, 4, g0);
  174. _mav_put_int32_t(buf, 8, raw_latitude);
  175. _mav_put_int32_t(buf, 12, raw_longitude);
  176. _mav_put_float(buf, 16, baro_alt);
  177. _mav_put_float(buf, 20, raw_gps_alt);
  178. _mav_put_int16_t(buf, 24, temperature);
  179. _mav_put_uint8_t(buf, 26, nav_status);
  180. _mav_put_uint8_t(buf, 27, s_flag1);
  181. _mav_put_uint8_t(buf, 28, s_flag2);
  182. _mav_put_uint8_t(buf, 29, s_flag3);
  183. _mav_put_uint8_t(buf, 30, s_flag4);
  184. _mav_put_uint8_t(buf, 31, s_flag5);
  185. _mav_put_uint8_t(buf, 32, s_flag6);
  186. _mav_put_uint8_t(buf, 33, mag_calib_stage);
  187. _mav_put_uint8_t(buf, 34, solv_psat_num);
  188. _mav_put_uint8_t(buf, 35, solv_hsat_num);
  189. _mav_put_uint8_t(buf, 36, vibe_coe);
  190. _mav_put_float(buf, 37, roll);
  191. _mav_put_float(buf, 41, pitch);
  192. _mav_put_float(buf, 45, yaw);
  193. _mav_put_float(buf, 49, ve);
  194. _mav_put_float(buf, 53, vn);
  195. _mav_put_float(buf, 57, vu);
  196. _mav_put_float(buf, 61, ae);
  197. _mav_put_float(buf, 65, an);
  198. _mav_put_float(buf, 69, au);
  199. _mav_put_int32_t(buf, 73, solv_lon);
  200. _mav_put_int32_t(buf, 77, solv_lat);
  201. _mav_put_float(buf, 81, solv_hR);
  202. _mav_put_uint32_t(buf, 85, sensor_state);
  203. _mav_put_uint8_t(buf, 89, id);
  204. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
  205. #else
  206. mavlink_vkins_status_t packet;
  207. packet.time_boot_ms = time_boot_ms;
  208. packet.g0 = g0;
  209. packet.raw_latitude = raw_latitude;
  210. packet.raw_longitude = raw_longitude;
  211. packet.baro_alt = baro_alt;
  212. packet.raw_gps_alt = raw_gps_alt;
  213. packet.temperature = temperature;
  214. packet.nav_status = nav_status;
  215. packet.s_flag1 = s_flag1;
  216. packet.s_flag2 = s_flag2;
  217. packet.s_flag3 = s_flag3;
  218. packet.s_flag4 = s_flag4;
  219. packet.s_flag5 = s_flag5;
  220. packet.s_flag6 = s_flag6;
  221. packet.mag_calib_stage = mag_calib_stage;
  222. packet.solv_psat_num = solv_psat_num;
  223. packet.solv_hsat_num = solv_hsat_num;
  224. packet.vibe_coe = vibe_coe;
  225. packet.roll = roll;
  226. packet.pitch = pitch;
  227. packet.yaw = yaw;
  228. packet.ve = ve;
  229. packet.vn = vn;
  230. packet.vu = vu;
  231. packet.ae = ae;
  232. packet.an = an;
  233. packet.au = au;
  234. packet.solv_lon = solv_lon;
  235. packet.solv_lat = solv_lat;
  236. packet.solv_hR = solv_hR;
  237. packet.sensor_state = sensor_state;
  238. packet.id = id;
  239. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
  240. #endif
  241. msg->msgid = MAVLINK_MSG_ID_VKINS_STATUS;
  242. 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);
  243. }
  244. /**
  245. * @brief Pack a vkins_status message
  246. * @param system_id ID of this system
  247. * @param component_id ID of this component (e.g. 200 for IMU)
  248. * @param status MAVLink status structure
  249. * @param msg The MAVLink message to compress the data into
  250. *
  251. * @param time_boot_ms [ms] Timestamp in ms from system boot.
  252. * @param nav_status VKINS
  253. navigation status flag.
  254. * @param s_flag1 vinks flag1
  255. * @param s_flag2 vinks flag2.
  256. * @param s_flag3 vinks flag3.
  257. * @param s_flag4 vinks flag4.
  258. * @param s_flag5 vinks flag5.
  259. * @param s_flag6 vinks flag6.
  260. * @param mag_calib_stage vkins mag calib
  261. stage.
  262. * @param g0 [m/s/s] vkins initial calibrated gravitation acceleration.
  263. * @param raw_latitude [degE7] raw longitude for data fusion
  264. * @param raw_longitude [degE7] raw latitidue for data fusion
  265. * @param baro_alt [m] raw baromoter altitude for data fusion
  266. * @param raw_gps_alt [m] gps amsl altitude for data fusion
  267. * @param solv_psat_num satelites number for position
  268. * @param solv_hsat_num satelites number for heading
  269. * @param temperature [degC] temperature
  270. * @param vibe_coe
  271. * @param roll [deg] solved roll angle
  272. * @param pitch [deg] solved pitch angle
  273. * @param yaw [deg] solved yaw angle
  274. * @param ve [m/s] solved east speed
  275. * @param vn [m/s] solved north speed
  276. * @param vu [m/s] solved up speed
  277. * @param ae [m/s/s] solved east acceleration
  278. * @param an [m/s/s] solved north acceleration
  279. * @param au [m/s/s] solved up acceleration
  280. * @param solv_lon [degE7] solved longitude
  281. * @param solv_lat [degE7] solved lattidue
  282. * @param solv_hR [m] solved relative altitude
  283. * @param sensor_state sensor state
  284. * @param id nav id, 0 for main nav, 1 for aux nav
  285. * @return length of the message in bytes (excluding serial stream start sign)
  286. */
  287. 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,
  288. 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, float roll, float pitch, float yaw, float ve, float vn, float vu, float ae, float an, float au, int32_t solv_lon, int32_t solv_lat, float solv_hR, uint32_t sensor_state, uint8_t id)
  289. {
  290. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  291. char buf[MAVLINK_MSG_ID_VKINS_STATUS_LEN];
  292. _mav_put_uint32_t(buf, 0, time_boot_ms);
  293. _mav_put_float(buf, 4, g0);
  294. _mav_put_int32_t(buf, 8, raw_latitude);
  295. _mav_put_int32_t(buf, 12, raw_longitude);
  296. _mav_put_float(buf, 16, baro_alt);
  297. _mav_put_float(buf, 20, raw_gps_alt);
  298. _mav_put_int16_t(buf, 24, temperature);
  299. _mav_put_uint8_t(buf, 26, nav_status);
  300. _mav_put_uint8_t(buf, 27, s_flag1);
  301. _mav_put_uint8_t(buf, 28, s_flag2);
  302. _mav_put_uint8_t(buf, 29, s_flag3);
  303. _mav_put_uint8_t(buf, 30, s_flag4);
  304. _mav_put_uint8_t(buf, 31, s_flag5);
  305. _mav_put_uint8_t(buf, 32, s_flag6);
  306. _mav_put_uint8_t(buf, 33, mag_calib_stage);
  307. _mav_put_uint8_t(buf, 34, solv_psat_num);
  308. _mav_put_uint8_t(buf, 35, solv_hsat_num);
  309. _mav_put_uint8_t(buf, 36, vibe_coe);
  310. _mav_put_float(buf, 37, roll);
  311. _mav_put_float(buf, 41, pitch);
  312. _mav_put_float(buf, 45, yaw);
  313. _mav_put_float(buf, 49, ve);
  314. _mav_put_float(buf, 53, vn);
  315. _mav_put_float(buf, 57, vu);
  316. _mav_put_float(buf, 61, ae);
  317. _mav_put_float(buf, 65, an);
  318. _mav_put_float(buf, 69, au);
  319. _mav_put_int32_t(buf, 73, solv_lon);
  320. _mav_put_int32_t(buf, 77, solv_lat);
  321. _mav_put_float(buf, 81, solv_hR);
  322. _mav_put_uint32_t(buf, 85, sensor_state);
  323. _mav_put_uint8_t(buf, 89, id);
  324. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
  325. #else
  326. mavlink_vkins_status_t packet;
  327. packet.time_boot_ms = time_boot_ms;
  328. packet.g0 = g0;
  329. packet.raw_latitude = raw_latitude;
  330. packet.raw_longitude = raw_longitude;
  331. packet.baro_alt = baro_alt;
  332. packet.raw_gps_alt = raw_gps_alt;
  333. packet.temperature = temperature;
  334. packet.nav_status = nav_status;
  335. packet.s_flag1 = s_flag1;
  336. packet.s_flag2 = s_flag2;
  337. packet.s_flag3 = s_flag3;
  338. packet.s_flag4 = s_flag4;
  339. packet.s_flag5 = s_flag5;
  340. packet.s_flag6 = s_flag6;
  341. packet.mag_calib_stage = mag_calib_stage;
  342. packet.solv_psat_num = solv_psat_num;
  343. packet.solv_hsat_num = solv_hsat_num;
  344. packet.vibe_coe = vibe_coe;
  345. packet.roll = roll;
  346. packet.pitch = pitch;
  347. packet.yaw = yaw;
  348. packet.ve = ve;
  349. packet.vn = vn;
  350. packet.vu = vu;
  351. packet.ae = ae;
  352. packet.an = an;
  353. packet.au = au;
  354. packet.solv_lon = solv_lon;
  355. packet.solv_lat = solv_lat;
  356. packet.solv_hR = solv_hR;
  357. packet.sensor_state = sensor_state;
  358. packet.id = id;
  359. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
  360. #endif
  361. msg->msgid = MAVLINK_MSG_ID_VKINS_STATUS;
  362. #if MAVLINK_CRC_EXTRA
  363. 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);
  364. #else
  365. return mavlink_finalize_message_buffer(msg, system_id, component_id, _status, MAVLINK_MSG_ID_VKINS_STATUS_MIN_LEN, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
  366. #endif
  367. }
  368. /**
  369. * @brief Pack a vkins_status message on a channel
  370. * @param system_id ID of this system
  371. * @param component_id ID of this component (e.g. 200 for IMU)
  372. * @param chan The MAVLink channel this message will be sent over
  373. * @param msg The MAVLink message to compress the data into
  374. * @param time_boot_ms [ms] Timestamp in ms from system boot.
  375. * @param nav_status VKINS
  376. navigation status flag.
  377. * @param s_flag1 vinks flag1
  378. * @param s_flag2 vinks flag2.
  379. * @param s_flag3 vinks flag3.
  380. * @param s_flag4 vinks flag4.
  381. * @param s_flag5 vinks flag5.
  382. * @param s_flag6 vinks flag6.
  383. * @param mag_calib_stage vkins mag calib
  384. stage.
  385. * @param g0 [m/s/s] vkins initial calibrated gravitation acceleration.
  386. * @param raw_latitude [degE7] raw longitude for data fusion
  387. * @param raw_longitude [degE7] raw latitidue for data fusion
  388. * @param baro_alt [m] raw baromoter altitude for data fusion
  389. * @param raw_gps_alt [m] gps amsl altitude for data fusion
  390. * @param solv_psat_num satelites number for position
  391. * @param solv_hsat_num satelites number for heading
  392. * @param temperature [degC] temperature
  393. * @param vibe_coe
  394. * @param roll [deg] solved roll angle
  395. * @param pitch [deg] solved pitch angle
  396. * @param yaw [deg] solved yaw angle
  397. * @param ve [m/s] solved east speed
  398. * @param vn [m/s] solved north speed
  399. * @param vu [m/s] solved up speed
  400. * @param ae [m/s/s] solved east acceleration
  401. * @param an [m/s/s] solved north acceleration
  402. * @param au [m/s/s] solved up acceleration
  403. * @param solv_lon [degE7] solved longitude
  404. * @param solv_lat [degE7] solved lattidue
  405. * @param solv_hR [m] solved relative altitude
  406. * @param sensor_state sensor state
  407. * @param id nav id, 0 for main nav, 1 for aux nav
  408. * @return length of the message in bytes (excluding serial stream start sign)
  409. */
  410. static inline uint16_t mavlink_msg_vkins_status_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
  411. mavlink_message_t* msg,
  412. 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,float roll,float pitch,float yaw,float ve,float vn,float vu,float ae,float an,float au,int32_t solv_lon,int32_t solv_lat,float solv_hR,uint32_t sensor_state,uint8_t id)
  413. {
  414. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  415. char buf[MAVLINK_MSG_ID_VKINS_STATUS_LEN];
  416. _mav_put_uint32_t(buf, 0, time_boot_ms);
  417. _mav_put_float(buf, 4, g0);
  418. _mav_put_int32_t(buf, 8, raw_latitude);
  419. _mav_put_int32_t(buf, 12, raw_longitude);
  420. _mav_put_float(buf, 16, baro_alt);
  421. _mav_put_float(buf, 20, raw_gps_alt);
  422. _mav_put_int16_t(buf, 24, temperature);
  423. _mav_put_uint8_t(buf, 26, nav_status);
  424. _mav_put_uint8_t(buf, 27, s_flag1);
  425. _mav_put_uint8_t(buf, 28, s_flag2);
  426. _mav_put_uint8_t(buf, 29, s_flag3);
  427. _mav_put_uint8_t(buf, 30, s_flag4);
  428. _mav_put_uint8_t(buf, 31, s_flag5);
  429. _mav_put_uint8_t(buf, 32, s_flag6);
  430. _mav_put_uint8_t(buf, 33, mag_calib_stage);
  431. _mav_put_uint8_t(buf, 34, solv_psat_num);
  432. _mav_put_uint8_t(buf, 35, solv_hsat_num);
  433. _mav_put_uint8_t(buf, 36, vibe_coe);
  434. _mav_put_float(buf, 37, roll);
  435. _mav_put_float(buf, 41, pitch);
  436. _mav_put_float(buf, 45, yaw);
  437. _mav_put_float(buf, 49, ve);
  438. _mav_put_float(buf, 53, vn);
  439. _mav_put_float(buf, 57, vu);
  440. _mav_put_float(buf, 61, ae);
  441. _mav_put_float(buf, 65, an);
  442. _mav_put_float(buf, 69, au);
  443. _mav_put_int32_t(buf, 73, solv_lon);
  444. _mav_put_int32_t(buf, 77, solv_lat);
  445. _mav_put_float(buf, 81, solv_hR);
  446. _mav_put_uint32_t(buf, 85, sensor_state);
  447. _mav_put_uint8_t(buf, 89, id);
  448. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
  449. #else
  450. mavlink_vkins_status_t packet;
  451. packet.time_boot_ms = time_boot_ms;
  452. packet.g0 = g0;
  453. packet.raw_latitude = raw_latitude;
  454. packet.raw_longitude = raw_longitude;
  455. packet.baro_alt = baro_alt;
  456. packet.raw_gps_alt = raw_gps_alt;
  457. packet.temperature = temperature;
  458. packet.nav_status = nav_status;
  459. packet.s_flag1 = s_flag1;
  460. packet.s_flag2 = s_flag2;
  461. packet.s_flag3 = s_flag3;
  462. packet.s_flag4 = s_flag4;
  463. packet.s_flag5 = s_flag5;
  464. packet.s_flag6 = s_flag6;
  465. packet.mag_calib_stage = mag_calib_stage;
  466. packet.solv_psat_num = solv_psat_num;
  467. packet.solv_hsat_num = solv_hsat_num;
  468. packet.vibe_coe = vibe_coe;
  469. packet.roll = roll;
  470. packet.pitch = pitch;
  471. packet.yaw = yaw;
  472. packet.ve = ve;
  473. packet.vn = vn;
  474. packet.vu = vu;
  475. packet.ae = ae;
  476. packet.an = an;
  477. packet.au = au;
  478. packet.solv_lon = solv_lon;
  479. packet.solv_lat = solv_lat;
  480. packet.solv_hR = solv_hR;
  481. packet.sensor_state = sensor_state;
  482. packet.id = id;
  483. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
  484. #endif
  485. msg->msgid = MAVLINK_MSG_ID_VKINS_STATUS;
  486. 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);
  487. }
  488. /**
  489. * @brief Encode a vkins_status struct
  490. *
  491. * @param system_id ID of this system
  492. * @param component_id ID of this component (e.g. 200 for IMU)
  493. * @param msg The MAVLink message to compress the data into
  494. * @param vkins_status C-struct to read the message contents from
  495. */
  496. 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)
  497. {
  498. 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, vkins_status->roll, vkins_status->pitch, vkins_status->yaw, vkins_status->ve, vkins_status->vn, vkins_status->vu, vkins_status->ae, vkins_status->an, vkins_status->au, vkins_status->solv_lon, vkins_status->solv_lat, vkins_status->solv_hR, vkins_status->sensor_state, vkins_status->id);
  499. }
  500. /**
  501. * @brief Encode a vkins_status struct on a channel
  502. *
  503. * @param system_id ID of this system
  504. * @param component_id ID of this component (e.g. 200 for IMU)
  505. * @param chan The MAVLink channel this message will be sent over
  506. * @param msg The MAVLink message to compress the data into
  507. * @param vkins_status C-struct to read the message contents from
  508. */
  509. 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)
  510. {
  511. 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, vkins_status->roll, vkins_status->pitch, vkins_status->yaw, vkins_status->ve, vkins_status->vn, vkins_status->vu, vkins_status->ae, vkins_status->an, vkins_status->au, vkins_status->solv_lon, vkins_status->solv_lat, vkins_status->solv_hR, vkins_status->sensor_state, vkins_status->id);
  512. }
  513. /**
  514. * @brief Encode a vkins_status struct with provided status structure
  515. *
  516. * @param system_id ID of this system
  517. * @param component_id ID of this component (e.g. 200 for IMU)
  518. * @param status MAVLink status structure
  519. * @param msg The MAVLink message to compress the data into
  520. * @param vkins_status C-struct to read the message contents from
  521. */
  522. 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)
  523. {
  524. 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, vkins_status->roll, vkins_status->pitch, vkins_status->yaw, vkins_status->ve, vkins_status->vn, vkins_status->vu, vkins_status->ae, vkins_status->an, vkins_status->au, vkins_status->solv_lon, vkins_status->solv_lat, vkins_status->solv_hR, vkins_status->sensor_state, vkins_status->id);
  525. }
  526. /**
  527. * @brief Send a vkins_status message
  528. * @param chan MAVLink channel to send the message
  529. *
  530. * @param time_boot_ms [ms] Timestamp in ms from system boot.
  531. * @param nav_status VKINS
  532. navigation status flag.
  533. * @param s_flag1 vinks flag1
  534. * @param s_flag2 vinks flag2.
  535. * @param s_flag3 vinks flag3.
  536. * @param s_flag4 vinks flag4.
  537. * @param s_flag5 vinks flag5.
  538. * @param s_flag6 vinks flag6.
  539. * @param mag_calib_stage vkins mag calib
  540. stage.
  541. * @param g0 [m/s/s] vkins initial calibrated gravitation acceleration.
  542. * @param raw_latitude [degE7] raw longitude for data fusion
  543. * @param raw_longitude [degE7] raw latitidue for data fusion
  544. * @param baro_alt [m] raw baromoter altitude for data fusion
  545. * @param raw_gps_alt [m] gps amsl altitude for data fusion
  546. * @param solv_psat_num satelites number for position
  547. * @param solv_hsat_num satelites number for heading
  548. * @param temperature [degC] temperature
  549. * @param vibe_coe
  550. * @param roll [deg] solved roll angle
  551. * @param pitch [deg] solved pitch angle
  552. * @param yaw [deg] solved yaw angle
  553. * @param ve [m/s] solved east speed
  554. * @param vn [m/s] solved north speed
  555. * @param vu [m/s] solved up speed
  556. * @param ae [m/s/s] solved east acceleration
  557. * @param an [m/s/s] solved north acceleration
  558. * @param au [m/s/s] solved up acceleration
  559. * @param solv_lon [degE7] solved longitude
  560. * @param solv_lat [degE7] solved lattidue
  561. * @param solv_hR [m] solved relative altitude
  562. * @param sensor_state sensor state
  563. * @param id nav id, 0 for main nav, 1 for aux nav
  564. */
  565. #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
  566. 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, float roll, float pitch, float yaw, float ve, float vn, float vu, float ae, float an, float au, int32_t solv_lon, int32_t solv_lat, float solv_hR, uint32_t sensor_state, uint8_t id)
  567. {
  568. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  569. char buf[MAVLINK_MSG_ID_VKINS_STATUS_LEN];
  570. _mav_put_uint32_t(buf, 0, time_boot_ms);
  571. _mav_put_float(buf, 4, g0);
  572. _mav_put_int32_t(buf, 8, raw_latitude);
  573. _mav_put_int32_t(buf, 12, raw_longitude);
  574. _mav_put_float(buf, 16, baro_alt);
  575. _mav_put_float(buf, 20, raw_gps_alt);
  576. _mav_put_int16_t(buf, 24, temperature);
  577. _mav_put_uint8_t(buf, 26, nav_status);
  578. _mav_put_uint8_t(buf, 27, s_flag1);
  579. _mav_put_uint8_t(buf, 28, s_flag2);
  580. _mav_put_uint8_t(buf, 29, s_flag3);
  581. _mav_put_uint8_t(buf, 30, s_flag4);
  582. _mav_put_uint8_t(buf, 31, s_flag5);
  583. _mav_put_uint8_t(buf, 32, s_flag6);
  584. _mav_put_uint8_t(buf, 33, mag_calib_stage);
  585. _mav_put_uint8_t(buf, 34, solv_psat_num);
  586. _mav_put_uint8_t(buf, 35, solv_hsat_num);
  587. _mav_put_uint8_t(buf, 36, vibe_coe);
  588. _mav_put_float(buf, 37, roll);
  589. _mav_put_float(buf, 41, pitch);
  590. _mav_put_float(buf, 45, yaw);
  591. _mav_put_float(buf, 49, ve);
  592. _mav_put_float(buf, 53, vn);
  593. _mav_put_float(buf, 57, vu);
  594. _mav_put_float(buf, 61, ae);
  595. _mav_put_float(buf, 65, an);
  596. _mav_put_float(buf, 69, au);
  597. _mav_put_int32_t(buf, 73, solv_lon);
  598. _mav_put_int32_t(buf, 77, solv_lat);
  599. _mav_put_float(buf, 81, solv_hR);
  600. _mav_put_uint32_t(buf, 85, sensor_state);
  601. _mav_put_uint8_t(buf, 89, id);
  602. _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);
  603. #else
  604. mavlink_vkins_status_t packet;
  605. packet.time_boot_ms = time_boot_ms;
  606. packet.g0 = g0;
  607. packet.raw_latitude = raw_latitude;
  608. packet.raw_longitude = raw_longitude;
  609. packet.baro_alt = baro_alt;
  610. packet.raw_gps_alt = raw_gps_alt;
  611. packet.temperature = temperature;
  612. packet.nav_status = nav_status;
  613. packet.s_flag1 = s_flag1;
  614. packet.s_flag2 = s_flag2;
  615. packet.s_flag3 = s_flag3;
  616. packet.s_flag4 = s_flag4;
  617. packet.s_flag5 = s_flag5;
  618. packet.s_flag6 = s_flag6;
  619. packet.mag_calib_stage = mag_calib_stage;
  620. packet.solv_psat_num = solv_psat_num;
  621. packet.solv_hsat_num = solv_hsat_num;
  622. packet.vibe_coe = vibe_coe;
  623. packet.roll = roll;
  624. packet.pitch = pitch;
  625. packet.yaw = yaw;
  626. packet.ve = ve;
  627. packet.vn = vn;
  628. packet.vu = vu;
  629. packet.ae = ae;
  630. packet.an = an;
  631. packet.au = au;
  632. packet.solv_lon = solv_lon;
  633. packet.solv_lat = solv_lat;
  634. packet.solv_hR = solv_hR;
  635. packet.sensor_state = sensor_state;
  636. packet.id = id;
  637. _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);
  638. #endif
  639. }
  640. /**
  641. * @brief Send a vkins_status message
  642. * @param chan MAVLink channel to send the message
  643. * @param struct The MAVLink struct to serialize
  644. */
  645. static inline void mavlink_msg_vkins_status_send_struct(mavlink_channel_t chan, const mavlink_vkins_status_t* vkins_status)
  646. {
  647. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  648. 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, vkins_status->roll, vkins_status->pitch, vkins_status->yaw, vkins_status->ve, vkins_status->vn, vkins_status->vu, vkins_status->ae, vkins_status->an, vkins_status->au, vkins_status->solv_lon, vkins_status->solv_lat, vkins_status->solv_hR, vkins_status->sensor_state, vkins_status->id);
  649. #else
  650. _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);
  651. #endif
  652. }
  653. #if MAVLINK_MSG_ID_VKINS_STATUS_LEN <= MAVLINK_MAX_PAYLOAD_LEN
  654. /*
  655. This variant of _send() can be used to save stack space by re-using
  656. memory from the receive buffer. The caller provides a
  657. mavlink_message_t which is the size of a full mavlink message. This
  658. is usually the receive buffer for the channel, and allows a reply to an
  659. incoming message with minimum stack space usage.
  660. */
  661. 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, float roll, float pitch, float yaw, float ve, float vn, float vu, float ae, float an, float au, int32_t solv_lon, int32_t solv_lat, float solv_hR, uint32_t sensor_state, uint8_t id)
  662. {
  663. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  664. char *buf = (char *)msgbuf;
  665. _mav_put_uint32_t(buf, 0, time_boot_ms);
  666. _mav_put_float(buf, 4, g0);
  667. _mav_put_int32_t(buf, 8, raw_latitude);
  668. _mav_put_int32_t(buf, 12, raw_longitude);
  669. _mav_put_float(buf, 16, baro_alt);
  670. _mav_put_float(buf, 20, raw_gps_alt);
  671. _mav_put_int16_t(buf, 24, temperature);
  672. _mav_put_uint8_t(buf, 26, nav_status);
  673. _mav_put_uint8_t(buf, 27, s_flag1);
  674. _mav_put_uint8_t(buf, 28, s_flag2);
  675. _mav_put_uint8_t(buf, 29, s_flag3);
  676. _mav_put_uint8_t(buf, 30, s_flag4);
  677. _mav_put_uint8_t(buf, 31, s_flag5);
  678. _mav_put_uint8_t(buf, 32, s_flag6);
  679. _mav_put_uint8_t(buf, 33, mag_calib_stage);
  680. _mav_put_uint8_t(buf, 34, solv_psat_num);
  681. _mav_put_uint8_t(buf, 35, solv_hsat_num);
  682. _mav_put_uint8_t(buf, 36, vibe_coe);
  683. _mav_put_float(buf, 37, roll);
  684. _mav_put_float(buf, 41, pitch);
  685. _mav_put_float(buf, 45, yaw);
  686. _mav_put_float(buf, 49, ve);
  687. _mav_put_float(buf, 53, vn);
  688. _mav_put_float(buf, 57, vu);
  689. _mav_put_float(buf, 61, ae);
  690. _mav_put_float(buf, 65, an);
  691. _mav_put_float(buf, 69, au);
  692. _mav_put_int32_t(buf, 73, solv_lon);
  693. _mav_put_int32_t(buf, 77, solv_lat);
  694. _mav_put_float(buf, 81, solv_hR);
  695. _mav_put_uint32_t(buf, 85, sensor_state);
  696. _mav_put_uint8_t(buf, 89, id);
  697. _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);
  698. #else
  699. mavlink_vkins_status_t *packet = (mavlink_vkins_status_t *)msgbuf;
  700. packet->time_boot_ms = time_boot_ms;
  701. packet->g0 = g0;
  702. packet->raw_latitude = raw_latitude;
  703. packet->raw_longitude = raw_longitude;
  704. packet->baro_alt = baro_alt;
  705. packet->raw_gps_alt = raw_gps_alt;
  706. packet->temperature = temperature;
  707. packet->nav_status = nav_status;
  708. packet->s_flag1 = s_flag1;
  709. packet->s_flag2 = s_flag2;
  710. packet->s_flag3 = s_flag3;
  711. packet->s_flag4 = s_flag4;
  712. packet->s_flag5 = s_flag5;
  713. packet->s_flag6 = s_flag6;
  714. packet->mag_calib_stage = mag_calib_stage;
  715. packet->solv_psat_num = solv_psat_num;
  716. packet->solv_hsat_num = solv_hsat_num;
  717. packet->vibe_coe = vibe_coe;
  718. packet->roll = roll;
  719. packet->pitch = pitch;
  720. packet->yaw = yaw;
  721. packet->ve = ve;
  722. packet->vn = vn;
  723. packet->vu = vu;
  724. packet->ae = ae;
  725. packet->an = an;
  726. packet->au = au;
  727. packet->solv_lon = solv_lon;
  728. packet->solv_lat = solv_lat;
  729. packet->solv_hR = solv_hR;
  730. packet->sensor_state = sensor_state;
  731. packet->id = id;
  732. _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);
  733. #endif
  734. }
  735. #endif
  736. #endif
  737. // MESSAGE VKINS_STATUS UNPACKING
  738. /**
  739. * @brief Get field time_boot_ms from vkins_status message
  740. *
  741. * @return [ms] Timestamp in ms from system boot.
  742. */
  743. static inline uint32_t mavlink_msg_vkins_status_get_time_boot_ms(const mavlink_message_t* msg)
  744. {
  745. return _MAV_RETURN_uint32_t(msg, 0);
  746. }
  747. /**
  748. * @brief Get field nav_status from vkins_status message
  749. *
  750. * @return VKINS
  751. navigation status flag.
  752. */
  753. static inline uint8_t mavlink_msg_vkins_status_get_nav_status(const mavlink_message_t* msg)
  754. {
  755. return _MAV_RETURN_uint8_t(msg, 26);
  756. }
  757. /**
  758. * @brief Get field s_flag1 from vkins_status message
  759. *
  760. * @return vinks flag1
  761. */
  762. static inline uint8_t mavlink_msg_vkins_status_get_s_flag1(const mavlink_message_t* msg)
  763. {
  764. return _MAV_RETURN_uint8_t(msg, 27);
  765. }
  766. /**
  767. * @brief Get field s_flag2 from vkins_status message
  768. *
  769. * @return vinks flag2.
  770. */
  771. static inline uint8_t mavlink_msg_vkins_status_get_s_flag2(const mavlink_message_t* msg)
  772. {
  773. return _MAV_RETURN_uint8_t(msg, 28);
  774. }
  775. /**
  776. * @brief Get field s_flag3 from vkins_status message
  777. *
  778. * @return vinks flag3.
  779. */
  780. static inline uint8_t mavlink_msg_vkins_status_get_s_flag3(const mavlink_message_t* msg)
  781. {
  782. return _MAV_RETURN_uint8_t(msg, 29);
  783. }
  784. /**
  785. * @brief Get field s_flag4 from vkins_status message
  786. *
  787. * @return vinks flag4.
  788. */
  789. static inline uint8_t mavlink_msg_vkins_status_get_s_flag4(const mavlink_message_t* msg)
  790. {
  791. return _MAV_RETURN_uint8_t(msg, 30);
  792. }
  793. /**
  794. * @brief Get field s_flag5 from vkins_status message
  795. *
  796. * @return vinks flag5.
  797. */
  798. static inline uint8_t mavlink_msg_vkins_status_get_s_flag5(const mavlink_message_t* msg)
  799. {
  800. return _MAV_RETURN_uint8_t(msg, 31);
  801. }
  802. /**
  803. * @brief Get field s_flag6 from vkins_status message
  804. *
  805. * @return vinks flag6.
  806. */
  807. static inline uint8_t mavlink_msg_vkins_status_get_s_flag6(const mavlink_message_t* msg)
  808. {
  809. return _MAV_RETURN_uint8_t(msg, 32);
  810. }
  811. /**
  812. * @brief Get field mag_calib_stage from vkins_status message
  813. *
  814. * @return vkins mag calib
  815. stage.
  816. */
  817. static inline uint8_t mavlink_msg_vkins_status_get_mag_calib_stage(const mavlink_message_t* msg)
  818. {
  819. return _MAV_RETURN_uint8_t(msg, 33);
  820. }
  821. /**
  822. * @brief Get field g0 from vkins_status message
  823. *
  824. * @return [m/s/s] vkins initial calibrated gravitation acceleration.
  825. */
  826. static inline float mavlink_msg_vkins_status_get_g0(const mavlink_message_t* msg)
  827. {
  828. return _MAV_RETURN_float(msg, 4);
  829. }
  830. /**
  831. * @brief Get field raw_latitude from vkins_status message
  832. *
  833. * @return [degE7] raw longitude for data fusion
  834. */
  835. static inline int32_t mavlink_msg_vkins_status_get_raw_latitude(const mavlink_message_t* msg)
  836. {
  837. return _MAV_RETURN_int32_t(msg, 8);
  838. }
  839. /**
  840. * @brief Get field raw_longitude from vkins_status message
  841. *
  842. * @return [degE7] raw latitidue for data fusion
  843. */
  844. static inline int32_t mavlink_msg_vkins_status_get_raw_longitude(const mavlink_message_t* msg)
  845. {
  846. return _MAV_RETURN_int32_t(msg, 12);
  847. }
  848. /**
  849. * @brief Get field baro_alt from vkins_status message
  850. *
  851. * @return [m] raw baromoter altitude for data fusion
  852. */
  853. static inline float mavlink_msg_vkins_status_get_baro_alt(const mavlink_message_t* msg)
  854. {
  855. return _MAV_RETURN_float(msg, 16);
  856. }
  857. /**
  858. * @brief Get field raw_gps_alt from vkins_status message
  859. *
  860. * @return [m] gps amsl altitude for data fusion
  861. */
  862. static inline float mavlink_msg_vkins_status_get_raw_gps_alt(const mavlink_message_t* msg)
  863. {
  864. return _MAV_RETURN_float(msg, 20);
  865. }
  866. /**
  867. * @brief Get field solv_psat_num from vkins_status message
  868. *
  869. * @return satelites number for position
  870. */
  871. static inline uint8_t mavlink_msg_vkins_status_get_solv_psat_num(const mavlink_message_t* msg)
  872. {
  873. return _MAV_RETURN_uint8_t(msg, 34);
  874. }
  875. /**
  876. * @brief Get field solv_hsat_num from vkins_status message
  877. *
  878. * @return satelites number for heading
  879. */
  880. static inline uint8_t mavlink_msg_vkins_status_get_solv_hsat_num(const mavlink_message_t* msg)
  881. {
  882. return _MAV_RETURN_uint8_t(msg, 35);
  883. }
  884. /**
  885. * @brief Get field temperature from vkins_status message
  886. *
  887. * @return [degC] temperature
  888. */
  889. static inline int16_t mavlink_msg_vkins_status_get_temperature(const mavlink_message_t* msg)
  890. {
  891. return _MAV_RETURN_int16_t(msg, 24);
  892. }
  893. /**
  894. * @brief Get field vibe_coe from vkins_status message
  895. *
  896. * @return
  897. */
  898. static inline uint8_t mavlink_msg_vkins_status_get_vibe_coe(const mavlink_message_t* msg)
  899. {
  900. return _MAV_RETURN_uint8_t(msg, 36);
  901. }
  902. /**
  903. * @brief Get field roll from vkins_status message
  904. *
  905. * @return [deg] solved roll angle
  906. */
  907. static inline float mavlink_msg_vkins_status_get_roll(const mavlink_message_t* msg)
  908. {
  909. return _MAV_RETURN_float(msg, 37);
  910. }
  911. /**
  912. * @brief Get field pitch from vkins_status message
  913. *
  914. * @return [deg] solved pitch angle
  915. */
  916. static inline float mavlink_msg_vkins_status_get_pitch(const mavlink_message_t* msg)
  917. {
  918. return _MAV_RETURN_float(msg, 41);
  919. }
  920. /**
  921. * @brief Get field yaw from vkins_status message
  922. *
  923. * @return [deg] solved yaw angle
  924. */
  925. static inline float mavlink_msg_vkins_status_get_yaw(const mavlink_message_t* msg)
  926. {
  927. return _MAV_RETURN_float(msg, 45);
  928. }
  929. /**
  930. * @brief Get field ve from vkins_status message
  931. *
  932. * @return [m/s] solved east speed
  933. */
  934. static inline float mavlink_msg_vkins_status_get_ve(const mavlink_message_t* msg)
  935. {
  936. return _MAV_RETURN_float(msg, 49);
  937. }
  938. /**
  939. * @brief Get field vn from vkins_status message
  940. *
  941. * @return [m/s] solved north speed
  942. */
  943. static inline float mavlink_msg_vkins_status_get_vn(const mavlink_message_t* msg)
  944. {
  945. return _MAV_RETURN_float(msg, 53);
  946. }
  947. /**
  948. * @brief Get field vu from vkins_status message
  949. *
  950. * @return [m/s] solved up speed
  951. */
  952. static inline float mavlink_msg_vkins_status_get_vu(const mavlink_message_t* msg)
  953. {
  954. return _MAV_RETURN_float(msg, 57);
  955. }
  956. /**
  957. * @brief Get field ae from vkins_status message
  958. *
  959. * @return [m/s/s] solved east acceleration
  960. */
  961. static inline float mavlink_msg_vkins_status_get_ae(const mavlink_message_t* msg)
  962. {
  963. return _MAV_RETURN_float(msg, 61);
  964. }
  965. /**
  966. * @brief Get field an from vkins_status message
  967. *
  968. * @return [m/s/s] solved north acceleration
  969. */
  970. static inline float mavlink_msg_vkins_status_get_an(const mavlink_message_t* msg)
  971. {
  972. return _MAV_RETURN_float(msg, 65);
  973. }
  974. /**
  975. * @brief Get field au from vkins_status message
  976. *
  977. * @return [m/s/s] solved up acceleration
  978. */
  979. static inline float mavlink_msg_vkins_status_get_au(const mavlink_message_t* msg)
  980. {
  981. return _MAV_RETURN_float(msg, 69);
  982. }
  983. /**
  984. * @brief Get field solv_lon from vkins_status message
  985. *
  986. * @return [degE7] solved longitude
  987. */
  988. static inline int32_t mavlink_msg_vkins_status_get_solv_lon(const mavlink_message_t* msg)
  989. {
  990. return _MAV_RETURN_int32_t(msg, 73);
  991. }
  992. /**
  993. * @brief Get field solv_lat from vkins_status message
  994. *
  995. * @return [degE7] solved lattidue
  996. */
  997. static inline int32_t mavlink_msg_vkins_status_get_solv_lat(const mavlink_message_t* msg)
  998. {
  999. return _MAV_RETURN_int32_t(msg, 77);
  1000. }
  1001. /**
  1002. * @brief Get field solv_hR from vkins_status message
  1003. *
  1004. * @return [m] solved relative altitude
  1005. */
  1006. static inline float mavlink_msg_vkins_status_get_solv_hR(const mavlink_message_t* msg)
  1007. {
  1008. return _MAV_RETURN_float(msg, 81);
  1009. }
  1010. /**
  1011. * @brief Get field sensor_state from vkins_status message
  1012. *
  1013. * @return sensor state
  1014. */
  1015. static inline uint32_t mavlink_msg_vkins_status_get_sensor_state(const mavlink_message_t* msg)
  1016. {
  1017. return _MAV_RETURN_uint32_t(msg, 85);
  1018. }
  1019. /**
  1020. * @brief Get field id from vkins_status message
  1021. *
  1022. * @return nav id, 0 for main nav, 1 for aux nav
  1023. */
  1024. static inline uint8_t mavlink_msg_vkins_status_get_id(const mavlink_message_t* msg)
  1025. {
  1026. return _MAV_RETURN_uint8_t(msg, 89);
  1027. }
  1028. /**
  1029. * @brief Decode a vkins_status message into a struct
  1030. *
  1031. * @param msg The message to decode
  1032. * @param vkins_status C-struct to decode the message contents into
  1033. */
  1034. static inline void mavlink_msg_vkins_status_decode(const mavlink_message_t* msg, mavlink_vkins_status_t* vkins_status)
  1035. {
  1036. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  1037. vkins_status->time_boot_ms = mavlink_msg_vkins_status_get_time_boot_ms(msg);
  1038. vkins_status->g0 = mavlink_msg_vkins_status_get_g0(msg);
  1039. vkins_status->raw_latitude = mavlink_msg_vkins_status_get_raw_latitude(msg);
  1040. vkins_status->raw_longitude = mavlink_msg_vkins_status_get_raw_longitude(msg);
  1041. vkins_status->baro_alt = mavlink_msg_vkins_status_get_baro_alt(msg);
  1042. vkins_status->raw_gps_alt = mavlink_msg_vkins_status_get_raw_gps_alt(msg);
  1043. vkins_status->temperature = mavlink_msg_vkins_status_get_temperature(msg);
  1044. vkins_status->nav_status = mavlink_msg_vkins_status_get_nav_status(msg);
  1045. vkins_status->s_flag1 = mavlink_msg_vkins_status_get_s_flag1(msg);
  1046. vkins_status->s_flag2 = mavlink_msg_vkins_status_get_s_flag2(msg);
  1047. vkins_status->s_flag3 = mavlink_msg_vkins_status_get_s_flag3(msg);
  1048. vkins_status->s_flag4 = mavlink_msg_vkins_status_get_s_flag4(msg);
  1049. vkins_status->s_flag5 = mavlink_msg_vkins_status_get_s_flag5(msg);
  1050. vkins_status->s_flag6 = mavlink_msg_vkins_status_get_s_flag6(msg);
  1051. vkins_status->mag_calib_stage = mavlink_msg_vkins_status_get_mag_calib_stage(msg);
  1052. vkins_status->solv_psat_num = mavlink_msg_vkins_status_get_solv_psat_num(msg);
  1053. vkins_status->solv_hsat_num = mavlink_msg_vkins_status_get_solv_hsat_num(msg);
  1054. vkins_status->vibe_coe = mavlink_msg_vkins_status_get_vibe_coe(msg);
  1055. vkins_status->roll = mavlink_msg_vkins_status_get_roll(msg);
  1056. vkins_status->pitch = mavlink_msg_vkins_status_get_pitch(msg);
  1057. vkins_status->yaw = mavlink_msg_vkins_status_get_yaw(msg);
  1058. vkins_status->ve = mavlink_msg_vkins_status_get_ve(msg);
  1059. vkins_status->vn = mavlink_msg_vkins_status_get_vn(msg);
  1060. vkins_status->vu = mavlink_msg_vkins_status_get_vu(msg);
  1061. vkins_status->ae = mavlink_msg_vkins_status_get_ae(msg);
  1062. vkins_status->an = mavlink_msg_vkins_status_get_an(msg);
  1063. vkins_status->au = mavlink_msg_vkins_status_get_au(msg);
  1064. vkins_status->solv_lon = mavlink_msg_vkins_status_get_solv_lon(msg);
  1065. vkins_status->solv_lat = mavlink_msg_vkins_status_get_solv_lat(msg);
  1066. vkins_status->solv_hR = mavlink_msg_vkins_status_get_solv_hR(msg);
  1067. vkins_status->sensor_state = mavlink_msg_vkins_status_get_sensor_state(msg);
  1068. vkins_status->id = mavlink_msg_vkins_status_get_id(msg);
  1069. #else
  1070. uint8_t len = msg->len < MAVLINK_MSG_ID_VKINS_STATUS_LEN? msg->len : MAVLINK_MSG_ID_VKINS_STATUS_LEN;
  1071. memset(vkins_status, 0, MAVLINK_MSG_ID_VKINS_STATUS_LEN);
  1072. memcpy(vkins_status, _MAV_PAYLOAD(msg), len);
  1073. #endif
  1074. }