mavlink_msg_vk_engine_ecu_staus.h 42 KB

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