mavlink_msg_vk_engine_ecu_staus.h 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850
  1. #pragma once
  2. // MESSAGE VK_ENGINE_ECU_STAUS PACKING
  3. #define MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS 53005
  4. MAVPACKED(
  5. typedef struct __mavlink_vk_engine_ecu_staus_t {
  6. uint32_t timestamp; /*< [ms] Timestamp in ms from system boot.*/
  7. uint32_t total_runtime; /*< [min] range extender output voltage*/
  8. uint16_t spd_rpm; /*< rotational speed in rpm*/
  9. int16_t cylinderA_temp; /*< [degC] CylinderA head temperature*/
  10. int16_t cylinderB_temp; /*< [degC] CylinderB head temperature*/
  11. int16_t coolant_temp; /*< [degC] coolant head temperature*/
  12. uint16_t fuel_remain; /*< engine index*/
  13. uint16_t alarm; /*< range extender alarm bitmap*/
  14. uint16_t runtime; /*< [min] range extender output voltage*/
  15. uint16_t service_time; /*< [min] left time for service*/
  16. uint16_t output_volt; /*< [dV] range extender output voltage*/
  17. uint16_t output_curr; /*< [dA] range extender output current*/
  18. uint8_t thr_pos; /*< [%] throttle
  19. position */
  20. uint8_t fuel_pos; /*< [%] fuel
  21. position*/
  22. uint8_t fault; /*< engine fault*/
  23. uint8_t engine_state; /*< engine state*/
  24. uint8_t index; /*< engine index*/
  25. uint8_t reserve[4]; /*< engine state*/
  26. uint16_t inlet_pressure; /*< [hPa] inlet air pressure*/
  27. int16_t ge_temp; /*< [degC] Ge temperature*/
  28. int16_t temp_1; /*< [degC] Ge temperature*/
  29. int16_t volt_2; /*< [dV] Ge temperature*/
  30. }) mavlink_vk_engine_ecu_staus_t;
  31. #define MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN 45
  32. #define MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_MIN_LEN 37
  33. #define MAVLINK_MSG_ID_53005_LEN 45
  34. #define MAVLINK_MSG_ID_53005_MIN_LEN 37
  35. #define MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_CRC 145
  36. #define MAVLINK_MSG_ID_53005_CRC 145
  37. #define MAVLINK_MSG_VK_ENGINE_ECU_STAUS_FIELD_RESERVE_LEN 4
  38. #if MAVLINK_COMMAND_24BIT
  39. #define MAVLINK_MESSAGE_INFO_VK_ENGINE_ECU_STAUS { \
  40. 53005, \
  41. "VK_ENGINE_ECU_STAUS", \
  42. 22, \
  43. { { "timestamp", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vk_engine_ecu_staus_t, timestamp) }, \
  44. { "spd_rpm", NULL, MAVLINK_TYPE_UINT16_T, 0, 8, offsetof(mavlink_vk_engine_ecu_staus_t, spd_rpm) }, \
  45. { "thr_pos", NULL, MAVLINK_TYPE_UINT8_T, 0, 28, offsetof(mavlink_vk_engine_ecu_staus_t, thr_pos) }, \
  46. { "fuel_pos", NULL, MAVLINK_TYPE_UINT8_T, 0, 29, offsetof(mavlink_vk_engine_ecu_staus_t, fuel_pos) }, \
  47. { "cylinderA_temp", NULL, MAVLINK_TYPE_INT16_T, 0, 10, offsetof(mavlink_vk_engine_ecu_staus_t, cylinderA_temp) }, \
  48. { "cylinderB_temp", NULL, MAVLINK_TYPE_INT16_T, 0, 12, offsetof(mavlink_vk_engine_ecu_staus_t, cylinderB_temp) }, \
  49. { "coolant_temp", NULL, MAVLINK_TYPE_INT16_T, 0, 14, offsetof(mavlink_vk_engine_ecu_staus_t, coolant_temp) }, \
  50. { "fuel_remain", NULL, MAVLINK_TYPE_UINT16_T, 0, 16, offsetof(mavlink_vk_engine_ecu_staus_t, fuel_remain) }, \
  51. { "alarm", NULL, MAVLINK_TYPE_UINT16_T, 0, 18, offsetof(mavlink_vk_engine_ecu_staus_t, alarm) }, \
  52. { "total_runtime", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_vk_engine_ecu_staus_t, total_runtime) }, \
  53. { "runtime", NULL, MAVLINK_TYPE_UINT16_T, 0, 20, offsetof(mavlink_vk_engine_ecu_staus_t, runtime) }, \
  54. { "service_time", NULL, MAVLINK_TYPE_UINT16_T, 0, 22, offsetof(mavlink_vk_engine_ecu_staus_t, service_time) }, \
  55. { "output_volt", NULL, MAVLINK_TYPE_UINT16_T, 0, 24, offsetof(mavlink_vk_engine_ecu_staus_t, output_volt) }, \
  56. { "output_curr", NULL, MAVLINK_TYPE_UINT16_T, 0, 26, offsetof(mavlink_vk_engine_ecu_staus_t, output_curr) }, \
  57. { "fault", NULL, MAVLINK_TYPE_UINT8_T, 0, 30, offsetof(mavlink_vk_engine_ecu_staus_t, fault) }, \
  58. { "engine_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 31, offsetof(mavlink_vk_engine_ecu_staus_t, engine_state) }, \
  59. { "index", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, offsetof(mavlink_vk_engine_ecu_staus_t, index) }, \
  60. { "reserve", NULL, MAVLINK_TYPE_UINT8_T, 4, 33, offsetof(mavlink_vk_engine_ecu_staus_t, reserve) }, \
  61. { "inlet_pressure", NULL, MAVLINK_TYPE_UINT16_T, 0, 37, offsetof(mavlink_vk_engine_ecu_staus_t, inlet_pressure) }, \
  62. { "ge_temp", NULL, MAVLINK_TYPE_INT16_T, 0, 39, offsetof(mavlink_vk_engine_ecu_staus_t, ge_temp) }, \
  63. { "temp_1", NULL, MAVLINK_TYPE_INT16_T, 0, 41, offsetof(mavlink_vk_engine_ecu_staus_t, temp_1) }, \
  64. { "volt_2", NULL, MAVLINK_TYPE_INT16_T, 0, 43, offsetof(mavlink_vk_engine_ecu_staus_t, volt_2) }, \
  65. } \
  66. }
  67. #else
  68. #define MAVLINK_MESSAGE_INFO_VK_ENGINE_ECU_STAUS { \
  69. "VK_ENGINE_ECU_STAUS", \
  70. 22, \
  71. { { "timestamp", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_vk_engine_ecu_staus_t, timestamp) }, \
  72. { "spd_rpm", NULL, MAVLINK_TYPE_UINT16_T, 0, 8, offsetof(mavlink_vk_engine_ecu_staus_t, spd_rpm) }, \
  73. { "thr_pos", NULL, MAVLINK_TYPE_UINT8_T, 0, 28, offsetof(mavlink_vk_engine_ecu_staus_t, thr_pos) }, \
  74. { "fuel_pos", NULL, MAVLINK_TYPE_UINT8_T, 0, 29, offsetof(mavlink_vk_engine_ecu_staus_t, fuel_pos) }, \
  75. { "cylinderA_temp", NULL, MAVLINK_TYPE_INT16_T, 0, 10, offsetof(mavlink_vk_engine_ecu_staus_t, cylinderA_temp) }, \
  76. { "cylinderB_temp", NULL, MAVLINK_TYPE_INT16_T, 0, 12, offsetof(mavlink_vk_engine_ecu_staus_t, cylinderB_temp) }, \
  77. { "coolant_temp", NULL, MAVLINK_TYPE_INT16_T, 0, 14, offsetof(mavlink_vk_engine_ecu_staus_t, coolant_temp) }, \
  78. { "fuel_remain", NULL, MAVLINK_TYPE_UINT16_T, 0, 16, offsetof(mavlink_vk_engine_ecu_staus_t, fuel_remain) }, \
  79. { "alarm", NULL, MAVLINK_TYPE_UINT16_T, 0, 18, offsetof(mavlink_vk_engine_ecu_staus_t, alarm) }, \
  80. { "total_runtime", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_vk_engine_ecu_staus_t, total_runtime) }, \
  81. { "runtime", NULL, MAVLINK_TYPE_UINT16_T, 0, 20, offsetof(mavlink_vk_engine_ecu_staus_t, runtime) }, \
  82. { "service_time", NULL, MAVLINK_TYPE_UINT16_T, 0, 22, offsetof(mavlink_vk_engine_ecu_staus_t, service_time) }, \
  83. { "output_volt", NULL, MAVLINK_TYPE_UINT16_T, 0, 24, offsetof(mavlink_vk_engine_ecu_staus_t, output_volt) }, \
  84. { "output_curr", NULL, MAVLINK_TYPE_UINT16_T, 0, 26, offsetof(mavlink_vk_engine_ecu_staus_t, output_curr) }, \
  85. { "fault", NULL, MAVLINK_TYPE_UINT8_T, 0, 30, offsetof(mavlink_vk_engine_ecu_staus_t, fault) }, \
  86. { "engine_state", NULL, MAVLINK_TYPE_UINT8_T, 0, 31, offsetof(mavlink_vk_engine_ecu_staus_t, engine_state) }, \
  87. { "index", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, offsetof(mavlink_vk_engine_ecu_staus_t, index) }, \
  88. { "reserve", NULL, MAVLINK_TYPE_UINT8_T, 4, 33, offsetof(mavlink_vk_engine_ecu_staus_t, reserve) }, \
  89. { "inlet_pressure", NULL, MAVLINK_TYPE_UINT16_T, 0, 37, offsetof(mavlink_vk_engine_ecu_staus_t, inlet_pressure) }, \
  90. { "ge_temp", NULL, MAVLINK_TYPE_INT16_T, 0, 39, offsetof(mavlink_vk_engine_ecu_staus_t, ge_temp) }, \
  91. { "temp_1", NULL, MAVLINK_TYPE_INT16_T, 0, 41, offsetof(mavlink_vk_engine_ecu_staus_t, temp_1) }, \
  92. { "volt_2", NULL, MAVLINK_TYPE_INT16_T, 0, 43, offsetof(mavlink_vk_engine_ecu_staus_t, volt_2) }, \
  93. } \
  94. }
  95. #endif
  96. /**
  97. * @brief Pack a vk_engine_ecu_staus message
  98. * @param system_id ID of this system
  99. * @param component_id ID of this component (e.g. 200 for IMU)
  100. * @param msg The MAVLink message to compress the data into
  101. *
  102. * @param timestamp [ms] Timestamp in ms from system boot.
  103. * @param spd_rpm rotational speed in rpm
  104. * @param thr_pos [%] throttle
  105. position
  106. * @param fuel_pos [%] fuel
  107. position
  108. * @param cylinderA_temp [degC] CylinderA head temperature
  109. * @param cylinderB_temp [degC] CylinderB head temperature
  110. * @param coolant_temp [degC] coolant head temperature
  111. * @param fuel_remain engine index
  112. * @param alarm range extender alarm bitmap
  113. * @param total_runtime [min] range extender output voltage
  114. * @param runtime [min] range extender output voltage
  115. * @param service_time [min] left time for service
  116. * @param output_volt [dV] range extender output voltage
  117. * @param output_curr [dA] range extender output current
  118. * @param fault engine fault
  119. * @param engine_state engine state
  120. * @param index engine index
  121. * @param reserve engine state
  122. * @param inlet_pressure [hPa] inlet air pressure
  123. * @param ge_temp [degC] Ge temperature
  124. * @param temp_1 [degC] Ge temperature
  125. * @param volt_2 [dV] Ge temperature
  126. * @return length of the message in bytes (excluding serial stream start sign)
  127. */
  128. static inline uint16_t mavlink_msg_vk_engine_ecu_staus_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
  129. uint32_t timestamp, uint16_t spd_rpm, uint8_t thr_pos, uint8_t fuel_pos, int16_t cylinderA_temp, int16_t cylinderB_temp, int16_t coolant_temp, uint16_t fuel_remain, uint16_t alarm, uint32_t total_runtime, uint16_t runtime, uint16_t service_time, uint16_t output_volt, uint16_t output_curr, uint8_t fault, uint8_t engine_state, uint8_t index, const uint8_t *reserve, uint16_t inlet_pressure, int16_t ge_temp, int16_t temp_1, int16_t volt_2)
  130. {
  131. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  132. char buf[MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN];
  133. _mav_put_uint32_t(buf, 0, timestamp);
  134. _mav_put_uint32_t(buf, 4, total_runtime);
  135. _mav_put_uint16_t(buf, 8, spd_rpm);
  136. _mav_put_int16_t(buf, 10, cylinderA_temp);
  137. _mav_put_int16_t(buf, 12, cylinderB_temp);
  138. _mav_put_int16_t(buf, 14, coolant_temp);
  139. _mav_put_uint16_t(buf, 16, fuel_remain);
  140. _mav_put_uint16_t(buf, 18, alarm);
  141. _mav_put_uint16_t(buf, 20, runtime);
  142. _mav_put_uint16_t(buf, 22, service_time);
  143. _mav_put_uint16_t(buf, 24, output_volt);
  144. _mav_put_uint16_t(buf, 26, output_curr);
  145. _mav_put_uint8_t(buf, 28, thr_pos);
  146. _mav_put_uint8_t(buf, 29, fuel_pos);
  147. _mav_put_uint8_t(buf, 30, fault);
  148. _mav_put_uint8_t(buf, 31, engine_state);
  149. _mav_put_uint8_t(buf, 32, index);
  150. _mav_put_uint16_t(buf, 37, inlet_pressure);
  151. _mav_put_int16_t(buf, 39, ge_temp);
  152. _mav_put_int16_t(buf, 41, temp_1);
  153. _mav_put_int16_t(buf, 43, volt_2);
  154. _mav_put_uint8_t_array(buf, 33, reserve, 4);
  155. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN);
  156. #else
  157. mavlink_vk_engine_ecu_staus_t packet;
  158. packet.timestamp = timestamp;
  159. packet.total_runtime = total_runtime;
  160. packet.spd_rpm = spd_rpm;
  161. packet.cylinderA_temp = cylinderA_temp;
  162. packet.cylinderB_temp = cylinderB_temp;
  163. packet.coolant_temp = coolant_temp;
  164. packet.fuel_remain = fuel_remain;
  165. packet.alarm = alarm;
  166. packet.runtime = runtime;
  167. packet.service_time = service_time;
  168. packet.output_volt = output_volt;
  169. packet.output_curr = output_curr;
  170. packet.thr_pos = thr_pos;
  171. packet.fuel_pos = fuel_pos;
  172. packet.fault = fault;
  173. packet.engine_state = engine_state;
  174. packet.index = index;
  175. packet.inlet_pressure = inlet_pressure;
  176. packet.ge_temp = ge_temp;
  177. packet.temp_1 = temp_1;
  178. packet.volt_2 = volt_2;
  179. mav_array_memcpy(packet.reserve, reserve, sizeof(uint8_t)*4);
  180. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN);
  181. #endif
  182. msg->msgid = MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS;
  183. return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_MIN_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_CRC);
  184. }
  185. /**
  186. * @brief Pack a vk_engine_ecu_staus message
  187. * @param system_id ID of this system
  188. * @param component_id ID of this component (e.g. 200 for IMU)
  189. * @param status MAVLink status structure
  190. * @param msg The MAVLink message to compress the data into
  191. *
  192. * @param timestamp [ms] Timestamp in ms from system boot.
  193. * @param spd_rpm rotational speed in rpm
  194. * @param thr_pos [%] throttle
  195. position
  196. * @param fuel_pos [%] fuel
  197. position
  198. * @param cylinderA_temp [degC] CylinderA head temperature
  199. * @param cylinderB_temp [degC] CylinderB head temperature
  200. * @param coolant_temp [degC] coolant head temperature
  201. * @param fuel_remain engine index
  202. * @param alarm range extender alarm bitmap
  203. * @param total_runtime [min] range extender output voltage
  204. * @param runtime [min] range extender output voltage
  205. * @param service_time [min] left time for service
  206. * @param output_volt [dV] range extender output voltage
  207. * @param output_curr [dA] range extender output current
  208. * @param fault engine fault
  209. * @param engine_state engine state
  210. * @param index engine index
  211. * @param reserve engine state
  212. * @param inlet_pressure [hPa] inlet air pressure
  213. * @param ge_temp [degC] Ge temperature
  214. * @param temp_1 [degC] Ge temperature
  215. * @param volt_2 [dV] Ge temperature
  216. * @return length of the message in bytes (excluding serial stream start sign)
  217. */
  218. static inline uint16_t mavlink_msg_vk_engine_ecu_staus_pack_status(uint8_t system_id, uint8_t component_id, mavlink_status_t *_status, mavlink_message_t* msg,
  219. uint32_t timestamp, uint16_t spd_rpm, uint8_t thr_pos, uint8_t fuel_pos, int16_t cylinderA_temp, int16_t cylinderB_temp, int16_t coolant_temp, uint16_t fuel_remain, uint16_t alarm, uint32_t total_runtime, uint16_t runtime, uint16_t service_time, uint16_t output_volt, uint16_t output_curr, uint8_t fault, uint8_t engine_state, uint8_t index, const uint8_t *reserve, uint16_t inlet_pressure, int16_t ge_temp, int16_t temp_1, int16_t volt_2)
  220. {
  221. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  222. char buf[MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN];
  223. _mav_put_uint32_t(buf, 0, timestamp);
  224. _mav_put_uint32_t(buf, 4, total_runtime);
  225. _mav_put_uint16_t(buf, 8, spd_rpm);
  226. _mav_put_int16_t(buf, 10, cylinderA_temp);
  227. _mav_put_int16_t(buf, 12, cylinderB_temp);
  228. _mav_put_int16_t(buf, 14, coolant_temp);
  229. _mav_put_uint16_t(buf, 16, fuel_remain);
  230. _mav_put_uint16_t(buf, 18, alarm);
  231. _mav_put_uint16_t(buf, 20, runtime);
  232. _mav_put_uint16_t(buf, 22, service_time);
  233. _mav_put_uint16_t(buf, 24, output_volt);
  234. _mav_put_uint16_t(buf, 26, output_curr);
  235. _mav_put_uint8_t(buf, 28, thr_pos);
  236. _mav_put_uint8_t(buf, 29, fuel_pos);
  237. _mav_put_uint8_t(buf, 30, fault);
  238. _mav_put_uint8_t(buf, 31, engine_state);
  239. _mav_put_uint8_t(buf, 32, index);
  240. _mav_put_uint16_t(buf, 37, inlet_pressure);
  241. _mav_put_int16_t(buf, 39, ge_temp);
  242. _mav_put_int16_t(buf, 41, temp_1);
  243. _mav_put_int16_t(buf, 43, volt_2);
  244. _mav_put_uint8_t_array(buf, 33, reserve, 4);
  245. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN);
  246. #else
  247. mavlink_vk_engine_ecu_staus_t packet;
  248. packet.timestamp = timestamp;
  249. packet.total_runtime = total_runtime;
  250. packet.spd_rpm = spd_rpm;
  251. packet.cylinderA_temp = cylinderA_temp;
  252. packet.cylinderB_temp = cylinderB_temp;
  253. packet.coolant_temp = coolant_temp;
  254. packet.fuel_remain = fuel_remain;
  255. packet.alarm = alarm;
  256. packet.runtime = runtime;
  257. packet.service_time = service_time;
  258. packet.output_volt = output_volt;
  259. packet.output_curr = output_curr;
  260. packet.thr_pos = thr_pos;
  261. packet.fuel_pos = fuel_pos;
  262. packet.fault = fault;
  263. packet.engine_state = engine_state;
  264. packet.index = index;
  265. packet.inlet_pressure = inlet_pressure;
  266. packet.ge_temp = ge_temp;
  267. packet.temp_1 = temp_1;
  268. packet.volt_2 = volt_2;
  269. mav_array_memcpy(packet.reserve, reserve, sizeof(uint8_t)*4);
  270. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN);
  271. #endif
  272. msg->msgid = MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS;
  273. #if MAVLINK_CRC_EXTRA
  274. return mavlink_finalize_message_buffer(msg, system_id, component_id, _status, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_MIN_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_CRC);
  275. #else
  276. return mavlink_finalize_message_buffer(msg, system_id, component_id, _status, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_MIN_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN);
  277. #endif
  278. }
  279. /**
  280. * @brief Pack a vk_engine_ecu_staus message on a channel
  281. * @param system_id ID of this system
  282. * @param component_id ID of this component (e.g. 200 for IMU)
  283. * @param chan The MAVLink channel this message will be sent over
  284. * @param msg The MAVLink message to compress the data into
  285. * @param timestamp [ms] Timestamp in ms from system boot.
  286. * @param spd_rpm rotational speed in rpm
  287. * @param thr_pos [%] throttle
  288. position
  289. * @param fuel_pos [%] fuel
  290. position
  291. * @param cylinderA_temp [degC] CylinderA head temperature
  292. * @param cylinderB_temp [degC] CylinderB head temperature
  293. * @param coolant_temp [degC] coolant head temperature
  294. * @param fuel_remain engine index
  295. * @param alarm range extender alarm bitmap
  296. * @param total_runtime [min] range extender output voltage
  297. * @param runtime [min] range extender output voltage
  298. * @param service_time [min] left time for service
  299. * @param output_volt [dV] range extender output voltage
  300. * @param output_curr [dA] range extender output current
  301. * @param fault engine fault
  302. * @param engine_state engine state
  303. * @param index engine index
  304. * @param reserve engine state
  305. * @param inlet_pressure [hPa] inlet air pressure
  306. * @param ge_temp [degC] Ge temperature
  307. * @param temp_1 [degC] Ge temperature
  308. * @param volt_2 [dV] Ge temperature
  309. * @return length of the message in bytes (excluding serial stream start sign)
  310. */
  311. static inline uint16_t mavlink_msg_vk_engine_ecu_staus_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
  312. mavlink_message_t* msg,
  313. uint32_t timestamp,uint16_t spd_rpm,uint8_t thr_pos,uint8_t fuel_pos,int16_t cylinderA_temp,int16_t cylinderB_temp,int16_t coolant_temp,uint16_t fuel_remain,uint16_t alarm,uint32_t total_runtime,uint16_t runtime,uint16_t service_time,uint16_t output_volt,uint16_t output_curr,uint8_t fault,uint8_t engine_state,uint8_t index,const uint8_t *reserve,uint16_t inlet_pressure,int16_t ge_temp,int16_t temp_1,int16_t volt_2)
  314. {
  315. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  316. char buf[MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN];
  317. _mav_put_uint32_t(buf, 0, timestamp);
  318. _mav_put_uint32_t(buf, 4, total_runtime);
  319. _mav_put_uint16_t(buf, 8, spd_rpm);
  320. _mav_put_int16_t(buf, 10, cylinderA_temp);
  321. _mav_put_int16_t(buf, 12, cylinderB_temp);
  322. _mav_put_int16_t(buf, 14, coolant_temp);
  323. _mav_put_uint16_t(buf, 16, fuel_remain);
  324. _mav_put_uint16_t(buf, 18, alarm);
  325. _mav_put_uint16_t(buf, 20, runtime);
  326. _mav_put_uint16_t(buf, 22, service_time);
  327. _mav_put_uint16_t(buf, 24, output_volt);
  328. _mav_put_uint16_t(buf, 26, output_curr);
  329. _mav_put_uint8_t(buf, 28, thr_pos);
  330. _mav_put_uint8_t(buf, 29, fuel_pos);
  331. _mav_put_uint8_t(buf, 30, fault);
  332. _mav_put_uint8_t(buf, 31, engine_state);
  333. _mav_put_uint8_t(buf, 32, index);
  334. _mav_put_uint16_t(buf, 37, inlet_pressure);
  335. _mav_put_int16_t(buf, 39, ge_temp);
  336. _mav_put_int16_t(buf, 41, temp_1);
  337. _mav_put_int16_t(buf, 43, volt_2);
  338. _mav_put_uint8_t_array(buf, 33, reserve, 4);
  339. memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN);
  340. #else
  341. mavlink_vk_engine_ecu_staus_t packet;
  342. packet.timestamp = timestamp;
  343. packet.total_runtime = total_runtime;
  344. packet.spd_rpm = spd_rpm;
  345. packet.cylinderA_temp = cylinderA_temp;
  346. packet.cylinderB_temp = cylinderB_temp;
  347. packet.coolant_temp = coolant_temp;
  348. packet.fuel_remain = fuel_remain;
  349. packet.alarm = alarm;
  350. packet.runtime = runtime;
  351. packet.service_time = service_time;
  352. packet.output_volt = output_volt;
  353. packet.output_curr = output_curr;
  354. packet.thr_pos = thr_pos;
  355. packet.fuel_pos = fuel_pos;
  356. packet.fault = fault;
  357. packet.engine_state = engine_state;
  358. packet.index = index;
  359. packet.inlet_pressure = inlet_pressure;
  360. packet.ge_temp = ge_temp;
  361. packet.temp_1 = temp_1;
  362. packet.volt_2 = volt_2;
  363. mav_array_memcpy(packet.reserve, reserve, sizeof(uint8_t)*4);
  364. memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN);
  365. #endif
  366. msg->msgid = MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS;
  367. return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_MIN_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_CRC);
  368. }
  369. /**
  370. * @brief Encode a vk_engine_ecu_staus struct
  371. *
  372. * @param system_id ID of this system
  373. * @param component_id ID of this component (e.g. 200 for IMU)
  374. * @param msg The MAVLink message to compress the data into
  375. * @param vk_engine_ecu_staus C-struct to read the message contents from
  376. */
  377. static inline uint16_t mavlink_msg_vk_engine_ecu_staus_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_vk_engine_ecu_staus_t* vk_engine_ecu_staus)
  378. {
  379. return mavlink_msg_vk_engine_ecu_staus_pack(system_id, component_id, msg, vk_engine_ecu_staus->timestamp, vk_engine_ecu_staus->spd_rpm, vk_engine_ecu_staus->thr_pos, vk_engine_ecu_staus->fuel_pos, vk_engine_ecu_staus->cylinderA_temp, vk_engine_ecu_staus->cylinderB_temp, vk_engine_ecu_staus->coolant_temp, vk_engine_ecu_staus->fuel_remain, vk_engine_ecu_staus->alarm, vk_engine_ecu_staus->total_runtime, vk_engine_ecu_staus->runtime, vk_engine_ecu_staus->service_time, vk_engine_ecu_staus->output_volt, vk_engine_ecu_staus->output_curr, vk_engine_ecu_staus->fault, vk_engine_ecu_staus->engine_state, vk_engine_ecu_staus->index, vk_engine_ecu_staus->reserve, vk_engine_ecu_staus->inlet_pressure, vk_engine_ecu_staus->ge_temp, vk_engine_ecu_staus->temp_1, vk_engine_ecu_staus->volt_2);
  380. }
  381. /**
  382. * @brief Encode a vk_engine_ecu_staus struct on a channel
  383. *
  384. * @param system_id ID of this system
  385. * @param component_id ID of this component (e.g. 200 for IMU)
  386. * @param chan The MAVLink channel this message will be sent over
  387. * @param msg The MAVLink message to compress the data into
  388. * @param vk_engine_ecu_staus C-struct to read the message contents from
  389. */
  390. static inline uint16_t mavlink_msg_vk_engine_ecu_staus_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_vk_engine_ecu_staus_t* vk_engine_ecu_staus)
  391. {
  392. return mavlink_msg_vk_engine_ecu_staus_pack_chan(system_id, component_id, chan, msg, vk_engine_ecu_staus->timestamp, vk_engine_ecu_staus->spd_rpm, vk_engine_ecu_staus->thr_pos, vk_engine_ecu_staus->fuel_pos, vk_engine_ecu_staus->cylinderA_temp, vk_engine_ecu_staus->cylinderB_temp, vk_engine_ecu_staus->coolant_temp, vk_engine_ecu_staus->fuel_remain, vk_engine_ecu_staus->alarm, vk_engine_ecu_staus->total_runtime, vk_engine_ecu_staus->runtime, vk_engine_ecu_staus->service_time, vk_engine_ecu_staus->output_volt, vk_engine_ecu_staus->output_curr, vk_engine_ecu_staus->fault, vk_engine_ecu_staus->engine_state, vk_engine_ecu_staus->index, vk_engine_ecu_staus->reserve, vk_engine_ecu_staus->inlet_pressure, vk_engine_ecu_staus->ge_temp, vk_engine_ecu_staus->temp_1, vk_engine_ecu_staus->volt_2);
  393. }
  394. /**
  395. * @brief Encode a vk_engine_ecu_staus struct with provided status structure
  396. *
  397. * @param system_id ID of this system
  398. * @param component_id ID of this component (e.g. 200 for IMU)
  399. * @param status MAVLink status structure
  400. * @param msg The MAVLink message to compress the data into
  401. * @param vk_engine_ecu_staus C-struct to read the message contents from
  402. */
  403. static inline uint16_t mavlink_msg_vk_engine_ecu_staus_encode_status(uint8_t system_id, uint8_t component_id, mavlink_status_t* _status, mavlink_message_t* msg, const mavlink_vk_engine_ecu_staus_t* vk_engine_ecu_staus)
  404. {
  405. return mavlink_msg_vk_engine_ecu_staus_pack_status(system_id, component_id, _status, msg, vk_engine_ecu_staus->timestamp, vk_engine_ecu_staus->spd_rpm, vk_engine_ecu_staus->thr_pos, vk_engine_ecu_staus->fuel_pos, vk_engine_ecu_staus->cylinderA_temp, vk_engine_ecu_staus->cylinderB_temp, vk_engine_ecu_staus->coolant_temp, vk_engine_ecu_staus->fuel_remain, vk_engine_ecu_staus->alarm, vk_engine_ecu_staus->total_runtime, vk_engine_ecu_staus->runtime, vk_engine_ecu_staus->service_time, vk_engine_ecu_staus->output_volt, vk_engine_ecu_staus->output_curr, vk_engine_ecu_staus->fault, vk_engine_ecu_staus->engine_state, vk_engine_ecu_staus->index, vk_engine_ecu_staus->reserve, vk_engine_ecu_staus->inlet_pressure, vk_engine_ecu_staus->ge_temp, vk_engine_ecu_staus->temp_1, vk_engine_ecu_staus->volt_2);
  406. }
  407. /**
  408. * @brief Send a vk_engine_ecu_staus message
  409. * @param chan MAVLink channel to send the message
  410. *
  411. * @param timestamp [ms] Timestamp in ms from system boot.
  412. * @param spd_rpm rotational speed in rpm
  413. * @param thr_pos [%] throttle
  414. position
  415. * @param fuel_pos [%] fuel
  416. position
  417. * @param cylinderA_temp [degC] CylinderA head temperature
  418. * @param cylinderB_temp [degC] CylinderB head temperature
  419. * @param coolant_temp [degC] coolant head temperature
  420. * @param fuel_remain engine index
  421. * @param alarm range extender alarm bitmap
  422. * @param total_runtime [min] range extender output voltage
  423. * @param runtime [min] range extender output voltage
  424. * @param service_time [min] left time for service
  425. * @param output_volt [dV] range extender output voltage
  426. * @param output_curr [dA] range extender output current
  427. * @param fault engine fault
  428. * @param engine_state engine state
  429. * @param index engine index
  430. * @param reserve engine state
  431. * @param inlet_pressure [hPa] inlet air pressure
  432. * @param ge_temp [degC] Ge temperature
  433. * @param temp_1 [degC] Ge temperature
  434. * @param volt_2 [dV] Ge temperature
  435. */
  436. #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
  437. static inline void mavlink_msg_vk_engine_ecu_staus_send(mavlink_channel_t chan, uint32_t timestamp, uint16_t spd_rpm, uint8_t thr_pos, uint8_t fuel_pos, int16_t cylinderA_temp, int16_t cylinderB_temp, int16_t coolant_temp, uint16_t fuel_remain, uint16_t alarm, uint32_t total_runtime, uint16_t runtime, uint16_t service_time, uint16_t output_volt, uint16_t output_curr, uint8_t fault, uint8_t engine_state, uint8_t index, const uint8_t *reserve, uint16_t inlet_pressure, int16_t ge_temp, int16_t temp_1, int16_t volt_2)
  438. {
  439. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  440. char buf[MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN];
  441. _mav_put_uint32_t(buf, 0, timestamp);
  442. _mav_put_uint32_t(buf, 4, total_runtime);
  443. _mav_put_uint16_t(buf, 8, spd_rpm);
  444. _mav_put_int16_t(buf, 10, cylinderA_temp);
  445. _mav_put_int16_t(buf, 12, cylinderB_temp);
  446. _mav_put_int16_t(buf, 14, coolant_temp);
  447. _mav_put_uint16_t(buf, 16, fuel_remain);
  448. _mav_put_uint16_t(buf, 18, alarm);
  449. _mav_put_uint16_t(buf, 20, runtime);
  450. _mav_put_uint16_t(buf, 22, service_time);
  451. _mav_put_uint16_t(buf, 24, output_volt);
  452. _mav_put_uint16_t(buf, 26, output_curr);
  453. _mav_put_uint8_t(buf, 28, thr_pos);
  454. _mav_put_uint8_t(buf, 29, fuel_pos);
  455. _mav_put_uint8_t(buf, 30, fault);
  456. _mav_put_uint8_t(buf, 31, engine_state);
  457. _mav_put_uint8_t(buf, 32, index);
  458. _mav_put_uint16_t(buf, 37, inlet_pressure);
  459. _mav_put_int16_t(buf, 39, ge_temp);
  460. _mav_put_int16_t(buf, 41, temp_1);
  461. _mav_put_int16_t(buf, 43, volt_2);
  462. _mav_put_uint8_t_array(buf, 33, reserve, 4);
  463. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS, buf, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_MIN_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_CRC);
  464. #else
  465. mavlink_vk_engine_ecu_staus_t packet;
  466. packet.timestamp = timestamp;
  467. packet.total_runtime = total_runtime;
  468. packet.spd_rpm = spd_rpm;
  469. packet.cylinderA_temp = cylinderA_temp;
  470. packet.cylinderB_temp = cylinderB_temp;
  471. packet.coolant_temp = coolant_temp;
  472. packet.fuel_remain = fuel_remain;
  473. packet.alarm = alarm;
  474. packet.runtime = runtime;
  475. packet.service_time = service_time;
  476. packet.output_volt = output_volt;
  477. packet.output_curr = output_curr;
  478. packet.thr_pos = thr_pos;
  479. packet.fuel_pos = fuel_pos;
  480. packet.fault = fault;
  481. packet.engine_state = engine_state;
  482. packet.index = index;
  483. packet.inlet_pressure = inlet_pressure;
  484. packet.ge_temp = ge_temp;
  485. packet.temp_1 = temp_1;
  486. packet.volt_2 = volt_2;
  487. mav_array_memcpy(packet.reserve, reserve, sizeof(uint8_t)*4);
  488. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS, (const char *)&packet, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_MIN_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_CRC);
  489. #endif
  490. }
  491. /**
  492. * @brief Send a vk_engine_ecu_staus message
  493. * @param chan MAVLink channel to send the message
  494. * @param struct The MAVLink struct to serialize
  495. */
  496. static inline void mavlink_msg_vk_engine_ecu_staus_send_struct(mavlink_channel_t chan, const mavlink_vk_engine_ecu_staus_t* vk_engine_ecu_staus)
  497. {
  498. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  499. mavlink_msg_vk_engine_ecu_staus_send(chan, vk_engine_ecu_staus->timestamp, vk_engine_ecu_staus->spd_rpm, vk_engine_ecu_staus->thr_pos, vk_engine_ecu_staus->fuel_pos, vk_engine_ecu_staus->cylinderA_temp, vk_engine_ecu_staus->cylinderB_temp, vk_engine_ecu_staus->coolant_temp, vk_engine_ecu_staus->fuel_remain, vk_engine_ecu_staus->alarm, vk_engine_ecu_staus->total_runtime, vk_engine_ecu_staus->runtime, vk_engine_ecu_staus->service_time, vk_engine_ecu_staus->output_volt, vk_engine_ecu_staus->output_curr, vk_engine_ecu_staus->fault, vk_engine_ecu_staus->engine_state, vk_engine_ecu_staus->index, vk_engine_ecu_staus->reserve, vk_engine_ecu_staus->inlet_pressure, vk_engine_ecu_staus->ge_temp, vk_engine_ecu_staus->temp_1, vk_engine_ecu_staus->volt_2);
  500. #else
  501. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS, (const char *)vk_engine_ecu_staus, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_MIN_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_CRC);
  502. #endif
  503. }
  504. #if MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN <= MAVLINK_MAX_PAYLOAD_LEN
  505. /*
  506. This variant of _send() can be used to save stack space by re-using
  507. memory from the receive buffer. The caller provides a
  508. mavlink_message_t which is the size of a full mavlink message. This
  509. is usually the receive buffer for the channel, and allows a reply to an
  510. incoming message with minimum stack space usage.
  511. */
  512. static inline void mavlink_msg_vk_engine_ecu_staus_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint32_t timestamp, uint16_t spd_rpm, uint8_t thr_pos, uint8_t fuel_pos, int16_t cylinderA_temp, int16_t cylinderB_temp, int16_t coolant_temp, uint16_t fuel_remain, uint16_t alarm, uint32_t total_runtime, uint16_t runtime, uint16_t service_time, uint16_t output_volt, uint16_t output_curr, uint8_t fault, uint8_t engine_state, uint8_t index, const uint8_t *reserve, uint16_t inlet_pressure, int16_t ge_temp, int16_t temp_1, int16_t volt_2)
  513. {
  514. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  515. char *buf = (char *)msgbuf;
  516. _mav_put_uint32_t(buf, 0, timestamp);
  517. _mav_put_uint32_t(buf, 4, total_runtime);
  518. _mav_put_uint16_t(buf, 8, spd_rpm);
  519. _mav_put_int16_t(buf, 10, cylinderA_temp);
  520. _mav_put_int16_t(buf, 12, cylinderB_temp);
  521. _mav_put_int16_t(buf, 14, coolant_temp);
  522. _mav_put_uint16_t(buf, 16, fuel_remain);
  523. _mav_put_uint16_t(buf, 18, alarm);
  524. _mav_put_uint16_t(buf, 20, runtime);
  525. _mav_put_uint16_t(buf, 22, service_time);
  526. _mav_put_uint16_t(buf, 24, output_volt);
  527. _mav_put_uint16_t(buf, 26, output_curr);
  528. _mav_put_uint8_t(buf, 28, thr_pos);
  529. _mav_put_uint8_t(buf, 29, fuel_pos);
  530. _mav_put_uint8_t(buf, 30, fault);
  531. _mav_put_uint8_t(buf, 31, engine_state);
  532. _mav_put_uint8_t(buf, 32, index);
  533. _mav_put_uint16_t(buf, 37, inlet_pressure);
  534. _mav_put_int16_t(buf, 39, ge_temp);
  535. _mav_put_int16_t(buf, 41, temp_1);
  536. _mav_put_int16_t(buf, 43, volt_2);
  537. _mav_put_uint8_t_array(buf, 33, reserve, 4);
  538. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS, buf, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_MIN_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_CRC);
  539. #else
  540. mavlink_vk_engine_ecu_staus_t *packet = (mavlink_vk_engine_ecu_staus_t *)msgbuf;
  541. packet->timestamp = timestamp;
  542. packet->total_runtime = total_runtime;
  543. packet->spd_rpm = spd_rpm;
  544. packet->cylinderA_temp = cylinderA_temp;
  545. packet->cylinderB_temp = cylinderB_temp;
  546. packet->coolant_temp = coolant_temp;
  547. packet->fuel_remain = fuel_remain;
  548. packet->alarm = alarm;
  549. packet->runtime = runtime;
  550. packet->service_time = service_time;
  551. packet->output_volt = output_volt;
  552. packet->output_curr = output_curr;
  553. packet->thr_pos = thr_pos;
  554. packet->fuel_pos = fuel_pos;
  555. packet->fault = fault;
  556. packet->engine_state = engine_state;
  557. packet->index = index;
  558. packet->inlet_pressure = inlet_pressure;
  559. packet->ge_temp = ge_temp;
  560. packet->temp_1 = temp_1;
  561. packet->volt_2 = volt_2;
  562. mav_array_memcpy(packet->reserve, reserve, sizeof(uint8_t)*4);
  563. _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS, (const char *)packet, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_MIN_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_CRC);
  564. #endif
  565. }
  566. #endif
  567. #endif
  568. // MESSAGE VK_ENGINE_ECU_STAUS UNPACKING
  569. /**
  570. * @brief Get field timestamp from vk_engine_ecu_staus message
  571. *
  572. * @return [ms] Timestamp in ms from system boot.
  573. */
  574. static inline uint32_t mavlink_msg_vk_engine_ecu_staus_get_timestamp(const mavlink_message_t* msg)
  575. {
  576. return _MAV_RETURN_uint32_t(msg, 0);
  577. }
  578. /**
  579. * @brief Get field spd_rpm from vk_engine_ecu_staus message
  580. *
  581. * @return rotational speed in rpm
  582. */
  583. static inline uint16_t mavlink_msg_vk_engine_ecu_staus_get_spd_rpm(const mavlink_message_t* msg)
  584. {
  585. return _MAV_RETURN_uint16_t(msg, 8);
  586. }
  587. /**
  588. * @brief Get field thr_pos from vk_engine_ecu_staus message
  589. *
  590. * @return [%] throttle
  591. position
  592. */
  593. static inline uint8_t mavlink_msg_vk_engine_ecu_staus_get_thr_pos(const mavlink_message_t* msg)
  594. {
  595. return _MAV_RETURN_uint8_t(msg, 28);
  596. }
  597. /**
  598. * @brief Get field fuel_pos from vk_engine_ecu_staus message
  599. *
  600. * @return [%] fuel
  601. position
  602. */
  603. static inline uint8_t mavlink_msg_vk_engine_ecu_staus_get_fuel_pos(const mavlink_message_t* msg)
  604. {
  605. return _MAV_RETURN_uint8_t(msg, 29);
  606. }
  607. /**
  608. * @brief Get field cylinderA_temp from vk_engine_ecu_staus message
  609. *
  610. * @return [degC] CylinderA head temperature
  611. */
  612. static inline int16_t mavlink_msg_vk_engine_ecu_staus_get_cylinderA_temp(const mavlink_message_t* msg)
  613. {
  614. return _MAV_RETURN_int16_t(msg, 10);
  615. }
  616. /**
  617. * @brief Get field cylinderB_temp from vk_engine_ecu_staus message
  618. *
  619. * @return [degC] CylinderB head temperature
  620. */
  621. static inline int16_t mavlink_msg_vk_engine_ecu_staus_get_cylinderB_temp(const mavlink_message_t* msg)
  622. {
  623. return _MAV_RETURN_int16_t(msg, 12);
  624. }
  625. /**
  626. * @brief Get field coolant_temp from vk_engine_ecu_staus message
  627. *
  628. * @return [degC] coolant head temperature
  629. */
  630. static inline int16_t mavlink_msg_vk_engine_ecu_staus_get_coolant_temp(const mavlink_message_t* msg)
  631. {
  632. return _MAV_RETURN_int16_t(msg, 14);
  633. }
  634. /**
  635. * @brief Get field fuel_remain from vk_engine_ecu_staus message
  636. *
  637. * @return engine index
  638. */
  639. static inline uint16_t mavlink_msg_vk_engine_ecu_staus_get_fuel_remain(const mavlink_message_t* msg)
  640. {
  641. return _MAV_RETURN_uint16_t(msg, 16);
  642. }
  643. /**
  644. * @brief Get field alarm from vk_engine_ecu_staus message
  645. *
  646. * @return range extender alarm bitmap
  647. */
  648. static inline uint16_t mavlink_msg_vk_engine_ecu_staus_get_alarm(const mavlink_message_t* msg)
  649. {
  650. return _MAV_RETURN_uint16_t(msg, 18);
  651. }
  652. /**
  653. * @brief Get field total_runtime from vk_engine_ecu_staus message
  654. *
  655. * @return [min] range extender output voltage
  656. */
  657. static inline uint32_t mavlink_msg_vk_engine_ecu_staus_get_total_runtime(const mavlink_message_t* msg)
  658. {
  659. return _MAV_RETURN_uint32_t(msg, 4);
  660. }
  661. /**
  662. * @brief Get field runtime from vk_engine_ecu_staus message
  663. *
  664. * @return [min] range extender output voltage
  665. */
  666. static inline uint16_t mavlink_msg_vk_engine_ecu_staus_get_runtime(const mavlink_message_t* msg)
  667. {
  668. return _MAV_RETURN_uint16_t(msg, 20);
  669. }
  670. /**
  671. * @brief Get field service_time from vk_engine_ecu_staus message
  672. *
  673. * @return [min] left time for service
  674. */
  675. static inline uint16_t mavlink_msg_vk_engine_ecu_staus_get_service_time(const mavlink_message_t* msg)
  676. {
  677. return _MAV_RETURN_uint16_t(msg, 22);
  678. }
  679. /**
  680. * @brief Get field output_volt from vk_engine_ecu_staus message
  681. *
  682. * @return [dV] range extender output voltage
  683. */
  684. static inline uint16_t mavlink_msg_vk_engine_ecu_staus_get_output_volt(const mavlink_message_t* msg)
  685. {
  686. return _MAV_RETURN_uint16_t(msg, 24);
  687. }
  688. /**
  689. * @brief Get field output_curr from vk_engine_ecu_staus message
  690. *
  691. * @return [dA] range extender output current
  692. */
  693. static inline uint16_t mavlink_msg_vk_engine_ecu_staus_get_output_curr(const mavlink_message_t* msg)
  694. {
  695. return _MAV_RETURN_uint16_t(msg, 26);
  696. }
  697. /**
  698. * @brief Get field fault from vk_engine_ecu_staus message
  699. *
  700. * @return engine fault
  701. */
  702. static inline uint8_t mavlink_msg_vk_engine_ecu_staus_get_fault(const mavlink_message_t* msg)
  703. {
  704. return _MAV_RETURN_uint8_t(msg, 30);
  705. }
  706. /**
  707. * @brief Get field engine_state from vk_engine_ecu_staus message
  708. *
  709. * @return engine state
  710. */
  711. static inline uint8_t mavlink_msg_vk_engine_ecu_staus_get_engine_state(const mavlink_message_t* msg)
  712. {
  713. return _MAV_RETURN_uint8_t(msg, 31);
  714. }
  715. /**
  716. * @brief Get field index from vk_engine_ecu_staus message
  717. *
  718. * @return engine index
  719. */
  720. static inline uint8_t mavlink_msg_vk_engine_ecu_staus_get_index(const mavlink_message_t* msg)
  721. {
  722. return _MAV_RETURN_uint8_t(msg, 32);
  723. }
  724. /**
  725. * @brief Get field reserve from vk_engine_ecu_staus message
  726. *
  727. * @return engine state
  728. */
  729. static inline uint16_t mavlink_msg_vk_engine_ecu_staus_get_reserve(const mavlink_message_t* msg, uint8_t *reserve)
  730. {
  731. return _MAV_RETURN_uint8_t_array(msg, reserve, 4, 33);
  732. }
  733. /**
  734. * @brief Get field inlet_pressure from vk_engine_ecu_staus message
  735. *
  736. * @return [hPa] inlet air pressure
  737. */
  738. static inline uint16_t mavlink_msg_vk_engine_ecu_staus_get_inlet_pressure(const mavlink_message_t* msg)
  739. {
  740. return _MAV_RETURN_uint16_t(msg, 37);
  741. }
  742. /**
  743. * @brief Get field ge_temp from vk_engine_ecu_staus message
  744. *
  745. * @return [degC] Ge temperature
  746. */
  747. static inline int16_t mavlink_msg_vk_engine_ecu_staus_get_ge_temp(const mavlink_message_t* msg)
  748. {
  749. return _MAV_RETURN_int16_t(msg, 39);
  750. }
  751. /**
  752. * @brief Get field temp_1 from vk_engine_ecu_staus message
  753. *
  754. * @return [degC] Ge temperature
  755. */
  756. static inline int16_t mavlink_msg_vk_engine_ecu_staus_get_temp_1(const mavlink_message_t* msg)
  757. {
  758. return _MAV_RETURN_int16_t(msg, 41);
  759. }
  760. /**
  761. * @brief Get field volt_2 from vk_engine_ecu_staus message
  762. *
  763. * @return [dV] Ge temperature
  764. */
  765. static inline int16_t mavlink_msg_vk_engine_ecu_staus_get_volt_2(const mavlink_message_t* msg)
  766. {
  767. return _MAV_RETURN_int16_t(msg, 43);
  768. }
  769. /**
  770. * @brief Decode a vk_engine_ecu_staus message into a struct
  771. *
  772. * @param msg The message to decode
  773. * @param vk_engine_ecu_staus C-struct to decode the message contents into
  774. */
  775. static inline void mavlink_msg_vk_engine_ecu_staus_decode(const mavlink_message_t* msg, mavlink_vk_engine_ecu_staus_t* vk_engine_ecu_staus)
  776. {
  777. #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
  778. vk_engine_ecu_staus->timestamp = mavlink_msg_vk_engine_ecu_staus_get_timestamp(msg);
  779. vk_engine_ecu_staus->total_runtime = mavlink_msg_vk_engine_ecu_staus_get_total_runtime(msg);
  780. vk_engine_ecu_staus->spd_rpm = mavlink_msg_vk_engine_ecu_staus_get_spd_rpm(msg);
  781. vk_engine_ecu_staus->cylinderA_temp = mavlink_msg_vk_engine_ecu_staus_get_cylinderA_temp(msg);
  782. vk_engine_ecu_staus->cylinderB_temp = mavlink_msg_vk_engine_ecu_staus_get_cylinderB_temp(msg);
  783. vk_engine_ecu_staus->coolant_temp = mavlink_msg_vk_engine_ecu_staus_get_coolant_temp(msg);
  784. vk_engine_ecu_staus->fuel_remain = mavlink_msg_vk_engine_ecu_staus_get_fuel_remain(msg);
  785. vk_engine_ecu_staus->alarm = mavlink_msg_vk_engine_ecu_staus_get_alarm(msg);
  786. vk_engine_ecu_staus->runtime = mavlink_msg_vk_engine_ecu_staus_get_runtime(msg);
  787. vk_engine_ecu_staus->service_time = mavlink_msg_vk_engine_ecu_staus_get_service_time(msg);
  788. vk_engine_ecu_staus->output_volt = mavlink_msg_vk_engine_ecu_staus_get_output_volt(msg);
  789. vk_engine_ecu_staus->output_curr = mavlink_msg_vk_engine_ecu_staus_get_output_curr(msg);
  790. vk_engine_ecu_staus->thr_pos = mavlink_msg_vk_engine_ecu_staus_get_thr_pos(msg);
  791. vk_engine_ecu_staus->fuel_pos = mavlink_msg_vk_engine_ecu_staus_get_fuel_pos(msg);
  792. vk_engine_ecu_staus->fault = mavlink_msg_vk_engine_ecu_staus_get_fault(msg);
  793. vk_engine_ecu_staus->engine_state = mavlink_msg_vk_engine_ecu_staus_get_engine_state(msg);
  794. vk_engine_ecu_staus->index = mavlink_msg_vk_engine_ecu_staus_get_index(msg);
  795. mavlink_msg_vk_engine_ecu_staus_get_reserve(msg, vk_engine_ecu_staus->reserve);
  796. vk_engine_ecu_staus->inlet_pressure = mavlink_msg_vk_engine_ecu_staus_get_inlet_pressure(msg);
  797. vk_engine_ecu_staus->ge_temp = mavlink_msg_vk_engine_ecu_staus_get_ge_temp(msg);
  798. vk_engine_ecu_staus->temp_1 = mavlink_msg_vk_engine_ecu_staus_get_temp_1(msg);
  799. vk_engine_ecu_staus->volt_2 = mavlink_msg_vk_engine_ecu_staus_get_volt_2(msg);
  800. #else
  801. uint8_t len = msg->len < MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN? msg->len : MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN;
  802. memset(vk_engine_ecu_staus, 0, MAVLINK_MSG_ID_VK_ENGINE_ECU_STAUS_LEN);
  803. memcpy(vk_engine_ecu_staus, _MAV_PAYLOAD(msg), len);
  804. #endif
  805. }