Code for autonomous ground vehicle, Data Bus, 3rd place winner in 2012 Sparkfun AVC.
Dependencies: Watchdog mbed Schedule SimpleFilter LSM303DLM PinDetect DebounceIn Servo
mavlink_msg_rc_channels_scaled.h
00001 // MESSAGE RC_CHANNELS_SCALED PACKING 00002 00003 #define MAVLINK_MSG_ID_RC_CHANNELS_SCALED 36 00004 00005 typedef struct __mavlink_rc_channels_scaled_t 00006 { 00007 int16_t chan1_scaled; ///< RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00008 int16_t chan2_scaled; ///< RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00009 int16_t chan3_scaled; ///< RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00010 int16_t chan4_scaled; ///< RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00011 int16_t chan5_scaled; ///< RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00012 int16_t chan6_scaled; ///< RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00013 int16_t chan7_scaled; ///< RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00014 int16_t chan8_scaled; ///< RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00015 uint8_t rssi; ///< Receive signal strength indicator, 0: 0%, 255: 100% 00016 00017 } mavlink_rc_channels_scaled_t; 00018 00019 00020 00021 /** 00022 * @brief Pack a rc_channels_scaled message 00023 * @param system_id ID of this system 00024 * @param component_id ID of this component (e.g. 200 for IMU) 00025 * @param msg The MAVLink message to compress the data into 00026 * 00027 * @param chan1_scaled RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00028 * @param chan2_scaled RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00029 * @param chan3_scaled RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00030 * @param chan4_scaled RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00031 * @param chan5_scaled RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00032 * @param chan6_scaled RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00033 * @param chan7_scaled RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00034 * @param chan8_scaled RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00035 * @param rssi Receive signal strength indicator, 0: 0%, 255: 100% 00036 * @return length of the message in bytes (excluding serial stream start sign) 00037 */ 00038 static inline uint16_t mavlink_msg_rc_channels_scaled_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, 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) 00039 { 00040 uint16_t i = 0; 00041 msg->msgid = MAVLINK_MSG_ID_RC_CHANNELS_SCALED; 00042 00043 i += put_int16_t_by_index(chan1_scaled, i, msg->payload); // RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00044 i += put_int16_t_by_index(chan2_scaled, i, msg->payload); // RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00045 i += put_int16_t_by_index(chan3_scaled, i, msg->payload); // RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00046 i += put_int16_t_by_index(chan4_scaled, i, msg->payload); // RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00047 i += put_int16_t_by_index(chan5_scaled, i, msg->payload); // RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00048 i += put_int16_t_by_index(chan6_scaled, i, msg->payload); // RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00049 i += put_int16_t_by_index(chan7_scaled, i, msg->payload); // RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00050 i += put_int16_t_by_index(chan8_scaled, i, msg->payload); // RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00051 i += put_uint8_t_by_index(rssi, i, msg->payload); // Receive signal strength indicator, 0: 0%, 255: 100% 00052 00053 return mavlink_finalize_message(msg, system_id, component_id, i); 00054 } 00055 00056 /** 00057 * @brief Pack a rc_channels_scaled message 00058 * @param system_id ID of this system 00059 * @param component_id ID of this component (e.g. 200 for IMU) 00060 * @param chan The MAVLink channel this message was sent over 00061 * @param msg The MAVLink message to compress the data into 00062 * @param chan1_scaled RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00063 * @param chan2_scaled RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00064 * @param chan3_scaled RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00065 * @param chan4_scaled RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00066 * @param chan5_scaled RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00067 * @param chan6_scaled RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00068 * @param chan7_scaled RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00069 * @param chan8_scaled RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00070 * @param rssi Receive signal strength indicator, 0: 0%, 255: 100% 00071 * @return length of the message in bytes (excluding serial stream start sign) 00072 */ 00073 static inline uint16_t mavlink_msg_rc_channels_scaled_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, 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) 00074 { 00075 uint16_t i = 0; 00076 msg->msgid = MAVLINK_MSG_ID_RC_CHANNELS_SCALED; 00077 00078 i += put_int16_t_by_index(chan1_scaled, i, msg->payload); // RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00079 i += put_int16_t_by_index(chan2_scaled, i, msg->payload); // RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00080 i += put_int16_t_by_index(chan3_scaled, i, msg->payload); // RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00081 i += put_int16_t_by_index(chan4_scaled, i, msg->payload); // RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00082 i += put_int16_t_by_index(chan5_scaled, i, msg->payload); // RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00083 i += put_int16_t_by_index(chan6_scaled, i, msg->payload); // RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00084 i += put_int16_t_by_index(chan7_scaled, i, msg->payload); // RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00085 i += put_int16_t_by_index(chan8_scaled, i, msg->payload); // RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00086 i += put_uint8_t_by_index(rssi, i, msg->payload); // Receive signal strength indicator, 0: 0%, 255: 100% 00087 00088 return mavlink_finalize_message_chan(msg, system_id, component_id, chan, i); 00089 } 00090 00091 /** 00092 * @brief Encode a rc_channels_scaled struct into a message 00093 * 00094 * @param system_id ID of this system 00095 * @param component_id ID of this component (e.g. 200 for IMU) 00096 * @param msg The MAVLink message to compress the data into 00097 * @param rc_channels_scaled C-struct to read the message contents from 00098 */ 00099 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) 00100 { 00101 return mavlink_msg_rc_channels_scaled_pack(system_id, component_id, msg, 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); 00102 } 00103 00104 /** 00105 * @brief Send a rc_channels_scaled message 00106 * @param chan MAVLink channel to send the message 00107 * 00108 * @param chan1_scaled RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00109 * @param chan2_scaled RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00110 * @param chan3_scaled RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00111 * @param chan4_scaled RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00112 * @param chan5_scaled RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00113 * @param chan6_scaled RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00114 * @param chan7_scaled RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00115 * @param chan8_scaled RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00116 * @param rssi Receive signal strength indicator, 0: 0%, 255: 100% 00117 */ 00118 #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS 00119 00120 static inline void mavlink_msg_rc_channels_scaled_send(mavlink_channel_t chan, 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) 00121 { 00122 mavlink_message_t msg; 00123 mavlink_msg_rc_channels_scaled_pack_chan(mavlink_system.sysid, mavlink_system.compid, chan, &msg, chan1_scaled, chan2_scaled, chan3_scaled, chan4_scaled, chan5_scaled, chan6_scaled, chan7_scaled, chan8_scaled, rssi); 00124 mavlink_send_uart(chan, &msg); 00125 } 00126 00127 #endif 00128 // MESSAGE RC_CHANNELS_SCALED UNPACKING 00129 00130 /** 00131 * @brief Get field chan1_scaled from rc_channels_scaled message 00132 * 00133 * @return RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00134 */ 00135 static inline int16_t mavlink_msg_rc_channels_scaled_get_chan1_scaled(const mavlink_message_t* msg) 00136 { 00137 generic_16bit r; 00138 r.b[1] = (msg->payload)[0]; 00139 r.b[0] = (msg->payload)[1]; 00140 return (int16_t)r.s; 00141 } 00142 00143 /** 00144 * @brief Get field chan2_scaled from rc_channels_scaled message 00145 * 00146 * @return RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00147 */ 00148 static inline int16_t mavlink_msg_rc_channels_scaled_get_chan2_scaled(const mavlink_message_t* msg) 00149 { 00150 generic_16bit r; 00151 r.b[1] = (msg->payload+sizeof(int16_t))[0]; 00152 r.b[0] = (msg->payload+sizeof(int16_t))[1]; 00153 return (int16_t)r.s; 00154 } 00155 00156 /** 00157 * @brief Get field chan3_scaled from rc_channels_scaled message 00158 * 00159 * @return RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00160 */ 00161 static inline int16_t mavlink_msg_rc_channels_scaled_get_chan3_scaled(const mavlink_message_t* msg) 00162 { 00163 generic_16bit r; 00164 r.b[1] = (msg->payload+sizeof(int16_t)+sizeof(int16_t))[0]; 00165 r.b[0] = (msg->payload+sizeof(int16_t)+sizeof(int16_t))[1]; 00166 return (int16_t)r.s; 00167 } 00168 00169 /** 00170 * @brief Get field chan4_scaled from rc_channels_scaled message 00171 * 00172 * @return RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00173 */ 00174 static inline int16_t mavlink_msg_rc_channels_scaled_get_chan4_scaled(const mavlink_message_t* msg) 00175 { 00176 generic_16bit r; 00177 r.b[1] = (msg->payload+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t))[0]; 00178 r.b[0] = (msg->payload+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t))[1]; 00179 return (int16_t)r.s; 00180 } 00181 00182 /** 00183 * @brief Get field chan5_scaled from rc_channels_scaled message 00184 * 00185 * @return RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00186 */ 00187 static inline int16_t mavlink_msg_rc_channels_scaled_get_chan5_scaled(const mavlink_message_t* msg) 00188 { 00189 generic_16bit r; 00190 r.b[1] = (msg->payload+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t))[0]; 00191 r.b[0] = (msg->payload+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t))[1]; 00192 return (int16_t)r.s; 00193 } 00194 00195 /** 00196 * @brief Get field chan6_scaled from rc_channels_scaled message 00197 * 00198 * @return RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00199 */ 00200 static inline int16_t mavlink_msg_rc_channels_scaled_get_chan6_scaled(const mavlink_message_t* msg) 00201 { 00202 generic_16bit r; 00203 r.b[1] = (msg->payload+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t))[0]; 00204 r.b[0] = (msg->payload+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t))[1]; 00205 return (int16_t)r.s; 00206 } 00207 00208 /** 00209 * @brief Get field chan7_scaled from rc_channels_scaled message 00210 * 00211 * @return RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00212 */ 00213 static inline int16_t mavlink_msg_rc_channels_scaled_get_chan7_scaled(const mavlink_message_t* msg) 00214 { 00215 generic_16bit r; 00216 r.b[1] = (msg->payload+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t))[0]; 00217 r.b[0] = (msg->payload+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t))[1]; 00218 return (int16_t)r.s; 00219 } 00220 00221 /** 00222 * @brief Get field chan8_scaled from rc_channels_scaled message 00223 * 00224 * @return RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 00225 */ 00226 static inline int16_t mavlink_msg_rc_channels_scaled_get_chan8_scaled(const mavlink_message_t* msg) 00227 { 00228 generic_16bit r; 00229 r.b[1] = (msg->payload+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t))[0]; 00230 r.b[0] = (msg->payload+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t))[1]; 00231 return (int16_t)r.s; 00232 } 00233 00234 /** 00235 * @brief Get field rssi from rc_channels_scaled message 00236 * 00237 * @return Receive signal strength indicator, 0: 0%, 255: 100% 00238 */ 00239 static inline uint8_t mavlink_msg_rc_channels_scaled_get_rssi(const mavlink_message_t* msg) 00240 { 00241 return (uint8_t)(msg->payload+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t)+sizeof(int16_t))[0]; 00242 } 00243 00244 /** 00245 * @brief Decode a rc_channels_scaled message into a struct 00246 * 00247 * @param msg The message to decode 00248 * @param rc_channels_scaled C-struct to decode the message contents into 00249 */ 00250 static inline void mavlink_msg_rc_channels_scaled_decode(const mavlink_message_t* msg, mavlink_rc_channels_scaled_t* rc_channels_scaled) 00251 { 00252 rc_channels_scaled->chan1_scaled = mavlink_msg_rc_channels_scaled_get_chan1_scaled(msg); 00253 rc_channels_scaled->chan2_scaled = mavlink_msg_rc_channels_scaled_get_chan2_scaled(msg); 00254 rc_channels_scaled->chan3_scaled = mavlink_msg_rc_channels_scaled_get_chan3_scaled(msg); 00255 rc_channels_scaled->chan4_scaled = mavlink_msg_rc_channels_scaled_get_chan4_scaled(msg); 00256 rc_channels_scaled->chan5_scaled = mavlink_msg_rc_channels_scaled_get_chan5_scaled(msg); 00257 rc_channels_scaled->chan6_scaled = mavlink_msg_rc_channels_scaled_get_chan6_scaled(msg); 00258 rc_channels_scaled->chan7_scaled = mavlink_msg_rc_channels_scaled_get_chan7_scaled(msg); 00259 rc_channels_scaled->chan8_scaled = mavlink_msg_rc_channels_scaled_get_chan8_scaled(msg); 00260 rc_channels_scaled->rssi = mavlink_msg_rc_channels_scaled_get_rssi(msg); 00261 }
Generated on Tue Jul 12 2022 14:09:26 by 1.7.2