Merged in f5soh/librepilot/update_credits (pull request #529)
[librepilot.git] / flight / libraries / mavlink / v1.0 / common / mavlink_msg_rc_channels_scaled.h
blob55fcbfffd8c1fa94e101d86222f80e9f817b814c
1 // MESSAGE RC_CHANNELS_SCALED PACKING
3 #define MAVLINK_MSG_ID_RC_CHANNELS_SCALED 34
5 typedef struct __mavlink_rc_channels_scaled_t {
6 uint32_t time_boot_ms; ///< Timestamp (milliseconds since system boot)
7 int16_t chan1_scaled; ///< RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
8 int16_t chan2_scaled; ///< RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
9 int16_t chan3_scaled; ///< RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
10 int16_t chan4_scaled; ///< RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
11 int16_t chan5_scaled; ///< RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
12 int16_t chan6_scaled; ///< RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
13 int16_t chan7_scaled; ///< RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
14 int16_t chan8_scaled; ///< RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
15 uint8_t port; ///< Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos.
16 uint8_t rssi; ///< Receive signal strength indicator, 0: 0%, 255: 100%
17 } mavlink_rc_channels_scaled_t;
19 #define MAVLINK_MSG_ID_RC_CHANNELS_SCALED_LEN 22
20 #define MAVLINK_MSG_ID_34_LEN 22
23 #define MAVLINK_MESSAGE_INFO_RC_CHANNELS_SCALED \
24 { \
25 "RC_CHANNELS_SCALED", \
26 11, \
27 { \
28 { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_rc_channels_scaled_t, time_boot_ms) }, \
29 { "chan1_scaled", NULL, MAVLINK_TYPE_INT16_T, 0, 4, offsetof(mavlink_rc_channels_scaled_t, chan1_scaled) }, \
30 { "chan2_scaled", NULL, MAVLINK_TYPE_INT16_T, 0, 6, offsetof(mavlink_rc_channels_scaled_t, chan2_scaled) }, \
31 { "chan3_scaled", NULL, MAVLINK_TYPE_INT16_T, 0, 8, offsetof(mavlink_rc_channels_scaled_t, chan3_scaled) }, \
32 { "chan4_scaled", NULL, MAVLINK_TYPE_INT16_T, 0, 10, offsetof(mavlink_rc_channels_scaled_t, chan4_scaled) }, \
33 { "chan5_scaled", NULL, MAVLINK_TYPE_INT16_T, 0, 12, offsetof(mavlink_rc_channels_scaled_t, chan5_scaled) }, \
34 { "chan6_scaled", NULL, MAVLINK_TYPE_INT16_T, 0, 14, offsetof(mavlink_rc_channels_scaled_t, chan6_scaled) }, \
35 { "chan7_scaled", NULL, MAVLINK_TYPE_INT16_T, 0, 16, offsetof(mavlink_rc_channels_scaled_t, chan7_scaled) }, \
36 { "chan8_scaled", NULL, MAVLINK_TYPE_INT16_T, 0, 18, offsetof(mavlink_rc_channels_scaled_t, chan8_scaled) }, \
37 { "port", NULL, MAVLINK_TYPE_UINT8_T, 0, 20, offsetof(mavlink_rc_channels_scaled_t, port) }, \
38 { "rssi", NULL, MAVLINK_TYPE_UINT8_T, 0, 21, offsetof(mavlink_rc_channels_scaled_t, rssi) }, \
39 } \
43 /**
44 * @brief Pack a rc_channels_scaled message
45 * @param system_id ID of this system
46 * @param component_id ID of this component (e.g. 200 for IMU)
47 * @param msg The MAVLink message to compress the data into
49 * @param time_boot_ms Timestamp (milliseconds since system boot)
50 * @param port Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos.
51 * @param chan1_scaled RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
52 * @param chan2_scaled RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
53 * @param chan3_scaled RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
54 * @param chan4_scaled RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
55 * @param chan5_scaled RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
56 * @param chan6_scaled RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
57 * @param chan7_scaled RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
58 * @param chan8_scaled RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
59 * @param rssi Receive signal strength indicator, 0: 0%, 255: 100%
60 * @return length of the message in bytes (excluding serial stream start sign)
62 static inline uint16_t mavlink_msg_rc_channels_scaled_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t *msg,
63 uint32_t time_boot_ms, uint8_t port, int16_t chan1_scaled, int16_t chan2_scaled, int16_t chan3_scaled, int16_t chan4_scaled, int16_t chan5_scaled, int16_t chan6_scaled, int16_t chan7_scaled, int16_t chan8_scaled, uint8_t rssi)
65 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
66 char buf[22];
67 _mav_put_uint32_t(buf, 0, time_boot_ms);
68 _mav_put_int16_t(buf, 4, chan1_scaled);
69 _mav_put_int16_t(buf, 6, chan2_scaled);
70 _mav_put_int16_t(buf, 8, chan3_scaled);
71 _mav_put_int16_t(buf, 10, chan4_scaled);
72 _mav_put_int16_t(buf, 12, chan5_scaled);
73 _mav_put_int16_t(buf, 14, chan6_scaled);
74 _mav_put_int16_t(buf, 16, chan7_scaled);
75 _mav_put_int16_t(buf, 18, chan8_scaled);
76 _mav_put_uint8_t(buf, 20, port);
77 _mav_put_uint8_t(buf, 21, rssi);
79 memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 22);
80 #else
81 mavlink_rc_channels_scaled_t packet;
82 packet.time_boot_ms = time_boot_ms;
83 packet.chan1_scaled = chan1_scaled;
84 packet.chan2_scaled = chan2_scaled;
85 packet.chan3_scaled = chan3_scaled;
86 packet.chan4_scaled = chan4_scaled;
87 packet.chan5_scaled = chan5_scaled;
88 packet.chan6_scaled = chan6_scaled;
89 packet.chan7_scaled = chan7_scaled;
90 packet.chan8_scaled = chan8_scaled;
91 packet.port = port;
92 packet.rssi = rssi;
94 memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 22);
95 #endif // if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
97 msg->msgid = MAVLINK_MSG_ID_RC_CHANNELS_SCALED;
98 return mavlink_finalize_message(msg, system_id, component_id, 22, 237);
102 * @brief Pack a rc_channels_scaled message on a channel
103 * @param system_id ID of this system
104 * @param component_id ID of this component (e.g. 200 for IMU)
105 * @param chan The MAVLink channel this message was sent over
106 * @param msg The MAVLink message to compress the data into
107 * @param time_boot_ms Timestamp (milliseconds since system boot)
108 * @param port Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos.
109 * @param chan1_scaled RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
110 * @param chan2_scaled RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
111 * @param chan3_scaled RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
112 * @param chan4_scaled RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
113 * @param chan5_scaled RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
114 * @param chan6_scaled RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
115 * @param chan7_scaled RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
116 * @param chan8_scaled RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
117 * @param rssi Receive signal strength indicator, 0: 0%, 255: 100%
118 * @return length of the message in bytes (excluding serial stream start sign)
120 static inline uint16_t mavlink_msg_rc_channels_scaled_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
121 mavlink_message_t *msg,
122 uint32_t time_boot_ms, uint8_t port, int16_t chan1_scaled, int16_t chan2_scaled, int16_t chan3_scaled, int16_t chan4_scaled, int16_t chan5_scaled, int16_t chan6_scaled, int16_t chan7_scaled, int16_t chan8_scaled, uint8_t rssi)
124 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
125 char buf[22];
126 _mav_put_uint32_t(buf, 0, time_boot_ms);
127 _mav_put_int16_t(buf, 4, chan1_scaled);
128 _mav_put_int16_t(buf, 6, chan2_scaled);
129 _mav_put_int16_t(buf, 8, chan3_scaled);
130 _mav_put_int16_t(buf, 10, chan4_scaled);
131 _mav_put_int16_t(buf, 12, chan5_scaled);
132 _mav_put_int16_t(buf, 14, chan6_scaled);
133 _mav_put_int16_t(buf, 16, chan7_scaled);
134 _mav_put_int16_t(buf, 18, chan8_scaled);
135 _mav_put_uint8_t(buf, 20, port);
136 _mav_put_uint8_t(buf, 21, rssi);
138 memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 22);
139 #else
140 mavlink_rc_channels_scaled_t packet;
141 packet.time_boot_ms = time_boot_ms;
142 packet.chan1_scaled = chan1_scaled;
143 packet.chan2_scaled = chan2_scaled;
144 packet.chan3_scaled = chan3_scaled;
145 packet.chan4_scaled = chan4_scaled;
146 packet.chan5_scaled = chan5_scaled;
147 packet.chan6_scaled = chan6_scaled;
148 packet.chan7_scaled = chan7_scaled;
149 packet.chan8_scaled = chan8_scaled;
150 packet.port = port;
151 packet.rssi = rssi;
153 memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 22);
154 #endif // if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
156 msg->msgid = MAVLINK_MSG_ID_RC_CHANNELS_SCALED;
157 return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 22, 237);
161 * @brief Encode a rc_channels_scaled struct into a message
163 * @param system_id ID of this system
164 * @param component_id ID of this component (e.g. 200 for IMU)
165 * @param msg The MAVLink message to compress the data into
166 * @param rc_channels_scaled C-struct to read the message contents from
168 static inline uint16_t mavlink_msg_rc_channels_scaled_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t *msg, const mavlink_rc_channels_scaled_t *rc_channels_scaled)
170 return mavlink_msg_rc_channels_scaled_pack(system_id, component_id, msg, rc_channels_scaled->time_boot_ms, rc_channels_scaled->port, rc_channels_scaled->chan1_scaled, rc_channels_scaled->chan2_scaled, rc_channels_scaled->chan3_scaled, rc_channels_scaled->chan4_scaled, rc_channels_scaled->chan5_scaled, rc_channels_scaled->chan6_scaled, rc_channels_scaled->chan7_scaled, rc_channels_scaled->chan8_scaled, rc_channels_scaled->rssi);
174 * @brief Send a rc_channels_scaled message
175 * @param chan MAVLink channel to send the message
177 * @param time_boot_ms Timestamp (milliseconds since system boot)
178 * @param port Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos.
179 * @param chan1_scaled RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
180 * @param chan2_scaled RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
181 * @param chan3_scaled RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
182 * @param chan4_scaled RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
183 * @param chan5_scaled RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
184 * @param chan6_scaled RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
185 * @param chan7_scaled RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
186 * @param chan8_scaled RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
187 * @param rssi Receive signal strength indicator, 0: 0%, 255: 100%
189 #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
191 static inline void mavlink_msg_rc_channels_scaled_send(mavlink_channel_t chan, uint32_t time_boot_ms, uint8_t port, int16_t chan1_scaled, int16_t chan2_scaled, int16_t chan3_scaled, int16_t chan4_scaled, int16_t chan5_scaled, int16_t chan6_scaled, int16_t chan7_scaled, int16_t chan8_scaled, uint8_t rssi)
193 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
194 char buf[22];
195 _mav_put_uint32_t(buf, 0, time_boot_ms);
196 _mav_put_int16_t(buf, 4, chan1_scaled);
197 _mav_put_int16_t(buf, 6, chan2_scaled);
198 _mav_put_int16_t(buf, 8, chan3_scaled);
199 _mav_put_int16_t(buf, 10, chan4_scaled);
200 _mav_put_int16_t(buf, 12, chan5_scaled);
201 _mav_put_int16_t(buf, 14, chan6_scaled);
202 _mav_put_int16_t(buf, 16, chan7_scaled);
203 _mav_put_int16_t(buf, 18, chan8_scaled);
204 _mav_put_uint8_t(buf, 20, port);
205 _mav_put_uint8_t(buf, 21, rssi);
207 _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RC_CHANNELS_SCALED, buf, 22, 237);
208 #else
209 mavlink_rc_channels_scaled_t packet;
210 packet.time_boot_ms = time_boot_ms;
211 packet.chan1_scaled = chan1_scaled;
212 packet.chan2_scaled = chan2_scaled;
213 packet.chan3_scaled = chan3_scaled;
214 packet.chan4_scaled = chan4_scaled;
215 packet.chan5_scaled = chan5_scaled;
216 packet.chan6_scaled = chan6_scaled;
217 packet.chan7_scaled = chan7_scaled;
218 packet.chan8_scaled = chan8_scaled;
219 packet.port = port;
220 packet.rssi = rssi;
222 _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_RC_CHANNELS_SCALED, (const char *)&packet, 22, 237);
223 #endif // if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
226 #endif // ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
228 // MESSAGE RC_CHANNELS_SCALED UNPACKING
232 * @brief Get field time_boot_ms from rc_channels_scaled message
234 * @return Timestamp (milliseconds since system boot)
236 static inline uint32_t mavlink_msg_rc_channels_scaled_get_time_boot_ms(const mavlink_message_t *msg)
238 return _MAV_RETURN_uint32_t(msg, 0);
242 * @brief Get field port from rc_channels_scaled message
244 * @return Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos.
246 static inline uint8_t mavlink_msg_rc_channels_scaled_get_port(const mavlink_message_t *msg)
248 return _MAV_RETURN_uint8_t(msg, 20);
252 * @brief Get field chan1_scaled from rc_channels_scaled message
254 * @return RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
256 static inline int16_t mavlink_msg_rc_channels_scaled_get_chan1_scaled(const mavlink_message_t *msg)
258 return _MAV_RETURN_int16_t(msg, 4);
262 * @brief Get field chan2_scaled from rc_channels_scaled message
264 * @return RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
266 static inline int16_t mavlink_msg_rc_channels_scaled_get_chan2_scaled(const mavlink_message_t *msg)
268 return _MAV_RETURN_int16_t(msg, 6);
272 * @brief Get field chan3_scaled from rc_channels_scaled message
274 * @return RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
276 static inline int16_t mavlink_msg_rc_channels_scaled_get_chan3_scaled(const mavlink_message_t *msg)
278 return _MAV_RETURN_int16_t(msg, 8);
282 * @brief Get field chan4_scaled from rc_channels_scaled message
284 * @return RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
286 static inline int16_t mavlink_msg_rc_channels_scaled_get_chan4_scaled(const mavlink_message_t *msg)
288 return _MAV_RETURN_int16_t(msg, 10);
292 * @brief Get field chan5_scaled from rc_channels_scaled message
294 * @return RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
296 static inline int16_t mavlink_msg_rc_channels_scaled_get_chan5_scaled(const mavlink_message_t *msg)
298 return _MAV_RETURN_int16_t(msg, 12);
302 * @brief Get field chan6_scaled from rc_channels_scaled message
304 * @return RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
306 static inline int16_t mavlink_msg_rc_channels_scaled_get_chan6_scaled(const mavlink_message_t *msg)
308 return _MAV_RETURN_int16_t(msg, 14);
312 * @brief Get field chan7_scaled from rc_channels_scaled message
314 * @return RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
316 static inline int16_t mavlink_msg_rc_channels_scaled_get_chan7_scaled(const mavlink_message_t *msg)
318 return _MAV_RETURN_int16_t(msg, 16);
322 * @brief Get field chan8_scaled from rc_channels_scaled message
324 * @return RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
326 static inline int16_t mavlink_msg_rc_channels_scaled_get_chan8_scaled(const mavlink_message_t *msg)
328 return _MAV_RETURN_int16_t(msg, 18);
332 * @brief Get field rssi from rc_channels_scaled message
334 * @return Receive signal strength indicator, 0: 0%, 255: 100%
336 static inline uint8_t mavlink_msg_rc_channels_scaled_get_rssi(const mavlink_message_t *msg)
338 return _MAV_RETURN_uint8_t(msg, 21);
342 * @brief Decode a rc_channels_scaled message into a struct
344 * @param msg The message to decode
345 * @param rc_channels_scaled C-struct to decode the message contents into
347 static inline void mavlink_msg_rc_channels_scaled_decode(const mavlink_message_t *msg, mavlink_rc_channels_scaled_t *rc_channels_scaled)
349 #if MAVLINK_NEED_BYTE_SWAP
350 rc_channels_scaled->time_boot_ms = mavlink_msg_rc_channels_scaled_get_time_boot_ms(msg);
351 rc_channels_scaled->chan1_scaled = mavlink_msg_rc_channels_scaled_get_chan1_scaled(msg);
352 rc_channels_scaled->chan2_scaled = mavlink_msg_rc_channels_scaled_get_chan2_scaled(msg);
353 rc_channels_scaled->chan3_scaled = mavlink_msg_rc_channels_scaled_get_chan3_scaled(msg);
354 rc_channels_scaled->chan4_scaled = mavlink_msg_rc_channels_scaled_get_chan4_scaled(msg);
355 rc_channels_scaled->chan5_scaled = mavlink_msg_rc_channels_scaled_get_chan5_scaled(msg);
356 rc_channels_scaled->chan6_scaled = mavlink_msg_rc_channels_scaled_get_chan6_scaled(msg);
357 rc_channels_scaled->chan7_scaled = mavlink_msg_rc_channels_scaled_get_chan7_scaled(msg);
358 rc_channels_scaled->chan8_scaled = mavlink_msg_rc_channels_scaled_get_chan8_scaled(msg);
359 rc_channels_scaled->port = mavlink_msg_rc_channels_scaled_get_port(msg);
360 rc_channels_scaled->rssi = mavlink_msg_rc_channels_scaled_get_rssi(msg);
361 #else
362 memcpy(rc_channels_scaled, _MAV_PAYLOAD(msg), 22);
363 #endif