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 \
25 "RC_CHANNELS_SCALED", \
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) }, \
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
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);
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
;
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
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);
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
;
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
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);
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
;
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
);
362 memcpy(rc_channels_scaled
, _MAV_PAYLOAD(msg
), 22);