mavlink_msg_vk_external_ins_nav.h 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960
  1. #pragma once
  2. // MESSAGE VK_EXTERNAL_INS_NAV PACKING
  3. #define MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV 53023
  4. typedef struct __mavlink_vk_external_ins_nav_t {
  5. uint32_t timestamp; /*< [ms] timestamp from system boot*/
  6. int32_t lon; /*< [degE7] solved longitude*/
  7. int32_t lat; /*< [degE7] solved latitude*/
  8. float msl; /*< [m] solved latitude*/
  9. float ve; /*< [m/s] solved east speed*/
  10. float vn; /*< [m/s] solved north speed*/
  11. float vu; /*< [m/s] solved up speed*/
  12. float yaw; /*< [deg] yaw angle*/
  13. float pitch; /*< [deg] pitch angle*/
  14. float roll; /*< [deg] roll angle*/
  15. float gx; /*< [deg/s] roll angle*/
  16. float gy; /*< [deg/s] roll angle*/
  17. float gz; /*< [deg/s] roll angle*/
  18. float ax; /*< [m/s/s] roll angle*/
  19. float ay; /*< [m/s/s] roll angle*/
  20. float az; /*< [m/s/s] roll angle*/
  21. int32_t sat_lon; /*< [degE7] gps longitude*/
  22. int32_t sat_lat; /*< [degE7] gps latitude*/
  23. float sat_msl; /*< [m] gps altitude*/
  24. float sat_ve; /*< [m/s] gps east speed*/
  25. float sat_vn; /*< [m/s] gps north speed*/
  26. float sat_vu; /*< [m/s] gps up speed*/
  27. uint8_t sat_pfix; /*< gps position fix*/
  28. uint8_t sat_hfix; /*< gps heading fix*/
  29. uint8_t wk_state; /*< work state*/
  30. uint8_t err_code; /*< error code*/
  31. } mavlink_vk_external_ins_nav_t;
  32. #define MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN 92
  33. #define MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_MIN_LEN 92
  34. #define MAVLINK_MSG_ID_53023_LEN 92
  35. #define MAVLINK_MSG_ID_53023_MIN_LEN 92
  36. #define MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_CRC 115
  37. #define MAVLINK_MSG_ID_53023_CRC 115
  38. #if MAVLINK_COMMAND_24BIT
  39. #define MAVLINK_MESSAGE_INFO_VK_EXTERNAL_INS_NAV { \
  40. 53023, \
  41. "VK_EXTERNAL_INS_NAV", \
  42. 26, \
  43. { { "timestamp", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vk_external_ins_nav_t, timestamp) }, \
  44. { "lon", NULL, MAVLINK_TYPE_INT32_T, 0, 4, offsetof(mavlink_vk_external_ins_nav_t, lon) }, \
  45. { "lat", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_vk_external_ins_nav_t, lat) }, \
  46. { "msl", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_vk_external_ins_nav_t, msl) }, \
  47. { "ve", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_vk_external_ins_nav_t, ve) }, \
  48. { "vn", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_vk_external_ins_nav_t, vn) }, \
  49. { "vu", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_vk_external_ins_nav_t, vu) }, \
  50. { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_vk_external_ins_nav_t, yaw) }, \
  51. { "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_vk_external_ins_nav_t, pitch) }, \
  52. { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_vk_external_ins_nav_t, roll) }, \
  53. { "gx", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_vk_external_ins_nav_t, gx) }, \
  54. { "gy", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_vk_external_ins_nav_t, gy) }, \
  55. { "gz", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_vk_external_ins_nav_t, gz) }, \
  56. { "ax", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_vk_external_ins_nav_t, ax) }, \
  57. { "ay", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_vk_external_ins_nav_t, ay) }, \
  58. { "az", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_vk_external_ins_nav_t, az) }, \
  59. { "sat_lon", NULL, MAVLINK_TYPE_INT32_T, 0, 64, offsetof(mavlink_vk_external_ins_nav_t, sat_lon) }, \
  60. { "sat_lat", NULL, MAVLINK_TYPE_INT32_T, 0, 68, offsetof(mavlink_vk_external_ins_nav_t, sat_lat) }, \
  61. { "sat_msl", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_vk_external_ins_nav_t, sat_msl) }, \
  62. { "sat_ve", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_vk_external_ins_nav_t, sat_ve) }, \
  63. { "sat_vn", NULL, MAVLINK_TYPE_FLOAT, 0, 80, offsetof(mavlink_vk_external_ins_nav_t, sat_vn) }, \
  64. { "sat_vu", NULL, MAVLINK_TYPE_FLOAT, 0, 84, offsetof(mavlink_vk_external_ins_nav_t, sat_vu) }, \
  65. { "sat_pfix", NULL, MAVLINK_TYPE_UINT8_T, 0, 88, offsetof(mavlink_vk_external_ins_nav_t, sat_pfix) }, \
  66. { "sat_hfix", NULL, MAVLINK_TYPE_UINT8_T, 0, 89, offsetof(mavlink_vk_external_ins_nav_t, sat_hfix) }, \
  67. { "wk_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 90, offsetof(mavlink_vk_external_ins_nav_t, wk_state) }, \
  68. { "err_code", NULL, MAVLINK_TYPE_UINT8_T, 0, 91, offsetof(mavlink_vk_external_ins_nav_t, err_code) }, \
  69. } \
  70. }
  71. #else
  72. #define MAVLINK_MESSAGE_INFO_VK_EXTERNAL_INS_NAV { \
  73. "VK_EXTERNAL_INS_NAV", \
  74. 26, \
  75. { { "timestamp", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vk_external_ins_nav_t, timestamp) }, \
  76. { "lon", NULL, MAVLINK_TYPE_INT32_T, 0, 4, offsetof(mavlink_vk_external_ins_nav_t, lon) }, \
  77. { "lat", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_vk_external_ins_nav_t, lat) }, \
  78. { "msl", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_vk_external_ins_nav_t, msl) }, \
  79. { "ve", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_vk_external_ins_nav_t, ve) }, \
  80. { "vn", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_vk_external_ins_nav_t, vn) }, \
  81. { "vu", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_vk_external_ins_nav_t, vu) }, \
  82. { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_vk_external_ins_nav_t, yaw) }, \
  83. { "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_vk_external_ins_nav_t, pitch) }, \
  84. { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_vk_external_ins_nav_t, roll) }, \
  85. { "gx", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_vk_external_ins_nav_t, gx) }, \
  86. { "gy", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_vk_external_ins_nav_t, gy) }, \
  87. { "gz", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_vk_external_ins_nav_t, gz) }, \
  88. { "ax", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_vk_external_ins_nav_t, ax) }, \
  89. { "ay", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_vk_external_ins_nav_t, ay) }, \
  90. { "az", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_vk_external_ins_nav_t, az) }, \
  91. { "sat_lon", NULL, MAVLINK_TYPE_INT32_T, 0, 64, offsetof(mavlink_vk_external_ins_nav_t, sat_lon) }, \
  92. { "sat_lat", NULL, MAVLINK_TYPE_INT32_T, 0, 68, offsetof(mavlink_vk_external_ins_nav_t, sat_lat) }, \
  93. { "sat_msl", NULL, MAVLINK_TYPE_FLOAT, 0, 72, offsetof(mavlink_vk_external_ins_nav_t, sat_msl) }, \
  94. { "sat_ve", NULL, MAVLINK_TYPE_FLOAT, 0, 76, offsetof(mavlink_vk_external_ins_nav_t, sat_ve) }, \
  95. { "sat_vn", NULL, MAVLINK_TYPE_FLOAT, 0, 80, offsetof(mavlink_vk_external_ins_nav_t, sat_vn) }, \
  96. { "sat_vu", NULL, MAVLINK_TYPE_FLOAT, 0, 84, offsetof(mavlink_vk_external_ins_nav_t, sat_vu) }, \
  97. { "sat_pfix", NULL, MAVLINK_TYPE_UINT8_T, 0, 88, offsetof(mavlink_vk_external_ins_nav_t, sat_pfix) }, \
  98. { "sat_hfix", NULL, MAVLINK_TYPE_UINT8_T, 0, 89, offsetof(mavlink_vk_external_ins_nav_t, sat_hfix) }, \
  99. { "wk_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 90, offsetof(mavlink_vk_external_ins_nav_t, wk_state) }, \
  100. { "err_code", NULL, MAVLINK_TYPE_UINT8_T, 0, 91, offsetof(mavlink_vk_external_ins_nav_t, err_code) }, \
  101. } \
  102. }
  103. #endif
  104. /**
  105. * @brief Pack a vk_external_ins_nav message
  106. * @param system_id ID of this system
  107. * @param component_id ID of this component (e.g. 200 for IMU)
  108. * @param msg The MAVLink message to compress the data into
  109. *
  110. * @param timestamp [ms] timestamp from system boot
  111. * @param lon [degE7] solved longitude
  112. * @param lat [degE7] solved latitude
  113. * @param msl [m] solved latitude
  114. * @param ve [m/s] solved east speed
  115. * @param vn [m/s] solved north speed
  116. * @param vu [m/s] solved up speed
  117. * @param yaw [deg] yaw angle
  118. * @param pitch [deg] pitch angle
  119. * @param roll [deg] roll angle
  120. * @param gx [deg/s] roll angle
  121. * @param gy [deg/s] roll angle
  122. * @param gz [deg/s] roll angle
  123. * @param ax [m/s/s] roll angle
  124. * @param ay [m/s/s] roll angle
  125. * @param az [m/s/s] roll angle
  126. * @param sat_lon [degE7] gps longitude
  127. * @param sat_lat [degE7] gps latitude
  128. * @param sat_msl [m] gps altitude
  129. * @param sat_ve [m/s] gps east speed
  130. * @param sat_vn [m/s] gps north speed
  131. * @param sat_vu [m/s] gps up speed
  132. * @param sat_pfix gps position fix
  133. * @param sat_hfix gps heading fix
  134. * @param wk_state work state
  135. * @param err_code error code
  136. * @return length of the message in bytes (excluding serial stream start sign)
  137. */
  138. static inline uint16_t mavlink_msg_vk_external_ins_nav_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
  139. uint32_t timestamp, int32_t lon, int32_t lat, float msl, float ve, float vn, float vu, float yaw, float pitch, float roll, float gx, float gy, float gz, float ax, float ay, float az, int32_t sat_lon, int32_t sat_lat, float sat_msl, float sat_ve, float sat_vn, float sat_vu, uint8_t sat_pfix, uint8_t sat_hfix, uint8_t wk_state, uint8_t err_code)
  140. {
  141. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  142. char buf[MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN];
  143. _mav_put_uint32_t(buf, 0, timestamp);
  144. _mav_put_int32_t(buf, 4, lon);
  145. _mav_put_int32_t(buf, 8, lat);
  146. _mav_put_float(buf, 12, msl);
  147. _mav_put_float(buf, 16, ve);
  148. _mav_put_float(buf, 20, vn);
  149. _mav_put_float(buf, 24, vu);
  150. _mav_put_float(buf, 28, yaw);
  151. _mav_put_float(buf, 32, pitch);
  152. _mav_put_float(buf, 36, roll);
  153. _mav_put_float(buf, 40, gx);
  154. _mav_put_float(buf, 44, gy);
  155. _mav_put_float(buf, 48, gz);
  156. _mav_put_float(buf, 52, ax);
  157. _mav_put_float(buf, 56, ay);
  158. _mav_put_float(buf, 60, az);
  159. _mav_put_int32_t(buf, 64, sat_lon);
  160. _mav_put_int32_t(buf, 68, sat_lat);
  161. _mav_put_float(buf, 72, sat_msl);
  162. _mav_put_float(buf, 76, sat_ve);
  163. _mav_put_float(buf, 80, sat_vn);
  164. _mav_put_float(buf, 84, sat_vu);
  165. _mav_put_uint8_t(buf, 88, sat_pfix);
  166. _mav_put_uint8_t(buf, 89, sat_hfix);
  167. _mav_put_uint8_t(buf, 90, wk_state);
  168. _mav_put_uint8_t(buf, 91, err_code);
  169. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN);
  170. #else
  171. mavlink_vk_external_ins_nav_t packet;
  172. packet.timestamp = timestamp;
  173. packet.lon = lon;
  174. packet.lat = lat;
  175. packet.msl = msl;
  176. packet.ve = ve;
  177. packet.vn = vn;
  178. packet.vu = vu;
  179. packet.yaw = yaw;
  180. packet.pitch = pitch;
  181. packet.roll = roll;
  182. packet.gx = gx;
  183. packet.gy = gy;
  184. packet.gz = gz;
  185. packet.ax = ax;
  186. packet.ay = ay;
  187. packet.az = az;
  188. packet.sat_lon = sat_lon;
  189. packet.sat_lat = sat_lat;
  190. packet.sat_msl = sat_msl;
  191. packet.sat_ve = sat_ve;
  192. packet.sat_vn = sat_vn;
  193. packet.sat_vu = sat_vu;
  194. packet.sat_pfix = sat_pfix;
  195. packet.sat_hfix = sat_hfix;
  196. packet.wk_state = wk_state;
  197. packet.err_code = err_code;
  198. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN);
  199. #endif
  200. msg->msgid = MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV;
  201. return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_MIN_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_CRC);
  202. }
  203. /**
  204. * @brief Pack a vk_external_ins_nav message
  205. * @param system_id ID of this system
  206. * @param component_id ID of this component (e.g. 200 for IMU)
  207. * @param status MAVLink status structure
  208. * @param msg The MAVLink message to compress the data into
  209. *
  210. * @param timestamp [ms] timestamp from system boot
  211. * @param lon [degE7] solved longitude
  212. * @param lat [degE7] solved latitude
  213. * @param msl [m] solved latitude
  214. * @param ve [m/s] solved east speed
  215. * @param vn [m/s] solved north speed
  216. * @param vu [m/s] solved up speed
  217. * @param yaw [deg] yaw angle
  218. * @param pitch [deg] pitch angle
  219. * @param roll [deg] roll angle
  220. * @param gx [deg/s] roll angle
  221. * @param gy [deg/s] roll angle
  222. * @param gz [deg/s] roll angle
  223. * @param ax [m/s/s] roll angle
  224. * @param ay [m/s/s] roll angle
  225. * @param az [m/s/s] roll angle
  226. * @param sat_lon [degE7] gps longitude
  227. * @param sat_lat [degE7] gps latitude
  228. * @param sat_msl [m] gps altitude
  229. * @param sat_ve [m/s] gps east speed
  230. * @param sat_vn [m/s] gps north speed
  231. * @param sat_vu [m/s] gps up speed
  232. * @param sat_pfix gps position fix
  233. * @param sat_hfix gps heading fix
  234. * @param wk_state work state
  235. * @param err_code error code
  236. * @return length of the message in bytes (excluding serial stream start sign)
  237. */
  238. static inline uint16_t mavlink_msg_vk_external_ins_nav_pack_status(uint8_t system_id, uint8_t component_id, mavlink_status_t *_status, mavlink_message_t* msg,
  239. uint32_t timestamp, int32_t lon, int32_t lat, float msl, float ve, float vn, float vu, float yaw, float pitch, float roll, float gx, float gy, float gz, float ax, float ay, float az, int32_t sat_lon, int32_t sat_lat, float sat_msl, float sat_ve, float sat_vn, float sat_vu, uint8_t sat_pfix, uint8_t sat_hfix, uint8_t wk_state, uint8_t err_code)
  240. {
  241. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  242. char buf[MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN];
  243. _mav_put_uint32_t(buf, 0, timestamp);
  244. _mav_put_int32_t(buf, 4, lon);
  245. _mav_put_int32_t(buf, 8, lat);
  246. _mav_put_float(buf, 12, msl);
  247. _mav_put_float(buf, 16, ve);
  248. _mav_put_float(buf, 20, vn);
  249. _mav_put_float(buf, 24, vu);
  250. _mav_put_float(buf, 28, yaw);
  251. _mav_put_float(buf, 32, pitch);
  252. _mav_put_float(buf, 36, roll);
  253. _mav_put_float(buf, 40, gx);
  254. _mav_put_float(buf, 44, gy);
  255. _mav_put_float(buf, 48, gz);
  256. _mav_put_float(buf, 52, ax);
  257. _mav_put_float(buf, 56, ay);
  258. _mav_put_float(buf, 60, az);
  259. _mav_put_int32_t(buf, 64, sat_lon);
  260. _mav_put_int32_t(buf, 68, sat_lat);
  261. _mav_put_float(buf, 72, sat_msl);
  262. _mav_put_float(buf, 76, sat_ve);
  263. _mav_put_float(buf, 80, sat_vn);
  264. _mav_put_float(buf, 84, sat_vu);
  265. _mav_put_uint8_t(buf, 88, sat_pfix);
  266. _mav_put_uint8_t(buf, 89, sat_hfix);
  267. _mav_put_uint8_t(buf, 90, wk_state);
  268. _mav_put_uint8_t(buf, 91, err_code);
  269. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN);
  270. #else
  271. mavlink_vk_external_ins_nav_t packet;
  272. packet.timestamp = timestamp;
  273. packet.lon = lon;
  274. packet.lat = lat;
  275. packet.msl = msl;
  276. packet.ve = ve;
  277. packet.vn = vn;
  278. packet.vu = vu;
  279. packet.yaw = yaw;
  280. packet.pitch = pitch;
  281. packet.roll = roll;
  282. packet.gx = gx;
  283. packet.gy = gy;
  284. packet.gz = gz;
  285. packet.ax = ax;
  286. packet.ay = ay;
  287. packet.az = az;
  288. packet.sat_lon = sat_lon;
  289. packet.sat_lat = sat_lat;
  290. packet.sat_msl = sat_msl;
  291. packet.sat_ve = sat_ve;
  292. packet.sat_vn = sat_vn;
  293. packet.sat_vu = sat_vu;
  294. packet.sat_pfix = sat_pfix;
  295. packet.sat_hfix = sat_hfix;
  296. packet.wk_state = wk_state;
  297. packet.err_code = err_code;
  298. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN);
  299. #endif
  300. msg->msgid = MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV;
  301. #if MAVLINK_CRC_EXTRA
  302. return mavlink_finalize_message_buffer(msg, system_id, component_id, _status, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_MIN_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_CRC);
  303. #else
  304. return mavlink_finalize_message_buffer(msg, system_id, component_id, _status, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_MIN_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN);
  305. #endif
  306. }
  307. /**
  308. * @brief Pack a vk_external_ins_nav message on a channel
  309. * @param system_id ID of this system
  310. * @param component_id ID of this component (e.g. 200 for IMU)
  311. * @param chan The MAVLink channel this message will be sent over
  312. * @param msg The MAVLink message to compress the data into
  313. * @param timestamp [ms] timestamp from system boot
  314. * @param lon [degE7] solved longitude
  315. * @param lat [degE7] solved latitude
  316. * @param msl [m] solved latitude
  317. * @param ve [m/s] solved east speed
  318. * @param vn [m/s] solved north speed
  319. * @param vu [m/s] solved up speed
  320. * @param yaw [deg] yaw angle
  321. * @param pitch [deg] pitch angle
  322. * @param roll [deg] roll angle
  323. * @param gx [deg/s] roll angle
  324. * @param gy [deg/s] roll angle
  325. * @param gz [deg/s] roll angle
  326. * @param ax [m/s/s] roll angle
  327. * @param ay [m/s/s] roll angle
  328. * @param az [m/s/s] roll angle
  329. * @param sat_lon [degE7] gps longitude
  330. * @param sat_lat [degE7] gps latitude
  331. * @param sat_msl [m] gps altitude
  332. * @param sat_ve [m/s] gps east speed
  333. * @param sat_vn [m/s] gps north speed
  334. * @param sat_vu [m/s] gps up speed
  335. * @param sat_pfix gps position fix
  336. * @param sat_hfix gps heading fix
  337. * @param wk_state work state
  338. * @param err_code error code
  339. * @return length of the message in bytes (excluding serial stream start sign)
  340. */
  341. static inline uint16_t mavlink_msg_vk_external_ins_nav_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
  342. mavlink_message_t* msg,
  343. uint32_t timestamp,int32_t lon,int32_t lat,float msl,float ve,float vn,float vu,float yaw,float pitch,float roll,float gx,float gy,float gz,float ax,float ay,float az,int32_t sat_lon,int32_t sat_lat,float sat_msl,float sat_ve,float sat_vn,float sat_vu,uint8_t sat_pfix,uint8_t sat_hfix,uint8_t wk_state,uint8_t err_code)
  344. {
  345. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  346. char buf[MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN];
  347. _mav_put_uint32_t(buf, 0, timestamp);
  348. _mav_put_int32_t(buf, 4, lon);
  349. _mav_put_int32_t(buf, 8, lat);
  350. _mav_put_float(buf, 12, msl);
  351. _mav_put_float(buf, 16, ve);
  352. _mav_put_float(buf, 20, vn);
  353. _mav_put_float(buf, 24, vu);
  354. _mav_put_float(buf, 28, yaw);
  355. _mav_put_float(buf, 32, pitch);
  356. _mav_put_float(buf, 36, roll);
  357. _mav_put_float(buf, 40, gx);
  358. _mav_put_float(buf, 44, gy);
  359. _mav_put_float(buf, 48, gz);
  360. _mav_put_float(buf, 52, ax);
  361. _mav_put_float(buf, 56, ay);
  362. _mav_put_float(buf, 60, az);
  363. _mav_put_int32_t(buf, 64, sat_lon);
  364. _mav_put_int32_t(buf, 68, sat_lat);
  365. _mav_put_float(buf, 72, sat_msl);
  366. _mav_put_float(buf, 76, sat_ve);
  367. _mav_put_float(buf, 80, sat_vn);
  368. _mav_put_float(buf, 84, sat_vu);
  369. _mav_put_uint8_t(buf, 88, sat_pfix);
  370. _mav_put_uint8_t(buf, 89, sat_hfix);
  371. _mav_put_uint8_t(buf, 90, wk_state);
  372. _mav_put_uint8_t(buf, 91, err_code);
  373. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN);
  374. #else
  375. mavlink_vk_external_ins_nav_t packet;
  376. packet.timestamp = timestamp;
  377. packet.lon = lon;
  378. packet.lat = lat;
  379. packet.msl = msl;
  380. packet.ve = ve;
  381. packet.vn = vn;
  382. packet.vu = vu;
  383. packet.yaw = yaw;
  384. packet.pitch = pitch;
  385. packet.roll = roll;
  386. packet.gx = gx;
  387. packet.gy = gy;
  388. packet.gz = gz;
  389. packet.ax = ax;
  390. packet.ay = ay;
  391. packet.az = az;
  392. packet.sat_lon = sat_lon;
  393. packet.sat_lat = sat_lat;
  394. packet.sat_msl = sat_msl;
  395. packet.sat_ve = sat_ve;
  396. packet.sat_vn = sat_vn;
  397. packet.sat_vu = sat_vu;
  398. packet.sat_pfix = sat_pfix;
  399. packet.sat_hfix = sat_hfix;
  400. packet.wk_state = wk_state;
  401. packet.err_code = err_code;
  402. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN);
  403. #endif
  404. msg->msgid = MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV;
  405. return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_MIN_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_CRC);
  406. }
  407. /**
  408. * @brief Encode a vk_external_ins_nav struct
  409. *
  410. * @param system_id ID of this system
  411. * @param component_id ID of this component (e.g. 200 for IMU)
  412. * @param msg The MAVLink message to compress the data into
  413. * @param vk_external_ins_nav C-struct to read the message contents from
  414. */
  415. static inline uint16_t mavlink_msg_vk_external_ins_nav_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_vk_external_ins_nav_t* vk_external_ins_nav)
  416. {
  417. return mavlink_msg_vk_external_ins_nav_pack(system_id, component_id, msg, vk_external_ins_nav->timestamp, vk_external_ins_nav->lon, vk_external_ins_nav->lat, vk_external_ins_nav->msl, vk_external_ins_nav->ve, vk_external_ins_nav->vn, vk_external_ins_nav->vu, vk_external_ins_nav->yaw, vk_external_ins_nav->pitch, vk_external_ins_nav->roll, vk_external_ins_nav->gx, vk_external_ins_nav->gy, vk_external_ins_nav->gz, vk_external_ins_nav->ax, vk_external_ins_nav->ay, vk_external_ins_nav->az, vk_external_ins_nav->sat_lon, vk_external_ins_nav->sat_lat, vk_external_ins_nav->sat_msl, vk_external_ins_nav->sat_ve, vk_external_ins_nav->sat_vn, vk_external_ins_nav->sat_vu, vk_external_ins_nav->sat_pfix, vk_external_ins_nav->sat_hfix, vk_external_ins_nav->wk_state, vk_external_ins_nav->err_code);
  418. }
  419. /**
  420. * @brief Encode a vk_external_ins_nav struct on a channel
  421. *
  422. * @param system_id ID of this system
  423. * @param component_id ID of this component (e.g. 200 for IMU)
  424. * @param chan The MAVLink channel this message will be sent over
  425. * @param msg The MAVLink message to compress the data into
  426. * @param vk_external_ins_nav C-struct to read the message contents from
  427. */
  428. static inline uint16_t mavlink_msg_vk_external_ins_nav_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_vk_external_ins_nav_t* vk_external_ins_nav)
  429. {
  430. return mavlink_msg_vk_external_ins_nav_pack_chan(system_id, component_id, chan, msg, vk_external_ins_nav->timestamp, vk_external_ins_nav->lon, vk_external_ins_nav->lat, vk_external_ins_nav->msl, vk_external_ins_nav->ve, vk_external_ins_nav->vn, vk_external_ins_nav->vu, vk_external_ins_nav->yaw, vk_external_ins_nav->pitch, vk_external_ins_nav->roll, vk_external_ins_nav->gx, vk_external_ins_nav->gy, vk_external_ins_nav->gz, vk_external_ins_nav->ax, vk_external_ins_nav->ay, vk_external_ins_nav->az, vk_external_ins_nav->sat_lon, vk_external_ins_nav->sat_lat, vk_external_ins_nav->sat_msl, vk_external_ins_nav->sat_ve, vk_external_ins_nav->sat_vn, vk_external_ins_nav->sat_vu, vk_external_ins_nav->sat_pfix, vk_external_ins_nav->sat_hfix, vk_external_ins_nav->wk_state, vk_external_ins_nav->err_code);
  431. }
  432. /**
  433. * @brief Encode a vk_external_ins_nav struct with provided status structure
  434. *
  435. * @param system_id ID of this system
  436. * @param component_id ID of this component (e.g. 200 for IMU)
  437. * @param status MAVLink status structure
  438. * @param msg The MAVLink message to compress the data into
  439. * @param vk_external_ins_nav C-struct to read the message contents from
  440. */
  441. static inline uint16_t mavlink_msg_vk_external_ins_nav_encode_status(uint8_t system_id, uint8_t component_id, mavlink_status_t* _status, mavlink_message_t* msg, const mavlink_vk_external_ins_nav_t* vk_external_ins_nav)
  442. {
  443. return mavlink_msg_vk_external_ins_nav_pack_status(system_id, component_id, _status, msg, vk_external_ins_nav->timestamp, vk_external_ins_nav->lon, vk_external_ins_nav->lat, vk_external_ins_nav->msl, vk_external_ins_nav->ve, vk_external_ins_nav->vn, vk_external_ins_nav->vu, vk_external_ins_nav->yaw, vk_external_ins_nav->pitch, vk_external_ins_nav->roll, vk_external_ins_nav->gx, vk_external_ins_nav->gy, vk_external_ins_nav->gz, vk_external_ins_nav->ax, vk_external_ins_nav->ay, vk_external_ins_nav->az, vk_external_ins_nav->sat_lon, vk_external_ins_nav->sat_lat, vk_external_ins_nav->sat_msl, vk_external_ins_nav->sat_ve, vk_external_ins_nav->sat_vn, vk_external_ins_nav->sat_vu, vk_external_ins_nav->sat_pfix, vk_external_ins_nav->sat_hfix, vk_external_ins_nav->wk_state, vk_external_ins_nav->err_code);
  444. }
  445. /**
  446. * @brief Send a vk_external_ins_nav message
  447. * @param chan MAVLink channel to send the message
  448. *
  449. * @param timestamp [ms] timestamp from system boot
  450. * @param lon [degE7] solved longitude
  451. * @param lat [degE7] solved latitude
  452. * @param msl [m] solved latitude
  453. * @param ve [m/s] solved east speed
  454. * @param vn [m/s] solved north speed
  455. * @param vu [m/s] solved up speed
  456. * @param yaw [deg] yaw angle
  457. * @param pitch [deg] pitch angle
  458. * @param roll [deg] roll angle
  459. * @param gx [deg/s] roll angle
  460. * @param gy [deg/s] roll angle
  461. * @param gz [deg/s] roll angle
  462. * @param ax [m/s/s] roll angle
  463. * @param ay [m/s/s] roll angle
  464. * @param az [m/s/s] roll angle
  465. * @param sat_lon [degE7] gps longitude
  466. * @param sat_lat [degE7] gps latitude
  467. * @param sat_msl [m] gps altitude
  468. * @param sat_ve [m/s] gps east speed
  469. * @param sat_vn [m/s] gps north speed
  470. * @param sat_vu [m/s] gps up speed
  471. * @param sat_pfix gps position fix
  472. * @param sat_hfix gps heading fix
  473. * @param wk_state work state
  474. * @param err_code error code
  475. */
  476. #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
  477. static inline void mavlink_msg_vk_external_ins_nav_send(mavlink_channel_t chan, uint32_t timestamp, int32_t lon, int32_t lat, float msl, float ve, float vn, float vu, float yaw, float pitch, float roll, float gx, float gy, float gz, float ax, float ay, float az, int32_t sat_lon, int32_t sat_lat, float sat_msl, float sat_ve, float sat_vn, float sat_vu, uint8_t sat_pfix, uint8_t sat_hfix, uint8_t wk_state, uint8_t err_code)
  478. {
  479. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  480. char buf[MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN];
  481. _mav_put_uint32_t(buf, 0, timestamp);
  482. _mav_put_int32_t(buf, 4, lon);
  483. _mav_put_int32_t(buf, 8, lat);
  484. _mav_put_float(buf, 12, msl);
  485. _mav_put_float(buf, 16, ve);
  486. _mav_put_float(buf, 20, vn);
  487. _mav_put_float(buf, 24, vu);
  488. _mav_put_float(buf, 28, yaw);
  489. _mav_put_float(buf, 32, pitch);
  490. _mav_put_float(buf, 36, roll);
  491. _mav_put_float(buf, 40, gx);
  492. _mav_put_float(buf, 44, gy);
  493. _mav_put_float(buf, 48, gz);
  494. _mav_put_float(buf, 52, ax);
  495. _mav_put_float(buf, 56, ay);
  496. _mav_put_float(buf, 60, az);
  497. _mav_put_int32_t(buf, 64, sat_lon);
  498. _mav_put_int32_t(buf, 68, sat_lat);
  499. _mav_put_float(buf, 72, sat_msl);
  500. _mav_put_float(buf, 76, sat_ve);
  501. _mav_put_float(buf, 80, sat_vn);
  502. _mav_put_float(buf, 84, sat_vu);
  503. _mav_put_uint8_t(buf, 88, sat_pfix);
  504. _mav_put_uint8_t(buf, 89, sat_hfix);
  505. _mav_put_uint8_t(buf, 90, wk_state);
  506. _mav_put_uint8_t(buf, 91, err_code);
  507. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV, buf, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_MIN_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_CRC);
  508. #else
  509. mavlink_vk_external_ins_nav_t packet;
  510. packet.timestamp = timestamp;
  511. packet.lon = lon;
  512. packet.lat = lat;
  513. packet.msl = msl;
  514. packet.ve = ve;
  515. packet.vn = vn;
  516. packet.vu = vu;
  517. packet.yaw = yaw;
  518. packet.pitch = pitch;
  519. packet.roll = roll;
  520. packet.gx = gx;
  521. packet.gy = gy;
  522. packet.gz = gz;
  523. packet.ax = ax;
  524. packet.ay = ay;
  525. packet.az = az;
  526. packet.sat_lon = sat_lon;
  527. packet.sat_lat = sat_lat;
  528. packet.sat_msl = sat_msl;
  529. packet.sat_ve = sat_ve;
  530. packet.sat_vn = sat_vn;
  531. packet.sat_vu = sat_vu;
  532. packet.sat_pfix = sat_pfix;
  533. packet.sat_hfix = sat_hfix;
  534. packet.wk_state = wk_state;
  535. packet.err_code = err_code;
  536. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV, (const char *)&packet, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_MIN_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_CRC);
  537. #endif
  538. }
  539. /**
  540. * @brief Send a vk_external_ins_nav message
  541. * @param chan MAVLink channel to send the message
  542. * @param struct The MAVLink struct to serialize
  543. */
  544. static inline void mavlink_msg_vk_external_ins_nav_send_struct(mavlink_channel_t chan, const mavlink_vk_external_ins_nav_t* vk_external_ins_nav)
  545. {
  546. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  547. mavlink_msg_vk_external_ins_nav_send(chan, vk_external_ins_nav->timestamp, vk_external_ins_nav->lon, vk_external_ins_nav->lat, vk_external_ins_nav->msl, vk_external_ins_nav->ve, vk_external_ins_nav->vn, vk_external_ins_nav->vu, vk_external_ins_nav->yaw, vk_external_ins_nav->pitch, vk_external_ins_nav->roll, vk_external_ins_nav->gx, vk_external_ins_nav->gy, vk_external_ins_nav->gz, vk_external_ins_nav->ax, vk_external_ins_nav->ay, vk_external_ins_nav->az, vk_external_ins_nav->sat_lon, vk_external_ins_nav->sat_lat, vk_external_ins_nav->sat_msl, vk_external_ins_nav->sat_ve, vk_external_ins_nav->sat_vn, vk_external_ins_nav->sat_vu, vk_external_ins_nav->sat_pfix, vk_external_ins_nav->sat_hfix, vk_external_ins_nav->wk_state, vk_external_ins_nav->err_code);
  548. #else
  549. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV, (const char *)vk_external_ins_nav, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_MIN_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_CRC);
  550. #endif
  551. }
  552. #if MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN <= MAVLINK_MAX_PAYLOAD_LEN
  553. /*
  554. This variant of _send() can be used to save stack space by re-using
  555. memory from the receive buffer. The caller provides a
  556. mavlink_message_t which is the size of a full mavlink message. This
  557. is usually the receive buffer for the channel, and allows a reply to an
  558. incoming message with minimum stack space usage.
  559. */
  560. static inline void mavlink_msg_vk_external_ins_nav_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t timestamp, int32_t lon, int32_t lat, float msl, float ve, float vn, float vu, float yaw, float pitch, float roll, float gx, float gy, float gz, float ax, float ay, float az, int32_t sat_lon, int32_t sat_lat, float sat_msl, float sat_ve, float sat_vn, float sat_vu, uint8_t sat_pfix, uint8_t sat_hfix, uint8_t wk_state, uint8_t err_code)
  561. {
  562. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  563. char *buf = (char *)msgbuf;
  564. _mav_put_uint32_t(buf, 0, timestamp);
  565. _mav_put_int32_t(buf, 4, lon);
  566. _mav_put_int32_t(buf, 8, lat);
  567. _mav_put_float(buf, 12, msl);
  568. _mav_put_float(buf, 16, ve);
  569. _mav_put_float(buf, 20, vn);
  570. _mav_put_float(buf, 24, vu);
  571. _mav_put_float(buf, 28, yaw);
  572. _mav_put_float(buf, 32, pitch);
  573. _mav_put_float(buf, 36, roll);
  574. _mav_put_float(buf, 40, gx);
  575. _mav_put_float(buf, 44, gy);
  576. _mav_put_float(buf, 48, gz);
  577. _mav_put_float(buf, 52, ax);
  578. _mav_put_float(buf, 56, ay);
  579. _mav_put_float(buf, 60, az);
  580. _mav_put_int32_t(buf, 64, sat_lon);
  581. _mav_put_int32_t(buf, 68, sat_lat);
  582. _mav_put_float(buf, 72, sat_msl);
  583. _mav_put_float(buf, 76, sat_ve);
  584. _mav_put_float(buf, 80, sat_vn);
  585. _mav_put_float(buf, 84, sat_vu);
  586. _mav_put_uint8_t(buf, 88, sat_pfix);
  587. _mav_put_uint8_t(buf, 89, sat_hfix);
  588. _mav_put_uint8_t(buf, 90, wk_state);
  589. _mav_put_uint8_t(buf, 91, err_code);
  590. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV, buf, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_MIN_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_CRC);
  591. #else
  592. mavlink_vk_external_ins_nav_t *packet = (mavlink_vk_external_ins_nav_t *)msgbuf;
  593. packet->timestamp = timestamp;
  594. packet->lon = lon;
  595. packet->lat = lat;
  596. packet->msl = msl;
  597. packet->ve = ve;
  598. packet->vn = vn;
  599. packet->vu = vu;
  600. packet->yaw = yaw;
  601. packet->pitch = pitch;
  602. packet->roll = roll;
  603. packet->gx = gx;
  604. packet->gy = gy;
  605. packet->gz = gz;
  606. packet->ax = ax;
  607. packet->ay = ay;
  608. packet->az = az;
  609. packet->sat_lon = sat_lon;
  610. packet->sat_lat = sat_lat;
  611. packet->sat_msl = sat_msl;
  612. packet->sat_ve = sat_ve;
  613. packet->sat_vn = sat_vn;
  614. packet->sat_vu = sat_vu;
  615. packet->sat_pfix = sat_pfix;
  616. packet->sat_hfix = sat_hfix;
  617. packet->wk_state = wk_state;
  618. packet->err_code = err_code;
  619. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV, (const char *)packet, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_MIN_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_CRC);
  620. #endif
  621. }
  622. #endif
  623. #endif
  624. // MESSAGE VK_EXTERNAL_INS_NAV UNPACKING
  625. /**
  626. * @brief Get field timestamp from vk_external_ins_nav message
  627. *
  628. * @return [ms] timestamp from system boot
  629. */
  630. static inline uint32_t mavlink_msg_vk_external_ins_nav_get_timestamp(const mavlink_message_t* msg)
  631. {
  632. return _MAV_RETURN_uint32_t(msg, 0);
  633. }
  634. /**
  635. * @brief Get field lon from vk_external_ins_nav message
  636. *
  637. * @return [degE7] solved longitude
  638. */
  639. static inline int32_t mavlink_msg_vk_external_ins_nav_get_lon(const mavlink_message_t* msg)
  640. {
  641. return _MAV_RETURN_int32_t(msg, 4);
  642. }
  643. /**
  644. * @brief Get field lat from vk_external_ins_nav message
  645. *
  646. * @return [degE7] solved latitude
  647. */
  648. static inline int32_t mavlink_msg_vk_external_ins_nav_get_lat(const mavlink_message_t* msg)
  649. {
  650. return _MAV_RETURN_int32_t(msg, 8);
  651. }
  652. /**
  653. * @brief Get field msl from vk_external_ins_nav message
  654. *
  655. * @return [m] solved latitude
  656. */
  657. static inline float mavlink_msg_vk_external_ins_nav_get_msl(const mavlink_message_t* msg)
  658. {
  659. return _MAV_RETURN_float(msg, 12);
  660. }
  661. /**
  662. * @brief Get field ve from vk_external_ins_nav message
  663. *
  664. * @return [m/s] solved east speed
  665. */
  666. static inline float mavlink_msg_vk_external_ins_nav_get_ve(const mavlink_message_t* msg)
  667. {
  668. return _MAV_RETURN_float(msg, 16);
  669. }
  670. /**
  671. * @brief Get field vn from vk_external_ins_nav message
  672. *
  673. * @return [m/s] solved north speed
  674. */
  675. static inline float mavlink_msg_vk_external_ins_nav_get_vn(const mavlink_message_t* msg)
  676. {
  677. return _MAV_RETURN_float(msg, 20);
  678. }
  679. /**
  680. * @brief Get field vu from vk_external_ins_nav message
  681. *
  682. * @return [m/s] solved up speed
  683. */
  684. static inline float mavlink_msg_vk_external_ins_nav_get_vu(const mavlink_message_t* msg)
  685. {
  686. return _MAV_RETURN_float(msg, 24);
  687. }
  688. /**
  689. * @brief Get field yaw from vk_external_ins_nav message
  690. *
  691. * @return [deg] yaw angle
  692. */
  693. static inline float mavlink_msg_vk_external_ins_nav_get_yaw(const mavlink_message_t* msg)
  694. {
  695. return _MAV_RETURN_float(msg, 28);
  696. }
  697. /**
  698. * @brief Get field pitch from vk_external_ins_nav message
  699. *
  700. * @return [deg] pitch angle
  701. */
  702. static inline float mavlink_msg_vk_external_ins_nav_get_pitch(const mavlink_message_t* msg)
  703. {
  704. return _MAV_RETURN_float(msg, 32);
  705. }
  706. /**
  707. * @brief Get field roll from vk_external_ins_nav message
  708. *
  709. * @return [deg] roll angle
  710. */
  711. static inline float mavlink_msg_vk_external_ins_nav_get_roll(const mavlink_message_t* msg)
  712. {
  713. return _MAV_RETURN_float(msg, 36);
  714. }
  715. /**
  716. * @brief Get field gx from vk_external_ins_nav message
  717. *
  718. * @return [deg/s] roll angle
  719. */
  720. static inline float mavlink_msg_vk_external_ins_nav_get_gx(const mavlink_message_t* msg)
  721. {
  722. return _MAV_RETURN_float(msg, 40);
  723. }
  724. /**
  725. * @brief Get field gy from vk_external_ins_nav message
  726. *
  727. * @return [deg/s] roll angle
  728. */
  729. static inline float mavlink_msg_vk_external_ins_nav_get_gy(const mavlink_message_t* msg)
  730. {
  731. return _MAV_RETURN_float(msg, 44);
  732. }
  733. /**
  734. * @brief Get field gz from vk_external_ins_nav message
  735. *
  736. * @return [deg/s] roll angle
  737. */
  738. static inline float mavlink_msg_vk_external_ins_nav_get_gz(const mavlink_message_t* msg)
  739. {
  740. return _MAV_RETURN_float(msg, 48);
  741. }
  742. /**
  743. * @brief Get field ax from vk_external_ins_nav message
  744. *
  745. * @return [m/s/s] roll angle
  746. */
  747. static inline float mavlink_msg_vk_external_ins_nav_get_ax(const mavlink_message_t* msg)
  748. {
  749. return _MAV_RETURN_float(msg, 52);
  750. }
  751. /**
  752. * @brief Get field ay from vk_external_ins_nav message
  753. *
  754. * @return [m/s/s] roll angle
  755. */
  756. static inline float mavlink_msg_vk_external_ins_nav_get_ay(const mavlink_message_t* msg)
  757. {
  758. return _MAV_RETURN_float(msg, 56);
  759. }
  760. /**
  761. * @brief Get field az from vk_external_ins_nav message
  762. *
  763. * @return [m/s/s] roll angle
  764. */
  765. static inline float mavlink_msg_vk_external_ins_nav_get_az(const mavlink_message_t* msg)
  766. {
  767. return _MAV_RETURN_float(msg, 60);
  768. }
  769. /**
  770. * @brief Get field sat_lon from vk_external_ins_nav message
  771. *
  772. * @return [degE7] gps longitude
  773. */
  774. static inline int32_t mavlink_msg_vk_external_ins_nav_get_sat_lon(const mavlink_message_t* msg)
  775. {
  776. return _MAV_RETURN_int32_t(msg, 64);
  777. }
  778. /**
  779. * @brief Get field sat_lat from vk_external_ins_nav message
  780. *
  781. * @return [degE7] gps latitude
  782. */
  783. static inline int32_t mavlink_msg_vk_external_ins_nav_get_sat_lat(const mavlink_message_t* msg)
  784. {
  785. return _MAV_RETURN_int32_t(msg, 68);
  786. }
  787. /**
  788. * @brief Get field sat_msl from vk_external_ins_nav message
  789. *
  790. * @return [m] gps altitude
  791. */
  792. static inline float mavlink_msg_vk_external_ins_nav_get_sat_msl(const mavlink_message_t* msg)
  793. {
  794. return _MAV_RETURN_float(msg, 72);
  795. }
  796. /**
  797. * @brief Get field sat_ve from vk_external_ins_nav message
  798. *
  799. * @return [m/s] gps east speed
  800. */
  801. static inline float mavlink_msg_vk_external_ins_nav_get_sat_ve(const mavlink_message_t* msg)
  802. {
  803. return _MAV_RETURN_float(msg, 76);
  804. }
  805. /**
  806. * @brief Get field sat_vn from vk_external_ins_nav message
  807. *
  808. * @return [m/s] gps north speed
  809. */
  810. static inline float mavlink_msg_vk_external_ins_nav_get_sat_vn(const mavlink_message_t* msg)
  811. {
  812. return _MAV_RETURN_float(msg, 80);
  813. }
  814. /**
  815. * @brief Get field sat_vu from vk_external_ins_nav message
  816. *
  817. * @return [m/s] gps up speed
  818. */
  819. static inline float mavlink_msg_vk_external_ins_nav_get_sat_vu(const mavlink_message_t* msg)
  820. {
  821. return _MAV_RETURN_float(msg, 84);
  822. }
  823. /**
  824. * @brief Get field sat_pfix from vk_external_ins_nav message
  825. *
  826. * @return gps position fix
  827. */
  828. static inline uint8_t mavlink_msg_vk_external_ins_nav_get_sat_pfix(const mavlink_message_t* msg)
  829. {
  830. return _MAV_RETURN_uint8_t(msg, 88);
  831. }
  832. /**
  833. * @brief Get field sat_hfix from vk_external_ins_nav message
  834. *
  835. * @return gps heading fix
  836. */
  837. static inline uint8_t mavlink_msg_vk_external_ins_nav_get_sat_hfix(const mavlink_message_t* msg)
  838. {
  839. return _MAV_RETURN_uint8_t(msg, 89);
  840. }
  841. /**
  842. * @brief Get field wk_state from vk_external_ins_nav message
  843. *
  844. * @return work state
  845. */
  846. static inline uint8_t mavlink_msg_vk_external_ins_nav_get_wk_state(const mavlink_message_t* msg)
  847. {
  848. return _MAV_RETURN_uint8_t(msg, 90);
  849. }
  850. /**
  851. * @brief Get field err_code from vk_external_ins_nav message
  852. *
  853. * @return error code
  854. */
  855. static inline uint8_t mavlink_msg_vk_external_ins_nav_get_err_code(const mavlink_message_t* msg)
  856. {
  857. return _MAV_RETURN_uint8_t(msg, 91);
  858. }
  859. /**
  860. * @brief Decode a vk_external_ins_nav message into a struct
  861. *
  862. * @param msg The message to decode
  863. * @param vk_external_ins_nav C-struct to decode the message contents into
  864. */
  865. static inline void mavlink_msg_vk_external_ins_nav_decode(const mavlink_message_t* msg, mavlink_vk_external_ins_nav_t* vk_external_ins_nav)
  866. {
  867. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  868. vk_external_ins_nav->timestamp = mavlink_msg_vk_external_ins_nav_get_timestamp(msg);
  869. vk_external_ins_nav->lon = mavlink_msg_vk_external_ins_nav_get_lon(msg);
  870. vk_external_ins_nav->lat = mavlink_msg_vk_external_ins_nav_get_lat(msg);
  871. vk_external_ins_nav->msl = mavlink_msg_vk_external_ins_nav_get_msl(msg);
  872. vk_external_ins_nav->ve = mavlink_msg_vk_external_ins_nav_get_ve(msg);
  873. vk_external_ins_nav->vn = mavlink_msg_vk_external_ins_nav_get_vn(msg);
  874. vk_external_ins_nav->vu = mavlink_msg_vk_external_ins_nav_get_vu(msg);
  875. vk_external_ins_nav->yaw = mavlink_msg_vk_external_ins_nav_get_yaw(msg);
  876. vk_external_ins_nav->pitch = mavlink_msg_vk_external_ins_nav_get_pitch(msg);
  877. vk_external_ins_nav->roll = mavlink_msg_vk_external_ins_nav_get_roll(msg);
  878. vk_external_ins_nav->gx = mavlink_msg_vk_external_ins_nav_get_gx(msg);
  879. vk_external_ins_nav->gy = mavlink_msg_vk_external_ins_nav_get_gy(msg);
  880. vk_external_ins_nav->gz = mavlink_msg_vk_external_ins_nav_get_gz(msg);
  881. vk_external_ins_nav->ax = mavlink_msg_vk_external_ins_nav_get_ax(msg);
  882. vk_external_ins_nav->ay = mavlink_msg_vk_external_ins_nav_get_ay(msg);
  883. vk_external_ins_nav->az = mavlink_msg_vk_external_ins_nav_get_az(msg);
  884. vk_external_ins_nav->sat_lon = mavlink_msg_vk_external_ins_nav_get_sat_lon(msg);
  885. vk_external_ins_nav->sat_lat = mavlink_msg_vk_external_ins_nav_get_sat_lat(msg);
  886. vk_external_ins_nav->sat_msl = mavlink_msg_vk_external_ins_nav_get_sat_msl(msg);
  887. vk_external_ins_nav->sat_ve = mavlink_msg_vk_external_ins_nav_get_sat_ve(msg);
  888. vk_external_ins_nav->sat_vn = mavlink_msg_vk_external_ins_nav_get_sat_vn(msg);
  889. vk_external_ins_nav->sat_vu = mavlink_msg_vk_external_ins_nav_get_sat_vu(msg);
  890. vk_external_ins_nav->sat_pfix = mavlink_msg_vk_external_ins_nav_get_sat_pfix(msg);
  891. vk_external_ins_nav->sat_hfix = mavlink_msg_vk_external_ins_nav_get_sat_hfix(msg);
  892. vk_external_ins_nav->wk_state = mavlink_msg_vk_external_ins_nav_get_wk_state(msg);
  893. vk_external_ins_nav->err_code = mavlink_msg_vk_external_ins_nav_get_err_code(msg);
  894. #else
  895. uint8_t len = msg->len < MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN? msg->len : MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN;
  896. memset(vk_external_ins_nav, 0, MAVLINK_MSG_ID_VK_EXTERNAL_INS_NAV_LEN);
  897. memcpy(vk_external_ins_nav, _MAV_PAYLOAD(msg), len);
  898. #endif
  899. }