mavlink_msg_pm_elec.h 6.76 KB
Newer Older
1 2 3 4 5 6
// MESSAGE PM_ELEC PACKING

#define MAVLINK_MSG_ID_PM_ELEC 188

typedef struct __mavlink_pm_elec_t
{
Lorenz Meier's avatar
Lorenz Meier committed
7 8 9 10 11 12 13 14 15
 float PwCons; ///< 
                
            
 float BatStat; ///< 
                
            
 float PwGen[3]; ///< 
                
            
16 17 18 19 20
} mavlink_pm_elec_t;

#define MAVLINK_MSG_ID_PM_ELEC_LEN 20
#define MAVLINK_MSG_ID_188_LEN 20

Lorenz Meier's avatar
Lorenz Meier committed
21 22 23
#define MAVLINK_MSG_ID_PM_ELEC_CRC 170
#define MAVLINK_MSG_ID_188_CRC 170

24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
#define MAVLINK_MSG_PM_ELEC_FIELD_PWGEN_LEN 3

#define MAVLINK_MESSAGE_INFO_PM_ELEC { \
	"PM_ELEC", \
	3, \
	{  { "PwCons", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_pm_elec_t, PwCons) }, \
         { "BatStat", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_pm_elec_t, BatStat) }, \
         { "PwGen", NULL, MAVLINK_TYPE_FLOAT, 3, 8, offsetof(mavlink_pm_elec_t, PwGen) }, \
         } \
}


/**
 * @brief Pack a pm_elec 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
 *
Lorenz Meier's avatar
Lorenz Meier committed
42 43 44 45 46 47 48 49 50
 * @param PwCons 
                
            
 * @param BatStat 
                
            
 * @param PwGen 
                
            
51 52 53 54 55 56
 * @return length of the message in bytes (excluding serial stream start sign)
 */
static inline uint16_t mavlink_msg_pm_elec_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
						       float PwCons, float BatStat, const float *PwGen)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
Lorenz Meier's avatar
Lorenz Meier committed
57
	char buf[MAVLINK_MSG_ID_PM_ELEC_LEN];
58 59 60
	_mav_put_float(buf, 0, PwCons);
	_mav_put_float(buf, 4, BatStat);
	_mav_put_float_array(buf, 8, PwGen, 3);
Lorenz Meier's avatar
Lorenz Meier committed
61
        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PM_ELEC_LEN);
62 63 64 65 66
#else
	mavlink_pm_elec_t packet;
	packet.PwCons = PwCons;
	packet.BatStat = BatStat;
	mav_array_memcpy(packet.PwGen, PwGen, sizeof(float)*3);
Lorenz Meier's avatar
Lorenz Meier committed
67
        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PM_ELEC_LEN);
68 69 70
#endif

	msg->msgid = MAVLINK_MSG_ID_PM_ELEC;
Lorenz Meier's avatar
Lorenz Meier committed
71 72 73 74 75
#if MAVLINK_CRC_EXTRA
    return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_PM_ELEC_LEN, MAVLINK_MSG_ID_PM_ELEC_CRC);
#else
    return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_PM_ELEC_LEN);
#endif
76 77 78 79 80 81 82 83
}

/**
 * @brief Pack a pm_elec 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 was sent over
 * @param msg The MAVLink message to compress the data into
Lorenz Meier's avatar
Lorenz Meier committed
84 85 86 87 88 89 90 91 92
 * @param PwCons 
                
            
 * @param BatStat 
                
            
 * @param PwGen 
                
            
93 94 95 96 97 98 99
 * @return length of the message in bytes (excluding serial stream start sign)
 */
static inline uint16_t mavlink_msg_pm_elec_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
							   mavlink_message_t* msg,
						           float PwCons,float BatStat,const float *PwGen)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
Lorenz Meier's avatar
Lorenz Meier committed
100
	char buf[MAVLINK_MSG_ID_PM_ELEC_LEN];
101 102 103
	_mav_put_float(buf, 0, PwCons);
	_mav_put_float(buf, 4, BatStat);
	_mav_put_float_array(buf, 8, PwGen, 3);
Lorenz Meier's avatar
Lorenz Meier committed
104
        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_PM_ELEC_LEN);
105 106 107 108 109
#else
	mavlink_pm_elec_t packet;
	packet.PwCons = PwCons;
	packet.BatStat = BatStat;
	mav_array_memcpy(packet.PwGen, PwGen, sizeof(float)*3);
Lorenz Meier's avatar
Lorenz Meier committed
110
        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_PM_ELEC_LEN);
111 112 113
#endif

	msg->msgid = MAVLINK_MSG_ID_PM_ELEC;
Lorenz Meier's avatar
Lorenz Meier committed
114 115 116 117 118
#if MAVLINK_CRC_EXTRA
    return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_PM_ELEC_LEN, MAVLINK_MSG_ID_PM_ELEC_CRC);
#else
    return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_PM_ELEC_LEN);
#endif
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
}

/**
 * @brief Encode a pm_elec struct into a 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 pm_elec C-struct to read the message contents from
 */
static inline uint16_t mavlink_msg_pm_elec_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_pm_elec_t* pm_elec)
{
	return mavlink_msg_pm_elec_pack(system_id, component_id, msg, pm_elec->PwCons, pm_elec->BatStat, pm_elec->PwGen);
}

/**
 * @brief Send a pm_elec message
 * @param chan MAVLink channel to send the message
 *
Lorenz Meier's avatar
Lorenz Meier committed
138 139 140 141 142 143 144 145 146
 * @param PwCons 
                
            
 * @param BatStat 
                
            
 * @param PwGen 
                
            
147 148 149 150 151 152
 */
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS

static inline void mavlink_msg_pm_elec_send(mavlink_channel_t chan, float PwCons, float BatStat, const float *PwGen)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
Lorenz Meier's avatar
Lorenz Meier committed
153
	char buf[MAVLINK_MSG_ID_PM_ELEC_LEN];
154 155 156
	_mav_put_float(buf, 0, PwCons);
	_mav_put_float(buf, 4, BatStat);
	_mav_put_float_array(buf, 8, PwGen, 3);
Lorenz Meier's avatar
Lorenz Meier committed
157 158 159 160 161
#if MAVLINK_CRC_EXTRA
    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PM_ELEC, buf, MAVLINK_MSG_ID_PM_ELEC_LEN, MAVLINK_MSG_ID_PM_ELEC_CRC);
#else
    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PM_ELEC, buf, MAVLINK_MSG_ID_PM_ELEC_LEN);
#endif
162 163 164 165 166
#else
	mavlink_pm_elec_t packet;
	packet.PwCons = PwCons;
	packet.BatStat = BatStat;
	mav_array_memcpy(packet.PwGen, PwGen, sizeof(float)*3);
Lorenz Meier's avatar
Lorenz Meier committed
167 168 169 170 171
#if MAVLINK_CRC_EXTRA
    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PM_ELEC, (const char *)&packet, MAVLINK_MSG_ID_PM_ELEC_LEN, MAVLINK_MSG_ID_PM_ELEC_CRC);
#else
    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PM_ELEC, (const char *)&packet, MAVLINK_MSG_ID_PM_ELEC_LEN);
#endif
172 173 174 175 176 177 178 179 180 181 182
#endif
}

#endif

// MESSAGE PM_ELEC UNPACKING


/**
 * @brief Get field PwCons from pm_elec message
 *
Lorenz Meier's avatar
Lorenz Meier committed
183 184 185
 * @return 
                
            
186 187 188 189 190 191 192 193 194
 */
static inline float mavlink_msg_pm_elec_get_PwCons(const mavlink_message_t* msg)
{
	return _MAV_RETURN_float(msg,  0);
}

/**
 * @brief Get field BatStat from pm_elec message
 *
Lorenz Meier's avatar
Lorenz Meier committed
195 196 197
 * @return 
                
            
198 199 200 201 202 203 204 205 206
 */
static inline float mavlink_msg_pm_elec_get_BatStat(const mavlink_message_t* msg)
{
	return _MAV_RETURN_float(msg,  4);
}

/**
 * @brief Get field PwGen from pm_elec message
 *
Lorenz Meier's avatar
Lorenz Meier committed
207 208 209
 * @return 
                
            
210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228
 */
static inline uint16_t mavlink_msg_pm_elec_get_PwGen(const mavlink_message_t* msg, float *PwGen)
{
	return _MAV_RETURN_float_array(msg, PwGen, 3,  8);
}

/**
 * @brief Decode a pm_elec message into a struct
 *
 * @param msg The message to decode
 * @param pm_elec C-struct to decode the message contents into
 */
static inline void mavlink_msg_pm_elec_decode(const mavlink_message_t* msg, mavlink_pm_elec_t* pm_elec)
{
#if MAVLINK_NEED_BYTE_SWAP
	pm_elec->PwCons = mavlink_msg_pm_elec_get_PwCons(msg);
	pm_elec->BatStat = mavlink_msg_pm_elec_get_BatStat(msg);
	mavlink_msg_pm_elec_get_PwGen(msg, pm_elec->PwGen);
#else
Lorenz Meier's avatar
Lorenz Meier committed
229
	memcpy(pm_elec, _MAV_PAYLOAD(msg), MAVLINK_MSG_ID_PM_ELEC_LEN);
230 231
#endif
}