#pragma once // MESSAGE QINGXIE_BMS PACKING #define MAVLINK_MSG_ID_QINGXIE_BMS 53300 typedef struct __mavlink_qingxie_bms_t { uint16_t bat_voltage; /*< [cV] Battery voltage.*/ uint16_t servo_current; /*< [cA] Servo current.*/ uint16_t stack_voltage; /*< [cV] Stack voltage.*/ uint16_t servo_voltage; /*< [cV] Servo voltage.*/ uint16_t bat_refuel_current; /*< [cA] Battery refuel current.*/ uint16_t gas_tank_pressure; /*< Gas tank pressure.*/ uint16_t pipe_pressure; /*< Pipe pressure.*/ uint16_t pcb_temp; /*< PCB temperature.*/ uint16_t stack_temp; /*< Stack temperature.*/ uint16_t work_status; /*< */ uint16_t falt_status; /*< */ uint8_t self_check; /*< */ uint8_t Id; /*< */ } mavlink_qingxie_bms_t; #define MAVLINK_MSG_ID_QINGXIE_BMS_LEN 24 #define MAVLINK_MSG_ID_QINGXIE_BMS_MIN_LEN 24 #define MAVLINK_MSG_ID_53300_LEN 24 #define MAVLINK_MSG_ID_53300_MIN_LEN 24 #define MAVLINK_MSG_ID_QINGXIE_BMS_CRC 114 #define MAVLINK_MSG_ID_53300_CRC 114 #if MAVLINK_COMMAND_24BIT #define MAVLINK_MESSAGE_INFO_QINGXIE_BMS { \ 53300, \ "QINGXIE_BMS", \ 13, \ { { "bat_voltage", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_qingxie_bms_t, bat_voltage) }, \ { "servo_current", NULL, MAVLINK_TYPE_UINT16_T, 0, 2, offsetof(mavlink_qingxie_bms_t, servo_current) }, \ { "stack_voltage", NULL, MAVLINK_TYPE_UINT16_T, 0, 4, offsetof(mavlink_qingxie_bms_t, stack_voltage) }, \ { "servo_voltage", NULL, MAVLINK_TYPE_UINT16_T, 0, 6, offsetof(mavlink_qingxie_bms_t, servo_voltage) }, \ { "bat_refuel_current", NULL, MAVLINK_TYPE_UINT16_T, 0, 8, offsetof(mavlink_qingxie_bms_t, bat_refuel_current) }, \ { "gas_tank_pressure", NULL, MAVLINK_TYPE_UINT16_T, 0, 10, offsetof(mavlink_qingxie_bms_t, gas_tank_pressure) }, \ { "pipe_pressure", NULL, MAVLINK_TYPE_UINT16_T, 0, 12, offsetof(mavlink_qingxie_bms_t, pipe_pressure) }, \ { "pcb_temp", NULL, MAVLINK_TYPE_UINT16_T, 0, 14, offsetof(mavlink_qingxie_bms_t, pcb_temp) }, \ { "stack_temp", NULL, MAVLINK_TYPE_UINT16_T, 0, 16, offsetof(mavlink_qingxie_bms_t, stack_temp) }, \ { "work_status", NULL, MAVLINK_TYPE_UINT16_T, 0, 18, offsetof(mavlink_qingxie_bms_t, work_status) }, \ { "falt_status", NULL, MAVLINK_TYPE_UINT16_T, 0, 20, offsetof(mavlink_qingxie_bms_t, falt_status) }, \ { "self_check", NULL, MAVLINK_TYPE_UINT8_T, 0, 22, offsetof(mavlink_qingxie_bms_t, self_check) }, \ { "Id", NULL, MAVLINK_TYPE_UINT8_T, 0, 23, offsetof(mavlink_qingxie_bms_t, Id) }, \ } \ } #else #define MAVLINK_MESSAGE_INFO_QINGXIE_BMS { \ "QINGXIE_BMS", \ 13, \ { { "bat_voltage", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_qingxie_bms_t, bat_voltage) }, \ { "servo_current", NULL, MAVLINK_TYPE_UINT16_T, 0, 2, offsetof(mavlink_qingxie_bms_t, servo_current) }, \ { "stack_voltage", NULL, MAVLINK_TYPE_UINT16_T, 0, 4, offsetof(mavlink_qingxie_bms_t, stack_voltage) }, \ { "servo_voltage", NULL, MAVLINK_TYPE_UINT16_T, 0, 6, offsetof(mavlink_qingxie_bms_t, servo_voltage) }, \ { "bat_refuel_current", NULL, MAVLINK_TYPE_UINT16_T, 0, 8, offsetof(mavlink_qingxie_bms_t, bat_refuel_current) }, \ { "gas_tank_pressure", NULL, MAVLINK_TYPE_UINT16_T, 0, 10, offsetof(mavlink_qingxie_bms_t, gas_tank_pressure) }, \ { "pipe_pressure", NULL, MAVLINK_TYPE_UINT16_T, 0, 12, offsetof(mavlink_qingxie_bms_t, pipe_pressure) }, \ { "pcb_temp", NULL, MAVLINK_TYPE_UINT16_T, 0, 14, offsetof(mavlink_qingxie_bms_t, pcb_temp) }, \ { "stack_temp", NULL, MAVLINK_TYPE_UINT16_T, 0, 16, offsetof(mavlink_qingxie_bms_t, stack_temp) }, \ { "work_status", NULL, MAVLINK_TYPE_UINT16_T, 0, 18, offsetof(mavlink_qingxie_bms_t, work_status) }, \ { "falt_status", NULL, MAVLINK_TYPE_UINT16_T, 0, 20, offsetof(mavlink_qingxie_bms_t, falt_status) }, \ { "self_check", NULL, MAVLINK_TYPE_UINT8_T, 0, 22, offsetof(mavlink_qingxie_bms_t, self_check) }, \ { "Id", NULL, MAVLINK_TYPE_UINT8_T, 0, 23, offsetof(mavlink_qingxie_bms_t, Id) }, \ } \ } #endif /** * @brief Pack a qingxie_bms message * @param system_id ID of this system * @param component_id ID of this component (e.g. 200 for IMU) * @param msg The MAVLink message to compress the data into * * @param bat_voltage [cV] Battery voltage. * @param servo_current [cA] Servo current. * @param stack_voltage [cV] Stack voltage. * @param servo_voltage [cV] Servo voltage. * @param bat_refuel_current [cA] Battery refuel current. * @param gas_tank_pressure Gas tank pressure. * @param pipe_pressure Pipe pressure. * @param pcb_temp PCB temperature. * @param stack_temp Stack temperature. * @param work_status * @param falt_status * @param self_check * @param Id * @return length of the message in bytes (excluding serial stream start sign) */ static inline uint16_t mavlink_msg_qingxie_bms_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, uint16_t bat_voltage, uint16_t servo_current, uint16_t stack_voltage, uint16_t servo_voltage, uint16_t bat_refuel_current, uint16_t gas_tank_pressure, uint16_t pipe_pressure, uint16_t pcb_temp, uint16_t stack_temp, uint16_t work_status, uint16_t falt_status, uint8_t self_check, uint8_t Id) { #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS char buf[MAVLINK_MSG_ID_QINGXIE_BMS_LEN]; _mav_put_uint16_t(buf, 0, bat_voltage); _mav_put_uint16_t(buf, 2, servo_current); _mav_put_uint16_t(buf, 4, stack_voltage); _mav_put_uint16_t(buf, 6, servo_voltage); _mav_put_uint16_t(buf, 8, bat_refuel_current); _mav_put_uint16_t(buf, 10, gas_tank_pressure); _mav_put_uint16_t(buf, 12, pipe_pressure); _mav_put_uint16_t(buf, 14, pcb_temp); _mav_put_uint16_t(buf, 16, stack_temp); _mav_put_uint16_t(buf, 18, work_status); _mav_put_uint16_t(buf, 20, falt_status); _mav_put_uint8_t(buf, 22, self_check); _mav_put_uint8_t(buf, 23, Id); memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_QINGXIE_BMS_LEN); #else mavlink_qingxie_bms_t packet; packet.bat_voltage = bat_voltage; packet.servo_current = servo_current; packet.stack_voltage = stack_voltage; packet.servo_voltage = servo_voltage; packet.bat_refuel_current = bat_refuel_current; packet.gas_tank_pressure = gas_tank_pressure; packet.pipe_pressure = pipe_pressure; packet.pcb_temp = pcb_temp; packet.stack_temp = stack_temp; packet.work_status = work_status; packet.falt_status = falt_status; packet.self_check = self_check; packet.Id = Id; memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_QINGXIE_BMS_LEN); #endif msg->msgid = MAVLINK_MSG_ID_QINGXIE_BMS; return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_QINGXIE_BMS_MIN_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_CRC); } /** * @brief Pack a qingxie_bms message * @param system_id ID of this system * @param component_id ID of this component (e.g. 200 for IMU) * @param status MAVLink status structure * @param msg The MAVLink message to compress the data into * * @param bat_voltage [cV] Battery voltage. * @param servo_current [cA] Servo current. * @param stack_voltage [cV] Stack voltage. * @param servo_voltage [cV] Servo voltage. * @param bat_refuel_current [cA] Battery refuel current. * @param gas_tank_pressure Gas tank pressure. * @param pipe_pressure Pipe pressure. * @param pcb_temp PCB temperature. * @param stack_temp Stack temperature. * @param work_status * @param falt_status * @param self_check * @param Id * @return length of the message in bytes (excluding serial stream start sign) */ static inline uint16_t mavlink_msg_qingxie_bms_pack_status(uint8_t system_id, uint8_t component_id, mavlink_status_t *_status, mavlink_message_t* msg, uint16_t bat_voltage, uint16_t servo_current, uint16_t stack_voltage, uint16_t servo_voltage, uint16_t bat_refuel_current, uint16_t gas_tank_pressure, uint16_t pipe_pressure, uint16_t pcb_temp, uint16_t stack_temp, uint16_t work_status, uint16_t falt_status, uint8_t self_check, uint8_t Id) { #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS char buf[MAVLINK_MSG_ID_QINGXIE_BMS_LEN]; _mav_put_uint16_t(buf, 0, bat_voltage); _mav_put_uint16_t(buf, 2, servo_current); _mav_put_uint16_t(buf, 4, stack_voltage); _mav_put_uint16_t(buf, 6, servo_voltage); _mav_put_uint16_t(buf, 8, bat_refuel_current); _mav_put_uint16_t(buf, 10, gas_tank_pressure); _mav_put_uint16_t(buf, 12, pipe_pressure); _mav_put_uint16_t(buf, 14, pcb_temp); _mav_put_uint16_t(buf, 16, stack_temp); _mav_put_uint16_t(buf, 18, work_status); _mav_put_uint16_t(buf, 20, falt_status); _mav_put_uint8_t(buf, 22, self_check); _mav_put_uint8_t(buf, 23, Id); memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_QINGXIE_BMS_LEN); #else mavlink_qingxie_bms_t packet; packet.bat_voltage = bat_voltage; packet.servo_current = servo_current; packet.stack_voltage = stack_voltage; packet.servo_voltage = servo_voltage; packet.bat_refuel_current = bat_refuel_current; packet.gas_tank_pressure = gas_tank_pressure; packet.pipe_pressure = pipe_pressure; packet.pcb_temp = pcb_temp; packet.stack_temp = stack_temp; packet.work_status = work_status; packet.falt_status = falt_status; packet.self_check = self_check; packet.Id = Id; memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_QINGXIE_BMS_LEN); #endif msg->msgid = MAVLINK_MSG_ID_QINGXIE_BMS; #if MAVLINK_CRC_EXTRA return mavlink_finalize_message_buffer(msg, system_id, component_id, _status, MAVLINK_MSG_ID_QINGXIE_BMS_MIN_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_CRC); #else return mavlink_finalize_message_buffer(msg, system_id, component_id, _status, MAVLINK_MSG_ID_QINGXIE_BMS_MIN_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_LEN); #endif } /** * @brief Pack a qingxie_bms message on a channel * @param system_id ID of this system * @param component_id ID of this component (e.g. 200 for IMU) * @param chan The MAVLink channel this message will be sent over * @param msg The MAVLink message to compress the data into * @param bat_voltage [cV] Battery voltage. * @param servo_current [cA] Servo current. * @param stack_voltage [cV] Stack voltage. * @param servo_voltage [cV] Servo voltage. * @param bat_refuel_current [cA] Battery refuel current. * @param gas_tank_pressure Gas tank pressure. * @param pipe_pressure Pipe pressure. * @param pcb_temp PCB temperature. * @param stack_temp Stack temperature. * @param work_status * @param falt_status * @param self_check * @param Id * @return length of the message in bytes (excluding serial stream start sign) */ static inline uint16_t mavlink_msg_qingxie_bms_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, uint16_t bat_voltage,uint16_t servo_current,uint16_t stack_voltage,uint16_t servo_voltage,uint16_t bat_refuel_current,uint16_t gas_tank_pressure,uint16_t pipe_pressure,uint16_t pcb_temp,uint16_t stack_temp,uint16_t work_status,uint16_t falt_status,uint8_t self_check,uint8_t Id) { #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS char buf[MAVLINK_MSG_ID_QINGXIE_BMS_LEN]; _mav_put_uint16_t(buf, 0, bat_voltage); _mav_put_uint16_t(buf, 2, servo_current); _mav_put_uint16_t(buf, 4, stack_voltage); _mav_put_uint16_t(buf, 6, servo_voltage); _mav_put_uint16_t(buf, 8, bat_refuel_current); _mav_put_uint16_t(buf, 10, gas_tank_pressure); _mav_put_uint16_t(buf, 12, pipe_pressure); _mav_put_uint16_t(buf, 14, pcb_temp); _mav_put_uint16_t(buf, 16, stack_temp); _mav_put_uint16_t(buf, 18, work_status); _mav_put_uint16_t(buf, 20, falt_status); _mav_put_uint8_t(buf, 22, self_check); _mav_put_uint8_t(buf, 23, Id); memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_QINGXIE_BMS_LEN); #else mavlink_qingxie_bms_t packet; packet.bat_voltage = bat_voltage; packet.servo_current = servo_current; packet.stack_voltage = stack_voltage; packet.servo_voltage = servo_voltage; packet.bat_refuel_current = bat_refuel_current; packet.gas_tank_pressure = gas_tank_pressure; packet.pipe_pressure = pipe_pressure; packet.pcb_temp = pcb_temp; packet.stack_temp = stack_temp; packet.work_status = work_status; packet.falt_status = falt_status; packet.self_check = self_check; packet.Id = Id; memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_QINGXIE_BMS_LEN); #endif msg->msgid = MAVLINK_MSG_ID_QINGXIE_BMS; return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_QINGXIE_BMS_MIN_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_CRC); } /** * @brief Encode a qingxie_bms struct * * @param system_id ID of this system * @param component_id ID of this component (e.g. 200 for IMU) * @param msg The MAVLink message to compress the data into * @param qingxie_bms C-struct to read the message contents from */ static inline uint16_t mavlink_msg_qingxie_bms_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_qingxie_bms_t* qingxie_bms) { return mavlink_msg_qingxie_bms_pack(system_id, component_id, msg, qingxie_bms->bat_voltage, qingxie_bms->servo_current, qingxie_bms->stack_voltage, qingxie_bms->servo_voltage, qingxie_bms->bat_refuel_current, qingxie_bms->gas_tank_pressure, qingxie_bms->pipe_pressure, qingxie_bms->pcb_temp, qingxie_bms->stack_temp, qingxie_bms->work_status, qingxie_bms->falt_status, qingxie_bms->self_check, qingxie_bms->Id); } /** * @brief Encode a qingxie_bms struct on a channel * * @param system_id ID of this system * @param component_id ID of this component (e.g. 200 for IMU) * @param chan The MAVLink channel this message will be sent over * @param msg The MAVLink message to compress the data into * @param qingxie_bms C-struct to read the message contents from */ static inline uint16_t mavlink_msg_qingxie_bms_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_qingxie_bms_t* qingxie_bms) { return mavlink_msg_qingxie_bms_pack_chan(system_id, component_id, chan, msg, qingxie_bms->bat_voltage, qingxie_bms->servo_current, qingxie_bms->stack_voltage, qingxie_bms->servo_voltage, qingxie_bms->bat_refuel_current, qingxie_bms->gas_tank_pressure, qingxie_bms->pipe_pressure, qingxie_bms->pcb_temp, qingxie_bms->stack_temp, qingxie_bms->work_status, qingxie_bms->falt_status, qingxie_bms->self_check, qingxie_bms->Id); } /** * @brief Encode a qingxie_bms struct with provided status structure * * @param system_id ID of this system * @param component_id ID of this component (e.g. 200 for IMU) * @param status MAVLink status structure * @param msg The MAVLink message to compress the data into * @param qingxie_bms C-struct to read the message contents from */ static inline uint16_t mavlink_msg_qingxie_bms_encode_status(uint8_t system_id, uint8_t component_id, mavlink_status_t* _status, mavlink_message_t* msg, const mavlink_qingxie_bms_t* qingxie_bms) { return mavlink_msg_qingxie_bms_pack_status(system_id, component_id, _status, msg, qingxie_bms->bat_voltage, qingxie_bms->servo_current, qingxie_bms->stack_voltage, qingxie_bms->servo_voltage, qingxie_bms->bat_refuel_current, qingxie_bms->gas_tank_pressure, qingxie_bms->pipe_pressure, qingxie_bms->pcb_temp, qingxie_bms->stack_temp, qingxie_bms->work_status, qingxie_bms->falt_status, qingxie_bms->self_check, qingxie_bms->Id); } /** * @brief Send a qingxie_bms message * @param chan MAVLink channel to send the message * * @param bat_voltage [cV] Battery voltage. * @param servo_current [cA] Servo current. * @param stack_voltage [cV] Stack voltage. * @param servo_voltage [cV] Servo voltage. * @param bat_refuel_current [cA] Battery refuel current. * @param gas_tank_pressure Gas tank pressure. * @param pipe_pressure Pipe pressure. * @param pcb_temp PCB temperature. * @param stack_temp Stack temperature. * @param work_status * @param falt_status * @param self_check * @param Id */ #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS static inline void mavlink_msg_qingxie_bms_send(mavlink_channel_t chan, uint16_t bat_voltage, uint16_t servo_current, uint16_t stack_voltage, uint16_t servo_voltage, uint16_t bat_refuel_current, uint16_t gas_tank_pressure, uint16_t pipe_pressure, uint16_t pcb_temp, uint16_t stack_temp, uint16_t work_status, uint16_t falt_status, uint8_t self_check, uint8_t Id) { #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS char buf[MAVLINK_MSG_ID_QINGXIE_BMS_LEN]; _mav_put_uint16_t(buf, 0, bat_voltage); _mav_put_uint16_t(buf, 2, servo_current); _mav_put_uint16_t(buf, 4, stack_voltage); _mav_put_uint16_t(buf, 6, servo_voltage); _mav_put_uint16_t(buf, 8, bat_refuel_current); _mav_put_uint16_t(buf, 10, gas_tank_pressure); _mav_put_uint16_t(buf, 12, pipe_pressure); _mav_put_uint16_t(buf, 14, pcb_temp); _mav_put_uint16_t(buf, 16, stack_temp); _mav_put_uint16_t(buf, 18, work_status); _mav_put_uint16_t(buf, 20, falt_status); _mav_put_uint8_t(buf, 22, self_check); _mav_put_uint8_t(buf, 23, Id); _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_QINGXIE_BMS, buf, MAVLINK_MSG_ID_QINGXIE_BMS_MIN_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_CRC); #else mavlink_qingxie_bms_t packet; packet.bat_voltage = bat_voltage; packet.servo_current = servo_current; packet.stack_voltage = stack_voltage; packet.servo_voltage = servo_voltage; packet.bat_refuel_current = bat_refuel_current; packet.gas_tank_pressure = gas_tank_pressure; packet.pipe_pressure = pipe_pressure; packet.pcb_temp = pcb_temp; packet.stack_temp = stack_temp; packet.work_status = work_status; packet.falt_status = falt_status; packet.self_check = self_check; packet.Id = Id; _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_QINGXIE_BMS, (const char *)&packet, MAVLINK_MSG_ID_QINGXIE_BMS_MIN_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_CRC); #endif } /** * @brief Send a qingxie_bms message * @param chan MAVLink channel to send the message * @param struct The MAVLink struct to serialize */ static inline void mavlink_msg_qingxie_bms_send_struct(mavlink_channel_t chan, const mavlink_qingxie_bms_t* qingxie_bms) { #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS mavlink_msg_qingxie_bms_send(chan, qingxie_bms->bat_voltage, qingxie_bms->servo_current, qingxie_bms->stack_voltage, qingxie_bms->servo_voltage, qingxie_bms->bat_refuel_current, qingxie_bms->gas_tank_pressure, qingxie_bms->pipe_pressure, qingxie_bms->pcb_temp, qingxie_bms->stack_temp, qingxie_bms->work_status, qingxie_bms->falt_status, qingxie_bms->self_check, qingxie_bms->Id); #else _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_QINGXIE_BMS, (const char *)qingxie_bms, MAVLINK_MSG_ID_QINGXIE_BMS_MIN_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_CRC); #endif } #if MAVLINK_MSG_ID_QINGXIE_BMS_LEN <= MAVLINK_MAX_PAYLOAD_LEN /* This variant of _send() can be used to save stack space by re-using memory from the receive buffer. The caller provides a mavlink_message_t which is the size of a full mavlink message. This is usually the receive buffer for the channel, and allows a reply to an incoming message with minimum stack space usage. */ static inline void mavlink_msg_qingxie_bms_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan, uint16_t bat_voltage, uint16_t servo_current, uint16_t stack_voltage, uint16_t servo_voltage, uint16_t bat_refuel_current, uint16_t gas_tank_pressure, uint16_t pipe_pressure, uint16_t pcb_temp, uint16_t stack_temp, uint16_t work_status, uint16_t falt_status, uint8_t self_check, uint8_t Id) { #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS char *buf = (char *)msgbuf; _mav_put_uint16_t(buf, 0, bat_voltage); _mav_put_uint16_t(buf, 2, servo_current); _mav_put_uint16_t(buf, 4, stack_voltage); _mav_put_uint16_t(buf, 6, servo_voltage); _mav_put_uint16_t(buf, 8, bat_refuel_current); _mav_put_uint16_t(buf, 10, gas_tank_pressure); _mav_put_uint16_t(buf, 12, pipe_pressure); _mav_put_uint16_t(buf, 14, pcb_temp); _mav_put_uint16_t(buf, 16, stack_temp); _mav_put_uint16_t(buf, 18, work_status); _mav_put_uint16_t(buf, 20, falt_status); _mav_put_uint8_t(buf, 22, self_check); _mav_put_uint8_t(buf, 23, Id); _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_QINGXIE_BMS, buf, MAVLINK_MSG_ID_QINGXIE_BMS_MIN_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_CRC); #else mavlink_qingxie_bms_t *packet = (mavlink_qingxie_bms_t *)msgbuf; packet->bat_voltage = bat_voltage; packet->servo_current = servo_current; packet->stack_voltage = stack_voltage; packet->servo_voltage = servo_voltage; packet->bat_refuel_current = bat_refuel_current; packet->gas_tank_pressure = gas_tank_pressure; packet->pipe_pressure = pipe_pressure; packet->pcb_temp = pcb_temp; packet->stack_temp = stack_temp; packet->work_status = work_status; packet->falt_status = falt_status; packet->self_check = self_check; packet->Id = Id; _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_QINGXIE_BMS, (const char *)packet, MAVLINK_MSG_ID_QINGXIE_BMS_MIN_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_LEN, MAVLINK_MSG_ID_QINGXIE_BMS_CRC); #endif } #endif #endif // MESSAGE QINGXIE_BMS UNPACKING /** * @brief Get field bat_voltage from qingxie_bms message * * @return [cV] Battery voltage. */ static inline uint16_t mavlink_msg_qingxie_bms_get_bat_voltage(const mavlink_message_t* msg) { return _MAV_RETURN_uint16_t(msg, 0); } /** * @brief Get field servo_current from qingxie_bms message * * @return [cA] Servo current. */ static inline uint16_t mavlink_msg_qingxie_bms_get_servo_current(const mavlink_message_t* msg) { return _MAV_RETURN_uint16_t(msg, 2); } /** * @brief Get field stack_voltage from qingxie_bms message * * @return [cV] Stack voltage. */ static inline uint16_t mavlink_msg_qingxie_bms_get_stack_voltage(const mavlink_message_t* msg) { return _MAV_RETURN_uint16_t(msg, 4); } /** * @brief Get field servo_voltage from qingxie_bms message * * @return [cV] Servo voltage. */ static inline uint16_t mavlink_msg_qingxie_bms_get_servo_voltage(const mavlink_message_t* msg) { return _MAV_RETURN_uint16_t(msg, 6); } /** * @brief Get field bat_refuel_current from qingxie_bms message * * @return [cA] Battery refuel current. */ static inline uint16_t mavlink_msg_qingxie_bms_get_bat_refuel_current(const mavlink_message_t* msg) { return _MAV_RETURN_uint16_t(msg, 8); } /** * @brief Get field gas_tank_pressure from qingxie_bms message * * @return Gas tank pressure. */ static inline uint16_t mavlink_msg_qingxie_bms_get_gas_tank_pressure(const mavlink_message_t* msg) { return _MAV_RETURN_uint16_t(msg, 10); } /** * @brief Get field pipe_pressure from qingxie_bms message * * @return Pipe pressure. */ static inline uint16_t mavlink_msg_qingxie_bms_get_pipe_pressure(const mavlink_message_t* msg) { return _MAV_RETURN_uint16_t(msg, 12); } /** * @brief Get field pcb_temp from qingxie_bms message * * @return PCB temperature. */ static inline uint16_t mavlink_msg_qingxie_bms_get_pcb_temp(const mavlink_message_t* msg) { return _MAV_RETURN_uint16_t(msg, 14); } /** * @brief Get field stack_temp from qingxie_bms message * * @return Stack temperature. */ static inline uint16_t mavlink_msg_qingxie_bms_get_stack_temp(const mavlink_message_t* msg) { return _MAV_RETURN_uint16_t(msg, 16); } /** * @brief Get field work_status from qingxie_bms message * * @return */ static inline uint16_t mavlink_msg_qingxie_bms_get_work_status(const mavlink_message_t* msg) { return _MAV_RETURN_uint16_t(msg, 18); } /** * @brief Get field falt_status from qingxie_bms message * * @return */ static inline uint16_t mavlink_msg_qingxie_bms_get_falt_status(const mavlink_message_t* msg) { return _MAV_RETURN_uint16_t(msg, 20); } /** * @brief Get field self_check from qingxie_bms message * * @return */ static inline uint8_t mavlink_msg_qingxie_bms_get_self_check(const mavlink_message_t* msg) { return _MAV_RETURN_uint8_t(msg, 22); } /** * @brief Get field Id from qingxie_bms message * * @return */ static inline uint8_t mavlink_msg_qingxie_bms_get_Id(const mavlink_message_t* msg) { return _MAV_RETURN_uint8_t(msg, 23); } /** * @brief Decode a qingxie_bms message into a struct * * @param msg The message to decode * @param qingxie_bms C-struct to decode the message contents into */ static inline void mavlink_msg_qingxie_bms_decode(const mavlink_message_t* msg, mavlink_qingxie_bms_t* qingxie_bms) { #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS qingxie_bms->bat_voltage = mavlink_msg_qingxie_bms_get_bat_voltage(msg); qingxie_bms->servo_current = mavlink_msg_qingxie_bms_get_servo_current(msg); qingxie_bms->stack_voltage = mavlink_msg_qingxie_bms_get_stack_voltage(msg); qingxie_bms->servo_voltage = mavlink_msg_qingxie_bms_get_servo_voltage(msg); qingxie_bms->bat_refuel_current = mavlink_msg_qingxie_bms_get_bat_refuel_current(msg); qingxie_bms->gas_tank_pressure = mavlink_msg_qingxie_bms_get_gas_tank_pressure(msg); qingxie_bms->pipe_pressure = mavlink_msg_qingxie_bms_get_pipe_pressure(msg); qingxie_bms->pcb_temp = mavlink_msg_qingxie_bms_get_pcb_temp(msg); qingxie_bms->stack_temp = mavlink_msg_qingxie_bms_get_stack_temp(msg); qingxie_bms->work_status = mavlink_msg_qingxie_bms_get_work_status(msg); qingxie_bms->falt_status = mavlink_msg_qingxie_bms_get_falt_status(msg); qingxie_bms->self_check = mavlink_msg_qingxie_bms_get_self_check(msg); qingxie_bms->Id = mavlink_msg_qingxie_bms_get_Id(msg); #else uint8_t len = msg->len < MAVLINK_MSG_ID_QINGXIE_BMS_LEN? msg->len : MAVLINK_MSG_ID_QINGXIE_BMS_LEN; memset(qingxie_bms, 0, MAVLINK_MSG_ID_QINGXIE_BMS_LEN); memcpy(qingxie_bms, _MAV_PAYLOAD(msg), len); #endif }