diff --git a/files/mavlink_generator/C/include_v1.0/mavlink_helpers.h b/files/mavlink_generator/C/include_v1.0/mavlink_helpers.h index 6eb8f0ba2a554bf3a220ffcbbb922cbf9274dbdf..6799b6077db86f7793d2743a4a8778a6ba4f74fb 100644 --- a/files/mavlink_generator/C/include_v1.0/mavlink_helpers.h +++ b/files/mavlink_generator/C/include_v1.0/mavlink_helpers.h @@ -120,7 +120,7 @@ MAVLINK_HELPER void _mav_finalize_message_chan_send(mavlink_channel_t chan, uint */ MAVLINK_HELPER uint16_t mavlink_msg_to_send_buffer(uint8_t *buffer, const mavlink_message_t *msg) { - memcpy(buffer, (uint8_t *)&msg->magic, MAVLINK_NUM_NON_PAYLOAD_BYTES + (uint16_t)msg->len); + memcpy(buffer, (const uint8_t *)&msg->magic, MAVLINK_NUM_NON_PAYLOAD_BYTES + (uint16_t)msg->len); return MAVLINK_NUM_NON_PAYLOAD_BYTES + (uint16_t)msg->len; } @@ -182,7 +182,15 @@ MAVLINK_HELPER void mavlink_update_checksum(mavlink_message_t* msg, uint8_t c) */ MAVLINK_HELPER uint8_t mavlink_parse_char(uint8_t chan, uint8_t c, mavlink_message_t* r_message, mavlink_status_t* r_mavlink_status) { +#if MAVLINK_EXTERNAL_RX_BUFFER + // No m_mavlink_message array defined in function, + // has to be defined externally +#ifndef m_mavlink_message +#error ERROR: IF #define MAVLINK_EXTERNAL_RX_BUFFER IS SET, THE BUFFER HAS TO BE ALLOCATED OUTSIDE OF THIS FUNCTION +#endif +#else static mavlink_message_t m_mavlink_message[MAVLINK_COMM_NUM_BUFFERS]; +#endif /* default message crc function. You can override this per-system to @@ -209,6 +217,7 @@ MAVLINK_HELPER uint8_t mavlink_parse_char(uint8_t chan, uint8_t c, mavlink_messa { status->parse_state = MAVLINK_PARSE_STATE_GOT_STX; rxmsg->len = 0; + rxmsg->magic = c; mavlink_start_checksum(rxmsg); } break; @@ -269,7 +278,7 @@ MAVLINK_HELPER uint8_t mavlink_parse_char(uint8_t chan, uint8_t c, mavlink_messa break; case MAVLINK_PARSE_STATE_GOT_MSGID: - _MAV_PAYLOAD(rxmsg)[status->packet_idx++] = (char)c; + _MAV_PAYLOAD_NON_CONST(rxmsg)[status->packet_idx++] = (char)c; mavlink_update_checksum(rxmsg, c); if (status->packet_idx == rxmsg->len) { @@ -296,6 +305,7 @@ MAVLINK_HELPER uint8_t mavlink_parse_char(uint8_t chan, uint8_t c, mavlink_messa else { status->parse_state = MAVLINK_PARSE_STATE_GOT_CRC1; + _MAV_PAYLOAD_NON_CONST(rxmsg)[status->packet_idx] = (char)c; } break; @@ -317,6 +327,7 @@ MAVLINK_HELPER uint8_t mavlink_parse_char(uint8_t chan, uint8_t c, mavlink_messa // Successfully got message status->msg_received = 1; status->parse_state = MAVLINK_PARSE_STATE_IDLE; + _MAV_PAYLOAD_NON_CONST(rxmsg)[status->packet_idx+1] = (char)c; memcpy(r_message, rxmsg, sizeof(mavlink_message_t)); } break; diff --git a/files/mavlink_generator/C/include_v1.0/mavlink_types.h b/files/mavlink_generator/C/include_v1.0/mavlink_types.h index 571dc50872af5eefeebd98546cfdeae2b6240e35..3827834078b2dc8c12c692bfa35b7e4610f9cc27 100644 --- a/files/mavlink_generator/C/include_v1.0/mavlink_types.h +++ b/files/mavlink_generator/C/include_v1.0/mavlink_types.h @@ -1,6 +1,8 @@ #ifndef MAVLINK_TYPES_H_ #define MAVLINK_TYPES_H_ +#include + enum MAV_ACTION { MAV_ACTION_HOLD = 0, @@ -66,6 +68,8 @@ typedef struct param_union { float param_float; int32_t param_int32; uint32_t param_uint32; + uint8_t param_uint8; + uint8_t bytes[4]; }; uint8_t type; } mavlink_param_union_t; @@ -107,12 +111,12 @@ typedef enum { #define MAVLINK_MAX_FIELDS 64 typedef struct __mavlink_field_info { - const char *name; // name of this field - const char *print_format; // printing format hint, or NULL - mavlink_message_type_t type; // type of this field - unsigned array_length; // if non-zero, field is an array - unsigned wire_offset; // offset of each field in the payload - unsigned structure_offset; // offset in a C structure + const char *name; // name of this field + const char *print_format; // printing format hint, or NULL + mavlink_message_type_t type; // type of this field + unsigned int array_length; // if non-zero, field is an array + unsigned int wire_offset; // offset of each field in the payload + unsigned int structure_offset; // offset in a C structure } mavlink_field_info_t; // note that in this structure the order of fields is the order @@ -123,11 +127,12 @@ typedef struct __mavlink_message_info { mavlink_field_info_t fields[MAVLINK_MAX_FIELDS]; // field information } mavlink_message_info_t; -#define _MAV_PAYLOAD(msg) ((char *)(&(msg)->payload64[0])) +#define _MAV_PAYLOAD(msg) ((const char *)(&(msg)->payload64[0])) +#define _MAV_PAYLOAD_NON_CONST(msg) ((char *)((char *)(&(msg)->payload64[0]))) // checksum is immediately after the payload bytes -#define mavlink_ck_a(msg) *(msg->len + (uint8_t *)_MAV_PAYLOAD(msg)) -#define mavlink_ck_b(msg) *((msg->len+(uint16_t)1) + (uint8_t *)_MAV_PAYLOAD(msg)) +#define mavlink_ck_a(msg) *(msg->len + (uint8_t *)_MAV_PAYLOAD_NON_CONST(msg)) +#define mavlink_ck_b(msg) *((msg->len+(uint16_t)1) + (uint8_t *)_MAV_PAYLOAD_NON_CONST(msg)) typedef enum { MAVLINK_COMM_0, diff --git a/files/mavlink_generator/C/include_v1.0/protocol.h b/files/mavlink_generator/C/include_v1.0/protocol.h index 27c2396836e839638ef2d0a186442943346b28e3..7b3e3c0bd2112c9516e694b729cbc990d2e766bc 100644 --- a/files/mavlink_generator/C/include_v1.0/protocol.h +++ b/files/mavlink_generator/C/include_v1.0/protocol.h @@ -153,17 +153,25 @@ static inline void byte_copy_8(char *dst, const char *src) #define _mav_put_double(buf, wire_offset, b) *(double *)&buf[wire_offset] = b #endif +/* + like memcpy(), but if src is NULL, do a memset to zero +*/ +static void mav_array_memcpy(void *dest, const void *src, size_t n) +{ + if (src == NULL) { + memset(dest, 0, n); + } else { + memcpy(dest, src, n); + } +} /* * Place a char array into a buffer */ static inline void _mav_put_char_array(char *buf, uint8_t wire_offset, const char *b, uint8_t array_length) { - if (b == NULL) { - memset(&buf[wire_offset], 0, array_length); - } else { - memcpy(&buf[wire_offset], b, array_length); - } + mav_array_memcpy(&buf[wire_offset], b, array_length); + } /* @@ -171,11 +179,8 @@ static inline void _mav_put_char_array(char *buf, uint8_t wire_offset, const cha */ static inline void _mav_put_uint8_t_array(char *buf, uint8_t wire_offset, const uint8_t *b, uint8_t array_length) { - if (b == NULL) { - memset(&buf[wire_offset], 0, array_length); - } else { - memcpy(&buf[wire_offset], b, array_length); - } + mav_array_memcpy(&buf[wire_offset], b, array_length); + } /* @@ -183,11 +188,8 @@ static inline void _mav_put_uint8_t_array(char *buf, uint8_t wire_offset, const */ static inline void _mav_put_int8_t_array(char *buf, uint8_t wire_offset, const int8_t *b, uint8_t array_length) { - if (b == NULL) { - memset(&buf[wire_offset], 0, array_length); - } else { - memcpy(&buf[wire_offset], b, array_length); - } + mav_array_memcpy(&buf[wire_offset], b, array_length); + } #if MAVLINK_NEED_BYTE_SWAP @@ -207,11 +209,7 @@ static inline void _mav_put_ ## TYPE ##_array(char *buf, uint8_t wire_offset, co #define _MAV_PUT_ARRAY(TYPE, V) \ static inline void _mav_put_ ## TYPE ##_array(char *buf, uint8_t wire_offset, const TYPE *b, uint8_t array_length) \ { \ - if (b == NULL) { \ - memset(&buf[wire_offset], 0, array_length*sizeof(TYPE)); \ - } else { \ - memcpy(&buf[wire_offset], b, array_length*sizeof(TYPE)); \ - } \ + mav_array_memcpy(&buf[wire_offset], b, array_length*sizeof(TYPE)); \ } #endif @@ -224,9 +222,9 @@ _MAV_PUT_ARRAY(int64_t, i64) _MAV_PUT_ARRAY(float, f) _MAV_PUT_ARRAY(double, d) -#define _MAV_RETURN_char(msg, wire_offset) _MAV_PAYLOAD(msg)[wire_offset] -#define _MAV_RETURN_int8_t(msg, wire_offset) (int8_t)_MAV_PAYLOAD(msg)[wire_offset] -#define _MAV_RETURN_uint8_t(msg, wire_offset) (uint8_t)_MAV_PAYLOAD(msg)[wire_offset] +#define _MAV_RETURN_char(msg, wire_offset) (const char)_MAV_PAYLOAD(msg)[wire_offset] +#define _MAV_RETURN_int8_t(msg, wire_offset) (const int8_t)_MAV_PAYLOAD(msg)[wire_offset] +#define _MAV_RETURN_uint8_t(msg, wire_offset) (const uint8_t)_MAV_PAYLOAD(msg)[wire_offset] #if MAVLINK_NEED_BYTE_SWAP #define _MAV_MSG_RETURN_TYPE(TYPE, SIZE) \ diff --git a/files/mavlink_generator/generator/_ctypes.pyd b/files/mavlink_generator/generator/_ctypes.pyd new file mode 100644 index 0000000000000000000000000000000000000000..ae456be8063dc5776e31bda4300a9c04304a2511 Binary files /dev/null and b/files/mavlink_generator/generator/_ctypes.pyd differ diff --git a/files/mavlink_generator/generator/_hashlib.pyd b/files/mavlink_generator/generator/_hashlib.pyd new file mode 100644 index 0000000000000000000000000000000000000000..5efea4ac7366e80f01d857462a066a1bbb74adfa Binary files /dev/null and b/files/mavlink_generator/generator/_hashlib.pyd differ diff --git a/files/mavlink_generator/generator/_socket.pyd b/files/mavlink_generator/generator/_socket.pyd new file mode 100644 index 0000000000000000000000000000000000000000..b4b3b1fe60899deb850110a1aacd46e956722ab0 Binary files /dev/null and b/files/mavlink_generator/generator/_socket.pyd differ diff --git a/files/mavlink_generator/generator/_ssl.pyd b/files/mavlink_generator/generator/_ssl.pyd new file mode 100644 index 0000000000000000000000000000000000000000..c054f240d67ff88e4fb9f6745858b0365099829e Binary files /dev/null and b/files/mavlink_generator/generator/_ssl.pyd differ diff --git a/files/mavlink_generator/generator/bz2.pyd b/files/mavlink_generator/generator/bz2.pyd new file mode 100644 index 0000000000000000000000000000000000000000..df1a20e4c98d752349fefb7af3952102aa7cd2f4 Binary files /dev/null and b/files/mavlink_generator/generator/bz2.pyd differ diff --git a/files/mavlink_generator/generator/library.zip b/files/mavlink_generator/generator/library.zip new file mode 100644 index 0000000000000000000000000000000000000000..fb48826192e9366422e77132c1dcfa05e616dd1f Binary files /dev/null and b/files/mavlink_generator/generator/library.zip differ diff --git a/files/mavlink_generator/generator/mavgen.exe b/files/mavlink_generator/generator/mavgen.exe new file mode 100644 index 0000000000000000000000000000000000000000..b59dd82c45c0f4288c3ece8bd02f4ea3f1f72379 Binary files /dev/null and b/files/mavlink_generator/generator/mavgen.exe differ diff --git a/files/mavlink_generator/generator/pyexpat.pyd b/files/mavlink_generator/generator/pyexpat.pyd new file mode 100644 index 0000000000000000000000000000000000000000..03c607001ccfa956e83f38fcab4edc5eab33899b Binary files /dev/null and b/files/mavlink_generator/generator/pyexpat.pyd differ diff --git a/files/mavlink_generator/generator/python27.dll b/files/mavlink_generator/generator/python27.dll new file mode 100644 index 0000000000000000000000000000000000000000..9b03b95e80bf87624389f3c348fcfbfd43d8db8e Binary files /dev/null and b/files/mavlink_generator/generator/python27.dll differ diff --git a/files/mavlink_generator/generator/select.pyd b/files/mavlink_generator/generator/select.pyd new file mode 100644 index 0000000000000000000000000000000000000000..e1b0ec2c49f1108286fcd941a922070976c0e9ab Binary files /dev/null and b/files/mavlink_generator/generator/select.pyd differ diff --git a/files/mavlink_generator/generator/unicodedata.pyd b/files/mavlink_generator/generator/unicodedata.pyd new file mode 100644 index 0000000000000000000000000000000000000000..a5c460d6fb27d2c938ea4b3c7401ed2358e14e3a Binary files /dev/null and b/files/mavlink_generator/generator/unicodedata.pyd differ diff --git a/files/mavlink_generator/generator/w9xpopen.exe b/files/mavlink_generator/generator/w9xpopen.exe new file mode 100644 index 0000000000000000000000000000000000000000..f6033fdeaaaf14dc80579adeb1a8827f08d1de4f Binary files /dev/null and b/files/mavlink_generator/generator/w9xpopen.exe differ diff --git a/images/earth-singlesystem.html b/images/earth-singlesystem.html new file mode 100644 index 0000000000000000000000000000000000000000..5091ce347d391c2ac7a7d1bf0ada9520905db346 --- /dev/null +++ b/images/earth-singlesystem.html @@ -0,0 +1,759 @@ + + + + + + + + QGroundControl Google Earth View + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + diff --git a/images/earth.html b/images/earth.html index 5091ce347d391c2ac7a7d1bf0ada9520905db346..8fa28ef5f27481c8d65defc15264bf17b4d64781 100644 --- a/images/earth.html +++ b/images/earth.html @@ -11,16 +11,15 @@