diff --git a/libraries/GCS_MAVLink/.gitignore b/libraries/GCS_MAVLink/.gitignore
index d67b9114a8bfd87e59462c81db271ba1cdc24f2f..0b16395bedcb74f63beae66cccf13696e6417ff4 100644
--- a/libraries/GCS_MAVLink/.gitignore
+++ b/libraries/GCS_MAVLink/.gitignore
@@ -1,3 +1,16 @@
 *~
 doc/html
 doc/*.log
+
+include/mavlink/v0.9/slugs/
+include/mavlink/v0.9/ualberta/
+include/mavlink/v0.9/minimal/
+include/mavlink/v0.9/test/
+include/mavlink/v0.9/pixhawk/
+
+include/mavlink/v1.0/slugs/
+include/mavlink/v1.0/ualberta/
+include/mavlink/v1.0/minimal/
+include/mavlink/v1.0/test/
+include/mavlink/v1.0/pixhawk/
+include/mavlink/v1.0/sensoar/
diff --git a/libraries/GCS_MAVLink/GCS_MAVLink.cpp b/libraries/GCS_MAVLink/GCS_MAVLink.cpp
index bbf3cf4412d9090ca42d285d23659e4c25841140..fa8759f1e72d714a1cc8bab2ec3ef3bde322c2b3 100644
--- a/libraries/GCS_MAVLink/GCS_MAVLink.cpp
+++ b/libraries/GCS_MAVLink/GCS_MAVLink.cpp
@@ -12,9 +12,9 @@ BetterStream	*mavlink_comm_1_port;
 mavlink_system_t mavlink_system = {7,1,0,0};
 
 #ifdef MAVLINK10
-# include "include_v1.0/mavlink_helpers.h"
+# include "include/mavlink/v1.0/mavlink_helpers.h"
 #else
-# include "include/mavlink_helpers.h"
+# include "include/mavlink/v0.9/mavlink_helpers.h"
 #endif
 
 uint8_t mavlink_check_target(uint8_t sysid, uint8_t compid)
diff --git a/libraries/GCS_MAVLink/GCS_MAVLink.h b/libraries/GCS_MAVLink/GCS_MAVLink.h
index 4b3a038e0b691657092ab86177acbc638820a2d4..d2003b84fa760445edd3b9e467d16fc658e790cc 100644
--- a/libraries/GCS_MAVLink/GCS_MAVLink.h
+++ b/libraries/GCS_MAVLink/GCS_MAVLink.h
@@ -11,9 +11,9 @@
 #define MAVLINK_SEPARATE_HELPERS
 
 #ifdef MAVLINK10
-# include "include_v1.0/ardupilotmega/version.h"
+# include "include/mavlink/v1.0/ardupilotmega/version.h"
 #else
-# include "include/ardupilotmega/version.h"
+# include "include/mavlink/v0.9/ardupilotmega/version.h"
 #endif
 
 // this allows us to make mavlink_message_t much smaller
@@ -21,9 +21,9 @@
 
 #define MAVLINK_COMM_NUM_BUFFERS 2
 #ifdef MAVLINK10
-# include "include_v1.0/mavlink_types.h"
+# include "include/mavlink/v1.0/mavlink_types.h"
 #else
-# include "include/mavlink_types.h"
+# include "include/mavlink/v0.9/mavlink_types.h"
 #endif
 
 /// MAVLink stream used for HIL interaction
@@ -118,9 +118,9 @@ static inline int comm_get_txspace(mavlink_channel_t chan)
 
 #define MAVLINK_USE_CONVENIENCE_FUNCTIONS
 #ifdef MAVLINK10
-# include "include_v1.0/ardupilotmega/mavlink.h"
+# include "include/mavlink/v1.0/ardupilotmega/mavlink.h"
 #else
-# include "include/ardupilotmega/mavlink.h"
+# include "include/mavlink/v0.9/ardupilotmega/mavlink.h"
 #endif
 
 uint8_t mavlink_check_target(uint8_t sysid, uint8_t compid);
diff --git a/libraries/GCS_MAVLink/README b/libraries/GCS_MAVLink/README
deleted file mode 100644
index 513d5c77f7116429ed650d349f1ec155cf16ddac..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/README
+++ /dev/null
@@ -1,29 +0,0 @@
-MAVLink Micro Air Vehicle Message Marshalling Library
-
-This is a library for lightweight communication between
-Micro Air Vehicles (swarm) and/or ground control stations.
-It serializes C-structs for serial channels and can be used with
-any type of radio modem.
-
-For help, please visit the mailing list: http://groups.google.com/group/mavlink
-
-MAVLink is licensed under the terms of the Lesser General Public License of the Free Software Foundation (LGPL).
-As MAVLink is a header-only library, compiling an application with it is considered "using the libary", not a derived work. MAVLink can therefore be used without limits in any closed-source application without publishing the source code of the closed-source application.
-
-To generate/update packets, select mavlink_standard_message.xml
-in the QGroundControl station settings view, select mavlink/include as
-the output directory and click on "Save and Generate".
-You will find the newly generated/updated message_xx.h files in
-the mavlink/include/generated folder.
-
-To use MAVLink, #include the <mavlink.h> file, not the individual
-message files. In some cases you will have to add the main folder to the include search path as well. To be safe, we recommend these flags:
-
-gcc -I mavlink/include -I mavlink/include/<your message set, e.g. common>
-
-For more information, please visit:
-
-http://qgroundcontrol.org/mavlink/
-
-(c) 2009-2011 Lorenz Meier <mail@qgroundcontrol.org>
-
diff --git a/libraries/GCS_MAVLink/VERSION b/libraries/GCS_MAVLink/VERSION
new file mode 100644
index 0000000000000000000000000000000000000000..af0b7ddbffd5d5a877581ba8ba10deed158da14d
--- /dev/null
+++ b/libraries/GCS_MAVLink/VERSION
@@ -0,0 +1 @@
+1.0.6
diff --git a/libraries/GCS_MAVLink/doc/Doxyfile b/libraries/GCS_MAVLink/doc/Doxyfile
deleted file mode 100755
index 4ab7c0e06f50e2cc1c707636f45726291afa3deb..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/doc/Doxyfile
+++ /dev/null
@@ -1,1521 +0,0 @@
-# Doxyfile 1.6.1
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all
-# text before the first occurrence of this tag. Doxygen uses libiconv (or the
-# iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
-
-DOXYFILE_ENCODING      = UTF-8
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
-
-PROJECT_NAME           = "PIXHAWK IMU / Autopilot"
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER         =
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       =
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
-# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
-# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
-# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
-
-OUTPUT_LANGUAGE        = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF       =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC    = YES
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH        =
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH    =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful is your file systems
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
-
-JAVADOC_AUTOBRIEF      = NO
-
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
-# interpret the first line (until the first dot) of a Qt-style
-# comment as the brief description. If set to NO, the comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
-
-QT_AUTOBRIEF           = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS           = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES  = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for
-# Java. For instance, namespaces will be presented as packages, qualified
-# scopes will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources only. Doxygen will then generate output that is more tailored for
-# Fortran.
-
-OPTIMIZE_FOR_FORTRAN   = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for
-# VHDL.
-
-OPTIMIZE_OUTPUT_VHDL   = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it parses.
-# With this tag you can assign which parser to use for a given extension.
-# Doxygen has a built-in mapping, but you can override or extend it using this tag.
-# The format is ext=language, where ext is a file extension, and language is one of
-# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
-# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
-# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),
-# use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
-
-EXTENSION_MAPPING      =
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also make the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT    = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT        = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
-# Doxygen will parse them like normal C++ but will assume all classes use public
-# instead of private inheritance when no explicit protection keyword is present.
-
-SIP_SUPPORT            = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate getter
-# and setter methods for a property. Setting this option to YES (the default)
-# will make doxygen to replace the get and set methods by a property in the
-# documentation. This will only work if the methods are indeed getting or
-# setting a simple type. If this is not the case, or you want to show the
-# methods anyway, you should set this option to NO.
-
-IDL_PROPERTY_SUPPORT   = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING            = YES
-
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
-# is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically
-# be useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-
-TYPEDEF_HIDES_STRUCT   = NO
-
-# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
-# determine which symbols to keep in memory and which to flush to disk.
-# When the cache is full, less often used symbols will be written to disk.
-# For small to medium size projects (<1000 input files) the default value is
-# probably good enough. For larger projects a too small cache size can cause
-# doxygen to be busy swapping symbols to and from disk most of the time
-# causing a significant performance penality.
-# If the system has enough physical memory increasing the cache will improve the
-# performance by keeping more symbols in memory. Note that the value works on
-# a logarithmic scale so increasing the size by one will rougly double the
-# memory usage. The cache size is given by this formula:
-# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols
-
-SYMBOL_CACHE_SIZE      = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC         = YES
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base
-# name of the file that contains the anonymous namespace. By default
-# anonymous namespace are hidden.
-
-EXTRACT_ANON_NSPACES   = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS      = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES       = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS        = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
-# hierarchy of group names into alphabetical order. If set to NO (the default)
-# the group names will appear in their defined order.
-
-SORT_GROUP_NAMES       = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and defines in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation. The default is NO.
-
-SHOW_DIRECTORIES       = YES
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
-# This will remove the Files entry from the Quick Index and from the
-# Folder Tree View (if specified). The default is YES.
-
-SHOW_FILES             = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
-# Namespaces page.
-# This will remove the Namespaces entry from the Quick Index
-# and from the Folder Tree View (if specified). The default is YES.
-
-SHOW_NAMESPACES        = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER    =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
-# doxygen. The layout file controls the global structure of the generated output files
-# in an output format independent way. The create the layout file that represents
-# doxygen's defaults, run doxygen with the -l option. You can optionally specify a
-# file name after the option, if omitted DoxygenLayout.xml will be used as the name
-# of the layout file.
-
-LAYOUT_FILE            =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = YES
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS               = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR      = YES
-
-# This WARN_NO_PARAMDOC option can be abled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC       = YES
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE           = doxy.log
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT                  = ..
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
-# also the default input encoding. Doxygen uses libiconv (or the iconv built
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
-# the list of possible encodings.
-
-INPUT_ENCODING         = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
-
-FILE_PATTERNS          = *.c *.h *.hpp *.hxx *.cc *.cpp *.cxx *.dox
-#FILE_PATTERNS          =
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE              = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE                = ../Debug \
-                         ../Release \
-                         ../external \
-                         ../testing \
-                         ../tools \
-                         ../arm7/include \
-			 ../measurements
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix filesystem feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS       =
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-
-EXCLUDE_SYMBOLS        =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH           =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS       =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH             =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.
-# If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER           =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis.
-# Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match.
-# The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
-# is applied to all files.
-
-FILTER_PATTERNS        =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = NO
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.
-# Otherwise they will link to the documentation.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = NO
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header.
-
-HTML_HEADER            =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER            =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET        =
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS     = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded. For this to work a browser that supports
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
-
-HTML_DYNAMIC_SECTIONS  = NO
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files
-# will be generated that can be used as input for Apple's Xcode 3
-# integrated development environment, introduced with OSX 10.5 (Leopard).
-# To create a documentation set, doxygen will generate a Makefile in the
-# HTML output directory. Running make will produce the docset in that
-# directory and running "make install" will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
-# it at startup.
-# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
-
-GENERATE_DOCSET        = NO
-
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
-# feed. A documentation feed provides an umbrella under which multiple
-# documentation sets from a single provider (such as a company or product suite)
-# can be grouped.
-
-DOCSET_FEEDNAME        = "Doxygen generated docs"
-
-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
-# should uniquely identify the documentation set bundle. This should be a
-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
-# will append .docset to the name.
-
-DOCSET_BUNDLE_ID       = org.doxygen.Project
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE               =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION           =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
-# content.
-
-CHM_INDEX_ENCODING     =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND             = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER
-# are set, an additional index file will be generated that can be used as input for
-# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated
-# HTML documentation.
-
-GENERATE_QHP           = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
-# be used to specify the file name of the resulting .qch file.
-# The path specified is relative to the HTML output folder.
-
-QCH_FILE               =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#namespace
-
-QHP_NAMESPACE          =
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#virtual-folders
-
-QHP_VIRTUAL_FOLDER     = doc
-
-# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add.
-# For more information please see
-# http://doc.trolltech.com/qthelpproject.html#custom-filters
-
-QHP_CUST_FILTER_NAME   =
-
-# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see
-# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
-
-QHP_CUST_FILTER_ATTRS  =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's
-# filter section matches.
-# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
-
-QHP_SECT_FILTER_ATTRS  =
-
-# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
-# be used to specify the location of Qt's qhelpgenerator.
-# If non-empty doxygen will try to run qhelpgenerator on the generated
-# .qhp file.
-
-QHG_LOCATION           =
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX          = NO
-
-# This tag can be used to set the number of enum values (range [1..20])
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE   = 4
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information.
-# If the tag value is set to YES, a side panel will be generated
-# containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
-# Windows users are probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW      = NO
-
-# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
-# and Class Hierarchy pages using a tree view instead of an ordered list.
-
-USE_INLINE_TREES       = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH         = 250
-
-# Use this tag to change the font size of Latex formulas included
-# as images in the HTML documentation. The default is 10. Note that
-# when you change the font size after a successful doxygen run you need
-# to manually remove any form_*.png images from the HTML output directory
-# to force them to be regenerated.
-
-FORMULA_FONTSIZE       = 10
-
-# When the SEARCHENGINE tag is enable doxygen will generate a search box for the HTML output. The underlying search engine uses javascript
-# and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP) or Qt help (GENERATE_QHP)
-# there is already a search function so this one should typically
-# be disabled.
-
-SEARCHENGINE           = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX         = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, a4wide, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES     = NO
-
-# If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER.
-
-LATEX_SOURCE_CODE      = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA             =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD                =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader.
-# This is useful
-# if you want to understand what is going on.
-# On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH           =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS  =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED             = IMU_PIXHAWK_V200 IMU_PIXHAWK_V210
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED      = 
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all function-like macros that are alone
-# on a line, have an all uppercase name, and do not end with a semicolon. Such
-# function macros are typically used for boiler-plate code, and will confuse
-# the parser if not removed.
-
-SKIP_FUNCTION_MACROS   = NO
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-#
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-#
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES               =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS        = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option is superseded by the HAVE_DOT option below. This is only a
-# fallback. It is recommended to install and use dot, since it yields more
-# powerful graphs.
-
-CLASS_DIAGRAMS         = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH            =
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = YES
-
-# By default doxygen will write a font called FreeSans.ttf to the output
-# directory and reference it in all dot files that doxygen generates. This
-# font does not include all possible unicode characters however, so when you need
-# these (or just want a differently looking font) you can specify the font name
-# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
-# which can be done by putting it in a standard location or by setting the
-# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
-# containing the font.
-
-DOT_FONTNAME           = FreeSans
-
-# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
-# The default size is 10pt.
-
-DOT_FONTSIZE           = 10
-
-# By default doxygen will tell dot to use the output directory to look for the
-# FreeSans.ttf font (which doxygen will put there itself). If you specify a
-# different font using DOT_FONTNAME you can set the path where dot
-# can find it using this tag.
-
-DOT_FONTPATH           =
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS           = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK               = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH and HAVE_DOT options are set to YES then
-# doxygen will generate a call dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable call graphs
-# for selected functions only using the \callgraph command.
-
-CALL_GRAPH             = NO
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
-# doxygen will generate a caller dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable caller
-# graphs for selected functions only using the \callergraph command.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT       = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH               =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS           =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen if the
-# number of direct children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
-DOT_GRAPH_MAX_NODES    = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
-MAX_DOT_GRAPH_DEPTH    = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not
-# seem to support this out of the box. Warning: Depending on the platform used,
-# enabling this option may lead to badly anti-aliased labels on the edges of
-# a graph (i.e. they become hard to read).
-
-DOT_TRANSPARENT        = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS      = YES
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP            = YES
diff --git a/libraries/GCS_MAVLink/doc/README b/libraries/GCS_MAVLink/doc/README
deleted file mode 100644
index 587460140e901a588c17c4b6d821a5af8da32f24..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/doc/README
+++ /dev/null
@@ -1,9 +0,0 @@
-MAVLink Micro Air Vehicle Message Marshalling Library
-
-The mavlink_to_html_table.xsl file is used to transform the MAVLink XML into a human-readable HTML table for online documentation.
-
-For more information, please visit:
-
-http://pixhawk.ethz.ch/software/mavlink
-
-(c) 2009-2010 Lorenz Meier / PIXHAWK Team
diff --git a/libraries/GCS_MAVLink/doc/mavlink.css b/libraries/GCS_MAVLink/doc/mavlink.css
deleted file mode 100644
index aeee8368a6ff46e6a727c9a754d4563bb9a52854..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/doc/mavlink.css
+++ /dev/null
@@ -1,54 +0,0 @@
-table.sortable {
-    spacing: 5px;
-    border: 1px solid #656575;
-    width: 100%;
-}
-
-table.sortable th {
-    margin: 5px;
-}
-
-tr:nth-child(odd)   { background-color:#eee; }
-tr:nth-child(even)  { background-color:#fff; }
-
-table.sortable thead {
-    background-color:#eee;
-    color:#666666;
-    font-weight: bold;
-    cursor: default;
-}
-
-table.sortable td {
-    margin: 5px 5px 20px 5px;
-    vertical-align: top;
-}
-
-table.sortable td.mavlink_name {
-    color:#226633;
-    font-weight: bold;
-    width: 25%;
-    vertical-align: top;
-}
-
-table.sortable td.mavlink_mission_param {
-    color:#334455;
-    font-weight: bold;
-    width: 25%;
-}
-
-table.sortable td.mavlink_type {
-    color:#323232;
-    font-weight: normal;
-    width: 12%;
-}
-
-table.sortable td.mavlink_comment {
-    color:#555555;
-    font-weight: normal;
-    width: 60%;
-}
-
-p.description {
-    color:#808080;
-    font-weight: normal;
-}
\ No newline at end of file
diff --git a/libraries/GCS_MAVLink/doc/mavlink.php b/libraries/GCS_MAVLink/doc/mavlink.php
deleted file mode 100644
index 871a1306d5710353db67a9c4d1bedec55fec62e4..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/doc/mavlink.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php>
-
-// Requires the installation of php5-xsl
-// e.g. on Debian/Ubuntu: sudo apt-get install php5-xsl
-
-// Load the file from the repository / server.
-// Update this URL if the file location changes
-
-$xml_file_name = "http://github.com/pixhawk/mavlink/raw/master/mavlink_standard_message.xml";
-
-// Load the XSL transformation file from the repository / server.
-// This file can be updated by any client to adjust the table
-
-$xsl_file_name= "http://github.com/pixhawk/mavlink/raw/master/doc/mavlink_to_html_table.xsl";
-
-
-
-// Load data XML file
-$xml = file_get_contents($xml_file_name);
-$xml_doc = new DomDocument;
-$xml_doc->loadXML($xml);
-
-// Load stylesheet XSL file
-$xsl = file_get_contents($xsl_file_name);
-$xsl_doc = new DomDocument;
-$xsl_doc->loadXML($xsl);
-
-$xsltproc = new XsltProcessor();
-$xsltproc->importStylesheet($xsl_doc);
-
-// process the files and write the output to $out_file
-if ($html = $xsltproc->transformToXML($xml_doc))
-{
-  echo $html;
-}
-else
-{
-  trigger_error('XSL transformation failed.',E_USER_ERROR);
-}
-
-</php>
-
-
-<h2> Messages XML Definition </h2>
-
-Messages are defined by the <a href="http://github.com/pixhawk/mavlink/blob/master/mavlink_standard_message.xml">mavlink_standard_message.xml</a> file. The C packing/unpacking code is generated from this specification, as well as the HTML documentaiton in the section above.<br />
-<br />
-<i>The XML displayed here is updated on every commit and therefore up-to-date.</i>
-
-<?php>
-//require_once("inc/geshi.php");
-//$xml_file_name = "http://github.com/pixhawk/mavlink/raw/master/mavlink_standard_message.xml";
-//
-//// Load data XML file
-//$xml = file_get_contents($xml_file_name);
-//
-//// Show the current code
-//$geshi_xml = new GeSHi($xml, 'xml');
-//$display_xml = $geshi_xml->parse_code();
-//
-//echo $display_xml;
-
-</php>
\ No newline at end of file
diff --git a/libraries/GCS_MAVLink/doc/mavlink_to_html_table.xsl b/libraries/GCS_MAVLink/doc/mavlink_to_html_table.xsl
deleted file mode 100644
index 1b1d9461ae42cdaa581998fe226e3eaeba09d16f..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/doc/mavlink_to_html_table.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:template match="//include">
-   <h1>MAVLink Include Files</h1>
-   <p><strong><em>Including files: </em><xsl:value-of select="." /></strong></p>
-</xsl:template>
-
-<xsl:template match="//enums">
-   <h1>MAVLink Type Enumerations</h1>
-   <xsl:apply-templates />
-</xsl:template>
-
-<xsl:template match="//messages">
-   <h1>MAVLink Messages</h1>
-   <xsl:apply-templates />
-</xsl:template>
-
-<xsl:template match="//message">
-   <h3 class="mavlink_message_name"><xsl:value-of select="@name" /> (#<xsl:value-of select="@id" />)</h3>
-   <p class="description"><xsl:value-of select="description" /></p>
-
-   <table class="sortable">
-   <thead>
-   <tr>
-     <th class="mavlink_field_header">Field Name</th>
-     <th class="mavlink_field_header">Type</th>
-     <th class="mavlink_field_header">Description</th>
-   </tr>
-   </thead>
-   <tbody>
-   <xsl:apply-templates select="field" />
-  </tbody>
-  </table>
-</xsl:template>
-
-<xsl:template match="//field">
-   <tr class="mavlink_field">
-   <td class="mavlink_name" valign="top"><xsl:value-of select="@name" /></td>
-   <td class="mavlink_type" valign="top"><xsl:value-of select="@type" /></td>
-   <td class="mavlink_comment"><xsl:value-of select="." /></td>
-   </tr>
-</xsl:template>
-
-<xsl:template match="//version">
-   <h1>MAVLink Protocol Version</h1>
-   <p>This file has protocol version: <xsl:value-of select="." />. The version numbers range from 1-255.</p>
-</xsl:template>
-
-<xsl:template match="//enum">
-   <h3 class="mavlink_message_name"><xsl:value-of select="@name" /></h3>
-   <p class="description"><xsl:value-of select="description" /></p>
-
-   <table class="sortable">
-   <thead>
-   <tr>
-     <th class="mavlink_field_header">CMD ID</th>
-     <th class="mavlink_field_header">Field Name</th>
-     <th class="mavlink_field_header">Description</th>
-   </tr>
-   </thead>
-   <tbody>
-   <xsl:apply-templates select="entry" />
-  </tbody>
-  </table>
-</xsl:template>
-
-<xsl:template match="//entry">
-   <tr class="mavlink_field">
-   <td class="mavlink_type" valign="top"><xsl:value-of select="@value" /></td>
-   <td class="mavlink_name" valign="top"><xsl:value-of select="@name" /></td>
-   <td class="mavlink_comment"><xsl:value-of select="description" /></td>
-   </tr>
-   <tr>
-     <td></td>
-   	 <xsl:apply-templates select="param" />
-   </tr>
-   <tr>
-    <td colspan="3"><br /></td>
-   </tr>
-</xsl:template>
-
-<xsl:template match="//param">
-   <tr>
-   <td></td>
-   <td class="mavlink_mission_param" valign="top">Mission Param #<xsl:value-of select="@index" /></td>
-   <td class="mavlink_comment"><xsl:value-of select="." /></td>
-   </tr>
-</xsl:template>
-
-
-</xsl:stylesheet>
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_dcm.h b/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_dcm.h
deleted file mode 100644
index 60b89c1afd280e1e8863efa4bd4f1e65e1c6f058..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_dcm.h
+++ /dev/null
@@ -1,276 +0,0 @@
-// MESSAGE DCM PACKING
-
-#define MAVLINK_MSG_ID_DCM 163
-
-typedef struct __mavlink_dcm_t
-{
- float omegaIx; ///< X gyro drift estimate rad/s
- float omegaIy; ///< Y gyro drift estimate rad/s
- float omegaIz; ///< Z gyro drift estimate rad/s
- float accel_weight; ///< average accel_weight
- float renorm_val; ///< average renormalisation value
- float error_rp; ///< average error_roll_pitch value
- float error_yaw; ///< average error_yaw value
-} mavlink_dcm_t;
-
-#define MAVLINK_MSG_ID_DCM_LEN 28
-#define MAVLINK_MSG_ID_163_LEN 28
-
-
-
-#define MAVLINK_MESSAGE_INFO_DCM { \
-	"DCM", \
-	7, \
-	{  { "omegaIx", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_dcm_t, omegaIx) }, \
-         { "omegaIy", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_dcm_t, omegaIy) }, \
-         { "omegaIz", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_dcm_t, omegaIz) }, \
-         { "accel_weight", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_dcm_t, accel_weight) }, \
-         { "renorm_val", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_dcm_t, renorm_val) }, \
-         { "error_rp", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_dcm_t, error_rp) }, \
-         { "error_yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_dcm_t, error_yaw) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a dcm 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 omegaIx X gyro drift estimate rad/s
- * @param omegaIy Y gyro drift estimate rad/s
- * @param omegaIz Z gyro drift estimate rad/s
- * @param accel_weight average accel_weight
- * @param renorm_val average renormalisation value
- * @param error_rp average error_roll_pitch value
- * @param error_yaw average error_yaw value
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_dcm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       float omegaIx, float omegaIy, float omegaIz, float accel_weight, float renorm_val, float error_rp, float error_yaw)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[28];
-	_mav_put_float(buf, 0, omegaIx);
-	_mav_put_float(buf, 4, omegaIy);
-	_mav_put_float(buf, 8, omegaIz);
-	_mav_put_float(buf, 12, accel_weight);
-	_mav_put_float(buf, 16, renorm_val);
-	_mav_put_float(buf, 20, error_rp);
-	_mav_put_float(buf, 24, error_yaw);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
-#else
-	mavlink_dcm_t packet;
-	packet.omegaIx = omegaIx;
-	packet.omegaIy = omegaIy;
-	packet.omegaIz = omegaIz;
-	packet.accel_weight = accel_weight;
-	packet.renorm_val = renorm_val;
-	packet.error_rp = error_rp;
-	packet.error_yaw = error_yaw;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_DCM;
-	return mavlink_finalize_message(msg, system_id, component_id, 28);
-}
-
-/**
- * @brief Pack a dcm 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
- * @param omegaIx X gyro drift estimate rad/s
- * @param omegaIy Y gyro drift estimate rad/s
- * @param omegaIz Z gyro drift estimate rad/s
- * @param accel_weight average accel_weight
- * @param renorm_val average renormalisation value
- * @param error_rp average error_roll_pitch value
- * @param error_yaw average error_yaw value
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_dcm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           float omegaIx,float omegaIy,float omegaIz,float accel_weight,float renorm_val,float error_rp,float error_yaw)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[28];
-	_mav_put_float(buf, 0, omegaIx);
-	_mav_put_float(buf, 4, omegaIy);
-	_mav_put_float(buf, 8, omegaIz);
-	_mav_put_float(buf, 12, accel_weight);
-	_mav_put_float(buf, 16, renorm_val);
-	_mav_put_float(buf, 20, error_rp);
-	_mav_put_float(buf, 24, error_yaw);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
-#else
-	mavlink_dcm_t packet;
-	packet.omegaIx = omegaIx;
-	packet.omegaIy = omegaIy;
-	packet.omegaIz = omegaIz;
-	packet.accel_weight = accel_weight;
-	packet.renorm_val = renorm_val;
-	packet.error_rp = error_rp;
-	packet.error_yaw = error_yaw;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_DCM;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 28);
-}
-
-/**
- * @brief Encode a dcm 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 dcm C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_dcm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_dcm_t* dcm)
-{
-	return mavlink_msg_dcm_pack(system_id, component_id, msg, dcm->omegaIx, dcm->omegaIy, dcm->omegaIz, dcm->accel_weight, dcm->renorm_val, dcm->error_rp, dcm->error_yaw);
-}
-
-/**
- * @brief Send a dcm message
- * @param chan MAVLink channel to send the message
- *
- * @param omegaIx X gyro drift estimate rad/s
- * @param omegaIy Y gyro drift estimate rad/s
- * @param omegaIz Z gyro drift estimate rad/s
- * @param accel_weight average accel_weight
- * @param renorm_val average renormalisation value
- * @param error_rp average error_roll_pitch value
- * @param error_yaw average error_yaw value
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_dcm_send(mavlink_channel_t chan, float omegaIx, float omegaIy, float omegaIz, float accel_weight, float renorm_val, float error_rp, float error_yaw)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[28];
-	_mav_put_float(buf, 0, omegaIx);
-	_mav_put_float(buf, 4, omegaIy);
-	_mav_put_float(buf, 8, omegaIz);
-	_mav_put_float(buf, 12, accel_weight);
-	_mav_put_float(buf, 16, renorm_val);
-	_mav_put_float(buf, 20, error_rp);
-	_mav_put_float(buf, 24, error_yaw);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DCM, buf, 28);
-#else
-	mavlink_dcm_t packet;
-	packet.omegaIx = omegaIx;
-	packet.omegaIy = omegaIy;
-	packet.omegaIz = omegaIz;
-	packet.accel_weight = accel_weight;
-	packet.renorm_val = renorm_val;
-	packet.error_rp = error_rp;
-	packet.error_yaw = error_yaw;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DCM, (const char *)&packet, 28);
-#endif
-}
-
-#endif
-
-// MESSAGE DCM UNPACKING
-
-
-/**
- * @brief Get field omegaIx from dcm message
- *
- * @return X gyro drift estimate rad/s
- */
-static inline float mavlink_msg_dcm_get_omegaIx(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  0);
-}
-
-/**
- * @brief Get field omegaIy from dcm message
- *
- * @return Y gyro drift estimate rad/s
- */
-static inline float mavlink_msg_dcm_get_omegaIy(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  4);
-}
-
-/**
- * @brief Get field omegaIz from dcm message
- *
- * @return Z gyro drift estimate rad/s
- */
-static inline float mavlink_msg_dcm_get_omegaIz(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  8);
-}
-
-/**
- * @brief Get field accel_weight from dcm message
- *
- * @return average accel_weight
- */
-static inline float mavlink_msg_dcm_get_accel_weight(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  12);
-}
-
-/**
- * @brief Get field renorm_val from dcm message
- *
- * @return average renormalisation value
- */
-static inline float mavlink_msg_dcm_get_renorm_val(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  16);
-}
-
-/**
- * @brief Get field error_rp from dcm message
- *
- * @return average error_roll_pitch value
- */
-static inline float mavlink_msg_dcm_get_error_rp(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  20);
-}
-
-/**
- * @brief Get field error_yaw from dcm message
- *
- * @return average error_yaw value
- */
-static inline float mavlink_msg_dcm_get_error_yaw(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  24);
-}
-
-/**
- * @brief Decode a dcm message into a struct
- *
- * @param msg The message to decode
- * @param dcm C-struct to decode the message contents into
- */
-static inline void mavlink_msg_dcm_decode(const mavlink_message_t* msg, mavlink_dcm_t* dcm)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	dcm->omegaIx = mavlink_msg_dcm_get_omegaIx(msg);
-	dcm->omegaIy = mavlink_msg_dcm_get_omegaIy(msg);
-	dcm->omegaIz = mavlink_msg_dcm_get_omegaIz(msg);
-	dcm->accel_weight = mavlink_msg_dcm_get_accel_weight(msg);
-	dcm->renorm_val = mavlink_msg_dcm_get_renorm_val(msg);
-	dcm->error_rp = mavlink_msg_dcm_get_error_rp(msg);
-	dcm->error_yaw = mavlink_msg_dcm_get_error_yaw(msg);
-#else
-	memcpy(dcm, _MAV_PAYLOAD(msg), 28);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_fenced_fetch_point.h b/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_fenced_fetch_point.h
deleted file mode 100644
index 7ae650c71b39945bb80161d2c7e315b7b1a06944..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_fenced_fetch_point.h
+++ /dev/null
@@ -1,144 +0,0 @@
-// MESSAGE FENCED_FETCH_POINT PACKING
-
-#define MAVLINK_MSG_ID_FENCED_FETCH_POINT 161
-
-typedef struct __mavlink_fenced_fetch_point_t
-{
- uint8_t idx; ///< point index (first point is 1, 0 is for return point)
-} mavlink_fenced_fetch_point_t;
-
-#define MAVLINK_MSG_ID_FENCED_FETCH_POINT_LEN 1
-#define MAVLINK_MSG_ID_161_LEN 1
-
-
-
-#define MAVLINK_MESSAGE_INFO_FENCED_FETCH_POINT { \
-	"FENCED_FETCH_POINT", \
-	1, \
-	{  { "idx", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_fenced_fetch_point_t, idx) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a fenced_fetch_point 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 idx point index (first point is 1, 0 is for return point)
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_fenced_fetch_point_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t idx)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[1];
-	_mav_put_uint8_t(buf, 0, idx);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 1);
-#else
-	mavlink_fenced_fetch_point_t packet;
-	packet.idx = idx;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 1);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_FENCED_FETCH_POINT;
-	return mavlink_finalize_message(msg, system_id, component_id, 1);
-}
-
-/**
- * @brief Pack a fenced_fetch_point 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
- * @param idx point index (first point is 1, 0 is for return point)
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_fenced_fetch_point_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t idx)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[1];
-	_mav_put_uint8_t(buf, 0, idx);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 1);
-#else
-	mavlink_fenced_fetch_point_t packet;
-	packet.idx = idx;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 1);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_FENCED_FETCH_POINT;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 1);
-}
-
-/**
- * @brief Encode a fenced_fetch_point 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 fenced_fetch_point C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_fenced_fetch_point_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_fenced_fetch_point_t* fenced_fetch_point)
-{
-	return mavlink_msg_fenced_fetch_point_pack(system_id, component_id, msg, fenced_fetch_point->idx);
-}
-
-/**
- * @brief Send a fenced_fetch_point message
- * @param chan MAVLink channel to send the message
- *
- * @param idx point index (first point is 1, 0 is for return point)
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_fenced_fetch_point_send(mavlink_channel_t chan, uint8_t idx)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[1];
-	_mav_put_uint8_t(buf, 0, idx);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FENCED_FETCH_POINT, buf, 1);
-#else
-	mavlink_fenced_fetch_point_t packet;
-	packet.idx = idx;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FENCED_FETCH_POINT, (const char *)&packet, 1);
-#endif
-}
-
-#endif
-
-// MESSAGE FENCED_FETCH_POINT UNPACKING
-
-
-/**
- * @brief Get field idx from fenced_fetch_point message
- *
- * @return point index (first point is 1, 0 is for return point)
- */
-static inline uint8_t mavlink_msg_fenced_fetch_point_get_idx(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  0);
-}
-
-/**
- * @brief Decode a fenced_fetch_point message into a struct
- *
- * @param msg The message to decode
- * @param fenced_fetch_point C-struct to decode the message contents into
- */
-static inline void mavlink_msg_fenced_fetch_point_decode(const mavlink_message_t* msg, mavlink_fenced_fetch_point_t* fenced_fetch_point)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	fenced_fetch_point->idx = mavlink_msg_fenced_fetch_point_get_idx(msg);
-#else
-	memcpy(fenced_fetch_point, _MAV_PAYLOAD(msg), 1);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_fenced_point.h b/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_fenced_point.h
deleted file mode 100644
index 9b849b776334a6394fae58673831a978ea0c1793..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_fenced_point.h
+++ /dev/null
@@ -1,210 +0,0 @@
-// MESSAGE FENCED_POINT PACKING
-
-#define MAVLINK_MSG_ID_FENCED_POINT 160
-
-typedef struct __mavlink_fenced_point_t
-{
- uint8_t idx; ///< point index (first point is 1, 0 is for return point)
- uint8_t count; ///< total number of points (for sanity checking)
- float lat; ///< Latitude of point
- float lng; ///< Longitude of point
-} mavlink_fenced_point_t;
-
-#define MAVLINK_MSG_ID_FENCED_POINT_LEN 10
-#define MAVLINK_MSG_ID_160_LEN 10
-
-
-
-#define MAVLINK_MESSAGE_INFO_FENCED_POINT { \
-	"FENCED_POINT", \
-	4, \
-	{  { "idx", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_fenced_point_t, idx) }, \
-         { "count", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_fenced_point_t, count) }, \
-         { "lat", NULL, MAVLINK_TYPE_FLOAT, 0, 2, offsetof(mavlink_fenced_point_t, lat) }, \
-         { "lng", NULL, MAVLINK_TYPE_FLOAT, 0, 6, offsetof(mavlink_fenced_point_t, lng) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a fenced_point 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 idx point index (first point is 1, 0 is for return point)
- * @param count total number of points (for sanity checking)
- * @param lat Latitude of point
- * @param lng Longitude of point
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_fenced_point_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t idx, uint8_t count, float lat, float lng)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[10];
-	_mav_put_uint8_t(buf, 0, idx);
-	_mav_put_uint8_t(buf, 1, count);
-	_mav_put_float(buf, 2, lat);
-	_mav_put_float(buf, 6, lng);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 10);
-#else
-	mavlink_fenced_point_t packet;
-	packet.idx = idx;
-	packet.count = count;
-	packet.lat = lat;
-	packet.lng = lng;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 10);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_FENCED_POINT;
-	return mavlink_finalize_message(msg, system_id, component_id, 10);
-}
-
-/**
- * @brief Pack a fenced_point 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
- * @param idx point index (first point is 1, 0 is for return point)
- * @param count total number of points (for sanity checking)
- * @param lat Latitude of point
- * @param lng Longitude of point
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_fenced_point_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t idx,uint8_t count,float lat,float lng)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[10];
-	_mav_put_uint8_t(buf, 0, idx);
-	_mav_put_uint8_t(buf, 1, count);
-	_mav_put_float(buf, 2, lat);
-	_mav_put_float(buf, 6, lng);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 10);
-#else
-	mavlink_fenced_point_t packet;
-	packet.idx = idx;
-	packet.count = count;
-	packet.lat = lat;
-	packet.lng = lng;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 10);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_FENCED_POINT;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 10);
-}
-
-/**
- * @brief Encode a fenced_point 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 fenced_point C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_fenced_point_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_fenced_point_t* fenced_point)
-{
-	return mavlink_msg_fenced_point_pack(system_id, component_id, msg, fenced_point->idx, fenced_point->count, fenced_point->lat, fenced_point->lng);
-}
-
-/**
- * @brief Send a fenced_point message
- * @param chan MAVLink channel to send the message
- *
- * @param idx point index (first point is 1, 0 is for return point)
- * @param count total number of points (for sanity checking)
- * @param lat Latitude of point
- * @param lng Longitude of point
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_fenced_point_send(mavlink_channel_t chan, uint8_t idx, uint8_t count, float lat, float lng)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[10];
-	_mav_put_uint8_t(buf, 0, idx);
-	_mav_put_uint8_t(buf, 1, count);
-	_mav_put_float(buf, 2, lat);
-	_mav_put_float(buf, 6, lng);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FENCED_POINT, buf, 10);
-#else
-	mavlink_fenced_point_t packet;
-	packet.idx = idx;
-	packet.count = count;
-	packet.lat = lat;
-	packet.lng = lng;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FENCED_POINT, (const char *)&packet, 10);
-#endif
-}
-
-#endif
-
-// MESSAGE FENCED_POINT UNPACKING
-
-
-/**
- * @brief Get field idx from fenced_point message
- *
- * @return point index (first point is 1, 0 is for return point)
- */
-static inline uint8_t mavlink_msg_fenced_point_get_idx(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  0);
-}
-
-/**
- * @brief Get field count from fenced_point message
- *
- * @return total number of points (for sanity checking)
- */
-static inline uint8_t mavlink_msg_fenced_point_get_count(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  1);
-}
-
-/**
- * @brief Get field lat from fenced_point message
- *
- * @return Latitude of point
- */
-static inline float mavlink_msg_fenced_point_get_lat(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  2);
-}
-
-/**
- * @brief Get field lng from fenced_point message
- *
- * @return Longitude of point
- */
-static inline float mavlink_msg_fenced_point_get_lng(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  6);
-}
-
-/**
- * @brief Decode a fenced_point message into a struct
- *
- * @param msg The message to decode
- * @param fenced_point C-struct to decode the message contents into
- */
-static inline void mavlink_msg_fenced_point_decode(const mavlink_message_t* msg, mavlink_fenced_point_t* fenced_point)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	fenced_point->idx = mavlink_msg_fenced_point_get_idx(msg);
-	fenced_point->count = mavlink_msg_fenced_point_get_count(msg);
-	fenced_point->lat = mavlink_msg_fenced_point_get_lat(msg);
-	fenced_point->lng = mavlink_msg_fenced_point_get_lng(msg);
-#else
-	memcpy(fenced_point, _MAV_PAYLOAD(msg), 10);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include/common/common.h b/libraries/GCS_MAVLink/include/common/common.h
deleted file mode 100644
index d61e06153d6e42dbbd7e379c9397bffb8eb380e4..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include/common/common.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/** @file
- *	@brief MAVLink comm protocol generated from common.xml
- *	@see http://qgroundcontrol.org/mavlink/
- */
-#ifndef COMMON_H
-#define COMMON_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// MESSAGE LENGTHS AND CRCS
-
-#ifndef MAVLINK_MESSAGE_LENGTHS
-#define MAVLINK_MESSAGE_LENGTHS {3, 4, 8, 14, 8, 28, 3, 32, 0, 2, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 19, 2, 23, 21, 0, 37, 26, 101, 26, 16, 32, 32, 37, 32, 11, 17, 17, 16, 18, 36, 4, 4, 2, 2, 4, 2, 2, 3, 14, 12, 18, 16, 8, 27, 25, 18, 18, 24, 24, 0, 0, 0, 26, 16, 36, 5, 6, 56, 26, 21, 18, 0, 0, 18, 20, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 14, 14, 51, 5}
-#endif
-
-#ifndef MAVLINK_MESSAGE_CRCS
-#define MAVLINK_MESSAGE_CRCS {72, 39, 190, 92, 191, 217, 104, 119, 0, 219, 60, 186, 10, 0, 0, 0, 0, 0, 0, 0, 89, 159, 162, 121, 0, 149, 222, 110, 179, 136, 66, 126, 185, 147, 112, 252, 162, 215, 229, 128, 9, 106, 101, 213, 4, 229, 21, 214, 215, 14, 206, 50, 157, 126, 108, 213, 95, 5, 127, 0, 0, 0, 57, 126, 130, 119, 193, 191, 236, 158, 143, 0, 0, 104, 123, 131, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 224, 60, 106, 7}
-#endif
-
-#ifndef MAVLINK_MESSAGE_INFO
-#define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_BOOT, MAVLINK_MESSAGE_INFO_SYSTEM_TIME, MAVLINK_MESSAGE_INFO_PING, MAVLINK_MESSAGE_INFO_SYSTEM_TIME_UTC, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL_ACK, MAVLINK_MESSAGE_INFO_AUTH_KEY, {NULL}, MAVLINK_MESSAGE_INFO_ACTION_ACK, MAVLINK_MESSAGE_INFO_ACTION, MAVLINK_MESSAGE_INFO_SET_MODE, MAVLINK_MESSAGE_INFO_SET_NAV_MODE, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_READ, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_LIST, MAVLINK_MESSAGE_INFO_PARAM_VALUE, MAVLINK_MESSAGE_INFO_PARAM_SET, {NULL}, MAVLINK_MESSAGE_INFO_GPS_RAW_INT, MAVLINK_MESSAGE_INFO_SCALED_IMU, MAVLINK_MESSAGE_INFO_GPS_STATUS, MAVLINK_MESSAGE_INFO_RAW_IMU, MAVLINK_MESSAGE_INFO_RAW_PRESSURE, MAVLINK_MESSAGE_INFO_ATTITUDE, MAVLINK_MESSAGE_INFO_LOCAL_POSITION, MAVLINK_MESSAGE_INFO_GPS_RAW, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION, MAVLINK_MESSAGE_INFO_SYS_STATUS, MAVLINK_MESSAGE_INFO_RC_CHANNELS_RAW, MAVLINK_MESSAGE_INFO_RC_CHANNELS_SCALED, MAVLINK_MESSAGE_INFO_SERVO_OUTPUT_RAW, MAVLINK_MESSAGE_INFO_SCALED_PRESSURE, MAVLINK_MESSAGE_INFO_WAYPOINT, MAVLINK_MESSAGE_INFO_WAYPOINT_REQUEST, MAVLINK_MESSAGE_INFO_WAYPOINT_SET_CURRENT, MAVLINK_MESSAGE_INFO_WAYPOINT_CURRENT, MAVLINK_MESSAGE_INFO_WAYPOINT_REQUEST_LIST, MAVLINK_MESSAGE_INFO_WAYPOINT_COUNT, MAVLINK_MESSAGE_INFO_WAYPOINT_CLEAR_ALL, MAVLINK_MESSAGE_INFO_WAYPOINT_REACHED, MAVLINK_MESSAGE_INFO_WAYPOINT_ACK, MAVLINK_MESSAGE_INFO_GPS_SET_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_GPS_LOCAL_ORIGIN_SET, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_SETPOINT_SET, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_SETPOINT, MAVLINK_MESSAGE_INFO_CONTROL_STATUS, MAVLINK_MESSAGE_INFO_SAFETY_SET_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SAFETY_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_THRUST, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_SPEED_THRUST, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_THRUST_SETPOINT, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_NAV_CONTROLLER_OUTPUT, MAVLINK_MESSAGE_INFO_POSITION_TARGET, MAVLINK_MESSAGE_INFO_STATE_CORRECTION, MAVLINK_MESSAGE_INFO_SET_ALTITUDE, MAVLINK_MESSAGE_INFO_REQUEST_DATA_STREAM, MAVLINK_MESSAGE_INFO_HIL_STATE, MAVLINK_MESSAGE_INFO_HIL_CONTROLS, MAVLINK_MESSAGE_INFO_MANUAL_CONTROL, MAVLINK_MESSAGE_INFO_RC_CHANNELS_OVERRIDE, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_INT, MAVLINK_MESSAGE_INFO_VFR_HUD, MAVLINK_MESSAGE_INFO_COMMAND, MAVLINK_MESSAGE_INFO_COMMAND_ACK, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_OPTICAL_FLOW, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_OBJECT_DETECTION_EVENT, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_DEBUG_VECT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_FLOAT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_INT, MAVLINK_MESSAGE_INFO_STATUSTEXT, MAVLINK_MESSAGE_INFO_DEBUG}
-#endif
-
-#include "../protocol.h"
-
-#define MAVLINK_ENABLED_COMMON
-
-
-
-// MAVLINK VERSION
-
-#ifndef MAVLINK_VERSION
-#define MAVLINK_VERSION 2
-#endif
-
-#if (MAVLINK_VERSION == 0)
-#undef MAVLINK_VERSION
-#define MAVLINK_VERSION 2
-#endif
-
-// ENUM DEFINITIONS
-
-
-/** @brief Data stream IDs. A data stream is not a fixed set of messages, but rather a
-     recommendation to the autopilot software. Individual autopilots may or may not obey
-     the recommended messages.
-      */
-#ifndef HAVE_ENUM_MAV_DATA_STREAM
-#define HAVE_ENUM_MAV_DATA_STREAM
-enum MAV_DATA_STREAM
-{
-	MAV_DATA_STREAM_ALL=0, /* Enable all data streams | */
-	MAV_DATA_STREAM_RAW_SENSORS=1, /* Enable IMU_RAW, GPS_RAW, GPS_STATUS packets. | */
-	MAV_DATA_STREAM_EXTENDED_STATUS=2, /* Enable GPS_STATUS, CONTROL_STATUS, AUX_STATUS | */
-	MAV_DATA_STREAM_RC_CHANNELS=3, /* Enable RC_CHANNELS_SCALED, RC_CHANNELS_RAW, SERVO_OUTPUT_RAW | */
-	MAV_DATA_STREAM_RAW_CONTROLLER=4, /* Enable ATTITUDE_CONTROLLER_OUTPUT, POSITION_CONTROLLER_OUTPUT, NAV_CONTROLLER_OUTPUT. | */
-	MAV_DATA_STREAM_POSITION=6, /* Enable LOCAL_POSITION, GLOBAL_POSITION/GLOBAL_POSITION_INT messages. | */
-	MAV_DATA_STREAM_EXTRA1=10, /* Dependent on the autopilot | */
-	MAV_DATA_STREAM_EXTRA2=11, /* Dependent on the autopilot | */
-	MAV_DATA_STREAM_EXTRA3=12, /* Dependent on the autopilot | */
-	MAV_DATA_STREAM_ENUM_END=13, /*  | */
-};
-#endif
-
-/** @brief  The ROI (region of interest) for the vehicle. This can be
-                be used by the vehicle for camera/vehicle attitude alignment (see
-                MAV_CMD_NAV_ROI).
-             */
-#ifndef HAVE_ENUM_MAV_ROI
-#define HAVE_ENUM_MAV_ROI
-enum MAV_ROI
-{
-	MAV_ROI_NONE=0, /* No region of interest. | */
-	MAV_ROI_WPNEXT=1, /* Point toward next waypoint. | */
-	MAV_ROI_WPINDEX=2, /* Point toward given waypoint. | */
-	MAV_ROI_LOCATION=3, /* Point toward fixed location. | */
-	MAV_ROI_TARGET=4, /* Point toward of given id. | */
-	MAV_ROI_ENUM_END=5, /*  | */
-};
-#endif
-
-// MESSAGE DEFINITIONS
-#include "./mavlink_msg_heartbeat.h"
-#include "./mavlink_msg_boot.h"
-#include "./mavlink_msg_system_time.h"
-#include "./mavlink_msg_ping.h"
-#include "./mavlink_msg_system_time_utc.h"
-#include "./mavlink_msg_change_operator_control.h"
-#include "./mavlink_msg_change_operator_control_ack.h"
-#include "./mavlink_msg_auth_key.h"
-#include "./mavlink_msg_action_ack.h"
-#include "./mavlink_msg_action.h"
-#include "./mavlink_msg_set_mode.h"
-#include "./mavlink_msg_set_nav_mode.h"
-#include "./mavlink_msg_param_request_read.h"
-#include "./mavlink_msg_param_request_list.h"
-#include "./mavlink_msg_param_value.h"
-#include "./mavlink_msg_param_set.h"
-#include "./mavlink_msg_gps_raw_int.h"
-#include "./mavlink_msg_scaled_imu.h"
-#include "./mavlink_msg_gps_status.h"
-#include "./mavlink_msg_raw_imu.h"
-#include "./mavlink_msg_raw_pressure.h"
-#include "./mavlink_msg_scaled_pressure.h"
-#include "./mavlink_msg_attitude.h"
-#include "./mavlink_msg_local_position.h"
-#include "./mavlink_msg_global_position.h"
-#include "./mavlink_msg_gps_raw.h"
-#include "./mavlink_msg_sys_status.h"
-#include "./mavlink_msg_rc_channels_raw.h"
-#include "./mavlink_msg_rc_channels_scaled.h"
-#include "./mavlink_msg_servo_output_raw.h"
-#include "./mavlink_msg_waypoint.h"
-#include "./mavlink_msg_waypoint_request.h"
-#include "./mavlink_msg_waypoint_set_current.h"
-#include "./mavlink_msg_waypoint_current.h"
-#include "./mavlink_msg_waypoint_request_list.h"
-#include "./mavlink_msg_waypoint_count.h"
-#include "./mavlink_msg_waypoint_clear_all.h"
-#include "./mavlink_msg_waypoint_reached.h"
-#include "./mavlink_msg_waypoint_ack.h"
-#include "./mavlink_msg_gps_set_global_origin.h"
-#include "./mavlink_msg_gps_local_origin_set.h"
-#include "./mavlink_msg_local_position_setpoint_set.h"
-#include "./mavlink_msg_local_position_setpoint.h"
-#include "./mavlink_msg_control_status.h"
-#include "./mavlink_msg_safety_set_allowed_area.h"
-#include "./mavlink_msg_safety_allowed_area.h"
-#include "./mavlink_msg_set_roll_pitch_yaw_thrust.h"
-#include "./mavlink_msg_set_roll_pitch_yaw_speed_thrust.h"
-#include "./mavlink_msg_roll_pitch_yaw_thrust_setpoint.h"
-#include "./mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h"
-#include "./mavlink_msg_nav_controller_output.h"
-#include "./mavlink_msg_position_target.h"
-#include "./mavlink_msg_state_correction.h"
-#include "./mavlink_msg_set_altitude.h"
-#include "./mavlink_msg_request_data_stream.h"
-#include "./mavlink_msg_hil_state.h"
-#include "./mavlink_msg_hil_controls.h"
-#include "./mavlink_msg_manual_control.h"
-#include "./mavlink_msg_rc_channels_override.h"
-#include "./mavlink_msg_global_position_int.h"
-#include "./mavlink_msg_vfr_hud.h"
-#include "./mavlink_msg_command.h"
-#include "./mavlink_msg_command_ack.h"
-#include "./mavlink_msg_optical_flow.h"
-#include "./mavlink_msg_object_detection_event.h"
-#include "./mavlink_msg_debug_vect.h"
-#include "./mavlink_msg_named_value_float.h"
-#include "./mavlink_msg_named_value_int.h"
-#include "./mavlink_msg_statustext.h"
-#include "./mavlink_msg_debug.h"
-
-#ifdef __cplusplus
-}
-#endif // __cplusplus
-#endif // COMMON_H
diff --git a/libraries/GCS_MAVLink/include/mavlink/config.h b/libraries/GCS_MAVLink/include/mavlink/config.h
new file mode 100644
index 0000000000000000000000000000000000000000..a1fb99f0f03e96e1c36a176374b3dabbb2c83875
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/config.h
@@ -0,0 +1 @@
+#define MAVLINK_VERSION "1.0.6"
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/ardupilotmega.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/ardupilotmega.h
similarity index 55%
rename from libraries/GCS_MAVLink/include/ardupilotmega/ardupilotmega.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/ardupilotmega.h
index 204c907555b2bcfc3469d6107346f483f4865c60..4148b5a6a954f29ebaf3cdb77b406bea41364c21 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/ardupilotmega.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/ardupilotmega.h
@@ -20,7 +20,7 @@ extern "C" {
 #endif
 
 #ifndef MAVLINK_MESSAGE_INFO
-#define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_BOOT, MAVLINK_MESSAGE_INFO_SYSTEM_TIME, MAVLINK_MESSAGE_INFO_PING, MAVLINK_MESSAGE_INFO_SYSTEM_TIME_UTC, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL_ACK, MAVLINK_MESSAGE_INFO_AUTH_KEY, {NULL}, MAVLINK_MESSAGE_INFO_ACTION_ACK, MAVLINK_MESSAGE_INFO_ACTION, MAVLINK_MESSAGE_INFO_SET_MODE, MAVLINK_MESSAGE_INFO_SET_NAV_MODE, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_READ, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_LIST, MAVLINK_MESSAGE_INFO_PARAM_VALUE, MAVLINK_MESSAGE_INFO_PARAM_SET, {NULL}, MAVLINK_MESSAGE_INFO_GPS_RAW_INT, MAVLINK_MESSAGE_INFO_SCALED_IMU, MAVLINK_MESSAGE_INFO_GPS_STATUS, MAVLINK_MESSAGE_INFO_RAW_IMU, MAVLINK_MESSAGE_INFO_RAW_PRESSURE, MAVLINK_MESSAGE_INFO_ATTITUDE, MAVLINK_MESSAGE_INFO_LOCAL_POSITION, MAVLINK_MESSAGE_INFO_GPS_RAW, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION, MAVLINK_MESSAGE_INFO_SYS_STATUS, MAVLINK_MESSAGE_INFO_RC_CHANNELS_RAW, MAVLINK_MESSAGE_INFO_RC_CHANNELS_SCALED, MAVLINK_MESSAGE_INFO_SERVO_OUTPUT_RAW, MAVLINK_MESSAGE_INFO_SCALED_PRESSURE, MAVLINK_MESSAGE_INFO_WAYPOINT, MAVLINK_MESSAGE_INFO_WAYPOINT_REQUEST, MAVLINK_MESSAGE_INFO_WAYPOINT_SET_CURRENT, MAVLINK_MESSAGE_INFO_WAYPOINT_CURRENT, MAVLINK_MESSAGE_INFO_WAYPOINT_REQUEST_LIST, MAVLINK_MESSAGE_INFO_WAYPOINT_COUNT, MAVLINK_MESSAGE_INFO_WAYPOINT_CLEAR_ALL, MAVLINK_MESSAGE_INFO_WAYPOINT_REACHED, MAVLINK_MESSAGE_INFO_WAYPOINT_ACK, MAVLINK_MESSAGE_INFO_GPS_SET_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_GPS_LOCAL_ORIGIN_SET, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_SETPOINT_SET, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_SETPOINT, MAVLINK_MESSAGE_INFO_CONTROL_STATUS, MAVLINK_MESSAGE_INFO_SAFETY_SET_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SAFETY_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_THRUST, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_SPEED_THRUST, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_THRUST_SETPOINT, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_NAV_CONTROLLER_OUTPUT, MAVLINK_MESSAGE_INFO_POSITION_TARGET, MAVLINK_MESSAGE_INFO_STATE_CORRECTION, MAVLINK_MESSAGE_INFO_SET_ALTITUDE, MAVLINK_MESSAGE_INFO_REQUEST_DATA_STREAM, MAVLINK_MESSAGE_INFO_HIL_STATE, MAVLINK_MESSAGE_INFO_HIL_CONTROLS, MAVLINK_MESSAGE_INFO_MANUAL_CONTROL, MAVLINK_MESSAGE_INFO_RC_CHANNELS_OVERRIDE, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_INT, MAVLINK_MESSAGE_INFO_VFR_HUD, MAVLINK_MESSAGE_INFO_COMMAND, MAVLINK_MESSAGE_INFO_COMMAND_ACK, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_OPTICAL_FLOW, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_OBJECT_DETECTION_EVENT, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_SENSOR_OFFSETS, MAVLINK_MESSAGE_INFO_SET_MAG_OFFSETS, MAVLINK_MESSAGE_INFO_MEMINFO, MAVLINK_MESSAGE_INFO_AP_ADC, MAVLINK_MESSAGE_INFO_DIGICAM_CONFIGURE, MAVLINK_MESSAGE_INFO_DIGICAM_CONTROL, MAVLINK_MESSAGE_INFO_MOUNT_CONFIGURE, MAVLINK_MESSAGE_INFO_MOUNT_CONTROL, MAVLINK_MESSAGE_INFO_MOUNT_STATUS, {NULL}, MAVLINK_MESSAGE_INFO_FENCE_POINT, MAVLINK_MESSAGE_INFO_FENCE_FETCH_POINT, MAVLINK_MESSAGE_INFO_FENCE_STATUS, MAVLINK_MESSAGE_INFO_AHRS, MAVLINK_MESSAGE_INFO_SIMSTATE, MAVLINK_MESSAGE_INFO_HWSTATUS, MAVLINK_MESSAGE_INFO_RADIO, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_DEBUG_VECT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_FLOAT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_INT, MAVLINK_MESSAGE_INFO_STATUSTEXT, MAVLINK_MESSAGE_INFO_DEBUG}
+#define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_BOOT, MAVLINK_MESSAGE_INFO_SYSTEM_TIME, MAVLINK_MESSAGE_INFO_PING, MAVLINK_MESSAGE_INFO_SYSTEM_TIME_UTC, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL_ACK, MAVLINK_MESSAGE_INFO_AUTH_KEY, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_ACTION_ACK, MAVLINK_MESSAGE_INFO_ACTION, MAVLINK_MESSAGE_INFO_SET_MODE, MAVLINK_MESSAGE_INFO_SET_NAV_MODE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_READ, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_LIST, MAVLINK_MESSAGE_INFO_PARAM_VALUE, MAVLINK_MESSAGE_INFO_PARAM_SET, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_GPS_RAW_INT, MAVLINK_MESSAGE_INFO_SCALED_IMU, MAVLINK_MESSAGE_INFO_GPS_STATUS, MAVLINK_MESSAGE_INFO_RAW_IMU, MAVLINK_MESSAGE_INFO_RAW_PRESSURE, MAVLINK_MESSAGE_INFO_ATTITUDE, MAVLINK_MESSAGE_INFO_LOCAL_POSITION, MAVLINK_MESSAGE_INFO_GPS_RAW, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION, MAVLINK_MESSAGE_INFO_SYS_STATUS, MAVLINK_MESSAGE_INFO_RC_CHANNELS_RAW, MAVLINK_MESSAGE_INFO_RC_CHANNELS_SCALED, MAVLINK_MESSAGE_INFO_SERVO_OUTPUT_RAW, MAVLINK_MESSAGE_INFO_SCALED_PRESSURE, MAVLINK_MESSAGE_INFO_WAYPOINT, MAVLINK_MESSAGE_INFO_WAYPOINT_REQUEST, MAVLINK_MESSAGE_INFO_WAYPOINT_SET_CURRENT, MAVLINK_MESSAGE_INFO_WAYPOINT_CURRENT, MAVLINK_MESSAGE_INFO_WAYPOINT_REQUEST_LIST, MAVLINK_MESSAGE_INFO_WAYPOINT_COUNT, MAVLINK_MESSAGE_INFO_WAYPOINT_CLEAR_ALL, MAVLINK_MESSAGE_INFO_WAYPOINT_REACHED, MAVLINK_MESSAGE_INFO_WAYPOINT_ACK, MAVLINK_MESSAGE_INFO_GPS_SET_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_GPS_LOCAL_ORIGIN_SET, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_SETPOINT_SET, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_SETPOINT, MAVLINK_MESSAGE_INFO_CONTROL_STATUS, MAVLINK_MESSAGE_INFO_SAFETY_SET_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SAFETY_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_THRUST, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_SPEED_THRUST, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_THRUST_SETPOINT, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_NAV_CONTROLLER_OUTPUT, MAVLINK_MESSAGE_INFO_POSITION_TARGET, MAVLINK_MESSAGE_INFO_STATE_CORRECTION, MAVLINK_MESSAGE_INFO_SET_ALTITUDE, MAVLINK_MESSAGE_INFO_REQUEST_DATA_STREAM, MAVLINK_MESSAGE_INFO_HIL_STATE, MAVLINK_MESSAGE_INFO_HIL_CONTROLS, MAVLINK_MESSAGE_INFO_MANUAL_CONTROL, MAVLINK_MESSAGE_INFO_RC_CHANNELS_OVERRIDE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_INT, MAVLINK_MESSAGE_INFO_VFR_HUD, MAVLINK_MESSAGE_INFO_COMMAND, MAVLINK_MESSAGE_INFO_COMMAND_ACK, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_OPTICAL_FLOW, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_OBJECT_DETECTION_EVENT, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_SENSOR_OFFSETS, MAVLINK_MESSAGE_INFO_SET_MAG_OFFSETS, MAVLINK_MESSAGE_INFO_MEMINFO, MAVLINK_MESSAGE_INFO_AP_ADC, MAVLINK_MESSAGE_INFO_DIGICAM_CONFIGURE, MAVLINK_MESSAGE_INFO_DIGICAM_CONTROL, MAVLINK_MESSAGE_INFO_MOUNT_CONFIGURE, MAVLINK_MESSAGE_INFO_MOUNT_CONTROL, MAVLINK_MESSAGE_INFO_MOUNT_STATUS, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_FENCE_POINT, MAVLINK_MESSAGE_INFO_FENCE_FETCH_POINT, MAVLINK_MESSAGE_INFO_FENCE_STATUS, MAVLINK_MESSAGE_INFO_AHRS, MAVLINK_MESSAGE_INFO_SIMSTATE, MAVLINK_MESSAGE_INFO_HWSTATUS, MAVLINK_MESSAGE_INFO_RADIO, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_DEBUG_VECT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_FLOAT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_INT, MAVLINK_MESSAGE_INFO_STATUSTEXT, MAVLINK_MESSAGE_INFO_DEBUG}
 #endif
 
 #include "../protocol.h"
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink.h
similarity index 100%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink.h
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_ahrs.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_ahrs.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_ahrs.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_ahrs.h
index c82afe2f23e2b39684d15cd45ce6a4f4b2b2be7c..9cb06e6b1af3146c7e61ecf7d2229c67e3582f98 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_ahrs.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_ahrs.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_ahrs_pack(uint8_t system_id, uint8_t componen
 	_mav_put_float(buf, 20, error_rp);
 	_mav_put_float(buf, 24, error_yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
 #else
 	mavlink_ahrs_t packet;
 	packet.omegaIx = omegaIx;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_ahrs_pack(uint8_t system_id, uint8_t componen
 	packet.error_rp = error_rp;
 	packet.error_yaw = error_yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_AHRS;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_ahrs_pack_chan(uint8_t system_id, uint8_t com
 	_mav_put_float(buf, 20, error_rp);
 	_mav_put_float(buf, 24, error_yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
 #else
 	mavlink_ahrs_t packet;
 	packet.omegaIx = omegaIx;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_ahrs_pack_chan(uint8_t system_id, uint8_t com
 	packet.error_rp = error_rp;
 	packet.error_yaw = error_yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_AHRS;
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_ap_adc.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_ap_adc.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_ap_adc.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_ap_adc.h
index d42edb15d39a782153fdf0556231b35349bed88d..07eacc9a917df163d2ed37cd94277d3c20097651 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_ap_adc.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_ap_adc.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_ap_adc_pack(uint8_t system_id, uint8_t compon
 	_mav_put_uint16_t(buf, 8, adc5);
 	_mav_put_uint16_t(buf, 10, adc6);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
 #else
 	mavlink_ap_adc_t packet;
 	packet.adc1 = adc1;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_ap_adc_pack(uint8_t system_id, uint8_t compon
 	packet.adc5 = adc5;
 	packet.adc6 = adc6;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_AP_ADC;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_ap_adc_pack_chan(uint8_t system_id, uint8_t c
 	_mav_put_uint16_t(buf, 8, adc5);
 	_mav_put_uint16_t(buf, 10, adc6);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
 #else
 	mavlink_ap_adc_t packet;
 	packet.adc1 = adc1;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_ap_adc_pack_chan(uint8_t system_id, uint8_t c
 	packet.adc5 = adc5;
 	packet.adc6 = adc6;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_AP_ADC;
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_digicam_configure.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_digicam_configure.h
similarity index 98%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_digicam_configure.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_digicam_configure.h
index 92263b86a290fed442585644e449bdabc1d59863..8df0a00d8b9ef062920c95563db62a94fa094888 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_digicam_configure.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_digicam_configure.h
@@ -76,7 +76,7 @@ static inline uint16_t mavlink_msg_digicam_configure_pack(uint8_t system_id, uin
 	_mav_put_uint8_t(buf, 10, extra_param);
 	_mav_put_float(buf, 11, extra_value);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 15);
 #else
 	mavlink_digicam_configure_t packet;
 	packet.target_system = target_system;
@@ -91,7 +91,7 @@ static inline uint16_t mavlink_msg_digicam_configure_pack(uint8_t system_id, uin
 	packet.extra_param = extra_param;
 	packet.extra_value = extra_value;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 15);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DIGICAM_CONFIGURE;
@@ -135,7 +135,7 @@ static inline uint16_t mavlink_msg_digicam_configure_pack_chan(uint8_t system_id
 	_mav_put_uint8_t(buf, 10, extra_param);
 	_mav_put_float(buf, 11, extra_value);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 15);
 #else
 	mavlink_digicam_configure_t packet;
 	packet.target_system = target_system;
@@ -150,7 +150,7 @@ static inline uint16_t mavlink_msg_digicam_configure_pack_chan(uint8_t system_id
 	packet.extra_param = extra_param;
 	packet.extra_value = extra_value;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 15);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DIGICAM_CONFIGURE;
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_digicam_control.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_digicam_control.h
similarity index 98%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_digicam_control.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_digicam_control.h
index ee7d68124c0699dab52ff075d52b2170ac9e9a6f..f0cc511de72884603f6229d5c7da29eee983f704 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_digicam_control.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_digicam_control.h
@@ -72,7 +72,7 @@ static inline uint16_t mavlink_msg_digicam_control_pack(uint8_t system_id, uint8
 	_mav_put_uint8_t(buf, 8, extra_param);
 	_mav_put_float(buf, 9, extra_value);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 13);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 13);
 #else
 	mavlink_digicam_control_t packet;
 	packet.target_system = target_system;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_digicam_control_pack(uint8_t system_id, uint8
 	packet.extra_param = extra_param;
 	packet.extra_value = extra_value;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 13);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 13);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DIGICAM_CONTROL;
@@ -128,7 +128,7 @@ static inline uint16_t mavlink_msg_digicam_control_pack_chan(uint8_t system_id,
 	_mav_put_uint8_t(buf, 8, extra_param);
 	_mav_put_float(buf, 9, extra_value);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 13);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 13);
 #else
 	mavlink_digicam_control_t packet;
 	packet.target_system = target_system;
@@ -142,7 +142,7 @@ static inline uint16_t mavlink_msg_digicam_control_pack_chan(uint8_t system_id,
 	packet.extra_param = extra_param;
 	packet.extra_value = extra_value;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 13);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 13);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DIGICAM_CONTROL;
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_fence_fetch_point.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_fence_fetch_point.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_fence_fetch_point.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_fence_fetch_point.h
index fb2a9831a4cafcd8e9874693c238c79c9c7fb6aa..112b1ecf07ed3456d21f699f4645ea6f6f8df2e0 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_fence_fetch_point.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_fence_fetch_point.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_fence_fetch_point_pack(uint8_t system_id, uin
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_uint8_t(buf, 2, idx);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_fence_fetch_point_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.idx = idx;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_FENCE_FETCH_POINT;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_fence_fetch_point_pack_chan(uint8_t system_id
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_uint8_t(buf, 2, idx);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_fence_fetch_point_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.idx = idx;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_FENCE_FETCH_POINT;
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_fence_point.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_fence_point.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_fence_point.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_fence_point.h
index 35d41de4107af1083f4b3bd029ca2cbdbbf61070..b46b259f44b312df5738a5d1e51560011d1c8537 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_fence_point.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_fence_point.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_fence_point_pack(uint8_t system_id, uint8_t c
 	_mav_put_float(buf, 4, lat);
 	_mav_put_float(buf, 8, lng);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
 #else
 	mavlink_fence_point_t packet;
 	packet.target_system = target_system;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_fence_point_pack(uint8_t system_id, uint8_t c
 	packet.lat = lat;
 	packet.lng = lng;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_FENCE_POINT;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_fence_point_pack_chan(uint8_t system_id, uint
 	_mav_put_float(buf, 4, lat);
 	_mav_put_float(buf, 8, lng);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
 #else
 	mavlink_fence_point_t packet;
 	packet.target_system = target_system;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_fence_point_pack_chan(uint8_t system_id, uint
 	packet.lat = lat;
 	packet.lng = lng;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_FENCE_POINT;
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_fence_status.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_fence_status.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_fence_status.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_fence_status.h
index cb72301117e2c9775112d51fcadcd9a7b7a72e44..77b3e56310dfa3c61dccaa185947a4a8ef2de80f 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_fence_status.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_fence_status.h
@@ -48,7 +48,7 @@ static inline uint16_t mavlink_msg_fence_status_pack(uint8_t system_id, uint8_t
 	_mav_put_uint8_t(buf, 3, breach_type);
 	_mav_put_uint32_t(buf, 4, breach_time);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 8);
 #else
 	mavlink_fence_status_t packet;
 	packet.breach_status = breach_status;
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_fence_status_pack(uint8_t system_id, uint8_t
 	packet.breach_type = breach_type;
 	packet.breach_time = breach_time;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 8);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_FENCE_STATUS;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_fence_status_pack_chan(uint8_t system_id, uin
 	_mav_put_uint8_t(buf, 3, breach_type);
 	_mav_put_uint32_t(buf, 4, breach_time);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 8);
 #else
 	mavlink_fence_status_t packet;
 	packet.breach_status = breach_status;
@@ -94,7 +94,7 @@ static inline uint16_t mavlink_msg_fence_status_pack_chan(uint8_t system_id, uin
 	packet.breach_type = breach_type;
 	packet.breach_time = breach_time;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 8);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_FENCE_STATUS;
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_hwstatus.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_hwstatus.h
similarity index 95%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_hwstatus.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_hwstatus.h
index 20fca8139cd7bbe46744b76939659e8cf097a7db..47cc21484af952f77b5a65df2003fbdef74eaa18 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_hwstatus.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_hwstatus.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_hwstatus_pack(uint8_t system_id, uint8_t comp
 	_mav_put_uint16_t(buf, 0, Vcc);
 	_mav_put_uint8_t(buf, 2, I2Cerr);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_hwstatus_t packet;
 	packet.Vcc = Vcc;
 	packet.I2Cerr = I2Cerr;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HWSTATUS;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_hwstatus_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_uint16_t(buf, 0, Vcc);
 	_mav_put_uint8_t(buf, 2, I2Cerr);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_hwstatus_t packet;
 	packet.Vcc = Vcc;
 	packet.I2Cerr = I2Cerr;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HWSTATUS;
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_meminfo.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_meminfo.h
similarity index 95%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_meminfo.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_meminfo.h
index b131967df97b4d08fc0b7682dcbb37bbb5de186c..e9efa5da22370551b097ef72e4aafe11d1f23405 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_meminfo.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_meminfo.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_meminfo_pack(uint8_t system_id, uint8_t compo
 	_mav_put_uint16_t(buf, 0, brkval);
 	_mav_put_uint16_t(buf, 2, freemem);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_meminfo_t packet;
 	packet.brkval = brkval;
 	packet.freemem = freemem;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MEMINFO;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_meminfo_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_uint16_t(buf, 0, brkval);
 	_mav_put_uint16_t(buf, 2, freemem);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_meminfo_t packet;
 	packet.brkval = brkval;
 	packet.freemem = freemem;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MEMINFO;
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_mount_configure.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_mount_configure.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_mount_configure.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_mount_configure.h
index f2c73d301f2a6b4973810578efafb6c5eb12f097..688d89415ab0bf44e8370511f1ee6f5139b7ba5a 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_mount_configure.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_mount_configure.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_mount_configure_pack(uint8_t system_id, uint8
 	_mav_put_uint8_t(buf, 4, stab_pitch);
 	_mav_put_uint8_t(buf, 5, stab_yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
 #else
 	mavlink_mount_configure_t packet;
 	packet.target_system = target_system;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_mount_configure_pack(uint8_t system_id, uint8
 	packet.stab_pitch = stab_pitch;
 	packet.stab_yaw = stab_yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MOUNT_CONFIGURE;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_mount_configure_pack_chan(uint8_t system_id,
 	_mav_put_uint8_t(buf, 4, stab_pitch);
 	_mav_put_uint8_t(buf, 5, stab_yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
 #else
 	mavlink_mount_configure_t packet;
 	packet.target_system = target_system;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_mount_configure_pack_chan(uint8_t system_id,
 	packet.stab_pitch = stab_pitch;
 	packet.stab_yaw = stab_yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MOUNT_CONFIGURE;
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_mount_control.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_mount_control.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_mount_control.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_mount_control.h
index 5f1d13eb8e5c144d52f382b2bebbb36b5d91f89e..f13bea2d9fa35ca9f69943bf3520ec31291a01ca 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_mount_control.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_mount_control.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_mount_control_pack(uint8_t system_id, uint8_t
 	_mav_put_int32_t(buf, 10, input_c);
 	_mav_put_uint8_t(buf, 14, save_position);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 15);
 #else
 	mavlink_mount_control_t packet;
 	packet.target_system = target_system;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_mount_control_pack(uint8_t system_id, uint8_t
 	packet.input_c = input_c;
 	packet.save_position = save_position;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 15);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MOUNT_CONTROL;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_mount_control_pack_chan(uint8_t system_id, ui
 	_mav_put_int32_t(buf, 10, input_c);
 	_mav_put_uint8_t(buf, 14, save_position);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 15);
 #else
 	mavlink_mount_control_t packet;
 	packet.target_system = target_system;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_mount_control_pack_chan(uint8_t system_id, ui
 	packet.input_c = input_c;
 	packet.save_position = save_position;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 15);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MOUNT_CONTROL;
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_mount_status.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_mount_status.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_mount_status.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_mount_status.h
index 04bddae2877503e90f5bf0da18de4b06543dff73..75a44321ec169e179ac73dae5172816ef26e8c4e 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_mount_status.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_mount_status.h
@@ -52,7 +52,7 @@ static inline uint16_t mavlink_msg_mount_status_pack(uint8_t system_id, uint8_t
 	_mav_put_int32_t(buf, 6, pointing_b);
 	_mav_put_int32_t(buf, 10, pointing_c);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
 #else
 	mavlink_mount_status_t packet;
 	packet.target_system = target_system;
@@ -61,7 +61,7 @@ static inline uint16_t mavlink_msg_mount_status_pack(uint8_t system_id, uint8_t
 	packet.pointing_b = pointing_b;
 	packet.pointing_c = pointing_c;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MOUNT_STATUS;
@@ -93,7 +93,7 @@ static inline uint16_t mavlink_msg_mount_status_pack_chan(uint8_t system_id, uin
 	_mav_put_int32_t(buf, 6, pointing_b);
 	_mav_put_int32_t(buf, 10, pointing_c);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
 #else
 	mavlink_mount_status_t packet;
 	packet.target_system = target_system;
@@ -102,7 +102,7 @@ static inline uint16_t mavlink_msg_mount_status_pack_chan(uint8_t system_id, uin
 	packet.pointing_b = pointing_b;
 	packet.pointing_c = pointing_c;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MOUNT_STATUS;
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_radio.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_radio.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_radio.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_radio.h
index ee7e8f16cff35cb9eb759bec7c990bd648442eaf..50b23b4e0f5c3f4fbe6f5ca6b865099bfe3c295d 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_radio.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_radio.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_radio_pack(uint8_t system_id, uint8_t compone
 	_mav_put_uint16_t(buf, 5, rxerrors);
 	_mav_put_uint16_t(buf, 7, fixed);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 9);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 9);
 #else
 	mavlink_radio_t packet;
 	packet.rssi = rssi;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_radio_pack(uint8_t system_id, uint8_t compone
 	packet.rxerrors = rxerrors;
 	packet.fixed = fixed;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 9);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 9);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RADIO;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_radio_pack_chan(uint8_t system_id, uint8_t co
 	_mav_put_uint16_t(buf, 5, rxerrors);
 	_mav_put_uint16_t(buf, 7, fixed);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 9);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 9);
 #else
 	mavlink_radio_t packet;
 	packet.rssi = rssi;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_radio_pack_chan(uint8_t system_id, uint8_t co
 	packet.rxerrors = rxerrors;
 	packet.fixed = fixed;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 9);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 9);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RADIO;
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_sensor_offsets.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_sensor_offsets.h
similarity index 98%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_sensor_offsets.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_sensor_offsets.h
index 216211a8f85db66e0d646abb13f69fd64bf58864..3016ea9bd944cb62b840951892a862e255874f2c 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_sensor_offsets.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_sensor_offsets.h
@@ -80,7 +80,7 @@ static inline uint16_t mavlink_msg_sensor_offsets_pack(uint8_t system_id, uint8_
 	_mav_put_float(buf, 34, accel_cal_y);
 	_mav_put_float(buf, 38, accel_cal_z);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 42);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 42);
 #else
 	mavlink_sensor_offsets_t packet;
 	packet.mag_ofs_x = mag_ofs_x;
@@ -96,7 +96,7 @@ static inline uint16_t mavlink_msg_sensor_offsets_pack(uint8_t system_id, uint8_
 	packet.accel_cal_y = accel_cal_y;
 	packet.accel_cal_z = accel_cal_z;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 42);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 42);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SENSOR_OFFSETS;
@@ -142,7 +142,7 @@ static inline uint16_t mavlink_msg_sensor_offsets_pack_chan(uint8_t system_id, u
 	_mav_put_float(buf, 34, accel_cal_y);
 	_mav_put_float(buf, 38, accel_cal_z);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 42);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 42);
 #else
 	mavlink_sensor_offsets_t packet;
 	packet.mag_ofs_x = mag_ofs_x;
@@ -158,7 +158,7 @@ static inline uint16_t mavlink_msg_sensor_offsets_pack_chan(uint8_t system_id, u
 	packet.accel_cal_y = accel_cal_y;
 	packet.accel_cal_z = accel_cal_z;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 42);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 42);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SENSOR_OFFSETS;
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_set_mag_offsets.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_set_mag_offsets.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_set_mag_offsets.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_set_mag_offsets.h
index 6243b440a972316c499fa8e339e1f9723da229e1..99473e2f121a504271013927c4d46b4e26b0eba2 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_set_mag_offsets.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_set_mag_offsets.h
@@ -52,7 +52,7 @@ static inline uint16_t mavlink_msg_set_mag_offsets_pack(uint8_t system_id, uint8
 	_mav_put_int16_t(buf, 4, mag_ofs_y);
 	_mav_put_int16_t(buf, 6, mag_ofs_z);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 8);
 #else
 	mavlink_set_mag_offsets_t packet;
 	packet.target_system = target_system;
@@ -61,7 +61,7 @@ static inline uint16_t mavlink_msg_set_mag_offsets_pack(uint8_t system_id, uint8
 	packet.mag_ofs_y = mag_ofs_y;
 	packet.mag_ofs_z = mag_ofs_z;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 8);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_MAG_OFFSETS;
@@ -93,7 +93,7 @@ static inline uint16_t mavlink_msg_set_mag_offsets_pack_chan(uint8_t system_id,
 	_mav_put_int16_t(buf, 4, mag_ofs_y);
 	_mav_put_int16_t(buf, 6, mag_ofs_z);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 8);
 #else
 	mavlink_set_mag_offsets_t packet;
 	packet.target_system = target_system;
@@ -102,7 +102,7 @@ static inline uint16_t mavlink_msg_set_mag_offsets_pack_chan(uint8_t system_id,
 	packet.mag_ofs_y = mag_ofs_y;
 	packet.mag_ofs_z = mag_ofs_z;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 8);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_MAG_OFFSETS;
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_simstate.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_simstate.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_simstate.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_simstate.h
index 4d487c99b5bfb8efc0ce72db2ad733b26841cde3..05f9ca3cc4e256dd55060fab79866bd25315ed91 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/mavlink_msg_simstate.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/mavlink_msg_simstate.h
@@ -68,7 +68,7 @@ static inline uint16_t mavlink_msg_simstate_pack(uint8_t system_id, uint8_t comp
 	_mav_put_float(buf, 28, ygyro);
 	_mav_put_float(buf, 32, zgyro);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 36);
 #else
 	mavlink_simstate_t packet;
 	packet.roll = roll;
@@ -81,7 +81,7 @@ static inline uint16_t mavlink_msg_simstate_pack(uint8_t system_id, uint8_t comp
 	packet.ygyro = ygyro;
 	packet.zgyro = zgyro;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 36);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SIMSTATE;
@@ -121,7 +121,7 @@ static inline uint16_t mavlink_msg_simstate_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_float(buf, 28, ygyro);
 	_mav_put_float(buf, 32, zgyro);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 36);
 #else
 	mavlink_simstate_t packet;
 	packet.roll = roll;
@@ -134,7 +134,7 @@ static inline uint16_t mavlink_msg_simstate_pack_chan(uint8_t system_id, uint8_t
 	packet.ygyro = ygyro;
 	packet.zgyro = zgyro;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 36);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SIMSTATE;
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/testsuite.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/testsuite.h
similarity index 94%
rename from libraries/GCS_MAVLink/include/ardupilotmega/testsuite.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/testsuite.h
index cbc002d64f401b93ac90560e226fd86e5debe1ed..a3ac5476ca26c3666f464b5e7fb0f67349ff9a0d 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/testsuite.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/testsuite.h
@@ -534,14 +534,14 @@ static void mavlink_test_fence_point(uint8_t system_id, uint8_t component_id, ma
 	};
 	mavlink_fence_point_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
-		packet1.target_system = packet_in.target_system;
-		packet1.target_component = packet_in.target_component;
-		packet1.idx = packet_in.idx;
-		packet1.count = packet_in.count;
-		packet1.lat = packet_in.lat;
-		packet1.lng = packet_in.lng;
-
-
+        	packet1.target_system = packet_in.target_system;
+        	packet1.target_component = packet_in.target_component;
+        	packet1.idx = packet_in.idx;
+        	packet1.count = packet_in.count;
+        	packet1.lat = packet_in.lat;
+        	packet1.lng = packet_in.lng;
+        
+        
 
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_fence_point_encode(system_id, component_id, &msg, &packet1);
@@ -561,11 +561,11 @@ static void mavlink_test_fence_point(uint8_t system_id, uint8_t component_id, ma
         memset(&packet2, 0, sizeof(packet2));
         mavlink_msg_to_send_buffer(buffer, &msg);
         for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
-		comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
         }
 	mavlink_msg_fence_point_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
+        
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_fence_point_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.idx , packet1.count , packet1.lat , packet1.lng );
 	mavlink_msg_fence_point_decode(last_msg, &packet2);
@@ -584,11 +584,11 @@ static void mavlink_test_fence_fetch_point(uint8_t system_id, uint8_t component_
 	};
 	mavlink_fence_fetch_point_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
-		packet1.target_system = packet_in.target_system;
-		packet1.target_component = packet_in.target_component;
-		packet1.idx = packet_in.idx;
-
-
+        	packet1.target_system = packet_in.target_system;
+        	packet1.target_component = packet_in.target_component;
+        	packet1.idx = packet_in.idx;
+        
+        
 
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_fence_fetch_point_encode(system_id, component_id, &msg, &packet1);
@@ -608,11 +608,11 @@ static void mavlink_test_fence_fetch_point(uint8_t system_id, uint8_t component_
         memset(&packet2, 0, sizeof(packet2));
         mavlink_msg_to_send_buffer(buffer, &msg);
         for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
-		comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
         }
 	mavlink_msg_fence_fetch_point_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
+        
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_fence_fetch_point_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.idx );
 	mavlink_msg_fence_fetch_point_decode(last_msg, &packet2);
@@ -632,12 +632,12 @@ static void mavlink_test_fence_status(uint8_t system_id, uint8_t component_id, m
 	};
 	mavlink_fence_status_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
-		packet1.breach_status = packet_in.breach_status;
-		packet1.breach_count = packet_in.breach_count;
-		packet1.breach_type = packet_in.breach_type;
-		packet1.breach_time = packet_in.breach_time;
-
-
+        	packet1.breach_status = packet_in.breach_status;
+        	packet1.breach_count = packet_in.breach_count;
+        	packet1.breach_type = packet_in.breach_type;
+        	packet1.breach_time = packet_in.breach_time;
+        
+        
 
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_fence_status_encode(system_id, component_id, &msg, &packet1);
@@ -657,11 +657,11 @@ static void mavlink_test_fence_status(uint8_t system_id, uint8_t component_id, m
         memset(&packet2, 0, sizeof(packet2));
         mavlink_msg_to_send_buffer(buffer, &msg);
         for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
-		comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
         }
 	mavlink_msg_fence_status_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
+        
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_fence_status_send(MAVLINK_COMM_1 , packet1.breach_status , packet1.breach_count , packet1.breach_type , packet1.breach_time );
 	mavlink_msg_fence_status_decode(last_msg, &packet2);
@@ -684,15 +684,15 @@ static void mavlink_test_ahrs(uint8_t system_id, uint8_t component_id, mavlink_m
 	};
 	mavlink_ahrs_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
-		packet1.omegaIx = packet_in.omegaIx;
-		packet1.omegaIy = packet_in.omegaIy;
-		packet1.omegaIz = packet_in.omegaIz;
-		packet1.accel_weight = packet_in.accel_weight;
-		packet1.renorm_val = packet_in.renorm_val;
-		packet1.error_rp = packet_in.error_rp;
-		packet1.error_yaw = packet_in.error_yaw;
-
-
+        	packet1.omegaIx = packet_in.omegaIx;
+        	packet1.omegaIy = packet_in.omegaIy;
+        	packet1.omegaIz = packet_in.omegaIz;
+        	packet1.accel_weight = packet_in.accel_weight;
+        	packet1.renorm_val = packet_in.renorm_val;
+        	packet1.error_rp = packet_in.error_rp;
+        	packet1.error_yaw = packet_in.error_yaw;
+        
+        
 
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_ahrs_encode(system_id, component_id, &msg, &packet1);
@@ -712,11 +712,11 @@ static void mavlink_test_ahrs(uint8_t system_id, uint8_t component_id, mavlink_m
         memset(&packet2, 0, sizeof(packet2));
         mavlink_msg_to_send_buffer(buffer, &msg);
         for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
-		comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
         }
 	mavlink_msg_ahrs_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
+        
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_ahrs_send(MAVLINK_COMM_1 , packet1.omegaIx , packet1.omegaIy , packet1.omegaIz , packet1.accel_weight , packet1.renorm_val , packet1.error_rp , packet1.error_yaw );
 	mavlink_msg_ahrs_decode(last_msg, &packet2);
@@ -741,17 +741,17 @@ static void mavlink_test_simstate(uint8_t system_id, uint8_t component_id, mavli
 	};
 	mavlink_simstate_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
-		packet1.roll = packet_in.roll;
-		packet1.pitch = packet_in.pitch;
-		packet1.yaw = packet_in.yaw;
-		packet1.xacc = packet_in.xacc;
-		packet1.yacc = packet_in.yacc;
-		packet1.zacc = packet_in.zacc;
-		packet1.xgyro = packet_in.xgyro;
-		packet1.ygyro = packet_in.ygyro;
-		packet1.zgyro = packet_in.zgyro;
-
-
+        	packet1.roll = packet_in.roll;
+        	packet1.pitch = packet_in.pitch;
+        	packet1.yaw = packet_in.yaw;
+        	packet1.xacc = packet_in.xacc;
+        	packet1.yacc = packet_in.yacc;
+        	packet1.zacc = packet_in.zacc;
+        	packet1.xgyro = packet_in.xgyro;
+        	packet1.ygyro = packet_in.ygyro;
+        	packet1.zgyro = packet_in.zgyro;
+        
+        
 
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_simstate_encode(system_id, component_id, &msg, &packet1);
@@ -771,11 +771,11 @@ static void mavlink_test_simstate(uint8_t system_id, uint8_t component_id, mavli
         memset(&packet2, 0, sizeof(packet2));
         mavlink_msg_to_send_buffer(buffer, &msg);
         for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
-		comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
         }
 	mavlink_msg_simstate_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
+        
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_simstate_send(MAVLINK_COMM_1 , packet1.roll , packet1.pitch , packet1.yaw , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro );
 	mavlink_msg_simstate_decode(last_msg, &packet2);
@@ -793,10 +793,10 @@ static void mavlink_test_hwstatus(uint8_t system_id, uint8_t component_id, mavli
 	};
 	mavlink_hwstatus_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
-		packet1.Vcc = packet_in.Vcc;
-		packet1.I2Cerr = packet_in.I2Cerr;
-
-
+        	packet1.Vcc = packet_in.Vcc;
+        	packet1.I2Cerr = packet_in.I2Cerr;
+        
+        
 
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_hwstatus_encode(system_id, component_id, &msg, &packet1);
@@ -816,11 +816,11 @@ static void mavlink_test_hwstatus(uint8_t system_id, uint8_t component_id, mavli
         memset(&packet2, 0, sizeof(packet2));
         mavlink_msg_to_send_buffer(buffer, &msg);
         for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
-		comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
         }
 	mavlink_msg_hwstatus_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
+        
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_hwstatus_send(MAVLINK_COMM_1 , packet1.Vcc , packet1.I2Cerr );
 	mavlink_msg_hwstatus_decode(last_msg, &packet2);
@@ -843,15 +843,15 @@ static void mavlink_test_radio(uint8_t system_id, uint8_t component_id, mavlink_
 	};
 	mavlink_radio_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
-		packet1.rssi = packet_in.rssi;
-		packet1.remrssi = packet_in.remrssi;
-		packet1.txbuf = packet_in.txbuf;
-		packet1.noise = packet_in.noise;
-		packet1.remnoise = packet_in.remnoise;
-		packet1.rxerrors = packet_in.rxerrors;
-		packet1.fixed = packet_in.fixed;
-
-
+        	packet1.rssi = packet_in.rssi;
+        	packet1.remrssi = packet_in.remrssi;
+        	packet1.txbuf = packet_in.txbuf;
+        	packet1.noise = packet_in.noise;
+        	packet1.remnoise = packet_in.remnoise;
+        	packet1.rxerrors = packet_in.rxerrors;
+        	packet1.fixed = packet_in.fixed;
+        
+        
 
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_radio_encode(system_id, component_id, &msg, &packet1);
@@ -871,11 +871,11 @@ static void mavlink_test_radio(uint8_t system_id, uint8_t component_id, mavlink_
         memset(&packet2, 0, sizeof(packet2));
         mavlink_msg_to_send_buffer(buffer, &msg);
         for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
-		comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
         }
 	mavlink_msg_radio_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
+        
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_radio_send(MAVLINK_COMM_1 , packet1.rssi , packet1.remrssi , packet1.txbuf , packet1.noise , packet1.remnoise , packet1.rxerrors , packet1.fixed );
 	mavlink_msg_radio_decode(last_msg, &packet2);
diff --git a/libraries/GCS_MAVLink/include/ardupilotmega/version.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/version.h
similarity index 84%
rename from libraries/GCS_MAVLink/include/ardupilotmega/version.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/version.h
index 92c94399fe27f24a364b13920f3aa95441dad220..fe53ad26005f7768d8d9603c5b66286c7e86cf44 100644
--- a/libraries/GCS_MAVLink/include/ardupilotmega/version.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/ardupilotmega/version.h
@@ -5,7 +5,7 @@
 #ifndef MAVLINK_VERSION_H
 #define MAVLINK_VERSION_H
 
-#define MAVLINK_BUILD_DATE "Sun Apr  8 11:01:51 2012"
+#define MAVLINK_BUILD_DATE "Thu Apr 19 15:39:52 2012"
 #define MAVLINK_WIRE_PROTOCOL_VERSION "0.9"
 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 101
  
diff --git a/libraries/GCS_MAVLink/include/checksum.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/checksum.h
similarity index 100%
rename from libraries/GCS_MAVLink/include/checksum.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/checksum.h
diff --git a/libraries/GCS_MAVLink/include/mavlink/v0.9/common/common.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/common.h
new file mode 100644
index 0000000000000000000000000000000000000000..84538ed57013b0dd08896d6c8962924d8c55328a
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/common.h
@@ -0,0 +1,208 @@
+/** @file
+ *	@brief MAVLink comm protocol generated from common.xml
+ *	@see http://qgroundcontrol.org/mavlink/
+ */
+#ifndef COMMON_H
+#define COMMON_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// MESSAGE LENGTHS AND CRCS
+
+#ifndef MAVLINK_MESSAGE_LENGTHS
+#define MAVLINK_MESSAGE_LENGTHS {3, 4, 8, 14, 8, 28, 3, 32, 0, 2, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 19, 2, 23, 21, 0, 37, 26, 101, 26, 16, 32, 32, 37, 32, 11, 17, 17, 16, 18, 36, 4, 4, 2, 2, 4, 2, 2, 3, 14, 12, 18, 16, 8, 27, 25, 18, 18, 24, 24, 0, 0, 0, 26, 16, 36, 5, 6, 56, 26, 21, 18, 0, 0, 18, 20, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 14, 14, 51, 5}
+#endif
+
+#ifndef MAVLINK_MESSAGE_CRCS
+#define MAVLINK_MESSAGE_CRCS {72, 39, 190, 92, 191, 217, 104, 119, 0, 219, 60, 186, 10, 0, 0, 0, 0, 0, 0, 0, 89, 159, 162, 121, 0, 149, 222, 110, 179, 136, 66, 126, 185, 147, 112, 252, 162, 215, 229, 128, 9, 106, 101, 213, 4, 229, 21, 214, 215, 14, 206, 50, 157, 126, 108, 213, 95, 5, 127, 0, 0, 0, 57, 126, 130, 119, 193, 191, 236, 158, 143, 0, 0, 104, 123, 131, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 224, 60, 106, 7}
+#endif
+
+#ifndef MAVLINK_MESSAGE_INFO
+#define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_BOOT, MAVLINK_MESSAGE_INFO_SYSTEM_TIME, MAVLINK_MESSAGE_INFO_PING, MAVLINK_MESSAGE_INFO_SYSTEM_TIME_UTC, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL_ACK, MAVLINK_MESSAGE_INFO_AUTH_KEY, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_ACTION_ACK, MAVLINK_MESSAGE_INFO_ACTION, MAVLINK_MESSAGE_INFO_SET_MODE, MAVLINK_MESSAGE_INFO_SET_NAV_MODE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_READ, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_LIST, MAVLINK_MESSAGE_INFO_PARAM_VALUE, MAVLINK_MESSAGE_INFO_PARAM_SET, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_GPS_RAW_INT, MAVLINK_MESSAGE_INFO_SCALED_IMU, MAVLINK_MESSAGE_INFO_GPS_STATUS, MAVLINK_MESSAGE_INFO_RAW_IMU, MAVLINK_MESSAGE_INFO_RAW_PRESSURE, MAVLINK_MESSAGE_INFO_ATTITUDE, MAVLINK_MESSAGE_INFO_LOCAL_POSITION, MAVLINK_MESSAGE_INFO_GPS_RAW, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION, MAVLINK_MESSAGE_INFO_SYS_STATUS, MAVLINK_MESSAGE_INFO_RC_CHANNELS_RAW, MAVLINK_MESSAGE_INFO_RC_CHANNELS_SCALED, MAVLINK_MESSAGE_INFO_SERVO_OUTPUT_RAW, MAVLINK_MESSAGE_INFO_SCALED_PRESSURE, MAVLINK_MESSAGE_INFO_WAYPOINT, MAVLINK_MESSAGE_INFO_WAYPOINT_REQUEST, MAVLINK_MESSAGE_INFO_WAYPOINT_SET_CURRENT, MAVLINK_MESSAGE_INFO_WAYPOINT_CURRENT, MAVLINK_MESSAGE_INFO_WAYPOINT_REQUEST_LIST, MAVLINK_MESSAGE_INFO_WAYPOINT_COUNT, MAVLINK_MESSAGE_INFO_WAYPOINT_CLEAR_ALL, MAVLINK_MESSAGE_INFO_WAYPOINT_REACHED, MAVLINK_MESSAGE_INFO_WAYPOINT_ACK, MAVLINK_MESSAGE_INFO_GPS_SET_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_GPS_LOCAL_ORIGIN_SET, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_SETPOINT_SET, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_SETPOINT, MAVLINK_MESSAGE_INFO_CONTROL_STATUS, MAVLINK_MESSAGE_INFO_SAFETY_SET_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SAFETY_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_THRUST, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_SPEED_THRUST, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_THRUST_SETPOINT, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_NAV_CONTROLLER_OUTPUT, MAVLINK_MESSAGE_INFO_POSITION_TARGET, MAVLINK_MESSAGE_INFO_STATE_CORRECTION, MAVLINK_MESSAGE_INFO_SET_ALTITUDE, MAVLINK_MESSAGE_INFO_REQUEST_DATA_STREAM, MAVLINK_MESSAGE_INFO_HIL_STATE, MAVLINK_MESSAGE_INFO_HIL_CONTROLS, MAVLINK_MESSAGE_INFO_MANUAL_CONTROL, MAVLINK_MESSAGE_INFO_RC_CHANNELS_OVERRIDE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_INT, MAVLINK_MESSAGE_INFO_VFR_HUD, MAVLINK_MESSAGE_INFO_COMMAND, MAVLINK_MESSAGE_INFO_COMMAND_ACK, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_OPTICAL_FLOW, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_OBJECT_DETECTION_EVENT, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_DEBUG_VECT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_FLOAT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_INT, MAVLINK_MESSAGE_INFO_STATUSTEXT, MAVLINK_MESSAGE_INFO_DEBUG}
+#endif
+
+#include "../protocol.h"
+
+#define MAVLINK_ENABLED_COMMON
+
+
+
+// MAVLINK VERSION
+
+#ifndef MAVLINK_VERSION
+#define MAVLINK_VERSION 2
+#endif
+
+#if (MAVLINK_VERSION == 0)
+#undef MAVLINK_VERSION
+#define MAVLINK_VERSION 2
+#endif
+
+// ENUM DEFINITIONS
+
+
+/** @brief Commands to be executed by the MAV. They can be executed on user request,
+      or as part of a mission script. If the action is used in a mission, the parameter mapping
+      to the waypoint/mission message is as follows:
+      Param 1, Param 2, Param 3, Param 4, X: Param 5, Y:Param 6, Z:Param 7. This command list is similar what
+      ARINC 424 is for commercial aircraft: A data format how to interpret waypoint/mission data. */
+#ifndef HAVE_ENUM_MAV_CMD
+#define HAVE_ENUM_MAV_CMD
+enum MAV_CMD
+{
+	MAV_CMD_NAV_WAYPOINT=16, /* Navigate to waypoint. |Hold time in decimal seconds. (ignored by fixed wing, time to stay at waypoint for rotary wing)| Acceptance radius in meters (if the sphere with this radius is hit, the waypoint counts as reached)| 0 to pass through the WP, if > 0 radius in meters to pass by WP. Positive value for clockwise orbit, negative value for counter-clockwise orbit. Allows trajectory control.| Desired yaw angle at waypoint (rotary wing)| Latitude| Longitude| Altitude|  */
+	MAV_CMD_NAV_LOITER_UNLIM=17, /* Loiter around this waypoint an unlimited amount of time |Empty| Empty| Radius around waypoint, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  */
+	MAV_CMD_NAV_LOITER_TURNS=18, /* Loiter around this waypoint for X turns |Turns| Empty| Radius around waypoint, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  */
+	MAV_CMD_NAV_LOITER_TIME=19, /* Loiter around this waypoint for X seconds |Seconds (decimal)| Empty| Radius around waypoint, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  */
+	MAV_CMD_NAV_RETURN_TO_LAUNCH=20, /* Return to launch location |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_NAV_LAND=21, /* Land at location |Empty| Empty| Empty| Desired yaw angle.| Latitude| Longitude| Altitude|  */
+	MAV_CMD_NAV_TAKEOFF=22, /* Takeoff from ground / hand |Minimum pitch (if airspeed sensor present), desired pitch without sensor| Empty| Empty| Yaw angle (if magnetometer present), ignored without magnetometer| Latitude| Longitude| Altitude|  */
+	MAV_CMD_NAV_ROI=80, /* Sets the region of interest (ROI) for a sensor set or the
+            vehicle itself. This can then be used by the vehicles control
+            system to control the vehicle attitude and the attitude of various
+            sensors such as cameras. |Region of intereset mode. (see MAV_ROI enum)| Waypoint index/ target ID. (see MAV_ROI enum)| ROI index (allows a vehicle to manage multiple ROI's)| Empty| x the location of the fixed ROI (see MAV_FRAME)| y| z|  */
+	MAV_CMD_NAV_PATHPLANNING=81, /* Control autonomous path planning on the MAV. |0: Disable local obstacle avoidance / local path planning (without resetting map), 1: Enable local path planning, 2: Enable and reset local path planning| 0: Disable full path planning (without resetting map), 1: Enable, 2: Enable and reset map/occupancy grid, 3: Enable and reset planned route, but not occupancy grid| Empty| Yaw angle at goal, in compass degrees, [0..360]| Latitude/X of goal| Longitude/Y of goal| Altitude/Z of goal|  */
+	MAV_CMD_NAV_LAST=95, /* NOP - This command is only used to mark the upper limit of the NAV/ACTION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_CONDITION_DELAY=112, /* Delay mission state machine. |Delay in seconds (decimal)| Empty| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_CONDITION_CHANGE_ALT=113, /* Ascend/descend at rate.  Delay mission state machine until desired altitude reached. |Descent / Ascend rate (m/s)| Empty| Empty| Empty| Empty| Empty| Finish Altitude|  */
+	MAV_CMD_CONDITION_DISTANCE=114, /* Delay mission state machine until within desired distance of next NAV point. |Distance (meters)| Empty| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_CONDITION_YAW=115, /* Reach a certain target angle. |target angle: [0-360], 0 is north| speed during yaw change:[deg per second]| direction: negative: counter clockwise, positive: clockwise [-1,1]| relative offset or absolute angle: [ 1,0]| Empty| Empty| Empty|  */
+	MAV_CMD_CONDITION_LAST=159, /* NOP - This command is only used to mark the upper limit of the CONDITION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_DO_SET_MODE=176, /* Set system mode. |Mode, as defined by ENUM MAV_MODE| Empty| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_DO_JUMP=177, /* Jump to the desired command in the mission list.  Repeat this action only the specified number of times |Sequence number| Repeat count| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_DO_CHANGE_SPEED=178, /* Change speed and/or throttle set points. |Speed type (0=Airspeed, 1=Ground Speed)| Speed  (m/s, -1 indicates no change)| Throttle  ( Percent, -1 indicates no change)| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_DO_SET_HOME=179, /* Changes the home location either to the current location or a specified location. |Use current (1=use current location, 0=use specified location)| Empty| Empty| Empty| Latitude| Longitude| Altitude|  */
+	MAV_CMD_DO_SET_PARAMETER=180, /* Set a system parameter.  Caution!  Use of this command requires knowledge of the numeric enumeration value of the parameter. |Parameter number| Parameter value| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_DO_SET_RELAY=181, /* Set a relay to a condition. |Relay number| Setting (1=on, 0=off, others possible depending on system hardware)| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_DO_REPEAT_RELAY=182, /* Cycle a relay on and off for a desired number of cyles with a desired period. |Relay number| Cycle count| Cycle time (seconds, decimal)| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_DO_SET_SERVO=183, /* Set a servo to a desired PWM value. |Servo number| PWM (microseconds, 1000 to 2000 typical)| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_DO_REPEAT_SERVO=184, /* Cycle a between its nominal setting and a desired PWM for a desired number of cycles with a desired period. |Servo number| PWM (microseconds, 1000 to 2000 typical)| Cycle count| Cycle time (seconds)| Empty| Empty| Empty|  */
+	MAV_CMD_DO_CONTROL_VIDEO=200, /* Control onboard camera capturing. |Camera ID (-1 for all)| Transmission: 0: disabled, 1: enabled compressed, 2: enabled raw| Transmission mode: 0: video stream, >0: single images every n seconds (decimal)| Recording: 0: disabled, 1: enabled compressed, 2: enabled raw| Empty| Empty| Empty|  */
+	MAV_CMD_DO_SET_ROI=201, /* Sets the region of interest (ROI) for a sensor set or the
+                    vehicle itself. This can then be used by the vehicles control
+                    system to control the vehicle attitude and the attitude of various
+                    devices such as cameras.
+                 |Region of interest mode. (see MAV_ROI enum)| Waypoint index/ target ID. (see MAV_ROI enum)| ROI index (allows a vehicle to manage multiple cameras etc.)| Empty| x the location of the fixed ROI (see MAV_FRAME)| y| z|  */
+	MAV_CMD_DO_LAST=240, /* NOP - This command is only used to mark the upper limit of the DO commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_PREFLIGHT_CALIBRATION=241, /* Trigger calibration. This command will be only accepted if in pre-flight mode. |Gyro calibration: 0: no, 1: yes| Magnetometer calibration: 0: no, 1: yes| Ground pressure: 0: no, 1: yes| Radio calibration: 0: no, 1: yes| Empty| Empty| Empty|  */
+	MAV_CMD_PREFLIGHT_STORAGE=245, /* Request storage of different parameter values and logs. This command will be only accepted if in pre-flight mode. |Parameter storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM| Mission storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM| Reserved| Reserved| Empty| Empty| Empty|  */
+	MAV_CMD_ENUM_END=246, /*  | */
+};
+#endif
+
+/** @brief Data stream IDs. A data stream is not a fixed set of messages, but rather a
+     recommendation to the autopilot software. Individual autopilots may or may not obey
+     the recommended messages.
+      */
+#ifndef HAVE_ENUM_MAV_DATA_STREAM
+#define HAVE_ENUM_MAV_DATA_STREAM
+enum MAV_DATA_STREAM
+{
+	MAV_DATA_STREAM_ALL=0, /* Enable all data streams | */
+	MAV_DATA_STREAM_RAW_SENSORS=1, /* Enable IMU_RAW, GPS_RAW, GPS_STATUS packets. | */
+	MAV_DATA_STREAM_EXTENDED_STATUS=2, /* Enable GPS_STATUS, CONTROL_STATUS, AUX_STATUS | */
+	MAV_DATA_STREAM_RC_CHANNELS=3, /* Enable RC_CHANNELS_SCALED, RC_CHANNELS_RAW, SERVO_OUTPUT_RAW | */
+	MAV_DATA_STREAM_RAW_CONTROLLER=4, /* Enable ATTITUDE_CONTROLLER_OUTPUT, POSITION_CONTROLLER_OUTPUT, NAV_CONTROLLER_OUTPUT. | */
+	MAV_DATA_STREAM_POSITION=6, /* Enable LOCAL_POSITION, GLOBAL_POSITION/GLOBAL_POSITION_INT messages. | */
+	MAV_DATA_STREAM_EXTRA1=10, /* Dependent on the autopilot | */
+	MAV_DATA_STREAM_EXTRA2=11, /* Dependent on the autopilot | */
+	MAV_DATA_STREAM_EXTRA3=12, /* Dependent on the autopilot | */
+	MAV_DATA_STREAM_ENUM_END=13, /*  | */
+};
+#endif
+
+/** @brief  The ROI (region of interest) for the vehicle. This can be
+                be used by the vehicle for camera/vehicle attitude alignment (see
+                MAV_CMD_NAV_ROI).
+             */
+#ifndef HAVE_ENUM_MAV_ROI
+#define HAVE_ENUM_MAV_ROI
+enum MAV_ROI
+{
+	MAV_ROI_NONE=0, /* No region of interest. | */
+	MAV_ROI_WPNEXT=1, /* Point toward next waypoint. | */
+	MAV_ROI_WPINDEX=2, /* Point toward given waypoint. | */
+	MAV_ROI_LOCATION=3, /* Point toward fixed location. | */
+	MAV_ROI_TARGET=4, /* Point toward of given id. | */
+	MAV_ROI_ENUM_END=5, /*  | */
+};
+#endif
+
+// MESSAGE DEFINITIONS
+#include "./mavlink_msg_heartbeat.h"
+#include "./mavlink_msg_boot.h"
+#include "./mavlink_msg_system_time.h"
+#include "./mavlink_msg_ping.h"
+#include "./mavlink_msg_system_time_utc.h"
+#include "./mavlink_msg_change_operator_control.h"
+#include "./mavlink_msg_change_operator_control_ack.h"
+#include "./mavlink_msg_auth_key.h"
+#include "./mavlink_msg_action_ack.h"
+#include "./mavlink_msg_action.h"
+#include "./mavlink_msg_set_mode.h"
+#include "./mavlink_msg_set_nav_mode.h"
+#include "./mavlink_msg_param_request_read.h"
+#include "./mavlink_msg_param_request_list.h"
+#include "./mavlink_msg_param_value.h"
+#include "./mavlink_msg_param_set.h"
+#include "./mavlink_msg_gps_raw_int.h"
+#include "./mavlink_msg_scaled_imu.h"
+#include "./mavlink_msg_gps_status.h"
+#include "./mavlink_msg_raw_imu.h"
+#include "./mavlink_msg_raw_pressure.h"
+#include "./mavlink_msg_scaled_pressure.h"
+#include "./mavlink_msg_attitude.h"
+#include "./mavlink_msg_local_position.h"
+#include "./mavlink_msg_global_position.h"
+#include "./mavlink_msg_gps_raw.h"
+#include "./mavlink_msg_sys_status.h"
+#include "./mavlink_msg_rc_channels_raw.h"
+#include "./mavlink_msg_rc_channels_scaled.h"
+#include "./mavlink_msg_servo_output_raw.h"
+#include "./mavlink_msg_waypoint.h"
+#include "./mavlink_msg_waypoint_request.h"
+#include "./mavlink_msg_waypoint_set_current.h"
+#include "./mavlink_msg_waypoint_current.h"
+#include "./mavlink_msg_waypoint_request_list.h"
+#include "./mavlink_msg_waypoint_count.h"
+#include "./mavlink_msg_waypoint_clear_all.h"
+#include "./mavlink_msg_waypoint_reached.h"
+#include "./mavlink_msg_waypoint_ack.h"
+#include "./mavlink_msg_gps_set_global_origin.h"
+#include "./mavlink_msg_gps_local_origin_set.h"
+#include "./mavlink_msg_local_position_setpoint_set.h"
+#include "./mavlink_msg_local_position_setpoint.h"
+#include "./mavlink_msg_control_status.h"
+#include "./mavlink_msg_safety_set_allowed_area.h"
+#include "./mavlink_msg_safety_allowed_area.h"
+#include "./mavlink_msg_set_roll_pitch_yaw_thrust.h"
+#include "./mavlink_msg_set_roll_pitch_yaw_speed_thrust.h"
+#include "./mavlink_msg_roll_pitch_yaw_thrust_setpoint.h"
+#include "./mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h"
+#include "./mavlink_msg_nav_controller_output.h"
+#include "./mavlink_msg_position_target.h"
+#include "./mavlink_msg_state_correction.h"
+#include "./mavlink_msg_set_altitude.h"
+#include "./mavlink_msg_request_data_stream.h"
+#include "./mavlink_msg_hil_state.h"
+#include "./mavlink_msg_hil_controls.h"
+#include "./mavlink_msg_manual_control.h"
+#include "./mavlink_msg_rc_channels_override.h"
+#include "./mavlink_msg_global_position_int.h"
+#include "./mavlink_msg_vfr_hud.h"
+#include "./mavlink_msg_command.h"
+#include "./mavlink_msg_command_ack.h"
+#include "./mavlink_msg_optical_flow.h"
+#include "./mavlink_msg_object_detection_event.h"
+#include "./mavlink_msg_debug_vect.h"
+#include "./mavlink_msg_named_value_float.h"
+#include "./mavlink_msg_named_value_int.h"
+#include "./mavlink_msg_statustext.h"
+#include "./mavlink_msg_debug.h"
+
+#ifdef __cplusplus
+}
+#endif // __cplusplus
+#endif // COMMON_H
diff --git a/libraries/GCS_MAVLink/include/common/mavlink.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink.h
similarity index 100%
rename from libraries/GCS_MAVLink/include/common/mavlink.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink.h
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_action.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_action.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_action.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_action.h
index a92f3e0052634f8d67d3aa02d7b39f4913326dd7..ada9aa7a2967d8c2ee64eb114b6d5fa3c8add3f4 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_action.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_action.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_action_pack(uint8_t system_id, uint8_t compon
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_uint8_t(buf, 2, action);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_action_t packet;
 	packet.target = target;
 	packet.target_component = target_component;
 	packet.action = action;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ACTION;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_action_pack_chan(uint8_t system_id, uint8_t c
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_uint8_t(buf, 2, action);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_action_t packet;
 	packet.target = target;
 	packet.target_component = target_component;
 	packet.action = action;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ACTION;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_action_ack.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_action_ack.h
similarity index 95%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_action_ack.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_action_ack.h
index b7fb3256db1f0e64dd089707dd02fb795b1927e6..a87b35b5999f3116459f6ef344bcd49e9f284cd6 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_action_ack.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_action_ack.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_action_ack_pack(uint8_t system_id, uint8_t co
 	_mav_put_uint8_t(buf, 0, action);
 	_mav_put_uint8_t(buf, 1, result);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_action_ack_t packet;
 	packet.action = action;
 	packet.result = result;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ACTION_ACK;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_action_ack_pack_chan(uint8_t system_id, uint8
 	_mav_put_uint8_t(buf, 0, action);
 	_mav_put_uint8_t(buf, 1, result);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_action_ack_t packet;
 	packet.action = action;
 	packet.result = result;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ACTION_ACK;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_attitude.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_attitude.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_attitude.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_attitude.h
index d3e3cb3dc274592b9a51a4d0b581e862c413c4d5..188f1eb0ff0ead3cc7b749c4a01bab59d2f5a3b9 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_attitude.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_attitude.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_attitude_pack(uint8_t system_id, uint8_t comp
 	_mav_put_float(buf, 24, pitchspeed);
 	_mav_put_float(buf, 28, yawspeed);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_attitude_t packet;
 	packet.usec = usec;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_attitude_pack(uint8_t system_id, uint8_t comp
 	packet.pitchspeed = pitchspeed;
 	packet.yawspeed = yawspeed;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ATTITUDE;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_attitude_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_float(buf, 24, pitchspeed);
 	_mav_put_float(buf, 28, yawspeed);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_attitude_t packet;
 	packet.usec = usec;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_attitude_pack_chan(uint8_t system_id, uint8_t
 	packet.pitchspeed = pitchspeed;
 	packet.yawspeed = yawspeed;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ATTITUDE;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_auth_key.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_auth_key.h
similarity index 94%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_auth_key.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_auth_key.h
index c563fb7828b9c433a7a0838a0a1a3aa82626fa3a..c451444eacf9c305c00a823c7ea64c291866889f 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_auth_key.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_auth_key.h
@@ -36,12 +36,12 @@ static inline uint16_t mavlink_msg_auth_key_pack(uint8_t system_id, uint8_t comp
 	char buf[32];
 
 	_mav_put_char_array(buf, 0, key, 32);
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_auth_key_t packet;
 
 	mav_array_memcpy(packet.key, key, sizeof(char)*32);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_AUTH_KEY;
@@ -65,12 +65,12 @@ static inline uint16_t mavlink_msg_auth_key_pack_chan(uint8_t system_id, uint8_t
 	char buf[32];
 
 	_mav_put_char_array(buf, 0, key, 32);
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_auth_key_t packet;
 
 	mav_array_memcpy(packet.key, key, sizeof(char)*32);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_AUTH_KEY;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_boot.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_boot.h
similarity index 94%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_boot.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_boot.h
index 7541cabef69febdfc9e183d83e29a01717d9e86b..570949bd568670061f912eca2c30125f122860df 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_boot.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_boot.h
@@ -36,12 +36,12 @@ static inline uint16_t mavlink_msg_boot_pack(uint8_t system_id, uint8_t componen
 	char buf[4];
 	_mav_put_uint32_t(buf, 0, version);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_boot_t packet;
 	packet.version = version;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_BOOT;
@@ -65,12 +65,12 @@ static inline uint16_t mavlink_msg_boot_pack_chan(uint8_t system_id, uint8_t com
 	char buf[4];
 	_mav_put_uint32_t(buf, 0, version);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_boot_t packet;
 	packet.version = version;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_BOOT;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_change_operator_control.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_change_operator_control.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_change_operator_control.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_change_operator_control.h
index 6292849bd064217308973ef288660e2ce7db2511..8fad932ea8d0beb944f3701e1702225eb8f66348 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_change_operator_control.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_change_operator_control.h
@@ -47,14 +47,14 @@ static inline uint16_t mavlink_msg_change_operator_control_pack(uint8_t system_i
 	_mav_put_uint8_t(buf, 1, control_request);
 	_mav_put_uint8_t(buf, 2, version);
 	_mav_put_char_array(buf, 3, passkey, 25);
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
 #else
 	mavlink_change_operator_control_t packet;
 	packet.target_system = target_system;
 	packet.control_request = control_request;
 	packet.version = version;
 	mav_array_memcpy(packet.passkey, passkey, sizeof(char)*25);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL;
@@ -83,14 +83,14 @@ static inline uint16_t mavlink_msg_change_operator_control_pack_chan(uint8_t sys
 	_mav_put_uint8_t(buf, 1, control_request);
 	_mav_put_uint8_t(buf, 2, version);
 	_mav_put_char_array(buf, 3, passkey, 25);
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
 #else
 	mavlink_change_operator_control_t packet;
 	packet.target_system = target_system;
 	packet.control_request = control_request;
 	packet.version = version;
 	mav_array_memcpy(packet.passkey, passkey, sizeof(char)*25);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_change_operator_control_ack.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_change_operator_control_ack.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_change_operator_control_ack.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_change_operator_control_ack.h
index a24c6f5a06071301cca3ecae6e41ccce9850bf80..e9e195bbb9b2f91c6d17d72e89056baa6556d979 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_change_operator_control_ack.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_change_operator_control_ack.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_change_operator_control_ack_pack(uint8_t syst
 	_mav_put_uint8_t(buf, 1, control_request);
 	_mav_put_uint8_t(buf, 2, ack);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_change_operator_control_ack_t packet;
 	packet.gcs_system_id = gcs_system_id;
 	packet.control_request = control_request;
 	packet.ack = ack;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_ACK;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_change_operator_control_ack_pack_chan(uint8_t
 	_mav_put_uint8_t(buf, 1, control_request);
 	_mav_put_uint8_t(buf, 2, ack);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_change_operator_control_ack_t packet;
 	packet.gcs_system_id = gcs_system_id;
 	packet.control_request = control_request;
 	packet.ack = ack;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_ACK;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_command.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_command.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_command.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_command.h
index a7221fa444a303b9c09ee4ce46da52425c480724..b5d44f8b2b47192304b498a9cbe0ecf2ab84ae0d 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_command.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_command.h
@@ -64,7 +64,7 @@ static inline uint16_t mavlink_msg_command_pack(uint8_t system_id, uint8_t compo
 	_mav_put_float(buf, 12, param3);
 	_mav_put_float(buf, 16, param4);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
 #else
 	mavlink_command_t packet;
 	packet.target_system = target_system;
@@ -76,7 +76,7 @@ static inline uint16_t mavlink_msg_command_pack(uint8_t system_id, uint8_t compo
 	packet.param3 = param3;
 	packet.param4 = param4;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_COMMAND;
@@ -114,7 +114,7 @@ static inline uint16_t mavlink_msg_command_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_float(buf, 12, param3);
 	_mav_put_float(buf, 16, param4);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
 #else
 	mavlink_command_t packet;
 	packet.target_system = target_system;
@@ -126,7 +126,7 @@ static inline uint16_t mavlink_msg_command_pack_chan(uint8_t system_id, uint8_t
 	packet.param3 = param3;
 	packet.param4 = param4;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_COMMAND;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_command_ack.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_command_ack.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_command_ack.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_command_ack.h
index 7fc8c86232d40256f8b59cbb54933a0d4ca36a9d..ee4c89dcfa9bd16871a77c368f8b3476d1145d05 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_command_ack.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_command_ack.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_command_ack_pack(uint8_t system_id, uint8_t c
 	_mav_put_float(buf, 0, command);
 	_mav_put_float(buf, 4, result);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 8);
 #else
 	mavlink_command_ack_t packet;
 	packet.command = command;
 	packet.result = result;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 8);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_COMMAND_ACK;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_command_ack_pack_chan(uint8_t system_id, uint
 	_mav_put_float(buf, 0, command);
 	_mav_put_float(buf, 4, result);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 8);
 #else
 	mavlink_command_ack_t packet;
 	packet.command = command;
 	packet.result = result;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 8);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_COMMAND_ACK;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_control_status.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_control_status.h
similarity index 98%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_control_status.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_control_status.h
index 617cf5ba98446f6d35037d724b1abde3326e9606..ebc1568cc138e660818cd62b7ae18aae7fcedd44 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_control_status.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_control_status.h
@@ -64,7 +64,7 @@ static inline uint16_t mavlink_msg_control_status_pack(uint8_t system_id, uint8_
 	_mav_put_uint8_t(buf, 6, control_pos_z);
 	_mav_put_uint8_t(buf, 7, control_pos_yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 8);
 #else
 	mavlink_control_status_t packet;
 	packet.position_fix = position_fix;
@@ -76,7 +76,7 @@ static inline uint16_t mavlink_msg_control_status_pack(uint8_t system_id, uint8_
 	packet.control_pos_z = control_pos_z;
 	packet.control_pos_yaw = control_pos_yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 8);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_CONTROL_STATUS;
@@ -114,7 +114,7 @@ static inline uint16_t mavlink_msg_control_status_pack_chan(uint8_t system_id, u
 	_mav_put_uint8_t(buf, 6, control_pos_z);
 	_mav_put_uint8_t(buf, 7, control_pos_yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 8);
 #else
 	mavlink_control_status_t packet;
 	packet.position_fix = position_fix;
@@ -126,7 +126,7 @@ static inline uint16_t mavlink_msg_control_status_pack_chan(uint8_t system_id, u
 	packet.control_pos_z = control_pos_z;
 	packet.control_pos_yaw = control_pos_yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 8);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_CONTROL_STATUS;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_debug.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_debug.h
similarity index 95%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_debug.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_debug.h
index 1f0788a3a47aeba79311d596cdfaf3a0e3db63f3..5a0fbdd710ee7564ba8e46b527a05d9bf9f52606 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_debug.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_debug.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_debug_pack(uint8_t system_id, uint8_t compone
 	_mav_put_uint8_t(buf, 0, ind);
 	_mav_put_float(buf, 1, value);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 5);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 5);
 #else
 	mavlink_debug_t packet;
 	packet.ind = ind;
 	packet.value = value;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 5);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 5);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DEBUG;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_debug_pack_chan(uint8_t system_id, uint8_t co
 	_mav_put_uint8_t(buf, 0, ind);
 	_mav_put_float(buf, 1, value);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 5);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 5);
 #else
 	mavlink_debug_t packet;
 	packet.ind = ind;
 	packet.value = value;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 5);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 5);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DEBUG;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_debug_vect.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_debug_vect.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_debug_vect.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_debug_vect.h
index 5a1a070997820a59a33e33f86ef31efee6f6647a..51895f3bad3557df630ea5c52e335e49c937f75a 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_debug_vect.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_debug_vect.h
@@ -51,7 +51,7 @@ static inline uint16_t mavlink_msg_debug_vect_pack(uint8_t system_id, uint8_t co
 	_mav_put_float(buf, 22, y);
 	_mav_put_float(buf, 26, z);
 	_mav_put_char_array(buf, 0, name, 10);
-        memcpy(_MAV_PAYLOAD(msg), buf, 30);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 30);
 #else
 	mavlink_debug_vect_t packet;
 	packet.usec = usec;
@@ -59,7 +59,7 @@ static inline uint16_t mavlink_msg_debug_vect_pack(uint8_t system_id, uint8_t co
 	packet.y = y;
 	packet.z = z;
 	mav_array_memcpy(packet.name, name, sizeof(char)*10);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 30);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 30);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DEBUG_VECT;
@@ -90,7 +90,7 @@ static inline uint16_t mavlink_msg_debug_vect_pack_chan(uint8_t system_id, uint8
 	_mav_put_float(buf, 22, y);
 	_mav_put_float(buf, 26, z);
 	_mav_put_char_array(buf, 0, name, 10);
-        memcpy(_MAV_PAYLOAD(msg), buf, 30);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 30);
 #else
 	mavlink_debug_vect_t packet;
 	packet.usec = usec;
@@ -98,7 +98,7 @@ static inline uint16_t mavlink_msg_debug_vect_pack_chan(uint8_t system_id, uint8
 	packet.y = y;
 	packet.z = z;
 	mav_array_memcpy(packet.name, name, sizeof(char)*10);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 30);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 30);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DEBUG_VECT;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_global_position.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_global_position.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_global_position.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_global_position.h
index d281646a56cc08086eec7f7c3e9fc02e4d35a64a..5e0b9fe81014fedc470b4066574b8fb20bf8e79a 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_global_position.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_global_position.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_global_position_pack(uint8_t system_id, uint8
 	_mav_put_float(buf, 24, vy);
 	_mav_put_float(buf, 28, vz);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_global_position_t packet;
 	packet.usec = usec;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_global_position_pack(uint8_t system_id, uint8
 	packet.vy = vy;
 	packet.vz = vz;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GLOBAL_POSITION;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_global_position_pack_chan(uint8_t system_id,
 	_mav_put_float(buf, 24, vy);
 	_mav_put_float(buf, 28, vz);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_global_position_t packet;
 	packet.usec = usec;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_global_position_pack_chan(uint8_t system_id,
 	packet.vy = vy;
 	packet.vz = vz;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GLOBAL_POSITION;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_global_position_int.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_global_position_int.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_global_position_int.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_global_position_int.h
index fa984daadf8da725bd8bacec515d4403afa3996b..859a500499960e9a38b1d01597329eec7b803a13 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_global_position_int.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_global_position_int.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_global_position_int_pack(uint8_t system_id, u
 	_mav_put_int16_t(buf, 14, vy);
 	_mav_put_int16_t(buf, 16, vz);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_global_position_int_t packet;
 	packet.lat = lat;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_global_position_int_pack(uint8_t system_id, u
 	packet.vy = vy;
 	packet.vz = vz;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GLOBAL_POSITION_INT;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_global_position_int_pack_chan(uint8_t system_
 	_mav_put_int16_t(buf, 14, vy);
 	_mav_put_int16_t(buf, 16, vz);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_global_position_int_t packet;
 	packet.lat = lat;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_global_position_int_pack_chan(uint8_t system_
 	packet.vy = vy;
 	packet.vz = vz;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GLOBAL_POSITION_INT;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_gps_local_origin_set.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_gps_local_origin_set.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_gps_local_origin_set.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_gps_local_origin_set.h
index 0e011483bd2c2dd01c0e19a4a32444cceb7d22c1..5faec2812c75c52b16b2eb0e1ff13a308b5bb9f3 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_gps_local_origin_set.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_gps_local_origin_set.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_gps_local_origin_set_pack(uint8_t system_id,
 	_mav_put_int32_t(buf, 4, longitude);
 	_mav_put_int32_t(buf, 8, altitude);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
 #else
 	mavlink_gps_local_origin_set_t packet;
 	packet.latitude = latitude;
 	packet.longitude = longitude;
 	packet.altitude = altitude;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GPS_LOCAL_ORIGIN_SET;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_gps_local_origin_set_pack_chan(uint8_t system
 	_mav_put_int32_t(buf, 4, longitude);
 	_mav_put_int32_t(buf, 8, altitude);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
 #else
 	mavlink_gps_local_origin_set_t packet;
 	packet.latitude = latitude;
 	packet.longitude = longitude;
 	packet.altitude = altitude;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GPS_LOCAL_ORIGIN_SET;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_gps_raw.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_gps_raw.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_gps_raw.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_gps_raw.h
index e2e0051498f23812e8b7794a1e56fe6d15648ca9..255cb27befbcd3a78a9c90b702a9345ab592f9fa 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_gps_raw.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_gps_raw.h
@@ -68,7 +68,7 @@ static inline uint16_t mavlink_msg_gps_raw_pack(uint8_t system_id, uint8_t compo
 	_mav_put_float(buf, 29, v);
 	_mav_put_float(buf, 33, hdg);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 37);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 37);
 #else
 	mavlink_gps_raw_t packet;
 	packet.usec = usec;
@@ -81,7 +81,7 @@ static inline uint16_t mavlink_msg_gps_raw_pack(uint8_t system_id, uint8_t compo
 	packet.v = v;
 	packet.hdg = hdg;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 37);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 37);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GPS_RAW;
@@ -121,7 +121,7 @@ static inline uint16_t mavlink_msg_gps_raw_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_float(buf, 29, v);
 	_mav_put_float(buf, 33, hdg);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 37);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 37);
 #else
 	mavlink_gps_raw_t packet;
 	packet.usec = usec;
@@ -134,7 +134,7 @@ static inline uint16_t mavlink_msg_gps_raw_pack_chan(uint8_t system_id, uint8_t
 	packet.v = v;
 	packet.hdg = hdg;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 37);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 37);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GPS_RAW;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_gps_raw_int.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_gps_raw_int.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_gps_raw_int.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_gps_raw_int.h
index 5f5b595601c4b3786bcce7d5d7f527e39a511785..f1e7a05e5d0a61ac6561b837d99caa15ecd6ce39 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_gps_raw_int.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_gps_raw_int.h
@@ -68,7 +68,7 @@ static inline uint16_t mavlink_msg_gps_raw_int_pack(uint8_t system_id, uint8_t c
 	_mav_put_float(buf, 29, v);
 	_mav_put_float(buf, 33, hdg);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 37);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 37);
 #else
 	mavlink_gps_raw_int_t packet;
 	packet.usec = usec;
@@ -81,7 +81,7 @@ static inline uint16_t mavlink_msg_gps_raw_int_pack(uint8_t system_id, uint8_t c
 	packet.v = v;
 	packet.hdg = hdg;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 37);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 37);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GPS_RAW_INT;
@@ -121,7 +121,7 @@ static inline uint16_t mavlink_msg_gps_raw_int_pack_chan(uint8_t system_id, uint
 	_mav_put_float(buf, 29, v);
 	_mav_put_float(buf, 33, hdg);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 37);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 37);
 #else
 	mavlink_gps_raw_int_t packet;
 	packet.usec = usec;
@@ -134,7 +134,7 @@ static inline uint16_t mavlink_msg_gps_raw_int_pack_chan(uint8_t system_id, uint
 	packet.v = v;
 	packet.hdg = hdg;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 37);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 37);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GPS_RAW_INT;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_gps_set_global_origin.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_gps_set_global_origin.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_gps_set_global_origin.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_gps_set_global_origin.h
index 664f78164675cf62f680e0d1120f352ebf9c03d9..cdd1f242a7ec917e1073443b9ff321885b9d9dcd 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_gps_set_global_origin.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_gps_set_global_origin.h
@@ -52,7 +52,7 @@ static inline uint16_t mavlink_msg_gps_set_global_origin_pack(uint8_t system_id,
 	_mav_put_int32_t(buf, 6, longitude);
 	_mav_put_int32_t(buf, 10, altitude);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
 #else
 	mavlink_gps_set_global_origin_t packet;
 	packet.target_system = target_system;
@@ -61,7 +61,7 @@ static inline uint16_t mavlink_msg_gps_set_global_origin_pack(uint8_t system_id,
 	packet.longitude = longitude;
 	packet.altitude = altitude;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GPS_SET_GLOBAL_ORIGIN;
@@ -93,7 +93,7 @@ static inline uint16_t mavlink_msg_gps_set_global_origin_pack_chan(uint8_t syste
 	_mav_put_int32_t(buf, 6, longitude);
 	_mav_put_int32_t(buf, 10, altitude);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
 #else
 	mavlink_gps_set_global_origin_t packet;
 	packet.target_system = target_system;
@@ -102,7 +102,7 @@ static inline uint16_t mavlink_msg_gps_set_global_origin_pack_chan(uint8_t syste
 	packet.longitude = longitude;
 	packet.altitude = altitude;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GPS_SET_GLOBAL_ORIGIN;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_gps_status.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_gps_status.h
similarity index 98%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_gps_status.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_gps_status.h
index c0ed8c1a78a025fb6865d5d8fd5a33c0c0b6e445..e13ffe38295ffd4eeb63f53733c7fc970f54a58e 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_gps_status.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_gps_status.h
@@ -59,7 +59,7 @@ static inline uint16_t mavlink_msg_gps_status_pack(uint8_t system_id, uint8_t co
 	_mav_put_int8_t_array(buf, 41, satellite_elevation, 20);
 	_mav_put_int8_t_array(buf, 61, satellite_azimuth, 20);
 	_mav_put_int8_t_array(buf, 81, satellite_snr, 20);
-        memcpy(_MAV_PAYLOAD(msg), buf, 101);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 101);
 #else
 	mavlink_gps_status_t packet;
 	packet.satellites_visible = satellites_visible;
@@ -68,7 +68,7 @@ static inline uint16_t mavlink_msg_gps_status_pack(uint8_t system_id, uint8_t co
 	mav_array_memcpy(packet.satellite_elevation, satellite_elevation, sizeof(int8_t)*20);
 	mav_array_memcpy(packet.satellite_azimuth, satellite_azimuth, sizeof(int8_t)*20);
 	mav_array_memcpy(packet.satellite_snr, satellite_snr, sizeof(int8_t)*20);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 101);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 101);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GPS_STATUS;
@@ -101,7 +101,7 @@ static inline uint16_t mavlink_msg_gps_status_pack_chan(uint8_t system_id, uint8
 	_mav_put_int8_t_array(buf, 41, satellite_elevation, 20);
 	_mav_put_int8_t_array(buf, 61, satellite_azimuth, 20);
 	_mav_put_int8_t_array(buf, 81, satellite_snr, 20);
-        memcpy(_MAV_PAYLOAD(msg), buf, 101);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 101);
 #else
 	mavlink_gps_status_t packet;
 	packet.satellites_visible = satellites_visible;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_gps_status_pack_chan(uint8_t system_id, uint8
 	mav_array_memcpy(packet.satellite_elevation, satellite_elevation, sizeof(int8_t)*20);
 	mav_array_memcpy(packet.satellite_azimuth, satellite_azimuth, sizeof(int8_t)*20);
 	mav_array_memcpy(packet.satellite_snr, satellite_snr, sizeof(int8_t)*20);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 101);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 101);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GPS_STATUS;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_heartbeat.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_heartbeat.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_heartbeat.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_heartbeat.h
index 86bf637b1b439cdb77079fa657b21426be213889..aad90d29f3dd7f2b6970ad4cc9b724c257b33bfd 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_heartbeat.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_heartbeat.h
@@ -43,14 +43,14 @@ static inline uint16_t mavlink_msg_heartbeat_pack(uint8_t system_id, uint8_t com
 	_mav_put_uint8_t(buf, 1, autopilot);
 	_mav_put_uint8_t(buf, 2, 2);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_heartbeat_t packet;
 	packet.type = type;
 	packet.autopilot = autopilot;
 	packet.mavlink_version = 2;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HEARTBEAT;
@@ -77,14 +77,14 @@ static inline uint16_t mavlink_msg_heartbeat_pack_chan(uint8_t system_id, uint8_
 	_mav_put_uint8_t(buf, 1, autopilot);
 	_mav_put_uint8_t(buf, 2, 2);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_heartbeat_t packet;
 	packet.type = type;
 	packet.autopilot = autopilot;
 	packet.mavlink_version = 2;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HEARTBEAT;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_hil_controls.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_hil_controls.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_hil_controls.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_hil_controls.h
index 302b23d41c04fcb8ed8bce55bd4041a02462d90f..231c6f216be3e41ae6ce87e732525a221becf4e4 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_hil_controls.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_hil_controls.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_hil_controls_pack(uint8_t system_id, uint8_t
 	_mav_put_uint8_t(buf, 24, mode);
 	_mav_put_uint8_t(buf, 25, nav_mode);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 26);
 #else
 	mavlink_hil_controls_t packet;
 	packet.time_us = time_us;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_hil_controls_pack(uint8_t system_id, uint8_t
 	packet.mode = mode;
 	packet.nav_mode = nav_mode;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 26);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HIL_CONTROLS;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_hil_controls_pack_chan(uint8_t system_id, uin
 	_mav_put_uint8_t(buf, 24, mode);
 	_mav_put_uint8_t(buf, 25, nav_mode);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 26);
 #else
 	mavlink_hil_controls_t packet;
 	packet.time_us = time_us;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_hil_controls_pack_chan(uint8_t system_id, uin
 	packet.mode = mode;
 	packet.nav_mode = nav_mode;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 26);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HIL_CONTROLS;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_hil_state.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_hil_state.h
similarity index 98%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_hil_state.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_hil_state.h
index 53c3a8efeb7b5d8519fa8706fe550cbc7aa37215..6692c22580fa8dfc4d1b6daff4646518fdd7e35a 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_hil_state.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_hil_state.h
@@ -96,7 +96,7 @@ static inline uint16_t mavlink_msg_hil_state_pack(uint8_t system_id, uint8_t com
 	_mav_put_int16_t(buf, 52, yacc);
 	_mav_put_int16_t(buf, 54, zacc);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 56);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 56);
 #else
 	mavlink_hil_state_t packet;
 	packet.usec = usec;
@@ -116,7 +116,7 @@ static inline uint16_t mavlink_msg_hil_state_pack(uint8_t system_id, uint8_t com
 	packet.yacc = yacc;
 	packet.zacc = zacc;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 56);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 56);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HIL_STATE;
@@ -170,7 +170,7 @@ static inline uint16_t mavlink_msg_hil_state_pack_chan(uint8_t system_id, uint8_
 	_mav_put_int16_t(buf, 52, yacc);
 	_mav_put_int16_t(buf, 54, zacc);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 56);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 56);
 #else
 	mavlink_hil_state_t packet;
 	packet.usec = usec;
@@ -190,7 +190,7 @@ static inline uint16_t mavlink_msg_hil_state_pack_chan(uint8_t system_id, uint8_
 	packet.yacc = yacc;
 	packet.zacc = zacc;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 56);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 56);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HIL_STATE;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_local_position.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_local_position.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_local_position.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_local_position.h
index fca313b8e92cceeca8acfd1484ca5a683ae96f63..121fb3af649ebd7ef72331c1e35bf6bbc268ceaa 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_local_position.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_local_position.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_local_position_pack(uint8_t system_id, uint8_
 	_mav_put_float(buf, 24, vy);
 	_mav_put_float(buf, 28, vz);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_local_position_t packet;
 	packet.usec = usec;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_local_position_pack(uint8_t system_id, uint8_
 	packet.vy = vy;
 	packet.vz = vz;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_LOCAL_POSITION;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_local_position_pack_chan(uint8_t system_id, u
 	_mav_put_float(buf, 24, vy);
 	_mav_put_float(buf, 28, vz);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_local_position_t packet;
 	packet.usec = usec;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_local_position_pack_chan(uint8_t system_id, u
 	packet.vy = vy;
 	packet.vz = vz;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_LOCAL_POSITION;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_local_position_setpoint.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_local_position_setpoint.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_local_position_setpoint.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_local_position_setpoint.h
index 08c8e35eb26a49d3554c591850ad545a7b24ddd5..2e6178d96e9b92505a3da761c89da02e7607ba03 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_local_position_setpoint.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_local_position_setpoint.h
@@ -48,7 +48,7 @@ static inline uint16_t mavlink_msg_local_position_setpoint_pack(uint8_t system_i
 	_mav_put_float(buf, 8, z);
 	_mav_put_float(buf, 12, yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 16);
 #else
 	mavlink_local_position_setpoint_t packet;
 	packet.x = x;
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_local_position_setpoint_pack(uint8_t system_i
 	packet.z = z;
 	packet.yaw = yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 16);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_local_position_setpoint_pack_chan(uint8_t sys
 	_mav_put_float(buf, 8, z);
 	_mav_put_float(buf, 12, yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 16);
 #else
 	mavlink_local_position_setpoint_t packet;
 	packet.x = x;
@@ -94,7 +94,7 @@ static inline uint16_t mavlink_msg_local_position_setpoint_pack_chan(uint8_t sys
 	packet.z = z;
 	packet.yaw = yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 16);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_local_position_setpoint_set.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_local_position_setpoint_set.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_local_position_setpoint_set.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_local_position_setpoint_set.h
index de3aee949813dabd21c148b4a70f106b4c330370..e676c28329685f8d816ceed884ba6da98f776bbb 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_local_position_setpoint_set.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_local_position_setpoint_set.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_local_position_setpoint_set_pack(uint8_t syst
 	_mav_put_float(buf, 10, z);
 	_mav_put_float(buf, 14, yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_local_position_setpoint_set_t packet;
 	packet.target_system = target_system;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_local_position_setpoint_set_pack(uint8_t syst
 	packet.z = z;
 	packet.yaw = yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT_SET;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_local_position_setpoint_set_pack_chan(uint8_t
 	_mav_put_float(buf, 10, z);
 	_mav_put_float(buf, 14, yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_local_position_setpoint_set_t packet;
 	packet.target_system = target_system;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_local_position_setpoint_set_pack_chan(uint8_t
 	packet.z = z;
 	packet.yaw = yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT_SET;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_manual_control.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_manual_control.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_manual_control.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_manual_control.h
index 09db3d9216f3cca07e5e9401e60906ed88750094..26b70ce4aecca0d3459b13eb981820ed90ba45d2 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_manual_control.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_manual_control.h
@@ -68,7 +68,7 @@ static inline uint16_t mavlink_msg_manual_control_pack(uint8_t system_id, uint8_
 	_mav_put_uint8_t(buf, 19, yaw_manual);
 	_mav_put_uint8_t(buf, 20, thrust_manual);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 21);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 21);
 #else
 	mavlink_manual_control_t packet;
 	packet.target = target;
@@ -81,7 +81,7 @@ static inline uint16_t mavlink_msg_manual_control_pack(uint8_t system_id, uint8_
 	packet.yaw_manual = yaw_manual;
 	packet.thrust_manual = thrust_manual;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 21);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 21);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MANUAL_CONTROL;
@@ -121,7 +121,7 @@ static inline uint16_t mavlink_msg_manual_control_pack_chan(uint8_t system_id, u
 	_mav_put_uint8_t(buf, 19, yaw_manual);
 	_mav_put_uint8_t(buf, 20, thrust_manual);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 21);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 21);
 #else
 	mavlink_manual_control_t packet;
 	packet.target = target;
@@ -134,7 +134,7 @@ static inline uint16_t mavlink_msg_manual_control_pack_chan(uint8_t system_id, u
 	packet.yaw_manual = yaw_manual;
 	packet.thrust_manual = thrust_manual;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 21);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 21);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MANUAL_CONTROL;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_named_value_float.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_named_value_float.h
similarity index 95%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_named_value_float.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_named_value_float.h
index 7b41755d21a9014854af77b90847740f117fd45e..5cf76e372e5f059d9364f7ca875fc32612a950a9 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_named_value_float.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_named_value_float.h
@@ -39,12 +39,12 @@ static inline uint16_t mavlink_msg_named_value_float_pack(uint8_t system_id, uin
 	char buf[14];
 	_mav_put_float(buf, 10, value);
 	_mav_put_char_array(buf, 0, name, 10);
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
 #else
 	mavlink_named_value_float_t packet;
 	packet.value = value;
 	mav_array_memcpy(packet.name, name, sizeof(char)*10);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_NAMED_VALUE_FLOAT;
@@ -69,12 +69,12 @@ static inline uint16_t mavlink_msg_named_value_float_pack_chan(uint8_t system_id
 	char buf[14];
 	_mav_put_float(buf, 10, value);
 	_mav_put_char_array(buf, 0, name, 10);
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
 #else
 	mavlink_named_value_float_t packet;
 	packet.value = value;
 	mav_array_memcpy(packet.name, name, sizeof(char)*10);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_NAMED_VALUE_FLOAT;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_named_value_int.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_named_value_int.h
similarity index 95%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_named_value_int.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_named_value_int.h
index a484e6e1f119ebabbc106f3ab2ace9f473b4512b..93f0911aa85191ac1c9d8a10a61f894128081515 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_named_value_int.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_named_value_int.h
@@ -39,12 +39,12 @@ static inline uint16_t mavlink_msg_named_value_int_pack(uint8_t system_id, uint8
 	char buf[14];
 	_mav_put_int32_t(buf, 10, value);
 	_mav_put_char_array(buf, 0, name, 10);
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
 #else
 	mavlink_named_value_int_t packet;
 	packet.value = value;
 	mav_array_memcpy(packet.name, name, sizeof(char)*10);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_NAMED_VALUE_INT;
@@ -69,12 +69,12 @@ static inline uint16_t mavlink_msg_named_value_int_pack_chan(uint8_t system_id,
 	char buf[14];
 	_mav_put_int32_t(buf, 10, value);
 	_mav_put_char_array(buf, 0, name, 10);
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
 #else
 	mavlink_named_value_int_t packet;
 	packet.value = value;
 	mav_array_memcpy(packet.name, name, sizeof(char)*10);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_NAMED_VALUE_INT;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_nav_controller_output.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_nav_controller_output.h
similarity index 98%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_nav_controller_output.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_nav_controller_output.h
index 8322c8fabbc6339e0238de8fd45b2c9279d11941..64a4a7fb4ef34a40d3c172728dbff30a082bb116 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_nav_controller_output.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_nav_controller_output.h
@@ -64,7 +64,7 @@ static inline uint16_t mavlink_msg_nav_controller_output_pack(uint8_t system_id,
 	_mav_put_float(buf, 18, aspd_error);
 	_mav_put_float(buf, 22, xtrack_error);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 26);
 #else
 	mavlink_nav_controller_output_t packet;
 	packet.nav_roll = nav_roll;
@@ -76,7 +76,7 @@ static inline uint16_t mavlink_msg_nav_controller_output_pack(uint8_t system_id,
 	packet.aspd_error = aspd_error;
 	packet.xtrack_error = xtrack_error;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 26);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT;
@@ -114,7 +114,7 @@ static inline uint16_t mavlink_msg_nav_controller_output_pack_chan(uint8_t syste
 	_mav_put_float(buf, 18, aspd_error);
 	_mav_put_float(buf, 22, xtrack_error);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 26);
 #else
 	mavlink_nav_controller_output_t packet;
 	packet.nav_roll = nav_roll;
@@ -126,7 +126,7 @@ static inline uint16_t mavlink_msg_nav_controller_output_pack_chan(uint8_t syste
 	packet.aspd_error = aspd_error;
 	packet.xtrack_error = xtrack_error;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 26);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_object_detection_event.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_object_detection_event.h
similarity index 98%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_object_detection_event.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_object_detection_event.h
index fc707cb7397b9bb0abc01022164daf8676e03e59..617eb50d4443c87e7d8203816dbfaf66d76df8d5 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_object_detection_event.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_object_detection_event.h
@@ -59,7 +59,7 @@ static inline uint16_t mavlink_msg_object_detection_event_pack(uint8_t system_id
 	_mav_put_float(buf, 28, bearing);
 	_mav_put_float(buf, 32, distance);
 	_mav_put_char_array(buf, 7, name, 20);
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 36);
 #else
 	mavlink_object_detection_event_t packet;
 	packet.time = time;
@@ -69,7 +69,7 @@ static inline uint16_t mavlink_msg_object_detection_event_pack(uint8_t system_id
 	packet.bearing = bearing;
 	packet.distance = distance;
 	mav_array_memcpy(packet.name, name, sizeof(char)*20);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 36);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_OBJECT_DETECTION_EVENT;
@@ -104,7 +104,7 @@ static inline uint16_t mavlink_msg_object_detection_event_pack_chan(uint8_t syst
 	_mav_put_float(buf, 28, bearing);
 	_mav_put_float(buf, 32, distance);
 	_mav_put_char_array(buf, 7, name, 20);
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 36);
 #else
 	mavlink_object_detection_event_t packet;
 	packet.time = time;
@@ -114,7 +114,7 @@ static inline uint16_t mavlink_msg_object_detection_event_pack_chan(uint8_t syst
 	packet.bearing = bearing;
 	packet.distance = distance;
 	mav_array_memcpy(packet.name, name, sizeof(char)*20);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 36);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_OBJECT_DETECTION_EVENT;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_optical_flow.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_optical_flow.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_optical_flow.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_optical_flow.h
index a4bfb18a7ca3208bb89689ae2b11e6f53b4cfae0..33067cc89188de491b5f37486112e707573aa132 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_optical_flow.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_optical_flow.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_optical_flow_pack(uint8_t system_id, uint8_t
 	_mav_put_uint8_t(buf, 13, quality);
 	_mav_put_float(buf, 14, ground_distance);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_optical_flow_t packet;
 	packet.time = time;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_optical_flow_pack(uint8_t system_id, uint8_t
 	packet.quality = quality;
 	packet.ground_distance = ground_distance;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_OPTICAL_FLOW;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_optical_flow_pack_chan(uint8_t system_id, uin
 	_mav_put_uint8_t(buf, 13, quality);
 	_mav_put_float(buf, 14, ground_distance);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_optical_flow_t packet;
 	packet.time = time;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_optical_flow_pack_chan(uint8_t system_id, uin
 	packet.quality = quality;
 	packet.ground_distance = ground_distance;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_OPTICAL_FLOW;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_param_request_list.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_param_request_list.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_param_request_list.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_param_request_list.h
index 123ac7977878d1fa70beeb30d22202e3c5c1df95..39e35915e11be841cfa8f8ba60586d97e5c26217 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_param_request_list.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_param_request_list.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_param_request_list_pack(uint8_t system_id, ui
 	_mav_put_uint8_t(buf, 0, target_system);
 	_mav_put_uint8_t(buf, 1, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_param_request_list_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PARAM_REQUEST_LIST;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_param_request_list_pack_chan(uint8_t system_i
 	_mav_put_uint8_t(buf, 0, target_system);
 	_mav_put_uint8_t(buf, 1, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_param_request_list_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PARAM_REQUEST_LIST;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_param_request_read.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_param_request_read.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_param_request_read.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_param_request_read.h
index d84ed5f03203279cf5884d254d415c0ace73e921..c02cb04492d5123d7c992c252cdae699c895b7f5 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_param_request_read.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_param_request_read.h
@@ -47,14 +47,14 @@ static inline uint16_t mavlink_msg_param_request_read_pack(uint8_t system_id, ui
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_int16_t(buf, 17, param_index);
 	_mav_put_int8_t_array(buf, 2, param_id, 15);
-        memcpy(_MAV_PAYLOAD(msg), buf, 19);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 19);
 #else
 	mavlink_param_request_read_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.param_index = param_index;
 	mav_array_memcpy(packet.param_id, param_id, sizeof(int8_t)*15);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 19);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 19);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PARAM_REQUEST_READ;
@@ -83,14 +83,14 @@ static inline uint16_t mavlink_msg_param_request_read_pack_chan(uint8_t system_i
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_int16_t(buf, 17, param_index);
 	_mav_put_int8_t_array(buf, 2, param_id, 15);
-        memcpy(_MAV_PAYLOAD(msg), buf, 19);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 19);
 #else
 	mavlink_param_request_read_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.param_index = param_index;
 	mav_array_memcpy(packet.param_id, param_id, sizeof(int8_t)*15);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 19);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 19);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PARAM_REQUEST_READ;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_param_set.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_param_set.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_param_set.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_param_set.h
index 2703b70765f9340797548b18214a879d050d10a0..e6648430f6ba71ec76d34e407028767257af4d6a 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_param_set.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_param_set.h
@@ -47,14 +47,14 @@ static inline uint16_t mavlink_msg_param_set_pack(uint8_t system_id, uint8_t com
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_float(buf, 17, param_value);
 	_mav_put_int8_t_array(buf, 2, param_id, 15);
-        memcpy(_MAV_PAYLOAD(msg), buf, 21);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 21);
 #else
 	mavlink_param_set_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.param_value = param_value;
 	mav_array_memcpy(packet.param_id, param_id, sizeof(int8_t)*15);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 21);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 21);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PARAM_SET;
@@ -83,14 +83,14 @@ static inline uint16_t mavlink_msg_param_set_pack_chan(uint8_t system_id, uint8_
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_float(buf, 17, param_value);
 	_mav_put_int8_t_array(buf, 2, param_id, 15);
-        memcpy(_MAV_PAYLOAD(msg), buf, 21);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 21);
 #else
 	mavlink_param_set_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.param_value = param_value;
 	mav_array_memcpy(packet.param_id, param_id, sizeof(int8_t)*15);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 21);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 21);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PARAM_SET;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_param_value.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_param_value.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_param_value.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_param_value.h
index 1ded094763ea8347320dfa88a9c5767e3f13006f..634fbb152777565102867005b838e157c69273b4 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_param_value.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_param_value.h
@@ -47,14 +47,14 @@ static inline uint16_t mavlink_msg_param_value_pack(uint8_t system_id, uint8_t c
 	_mav_put_uint16_t(buf, 19, param_count);
 	_mav_put_uint16_t(buf, 21, param_index);
 	_mav_put_int8_t_array(buf, 0, param_id, 15);
-        memcpy(_MAV_PAYLOAD(msg), buf, 23);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 23);
 #else
 	mavlink_param_value_t packet;
 	packet.param_value = param_value;
 	packet.param_count = param_count;
 	packet.param_index = param_index;
 	mav_array_memcpy(packet.param_id, param_id, sizeof(int8_t)*15);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 23);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 23);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PARAM_VALUE;
@@ -83,14 +83,14 @@ static inline uint16_t mavlink_msg_param_value_pack_chan(uint8_t system_id, uint
 	_mav_put_uint16_t(buf, 19, param_count);
 	_mav_put_uint16_t(buf, 21, param_index);
 	_mav_put_int8_t_array(buf, 0, param_id, 15);
-        memcpy(_MAV_PAYLOAD(msg), buf, 23);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 23);
 #else
 	mavlink_param_value_t packet;
 	packet.param_value = param_value;
 	packet.param_count = param_count;
 	packet.param_index = param_index;
 	mav_array_memcpy(packet.param_id, param_id, sizeof(int8_t)*15);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 23);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 23);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PARAM_VALUE;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_ping.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_ping.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_ping.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_ping.h
index c424221380df4fc5ef0b7b7175fcecc7a4ec317a..ad076fd9b5eb3dc29a54ef75d6113396b0eaf1ba 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_ping.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_ping.h
@@ -48,7 +48,7 @@ static inline uint16_t mavlink_msg_ping_pack(uint8_t system_id, uint8_t componen
 	_mav_put_uint8_t(buf, 5, target_component);
 	_mav_put_uint64_t(buf, 6, time);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
 #else
 	mavlink_ping_t packet;
 	packet.seq = seq;
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_ping_pack(uint8_t system_id, uint8_t componen
 	packet.target_component = target_component;
 	packet.time = time;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PING;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_ping_pack_chan(uint8_t system_id, uint8_t com
 	_mav_put_uint8_t(buf, 5, target_component);
 	_mav_put_uint64_t(buf, 6, time);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
 #else
 	mavlink_ping_t packet;
 	packet.seq = seq;
@@ -94,7 +94,7 @@ static inline uint16_t mavlink_msg_ping_pack_chan(uint8_t system_id, uint8_t com
 	packet.target_component = target_component;
 	packet.time = time;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PING;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_position_target.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_position_target.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_position_target.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_position_target.h
index 4d9cdc48067aa1d7518eb98421db41122350d32a..6cd7719fb27ca4f3943a17cde13da97df2744094 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_position_target.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_position_target.h
@@ -48,7 +48,7 @@ static inline uint16_t mavlink_msg_position_target_pack(uint8_t system_id, uint8
 	_mav_put_float(buf, 8, z);
 	_mav_put_float(buf, 12, yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 16);
 #else
 	mavlink_position_target_t packet;
 	packet.x = x;
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_position_target_pack(uint8_t system_id, uint8
 	packet.z = z;
 	packet.yaw = yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 16);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_POSITION_TARGET;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_position_target_pack_chan(uint8_t system_id,
 	_mav_put_float(buf, 8, z);
 	_mav_put_float(buf, 12, yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 16);
 #else
 	mavlink_position_target_t packet;
 	packet.x = x;
@@ -94,7 +94,7 @@ static inline uint16_t mavlink_msg_position_target_pack_chan(uint8_t system_id,
 	packet.z = z;
 	packet.yaw = yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 16);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_POSITION_TARGET;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_raw_imu.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_raw_imu.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_raw_imu.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_raw_imu.h
index a3a3500fde74490beb8985a1c774ea2b7deca812..c60945ae9fbd867177f1812427eb48773c0bd924 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_raw_imu.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_raw_imu.h
@@ -72,7 +72,7 @@ static inline uint16_t mavlink_msg_raw_imu_pack(uint8_t system_id, uint8_t compo
 	_mav_put_int16_t(buf, 22, ymag);
 	_mav_put_int16_t(buf, 24, zmag);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 26);
 #else
 	mavlink_raw_imu_t packet;
 	packet.usec = usec;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_raw_imu_pack(uint8_t system_id, uint8_t compo
 	packet.ymag = ymag;
 	packet.zmag = zmag;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 26);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RAW_IMU;
@@ -128,7 +128,7 @@ static inline uint16_t mavlink_msg_raw_imu_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_int16_t(buf, 22, ymag);
 	_mav_put_int16_t(buf, 24, zmag);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 26);
 #else
 	mavlink_raw_imu_t packet;
 	packet.usec = usec;
@@ -142,7 +142,7 @@ static inline uint16_t mavlink_msg_raw_imu_pack_chan(uint8_t system_id, uint8_t
 	packet.ymag = ymag;
 	packet.zmag = zmag;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 26);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RAW_IMU;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_raw_pressure.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_raw_pressure.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_raw_pressure.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_raw_pressure.h
index b56d3e622e547fd22f4c3211206edcd93eec5777..b493b7e9887c63bc4d32016aea8e59ac8295a4e2 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_raw_pressure.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_raw_pressure.h
@@ -52,7 +52,7 @@ static inline uint16_t mavlink_msg_raw_pressure_pack(uint8_t system_id, uint8_t
 	_mav_put_int16_t(buf, 12, press_diff2);
 	_mav_put_int16_t(buf, 14, temperature);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 16);
 #else
 	mavlink_raw_pressure_t packet;
 	packet.usec = usec;
@@ -61,7 +61,7 @@ static inline uint16_t mavlink_msg_raw_pressure_pack(uint8_t system_id, uint8_t
 	packet.press_diff2 = press_diff2;
 	packet.temperature = temperature;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 16);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RAW_PRESSURE;
@@ -93,7 +93,7 @@ static inline uint16_t mavlink_msg_raw_pressure_pack_chan(uint8_t system_id, uin
 	_mav_put_int16_t(buf, 12, press_diff2);
 	_mav_put_int16_t(buf, 14, temperature);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 16);
 #else
 	mavlink_raw_pressure_t packet;
 	packet.usec = usec;
@@ -102,7 +102,7 @@ static inline uint16_t mavlink_msg_raw_pressure_pack_chan(uint8_t system_id, uin
 	packet.press_diff2 = press_diff2;
 	packet.temperature = temperature;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 16);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RAW_PRESSURE;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_rc_channels_override.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_rc_channels_override.h
similarity index 98%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_rc_channels_override.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_rc_channels_override.h
index d163158f7f97807dff1ae9c377f2f36a65fe59dd..30e5a8f98e9e182c739354aee520d6be72049fc5 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_rc_channels_override.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_rc_channels_override.h
@@ -72,7 +72,7 @@ static inline uint16_t mavlink_msg_rc_channels_override_pack(uint8_t system_id,
 	_mav_put_uint16_t(buf, 14, chan7_raw);
 	_mav_put_uint16_t(buf, 16, chan8_raw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_rc_channels_override_t packet;
 	packet.target_system = target_system;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_rc_channels_override_pack(uint8_t system_id,
 	packet.chan7_raw = chan7_raw;
 	packet.chan8_raw = chan8_raw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE;
@@ -128,7 +128,7 @@ static inline uint16_t mavlink_msg_rc_channels_override_pack_chan(uint8_t system
 	_mav_put_uint16_t(buf, 14, chan7_raw);
 	_mav_put_uint16_t(buf, 16, chan8_raw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_rc_channels_override_t packet;
 	packet.target_system = target_system;
@@ -142,7 +142,7 @@ static inline uint16_t mavlink_msg_rc_channels_override_pack_chan(uint8_t system
 	packet.chan7_raw = chan7_raw;
 	packet.chan8_raw = chan8_raw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_rc_channels_raw.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_rc_channels_raw.h
similarity index 98%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_rc_channels_raw.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_rc_channels_raw.h
index 6df3485082aac610d2b89a3301fd924b4bebfc80..855f7cced300b663d8a8b292e4253290160c0437 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_rc_channels_raw.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_rc_channels_raw.h
@@ -68,7 +68,7 @@ static inline uint16_t mavlink_msg_rc_channels_raw_pack(uint8_t system_id, uint8
 	_mav_put_uint16_t(buf, 14, chan8_raw);
 	_mav_put_uint8_t(buf, 16, rssi);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 17);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 17);
 #else
 	mavlink_rc_channels_raw_t packet;
 	packet.chan1_raw = chan1_raw;
@@ -81,7 +81,7 @@ static inline uint16_t mavlink_msg_rc_channels_raw_pack(uint8_t system_id, uint8
 	packet.chan8_raw = chan8_raw;
 	packet.rssi = rssi;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 17);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 17);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RC_CHANNELS_RAW;
@@ -121,7 +121,7 @@ static inline uint16_t mavlink_msg_rc_channels_raw_pack_chan(uint8_t system_id,
 	_mav_put_uint16_t(buf, 14, chan8_raw);
 	_mav_put_uint8_t(buf, 16, rssi);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 17);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 17);
 #else
 	mavlink_rc_channels_raw_t packet;
 	packet.chan1_raw = chan1_raw;
@@ -134,7 +134,7 @@ static inline uint16_t mavlink_msg_rc_channels_raw_pack_chan(uint8_t system_id,
 	packet.chan8_raw = chan8_raw;
 	packet.rssi = rssi;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 17);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 17);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RC_CHANNELS_RAW;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_rc_channels_scaled.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_rc_channels_scaled.h
similarity index 98%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_rc_channels_scaled.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_rc_channels_scaled.h
index b178ad1731f18e909af5344045f46f968e0d14cd..49df14a7ac0a48d25dd70967904e00a05eb22719 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_rc_channels_scaled.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_rc_channels_scaled.h
@@ -68,7 +68,7 @@ static inline uint16_t mavlink_msg_rc_channels_scaled_pack(uint8_t system_id, ui
 	_mav_put_int16_t(buf, 14, chan8_scaled);
 	_mav_put_uint8_t(buf, 16, rssi);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 17);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 17);
 #else
 	mavlink_rc_channels_scaled_t packet;
 	packet.chan1_scaled = chan1_scaled;
@@ -81,7 +81,7 @@ static inline uint16_t mavlink_msg_rc_channels_scaled_pack(uint8_t system_id, ui
 	packet.chan8_scaled = chan8_scaled;
 	packet.rssi = rssi;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 17);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 17);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RC_CHANNELS_SCALED;
@@ -121,7 +121,7 @@ static inline uint16_t mavlink_msg_rc_channels_scaled_pack_chan(uint8_t system_i
 	_mav_put_int16_t(buf, 14, chan8_scaled);
 	_mav_put_uint8_t(buf, 16, rssi);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 17);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 17);
 #else
 	mavlink_rc_channels_scaled_t packet;
 	packet.chan1_scaled = chan1_scaled;
@@ -134,7 +134,7 @@ static inline uint16_t mavlink_msg_rc_channels_scaled_pack_chan(uint8_t system_i
 	packet.chan8_scaled = chan8_scaled;
 	packet.rssi = rssi;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 17);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 17);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RC_CHANNELS_SCALED;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_request_data_stream.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_request_data_stream.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_request_data_stream.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_request_data_stream.h
index 895897738cad4a87edee111f596a5694408c62c1..e80473aa11f9a8c96060b36d3b98cf2427bd52e2 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_request_data_stream.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_request_data_stream.h
@@ -52,7 +52,7 @@ static inline uint16_t mavlink_msg_request_data_stream_pack(uint8_t system_id, u
 	_mav_put_uint16_t(buf, 3, req_message_rate);
 	_mav_put_uint8_t(buf, 5, start_stop);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
 #else
 	mavlink_request_data_stream_t packet;
 	packet.target_system = target_system;
@@ -61,7 +61,7 @@ static inline uint16_t mavlink_msg_request_data_stream_pack(uint8_t system_id, u
 	packet.req_message_rate = req_message_rate;
 	packet.start_stop = start_stop;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_REQUEST_DATA_STREAM;
@@ -93,7 +93,7 @@ static inline uint16_t mavlink_msg_request_data_stream_pack_chan(uint8_t system_
 	_mav_put_uint16_t(buf, 3, req_message_rate);
 	_mav_put_uint8_t(buf, 5, start_stop);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
 #else
 	mavlink_request_data_stream_t packet;
 	packet.target_system = target_system;
@@ -102,7 +102,7 @@ static inline uint16_t mavlink_msg_request_data_stream_pack_chan(uint8_t system_
 	packet.req_message_rate = req_message_rate;
 	packet.start_stop = start_stop;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_REQUEST_DATA_STREAM;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h
index 4d0a87e2fda4ebffbe59de87dd525dce8f682f9f..b344f3aa27c983ddc498039170f1c1325b53c7e6 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h
@@ -52,7 +52,7 @@ static inline uint16_t mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint_pack(uin
 	_mav_put_float(buf, 16, yaw_speed);
 	_mav_put_float(buf, 20, thrust);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 24);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 24);
 #else
 	mavlink_roll_pitch_yaw_speed_thrust_setpoint_t packet;
 	packet.time_us = time_us;
@@ -61,7 +61,7 @@ static inline uint16_t mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint_pack(uin
 	packet.yaw_speed = yaw_speed;
 	packet.thrust = thrust;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 24);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 24);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT;
@@ -93,7 +93,7 @@ static inline uint16_t mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint_pack_cha
 	_mav_put_float(buf, 16, yaw_speed);
 	_mav_put_float(buf, 20, thrust);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 24);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 24);
 #else
 	mavlink_roll_pitch_yaw_speed_thrust_setpoint_t packet;
 	packet.time_us = time_us;
@@ -102,7 +102,7 @@ static inline uint16_t mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint_pack_cha
 	packet.yaw_speed = yaw_speed;
 	packet.thrust = thrust;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 24);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 24);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_roll_pitch_yaw_thrust_setpoint.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_roll_pitch_yaw_thrust_setpoint.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_roll_pitch_yaw_thrust_setpoint.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_roll_pitch_yaw_thrust_setpoint.h
index 7de8441ab0e03bd1324027935824aefcf2f9fa29..16155f134324abeebedc8f0e6c7628da2e8bf5ff 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_roll_pitch_yaw_thrust_setpoint.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_roll_pitch_yaw_thrust_setpoint.h
@@ -52,7 +52,7 @@ static inline uint16_t mavlink_msg_roll_pitch_yaw_thrust_setpoint_pack(uint8_t s
 	_mav_put_float(buf, 16, yaw);
 	_mav_put_float(buf, 20, thrust);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 24);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 24);
 #else
 	mavlink_roll_pitch_yaw_thrust_setpoint_t packet;
 	packet.time_us = time_us;
@@ -61,7 +61,7 @@ static inline uint16_t mavlink_msg_roll_pitch_yaw_thrust_setpoint_pack(uint8_t s
 	packet.yaw = yaw;
 	packet.thrust = thrust;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 24);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 24);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ROLL_PITCH_YAW_THRUST_SETPOINT;
@@ -93,7 +93,7 @@ static inline uint16_t mavlink_msg_roll_pitch_yaw_thrust_setpoint_pack_chan(uint
 	_mav_put_float(buf, 16, yaw);
 	_mav_put_float(buf, 20, thrust);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 24);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 24);
 #else
 	mavlink_roll_pitch_yaw_thrust_setpoint_t packet;
 	packet.time_us = time_us;
@@ -102,7 +102,7 @@ static inline uint16_t mavlink_msg_roll_pitch_yaw_thrust_setpoint_pack_chan(uint
 	packet.yaw = yaw;
 	packet.thrust = thrust;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 24);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 24);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ROLL_PITCH_YAW_THRUST_SETPOINT;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_safety_allowed_area.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_safety_allowed_area.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_safety_allowed_area.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_safety_allowed_area.h
index d76c204f7a151c203765911c0df99b3c44e65774..07b91fd0edbc750c775184fd0ae2350632632594 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_safety_allowed_area.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_safety_allowed_area.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_safety_allowed_area_pack(uint8_t system_id, u
 	_mav_put_float(buf, 17, p2y);
 	_mav_put_float(buf, 21, p2z);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 25);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 25);
 #else
 	mavlink_safety_allowed_area_t packet;
 	packet.frame = frame;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_safety_allowed_area_pack(uint8_t system_id, u
 	packet.p2y = p2y;
 	packet.p2z = p2z;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 25);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 25);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SAFETY_ALLOWED_AREA;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_safety_allowed_area_pack_chan(uint8_t system_
 	_mav_put_float(buf, 17, p2y);
 	_mav_put_float(buf, 21, p2z);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 25);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 25);
 #else
 	mavlink_safety_allowed_area_t packet;
 	packet.frame = frame;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_safety_allowed_area_pack_chan(uint8_t system_
 	packet.p2y = p2y;
 	packet.p2z = p2z;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 25);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 25);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SAFETY_ALLOWED_AREA;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_safety_set_allowed_area.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_safety_set_allowed_area.h
similarity index 98%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_safety_set_allowed_area.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_safety_set_allowed_area.h
index 8afdf6f13318085dccffa100177a149ae0fc89cd..3c122227a6335dc1cc7123e32e9a1040d6488708 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_safety_set_allowed_area.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_safety_set_allowed_area.h
@@ -68,7 +68,7 @@ static inline uint16_t mavlink_msg_safety_set_allowed_area_pack(uint8_t system_i
 	_mav_put_float(buf, 19, p2y);
 	_mav_put_float(buf, 23, p2z);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 27);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 27);
 #else
 	mavlink_safety_set_allowed_area_t packet;
 	packet.target_system = target_system;
@@ -81,7 +81,7 @@ static inline uint16_t mavlink_msg_safety_set_allowed_area_pack(uint8_t system_i
 	packet.p2y = p2y;
 	packet.p2z = p2z;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 27);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 27);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SAFETY_SET_ALLOWED_AREA;
@@ -121,7 +121,7 @@ static inline uint16_t mavlink_msg_safety_set_allowed_area_pack_chan(uint8_t sys
 	_mav_put_float(buf, 19, p2y);
 	_mav_put_float(buf, 23, p2z);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 27);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 27);
 #else
 	mavlink_safety_set_allowed_area_t packet;
 	packet.target_system = target_system;
@@ -134,7 +134,7 @@ static inline uint16_t mavlink_msg_safety_set_allowed_area_pack_chan(uint8_t sys
 	packet.p2y = p2y;
 	packet.p2z = p2z;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 27);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 27);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SAFETY_SET_ALLOWED_AREA;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_scaled_imu.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_scaled_imu.h
similarity index 98%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_scaled_imu.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_scaled_imu.h
index 7bec81d9d5c7e341ed972a2f6257ef596491f716..4315dac27566b0f7db869ed65da3aca5949f5f71 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_scaled_imu.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_scaled_imu.h
@@ -72,7 +72,7 @@ static inline uint16_t mavlink_msg_scaled_imu_pack(uint8_t system_id, uint8_t co
 	_mav_put_int16_t(buf, 22, ymag);
 	_mav_put_int16_t(buf, 24, zmag);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 26);
 #else
 	mavlink_scaled_imu_t packet;
 	packet.usec = usec;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_scaled_imu_pack(uint8_t system_id, uint8_t co
 	packet.ymag = ymag;
 	packet.zmag = zmag;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 26);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SCALED_IMU;
@@ -128,7 +128,7 @@ static inline uint16_t mavlink_msg_scaled_imu_pack_chan(uint8_t system_id, uint8
 	_mav_put_int16_t(buf, 22, ymag);
 	_mav_put_int16_t(buf, 24, zmag);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 26);
 #else
 	mavlink_scaled_imu_t packet;
 	packet.usec = usec;
@@ -142,7 +142,7 @@ static inline uint16_t mavlink_msg_scaled_imu_pack_chan(uint8_t system_id, uint8
 	packet.ymag = ymag;
 	packet.zmag = zmag;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 26);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SCALED_IMU;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_scaled_pressure.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_scaled_pressure.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_scaled_pressure.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_scaled_pressure.h
index 287c9a95b7b2ce45d43ef7c1c41e0c224826af0c..579f7f4ee350b4930b2cf94347f3601ca847b594 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_scaled_pressure.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_scaled_pressure.h
@@ -48,7 +48,7 @@ static inline uint16_t mavlink_msg_scaled_pressure_pack(uint8_t system_id, uint8
 	_mav_put_float(buf, 12, press_diff);
 	_mav_put_int16_t(buf, 16, temperature);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_scaled_pressure_t packet;
 	packet.usec = usec;
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_scaled_pressure_pack(uint8_t system_id, uint8
 	packet.press_diff = press_diff;
 	packet.temperature = temperature;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SCALED_PRESSURE;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_scaled_pressure_pack_chan(uint8_t system_id,
 	_mav_put_float(buf, 12, press_diff);
 	_mav_put_int16_t(buf, 16, temperature);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_scaled_pressure_t packet;
 	packet.usec = usec;
@@ -94,7 +94,7 @@ static inline uint16_t mavlink_msg_scaled_pressure_pack_chan(uint8_t system_id,
 	packet.press_diff = press_diff;
 	packet.temperature = temperature;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SCALED_PRESSURE;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_servo_output_raw.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_servo_output_raw.h
similarity index 98%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_servo_output_raw.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_servo_output_raw.h
index 3c2b52e906452aefb3095170b08b48cd3b95e497..b5be3318cc10de48a0484f8458b3a2d21c7af0a0 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_servo_output_raw.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_servo_output_raw.h
@@ -64,7 +64,7 @@ static inline uint16_t mavlink_msg_servo_output_raw_pack(uint8_t system_id, uint
 	_mav_put_uint16_t(buf, 12, servo7_raw);
 	_mav_put_uint16_t(buf, 14, servo8_raw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 16);
 #else
 	mavlink_servo_output_raw_t packet;
 	packet.servo1_raw = servo1_raw;
@@ -76,7 +76,7 @@ static inline uint16_t mavlink_msg_servo_output_raw_pack(uint8_t system_id, uint
 	packet.servo7_raw = servo7_raw;
 	packet.servo8_raw = servo8_raw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 16);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SERVO_OUTPUT_RAW;
@@ -114,7 +114,7 @@ static inline uint16_t mavlink_msg_servo_output_raw_pack_chan(uint8_t system_id,
 	_mav_put_uint16_t(buf, 12, servo7_raw);
 	_mav_put_uint16_t(buf, 14, servo8_raw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 16);
 #else
 	mavlink_servo_output_raw_t packet;
 	packet.servo1_raw = servo1_raw;
@@ -126,7 +126,7 @@ static inline uint16_t mavlink_msg_servo_output_raw_pack_chan(uint8_t system_id,
 	packet.servo7_raw = servo7_raw;
 	packet.servo8_raw = servo8_raw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 16);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SERVO_OUTPUT_RAW;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_set_altitude.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_set_altitude.h
similarity index 95%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_set_altitude.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_set_altitude.h
index 14398bc53e2ab1c47a73aaf5da7eafb7fc0b3a01..72cc5e7b0cb01cc271e42aa1e940e0a32d839422 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_set_altitude.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_set_altitude.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_set_altitude_pack(uint8_t system_id, uint8_t
 	_mav_put_uint8_t(buf, 0, target);
 	_mav_put_uint32_t(buf, 1, mode);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 5);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 5);
 #else
 	mavlink_set_altitude_t packet;
 	packet.target = target;
 	packet.mode = mode;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 5);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 5);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_ALTITUDE;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_set_altitude_pack_chan(uint8_t system_id, uin
 	_mav_put_uint8_t(buf, 0, target);
 	_mav_put_uint32_t(buf, 1, mode);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 5);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 5);
 #else
 	mavlink_set_altitude_t packet;
 	packet.target = target;
 	packet.mode = mode;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 5);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 5);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_ALTITUDE;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_set_mode.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_set_mode.h
similarity index 95%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_set_mode.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_set_mode.h
index 6630aea486317cfce13044a1117d2dc8cc49bfa3..8a3f20593dcbfdd9354688808ec8ceb9bf0c4cf5 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_set_mode.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_set_mode.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_set_mode_pack(uint8_t system_id, uint8_t comp
 	_mav_put_uint8_t(buf, 0, target);
 	_mav_put_uint8_t(buf, 1, mode);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_set_mode_t packet;
 	packet.target = target;
 	packet.mode = mode;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_MODE;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_set_mode_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_uint8_t(buf, 0, target);
 	_mav_put_uint8_t(buf, 1, mode);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_set_mode_t packet;
 	packet.target = target;
 	packet.mode = mode;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_MODE;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_set_nav_mode.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_set_nav_mode.h
similarity index 95%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_set_nav_mode.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_set_nav_mode.h
index fafb6ec7e5434cb910eb4a448751104fed4ca24b..02efa26b1988680cac543ac41260c7703f0acbfd 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_set_nav_mode.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_set_nav_mode.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_set_nav_mode_pack(uint8_t system_id, uint8_t
 	_mav_put_uint8_t(buf, 0, target);
 	_mav_put_uint8_t(buf, 1, nav_mode);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_set_nav_mode_t packet;
 	packet.target = target;
 	packet.nav_mode = nav_mode;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_NAV_MODE;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_set_nav_mode_pack_chan(uint8_t system_id, uin
 	_mav_put_uint8_t(buf, 0, target);
 	_mav_put_uint8_t(buf, 1, nav_mode);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_set_nav_mode_t packet;
 	packet.target = target;
 	packet.nav_mode = nav_mode;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_NAV_MODE;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_set_roll_pitch_yaw_speed_thrust.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_set_roll_pitch_yaw_speed_thrust.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_set_roll_pitch_yaw_speed_thrust.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_set_roll_pitch_yaw_speed_thrust.h
index d666d0cca67efb5f79a2fe2b67af4c0f724ecd5a..6a9c01215bb0752c017ca655310d941b45a654d1 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_set_roll_pitch_yaw_speed_thrust.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_set_roll_pitch_yaw_speed_thrust.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_set_roll_pitch_yaw_speed_thrust_pack(uint8_t
 	_mav_put_float(buf, 10, yaw_speed);
 	_mav_put_float(buf, 14, thrust);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_set_roll_pitch_yaw_speed_thrust_t packet;
 	packet.target_system = target_system;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_set_roll_pitch_yaw_speed_thrust_pack(uint8_t
 	packet.yaw_speed = yaw_speed;
 	packet.thrust = thrust;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_SPEED_THRUST;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_set_roll_pitch_yaw_speed_thrust_pack_chan(uin
 	_mav_put_float(buf, 10, yaw_speed);
 	_mav_put_float(buf, 14, thrust);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_set_roll_pitch_yaw_speed_thrust_t packet;
 	packet.target_system = target_system;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_set_roll_pitch_yaw_speed_thrust_pack_chan(uin
 	packet.yaw_speed = yaw_speed;
 	packet.thrust = thrust;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_SPEED_THRUST;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_set_roll_pitch_yaw_thrust.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_set_roll_pitch_yaw_thrust.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_set_roll_pitch_yaw_thrust.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_set_roll_pitch_yaw_thrust.h
index ad9425158e1da894b8d837cf478773525dd0fcdb..dad4f657dd671974050f9d934ea4c09847a976b3 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_set_roll_pitch_yaw_thrust.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_set_roll_pitch_yaw_thrust.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_set_roll_pitch_yaw_thrust_pack(uint8_t system
 	_mav_put_float(buf, 10, yaw);
 	_mav_put_float(buf, 14, thrust);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_set_roll_pitch_yaw_thrust_t packet;
 	packet.target_system = target_system;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_set_roll_pitch_yaw_thrust_pack(uint8_t system
 	packet.yaw = yaw;
 	packet.thrust = thrust;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_THRUST;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_set_roll_pitch_yaw_thrust_pack_chan(uint8_t s
 	_mav_put_float(buf, 10, yaw);
 	_mav_put_float(buf, 14, thrust);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_set_roll_pitch_yaw_thrust_t packet;
 	packet.target_system = target_system;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_set_roll_pitch_yaw_thrust_pack_chan(uint8_t s
 	packet.yaw = yaw;
 	packet.thrust = thrust;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_THRUST;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_state_correction.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_state_correction.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_state_correction.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_state_correction.h
index 9c9f6d9b8964ba0f85971dfe5dc9c130ea38133d..ddd785a2ac4609c1a25ccde3115ac32ebdaaaff4 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_state_correction.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_state_correction.h
@@ -68,7 +68,7 @@ static inline uint16_t mavlink_msg_state_correction_pack(uint8_t system_id, uint
 	_mav_put_float(buf, 28, vyErr);
 	_mav_put_float(buf, 32, vzErr);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 36);
 #else
 	mavlink_state_correction_t packet;
 	packet.xErr = xErr;
@@ -81,7 +81,7 @@ static inline uint16_t mavlink_msg_state_correction_pack(uint8_t system_id, uint
 	packet.vyErr = vyErr;
 	packet.vzErr = vzErr;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 36);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_STATE_CORRECTION;
@@ -121,7 +121,7 @@ static inline uint16_t mavlink_msg_state_correction_pack_chan(uint8_t system_id,
 	_mav_put_float(buf, 28, vyErr);
 	_mav_put_float(buf, 32, vzErr);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 36);
 #else
 	mavlink_state_correction_t packet;
 	packet.xErr = xErr;
@@ -134,7 +134,7 @@ static inline uint16_t mavlink_msg_state_correction_pack_chan(uint8_t system_id,
 	packet.vyErr = vyErr;
 	packet.vzErr = vzErr;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 36);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_STATE_CORRECTION;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_statustext.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_statustext.h
similarity index 95%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_statustext.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_statustext.h
index da6cd7a18c675b0e619f14388370adc954aa0e1f..c65f629e991d317273ab95b832e1730cd1f08f45 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_statustext.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_statustext.h
@@ -39,12 +39,12 @@ static inline uint16_t mavlink_msg_statustext_pack(uint8_t system_id, uint8_t co
 	char buf[51];
 	_mav_put_uint8_t(buf, 0, severity);
 	_mav_put_int8_t_array(buf, 1, text, 50);
-        memcpy(_MAV_PAYLOAD(msg), buf, 51);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 51);
 #else
 	mavlink_statustext_t packet;
 	packet.severity = severity;
 	mav_array_memcpy(packet.text, text, sizeof(int8_t)*50);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 51);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 51);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_STATUSTEXT;
@@ -69,12 +69,12 @@ static inline uint16_t mavlink_msg_statustext_pack_chan(uint8_t system_id, uint8
 	char buf[51];
 	_mav_put_uint8_t(buf, 0, severity);
 	_mav_put_int8_t_array(buf, 1, text, 50);
-        memcpy(_MAV_PAYLOAD(msg), buf, 51);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 51);
 #else
 	mavlink_statustext_t packet;
 	packet.severity = severity;
 	mav_array_memcpy(packet.text, text, sizeof(int8_t)*50);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 51);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 51);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_STATUSTEXT;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_sys_status.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_sys_status.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_sys_status.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_sys_status.h
index 9add0d069fa9416988faf4aac20b4f98693b729f..1217ea60e9cb282a8dc821d1759b8005a0d8a095 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_sys_status.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_sys_status.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_sys_status_pack(uint8_t system_id, uint8_t co
 	_mav_put_uint16_t(buf, 7, battery_remaining);
 	_mav_put_uint16_t(buf, 9, packet_drop);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 11);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 11);
 #else
 	mavlink_sys_status_t packet;
 	packet.mode = mode;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_sys_status_pack(uint8_t system_id, uint8_t co
 	packet.battery_remaining = battery_remaining;
 	packet.packet_drop = packet_drop;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 11);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 11);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SYS_STATUS;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_sys_status_pack_chan(uint8_t system_id, uint8
 	_mav_put_uint16_t(buf, 7, battery_remaining);
 	_mav_put_uint16_t(buf, 9, packet_drop);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 11);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 11);
 #else
 	mavlink_sys_status_t packet;
 	packet.mode = mode;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_sys_status_pack_chan(uint8_t system_id, uint8
 	packet.battery_remaining = battery_remaining;
 	packet.packet_drop = packet_drop;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 11);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 11);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SYS_STATUS;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_system_time.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_system_time.h
similarity index 95%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_system_time.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_system_time.h
index cf2b1f6fe9462bb655540d95f38f6cc4a1ceaefc..362586a70d7523d7704bf83320dd5696e294b72b 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_system_time.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_system_time.h
@@ -36,12 +36,12 @@ static inline uint16_t mavlink_msg_system_time_pack(uint8_t system_id, uint8_t c
 	char buf[8];
 	_mav_put_uint64_t(buf, 0, time_usec);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 8);
 #else
 	mavlink_system_time_t packet;
 	packet.time_usec = time_usec;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 8);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SYSTEM_TIME;
@@ -65,12 +65,12 @@ static inline uint16_t mavlink_msg_system_time_pack_chan(uint8_t system_id, uint
 	char buf[8];
 	_mav_put_uint64_t(buf, 0, time_usec);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 8);
 #else
 	mavlink_system_time_t packet;
 	packet.time_usec = time_usec;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 8);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SYSTEM_TIME;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_system_time_utc.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_system_time_utc.h
similarity index 95%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_system_time_utc.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_system_time_utc.h
index 70ebf56389d41fe6d98122b4f0caaa300bb152f6..5688435d53bcecf00640f4fec74622357a2c6962 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_system_time_utc.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_system_time_utc.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_system_time_utc_pack(uint8_t system_id, uint8
 	_mav_put_uint32_t(buf, 0, utc_date);
 	_mav_put_uint32_t(buf, 4, utc_time);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 8);
 #else
 	mavlink_system_time_utc_t packet;
 	packet.utc_date = utc_date;
 	packet.utc_time = utc_time;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 8);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SYSTEM_TIME_UTC;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_system_time_utc_pack_chan(uint8_t system_id,
 	_mav_put_uint32_t(buf, 0, utc_date);
 	_mav_put_uint32_t(buf, 4, utc_time);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 8);
 #else
 	mavlink_system_time_utc_t packet;
 	packet.utc_date = utc_date;
 	packet.utc_time = utc_time;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 8);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SYSTEM_TIME_UTC;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_vfr_hud.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_vfr_hud.h
similarity index 97%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_vfr_hud.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_vfr_hud.h
index 705d8d4db0a1789cf66bc3c1337d94ec50bde843..0f92de775e9fe459853d4c48df51861d861ff75d 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_vfr_hud.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_vfr_hud.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_vfr_hud_pack(uint8_t system_id, uint8_t compo
 	_mav_put_float(buf, 12, alt);
 	_mav_put_float(buf, 16, climb);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
 #else
 	mavlink_vfr_hud_t packet;
 	packet.airspeed = airspeed;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_vfr_hud_pack(uint8_t system_id, uint8_t compo
 	packet.alt = alt;
 	packet.climb = climb;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_VFR_HUD;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_vfr_hud_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_float(buf, 12, alt);
 	_mav_put_float(buf, 16, climb);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
 #else
 	mavlink_vfr_hud_t packet;
 	packet.airspeed = airspeed;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_vfr_hud_pack_chan(uint8_t system_id, uint8_t
 	packet.alt = alt;
 	packet.climb = climb;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_VFR_HUD;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint.h
similarity index 98%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint.h
index 27e89de1f7de68f09dc167b0f2819670a935c5bb..d9b21e3c94909ced74fbf4702409facb8b2763f1 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint.h
@@ -88,7 +88,7 @@ static inline uint16_t mavlink_msg_waypoint_pack(uint8_t system_id, uint8_t comp
 	_mav_put_float(buf, 28, y);
 	_mav_put_float(buf, 32, z);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 36);
 #else
 	mavlink_waypoint_t packet;
 	packet.target_system = target_system;
@@ -106,7 +106,7 @@ static inline uint16_t mavlink_msg_waypoint_pack(uint8_t system_id, uint8_t comp
 	packet.y = y;
 	packet.z = z;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 36);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT;
@@ -156,7 +156,7 @@ static inline uint16_t mavlink_msg_waypoint_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_float(buf, 28, y);
 	_mav_put_float(buf, 32, z);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 36);
 #else
 	mavlink_waypoint_t packet;
 	packet.target_system = target_system;
@@ -174,7 +174,7 @@ static inline uint16_t mavlink_msg_waypoint_pack_chan(uint8_t system_id, uint8_t
 	packet.y = y;
 	packet.z = z;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 36);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_ack.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_ack.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_ack.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_ack.h
index 2b36087189f0b0cd2ae98ac834ecbb6e3c53cd51..ddba2adf4cae24c711498a1e84917fca49076708 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_ack.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_ack.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_waypoint_ack_pack(uint8_t system_id, uint8_t
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_uint8_t(buf, 2, type);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_waypoint_ack_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.type = type;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_ACK;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_waypoint_ack_pack_chan(uint8_t system_id, uin
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_uint8_t(buf, 2, type);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_waypoint_ack_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.type = type;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_ACK;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_clear_all.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_clear_all.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_clear_all.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_clear_all.h
index bca8dcc1f4b25a9b857093a0cabe0f8d10cff5c8..8eab44b2676752ab9706096a07b54c3d55938c67 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_clear_all.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_clear_all.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_waypoint_clear_all_pack(uint8_t system_id, ui
 	_mav_put_uint8_t(buf, 0, target_system);
 	_mav_put_uint8_t(buf, 1, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_waypoint_clear_all_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_CLEAR_ALL;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_waypoint_clear_all_pack_chan(uint8_t system_i
 	_mav_put_uint8_t(buf, 0, target_system);
 	_mav_put_uint8_t(buf, 1, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_waypoint_clear_all_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_CLEAR_ALL;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_count.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_count.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_count.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_count.h
index 73c62f831dd971ecdcf7509bf7ad22e16cfdf1c5..af1dd382b6e44166882219bdb73fcdafec08a8aa 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_count.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_count.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_waypoint_count_pack(uint8_t system_id, uint8_
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_uint16_t(buf, 2, count);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_waypoint_count_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.count = count;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_COUNT;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_waypoint_count_pack_chan(uint8_t system_id, u
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_uint16_t(buf, 2, count);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_waypoint_count_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.count = count;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_COUNT;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_current.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_current.h
similarity index 94%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_current.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_current.h
index 411b867667c8f7731b96162bc83a0f7f9d0d194d..a7e4557d6e0d105605ff925936360f0644ea228f 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_current.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_current.h
@@ -36,12 +36,12 @@ static inline uint16_t mavlink_msg_waypoint_current_pack(uint8_t system_id, uint
 	char buf[2];
 	_mav_put_uint16_t(buf, 0, seq);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_waypoint_current_t packet;
 	packet.seq = seq;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_CURRENT;
@@ -65,12 +65,12 @@ static inline uint16_t mavlink_msg_waypoint_current_pack_chan(uint8_t system_id,
 	char buf[2];
 	_mav_put_uint16_t(buf, 0, seq);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_waypoint_current_t packet;
 	packet.seq = seq;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_CURRENT;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_reached.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_reached.h
similarity index 94%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_reached.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_reached.h
index 6f291c7095f4b0147bc30f889372bd921f89346f..d28dce1494c9cd56f5591e9bdf13741ea92e64c4 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_reached.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_reached.h
@@ -36,12 +36,12 @@ static inline uint16_t mavlink_msg_waypoint_reached_pack(uint8_t system_id, uint
 	char buf[2];
 	_mav_put_uint16_t(buf, 0, seq);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_waypoint_reached_t packet;
 	packet.seq = seq;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_REACHED;
@@ -65,12 +65,12 @@ static inline uint16_t mavlink_msg_waypoint_reached_pack_chan(uint8_t system_id,
 	char buf[2];
 	_mav_put_uint16_t(buf, 0, seq);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_waypoint_reached_t packet;
 	packet.seq = seq;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_REACHED;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_request.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_request.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_request.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_request.h
index e9d616ab1dd1d7f9686ce628041045711beb20b9..38167c0806907100afe37d8b7f98f31577963a6e 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_request.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_request.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_waypoint_request_pack(uint8_t system_id, uint
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_uint16_t(buf, 2, seq);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_waypoint_request_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.seq = seq;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_REQUEST;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_waypoint_request_pack_chan(uint8_t system_id,
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_uint16_t(buf, 2, seq);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_waypoint_request_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.seq = seq;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_REQUEST;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_request_list.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_request_list.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_request_list.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_request_list.h
index caeb62037505ae4f46590daec64f70c8cae335c9..ba21fbc82d679a5b4e34036b06ed9cdc9dd7895d 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_request_list.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_request_list.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_waypoint_request_list_pack(uint8_t system_id,
 	_mav_put_uint8_t(buf, 0, target_system);
 	_mav_put_uint8_t(buf, 1, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_waypoint_request_list_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_waypoint_request_list_pack_chan(uint8_t syste
 	_mav_put_uint8_t(buf, 0, target_system);
 	_mav_put_uint8_t(buf, 1, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_waypoint_request_list_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST;
diff --git a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_set_current.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_set_current.h
similarity index 96%
rename from libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_set_current.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_set_current.h
index 7a9fd614a4369dac0903706c0d2c7a8a69cc6ca3..f1ba68b456ef66173e981ded6a8822c56be9f405 100644
--- a/libraries/GCS_MAVLink/include/common/mavlink_msg_waypoint_set_current.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/mavlink_msg_waypoint_set_current.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_waypoint_set_current_pack(uint8_t system_id,
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_uint16_t(buf, 2, seq);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_waypoint_set_current_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.seq = seq;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_waypoint_set_current_pack_chan(uint8_t system
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_uint16_t(buf, 2, seq);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_waypoint_set_current_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.seq = seq;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT;
diff --git a/libraries/GCS_MAVLink/include/common/testsuite.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/testsuite.h
similarity index 100%
rename from libraries/GCS_MAVLink/include/common/testsuite.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/testsuite.h
diff --git a/libraries/GCS_MAVLink/include/common/version.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/version.h
similarity index 84%
rename from libraries/GCS_MAVLink/include/common/version.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/common/version.h
index 4eab9a8979482ebcdf2b564ce6935e3c83570ca5..699dc654b3461d6bb2ff1182c2bf673862539166 100644
--- a/libraries/GCS_MAVLink/include/common/version.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/common/version.h
@@ -5,7 +5,7 @@
 #ifndef MAVLINK_VERSION_H
 #define MAVLINK_VERSION_H
 
-#define MAVLINK_BUILD_DATE "Sun Apr  8 11:01:51 2012"
+#define MAVLINK_BUILD_DATE "Thu Apr 19 15:40:00 2012"
 #define MAVLINK_WIRE_PROTOCOL_VERSION "0.9"
 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 101
  
diff --git a/libraries/GCS_MAVLink/include/mavlink_helpers.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/mavlink_helpers.h
similarity index 100%
rename from libraries/GCS_MAVLink/include/mavlink_helpers.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/mavlink_helpers.h
diff --git a/libraries/GCS_MAVLink/include/mavlink_types.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/mavlink_types.h
similarity index 99%
rename from libraries/GCS_MAVLink/include/mavlink_types.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/mavlink_types.h
index c9c5fc47fb4856c93454fd6d62ad5ba4545d0628..630cb84b77ba6d9fa11680edb7bccbf1b249e36f 100644
--- a/libraries/GCS_MAVLink/include/mavlink_types.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v0.9/mavlink_types.h
@@ -243,6 +243,7 @@ typedef struct __mavlink_message_info {
 } mavlink_message_info_t;
 
 #define _MAV_PAYLOAD(msg) ((char *)(&(msg)->payload64[0]))
+#define _MAV_PAYLOAD_NON_CONST(msg) ((char *)(&((msg)->payload64[0])))
 
 // checksum is immediately after the payload bytes
 #define mavlink_ck_a(msg) *(msg->len + (uint8_t *)_MAV_PAYLOAD(msg))
diff --git a/libraries/GCS_MAVLink/include/protocol.h b/libraries/GCS_MAVLink/include/mavlink/v0.9/protocol.h
similarity index 100%
rename from libraries/GCS_MAVLink/include/protocol.h
rename to libraries/GCS_MAVLink/include/mavlink/v0.9/protocol.h
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/ardupilotmega.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/ardupilotmega.h
similarity index 50%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/ardupilotmega.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/ardupilotmega.h
index 4325b57e21bcc0af9183326df894c4698dfc4899..a77a453855058f77883c6e2ee31088e8e8cae8a7 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/ardupilotmega.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/ardupilotmega.h
@@ -12,15 +12,15 @@ extern "C" {
 // MESSAGE LENGTHS AND CRCS
 
 #ifndef MAVLINK_MESSAGE_LENGTHS
-#define MAVLINK_MESSAGE_LENGTHS {9, 31, 12, 0, 14, 28, 3, 32, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 25, 23, 30, 101, 22, 26, 16, 14, 28, 32, 28, 28, 22, 22, 21, 6, 6, 37, 4, 4, 2, 2, 4, 2, 2, 3, 13, 12, 19, 17, 15, 15, 27, 25, 18, 18, 20, 20, 0, 0, 26, 0, 36, 0, 6, 4, 0, 21, 18, 0, 0, 0, 20, 0, 33, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 42, 33, 0, 0, 0, 0, 0, 0, 0, 18, 32, 32, 20, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 8, 4, 12, 15, 13, 6, 15, 14, 0, 12, 3, 8, 28, 36, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 30, 18, 18, 51, 9, 3}
+#define MAVLINK_MESSAGE_LENGTHS {9, 31, 12, 0, 14, 28, 3, 32, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 25, 23, 30, 101, 22, 26, 16, 14, 28, 32, 28, 28, 22, 22, 21, 6, 6, 37, 4, 4, 2, 2, 4, 2, 2, 3, 13, 12, 19, 17, 15, 15, 27, 25, 18, 18, 20, 20, 9, 54, 26, 0, 36, 0, 6, 4, 0, 21, 18, 0, 0, 0, 20, 0, 33, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 56, 42, 33, 0, 0, 0, 0, 0, 0, 0, 26, 32, 32, 20, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 8, 4, 12, 15, 13, 6, 15, 14, 0, 12, 3, 8, 28, 36, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 30, 18, 18, 51, 9, 0}
 #endif
 
 #ifndef MAVLINK_MESSAGE_CRCS
-#define MAVLINK_MESSAGE_CRCS {50, 124, 137, 0, 237, 217, 104, 119, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 214, 159, 220, 168, 24, 23, 170, 144, 67, 115, 39, 246, 185, 104, 237, 244, 222, 212, 9, 254, 230, 28, 28, 132, 221, 232, 11, 153, 41, 39, 214, 223, 141, 33, 15, 3, 100, 24, 239, 238, 0, 0, 183, 0, 130, 0, 148, 21, 0, 52, 124, 0, 0, 0, 20, 0, 152, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 63, 54, 0, 0, 0, 0, 0, 0, 0, 19, 102, 158, 208, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 219, 208, 188, 84, 22, 19, 21, 134, 0, 78, 68, 189, 127, 42, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 49, 170, 44, 83, 46, 247}
+#define MAVLINK_MESSAGE_CRCS {50, 124, 137, 0, 237, 217, 104, 119, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 214, 159, 220, 168, 24, 23, 170, 144, 67, 115, 39, 246, 185, 104, 237, 244, 222, 212, 9, 254, 230, 28, 28, 132, 221, 232, 11, 153, 41, 39, 214, 223, 141, 33, 15, 3, 100, 24, 239, 238, 30, 200, 183, 0, 130, 0, 148, 21, 0, 52, 124, 0, 0, 0, 20, 0, 152, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 231, 183, 63, 54, 0, 0, 0, 0, 0, 0, 0, 175, 102, 158, 208, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 219, 208, 188, 84, 22, 19, 21, 134, 0, 78, 68, 189, 127, 42, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 49, 170, 44, 83, 46, 0}
 #endif
 
 #ifndef MAVLINK_MESSAGE_INFO
-#define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_SYS_STATUS, MAVLINK_MESSAGE_INFO_SYSTEM_TIME, {NULL}, MAVLINK_MESSAGE_INFO_PING, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL_ACK, MAVLINK_MESSAGE_INFO_AUTH_KEY, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_SET_MODE, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_READ, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_LIST, MAVLINK_MESSAGE_INFO_PARAM_VALUE, MAVLINK_MESSAGE_INFO_PARAM_SET, MAVLINK_MESSAGE_INFO_GPS_RAW_INT, MAVLINK_MESSAGE_INFO_GPS_STATUS, MAVLINK_MESSAGE_INFO_SCALED_IMU, MAVLINK_MESSAGE_INFO_RAW_IMU, MAVLINK_MESSAGE_INFO_RAW_PRESSURE, MAVLINK_MESSAGE_INFO_SCALED_PRESSURE, MAVLINK_MESSAGE_INFO_ATTITUDE, MAVLINK_MESSAGE_INFO_ATTITUDE_QUATERNION, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_INT, MAVLINK_MESSAGE_INFO_RC_CHANNELS_SCALED, MAVLINK_MESSAGE_INFO_RC_CHANNELS_RAW, MAVLINK_MESSAGE_INFO_SERVO_OUTPUT_RAW, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_PARTIAL_LIST, MAVLINK_MESSAGE_INFO_MISSION_WRITE_PARTIAL_LIST, MAVLINK_MESSAGE_INFO_MISSION_ITEM, MAVLINK_MESSAGE_INFO_MISSION_REQUEST, MAVLINK_MESSAGE_INFO_MISSION_SET_CURRENT, MAVLINK_MESSAGE_INFO_MISSION_CURRENT, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_LIST, MAVLINK_MESSAGE_INFO_MISSION_COUNT, MAVLINK_MESSAGE_INFO_MISSION_CLEAR_ALL, MAVLINK_MESSAGE_INFO_MISSION_ITEM_REACHED, MAVLINK_MESSAGE_INFO_MISSION_ACK, MAVLINK_MESSAGE_INFO_SET_GPS_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_GPS_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_SET_LOCAL_POSITION_SETPOINT, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_SETPOINT, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_SETPOINT_INT, MAVLINK_MESSAGE_INFO_SET_GLOBAL_POSITION_SETPOINT_INT, MAVLINK_MESSAGE_INFO_SAFETY_SET_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SAFETY_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_THRUST, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_SPEED_THRUST, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_THRUST_SETPOINT, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_NAV_CONTROLLER_OUTPUT, {NULL}, MAVLINK_MESSAGE_INFO_STATE_CORRECTION, {NULL}, MAVLINK_MESSAGE_INFO_REQUEST_DATA_STREAM, MAVLINK_MESSAGE_INFO_DATA_STREAM, {NULL}, MAVLINK_MESSAGE_INFO_MANUAL_CONTROL, MAVLINK_MESSAGE_INFO_RC_CHANNELS_OVERRIDE, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_VFR_HUD, {NULL}, MAVLINK_MESSAGE_INFO_COMMAND_LONG, MAVLINK_MESSAGE_INFO_COMMAND_ACK, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_HIL_STATE, MAVLINK_MESSAGE_INFO_HIL_CONTROLS, MAVLINK_MESSAGE_INFO_HIL_RC_INPUTS_RAW, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_OPTICAL_FLOW, MAVLINK_MESSAGE_INFO_GLOBAL_VISION_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_VISION_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_VISION_SPEED_ESTIMATE, MAVLINK_MESSAGE_INFO_VICON_POSITION_ESTIMATE, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_SENSOR_OFFSETS, MAVLINK_MESSAGE_INFO_SET_MAG_OFFSETS, MAVLINK_MESSAGE_INFO_MEMINFO, MAVLINK_MESSAGE_INFO_AP_ADC, MAVLINK_MESSAGE_INFO_DIGICAM_CONFIGURE, MAVLINK_MESSAGE_INFO_DIGICAM_CONTROL, MAVLINK_MESSAGE_INFO_MOUNT_CONFIGURE, MAVLINK_MESSAGE_INFO_MOUNT_CONTROL, MAVLINK_MESSAGE_INFO_MOUNT_STATUS, {NULL}, MAVLINK_MESSAGE_INFO_FENCE_POINT, MAVLINK_MESSAGE_INFO_FENCE_FETCH_POINT, MAVLINK_MESSAGE_INFO_FENCE_STATUS, MAVLINK_MESSAGE_INFO_AHRS, MAVLINK_MESSAGE_INFO_SIMSTATE, MAVLINK_MESSAGE_INFO_HWSTATUS, MAVLINK_MESSAGE_INFO_RADIO, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_MEMORY_VECT, MAVLINK_MESSAGE_INFO_DEBUG_VECT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_FLOAT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_INT, MAVLINK_MESSAGE_INFO_STATUSTEXT, MAVLINK_MESSAGE_INFO_DEBUG, MAVLINK_MESSAGE_INFO_EXTENDED_MESSAGE}
+#define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_SYS_STATUS, MAVLINK_MESSAGE_INFO_SYSTEM_TIME, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_PING, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL_ACK, MAVLINK_MESSAGE_INFO_AUTH_KEY, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_SET_MODE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_READ, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_LIST, MAVLINK_MESSAGE_INFO_PARAM_VALUE, MAVLINK_MESSAGE_INFO_PARAM_SET, MAVLINK_MESSAGE_INFO_GPS_RAW_INT, MAVLINK_MESSAGE_INFO_GPS_STATUS, MAVLINK_MESSAGE_INFO_SCALED_IMU, MAVLINK_MESSAGE_INFO_RAW_IMU, MAVLINK_MESSAGE_INFO_RAW_PRESSURE, MAVLINK_MESSAGE_INFO_SCALED_PRESSURE, MAVLINK_MESSAGE_INFO_ATTITUDE, MAVLINK_MESSAGE_INFO_ATTITUDE_QUATERNION, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_INT, MAVLINK_MESSAGE_INFO_RC_CHANNELS_SCALED, MAVLINK_MESSAGE_INFO_RC_CHANNELS_RAW, MAVLINK_MESSAGE_INFO_SERVO_OUTPUT_RAW, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_PARTIAL_LIST, MAVLINK_MESSAGE_INFO_MISSION_WRITE_PARTIAL_LIST, MAVLINK_MESSAGE_INFO_MISSION_ITEM, MAVLINK_MESSAGE_INFO_MISSION_REQUEST, MAVLINK_MESSAGE_INFO_MISSION_SET_CURRENT, MAVLINK_MESSAGE_INFO_MISSION_CURRENT, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_LIST, MAVLINK_MESSAGE_INFO_MISSION_COUNT, MAVLINK_MESSAGE_INFO_MISSION_CLEAR_ALL, MAVLINK_MESSAGE_INFO_MISSION_ITEM_REACHED, MAVLINK_MESSAGE_INFO_MISSION_ACK, MAVLINK_MESSAGE_INFO_SET_GPS_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_GPS_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_SET_LOCAL_POSITION_SETPOINT, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_SETPOINT, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_SETPOINT_INT, MAVLINK_MESSAGE_INFO_SET_GLOBAL_POSITION_SETPOINT_INT, MAVLINK_MESSAGE_INFO_SAFETY_SET_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SAFETY_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_THRUST, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_SPEED_THRUST, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_THRUST_SETPOINT, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT, MAVLINK_MESSAGE_INFO_SET_QUAD_MOTORS_SETPOINT, MAVLINK_MESSAGE_INFO_SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST, MAVLINK_MESSAGE_INFO_NAV_CONTROLLER_OUTPUT, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_STATE_CORRECTION, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_REQUEST_DATA_STREAM, MAVLINK_MESSAGE_INFO_DATA_STREAM, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_MANUAL_CONTROL, MAVLINK_MESSAGE_INFO_RC_CHANNELS_OVERRIDE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_VFR_HUD, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_COMMAND_LONG, MAVLINK_MESSAGE_INFO_COMMAND_ACK, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET, MAVLINK_MESSAGE_INFO_HIL_STATE, MAVLINK_MESSAGE_INFO_HIL_CONTROLS, MAVLINK_MESSAGE_INFO_HIL_RC_INPUTS_RAW, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_OPTICAL_FLOW, MAVLINK_MESSAGE_INFO_GLOBAL_VISION_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_VISION_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_VISION_SPEED_ESTIMATE, MAVLINK_MESSAGE_INFO_VICON_POSITION_ESTIMATE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_SENSOR_OFFSETS, MAVLINK_MESSAGE_INFO_SET_MAG_OFFSETS, MAVLINK_MESSAGE_INFO_MEMINFO, MAVLINK_MESSAGE_INFO_AP_ADC, MAVLINK_MESSAGE_INFO_DIGICAM_CONFIGURE, MAVLINK_MESSAGE_INFO_DIGICAM_CONTROL, MAVLINK_MESSAGE_INFO_MOUNT_CONFIGURE, MAVLINK_MESSAGE_INFO_MOUNT_CONTROL, MAVLINK_MESSAGE_INFO_MOUNT_STATUS, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_FENCE_POINT, MAVLINK_MESSAGE_INFO_FENCE_FETCH_POINT, MAVLINK_MESSAGE_INFO_FENCE_STATUS, MAVLINK_MESSAGE_INFO_AHRS, MAVLINK_MESSAGE_INFO_SIMSTATE, MAVLINK_MESSAGE_INFO_HWSTATUS, MAVLINK_MESSAGE_INFO_RADIO, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_MEMORY_VECT, MAVLINK_MESSAGE_INFO_DEBUG_VECT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_FLOAT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_INT, MAVLINK_MESSAGE_INFO_STATUSTEXT, MAVLINK_MESSAGE_INFO_DEBUG, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}}
 #endif
 
 #include "../protocol.h"
@@ -69,10 +69,7 @@ enum MAV_CMD
 	MAV_CMD_NAV_RETURN_TO_LAUNCH=20, /* Return to launch location |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
 	MAV_CMD_NAV_LAND=21, /* Land at location |Empty| Empty| Empty| Desired yaw angle.| Latitude| Longitude| Altitude|  */
 	MAV_CMD_NAV_TAKEOFF=22, /* Takeoff from ground / hand |Minimum pitch (if airspeed sensor present), desired pitch without sensor| Empty| Empty| Yaw angle (if magnetometer present), ignored without magnetometer| Latitude| Longitude| Altitude|  */
-	MAV_CMD_NAV_ROI=80, /* Sets the region of interest (ROI) for a sensor set or the
-            vehicle itself. This can then be used by the vehicles control
-            system to control the vehicle attitude and the attitude of various
-            sensors such as cameras. |Region of intereset mode. (see MAV_ROI enum)| MISSION index/ target ID. (see MAV_ROI enum)| ROI index (allows a vehicle to manage multiple ROI's)| Empty| x the location of the fixed ROI (see MAV_FRAME)| y| z|  */
+	MAV_CMD_NAV_ROI=80, /* Sets the region of interest (ROI) for a sensor set or the vehicle itself. This can then be used by the vehicles control system to control the vehicle attitude and the attitude of various sensors such as cameras. |Region of intereset mode. (see MAV_ROI enum)| MISSION index/ target ID. (see MAV_ROI enum)| ROI index (allows a vehicle to manage multiple ROI's)| Empty| x the location of the fixed ROI (see MAV_FRAME)| y| z|  */
 	MAV_CMD_NAV_PATHPLANNING=81, /* Control autonomous path planning on the MAV. |0: Disable local obstacle avoidance / local path planning (without resetting map), 1: Enable local path planning, 2: Enable and reset local path planning| 0: Disable full path planning (without resetting map), 1: Enable, 2: Enable and reset map/occupancy grid, 3: Enable and reset planned route, but not occupancy grid| Empty| Yaw angle at goal, in compass degrees, [0..360]| Latitude/X of goal| Longitude/Y of goal| Altitude/Z of goal|  */
 	MAV_CMD_NAV_LAST=95, /* NOP - This command is only used to mark the upper limit of the NAV/ACTION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
 	MAV_CMD_CONDITION_DELAY=112, /* Delay mission state machine. |Delay in seconds (decimal)| Empty| Empty| Empty| Empty| Empty| Empty|  */
@@ -101,7 +98,8 @@ enum MAV_CMD
 	MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN=246, /* Request the reboot or shutdown of system components. |0: Do nothing for autopilot, 1: Reboot autopilot, 2: Shutdown autopilot.| 0: Do nothing for onboard computer, 1: Reboot onboard computer, 2: Shutdown onboard computer.| Reserved| Reserved| Empty| Empty| Empty|  */
 	MAV_CMD_OVERRIDE_GOTO=252, /* Hold / continue the current action |MAV_GOTO_DO_HOLD: hold MAV_GOTO_DO_CONTINUE: continue with next item in mission plan| MAV_GOTO_HOLD_AT_CURRENT_POSITION: Hold at current position MAV_GOTO_HOLD_AT_SPECIFIED_POSITION: hold at specified position| MAV_FRAME coordinate frame of hold point| Desired yaw angle in degrees| Latitude / X position| Longitude / Y position| Altitude / Z position|  */
 	MAV_CMD_MISSION_START=300, /* start running a mission |first_item: the first mission item to run| last_item:  the last mission item to run (after this item is run, the mission ends)|  */
-	MAV_CMD_ENUM_END=301, /*  | */
+	MAV_CMD_COMPONENT_ARM_DISARM=400, /* Arms / Disarms a component |1 to arm, 0 to disarm|  */
+	MAV_CMD_ENUM_END=401, /*  | */
 };
 #endif
 
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink.h
similarity index 100%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink.h
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_ahrs.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_ahrs.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_ahrs.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_ahrs.h
index 884f084ea71e6f89a2f3b2151ce0a5c094678ed8..a59f89aeeba480b16e89ac4e252ca6428b620522 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_ahrs.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_ahrs.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_ahrs_pack(uint8_t system_id, uint8_t componen
 	_mav_put_float(buf, 20, error_rp);
 	_mav_put_float(buf, 24, error_yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
 #else
 	mavlink_ahrs_t packet;
 	packet.omegaIx = omegaIx;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_ahrs_pack(uint8_t system_id, uint8_t componen
 	packet.error_rp = error_rp;
 	packet.error_yaw = error_yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_AHRS;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_ahrs_pack_chan(uint8_t system_id, uint8_t com
 	_mav_put_float(buf, 20, error_rp);
 	_mav_put_float(buf, 24, error_yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
 #else
 	mavlink_ahrs_t packet;
 	packet.omegaIx = omegaIx;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_ahrs_pack_chan(uint8_t system_id, uint8_t com
 	packet.error_rp = error_rp;
 	packet.error_yaw = error_yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_AHRS;
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_ap_adc.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_ap_adc.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_ap_adc.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_ap_adc.h
index dbe7f19370c84b1b80c1e0a91acafee0224d9eda..ea640c4fb0b33ed817578a0c0fa05b612c546c04 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_ap_adc.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_ap_adc.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_ap_adc_pack(uint8_t system_id, uint8_t compon
 	_mav_put_uint16_t(buf, 8, adc5);
 	_mav_put_uint16_t(buf, 10, adc6);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
 #else
 	mavlink_ap_adc_t packet;
 	packet.adc1 = adc1;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_ap_adc_pack(uint8_t system_id, uint8_t compon
 	packet.adc5 = adc5;
 	packet.adc6 = adc6;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_AP_ADC;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_ap_adc_pack_chan(uint8_t system_id, uint8_t c
 	_mav_put_uint16_t(buf, 8, adc5);
 	_mav_put_uint16_t(buf, 10, adc6);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
 #else
 	mavlink_ap_adc_t packet;
 	packet.adc1 = adc1;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_ap_adc_pack_chan(uint8_t system_id, uint8_t c
 	packet.adc5 = adc5;
 	packet.adc6 = adc6;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_AP_ADC;
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_digicam_configure.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_digicam_configure.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_digicam_configure.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_digicam_configure.h
index 89df0d9a4e8e154fee3b8292e64a99b0448904ae..cc49c50255e67d10698335fc3bb14a2d7104e5b9 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_digicam_configure.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_digicam_configure.h
@@ -76,7 +76,7 @@ static inline uint16_t mavlink_msg_digicam_configure_pack(uint8_t system_id, uin
 	_mav_put_uint8_t(buf, 13, engine_cut_off);
 	_mav_put_uint8_t(buf, 14, extra_param);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 15);
 #else
 	mavlink_digicam_configure_t packet;
 	packet.extra_value = extra_value;
@@ -91,7 +91,7 @@ static inline uint16_t mavlink_msg_digicam_configure_pack(uint8_t system_id, uin
 	packet.engine_cut_off = engine_cut_off;
 	packet.extra_param = extra_param;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 15);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DIGICAM_CONFIGURE;
@@ -135,7 +135,7 @@ static inline uint16_t mavlink_msg_digicam_configure_pack_chan(uint8_t system_id
 	_mav_put_uint8_t(buf, 13, engine_cut_off);
 	_mav_put_uint8_t(buf, 14, extra_param);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 15);
 #else
 	mavlink_digicam_configure_t packet;
 	packet.extra_value = extra_value;
@@ -150,7 +150,7 @@ static inline uint16_t mavlink_msg_digicam_configure_pack_chan(uint8_t system_id
 	packet.engine_cut_off = engine_cut_off;
 	packet.extra_param = extra_param;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 15);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DIGICAM_CONFIGURE;
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_digicam_control.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_digicam_control.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_digicam_control.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_digicam_control.h
index baf63d6c7d71afcafb2f7cf82ef62d32c6039e4c..a3b4878c434c3bee55a59ccc964b36f8d59f99ca 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_digicam_control.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_digicam_control.h
@@ -72,7 +72,7 @@ static inline uint16_t mavlink_msg_digicam_control_pack(uint8_t system_id, uint8
 	_mav_put_uint8_t(buf, 11, command_id);
 	_mav_put_uint8_t(buf, 12, extra_param);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 13);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 13);
 #else
 	mavlink_digicam_control_t packet;
 	packet.extra_value = extra_value;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_digicam_control_pack(uint8_t system_id, uint8
 	packet.command_id = command_id;
 	packet.extra_param = extra_param;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 13);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 13);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DIGICAM_CONTROL;
@@ -128,7 +128,7 @@ static inline uint16_t mavlink_msg_digicam_control_pack_chan(uint8_t system_id,
 	_mav_put_uint8_t(buf, 11, command_id);
 	_mav_put_uint8_t(buf, 12, extra_param);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 13);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 13);
 #else
 	mavlink_digicam_control_t packet;
 	packet.extra_value = extra_value;
@@ -142,7 +142,7 @@ static inline uint16_t mavlink_msg_digicam_control_pack_chan(uint8_t system_id,
 	packet.command_id = command_id;
 	packet.extra_param = extra_param;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 13);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 13);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DIGICAM_CONTROL;
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_fence_fetch_point.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_fence_fetch_point.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_fence_fetch_point.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_fence_fetch_point.h
index e79ebeca39b6ca686c30e8d1125547f2ef7a0915..c1e405b0a5a986bf54635eb15e21204880458f77 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_fence_fetch_point.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_fence_fetch_point.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_fence_fetch_point_pack(uint8_t system_id, uin
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_uint8_t(buf, 2, idx);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_fence_fetch_point_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.idx = idx;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_FENCE_FETCH_POINT;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_fence_fetch_point_pack_chan(uint8_t system_id
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_uint8_t(buf, 2, idx);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_fence_fetch_point_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.idx = idx;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_FENCE_FETCH_POINT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_fence_point.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_fence_point.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_fence_point.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_fence_point.h
index 8890a1e0b245fc307f72786014c40fd3bf55b04e..b31319c74909effcc71e3f2217ef8f04f5593bd6 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_fence_point.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_fence_point.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_fence_point_pack(uint8_t system_id, uint8_t c
 	_mav_put_uint8_t(buf, 10, idx);
 	_mav_put_uint8_t(buf, 11, count);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
 #else
 	mavlink_fence_point_t packet;
 	packet.lat = lat;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_fence_point_pack(uint8_t system_id, uint8_t c
 	packet.idx = idx;
 	packet.count = count;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_FENCE_POINT;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_fence_point_pack_chan(uint8_t system_id, uint
 	_mav_put_uint8_t(buf, 10, idx);
 	_mav_put_uint8_t(buf, 11, count);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
 #else
 	mavlink_fence_point_t packet;
 	packet.lat = lat;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_fence_point_pack_chan(uint8_t system_id, uint
 	packet.idx = idx;
 	packet.count = count;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_FENCE_POINT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_fence_status.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_fence_status.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_fence_status.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_fence_status.h
index 56a6cf6c02c2c2f07627871b72f12bd4429bec84..ce3e7ee67bb51e7884d30631eb1506328a0040df 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_fence_status.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_fence_status.h
@@ -48,7 +48,7 @@ static inline uint16_t mavlink_msg_fence_status_pack(uint8_t system_id, uint8_t
 	_mav_put_uint8_t(buf, 6, breach_status);
 	_mav_put_uint8_t(buf, 7, breach_type);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 8);
 #else
 	mavlink_fence_status_t packet;
 	packet.breach_time = breach_time;
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_fence_status_pack(uint8_t system_id, uint8_t
 	packet.breach_status = breach_status;
 	packet.breach_type = breach_type;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 8);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_FENCE_STATUS;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_fence_status_pack_chan(uint8_t system_id, uin
 	_mav_put_uint8_t(buf, 6, breach_status);
 	_mav_put_uint8_t(buf, 7, breach_type);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 8);
 #else
 	mavlink_fence_status_t packet;
 	packet.breach_time = breach_time;
@@ -94,7 +94,7 @@ static inline uint16_t mavlink_msg_fence_status_pack_chan(uint8_t system_id, uin
 	packet.breach_status = breach_status;
 	packet.breach_type = breach_type;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 8);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_FENCE_STATUS;
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_hwstatus.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_hwstatus.h
similarity index 95%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_hwstatus.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_hwstatus.h
index a439560fb53643ee3bddab847238ffc4aef82a73..952e65951be20ef7f2f4c3efde64251f672107b1 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_hwstatus.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_hwstatus.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_hwstatus_pack(uint8_t system_id, uint8_t comp
 	_mav_put_uint16_t(buf, 0, Vcc);
 	_mav_put_uint8_t(buf, 2, I2Cerr);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_hwstatus_t packet;
 	packet.Vcc = Vcc;
 	packet.I2Cerr = I2Cerr;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HWSTATUS;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_hwstatus_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_uint16_t(buf, 0, Vcc);
 	_mav_put_uint8_t(buf, 2, I2Cerr);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_hwstatus_t packet;
 	packet.Vcc = Vcc;
 	packet.I2Cerr = I2Cerr;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HWSTATUS;
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_meminfo.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_meminfo.h
similarity index 95%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_meminfo.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_meminfo.h
index 85b7d96fc8f69f0adb9b1b2e2b9169236bbd6738..a095a804f3cb5a6a59569f934b0a6d0a4c30f81a 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_meminfo.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_meminfo.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_meminfo_pack(uint8_t system_id, uint8_t compo
 	_mav_put_uint16_t(buf, 0, brkval);
 	_mav_put_uint16_t(buf, 2, freemem);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_meminfo_t packet;
 	packet.brkval = brkval;
 	packet.freemem = freemem;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MEMINFO;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_meminfo_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_uint16_t(buf, 0, brkval);
 	_mav_put_uint16_t(buf, 2, freemem);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_meminfo_t packet;
 	packet.brkval = brkval;
 	packet.freemem = freemem;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MEMINFO;
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_mount_configure.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_mount_configure.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_mount_configure.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_mount_configure.h
index 84979b3e4d84992d2fa4884e704bd0aac7b7f0a2..051a7183794528cedbc1c29984c3d47dd15b4b8e 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_mount_configure.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_mount_configure.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_mount_configure_pack(uint8_t system_id, uint8
 	_mav_put_uint8_t(buf, 4, stab_pitch);
 	_mav_put_uint8_t(buf, 5, stab_yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
 #else
 	mavlink_mount_configure_t packet;
 	packet.target_system = target_system;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_mount_configure_pack(uint8_t system_id, uint8
 	packet.stab_pitch = stab_pitch;
 	packet.stab_yaw = stab_yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MOUNT_CONFIGURE;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_mount_configure_pack_chan(uint8_t system_id,
 	_mav_put_uint8_t(buf, 4, stab_pitch);
 	_mav_put_uint8_t(buf, 5, stab_yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
 #else
 	mavlink_mount_configure_t packet;
 	packet.target_system = target_system;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_mount_configure_pack_chan(uint8_t system_id,
 	packet.stab_pitch = stab_pitch;
 	packet.stab_yaw = stab_yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MOUNT_CONFIGURE;
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_mount_control.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_mount_control.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_mount_control.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_mount_control.h
index 37f87fd7ac292e63a2aa0d2f5b91fba0583f366a..a519922997ce10af1eff72308e9423b85749cb51 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_mount_control.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_mount_control.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_mount_control_pack(uint8_t system_id, uint8_t
 	_mav_put_uint8_t(buf, 13, target_component);
 	_mav_put_uint8_t(buf, 14, save_position);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 15);
 #else
 	mavlink_mount_control_t packet;
 	packet.input_a = input_a;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_mount_control_pack(uint8_t system_id, uint8_t
 	packet.target_component = target_component;
 	packet.save_position = save_position;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 15);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MOUNT_CONTROL;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_mount_control_pack_chan(uint8_t system_id, ui
 	_mav_put_uint8_t(buf, 13, target_component);
 	_mav_put_uint8_t(buf, 14, save_position);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 15);
 #else
 	mavlink_mount_control_t packet;
 	packet.input_a = input_a;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_mount_control_pack_chan(uint8_t system_id, ui
 	packet.target_component = target_component;
 	packet.save_position = save_position;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 15);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MOUNT_CONTROL;
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_mount_status.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_mount_status.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_mount_status.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_mount_status.h
index f43709ba784f40b9c3ec722dd581ad84735a5f9c..edc188ebd49b7c2f90dfade166c557b1d091cd28 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_mount_status.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_mount_status.h
@@ -52,7 +52,7 @@ static inline uint16_t mavlink_msg_mount_status_pack(uint8_t system_id, uint8_t
 	_mav_put_uint8_t(buf, 12, target_system);
 	_mav_put_uint8_t(buf, 13, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
 #else
 	mavlink_mount_status_t packet;
 	packet.pointing_a = pointing_a;
@@ -61,7 +61,7 @@ static inline uint16_t mavlink_msg_mount_status_pack(uint8_t system_id, uint8_t
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MOUNT_STATUS;
@@ -93,7 +93,7 @@ static inline uint16_t mavlink_msg_mount_status_pack_chan(uint8_t system_id, uin
 	_mav_put_uint8_t(buf, 12, target_system);
 	_mav_put_uint8_t(buf, 13, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
 #else
 	mavlink_mount_status_t packet;
 	packet.pointing_a = pointing_a;
@@ -102,7 +102,7 @@ static inline uint16_t mavlink_msg_mount_status_pack_chan(uint8_t system_id, uin
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MOUNT_STATUS;
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_radio.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_radio.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_radio.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_radio.h
index db64da5c31d81512e2040b86a3db4c8d43654df6..0f3d03c0a64a8f08711f8a9dfc1d9976c05d9804 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_radio.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_radio.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_radio_pack(uint8_t system_id, uint8_t compone
 	_mav_put_uint8_t(buf, 7, noise);
 	_mav_put_uint8_t(buf, 8, remnoise);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 9);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 9);
 #else
 	mavlink_radio_t packet;
 	packet.rxerrors = rxerrors;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_radio_pack(uint8_t system_id, uint8_t compone
 	packet.noise = noise;
 	packet.remnoise = remnoise;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 9);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 9);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RADIO;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_radio_pack_chan(uint8_t system_id, uint8_t co
 	_mav_put_uint8_t(buf, 7, noise);
 	_mav_put_uint8_t(buf, 8, remnoise);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 9);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 9);
 #else
 	mavlink_radio_t packet;
 	packet.rxerrors = rxerrors;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_radio_pack_chan(uint8_t system_id, uint8_t co
 	packet.noise = noise;
 	packet.remnoise = remnoise;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 9);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 9);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RADIO;
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_sensor_offsets.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_sensor_offsets.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_sensor_offsets.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_sensor_offsets.h
index b3b38e6df2fdea9a40c6240560d3754057f26238..56fb52d96d2720be8a54932427a559287873edec 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_sensor_offsets.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_sensor_offsets.h
@@ -80,7 +80,7 @@ static inline uint16_t mavlink_msg_sensor_offsets_pack(uint8_t system_id, uint8_
 	_mav_put_int16_t(buf, 38, mag_ofs_y);
 	_mav_put_int16_t(buf, 40, mag_ofs_z);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 42);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 42);
 #else
 	mavlink_sensor_offsets_t packet;
 	packet.mag_declination = mag_declination;
@@ -96,7 +96,7 @@ static inline uint16_t mavlink_msg_sensor_offsets_pack(uint8_t system_id, uint8_
 	packet.mag_ofs_y = mag_ofs_y;
 	packet.mag_ofs_z = mag_ofs_z;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 42);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 42);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SENSOR_OFFSETS;
@@ -142,7 +142,7 @@ static inline uint16_t mavlink_msg_sensor_offsets_pack_chan(uint8_t system_id, u
 	_mav_put_int16_t(buf, 38, mag_ofs_y);
 	_mav_put_int16_t(buf, 40, mag_ofs_z);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 42);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 42);
 #else
 	mavlink_sensor_offsets_t packet;
 	packet.mag_declination = mag_declination;
@@ -158,7 +158,7 @@ static inline uint16_t mavlink_msg_sensor_offsets_pack_chan(uint8_t system_id, u
 	packet.mag_ofs_y = mag_ofs_y;
 	packet.mag_ofs_z = mag_ofs_z;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 42);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 42);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SENSOR_OFFSETS;
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_set_mag_offsets.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_set_mag_offsets.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_set_mag_offsets.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_set_mag_offsets.h
index 01511619018f799921e5ec44a3ea11c3e4ec949e..4c13fd1863d3db61a9e625bd7a70cc53867ef4d6 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_set_mag_offsets.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_set_mag_offsets.h
@@ -52,7 +52,7 @@ static inline uint16_t mavlink_msg_set_mag_offsets_pack(uint8_t system_id, uint8
 	_mav_put_uint8_t(buf, 6, target_system);
 	_mav_put_uint8_t(buf, 7, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 8);
 #else
 	mavlink_set_mag_offsets_t packet;
 	packet.mag_ofs_x = mag_ofs_x;
@@ -61,7 +61,7 @@ static inline uint16_t mavlink_msg_set_mag_offsets_pack(uint8_t system_id, uint8
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 8);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_MAG_OFFSETS;
@@ -93,7 +93,7 @@ static inline uint16_t mavlink_msg_set_mag_offsets_pack_chan(uint8_t system_id,
 	_mav_put_uint8_t(buf, 6, target_system);
 	_mav_put_uint8_t(buf, 7, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 8);
 #else
 	mavlink_set_mag_offsets_t packet;
 	packet.mag_ofs_x = mag_ofs_x;
@@ -102,7 +102,7 @@ static inline uint16_t mavlink_msg_set_mag_offsets_pack_chan(uint8_t system_id,
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 8);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_MAG_OFFSETS;
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_simstate.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_simstate.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_simstate.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_simstate.h
index aa7e6edfafe727f940bafd4837446585bd8036e8..dfcddfc2b6c8ef8d54c411017e69f83942228654 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_simstate.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/mavlink_msg_simstate.h
@@ -68,7 +68,7 @@ static inline uint16_t mavlink_msg_simstate_pack(uint8_t system_id, uint8_t comp
 	_mav_put_float(buf, 28, ygyro);
 	_mav_put_float(buf, 32, zgyro);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 36);
 #else
 	mavlink_simstate_t packet;
 	packet.roll = roll;
@@ -81,7 +81,7 @@ static inline uint16_t mavlink_msg_simstate_pack(uint8_t system_id, uint8_t comp
 	packet.ygyro = ygyro;
 	packet.zgyro = zgyro;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 36);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SIMSTATE;
@@ -121,7 +121,7 @@ static inline uint16_t mavlink_msg_simstate_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_float(buf, 28, ygyro);
 	_mav_put_float(buf, 32, zgyro);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 36);
 #else
 	mavlink_simstate_t packet;
 	packet.roll = roll;
@@ -134,7 +134,7 @@ static inline uint16_t mavlink_msg_simstate_pack_chan(uint8_t system_id, uint8_t
 	packet.ygyro = ygyro;
 	packet.zgyro = zgyro;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 36);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SIMSTATE;
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/testsuite.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/testsuite.h
similarity index 94%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/testsuite.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/testsuite.h
index acd50ec021101c092b8ef06cee078273463cd262..aa83889d66a663989466b58b90f799ca445d6c7e 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/testsuite.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/testsuite.h
@@ -534,14 +534,14 @@ static void mavlink_test_fence_point(uint8_t system_id, uint8_t component_id, ma
 	};
 	mavlink_fence_point_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
-		packet1.lat = packet_in.lat;
-		packet1.lng = packet_in.lng;
-		packet1.target_system = packet_in.target_system;
-		packet1.target_component = packet_in.target_component;
-		packet1.idx = packet_in.idx;
-		packet1.count = packet_in.count;
-
-
+        	packet1.lat = packet_in.lat;
+        	packet1.lng = packet_in.lng;
+        	packet1.target_system = packet_in.target_system;
+        	packet1.target_component = packet_in.target_component;
+        	packet1.idx = packet_in.idx;
+        	packet1.count = packet_in.count;
+        
+        
 
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_fence_point_encode(system_id, component_id, &msg, &packet1);
@@ -561,11 +561,11 @@ static void mavlink_test_fence_point(uint8_t system_id, uint8_t component_id, ma
         memset(&packet2, 0, sizeof(packet2));
         mavlink_msg_to_send_buffer(buffer, &msg);
         for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
-		comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
         }
 	mavlink_msg_fence_point_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
+        
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_fence_point_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.idx , packet1.count , packet1.lat , packet1.lng );
 	mavlink_msg_fence_point_decode(last_msg, &packet2);
@@ -584,11 +584,11 @@ static void mavlink_test_fence_fetch_point(uint8_t system_id, uint8_t component_
 	};
 	mavlink_fence_fetch_point_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
-		packet1.target_system = packet_in.target_system;
-		packet1.target_component = packet_in.target_component;
-		packet1.idx = packet_in.idx;
-
-
+        	packet1.target_system = packet_in.target_system;
+        	packet1.target_component = packet_in.target_component;
+        	packet1.idx = packet_in.idx;
+        
+        
 
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_fence_fetch_point_encode(system_id, component_id, &msg, &packet1);
@@ -608,11 +608,11 @@ static void mavlink_test_fence_fetch_point(uint8_t system_id, uint8_t component_
         memset(&packet2, 0, sizeof(packet2));
         mavlink_msg_to_send_buffer(buffer, &msg);
         for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
-		comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
         }
 	mavlink_msg_fence_fetch_point_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
+        
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_fence_fetch_point_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.idx );
 	mavlink_msg_fence_fetch_point_decode(last_msg, &packet2);
@@ -632,12 +632,12 @@ static void mavlink_test_fence_status(uint8_t system_id, uint8_t component_id, m
 	};
 	mavlink_fence_status_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
-		packet1.breach_time = packet_in.breach_time;
-		packet1.breach_count = packet_in.breach_count;
-		packet1.breach_status = packet_in.breach_status;
-		packet1.breach_type = packet_in.breach_type;
-
-
+        	packet1.breach_time = packet_in.breach_time;
+        	packet1.breach_count = packet_in.breach_count;
+        	packet1.breach_status = packet_in.breach_status;
+        	packet1.breach_type = packet_in.breach_type;
+        
+        
 
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_fence_status_encode(system_id, component_id, &msg, &packet1);
@@ -657,11 +657,11 @@ static void mavlink_test_fence_status(uint8_t system_id, uint8_t component_id, m
         memset(&packet2, 0, sizeof(packet2));
         mavlink_msg_to_send_buffer(buffer, &msg);
         for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
-		comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
         }
 	mavlink_msg_fence_status_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
+        
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_fence_status_send(MAVLINK_COMM_1 , packet1.breach_status , packet1.breach_count , packet1.breach_type , packet1.breach_time );
 	mavlink_msg_fence_status_decode(last_msg, &packet2);
@@ -684,15 +684,15 @@ static void mavlink_test_ahrs(uint8_t system_id, uint8_t component_id, mavlink_m
 	};
 	mavlink_ahrs_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
-		packet1.omegaIx = packet_in.omegaIx;
-		packet1.omegaIy = packet_in.omegaIy;
-		packet1.omegaIz = packet_in.omegaIz;
-		packet1.accel_weight = packet_in.accel_weight;
-		packet1.renorm_val = packet_in.renorm_val;
-		packet1.error_rp = packet_in.error_rp;
-		packet1.error_yaw = packet_in.error_yaw;
-
-
+        	packet1.omegaIx = packet_in.omegaIx;
+        	packet1.omegaIy = packet_in.omegaIy;
+        	packet1.omegaIz = packet_in.omegaIz;
+        	packet1.accel_weight = packet_in.accel_weight;
+        	packet1.renorm_val = packet_in.renorm_val;
+        	packet1.error_rp = packet_in.error_rp;
+        	packet1.error_yaw = packet_in.error_yaw;
+        
+        
 
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_ahrs_encode(system_id, component_id, &msg, &packet1);
@@ -712,11 +712,11 @@ static void mavlink_test_ahrs(uint8_t system_id, uint8_t component_id, mavlink_m
         memset(&packet2, 0, sizeof(packet2));
         mavlink_msg_to_send_buffer(buffer, &msg);
         for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
-		comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
         }
 	mavlink_msg_ahrs_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
+        
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_ahrs_send(MAVLINK_COMM_1 , packet1.omegaIx , packet1.omegaIy , packet1.omegaIz , packet1.accel_weight , packet1.renorm_val , packet1.error_rp , packet1.error_yaw );
 	mavlink_msg_ahrs_decode(last_msg, &packet2);
@@ -741,17 +741,17 @@ static void mavlink_test_simstate(uint8_t system_id, uint8_t component_id, mavli
 	};
 	mavlink_simstate_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
-		packet1.roll = packet_in.roll;
-		packet1.pitch = packet_in.pitch;
-		packet1.yaw = packet_in.yaw;
-		packet1.xacc = packet_in.xacc;
-		packet1.yacc = packet_in.yacc;
-		packet1.zacc = packet_in.zacc;
-		packet1.xgyro = packet_in.xgyro;
-		packet1.ygyro = packet_in.ygyro;
-		packet1.zgyro = packet_in.zgyro;
-
-
+        	packet1.roll = packet_in.roll;
+        	packet1.pitch = packet_in.pitch;
+        	packet1.yaw = packet_in.yaw;
+        	packet1.xacc = packet_in.xacc;
+        	packet1.yacc = packet_in.yacc;
+        	packet1.zacc = packet_in.zacc;
+        	packet1.xgyro = packet_in.xgyro;
+        	packet1.ygyro = packet_in.ygyro;
+        	packet1.zgyro = packet_in.zgyro;
+        
+        
 
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_simstate_encode(system_id, component_id, &msg, &packet1);
@@ -771,11 +771,11 @@ static void mavlink_test_simstate(uint8_t system_id, uint8_t component_id, mavli
         memset(&packet2, 0, sizeof(packet2));
         mavlink_msg_to_send_buffer(buffer, &msg);
         for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
-		comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
         }
 	mavlink_msg_simstate_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
+        
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_simstate_send(MAVLINK_COMM_1 , packet1.roll , packet1.pitch , packet1.yaw , packet1.xacc , packet1.yacc , packet1.zacc , packet1.xgyro , packet1.ygyro , packet1.zgyro );
 	mavlink_msg_simstate_decode(last_msg, &packet2);
@@ -793,10 +793,10 @@ static void mavlink_test_hwstatus(uint8_t system_id, uint8_t component_id, mavli
 	};
 	mavlink_hwstatus_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
-		packet1.Vcc = packet_in.Vcc;
-		packet1.I2Cerr = packet_in.I2Cerr;
-
-
+        	packet1.Vcc = packet_in.Vcc;
+        	packet1.I2Cerr = packet_in.I2Cerr;
+        
+        
 
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_hwstatus_encode(system_id, component_id, &msg, &packet1);
@@ -816,11 +816,11 @@ static void mavlink_test_hwstatus(uint8_t system_id, uint8_t component_id, mavli
         memset(&packet2, 0, sizeof(packet2));
         mavlink_msg_to_send_buffer(buffer, &msg);
         for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
-		comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
         }
 	mavlink_msg_hwstatus_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
+        
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_hwstatus_send(MAVLINK_COMM_1 , packet1.Vcc , packet1.I2Cerr );
 	mavlink_msg_hwstatus_decode(last_msg, &packet2);
@@ -843,15 +843,15 @@ static void mavlink_test_radio(uint8_t system_id, uint8_t component_id, mavlink_
 	};
 	mavlink_radio_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
-		packet1.rxerrors = packet_in.rxerrors;
-		packet1.fixed = packet_in.fixed;
-		packet1.rssi = packet_in.rssi;
-		packet1.remrssi = packet_in.remrssi;
-		packet1.txbuf = packet_in.txbuf;
-		packet1.noise = packet_in.noise;
-		packet1.remnoise = packet_in.remnoise;
-
-
+        	packet1.rxerrors = packet_in.rxerrors;
+        	packet1.fixed = packet_in.fixed;
+        	packet1.rssi = packet_in.rssi;
+        	packet1.remrssi = packet_in.remrssi;
+        	packet1.txbuf = packet_in.txbuf;
+        	packet1.noise = packet_in.noise;
+        	packet1.remnoise = packet_in.remnoise;
+        
+        
 
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_radio_encode(system_id, component_id, &msg, &packet1);
@@ -871,11 +871,11 @@ static void mavlink_test_radio(uint8_t system_id, uint8_t component_id, mavlink_
         memset(&packet2, 0, sizeof(packet2));
         mavlink_msg_to_send_buffer(buffer, &msg);
         for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
-		comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
         }
 	mavlink_msg_radio_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
+        
         memset(&packet2, 0, sizeof(packet2));
 	mavlink_msg_radio_send(MAVLINK_COMM_1 , packet1.rssi , packet1.remrssi , packet1.txbuf , packet1.noise , packet1.remnoise , packet1.rxerrors , packet1.fixed );
 	mavlink_msg_radio_decode(last_msg, &packet2);
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/version.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/version.h
similarity index 84%
rename from libraries/GCS_MAVLink/include_v1.0/ardupilotmega/version.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/version.h
index 1544c0de52879c963ddd1671ba221d307403bb4c..05c9919baafafda10de4d791c6353b2c2f1d9a33 100644
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/version.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/ardupilotmega/version.h
@@ -5,7 +5,7 @@
 #ifndef MAVLINK_VERSION_H
 #define MAVLINK_VERSION_H
 
-#define MAVLINK_BUILD_DATE "Sun Apr  8 11:01:52 2012"
+#define MAVLINK_BUILD_DATE "Thu Apr 19 15:39:53 2012"
 #define MAVLINK_WIRE_PROTOCOL_VERSION "1.0"
 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 101
  
diff --git a/libraries/GCS_MAVLink/include_v1.0/checksum.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/checksum.h
similarity index 95%
rename from libraries/GCS_MAVLink/include_v1.0/checksum.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/checksum.h
index b70991f5ab7c46163f7d13c6e11f70e5102b2457..4f4cce02fc91ae78f851d7dcb1ec65fa4dd1f526 100644
--- a/libraries/GCS_MAVLink/include_v1.0/checksum.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/checksum.h
@@ -52,7 +52,7 @@ static inline void crc_init(uint16_t* crcAccum)
  * @param  length  length of the byte array
  * @return the checksum over the buffer bytes
  **/
-static inline uint16_t crc_calculate(uint8_t* pBuffer, uint16_t length)
+static inline uint16_t crc_calculate(const uint8_t* pBuffer, uint16_t length)
 {
         uint16_t crcTmp;
         crc_init(&crcTmp);
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/common/common.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/common.h
new file mode 100644
index 0000000000000000000000000000000000000000..9a76edeaadba94ce754855ad0fccc6c69edd5414
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/common.h
@@ -0,0 +1,488 @@
+/** @file
+ *	@brief MAVLink comm protocol generated from common.xml
+ *	@see http://qgroundcontrol.org/mavlink/
+ */
+#ifndef COMMON_H
+#define COMMON_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// MESSAGE LENGTHS AND CRCS
+
+#ifndef MAVLINK_MESSAGE_LENGTHS
+#define MAVLINK_MESSAGE_LENGTHS {9, 31, 12, 0, 14, 28, 3, 32, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 25, 23, 30, 101, 22, 26, 16, 14, 28, 32, 28, 28, 22, 22, 21, 6, 6, 37, 4, 4, 2, 2, 4, 2, 2, 3, 13, 12, 19, 17, 15, 15, 27, 25, 18, 18, 20, 20, 9, 54, 26, 0, 36, 0, 6, 4, 0, 21, 18, 0, 0, 0, 20, 0, 33, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 56, 42, 33, 0, 0, 0, 0, 0, 0, 0, 26, 32, 32, 20, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 30, 18, 18, 51, 9, 0}
+#endif
+
+#ifndef MAVLINK_MESSAGE_CRCS
+#define MAVLINK_MESSAGE_CRCS {50, 124, 137, 0, 237, 217, 104, 119, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 214, 159, 220, 168, 24, 23, 170, 144, 67, 115, 39, 246, 185, 104, 237, 244, 222, 212, 9, 254, 230, 28, 28, 132, 221, 232, 11, 153, 41, 39, 214, 223, 141, 33, 15, 3, 100, 24, 239, 238, 30, 200, 183, 0, 130, 0, 148, 21, 0, 52, 124, 0, 0, 0, 20, 0, 152, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 231, 183, 63, 54, 0, 0, 0, 0, 0, 0, 0, 175, 102, 158, 208, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 49, 170, 44, 83, 46, 0}
+#endif
+
+#ifndef MAVLINK_MESSAGE_INFO
+#define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_SYS_STATUS, MAVLINK_MESSAGE_INFO_SYSTEM_TIME, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_PING, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL_ACK, MAVLINK_MESSAGE_INFO_AUTH_KEY, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_SET_MODE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_READ, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_LIST, MAVLINK_MESSAGE_INFO_PARAM_VALUE, MAVLINK_MESSAGE_INFO_PARAM_SET, MAVLINK_MESSAGE_INFO_GPS_RAW_INT, MAVLINK_MESSAGE_INFO_GPS_STATUS, MAVLINK_MESSAGE_INFO_SCALED_IMU, MAVLINK_MESSAGE_INFO_RAW_IMU, MAVLINK_MESSAGE_INFO_RAW_PRESSURE, MAVLINK_MESSAGE_INFO_SCALED_PRESSURE, MAVLINK_MESSAGE_INFO_ATTITUDE, MAVLINK_MESSAGE_INFO_ATTITUDE_QUATERNION, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_INT, MAVLINK_MESSAGE_INFO_RC_CHANNELS_SCALED, MAVLINK_MESSAGE_INFO_RC_CHANNELS_RAW, MAVLINK_MESSAGE_INFO_SERVO_OUTPUT_RAW, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_PARTIAL_LIST, MAVLINK_MESSAGE_INFO_MISSION_WRITE_PARTIAL_LIST, MAVLINK_MESSAGE_INFO_MISSION_ITEM, MAVLINK_MESSAGE_INFO_MISSION_REQUEST, MAVLINK_MESSAGE_INFO_MISSION_SET_CURRENT, MAVLINK_MESSAGE_INFO_MISSION_CURRENT, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_LIST, MAVLINK_MESSAGE_INFO_MISSION_COUNT, MAVLINK_MESSAGE_INFO_MISSION_CLEAR_ALL, MAVLINK_MESSAGE_INFO_MISSION_ITEM_REACHED, MAVLINK_MESSAGE_INFO_MISSION_ACK, MAVLINK_MESSAGE_INFO_SET_GPS_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_GPS_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_SET_LOCAL_POSITION_SETPOINT, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_SETPOINT, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_SETPOINT_INT, MAVLINK_MESSAGE_INFO_SET_GLOBAL_POSITION_SETPOINT_INT, MAVLINK_MESSAGE_INFO_SAFETY_SET_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SAFETY_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_THRUST, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_SPEED_THRUST, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_THRUST_SETPOINT, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT, MAVLINK_MESSAGE_INFO_SET_QUAD_MOTORS_SETPOINT, MAVLINK_MESSAGE_INFO_SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST, MAVLINK_MESSAGE_INFO_NAV_CONTROLLER_OUTPUT, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_STATE_CORRECTION, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_REQUEST_DATA_STREAM, MAVLINK_MESSAGE_INFO_DATA_STREAM, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_MANUAL_CONTROL, MAVLINK_MESSAGE_INFO_RC_CHANNELS_OVERRIDE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_VFR_HUD, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_COMMAND_LONG, MAVLINK_MESSAGE_INFO_COMMAND_ACK, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET, MAVLINK_MESSAGE_INFO_HIL_STATE, MAVLINK_MESSAGE_INFO_HIL_CONTROLS, MAVLINK_MESSAGE_INFO_HIL_RC_INPUTS_RAW, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_OPTICAL_FLOW, MAVLINK_MESSAGE_INFO_GLOBAL_VISION_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_VISION_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_VISION_SPEED_ESTIMATE, MAVLINK_MESSAGE_INFO_VICON_POSITION_ESTIMATE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_MEMORY_VECT, MAVLINK_MESSAGE_INFO_DEBUG_VECT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_FLOAT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_INT, MAVLINK_MESSAGE_INFO_STATUSTEXT, MAVLINK_MESSAGE_INFO_DEBUG, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}}
+#endif
+
+#include "../protocol.h"
+
+#define MAVLINK_ENABLED_COMMON
+
+
+
+// MAVLINK VERSION
+
+#ifndef MAVLINK_VERSION
+#define MAVLINK_VERSION 3
+#endif
+
+#if (MAVLINK_VERSION == 0)
+#undef MAVLINK_VERSION
+#define MAVLINK_VERSION 3
+#endif
+
+// ENUM DEFINITIONS
+
+
+/** @brief Micro air vehicle / autopilot classes. This identifies the individual model. */
+#ifndef HAVE_ENUM_MAV_AUTOPILOT
+#define HAVE_ENUM_MAV_AUTOPILOT
+enum MAV_AUTOPILOT
+{
+	MAV_AUTOPILOT_GENERIC=0, /* Generic autopilot, full support for everything | */
+	MAV_AUTOPILOT_PIXHAWK=1, /* PIXHAWK autopilot, http://pixhawk.ethz.ch | */
+	MAV_AUTOPILOT_SLUGS=2, /* SLUGS autopilot, http://slugsuav.soe.ucsc.edu | */
+	MAV_AUTOPILOT_ARDUPILOTMEGA=3, /* ArduPilotMega / ArduCopter, http://diydrones.com | */
+	MAV_AUTOPILOT_OPENPILOT=4, /* OpenPilot, http://openpilot.org | */
+	MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY=5, /* Generic autopilot only supporting simple waypoints | */
+	MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY=6, /* Generic autopilot supporting waypoints and other simple navigation commands | */
+	MAV_AUTOPILOT_GENERIC_MISSION_FULL=7, /* Generic autopilot supporting the full mission command set | */
+	MAV_AUTOPILOT_INVALID=8, /* No valid autopilot, e.g. a GCS or other MAVLink component | */
+	MAV_AUTOPILOT_PPZ=9, /* PPZ UAV - http://nongnu.org/paparazzi | */
+	MAV_AUTOPILOT_UDB=10, /* UAV Dev Board | */
+	MAV_AUTOPILOT_FP=11, /* FlexiPilot | */
+	MAV_AUTOPILOT_ENUM_END=12, /*  | */
+};
+#endif
+
+/** @brief  */
+#ifndef HAVE_ENUM_MAV_TYPE
+#define HAVE_ENUM_MAV_TYPE
+enum MAV_TYPE
+{
+	MAV_TYPE_GENERIC=0, /* Generic micro air vehicle. | */
+	MAV_TYPE_FIXED_WING=1, /* Fixed wing aircraft. | */
+	MAV_TYPE_QUADROTOR=2, /* Quadrotor | */
+	MAV_TYPE_COAXIAL=3, /* Coaxial helicopter | */
+	MAV_TYPE_HELICOPTER=4, /* Normal helicopter with tail rotor. | */
+	MAV_TYPE_ANTENNA_TRACKER=5, /* Ground installation | */
+	MAV_TYPE_GCS=6, /* Operator control unit / ground control station | */
+	MAV_TYPE_AIRSHIP=7, /* Airship, controlled | */
+	MAV_TYPE_FREE_BALLOON=8, /* Free balloon, uncontrolled | */
+	MAV_TYPE_ROCKET=9, /* Rocket | */
+	MAV_TYPE_GROUND_ROVER=10, /* Ground rover | */
+	MAV_TYPE_SURFACE_BOAT=11, /* Surface vessel, boat, ship | */
+	MAV_TYPE_SUBMARINE=12, /* Submarine | */
+	MAV_TYPE_HEXAROTOR=13, /* Hexarotor | */
+	MAV_TYPE_OCTOROTOR=14, /* Octorotor | */
+	MAV_TYPE_TRICOPTER=15, /* Octorotor | */
+	MAV_TYPE_FLAPPING_WING=16, /* Flapping wing | */
+	MAV_TYPE_ENUM_END=17, /*  | */
+};
+#endif
+
+/** @brief These flags encode the MAV mode. */
+#ifndef HAVE_ENUM_MAV_MODE_FLAG
+#define HAVE_ENUM_MAV_MODE_FLAG
+enum MAV_MODE_FLAG
+{
+	MAV_MODE_FLAG_CUSTOM_MODE_ENABLED=1, /* 0b00000001 Reserved for future use. | */
+	MAV_MODE_FLAG_TEST_ENABLED=2, /* 0b00000010 system has a test mode enabled. This flag is intended for temporary system tests and should not be used for stable implementations. | */
+	MAV_MODE_FLAG_AUTO_ENABLED=4, /* 0b00000100 autonomous mode enabled, system finds its own goal positions. Guided flag can be set or not, depends on the actual implementation. | */
+	MAV_MODE_FLAG_GUIDED_ENABLED=8, /* 0b00001000 guided mode enabled, system flies MISSIONs / mission items. | */
+	MAV_MODE_FLAG_STABILIZE_ENABLED=16, /* 0b00010000 system stabilizes electronically its attitude (and optionally position). It needs however further control inputs to move around. | */
+	MAV_MODE_FLAG_HIL_ENABLED=32, /* 0b00100000 hardware in the loop simulation. All motors / actuators are blocked, but internal software is full operational. | */
+	MAV_MODE_FLAG_MANUAL_INPUT_ENABLED=64, /* 0b01000000 remote control input is enabled. | */
+	MAV_MODE_FLAG_SAFETY_ARMED=128, /* 0b10000000 MAV safety set to armed. Motors are enabled / running / can start. Ready to fly. | */
+	MAV_MODE_FLAG_ENUM_END=129, /*  | */
+};
+#endif
+
+/** @brief These values encode the bit positions of the decode position. These values can be used to read the value of a flag bit by combining the base_mode variable with AND with the flag position value. The result will be either 0 or 1, depending on if the flag is set or not. */
+#ifndef HAVE_ENUM_MAV_MODE_FLAG_DECODE_POSITION
+#define HAVE_ENUM_MAV_MODE_FLAG_DECODE_POSITION
+enum MAV_MODE_FLAG_DECODE_POSITION
+{
+	MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE=1, /* Eighth bit: 00000001 | */
+	MAV_MODE_FLAG_DECODE_POSITION_TEST=2, /* Seventh bit: 00000010 | */
+	MAV_MODE_FLAG_DECODE_POSITION_AUTO=4, /* Sixt bit:   00000100 | */
+	MAV_MODE_FLAG_DECODE_POSITION_GUIDED=8, /* Fifth bit:  00001000 | */
+	MAV_MODE_FLAG_DECODE_POSITION_STABILIZE=16, /* Fourth bit: 00010000 | */
+	MAV_MODE_FLAG_DECODE_POSITION_HIL=32, /* Third bit:  00100000 | */
+	MAV_MODE_FLAG_DECODE_POSITION_MANUAL=64, /* Second bit: 01000000 | */
+	MAV_MODE_FLAG_DECODE_POSITION_SAFETY=128, /* First bit:  10000000 | */
+	MAV_MODE_FLAG_DECODE_POSITION_ENUM_END=129, /*  | */
+};
+#endif
+
+/** @brief Override command, pauses current mission execution and moves immediately to a position */
+#ifndef HAVE_ENUM_MAV_GOTO
+#define HAVE_ENUM_MAV_GOTO
+enum MAV_GOTO
+{
+	MAV_GOTO_DO_HOLD=0, /* Hold at the current position. | */
+	MAV_GOTO_DO_CONTINUE=1, /* Continue with the next item in mission execution. | */
+	MAV_GOTO_HOLD_AT_CURRENT_POSITION=2, /* Hold at the current position of the system | */
+	MAV_GOTO_HOLD_AT_SPECIFIED_POSITION=3, /* Hold at the position specified in the parameters of the DO_HOLD action | */
+	MAV_GOTO_ENUM_END=4, /*  | */
+};
+#endif
+
+/** @brief These defines are predefined OR-combined mode flags. There is no need to use values from this enum, but it
+               simplifies the use of the mode flags. Note that manual input is enabled in all modes as a safety override. */
+#ifndef HAVE_ENUM_MAV_MODE
+#define HAVE_ENUM_MAV_MODE
+enum MAV_MODE
+{
+	MAV_MODE_PREFLIGHT=0, /* System is not ready to fly, booting, calibrating, etc. No flag is set. | */
+	MAV_MODE_MANUAL_DISARMED=64, /* System is allowed to be active, under manual (RC) control, no stabilization | */
+	MAV_MODE_TEST_DISARMED=66, /* UNDEFINED mode. This solely depends on the autopilot - use with caution, intended for developers only. | */
+	MAV_MODE_STABILIZE_DISARMED=80, /* System is allowed to be active, under assisted RC control. | */
+	MAV_MODE_GUIDED_DISARMED=88, /* System is allowed to be active, under autonomous control, manual setpoint | */
+	MAV_MODE_AUTO_DISARMED=92, /* System is allowed to be active, under autonomous control and navigation (the trajectory is decided onboard and not pre-programmed by MISSIONs) | */
+	MAV_MODE_MANUAL_ARMED=192, /* System is allowed to be active, under manual (RC) control, no stabilization | */
+	MAV_MODE_TEST_ARMED=194, /* UNDEFINED mode. This solely depends on the autopilot - use with caution, intended for developers only. | */
+	MAV_MODE_STABILIZE_ARMED=208, /* System is allowed to be active, under assisted RC control. | */
+	MAV_MODE_GUIDED_ARMED=216, /* System is allowed to be active, under autonomous control, manual setpoint | */
+	MAV_MODE_AUTO_ARMED=220, /* System is allowed to be active, under autonomous control and navigation (the trajectory is decided onboard and not pre-programmed by MISSIONs) | */
+	MAV_MODE_ENUM_END=221, /*  | */
+};
+#endif
+
+/** @brief  */
+#ifndef HAVE_ENUM_MAV_STATE
+#define HAVE_ENUM_MAV_STATE
+enum MAV_STATE
+{
+	MAV_STATE_UNINIT=0, /* Uninitialized system, state is unknown. | */
+	MAV_STATE_BOOT=1, /* System is booting up. | */
+	MAV_STATE_CALIBRATING=2, /* System is calibrating and not flight-ready. | */
+	MAV_STATE_STANDBY=3, /* System is grounded and on standby. It can be launched any time. | */
+	MAV_STATE_ACTIVE=4, /* System is active and might be already airborne. Motors are engaged. | */
+	MAV_STATE_CRITICAL=5, /* System is in a non-normal flight mode. It can however still navigate. | */
+	MAV_STATE_EMERGENCY=6, /* System is in a non-normal flight mode. It lost control over parts or over the whole airframe. It is in mayday and going down. | */
+	MAV_STATE_POWEROFF=7, /* System just initialized its power-down sequence, will shut down now. | */
+	MAV_STATE_ENUM_END=8, /*  | */
+};
+#endif
+
+/** @brief  */
+#ifndef HAVE_ENUM_MAV_COMPONENT
+#define HAVE_ENUM_MAV_COMPONENT
+enum MAV_COMPONENT
+{
+	MAV_COMP_ID_ALL=0, /*  | */
+	MAV_COMP_ID_CAMERA=100, /*  | */
+	MAV_COMP_ID_SERVO1=140, /*  | */
+	MAV_COMP_ID_SERVO2=141, /*  | */
+	MAV_COMP_ID_SERVO3=142, /*  | */
+	MAV_COMP_ID_SERVO4=143, /*  | */
+	MAV_COMP_ID_SERVO5=144, /*  | */
+	MAV_COMP_ID_SERVO6=145, /*  | */
+	MAV_COMP_ID_SERVO7=146, /*  | */
+	MAV_COMP_ID_SERVO8=147, /*  | */
+	MAV_COMP_ID_SERVO9=148, /*  | */
+	MAV_COMP_ID_SERVO10=149, /*  | */
+	MAV_COMP_ID_SERVO11=150, /*  | */
+	MAV_COMP_ID_SERVO12=151, /*  | */
+	MAV_COMP_ID_SERVO13=152, /*  | */
+	MAV_COMP_ID_SERVO14=153, /*  | */
+	MAV_COMP_ID_MAPPER=180, /*  | */
+	MAV_COMP_ID_MISSIONPLANNER=190, /*  | */
+	MAV_COMP_ID_PATHPLANNER=195, /*  | */
+	MAV_COMP_ID_IMU=200, /*  | */
+	MAV_COMP_ID_IMU_2=201, /*  | */
+	MAV_COMP_ID_IMU_3=202, /*  | */
+	MAV_COMP_ID_GPS=220, /*  | */
+	MAV_COMP_ID_UDP_BRIDGE=240, /*  | */
+	MAV_COMP_ID_UART_BRIDGE=241, /*  | */
+	MAV_COMP_ID_SYSTEM_CONTROL=250, /*  | */
+	MAV_COMPONENT_ENUM_END=251, /*  | */
+};
+#endif
+
+/** @brief  */
+#ifndef HAVE_ENUM_MAV_FRAME
+#define HAVE_ENUM_MAV_FRAME
+enum MAV_FRAME
+{
+	MAV_FRAME_GLOBAL=0, /* Global coordinate frame, WGS84 coordinate system. First value / x: latitude, second value / y: longitude, third value / z: positive altitude over mean sea level (MSL) | */
+	MAV_FRAME_LOCAL_NED=1, /* Local coordinate frame, Z-up (x: north, y: east, z: down). | */
+	MAV_FRAME_MISSION=2, /* NOT a coordinate frame, indicates a mission command. | */
+	MAV_FRAME_GLOBAL_RELATIVE_ALT=3, /* Global coordinate frame, WGS84 coordinate system, relative altitude over ground with respect to the home position. First value / x: latitude, second value / y: longitude, third value / z: positive altitude with 0 being at the altitude of the home location. | */
+	MAV_FRAME_LOCAL_ENU=4, /* Local coordinate frame, Z-down (x: east, y: north, z: up) | */
+	MAV_FRAME_ENUM_END=5, /*  | */
+};
+#endif
+
+/** @brief  */
+#ifndef HAVE_ENUM_MAVLINK_DATA_STREAM_TYPE
+#define HAVE_ENUM_MAVLINK_DATA_STREAM_TYPE
+enum MAVLINK_DATA_STREAM_TYPE
+{
+	MAVLINK_DATA_STREAM_IMG_JPEG=1, /*  | */
+	MAVLINK_DATA_STREAM_IMG_BMP=2, /*  | */
+	MAVLINK_DATA_STREAM_IMG_RAW8U=3, /*  | */
+	MAVLINK_DATA_STREAM_IMG_RAW32U=4, /*  | */
+	MAVLINK_DATA_STREAM_IMG_PGM=5, /*  | */
+	MAVLINK_DATA_STREAM_IMG_PNG=6, /*  | */
+	MAVLINK_DATA_STREAM_TYPE_ENUM_END=7, /*  | */
+};
+#endif
+
+/** @brief Commands to be executed by the MAV. They can be executed on user request, or as part of a mission script. If the action is used in a mission, the parameter mapping to the waypoint/mission message is as follows: Param 1, Param 2, Param 3, Param 4, X: Param 5, Y:Param 6, Z:Param 7. This command list is similar what ARINC 424 is for commercial aircraft: A data format how to interpret waypoint/mission data. */
+#ifndef HAVE_ENUM_MAV_CMD
+#define HAVE_ENUM_MAV_CMD
+enum MAV_CMD
+{
+	MAV_CMD_NAV_WAYPOINT=16, /* Navigate to MISSION. |Hold time in decimal seconds. (ignored by fixed wing, time to stay at MISSION for rotary wing)| Acceptance radius in meters (if the sphere with this radius is hit, the MISSION counts as reached)| 0 to pass through the WP, if > 0 radius in meters to pass by WP. Positive value for clockwise orbit, negative value for counter-clockwise orbit. Allows trajectory control.| Desired yaw angle at MISSION (rotary wing)| Latitude| Longitude| Altitude|  */
+	MAV_CMD_NAV_LOITER_UNLIM=17, /* Loiter around this MISSION an unlimited amount of time |Empty| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  */
+	MAV_CMD_NAV_LOITER_TURNS=18, /* Loiter around this MISSION for X turns |Turns| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  */
+	MAV_CMD_NAV_LOITER_TIME=19, /* Loiter around this MISSION for X seconds |Seconds (decimal)| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  */
+	MAV_CMD_NAV_RETURN_TO_LAUNCH=20, /* Return to launch location |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_NAV_LAND=21, /* Land at location |Empty| Empty| Empty| Desired yaw angle.| Latitude| Longitude| Altitude|  */
+	MAV_CMD_NAV_TAKEOFF=22, /* Takeoff from ground / hand |Minimum pitch (if airspeed sensor present), desired pitch without sensor| Empty| Empty| Yaw angle (if magnetometer present), ignored without magnetometer| Latitude| Longitude| Altitude|  */
+	MAV_CMD_NAV_ROI=80, /* Sets the region of interest (ROI) for a sensor set or the vehicle itself. This can then be used by the vehicles control system to control the vehicle attitude and the attitude of various sensors such as cameras. |Region of intereset mode. (see MAV_ROI enum)| MISSION index/ target ID. (see MAV_ROI enum)| ROI index (allows a vehicle to manage multiple ROI's)| Empty| x the location of the fixed ROI (see MAV_FRAME)| y| z|  */
+	MAV_CMD_NAV_PATHPLANNING=81, /* Control autonomous path planning on the MAV. |0: Disable local obstacle avoidance / local path planning (without resetting map), 1: Enable local path planning, 2: Enable and reset local path planning| 0: Disable full path planning (without resetting map), 1: Enable, 2: Enable and reset map/occupancy grid, 3: Enable and reset planned route, but not occupancy grid| Empty| Yaw angle at goal, in compass degrees, [0..360]| Latitude/X of goal| Longitude/Y of goal| Altitude/Z of goal|  */
+	MAV_CMD_NAV_LAST=95, /* NOP - This command is only used to mark the upper limit of the NAV/ACTION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_CONDITION_DELAY=112, /* Delay mission state machine. |Delay in seconds (decimal)| Empty| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_CONDITION_CHANGE_ALT=113, /* Ascend/descend at rate.  Delay mission state machine until desired altitude reached. |Descent / Ascend rate (m/s)| Empty| Empty| Empty| Empty| Empty| Finish Altitude|  */
+	MAV_CMD_CONDITION_DISTANCE=114, /* Delay mission state machine until within desired distance of next NAV point. |Distance (meters)| Empty| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_CONDITION_YAW=115, /* Reach a certain target angle. |target angle: [0-360], 0 is north| speed during yaw change:[deg per second]| direction: negative: counter clockwise, positive: clockwise [-1,1]| relative offset or absolute angle: [ 1,0]| Empty| Empty| Empty|  */
+	MAV_CMD_CONDITION_LAST=159, /* NOP - This command is only used to mark the upper limit of the CONDITION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_DO_SET_MODE=176, /* Set system mode. |Mode, as defined by ENUM MAV_MODE| Empty| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_DO_JUMP=177, /* Jump to the desired command in the mission list.  Repeat this action only the specified number of times |Sequence number| Repeat count| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_DO_CHANGE_SPEED=178, /* Change speed and/or throttle set points. |Speed type (0=Airspeed, 1=Ground Speed)| Speed  (m/s, -1 indicates no change)| Throttle  ( Percent, -1 indicates no change)| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_DO_SET_HOME=179, /* Changes the home location either to the current location or a specified location. |Use current (1=use current location, 0=use specified location)| Empty| Empty| Empty| Latitude| Longitude| Altitude|  */
+	MAV_CMD_DO_SET_PARAMETER=180, /* Set a system parameter.  Caution!  Use of this command requires knowledge of the numeric enumeration value of the parameter. |Parameter number| Parameter value| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_DO_SET_RELAY=181, /* Set a relay to a condition. |Relay number| Setting (1=on, 0=off, others possible depending on system hardware)| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_DO_REPEAT_RELAY=182, /* Cycle a relay on and off for a desired number of cyles with a desired period. |Relay number| Cycle count| Cycle time (seconds, decimal)| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_DO_SET_SERVO=183, /* Set a servo to a desired PWM value. |Servo number| PWM (microseconds, 1000 to 2000 typical)| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_DO_REPEAT_SERVO=184, /* Cycle a between its nominal setting and a desired PWM for a desired number of cycles with a desired period. |Servo number| PWM (microseconds, 1000 to 2000 typical)| Cycle count| Cycle time (seconds)| Empty| Empty| Empty|  */
+	MAV_CMD_DO_CONTROL_VIDEO=200, /* Control onboard camera system. |Camera ID (-1 for all)| Transmission: 0: disabled, 1: enabled compressed, 2: enabled raw| Transmission mode: 0: video stream, >0: single images every n seconds (decimal)| Recording: 0: disabled, 1: enabled compressed, 2: enabled raw| Empty| Empty| Empty|  */
+	MAV_CMD_DO_LAST=240, /* NOP - This command is only used to mark the upper limit of the DO commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
+	MAV_CMD_PREFLIGHT_CALIBRATION=241, /* Trigger calibration. This command will be only accepted if in pre-flight mode. |Gyro calibration: 0: no, 1: yes| Magnetometer calibration: 0: no, 1: yes| Ground pressure: 0: no, 1: yes| Radio calibration: 0: no, 1: yes| Empty| Empty| Empty|  */
+	MAV_CMD_PREFLIGHT_SET_SENSOR_OFFSETS=242, /* Set sensor offsets. This command will be only accepted if in pre-flight mode. |Sensor to adjust the offsets for: 0: gyros, 1: accelerometer, 2: magnetometer, 3: barometer, 4: optical flow| X axis offset (or generic dimension 1), in the sensor's raw units| Y axis offset (or generic dimension 2), in the sensor's raw units| Z axis offset (or generic dimension 3), in the sensor's raw units| Generic dimension 4, in the sensor's raw units| Generic dimension 5, in the sensor's raw units| Generic dimension 6, in the sensor's raw units|  */
+	MAV_CMD_PREFLIGHT_STORAGE=245, /* Request storage of different parameter values and logs. This command will be only accepted if in pre-flight mode. |Parameter storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM| Mission storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM| Reserved| Reserved| Empty| Empty| Empty|  */
+	MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN=246, /* Request the reboot or shutdown of system components. |0: Do nothing for autopilot, 1: Reboot autopilot, 2: Shutdown autopilot.| 0: Do nothing for onboard computer, 1: Reboot onboard computer, 2: Shutdown onboard computer.| Reserved| Reserved| Empty| Empty| Empty|  */
+	MAV_CMD_OVERRIDE_GOTO=252, /* Hold / continue the current action |MAV_GOTO_DO_HOLD: hold MAV_GOTO_DO_CONTINUE: continue with next item in mission plan| MAV_GOTO_HOLD_AT_CURRENT_POSITION: Hold at current position MAV_GOTO_HOLD_AT_SPECIFIED_POSITION: hold at specified position| MAV_FRAME coordinate frame of hold point| Desired yaw angle in degrees| Latitude / X position| Longitude / Y position| Altitude / Z position|  */
+	MAV_CMD_MISSION_START=300, /* start running a mission |first_item: the first mission item to run| last_item:  the last mission item to run (after this item is run, the mission ends)|  */
+	MAV_CMD_COMPONENT_ARM_DISARM=400, /* Arms / Disarms a component |1 to arm, 0 to disarm|  */
+	MAV_CMD_ENUM_END=401, /*  | */
+};
+#endif
+
+/** @brief Data stream IDs. A data stream is not a fixed set of messages, but rather a
+     recommendation to the autopilot software. Individual autopilots may or may not obey
+     the recommended messages. */
+#ifndef HAVE_ENUM_MAV_DATA_STREAM
+#define HAVE_ENUM_MAV_DATA_STREAM
+enum MAV_DATA_STREAM
+{
+	MAV_DATA_STREAM_ALL=0, /* Enable all data streams | */
+	MAV_DATA_STREAM_RAW_SENSORS=1, /* Enable IMU_RAW, GPS_RAW, GPS_STATUS packets. | */
+	MAV_DATA_STREAM_EXTENDED_STATUS=2, /* Enable GPS_STATUS, CONTROL_STATUS, AUX_STATUS | */
+	MAV_DATA_STREAM_RC_CHANNELS=3, /* Enable RC_CHANNELS_SCALED, RC_CHANNELS_RAW, SERVO_OUTPUT_RAW | */
+	MAV_DATA_STREAM_RAW_CONTROLLER=4, /* Enable ATTITUDE_CONTROLLER_OUTPUT, POSITION_CONTROLLER_OUTPUT, NAV_CONTROLLER_OUTPUT. | */
+	MAV_DATA_STREAM_POSITION=6, /* Enable LOCAL_POSITION, GLOBAL_POSITION/GLOBAL_POSITION_INT messages. | */
+	MAV_DATA_STREAM_EXTRA1=10, /* Dependent on the autopilot | */
+	MAV_DATA_STREAM_EXTRA2=11, /* Dependent on the autopilot | */
+	MAV_DATA_STREAM_EXTRA3=12, /* Dependent on the autopilot | */
+	MAV_DATA_STREAM_ENUM_END=13, /*  | */
+};
+#endif
+
+/** @brief  The ROI (region of interest) for the vehicle. This can be
+                be used by the vehicle for camera/vehicle attitude alignment (see
+                MAV_CMD_NAV_ROI). */
+#ifndef HAVE_ENUM_MAV_ROI
+#define HAVE_ENUM_MAV_ROI
+enum MAV_ROI
+{
+	MAV_ROI_NONE=0, /* No region of interest. | */
+	MAV_ROI_WPNEXT=1, /* Point toward next MISSION. | */
+	MAV_ROI_WPINDEX=2, /* Point toward given MISSION. | */
+	MAV_ROI_LOCATION=3, /* Point toward fixed location. | */
+	MAV_ROI_TARGET=4, /* Point toward of given id. | */
+	MAV_ROI_ENUM_END=5, /*  | */
+};
+#endif
+
+/** @brief ACK / NACK / ERROR values as a result of MAV_CMDs and for mission item transmission. */
+#ifndef HAVE_ENUM_MAV_CMD_ACK
+#define HAVE_ENUM_MAV_CMD_ACK
+enum MAV_CMD_ACK
+{
+	MAV_CMD_ACK_OK=1, /* Command / mission item is ok. | */
+	MAV_CMD_ACK_ERR_FAIL=2, /* Generic error message if none of the other reasons fails or if no detailed error reporting is implemented. | */
+	MAV_CMD_ACK_ERR_ACCESS_DENIED=3, /* The system is refusing to accept this command from this source / communication partner. | */
+	MAV_CMD_ACK_ERR_NOT_SUPPORTED=4, /* Command or mission item is not supported, other commands would be accepted. | */
+	MAV_CMD_ACK_ERR_COORDINATE_FRAME_NOT_SUPPORTED=5, /* The coordinate frame of this command / mission item is not supported. | */
+	MAV_CMD_ACK_ERR_COORDINATES_OUT_OF_RANGE=6, /* The coordinate frame of this command is ok, but he coordinate values exceed the safety limits of this system. This is a generic error, please use the more specific error messages below if possible. | */
+	MAV_CMD_ACK_ERR_X_LAT_OUT_OF_RANGE=7, /* The X or latitude value is out of range. | */
+	MAV_CMD_ACK_ERR_Y_LON_OUT_OF_RANGE=8, /* The Y or longitude value is out of range. | */
+	MAV_CMD_ACK_ERR_Z_ALT_OUT_OF_RANGE=9, /* The Z or altitude value is out of range. | */
+	MAV_CMD_ACK_ENUM_END=10, /*  | */
+};
+#endif
+
+/** @brief type of a mavlink parameter */
+#ifndef HAVE_ENUM_MAV_VAR
+#define HAVE_ENUM_MAV_VAR
+enum MAV_VAR
+{
+	MAV_VAR_FLOAT=0, /* 32 bit float | */
+	MAV_VAR_UINT8=1, /* 8 bit unsigned integer | */
+	MAV_VAR_INT8=2, /* 8 bit signed integer | */
+	MAV_VAR_UINT16=3, /* 16 bit unsigned integer | */
+	MAV_VAR_INT16=4, /* 16 bit signed integer | */
+	MAV_VAR_UINT32=5, /* 32 bit unsigned integer | */
+	MAV_VAR_INT32=6, /* 32 bit signed integer | */
+	MAV_VAR_ENUM_END=7, /*  | */
+};
+#endif
+
+/** @brief result from a mavlink command */
+#ifndef HAVE_ENUM_MAV_RESULT
+#define HAVE_ENUM_MAV_RESULT
+enum MAV_RESULT
+{
+	MAV_RESULT_ACCEPTED=0, /* Command ACCEPTED and EXECUTED | */
+	MAV_RESULT_TEMPORARILY_REJECTED=1, /* Command TEMPORARY REJECTED/DENIED | */
+	MAV_RESULT_DENIED=2, /* Command PERMANENTLY DENIED | */
+	MAV_RESULT_UNSUPPORTED=3, /* Command UNKNOWN/UNSUPPORTED | */
+	MAV_RESULT_FAILED=4, /* Command executed, but failed | */
+	MAV_RESULT_ENUM_END=5, /*  | */
+};
+#endif
+
+/** @brief result in a mavlink mission ack */
+#ifndef HAVE_ENUM_MAV_MISSION_RESULT
+#define HAVE_ENUM_MAV_MISSION_RESULT
+enum MAV_MISSION_RESULT
+{
+	MAV_MISSION_ACCEPTED=0, /* mission accepted OK | */
+	MAV_MISSION_ERROR=1, /* generic error / not accepting mission commands at all right now | */
+	MAV_MISSION_UNSUPPORTED_FRAME=2, /* coordinate frame is not supported | */
+	MAV_MISSION_UNSUPPORTED=3, /* command is not supported | */
+	MAV_MISSION_NO_SPACE=4, /* mission item exceeds storage space | */
+	MAV_MISSION_INVALID=5, /* one of the parameters has an invalid value | */
+	MAV_MISSION_INVALID_PARAM1=6, /* param1 has an invalid value | */
+	MAV_MISSION_INVALID_PARAM2=7, /* param2 has an invalid value | */
+	MAV_MISSION_INVALID_PARAM3=8, /* param3 has an invalid value | */
+	MAV_MISSION_INVALID_PARAM4=9, /* param4 has an invalid value | */
+	MAV_MISSION_INVALID_PARAM5_X=10, /* x/param5 has an invalid value | */
+	MAV_MISSION_INVALID_PARAM6_Y=11, /* y/param6 has an invalid value | */
+	MAV_MISSION_INVALID_PARAM7=12, /* param7 has an invalid value | */
+	MAV_MISSION_INVALID_SEQUENCE=13, /* received waypoint out of sequence | */
+	MAV_MISSION_DENIED=14, /* not accepting any mission commands from this communication partner | */
+	MAV_MISSION_RESULT_ENUM_END=15, /*  | */
+};
+#endif
+
+/** @brief Indicates the severity level, generally used for status messages to indicate their relative urgency. Based on RFC-5424 using expanded definitions at: http://www.kiwisyslog.com/kb/info:-syslog-message-levels/. */
+#ifndef HAVE_ENUM_MAV_SEVERITY
+#define HAVE_ENUM_MAV_SEVERITY
+enum MAV_SEVERITY
+{
+	MAV_SEVERITY_EMERGENCY=0, /* System is unusable. This is a "panic" condition. | */
+	MAV_SEVERITY_ALERT=1, /* Action should be taken immediately. Indicates error in non-critical systems. | */
+	MAV_SEVERITY_CRITICAL=2, /* Action must be taken immediately. Indicates failure in a primary system. | */
+	MAV_SEVERITY_ERROR=3, /* Indicates an error in secondary/redundant systems. | */
+	MAV_SEVERITY_WARNING=4, /* Indicates about a possible future error if this is not resolved within a given timeframe. Example would be a low battery warning. | */
+	MAV_SEVERITY_NOTICE=5, /* An unusual event has occured, though not an error condition. This should be investigated for the root cause. | */
+	MAV_SEVERITY_INFO=6, /* Normal operational messages. Useful for logging. No action is required for these messages. | */
+	MAV_SEVERITY_DEBUG=7, /* Useful non-operational messages that can assist in debugging. These should not occur during normal operation. | */
+	MAV_SEVERITY_ENUM_END=8, /*  | */
+};
+#endif
+
+// MESSAGE DEFINITIONS
+#include "./mavlink_msg_heartbeat.h"
+#include "./mavlink_msg_sys_status.h"
+#include "./mavlink_msg_system_time.h"
+#include "./mavlink_msg_ping.h"
+#include "./mavlink_msg_change_operator_control.h"
+#include "./mavlink_msg_change_operator_control_ack.h"
+#include "./mavlink_msg_auth_key.h"
+#include "./mavlink_msg_set_mode.h"
+#include "./mavlink_msg_param_request_read.h"
+#include "./mavlink_msg_param_request_list.h"
+#include "./mavlink_msg_param_value.h"
+#include "./mavlink_msg_param_set.h"
+#include "./mavlink_msg_gps_raw_int.h"
+#include "./mavlink_msg_gps_status.h"
+#include "./mavlink_msg_scaled_imu.h"
+#include "./mavlink_msg_raw_imu.h"
+#include "./mavlink_msg_raw_pressure.h"
+#include "./mavlink_msg_scaled_pressure.h"
+#include "./mavlink_msg_attitude.h"
+#include "./mavlink_msg_attitude_quaternion.h"
+#include "./mavlink_msg_local_position_ned.h"
+#include "./mavlink_msg_global_position_int.h"
+#include "./mavlink_msg_rc_channels_scaled.h"
+#include "./mavlink_msg_rc_channels_raw.h"
+#include "./mavlink_msg_servo_output_raw.h"
+#include "./mavlink_msg_mission_request_partial_list.h"
+#include "./mavlink_msg_mission_write_partial_list.h"
+#include "./mavlink_msg_mission_item.h"
+#include "./mavlink_msg_mission_request.h"
+#include "./mavlink_msg_mission_set_current.h"
+#include "./mavlink_msg_mission_current.h"
+#include "./mavlink_msg_mission_request_list.h"
+#include "./mavlink_msg_mission_count.h"
+#include "./mavlink_msg_mission_clear_all.h"
+#include "./mavlink_msg_mission_item_reached.h"
+#include "./mavlink_msg_mission_ack.h"
+#include "./mavlink_msg_set_gps_global_origin.h"
+#include "./mavlink_msg_gps_global_origin.h"
+#include "./mavlink_msg_set_local_position_setpoint.h"
+#include "./mavlink_msg_local_position_setpoint.h"
+#include "./mavlink_msg_global_position_setpoint_int.h"
+#include "./mavlink_msg_set_global_position_setpoint_int.h"
+#include "./mavlink_msg_safety_set_allowed_area.h"
+#include "./mavlink_msg_safety_allowed_area.h"
+#include "./mavlink_msg_set_roll_pitch_yaw_thrust.h"
+#include "./mavlink_msg_set_roll_pitch_yaw_speed_thrust.h"
+#include "./mavlink_msg_roll_pitch_yaw_thrust_setpoint.h"
+#include "./mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h"
+#include "./mavlink_msg_set_quad_motors_setpoint.h"
+#include "./mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust.h"
+#include "./mavlink_msg_nav_controller_output.h"
+#include "./mavlink_msg_state_correction.h"
+#include "./mavlink_msg_request_data_stream.h"
+#include "./mavlink_msg_data_stream.h"
+#include "./mavlink_msg_manual_control.h"
+#include "./mavlink_msg_rc_channels_override.h"
+#include "./mavlink_msg_vfr_hud.h"
+#include "./mavlink_msg_command_long.h"
+#include "./mavlink_msg_command_ack.h"
+#include "./mavlink_msg_local_position_ned_system_global_offset.h"
+#include "./mavlink_msg_hil_state.h"
+#include "./mavlink_msg_hil_controls.h"
+#include "./mavlink_msg_hil_rc_inputs_raw.h"
+#include "./mavlink_msg_optical_flow.h"
+#include "./mavlink_msg_global_vision_position_estimate.h"
+#include "./mavlink_msg_vision_position_estimate.h"
+#include "./mavlink_msg_vision_speed_estimate.h"
+#include "./mavlink_msg_vicon_position_estimate.h"
+#include "./mavlink_msg_memory_vect.h"
+#include "./mavlink_msg_debug_vect.h"
+#include "./mavlink_msg_named_value_float.h"
+#include "./mavlink_msg_named_value_int.h"
+#include "./mavlink_msg_statustext.h"
+#include "./mavlink_msg_debug.h"
+
+#ifdef __cplusplus
+}
+#endif // __cplusplus
+#endif // COMMON_H
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink.h
similarity index 100%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink.h
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_attitude.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_attitude.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_attitude.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_attitude.h
index 16045b9747698c4d3d391a2084554fbddbe9c964..9074a1d80fec2502ea7155e082c8adf3091bb102 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_attitude.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_attitude.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_attitude_pack(uint8_t system_id, uint8_t comp
 	_mav_put_float(buf, 20, pitchspeed);
 	_mav_put_float(buf, 24, yawspeed);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
 #else
 	mavlink_attitude_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_attitude_pack(uint8_t system_id, uint8_t comp
 	packet.pitchspeed = pitchspeed;
 	packet.yawspeed = yawspeed;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ATTITUDE;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_attitude_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_float(buf, 20, pitchspeed);
 	_mav_put_float(buf, 24, yawspeed);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
 #else
 	mavlink_attitude_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_attitude_pack_chan(uint8_t system_id, uint8_t
 	packet.pitchspeed = pitchspeed;
 	packet.yawspeed = yawspeed;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ATTITUDE;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_attitude_quaternion.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_attitude_quaternion.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_attitude_quaternion.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_attitude_quaternion.h
index 215aff6d036d8c2a46ee3b4e99725e614c542940..556048865510de531bcac997826e7a033d5f77f2 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_attitude_quaternion.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_attitude_quaternion.h
@@ -64,7 +64,7 @@ static inline uint16_t mavlink_msg_attitude_quaternion_pack(uint8_t system_id, u
 	_mav_put_float(buf, 24, pitchspeed);
 	_mav_put_float(buf, 28, yawspeed);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_attitude_quaternion_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -76,7 +76,7 @@ static inline uint16_t mavlink_msg_attitude_quaternion_pack(uint8_t system_id, u
 	packet.pitchspeed = pitchspeed;
 	packet.yawspeed = yawspeed;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ATTITUDE_QUATERNION;
@@ -114,7 +114,7 @@ static inline uint16_t mavlink_msg_attitude_quaternion_pack_chan(uint8_t system_
 	_mav_put_float(buf, 24, pitchspeed);
 	_mav_put_float(buf, 28, yawspeed);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_attitude_quaternion_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -126,7 +126,7 @@ static inline uint16_t mavlink_msg_attitude_quaternion_pack_chan(uint8_t system_
 	packet.pitchspeed = pitchspeed;
 	packet.yawspeed = yawspeed;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ATTITUDE_QUATERNION;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_auth_key.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_auth_key.h
similarity index 94%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_auth_key.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_auth_key.h
index cc77e4e54920653feb854e1c52c81c7511c6ef72..baa119fde1a17f020e2955eebf65dfcc5ab97ba9 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_auth_key.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_auth_key.h
@@ -36,12 +36,12 @@ static inline uint16_t mavlink_msg_auth_key_pack(uint8_t system_id, uint8_t comp
 	char buf[32];
 
 	_mav_put_char_array(buf, 0, key, 32);
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_auth_key_t packet;
 
 	mav_array_memcpy(packet.key, key, sizeof(char)*32);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_AUTH_KEY;
@@ -65,12 +65,12 @@ static inline uint16_t mavlink_msg_auth_key_pack_chan(uint8_t system_id, uint8_t
 	char buf[32];
 
 	_mav_put_char_array(buf, 0, key, 32);
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_auth_key_t packet;
 
 	mav_array_memcpy(packet.key, key, sizeof(char)*32);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_AUTH_KEY;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_change_operator_control.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_change_operator_control.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_change_operator_control.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_change_operator_control.h
index d18194e2dad1fb8051220b39c5701a41525c7008..a558510084590c26fd6bbd3848686aff36fa44c2 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_change_operator_control.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_change_operator_control.h
@@ -47,14 +47,14 @@ static inline uint16_t mavlink_msg_change_operator_control_pack(uint8_t system_i
 	_mav_put_uint8_t(buf, 1, control_request);
 	_mav_put_uint8_t(buf, 2, version);
 	_mav_put_char_array(buf, 3, passkey, 25);
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
 #else
 	mavlink_change_operator_control_t packet;
 	packet.target_system = target_system;
 	packet.control_request = control_request;
 	packet.version = version;
 	mav_array_memcpy(packet.passkey, passkey, sizeof(char)*25);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL;
@@ -83,14 +83,14 @@ static inline uint16_t mavlink_msg_change_operator_control_pack_chan(uint8_t sys
 	_mav_put_uint8_t(buf, 1, control_request);
 	_mav_put_uint8_t(buf, 2, version);
 	_mav_put_char_array(buf, 3, passkey, 25);
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
 #else
 	mavlink_change_operator_control_t packet;
 	packet.target_system = target_system;
 	packet.control_request = control_request;
 	packet.version = version;
 	mav_array_memcpy(packet.passkey, passkey, sizeof(char)*25);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_change_operator_control_ack.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_change_operator_control_ack.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_change_operator_control_ack.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_change_operator_control_ack.h
index 25e6a6d831ad900a217f0afd09febec67daf85f7..1d89a0f787536d049c6fc19e827a34928965878b 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_change_operator_control_ack.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_change_operator_control_ack.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_change_operator_control_ack_pack(uint8_t syst
 	_mav_put_uint8_t(buf, 1, control_request);
 	_mav_put_uint8_t(buf, 2, ack);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_change_operator_control_ack_t packet;
 	packet.gcs_system_id = gcs_system_id;
 	packet.control_request = control_request;
 	packet.ack = ack;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_ACK;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_change_operator_control_ack_pack_chan(uint8_t
 	_mav_put_uint8_t(buf, 1, control_request);
 	_mav_put_uint8_t(buf, 2, ack);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_change_operator_control_ack_t packet;
 	packet.gcs_system_id = gcs_system_id;
 	packet.control_request = control_request;
 	packet.ack = ack;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_ACK;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_command_ack.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_command_ack.h
similarity index 95%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_command_ack.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_command_ack.h
index 2109e32072098fad9532d60ac220ccae49262fbe..df6e9b9e3b7ec998a2b2dbc37c7de695648eab01 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_command_ack.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_command_ack.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_command_ack_pack(uint8_t system_id, uint8_t c
 	_mav_put_uint16_t(buf, 0, command);
 	_mav_put_uint8_t(buf, 2, result);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_command_ack_t packet;
 	packet.command = command;
 	packet.result = result;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_COMMAND_ACK;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_command_ack_pack_chan(uint8_t system_id, uint
 	_mav_put_uint16_t(buf, 0, command);
 	_mav_put_uint8_t(buf, 2, result);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_command_ack_t packet;
 	packet.command = command;
 	packet.result = result;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_COMMAND_ACK;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_command_long.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_command_long.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_command_long.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_command_long.h
index 7a8bac533f6b1db3e4953c4f3b6c2a54e8531133..54ca77eaa2e5585d2f43d455a908ef15d56b370b 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_command_long.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_command_long.h
@@ -76,7 +76,7 @@ static inline uint16_t mavlink_msg_command_long_pack(uint8_t system_id, uint8_t
 	_mav_put_uint8_t(buf, 31, target_component);
 	_mav_put_uint8_t(buf, 32, confirmation);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 33);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 33);
 #else
 	mavlink_command_long_t packet;
 	packet.param1 = param1;
@@ -91,7 +91,7 @@ static inline uint16_t mavlink_msg_command_long_pack(uint8_t system_id, uint8_t
 	packet.target_component = target_component;
 	packet.confirmation = confirmation;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 33);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 33);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_COMMAND_LONG;
@@ -135,7 +135,7 @@ static inline uint16_t mavlink_msg_command_long_pack_chan(uint8_t system_id, uin
 	_mav_put_uint8_t(buf, 31, target_component);
 	_mav_put_uint8_t(buf, 32, confirmation);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 33);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 33);
 #else
 	mavlink_command_long_t packet;
 	packet.param1 = param1;
@@ -150,7 +150,7 @@ static inline uint16_t mavlink_msg_command_long_pack_chan(uint8_t system_id, uin
 	packet.target_component = target_component;
 	packet.confirmation = confirmation;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 33);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 33);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_COMMAND_LONG;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_data_stream.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_data_stream.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_data_stream.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_data_stream.h
index 1c8df4b41353567431ddc3a6da68cce43191c37a..e5ec290452f45c009051d9f098400787abfa645a 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_data_stream.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_data_stream.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_data_stream_pack(uint8_t system_id, uint8_t c
 	_mav_put_uint8_t(buf, 2, stream_id);
 	_mav_put_uint8_t(buf, 3, on_off);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_data_stream_t packet;
 	packet.message_rate = message_rate;
 	packet.stream_id = stream_id;
 	packet.on_off = on_off;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DATA_STREAM;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_data_stream_pack_chan(uint8_t system_id, uint
 	_mav_put_uint8_t(buf, 2, stream_id);
 	_mav_put_uint8_t(buf, 3, on_off);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_data_stream_t packet;
 	packet.message_rate = message_rate;
 	packet.stream_id = stream_id;
 	packet.on_off = on_off;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DATA_STREAM;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_debug.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_debug.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_debug.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_debug.h
index 1687a16cd26a19c0a35a3cb70ff1c2f1130318c9..5ff88e6a8a2cd9a71fe99bf9eb5296e591b9e456 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_debug.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_debug.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_debug_pack(uint8_t system_id, uint8_t compone
 	_mav_put_float(buf, 4, value);
 	_mav_put_uint8_t(buf, 8, ind);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 9);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 9);
 #else
 	mavlink_debug_t packet;
 	packet.time_boot_ms = time_boot_ms;
 	packet.value = value;
 	packet.ind = ind;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 9);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 9);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DEBUG;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_debug_pack_chan(uint8_t system_id, uint8_t co
 	_mav_put_float(buf, 4, value);
 	_mav_put_uint8_t(buf, 8, ind);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 9);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 9);
 #else
 	mavlink_debug_t packet;
 	packet.time_boot_ms = time_boot_ms;
 	packet.value = value;
 	packet.ind = ind;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 9);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 9);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DEBUG;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_debug_vect.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_debug_vect.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_debug_vect.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_debug_vect.h
index 8f3b9097282d1804b81387f977f7c97664574df1..0b443a061138eab5f5ffc8ed6caf5eafcd3d7f54 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_debug_vect.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_debug_vect.h
@@ -51,7 +51,7 @@ static inline uint16_t mavlink_msg_debug_vect_pack(uint8_t system_id, uint8_t co
 	_mav_put_float(buf, 12, y);
 	_mav_put_float(buf, 16, z);
 	_mav_put_char_array(buf, 20, name, 10);
-        memcpy(_MAV_PAYLOAD(msg), buf, 30);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 30);
 #else
 	mavlink_debug_vect_t packet;
 	packet.time_usec = time_usec;
@@ -59,7 +59,7 @@ static inline uint16_t mavlink_msg_debug_vect_pack(uint8_t system_id, uint8_t co
 	packet.y = y;
 	packet.z = z;
 	mav_array_memcpy(packet.name, name, sizeof(char)*10);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 30);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 30);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DEBUG_VECT;
@@ -90,7 +90,7 @@ static inline uint16_t mavlink_msg_debug_vect_pack_chan(uint8_t system_id, uint8
 	_mav_put_float(buf, 12, y);
 	_mav_put_float(buf, 16, z);
 	_mav_put_char_array(buf, 20, name, 10);
-        memcpy(_MAV_PAYLOAD(msg), buf, 30);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 30);
 #else
 	mavlink_debug_vect_t packet;
 	packet.time_usec = time_usec;
@@ -98,7 +98,7 @@ static inline uint16_t mavlink_msg_debug_vect_pack_chan(uint8_t system_id, uint8
 	packet.y = y;
 	packet.z = z;
 	mav_array_memcpy(packet.name, name, sizeof(char)*10);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 30);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 30);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_DEBUG_VECT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_global_position_int.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_global_position_int.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_global_position_int.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_global_position_int.h
index c5be7fec6207570027b049b92d30b26a4cbf24b1..780f562c5b690b605553aac4d958602e1944af75 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_global_position_int.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_global_position_int.h
@@ -68,7 +68,7 @@ static inline uint16_t mavlink_msg_global_position_int_pack(uint8_t system_id, u
 	_mav_put_int16_t(buf, 24, vz);
 	_mav_put_uint16_t(buf, 26, hdg);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
 #else
 	mavlink_global_position_int_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -81,7 +81,7 @@ static inline uint16_t mavlink_msg_global_position_int_pack(uint8_t system_id, u
 	packet.vz = vz;
 	packet.hdg = hdg;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GLOBAL_POSITION_INT;
@@ -121,7 +121,7 @@ static inline uint16_t mavlink_msg_global_position_int_pack_chan(uint8_t system_
 	_mav_put_int16_t(buf, 24, vz);
 	_mav_put_uint16_t(buf, 26, hdg);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
 #else
 	mavlink_global_position_int_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -134,7 +134,7 @@ static inline uint16_t mavlink_msg_global_position_int_pack_chan(uint8_t system_
 	packet.vz = vz;
 	packet.hdg = hdg;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GLOBAL_POSITION_INT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_global_position_setpoint_int.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_global_position_setpoint_int.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_global_position_setpoint_int.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_global_position_setpoint_int.h
index e38df91dcf9479d277a742e1740e441dccb3596b..853b85daeb3f5b602dbd56b1a12674567b0aeead 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_global_position_setpoint_int.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_global_position_setpoint_int.h
@@ -52,7 +52,7 @@ static inline uint16_t mavlink_msg_global_position_setpoint_int_pack(uint8_t sys
 	_mav_put_int16_t(buf, 12, yaw);
 	_mav_put_uint8_t(buf, 14, coordinate_frame);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 15);
 #else
 	mavlink_global_position_setpoint_int_t packet;
 	packet.latitude = latitude;
@@ -61,7 +61,7 @@ static inline uint16_t mavlink_msg_global_position_setpoint_int_pack(uint8_t sys
 	packet.yaw = yaw;
 	packet.coordinate_frame = coordinate_frame;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 15);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GLOBAL_POSITION_SETPOINT_INT;
@@ -93,7 +93,7 @@ static inline uint16_t mavlink_msg_global_position_setpoint_int_pack_chan(uint8_
 	_mav_put_int16_t(buf, 12, yaw);
 	_mav_put_uint8_t(buf, 14, coordinate_frame);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 15);
 #else
 	mavlink_global_position_setpoint_int_t packet;
 	packet.latitude = latitude;
@@ -102,7 +102,7 @@ static inline uint16_t mavlink_msg_global_position_setpoint_int_pack_chan(uint8_
 	packet.yaw = yaw;
 	packet.coordinate_frame = coordinate_frame;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 15);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GLOBAL_POSITION_SETPOINT_INT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_global_vision_position_estimate.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_global_vision_position_estimate.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_global_vision_position_estimate.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_global_vision_position_estimate.h
index 06c6357b1ffb90984d5c79b7262ad90b90e02eae..e4617702bd4dee220fca267be5a23d040dd8818d 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_global_vision_position_estimate.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_global_vision_position_estimate.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_global_vision_position_estimate_pack(uint8_t
 	_mav_put_float(buf, 24, pitch);
 	_mav_put_float(buf, 28, yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_global_vision_position_estimate_t packet;
 	packet.usec = usec;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_global_vision_position_estimate_pack(uint8_t
 	packet.pitch = pitch;
 	packet.yaw = yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GLOBAL_VISION_POSITION_ESTIMATE;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_global_vision_position_estimate_pack_chan(uin
 	_mav_put_float(buf, 24, pitch);
 	_mav_put_float(buf, 28, yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_global_vision_position_estimate_t packet;
 	packet.usec = usec;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_global_vision_position_estimate_pack_chan(uin
 	packet.pitch = pitch;
 	packet.yaw = yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GLOBAL_VISION_POSITION_ESTIMATE;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_global_origin.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_gps_global_origin.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_global_origin.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_gps_global_origin.h
index 3df5a58f95af74876017148bd3c521ee70ac2db3..2084718b5d26b99fd773235585fd62b0262ddcc0 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_global_origin.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_gps_global_origin.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_gps_global_origin_pack(uint8_t system_id, uin
 	_mav_put_int32_t(buf, 4, longitude);
 	_mav_put_int32_t(buf, 8, altitude);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
 #else
 	mavlink_gps_global_origin_t packet;
 	packet.latitude = latitude;
 	packet.longitude = longitude;
 	packet.altitude = altitude;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_gps_global_origin_pack_chan(uint8_t system_id
 	_mav_put_int32_t(buf, 4, longitude);
 	_mav_put_int32_t(buf, 8, altitude);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
 #else
 	mavlink_gps_global_origin_t packet;
 	packet.latitude = latitude;
 	packet.longitude = longitude;
 	packet.altitude = altitude;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_raw_int.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_gps_raw_int.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_raw_int.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_gps_raw_int.h
index 866ada26e4e050b02293b64a0389ff1b2504e760..57ec97376327f784a3816d57c251e478820b8c23 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_raw_int.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_gps_raw_int.h
@@ -72,7 +72,7 @@ static inline uint16_t mavlink_msg_gps_raw_int_pack(uint8_t system_id, uint8_t c
 	_mav_put_uint8_t(buf, 28, fix_type);
 	_mav_put_uint8_t(buf, 29, satellites_visible);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 30);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 30);
 #else
 	mavlink_gps_raw_int_t packet;
 	packet.time_usec = time_usec;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_gps_raw_int_pack(uint8_t system_id, uint8_t c
 	packet.fix_type = fix_type;
 	packet.satellites_visible = satellites_visible;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 30);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 30);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GPS_RAW_INT;
@@ -128,7 +128,7 @@ static inline uint16_t mavlink_msg_gps_raw_int_pack_chan(uint8_t system_id, uint
 	_mav_put_uint8_t(buf, 28, fix_type);
 	_mav_put_uint8_t(buf, 29, satellites_visible);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 30);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 30);
 #else
 	mavlink_gps_raw_int_t packet;
 	packet.time_usec = time_usec;
@@ -142,7 +142,7 @@ static inline uint16_t mavlink_msg_gps_raw_int_pack_chan(uint8_t system_id, uint
 	packet.fix_type = fix_type;
 	packet.satellites_visible = satellites_visible;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 30);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 30);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GPS_RAW_INT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_status.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_gps_status.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_status.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_gps_status.h
index 5ae1f3ab1c942519a09ad9582fc5a74871671bac..bd3257f889b58c7bc7928a18e9d26ca583cbcba1 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_status.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_gps_status.h
@@ -59,7 +59,7 @@ static inline uint16_t mavlink_msg_gps_status_pack(uint8_t system_id, uint8_t co
 	_mav_put_uint8_t_array(buf, 41, satellite_elevation, 20);
 	_mav_put_uint8_t_array(buf, 61, satellite_azimuth, 20);
 	_mav_put_uint8_t_array(buf, 81, satellite_snr, 20);
-        memcpy(_MAV_PAYLOAD(msg), buf, 101);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 101);
 #else
 	mavlink_gps_status_t packet;
 	packet.satellites_visible = satellites_visible;
@@ -68,7 +68,7 @@ static inline uint16_t mavlink_msg_gps_status_pack(uint8_t system_id, uint8_t co
 	mav_array_memcpy(packet.satellite_elevation, satellite_elevation, sizeof(uint8_t)*20);
 	mav_array_memcpy(packet.satellite_azimuth, satellite_azimuth, sizeof(uint8_t)*20);
 	mav_array_memcpy(packet.satellite_snr, satellite_snr, sizeof(uint8_t)*20);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 101);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 101);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GPS_STATUS;
@@ -101,7 +101,7 @@ static inline uint16_t mavlink_msg_gps_status_pack_chan(uint8_t system_id, uint8
 	_mav_put_uint8_t_array(buf, 41, satellite_elevation, 20);
 	_mav_put_uint8_t_array(buf, 61, satellite_azimuth, 20);
 	_mav_put_uint8_t_array(buf, 81, satellite_snr, 20);
-        memcpy(_MAV_PAYLOAD(msg), buf, 101);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 101);
 #else
 	mavlink_gps_status_t packet;
 	packet.satellites_visible = satellites_visible;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_gps_status_pack_chan(uint8_t system_id, uint8
 	mav_array_memcpy(packet.satellite_elevation, satellite_elevation, sizeof(uint8_t)*20);
 	mav_array_memcpy(packet.satellite_azimuth, satellite_azimuth, sizeof(uint8_t)*20);
 	mav_array_memcpy(packet.satellite_snr, satellite_snr, sizeof(uint8_t)*20);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 101);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 101);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_GPS_STATUS;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_heartbeat.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_heartbeat.h
similarity index 84%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_heartbeat.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_heartbeat.h
index d194f2127717befb539a4049ce5471bfb1667fbc..599ea0bc5e9f6b95e1f290ec004610066b1e773a 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_heartbeat.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_heartbeat.h
@@ -4,12 +4,12 @@
 
 typedef struct __mavlink_heartbeat_t
 {
- uint32_t custom_mode; ///< Navigation mode bitfield, see MAV_AUTOPILOT_CUSTOM_MODE ENUM for some examples. This field is autopilot-specific.
+ uint32_t custom_mode; ///< A bitfield for use for autopilot-specific flags.
  uint8_t type; ///< Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM)
- uint8_t autopilot; ///< Autopilot type / class. defined in MAV_CLASS ENUM
+ uint8_t autopilot; ///< Autopilot type / class. defined in MAV_AUTOPILOT ENUM
  uint8_t base_mode; ///< System mode bitfield, see MAV_MODE_FLAGS ENUM in mavlink/include/mavlink_types.h
- uint8_t system_status; ///< System status flag, see MAV_STATUS ENUM
- uint8_t mavlink_version; ///< MAVLink version
+ uint8_t system_status; ///< System status flag, see MAV_STATE ENUM
+ uint8_t mavlink_version; ///< MAVLink version, not writable by user, gets added by protocol because of magic data type: uint8_t_mavlink_version
 } mavlink_heartbeat_t;
 
 #define MAVLINK_MSG_ID_HEARTBEAT_LEN 9
@@ -37,10 +37,10 @@ typedef struct __mavlink_heartbeat_t
  * @param msg The MAVLink message to compress the data into
  *
  * @param type Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM)
- * @param autopilot Autopilot type / class. defined in MAV_CLASS ENUM
+ * @param autopilot Autopilot type / class. defined in MAV_AUTOPILOT ENUM
  * @param base_mode System mode bitfield, see MAV_MODE_FLAGS ENUM in mavlink/include/mavlink_types.h
- * @param custom_mode Navigation mode bitfield, see MAV_AUTOPILOT_CUSTOM_MODE ENUM for some examples. This field is autopilot-specific.
- * @param system_status System status flag, see MAV_STATUS ENUM
+ * @param custom_mode A bitfield for use for autopilot-specific flags.
+ * @param system_status System status flag, see MAV_STATE ENUM
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_heartbeat_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
@@ -55,7 +55,7 @@ static inline uint16_t mavlink_msg_heartbeat_pack(uint8_t system_id, uint8_t com
 	_mav_put_uint8_t(buf, 7, system_status);
 	_mav_put_uint8_t(buf, 8, 3);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 9);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 9);
 #else
 	mavlink_heartbeat_t packet;
 	packet.custom_mode = custom_mode;
@@ -65,7 +65,7 @@ static inline uint16_t mavlink_msg_heartbeat_pack(uint8_t system_id, uint8_t com
 	packet.system_status = system_status;
 	packet.mavlink_version = 3;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 9);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 9);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HEARTBEAT;
@@ -79,10 +79,10 @@ static inline uint16_t mavlink_msg_heartbeat_pack(uint8_t system_id, uint8_t com
  * @param chan The MAVLink channel this message was sent over
  * @param msg The MAVLink message to compress the data into
  * @param type Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM)
- * @param autopilot Autopilot type / class. defined in MAV_CLASS ENUM
+ * @param autopilot Autopilot type / class. defined in MAV_AUTOPILOT ENUM
  * @param base_mode System mode bitfield, see MAV_MODE_FLAGS ENUM in mavlink/include/mavlink_types.h
- * @param custom_mode Navigation mode bitfield, see MAV_AUTOPILOT_CUSTOM_MODE ENUM for some examples. This field is autopilot-specific.
- * @param system_status System status flag, see MAV_STATUS ENUM
+ * @param custom_mode A bitfield for use for autopilot-specific flags.
+ * @param system_status System status flag, see MAV_STATE ENUM
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_heartbeat_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
@@ -98,7 +98,7 @@ static inline uint16_t mavlink_msg_heartbeat_pack_chan(uint8_t system_id, uint8_
 	_mav_put_uint8_t(buf, 7, system_status);
 	_mav_put_uint8_t(buf, 8, 3);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 9);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 9);
 #else
 	mavlink_heartbeat_t packet;
 	packet.custom_mode = custom_mode;
@@ -108,7 +108,7 @@ static inline uint16_t mavlink_msg_heartbeat_pack_chan(uint8_t system_id, uint8_
 	packet.system_status = system_status;
 	packet.mavlink_version = 3;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 9);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 9);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HEARTBEAT;
@@ -133,10 +133,10 @@ static inline uint16_t mavlink_msg_heartbeat_encode(uint8_t system_id, uint8_t c
  * @param chan MAVLink channel to send the message
  *
  * @param type Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM)
- * @param autopilot Autopilot type / class. defined in MAV_CLASS ENUM
+ * @param autopilot Autopilot type / class. defined in MAV_AUTOPILOT ENUM
  * @param base_mode System mode bitfield, see MAV_MODE_FLAGS ENUM in mavlink/include/mavlink_types.h
- * @param custom_mode Navigation mode bitfield, see MAV_AUTOPILOT_CUSTOM_MODE ENUM for some examples. This field is autopilot-specific.
- * @param system_status System status flag, see MAV_STATUS ENUM
+ * @param custom_mode A bitfield for use for autopilot-specific flags.
+ * @param system_status System status flag, see MAV_STATE ENUM
  */
 #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
 
@@ -183,7 +183,7 @@ static inline uint8_t mavlink_msg_heartbeat_get_type(const mavlink_message_t* ms
 /**
  * @brief Get field autopilot from heartbeat message
  *
- * @return Autopilot type / class. defined in MAV_CLASS ENUM
+ * @return Autopilot type / class. defined in MAV_AUTOPILOT ENUM
  */
 static inline uint8_t mavlink_msg_heartbeat_get_autopilot(const mavlink_message_t* msg)
 {
@@ -203,7 +203,7 @@ static inline uint8_t mavlink_msg_heartbeat_get_base_mode(const mavlink_message_
 /**
  * @brief Get field custom_mode from heartbeat message
  *
- * @return Navigation mode bitfield, see MAV_AUTOPILOT_CUSTOM_MODE ENUM for some examples. This field is autopilot-specific.
+ * @return A bitfield for use for autopilot-specific flags.
  */
 static inline uint32_t mavlink_msg_heartbeat_get_custom_mode(const mavlink_message_t* msg)
 {
@@ -213,7 +213,7 @@ static inline uint32_t mavlink_msg_heartbeat_get_custom_mode(const mavlink_messa
 /**
  * @brief Get field system_status from heartbeat message
  *
- * @return System status flag, see MAV_STATUS ENUM
+ * @return System status flag, see MAV_STATE ENUM
  */
 static inline uint8_t mavlink_msg_heartbeat_get_system_status(const mavlink_message_t* msg)
 {
@@ -223,7 +223,7 @@ static inline uint8_t mavlink_msg_heartbeat_get_system_status(const mavlink_mess
 /**
  * @brief Get field mavlink_version from heartbeat message
  *
- * @return MAVLink version
+ * @return MAVLink version, not writable by user, gets added by protocol because of magic data type: uint8_t_mavlink_version
  */
 static inline uint8_t mavlink_msg_heartbeat_get_mavlink_version(const mavlink_message_t* msg)
 {
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_hil_controls.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_hil_controls.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_hil_controls.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_hil_controls.h
index 23c84bc562e1cd696e8cc7ffd7c6b3a5584cee1b..41a9bc9498b63aa0134310d8e1db72df517df75d 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_hil_controls.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_hil_controls.h
@@ -76,7 +76,7 @@ static inline uint16_t mavlink_msg_hil_controls_pack(uint8_t system_id, uint8_t
 	_mav_put_uint8_t(buf, 40, mode);
 	_mav_put_uint8_t(buf, 41, nav_mode);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 42);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 42);
 #else
 	mavlink_hil_controls_t packet;
 	packet.time_usec = time_usec;
@@ -91,7 +91,7 @@ static inline uint16_t mavlink_msg_hil_controls_pack(uint8_t system_id, uint8_t
 	packet.mode = mode;
 	packet.nav_mode = nav_mode;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 42);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 42);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HIL_CONTROLS;
@@ -135,7 +135,7 @@ static inline uint16_t mavlink_msg_hil_controls_pack_chan(uint8_t system_id, uin
 	_mav_put_uint8_t(buf, 40, mode);
 	_mav_put_uint8_t(buf, 41, nav_mode);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 42);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 42);
 #else
 	mavlink_hil_controls_t packet;
 	packet.time_usec = time_usec;
@@ -150,7 +150,7 @@ static inline uint16_t mavlink_msg_hil_controls_pack_chan(uint8_t system_id, uin
 	packet.mode = mode;
 	packet.nav_mode = nav_mode;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 42);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 42);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HIL_CONTROLS;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_hil_rc_inputs_raw.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_hil_rc_inputs_raw.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_hil_rc_inputs_raw.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_hil_rc_inputs_raw.h
index d02c415397739be0b72a3738e8e74b682e0a702a..7ac0853d31871b173e092784a1063672bbc750bd 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_hil_rc_inputs_raw.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_hil_rc_inputs_raw.h
@@ -88,7 +88,7 @@ static inline uint16_t mavlink_msg_hil_rc_inputs_raw_pack(uint8_t system_id, uin
 	_mav_put_uint16_t(buf, 30, chan12_raw);
 	_mav_put_uint8_t(buf, 32, rssi);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 33);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 33);
 #else
 	mavlink_hil_rc_inputs_raw_t packet;
 	packet.time_usec = time_usec;
@@ -106,7 +106,7 @@ static inline uint16_t mavlink_msg_hil_rc_inputs_raw_pack(uint8_t system_id, uin
 	packet.chan12_raw = chan12_raw;
 	packet.rssi = rssi;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 33);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 33);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HIL_RC_INPUTS_RAW;
@@ -156,7 +156,7 @@ static inline uint16_t mavlink_msg_hil_rc_inputs_raw_pack_chan(uint8_t system_id
 	_mav_put_uint16_t(buf, 30, chan12_raw);
 	_mav_put_uint8_t(buf, 32, rssi);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 33);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 33);
 #else
 	mavlink_hil_rc_inputs_raw_t packet;
 	packet.time_usec = time_usec;
@@ -174,7 +174,7 @@ static inline uint16_t mavlink_msg_hil_rc_inputs_raw_pack_chan(uint8_t system_id
 	packet.chan12_raw = chan12_raw;
 	packet.rssi = rssi;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 33);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 33);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HIL_RC_INPUTS_RAW;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_hil_state.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_hil_state.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_hil_state.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_hil_state.h
index f61c5170fd5de543051b5d79323eddb39fc7d419..1447812956a12f273199a5289d85977bb138fcd4 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_hil_state.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_hil_state.h
@@ -96,7 +96,7 @@ static inline uint16_t mavlink_msg_hil_state_pack(uint8_t system_id, uint8_t com
 	_mav_put_int16_t(buf, 52, yacc);
 	_mav_put_int16_t(buf, 54, zacc);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 56);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 56);
 #else
 	mavlink_hil_state_t packet;
 	packet.time_usec = time_usec;
@@ -116,7 +116,7 @@ static inline uint16_t mavlink_msg_hil_state_pack(uint8_t system_id, uint8_t com
 	packet.yacc = yacc;
 	packet.zacc = zacc;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 56);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 56);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HIL_STATE;
@@ -170,7 +170,7 @@ static inline uint16_t mavlink_msg_hil_state_pack_chan(uint8_t system_id, uint8_
 	_mav_put_int16_t(buf, 52, yacc);
 	_mav_put_int16_t(buf, 54, zacc);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 56);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 56);
 #else
 	mavlink_hil_state_t packet;
 	packet.time_usec = time_usec;
@@ -190,7 +190,7 @@ static inline uint16_t mavlink_msg_hil_state_pack_chan(uint8_t system_id, uint8_
 	packet.yacc = yacc;
 	packet.zacc = zacc;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 56);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 56);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_HIL_STATE;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_local_position_ned.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_local_position_ned.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_local_position_ned.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_local_position_ned.h
index d59ae0b1a870f021944a1b0da592443d01b004f5..fe0a791fc5c0449268d7b3fd81f59c07f8936e1d 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_local_position_ned.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_local_position_ned.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_local_position_ned_pack(uint8_t system_id, ui
 	_mav_put_float(buf, 20, vy);
 	_mav_put_float(buf, 24, vz);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
 #else
 	mavlink_local_position_ned_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_local_position_ned_pack(uint8_t system_id, ui
 	packet.vy = vy;
 	packet.vz = vz;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_LOCAL_POSITION_NED;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_local_position_ned_pack_chan(uint8_t system_i
 	_mav_put_float(buf, 20, vy);
 	_mav_put_float(buf, 24, vz);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
 #else
 	mavlink_local_position_ned_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_local_position_ned_pack_chan(uint8_t system_i
 	packet.vy = vy;
 	packet.vz = vz;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_LOCAL_POSITION_NED;
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_local_position_ned_system_global_offset.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_local_position_ned_system_global_offset.h
new file mode 100644
index 0000000000000000000000000000000000000000..ac1941db091323375b5b6a2759df602351804702
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_local_position_ned_system_global_offset.h
@@ -0,0 +1,276 @@
+// MESSAGE LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET PACKING
+
+#define MAVLINK_MSG_ID_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET 89
+
+typedef struct __mavlink_local_position_ned_system_global_offset_t
+{
+ uint32_t time_boot_ms; ///< Timestamp (milliseconds since system boot)
+ float x; ///< X Position
+ float y; ///< Y Position
+ float z; ///< Z Position
+ float roll; ///< Roll
+ float pitch; ///< Pitch
+ float yaw; ///< Yaw
+} mavlink_local_position_ned_system_global_offset_t;
+
+#define MAVLINK_MSG_ID_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET_LEN 28
+#define MAVLINK_MSG_ID_89_LEN 28
+
+
+
+#define MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET { \
+	"LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET", \
+	7, \
+	{  { "time_boot_ms", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_local_position_ned_system_global_offset_t, time_boot_ms) }, \
+         { "x", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_local_position_ned_system_global_offset_t, x) }, \
+         { "y", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_local_position_ned_system_global_offset_t, y) }, \
+         { "z", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_local_position_ned_system_global_offset_t, z) }, \
+         { "roll", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_local_position_ned_system_global_offset_t, roll) }, \
+         { "pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_local_position_ned_system_global_offset_t, pitch) }, \
+         { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_local_position_ned_system_global_offset_t, yaw) }, \
+         } \
+}
+
+
+/**
+ * @brief Pack a local_position_ned_system_global_offset 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 time_boot_ms Timestamp (milliseconds since system boot)
+ * @param x X Position
+ * @param y Y Position
+ * @param z Z Position
+ * @param roll Roll
+ * @param pitch Pitch
+ * @param yaw Yaw
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_local_position_ned_system_global_offset_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
+						       uint32_t time_boot_ms, float x, float y, float z, float roll, float pitch, float yaw)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[28];
+	_mav_put_uint32_t(buf, 0, time_boot_ms);
+	_mav_put_float(buf, 4, x);
+	_mav_put_float(buf, 8, y);
+	_mav_put_float(buf, 12, z);
+	_mav_put_float(buf, 16, roll);
+	_mav_put_float(buf, 20, pitch);
+	_mav_put_float(buf, 24, yaw);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
+#else
+	mavlink_local_position_ned_system_global_offset_t packet;
+	packet.time_boot_ms = time_boot_ms;
+	packet.x = x;
+	packet.y = y;
+	packet.z = z;
+	packet.roll = roll;
+	packet.pitch = pitch;
+	packet.yaw = yaw;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET;
+	return mavlink_finalize_message(msg, system_id, component_id, 28, 231);
+}
+
+/**
+ * @brief Pack a local_position_ned_system_global_offset 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
+ * @param time_boot_ms Timestamp (milliseconds since system boot)
+ * @param x X Position
+ * @param y Y Position
+ * @param z Z Position
+ * @param roll Roll
+ * @param pitch Pitch
+ * @param yaw Yaw
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_local_position_ned_system_global_offset_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
+							   mavlink_message_t* msg,
+						           uint32_t time_boot_ms,float x,float y,float z,float roll,float pitch,float yaw)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[28];
+	_mav_put_uint32_t(buf, 0, time_boot_ms);
+	_mav_put_float(buf, 4, x);
+	_mav_put_float(buf, 8, y);
+	_mav_put_float(buf, 12, z);
+	_mav_put_float(buf, 16, roll);
+	_mav_put_float(buf, 20, pitch);
+	_mav_put_float(buf, 24, yaw);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 28);
+#else
+	mavlink_local_position_ned_system_global_offset_t packet;
+	packet.time_boot_ms = time_boot_ms;
+	packet.x = x;
+	packet.y = y;
+	packet.z = z;
+	packet.roll = roll;
+	packet.pitch = pitch;
+	packet.yaw = yaw;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 28);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 28, 231);
+}
+
+/**
+ * @brief Encode a local_position_ned_system_global_offset 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 local_position_ned_system_global_offset C-struct to read the message contents from
+ */
+static inline uint16_t mavlink_msg_local_position_ned_system_global_offset_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_local_position_ned_system_global_offset_t* local_position_ned_system_global_offset)
+{
+	return mavlink_msg_local_position_ned_system_global_offset_pack(system_id, component_id, msg, local_position_ned_system_global_offset->time_boot_ms, local_position_ned_system_global_offset->x, local_position_ned_system_global_offset->y, local_position_ned_system_global_offset->z, local_position_ned_system_global_offset->roll, local_position_ned_system_global_offset->pitch, local_position_ned_system_global_offset->yaw);
+}
+
+/**
+ * @brief Send a local_position_ned_system_global_offset message
+ * @param chan MAVLink channel to send the message
+ *
+ * @param time_boot_ms Timestamp (milliseconds since system boot)
+ * @param x X Position
+ * @param y Y Position
+ * @param z Z Position
+ * @param roll Roll
+ * @param pitch Pitch
+ * @param yaw Yaw
+ */
+#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
+
+static inline void mavlink_msg_local_position_ned_system_global_offset_send(mavlink_channel_t chan, uint32_t time_boot_ms, float x, float y, float z, float roll, float pitch, float yaw)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[28];
+	_mav_put_uint32_t(buf, 0, time_boot_ms);
+	_mav_put_float(buf, 4, x);
+	_mav_put_float(buf, 8, y);
+	_mav_put_float(buf, 12, z);
+	_mav_put_float(buf, 16, roll);
+	_mav_put_float(buf, 20, pitch);
+	_mav_put_float(buf, 24, yaw);
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET, buf, 28, 231);
+#else
+	mavlink_local_position_ned_system_global_offset_t packet;
+	packet.time_boot_ms = time_boot_ms;
+	packet.x = x;
+	packet.y = y;
+	packet.z = z;
+	packet.roll = roll;
+	packet.pitch = pitch;
+	packet.yaw = yaw;
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET, (const char *)&packet, 28, 231);
+#endif
+}
+
+#endif
+
+// MESSAGE LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET UNPACKING
+
+
+/**
+ * @brief Get field time_boot_ms from local_position_ned_system_global_offset message
+ *
+ * @return Timestamp (milliseconds since system boot)
+ */
+static inline uint32_t mavlink_msg_local_position_ned_system_global_offset_get_time_boot_ms(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_uint32_t(msg,  0);
+}
+
+/**
+ * @brief Get field x from local_position_ned_system_global_offset message
+ *
+ * @return X Position
+ */
+static inline float mavlink_msg_local_position_ned_system_global_offset_get_x(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_float(msg,  4);
+}
+
+/**
+ * @brief Get field y from local_position_ned_system_global_offset message
+ *
+ * @return Y Position
+ */
+static inline float mavlink_msg_local_position_ned_system_global_offset_get_y(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_float(msg,  8);
+}
+
+/**
+ * @brief Get field z from local_position_ned_system_global_offset message
+ *
+ * @return Z Position
+ */
+static inline float mavlink_msg_local_position_ned_system_global_offset_get_z(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_float(msg,  12);
+}
+
+/**
+ * @brief Get field roll from local_position_ned_system_global_offset message
+ *
+ * @return Roll
+ */
+static inline float mavlink_msg_local_position_ned_system_global_offset_get_roll(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_float(msg,  16);
+}
+
+/**
+ * @brief Get field pitch from local_position_ned_system_global_offset message
+ *
+ * @return Pitch
+ */
+static inline float mavlink_msg_local_position_ned_system_global_offset_get_pitch(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_float(msg,  20);
+}
+
+/**
+ * @brief Get field yaw from local_position_ned_system_global_offset message
+ *
+ * @return Yaw
+ */
+static inline float mavlink_msg_local_position_ned_system_global_offset_get_yaw(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_float(msg,  24);
+}
+
+/**
+ * @brief Decode a local_position_ned_system_global_offset message into a struct
+ *
+ * @param msg The message to decode
+ * @param local_position_ned_system_global_offset C-struct to decode the message contents into
+ */
+static inline void mavlink_msg_local_position_ned_system_global_offset_decode(const mavlink_message_t* msg, mavlink_local_position_ned_system_global_offset_t* local_position_ned_system_global_offset)
+{
+#if MAVLINK_NEED_BYTE_SWAP
+	local_position_ned_system_global_offset->time_boot_ms = mavlink_msg_local_position_ned_system_global_offset_get_time_boot_ms(msg);
+	local_position_ned_system_global_offset->x = mavlink_msg_local_position_ned_system_global_offset_get_x(msg);
+	local_position_ned_system_global_offset->y = mavlink_msg_local_position_ned_system_global_offset_get_y(msg);
+	local_position_ned_system_global_offset->z = mavlink_msg_local_position_ned_system_global_offset_get_z(msg);
+	local_position_ned_system_global_offset->roll = mavlink_msg_local_position_ned_system_global_offset_get_roll(msg);
+	local_position_ned_system_global_offset->pitch = mavlink_msg_local_position_ned_system_global_offset_get_pitch(msg);
+	local_position_ned_system_global_offset->yaw = mavlink_msg_local_position_ned_system_global_offset_get_yaw(msg);
+#else
+	memcpy(local_position_ned_system_global_offset, _MAV_PAYLOAD(msg), 28);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_local_position_setpoint.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_local_position_setpoint.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_local_position_setpoint.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_local_position_setpoint.h
index 7a83b16c6f378ba88c3cc900fbcea116c6d2ab43..9ab87d0dafc2b7f16e826fb7f9fc04ed0d52a626 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_local_position_setpoint.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_local_position_setpoint.h
@@ -52,7 +52,7 @@ static inline uint16_t mavlink_msg_local_position_setpoint_pack(uint8_t system_i
 	_mav_put_float(buf, 12, yaw);
 	_mav_put_uint8_t(buf, 16, coordinate_frame);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 17);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 17);
 #else
 	mavlink_local_position_setpoint_t packet;
 	packet.x = x;
@@ -61,7 +61,7 @@ static inline uint16_t mavlink_msg_local_position_setpoint_pack(uint8_t system_i
 	packet.yaw = yaw;
 	packet.coordinate_frame = coordinate_frame;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 17);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 17);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT;
@@ -93,7 +93,7 @@ static inline uint16_t mavlink_msg_local_position_setpoint_pack_chan(uint8_t sys
 	_mav_put_float(buf, 12, yaw);
 	_mav_put_uint8_t(buf, 16, coordinate_frame);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 17);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 17);
 #else
 	mavlink_local_position_setpoint_t packet;
 	packet.x = x;
@@ -102,7 +102,7 @@ static inline uint16_t mavlink_msg_local_position_setpoint_pack_chan(uint8_t sys
 	packet.yaw = yaw;
 	packet.coordinate_frame = coordinate_frame;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 17);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 17);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_manual_control.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_manual_control.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_manual_control.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_manual_control.h
index febb4535e23475c8c5a93e188a9a5ae4d0079935..93adce265b546a09cd9e9a3400e9abaecc7f3b8e 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_manual_control.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_manual_control.h
@@ -68,7 +68,7 @@ static inline uint16_t mavlink_msg_manual_control_pack(uint8_t system_id, uint8_
 	_mav_put_uint8_t(buf, 19, yaw_manual);
 	_mav_put_uint8_t(buf, 20, thrust_manual);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 21);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 21);
 #else
 	mavlink_manual_control_t packet;
 	packet.roll = roll;
@@ -81,7 +81,7 @@ static inline uint16_t mavlink_msg_manual_control_pack(uint8_t system_id, uint8_
 	packet.yaw_manual = yaw_manual;
 	packet.thrust_manual = thrust_manual;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 21);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 21);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MANUAL_CONTROL;
@@ -121,7 +121,7 @@ static inline uint16_t mavlink_msg_manual_control_pack_chan(uint8_t system_id, u
 	_mav_put_uint8_t(buf, 19, yaw_manual);
 	_mav_put_uint8_t(buf, 20, thrust_manual);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 21);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 21);
 #else
 	mavlink_manual_control_t packet;
 	packet.roll = roll;
@@ -134,7 +134,7 @@ static inline uint16_t mavlink_msg_manual_control_pack_chan(uint8_t system_id, u
 	packet.yaw_manual = yaw_manual;
 	packet.thrust_manual = thrust_manual;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 21);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 21);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MANUAL_CONTROL;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_memory_vect.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_memory_vect.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_memory_vect.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_memory_vect.h
index e59db361a7ca9e65929b0e6df53dc307bb99a2ac..a61c13019be3146d5b4a87e03dadefa19f35b5c7 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_memory_vect.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_memory_vect.h
@@ -47,14 +47,14 @@ static inline uint16_t mavlink_msg_memory_vect_pack(uint8_t system_id, uint8_t c
 	_mav_put_uint8_t(buf, 2, ver);
 	_mav_put_uint8_t(buf, 3, type);
 	_mav_put_int8_t_array(buf, 4, value, 32);
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 36);
 #else
 	mavlink_memory_vect_t packet;
 	packet.address = address;
 	packet.ver = ver;
 	packet.type = type;
 	mav_array_memcpy(packet.value, value, sizeof(int8_t)*32);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 36);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MEMORY_VECT;
@@ -83,14 +83,14 @@ static inline uint16_t mavlink_msg_memory_vect_pack_chan(uint8_t system_id, uint
 	_mav_put_uint8_t(buf, 2, ver);
 	_mav_put_uint8_t(buf, 3, type);
 	_mav_put_int8_t_array(buf, 4, value, 32);
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 36);
 #else
 	mavlink_memory_vect_t packet;
 	packet.address = address;
 	packet.ver = ver;
 	packet.type = type;
 	mav_array_memcpy(packet.value, value, sizeof(int8_t)*32);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 36);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MEMORY_VECT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_ack.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_ack.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_ack.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_ack.h
index 1696e765868ce6b83450b8f23de55880382c3bfc..92eca79d1cb3947e3b743ca7d585d611c118a896 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_ack.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_ack.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_mission_ack_pack(uint8_t system_id, uint8_t c
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_uint8_t(buf, 2, type);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_mission_ack_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.type = type;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_ACK;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_mission_ack_pack_chan(uint8_t system_id, uint
 	_mav_put_uint8_t(buf, 1, target_component);
 	_mav_put_uint8_t(buf, 2, type);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 3);
 #else
 	mavlink_mission_ack_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	packet.type = type;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 3);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_ACK;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_clear_all.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_clear_all.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_clear_all.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_clear_all.h
index c421f57893800c45871d7e626d63a0597706c7fe..602852f7e32946b6ae24718745befaeaf6886aca 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_clear_all.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_clear_all.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_mission_clear_all_pack(uint8_t system_id, uin
 	_mav_put_uint8_t(buf, 0, target_system);
 	_mav_put_uint8_t(buf, 1, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_mission_clear_all_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_CLEAR_ALL;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_mission_clear_all_pack_chan(uint8_t system_id
 	_mav_put_uint8_t(buf, 0, target_system);
 	_mav_put_uint8_t(buf, 1, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_mission_clear_all_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_CLEAR_ALL;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_count.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_count.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_count.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_count.h
index 967071d8c8541a13540ddab9479e503779ea9796..61d8b221c31e17a15f06ae95f2c01f026cb08812 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_count.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_count.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_mission_count_pack(uint8_t system_id, uint8_t
 	_mav_put_uint8_t(buf, 2, target_system);
 	_mav_put_uint8_t(buf, 3, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_mission_count_t packet;
 	packet.count = count;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_COUNT;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_mission_count_pack_chan(uint8_t system_id, ui
 	_mav_put_uint8_t(buf, 2, target_system);
 	_mav_put_uint8_t(buf, 3, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_mission_count_t packet;
 	packet.count = count;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_COUNT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_current.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_current.h
similarity index 94%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_current.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_current.h
index 2ad9fbc601c3338a8d317194e9edae62176b8f45..99370f83532bec328537f62bf72c327af6478d23 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_current.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_current.h
@@ -36,12 +36,12 @@ static inline uint16_t mavlink_msg_mission_current_pack(uint8_t system_id, uint8
 	char buf[2];
 	_mav_put_uint16_t(buf, 0, seq);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_mission_current_t packet;
 	packet.seq = seq;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_CURRENT;
@@ -65,12 +65,12 @@ static inline uint16_t mavlink_msg_mission_current_pack_chan(uint8_t system_id,
 	char buf[2];
 	_mav_put_uint16_t(buf, 0, seq);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_mission_current_t packet;
 	packet.seq = seq;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_CURRENT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_item.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_item.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_item.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_item.h
index e2d894aeea95d8d282b745c095c9e81be712c29e..d2c66d4daa293777c7732be1476014457ec7421d 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_item.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_item.h
@@ -88,7 +88,7 @@ static inline uint16_t mavlink_msg_mission_item_pack(uint8_t system_id, uint8_t
 	_mav_put_uint8_t(buf, 35, current);
 	_mav_put_uint8_t(buf, 36, autocontinue);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 37);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 37);
 #else
 	mavlink_mission_item_t packet;
 	packet.param1 = param1;
@@ -106,7 +106,7 @@ static inline uint16_t mavlink_msg_mission_item_pack(uint8_t system_id, uint8_t
 	packet.current = current;
 	packet.autocontinue = autocontinue;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 37);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 37);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_ITEM;
@@ -156,7 +156,7 @@ static inline uint16_t mavlink_msg_mission_item_pack_chan(uint8_t system_id, uin
 	_mav_put_uint8_t(buf, 35, current);
 	_mav_put_uint8_t(buf, 36, autocontinue);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 37);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 37);
 #else
 	mavlink_mission_item_t packet;
 	packet.param1 = param1;
@@ -174,7 +174,7 @@ static inline uint16_t mavlink_msg_mission_item_pack_chan(uint8_t system_id, uin
 	packet.current = current;
 	packet.autocontinue = autocontinue;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 37);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 37);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_ITEM;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_item_reached.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_item_reached.h
similarity index 95%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_item_reached.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_item_reached.h
index 7d935cade272a8d35b21f2c18b0546b2b187c8f3..171f9857e8257c9b3b4ffec67e9a52aa0b006d38 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_item_reached.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_item_reached.h
@@ -36,12 +36,12 @@ static inline uint16_t mavlink_msg_mission_item_reached_pack(uint8_t system_id,
 	char buf[2];
 	_mav_put_uint16_t(buf, 0, seq);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_mission_item_reached_t packet;
 	packet.seq = seq;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_ITEM_REACHED;
@@ -65,12 +65,12 @@ static inline uint16_t mavlink_msg_mission_item_reached_pack_chan(uint8_t system
 	char buf[2];
 	_mav_put_uint16_t(buf, 0, seq);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_mission_item_reached_t packet;
 	packet.seq = seq;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_ITEM_REACHED;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_request.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_request.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_request.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_request.h
index 5fb55ddb67e8931cae87282ee181f22ce5939808..cde0a0cfb9b6b6d2967c8b5b200ec914106323e1 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_request.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_request.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_mission_request_pack(uint8_t system_id, uint8
 	_mav_put_uint8_t(buf, 2, target_system);
 	_mav_put_uint8_t(buf, 3, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_mission_request_t packet;
 	packet.seq = seq;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_REQUEST;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_mission_request_pack_chan(uint8_t system_id,
 	_mav_put_uint8_t(buf, 2, target_system);
 	_mav_put_uint8_t(buf, 3, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_mission_request_t packet;
 	packet.seq = seq;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_REQUEST;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_request_list.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_request_list.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_request_list.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_request_list.h
index c41d0fa0b0973ab15a103c098ececc49cf85d89c..1ada635b557cac3520c0d2447d638a9e9c88eb3b 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_request_list.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_request_list.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_mission_request_list_pack(uint8_t system_id,
 	_mav_put_uint8_t(buf, 0, target_system);
 	_mav_put_uint8_t(buf, 1, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_mission_request_list_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_REQUEST_LIST;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_mission_request_list_pack_chan(uint8_t system
 	_mav_put_uint8_t(buf, 0, target_system);
 	_mav_put_uint8_t(buf, 1, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_mission_request_list_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_REQUEST_LIST;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_request_partial_list.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_request_partial_list.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_request_partial_list.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_request_partial_list.h
index 92e0ea745c7c87eebc2b13132ba690d1aa77bac9..76fd43befad147174cece9d8968ce33d0d29c0b5 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_request_partial_list.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_request_partial_list.h
@@ -48,7 +48,7 @@ static inline uint16_t mavlink_msg_mission_request_partial_list_pack(uint8_t sys
 	_mav_put_uint8_t(buf, 4, target_system);
 	_mav_put_uint8_t(buf, 5, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
 #else
 	mavlink_mission_request_partial_list_t packet;
 	packet.start_index = start_index;
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_mission_request_partial_list_pack(uint8_t sys
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_REQUEST_PARTIAL_LIST;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_mission_request_partial_list_pack_chan(uint8_
 	_mav_put_uint8_t(buf, 4, target_system);
 	_mav_put_uint8_t(buf, 5, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
 #else
 	mavlink_mission_request_partial_list_t packet;
 	packet.start_index = start_index;
@@ -94,7 +94,7 @@ static inline uint16_t mavlink_msg_mission_request_partial_list_pack_chan(uint8_
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_REQUEST_PARTIAL_LIST;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_set_current.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_set_current.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_set_current.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_set_current.h
index 6fb6fd1cce8cb17e13aa3f9da9c22a4d1b41361f..de0dbcd75df3b3dd029eab93d34eae24be90b882 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_set_current.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_set_current.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_mission_set_current_pack(uint8_t system_id, u
 	_mav_put_uint8_t(buf, 2, target_system);
 	_mav_put_uint8_t(buf, 3, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_mission_set_current_t packet;
 	packet.seq = seq;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_SET_CURRENT;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_mission_set_current_pack_chan(uint8_t system_
 	_mav_put_uint8_t(buf, 2, target_system);
 	_mav_put_uint8_t(buf, 3, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
 #else
 	mavlink_mission_set_current_t packet;
 	packet.seq = seq;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_SET_CURRENT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_write_partial_list.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_write_partial_list.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_write_partial_list.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_write_partial_list.h
index 59f438de23b758a36678abad14b3b4eeeaca5cbc..0e77569cfc3aecc3b0de720459d8ba94359386ac 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_mission_write_partial_list.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_mission_write_partial_list.h
@@ -48,7 +48,7 @@ static inline uint16_t mavlink_msg_mission_write_partial_list_pack(uint8_t syste
 	_mav_put_uint8_t(buf, 4, target_system);
 	_mav_put_uint8_t(buf, 5, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
 #else
 	mavlink_mission_write_partial_list_t packet;
 	packet.start_index = start_index;
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_mission_write_partial_list_pack(uint8_t syste
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_WRITE_PARTIAL_LIST;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_mission_write_partial_list_pack_chan(uint8_t
 	_mav_put_uint8_t(buf, 4, target_system);
 	_mav_put_uint8_t(buf, 5, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
 #else
 	mavlink_mission_write_partial_list_t packet;
 	packet.start_index = start_index;
@@ -94,7 +94,7 @@ static inline uint16_t mavlink_msg_mission_write_partial_list_pack_chan(uint8_t
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_MISSION_WRITE_PARTIAL_LIST;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_named_value_float.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_named_value_float.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_named_value_float.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_named_value_float.h
index feabb8f31e6d51481d2ddaa898aafc9278a8a904..23a819e2c9b708ba1c4d004d8902edc1d155b121 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_named_value_float.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_named_value_float.h
@@ -43,13 +43,13 @@ static inline uint16_t mavlink_msg_named_value_float_pack(uint8_t system_id, uin
 	_mav_put_uint32_t(buf, 0, time_boot_ms);
 	_mav_put_float(buf, 4, value);
 	_mav_put_char_array(buf, 8, name, 10);
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_named_value_float_t packet;
 	packet.time_boot_ms = time_boot_ms;
 	packet.value = value;
 	mav_array_memcpy(packet.name, name, sizeof(char)*10);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_NAMED_VALUE_FLOAT;
@@ -76,13 +76,13 @@ static inline uint16_t mavlink_msg_named_value_float_pack_chan(uint8_t system_id
 	_mav_put_uint32_t(buf, 0, time_boot_ms);
 	_mav_put_float(buf, 4, value);
 	_mav_put_char_array(buf, 8, name, 10);
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_named_value_float_t packet;
 	packet.time_boot_ms = time_boot_ms;
 	packet.value = value;
 	mav_array_memcpy(packet.name, name, sizeof(char)*10);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_NAMED_VALUE_FLOAT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_named_value_int.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_named_value_int.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_named_value_int.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_named_value_int.h
index 463b44d67eb68a267d079011b6f78d0dffbb6433..3c67dff03fcbab7f855653fc23327d273dbca91f 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_named_value_int.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_named_value_int.h
@@ -43,13 +43,13 @@ static inline uint16_t mavlink_msg_named_value_int_pack(uint8_t system_id, uint8
 	_mav_put_uint32_t(buf, 0, time_boot_ms);
 	_mav_put_int32_t(buf, 4, value);
 	_mav_put_char_array(buf, 8, name, 10);
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_named_value_int_t packet;
 	packet.time_boot_ms = time_boot_ms;
 	packet.value = value;
 	mav_array_memcpy(packet.name, name, sizeof(char)*10);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_NAMED_VALUE_INT;
@@ -76,13 +76,13 @@ static inline uint16_t mavlink_msg_named_value_int_pack_chan(uint8_t system_id,
 	_mav_put_uint32_t(buf, 0, time_boot_ms);
 	_mav_put_int32_t(buf, 4, value);
 	_mav_put_char_array(buf, 8, name, 10);
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_named_value_int_t packet;
 	packet.time_boot_ms = time_boot_ms;
 	packet.value = value;
 	mav_array_memcpy(packet.name, name, sizeof(char)*10);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_NAMED_VALUE_INT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_nav_controller_output.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_nav_controller_output.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_nav_controller_output.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_nav_controller_output.h
index a8310c142bef331bfbd7181ea3c3d883bca4aabf..028afdabc62203d7d0e7427ef6e093c1b7088741 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_nav_controller_output.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_nav_controller_output.h
@@ -64,7 +64,7 @@ static inline uint16_t mavlink_msg_nav_controller_output_pack(uint8_t system_id,
 	_mav_put_int16_t(buf, 22, target_bearing);
 	_mav_put_uint16_t(buf, 24, wp_dist);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 26);
 #else
 	mavlink_nav_controller_output_t packet;
 	packet.nav_roll = nav_roll;
@@ -76,7 +76,7 @@ static inline uint16_t mavlink_msg_nav_controller_output_pack(uint8_t system_id,
 	packet.target_bearing = target_bearing;
 	packet.wp_dist = wp_dist;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 26);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT;
@@ -114,7 +114,7 @@ static inline uint16_t mavlink_msg_nav_controller_output_pack_chan(uint8_t syste
 	_mav_put_int16_t(buf, 22, target_bearing);
 	_mav_put_uint16_t(buf, 24, wp_dist);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 26);
 #else
 	mavlink_nav_controller_output_t packet;
 	packet.nav_roll = nav_roll;
@@ -126,7 +126,7 @@ static inline uint16_t mavlink_msg_nav_controller_output_pack_chan(uint8_t syste
 	packet.target_bearing = target_bearing;
 	packet.wp_dist = wp_dist;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 26);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_optical_flow.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_optical_flow.h
similarity index 58%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_optical_flow.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_optical_flow.h
index cebc1d9023d1b967c247387e0322431a1d526e48..b277cab5124965b179ed0c13c570954811d02ea1 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_optical_flow.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_optical_flow.h
@@ -5,27 +5,31 @@
 typedef struct __mavlink_optical_flow_t
 {
  uint64_t time_usec; ///< Timestamp (UNIX)
- float ground_distance; ///< Ground distance in meters
+ float flow_comp_m_x; ///< Flow in meters in x-sensor direction, angular-speed compensated
+ float flow_comp_m_y; ///< Flow in meters in y-sensor direction, angular-speed compensated
+ float ground_distance; ///< Ground distance in meters. Positive value: distance known. Negative value: Unknown distance
  int16_t flow_x; ///< Flow in pixels in x-sensor direction
  int16_t flow_y; ///< Flow in pixels in y-sensor direction
  uint8_t sensor_id; ///< Sensor ID
  uint8_t quality; ///< Optical flow quality / confidence. 0: bad, 255: maximum quality
 } mavlink_optical_flow_t;
 
-#define MAVLINK_MSG_ID_OPTICAL_FLOW_LEN 18
-#define MAVLINK_MSG_ID_100_LEN 18
+#define MAVLINK_MSG_ID_OPTICAL_FLOW_LEN 26
+#define MAVLINK_MSG_ID_100_LEN 26
 
 
 
 #define MAVLINK_MESSAGE_INFO_OPTICAL_FLOW { \
 	"OPTICAL_FLOW", \
-	6, \
+	8, \
 	{  { "time_usec", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_optical_flow_t, time_usec) }, \
-         { "ground_distance", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_optical_flow_t, ground_distance) }, \
-         { "flow_x", NULL, MAVLINK_TYPE_INT16_T, 0, 12, offsetof(mavlink_optical_flow_t, flow_x) }, \
-         { "flow_y", NULL, MAVLINK_TYPE_INT16_T, 0, 14, offsetof(mavlink_optical_flow_t, flow_y) }, \
-         { "sensor_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 16, offsetof(mavlink_optical_flow_t, sensor_id) }, \
-         { "quality", NULL, MAVLINK_TYPE_UINT8_T, 0, 17, offsetof(mavlink_optical_flow_t, quality) }, \
+         { "flow_comp_m_x", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_optical_flow_t, flow_comp_m_x) }, \
+         { "flow_comp_m_y", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_optical_flow_t, flow_comp_m_y) }, \
+         { "ground_distance", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_optical_flow_t, ground_distance) }, \
+         { "flow_x", NULL, MAVLINK_TYPE_INT16_T, 0, 20, offsetof(mavlink_optical_flow_t, flow_x) }, \
+         { "flow_y", NULL, MAVLINK_TYPE_INT16_T, 0, 22, offsetof(mavlink_optical_flow_t, flow_y) }, \
+         { "sensor_id", NULL, MAVLINK_TYPE_UINT8_T, 0, 24, offsetof(mavlink_optical_flow_t, sensor_id) }, \
+         { "quality", NULL, MAVLINK_TYPE_UINT8_T, 0, 25, offsetof(mavlink_optical_flow_t, quality) }, \
          } \
 }
 
@@ -40,37 +44,43 @@ typedef struct __mavlink_optical_flow_t
  * @param sensor_id Sensor ID
  * @param flow_x Flow in pixels in x-sensor direction
  * @param flow_y Flow in pixels in y-sensor direction
+ * @param flow_comp_m_x Flow in meters in x-sensor direction, angular-speed compensated
+ * @param flow_comp_m_y Flow in meters in y-sensor direction, angular-speed compensated
  * @param quality Optical flow quality / confidence. 0: bad, 255: maximum quality
- * @param ground_distance Ground distance in meters
+ * @param ground_distance Ground distance in meters. Positive value: distance known. Negative value: Unknown distance
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_optical_flow_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint64_t time_usec, uint8_t sensor_id, int16_t flow_x, int16_t flow_y, uint8_t quality, float ground_distance)
+						       uint64_t time_usec, uint8_t sensor_id, int16_t flow_x, int16_t flow_y, float flow_comp_m_x, float flow_comp_m_y, uint8_t quality, float ground_distance)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[18];
+	char buf[26];
 	_mav_put_uint64_t(buf, 0, time_usec);
-	_mav_put_float(buf, 8, ground_distance);
-	_mav_put_int16_t(buf, 12, flow_x);
-	_mav_put_int16_t(buf, 14, flow_y);
-	_mav_put_uint8_t(buf, 16, sensor_id);
-	_mav_put_uint8_t(buf, 17, quality);
+	_mav_put_float(buf, 8, flow_comp_m_x);
+	_mav_put_float(buf, 12, flow_comp_m_y);
+	_mav_put_float(buf, 16, ground_distance);
+	_mav_put_int16_t(buf, 20, flow_x);
+	_mav_put_int16_t(buf, 22, flow_y);
+	_mav_put_uint8_t(buf, 24, sensor_id);
+	_mav_put_uint8_t(buf, 25, quality);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 26);
 #else
 	mavlink_optical_flow_t packet;
 	packet.time_usec = time_usec;
+	packet.flow_comp_m_x = flow_comp_m_x;
+	packet.flow_comp_m_y = flow_comp_m_y;
 	packet.ground_distance = ground_distance;
 	packet.flow_x = flow_x;
 	packet.flow_y = flow_y;
 	packet.sensor_id = sensor_id;
 	packet.quality = quality;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 26);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_OPTICAL_FLOW;
-	return mavlink_finalize_message(msg, system_id, component_id, 18, 19);
+	return mavlink_finalize_message(msg, system_id, component_id, 26, 175);
 }
 
 /**
@@ -83,38 +93,44 @@ static inline uint16_t mavlink_msg_optical_flow_pack(uint8_t system_id, uint8_t
  * @param sensor_id Sensor ID
  * @param flow_x Flow in pixels in x-sensor direction
  * @param flow_y Flow in pixels in y-sensor direction
+ * @param flow_comp_m_x Flow in meters in x-sensor direction, angular-speed compensated
+ * @param flow_comp_m_y Flow in meters in y-sensor direction, angular-speed compensated
  * @param quality Optical flow quality / confidence. 0: bad, 255: maximum quality
- * @param ground_distance Ground distance in meters
+ * @param ground_distance Ground distance in meters. Positive value: distance known. Negative value: Unknown distance
  * @return length of the message in bytes (excluding serial stream start sign)
  */
 static inline uint16_t mavlink_msg_optical_flow_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
 							   mavlink_message_t* msg,
-						           uint64_t time_usec,uint8_t sensor_id,int16_t flow_x,int16_t flow_y,uint8_t quality,float ground_distance)
+						           uint64_t time_usec,uint8_t sensor_id,int16_t flow_x,int16_t flow_y,float flow_comp_m_x,float flow_comp_m_y,uint8_t quality,float ground_distance)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[18];
+	char buf[26];
 	_mav_put_uint64_t(buf, 0, time_usec);
-	_mav_put_float(buf, 8, ground_distance);
-	_mav_put_int16_t(buf, 12, flow_x);
-	_mav_put_int16_t(buf, 14, flow_y);
-	_mav_put_uint8_t(buf, 16, sensor_id);
-	_mav_put_uint8_t(buf, 17, quality);
+	_mav_put_float(buf, 8, flow_comp_m_x);
+	_mav_put_float(buf, 12, flow_comp_m_y);
+	_mav_put_float(buf, 16, ground_distance);
+	_mav_put_int16_t(buf, 20, flow_x);
+	_mav_put_int16_t(buf, 22, flow_y);
+	_mav_put_uint8_t(buf, 24, sensor_id);
+	_mav_put_uint8_t(buf, 25, quality);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 26);
 #else
 	mavlink_optical_flow_t packet;
 	packet.time_usec = time_usec;
+	packet.flow_comp_m_x = flow_comp_m_x;
+	packet.flow_comp_m_y = flow_comp_m_y;
 	packet.ground_distance = ground_distance;
 	packet.flow_x = flow_x;
 	packet.flow_y = flow_y;
 	packet.sensor_id = sensor_id;
 	packet.quality = quality;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 26);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_OPTICAL_FLOW;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 18, 19);
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 26, 175);
 }
 
 /**
@@ -127,7 +143,7 @@ static inline uint16_t mavlink_msg_optical_flow_pack_chan(uint8_t system_id, uin
  */
 static inline uint16_t mavlink_msg_optical_flow_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_optical_flow_t* optical_flow)
 {
-	return mavlink_msg_optical_flow_pack(system_id, component_id, msg, optical_flow->time_usec, optical_flow->sensor_id, optical_flow->flow_x, optical_flow->flow_y, optical_flow->quality, optical_flow->ground_distance);
+	return mavlink_msg_optical_flow_pack(system_id, component_id, msg, optical_flow->time_usec, optical_flow->sensor_id, optical_flow->flow_x, optical_flow->flow_y, optical_flow->flow_comp_m_x, optical_flow->flow_comp_m_y, optical_flow->quality, optical_flow->ground_distance);
 }
 
 /**
@@ -138,33 +154,39 @@ static inline uint16_t mavlink_msg_optical_flow_encode(uint8_t system_id, uint8_
  * @param sensor_id Sensor ID
  * @param flow_x Flow in pixels in x-sensor direction
  * @param flow_y Flow in pixels in y-sensor direction
+ * @param flow_comp_m_x Flow in meters in x-sensor direction, angular-speed compensated
+ * @param flow_comp_m_y Flow in meters in y-sensor direction, angular-speed compensated
  * @param quality Optical flow quality / confidence. 0: bad, 255: maximum quality
- * @param ground_distance Ground distance in meters
+ * @param ground_distance Ground distance in meters. Positive value: distance known. Negative value: Unknown distance
  */
 #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
 
-static inline void mavlink_msg_optical_flow_send(mavlink_channel_t chan, uint64_t time_usec, uint8_t sensor_id, int16_t flow_x, int16_t flow_y, uint8_t quality, float ground_distance)
+static inline void mavlink_msg_optical_flow_send(mavlink_channel_t chan, uint64_t time_usec, uint8_t sensor_id, int16_t flow_x, int16_t flow_y, float flow_comp_m_x, float flow_comp_m_y, uint8_t quality, float ground_distance)
 {
 #if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[18];
+	char buf[26];
 	_mav_put_uint64_t(buf, 0, time_usec);
-	_mav_put_float(buf, 8, ground_distance);
-	_mav_put_int16_t(buf, 12, flow_x);
-	_mav_put_int16_t(buf, 14, flow_y);
-	_mav_put_uint8_t(buf, 16, sensor_id);
-	_mav_put_uint8_t(buf, 17, quality);
+	_mav_put_float(buf, 8, flow_comp_m_x);
+	_mav_put_float(buf, 12, flow_comp_m_y);
+	_mav_put_float(buf, 16, ground_distance);
+	_mav_put_int16_t(buf, 20, flow_x);
+	_mav_put_int16_t(buf, 22, flow_y);
+	_mav_put_uint8_t(buf, 24, sensor_id);
+	_mav_put_uint8_t(buf, 25, quality);
 
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OPTICAL_FLOW, buf, 18, 19);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OPTICAL_FLOW, buf, 26, 175);
 #else
 	mavlink_optical_flow_t packet;
 	packet.time_usec = time_usec;
+	packet.flow_comp_m_x = flow_comp_m_x;
+	packet.flow_comp_m_y = flow_comp_m_y;
 	packet.ground_distance = ground_distance;
 	packet.flow_x = flow_x;
 	packet.flow_y = flow_y;
 	packet.sensor_id = sensor_id;
 	packet.quality = quality;
 
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OPTICAL_FLOW, (const char *)&packet, 18, 19);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OPTICAL_FLOW, (const char *)&packet, 26, 175);
 #endif
 }
 
@@ -190,7 +212,7 @@ static inline uint64_t mavlink_msg_optical_flow_get_time_usec(const mavlink_mess
  */
 static inline uint8_t mavlink_msg_optical_flow_get_sensor_id(const mavlink_message_t* msg)
 {
-	return _MAV_RETURN_uint8_t(msg,  16);
+	return _MAV_RETURN_uint8_t(msg,  24);
 }
 
 /**
@@ -200,7 +222,7 @@ static inline uint8_t mavlink_msg_optical_flow_get_sensor_id(const mavlink_messa
  */
 static inline int16_t mavlink_msg_optical_flow_get_flow_x(const mavlink_message_t* msg)
 {
-	return _MAV_RETURN_int16_t(msg,  12);
+	return _MAV_RETURN_int16_t(msg,  20);
 }
 
 /**
@@ -210,7 +232,27 @@ static inline int16_t mavlink_msg_optical_flow_get_flow_x(const mavlink_message_
  */
 static inline int16_t mavlink_msg_optical_flow_get_flow_y(const mavlink_message_t* msg)
 {
-	return _MAV_RETURN_int16_t(msg,  14);
+	return _MAV_RETURN_int16_t(msg,  22);
+}
+
+/**
+ * @brief Get field flow_comp_m_x from optical_flow message
+ *
+ * @return Flow in meters in x-sensor direction, angular-speed compensated
+ */
+static inline float mavlink_msg_optical_flow_get_flow_comp_m_x(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_float(msg,  8);
+}
+
+/**
+ * @brief Get field flow_comp_m_y from optical_flow message
+ *
+ * @return Flow in meters in y-sensor direction, angular-speed compensated
+ */
+static inline float mavlink_msg_optical_flow_get_flow_comp_m_y(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_float(msg,  12);
 }
 
 /**
@@ -220,17 +262,17 @@ static inline int16_t mavlink_msg_optical_flow_get_flow_y(const mavlink_message_
  */
 static inline uint8_t mavlink_msg_optical_flow_get_quality(const mavlink_message_t* msg)
 {
-	return _MAV_RETURN_uint8_t(msg,  17);
+	return _MAV_RETURN_uint8_t(msg,  25);
 }
 
 /**
  * @brief Get field ground_distance from optical_flow message
  *
- * @return Ground distance in meters
+ * @return Ground distance in meters. Positive value: distance known. Negative value: Unknown distance
  */
 static inline float mavlink_msg_optical_flow_get_ground_distance(const mavlink_message_t* msg)
 {
-	return _MAV_RETURN_float(msg,  8);
+	return _MAV_RETURN_float(msg,  16);
 }
 
 /**
@@ -243,12 +285,14 @@ static inline void mavlink_msg_optical_flow_decode(const mavlink_message_t* msg,
 {
 #if MAVLINK_NEED_BYTE_SWAP
 	optical_flow->time_usec = mavlink_msg_optical_flow_get_time_usec(msg);
+	optical_flow->flow_comp_m_x = mavlink_msg_optical_flow_get_flow_comp_m_x(msg);
+	optical_flow->flow_comp_m_y = mavlink_msg_optical_flow_get_flow_comp_m_y(msg);
 	optical_flow->ground_distance = mavlink_msg_optical_flow_get_ground_distance(msg);
 	optical_flow->flow_x = mavlink_msg_optical_flow_get_flow_x(msg);
 	optical_flow->flow_y = mavlink_msg_optical_flow_get_flow_y(msg);
 	optical_flow->sensor_id = mavlink_msg_optical_flow_get_sensor_id(msg);
 	optical_flow->quality = mavlink_msg_optical_flow_get_quality(msg);
 #else
-	memcpy(optical_flow, _MAV_PAYLOAD(msg), 18);
+	memcpy(optical_flow, _MAV_PAYLOAD(msg), 26);
 #endif
 }
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_param_request_list.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_param_request_list.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_param_request_list.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_param_request_list.h
index 7ebd92284f79964ffb8686eafef9f626b12a6bd2..125df80c85d7711c749e8f35ee7ea0366c9129e6 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_param_request_list.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_param_request_list.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_param_request_list_pack(uint8_t system_id, ui
 	_mav_put_uint8_t(buf, 0, target_system);
 	_mav_put_uint8_t(buf, 1, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_param_request_list_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PARAM_REQUEST_LIST;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_param_request_list_pack_chan(uint8_t system_i
 	_mav_put_uint8_t(buf, 0, target_system);
 	_mav_put_uint8_t(buf, 1, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 2);
 #else
 	mavlink_param_request_list_t packet;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 2);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PARAM_REQUEST_LIST;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_param_request_read.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_param_request_read.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_param_request_read.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_param_request_read.h
index 92fac8037cebb97704e2c5d17dd3e94f61448c12..61d00f62d1bfd79ece9a9bfca9c2ed8ac759040c 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_param_request_read.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_param_request_read.h
@@ -47,14 +47,14 @@ static inline uint16_t mavlink_msg_param_request_read_pack(uint8_t system_id, ui
 	_mav_put_uint8_t(buf, 2, target_system);
 	_mav_put_uint8_t(buf, 3, target_component);
 	_mav_put_char_array(buf, 4, param_id, 16);
-        memcpy(_MAV_PAYLOAD(msg), buf, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
 #else
 	mavlink_param_request_read_t packet;
 	packet.param_index = param_index;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	mav_array_memcpy(packet.param_id, param_id, sizeof(char)*16);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PARAM_REQUEST_READ;
@@ -83,14 +83,14 @@ static inline uint16_t mavlink_msg_param_request_read_pack_chan(uint8_t system_i
 	_mav_put_uint8_t(buf, 2, target_system);
 	_mav_put_uint8_t(buf, 3, target_component);
 	_mav_put_char_array(buf, 4, param_id, 16);
-        memcpy(_MAV_PAYLOAD(msg), buf, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
 #else
 	mavlink_param_request_read_t packet;
 	packet.param_index = param_index;
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 	mav_array_memcpy(packet.param_id, param_id, sizeof(char)*16);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PARAM_REQUEST_READ;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_param_set.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_param_set.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_param_set.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_param_set.h
index d65412d176efa4e5e3c7aa9014dfe6e0828684d6..a7e895f18d3fc9ee2104eac1029c1abf81f384a6 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_param_set.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_param_set.h
@@ -51,7 +51,7 @@ static inline uint16_t mavlink_msg_param_set_pack(uint8_t system_id, uint8_t com
 	_mav_put_uint8_t(buf, 5, target_component);
 	_mav_put_uint8_t(buf, 22, param_type);
 	_mav_put_char_array(buf, 6, param_id, 16);
-        memcpy(_MAV_PAYLOAD(msg), buf, 23);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 23);
 #else
 	mavlink_param_set_t packet;
 	packet.param_value = param_value;
@@ -59,7 +59,7 @@ static inline uint16_t mavlink_msg_param_set_pack(uint8_t system_id, uint8_t com
 	packet.target_component = target_component;
 	packet.param_type = param_type;
 	mav_array_memcpy(packet.param_id, param_id, sizeof(char)*16);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 23);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 23);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PARAM_SET;
@@ -90,7 +90,7 @@ static inline uint16_t mavlink_msg_param_set_pack_chan(uint8_t system_id, uint8_
 	_mav_put_uint8_t(buf, 5, target_component);
 	_mav_put_uint8_t(buf, 22, param_type);
 	_mav_put_char_array(buf, 6, param_id, 16);
-        memcpy(_MAV_PAYLOAD(msg), buf, 23);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 23);
 #else
 	mavlink_param_set_t packet;
 	packet.param_value = param_value;
@@ -98,7 +98,7 @@ static inline uint16_t mavlink_msg_param_set_pack_chan(uint8_t system_id, uint8_
 	packet.target_component = target_component;
 	packet.param_type = param_type;
 	mav_array_memcpy(packet.param_id, param_id, sizeof(char)*16);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 23);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 23);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PARAM_SET;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_param_value.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_param_value.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_param_value.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_param_value.h
index c972ebaa385979f549493ae56b8265e655246b35..4e16a563186aa3151e53a1db690c08671578bf46 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_param_value.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_param_value.h
@@ -51,7 +51,7 @@ static inline uint16_t mavlink_msg_param_value_pack(uint8_t system_id, uint8_t c
 	_mav_put_uint16_t(buf, 6, param_index);
 	_mav_put_uint8_t(buf, 24, param_type);
 	_mav_put_char_array(buf, 8, param_id, 16);
-        memcpy(_MAV_PAYLOAD(msg), buf, 25);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 25);
 #else
 	mavlink_param_value_t packet;
 	packet.param_value = param_value;
@@ -59,7 +59,7 @@ static inline uint16_t mavlink_msg_param_value_pack(uint8_t system_id, uint8_t c
 	packet.param_index = param_index;
 	packet.param_type = param_type;
 	mav_array_memcpy(packet.param_id, param_id, sizeof(char)*16);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 25);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 25);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PARAM_VALUE;
@@ -90,7 +90,7 @@ static inline uint16_t mavlink_msg_param_value_pack_chan(uint8_t system_id, uint
 	_mav_put_uint16_t(buf, 6, param_index);
 	_mav_put_uint8_t(buf, 24, param_type);
 	_mav_put_char_array(buf, 8, param_id, 16);
-        memcpy(_MAV_PAYLOAD(msg), buf, 25);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 25);
 #else
 	mavlink_param_value_t packet;
 	packet.param_value = param_value;
@@ -98,7 +98,7 @@ static inline uint16_t mavlink_msg_param_value_pack_chan(uint8_t system_id, uint
 	packet.param_index = param_index;
 	packet.param_type = param_type;
 	mav_array_memcpy(packet.param_id, param_id, sizeof(char)*16);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 25);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 25);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PARAM_VALUE;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_ping.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_ping.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_ping.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_ping.h
index 8c4bf0cc8c945ded42efeddff43f345eb2f26f69..3ed1b9d7c46d07c46d1fb60d62a8feefed4c5b87 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_ping.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_ping.h
@@ -48,7 +48,7 @@ static inline uint16_t mavlink_msg_ping_pack(uint8_t system_id, uint8_t componen
 	_mav_put_uint8_t(buf, 12, target_system);
 	_mav_put_uint8_t(buf, 13, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
 #else
 	mavlink_ping_t packet;
 	packet.time_usec = time_usec;
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_ping_pack(uint8_t system_id, uint8_t componen
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PING;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_ping_pack_chan(uint8_t system_id, uint8_t com
 	_mav_put_uint8_t(buf, 12, target_system);
 	_mav_put_uint8_t(buf, 13, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
 #else
 	mavlink_ping_t packet;
 	packet.time_usec = time_usec;
@@ -94,7 +94,7 @@ static inline uint16_t mavlink_msg_ping_pack_chan(uint8_t system_id, uint8_t com
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_PING;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_raw_imu.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_raw_imu.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_raw_imu.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_raw_imu.h
index a8c3988893d3d36b20655082f0ab2688f78c7663..1c1d4838867498580bad0031f86f7dfe21ece77c 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_raw_imu.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_raw_imu.h
@@ -72,7 +72,7 @@ static inline uint16_t mavlink_msg_raw_imu_pack(uint8_t system_id, uint8_t compo
 	_mav_put_int16_t(buf, 22, ymag);
 	_mav_put_int16_t(buf, 24, zmag);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 26);
 #else
 	mavlink_raw_imu_t packet;
 	packet.time_usec = time_usec;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_raw_imu_pack(uint8_t system_id, uint8_t compo
 	packet.ymag = ymag;
 	packet.zmag = zmag;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 26);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RAW_IMU;
@@ -128,7 +128,7 @@ static inline uint16_t mavlink_msg_raw_imu_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_int16_t(buf, 22, ymag);
 	_mav_put_int16_t(buf, 24, zmag);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 26);
 #else
 	mavlink_raw_imu_t packet;
 	packet.time_usec = time_usec;
@@ -142,7 +142,7 @@ static inline uint16_t mavlink_msg_raw_imu_pack_chan(uint8_t system_id, uint8_t
 	packet.ymag = ymag;
 	packet.zmag = zmag;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 26);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 26);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RAW_IMU;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_raw_pressure.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_raw_pressure.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_raw_pressure.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_raw_pressure.h
index 29e631f39cf46e06d1f2b408cc28355495e7bdc0..f3e4e8404660a8215439d1fc345c58838117b029 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_raw_pressure.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_raw_pressure.h
@@ -52,7 +52,7 @@ static inline uint16_t mavlink_msg_raw_pressure_pack(uint8_t system_id, uint8_t
 	_mav_put_int16_t(buf, 12, press_diff2);
 	_mav_put_int16_t(buf, 14, temperature);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 16);
 #else
 	mavlink_raw_pressure_t packet;
 	packet.time_usec = time_usec;
@@ -61,7 +61,7 @@ static inline uint16_t mavlink_msg_raw_pressure_pack(uint8_t system_id, uint8_t
 	packet.press_diff2 = press_diff2;
 	packet.temperature = temperature;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 16);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RAW_PRESSURE;
@@ -93,7 +93,7 @@ static inline uint16_t mavlink_msg_raw_pressure_pack_chan(uint8_t system_id, uin
 	_mav_put_int16_t(buf, 12, press_diff2);
 	_mav_put_int16_t(buf, 14, temperature);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 16);
 #else
 	mavlink_raw_pressure_t packet;
 	packet.time_usec = time_usec;
@@ -102,7 +102,7 @@ static inline uint16_t mavlink_msg_raw_pressure_pack_chan(uint8_t system_id, uin
 	packet.press_diff2 = press_diff2;
 	packet.temperature = temperature;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 16);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 16);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RAW_PRESSURE;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_rc_channels_override.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_rc_channels_override.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_rc_channels_override.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_rc_channels_override.h
index 6eccf7ae8d1737e91ee5317adb5d4face8160c17..d719c7fca2c357a74684382e9be28186513490d3 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_rc_channels_override.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_rc_channels_override.h
@@ -72,7 +72,7 @@ static inline uint16_t mavlink_msg_rc_channels_override_pack(uint8_t system_id,
 	_mav_put_uint8_t(buf, 16, target_system);
 	_mav_put_uint8_t(buf, 17, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_rc_channels_override_t packet;
 	packet.chan1_raw = chan1_raw;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_rc_channels_override_pack(uint8_t system_id,
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE;
@@ -128,7 +128,7 @@ static inline uint16_t mavlink_msg_rc_channels_override_pack_chan(uint8_t system
 	_mav_put_uint8_t(buf, 16, target_system);
 	_mav_put_uint8_t(buf, 17, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_rc_channels_override_t packet;
 	packet.chan1_raw = chan1_raw;
@@ -142,7 +142,7 @@ static inline uint16_t mavlink_msg_rc_channels_override_pack_chan(uint8_t system
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_rc_channels_raw.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_rc_channels_raw.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_rc_channels_raw.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_rc_channels_raw.h
index 1c25d1a3b38d1c136ec2a41da102ec72bbbf3c18..a5b28021d5a5c8050b3a7e5d186b337b23746040 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_rc_channels_raw.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_rc_channels_raw.h
@@ -76,7 +76,7 @@ static inline uint16_t mavlink_msg_rc_channels_raw_pack(uint8_t system_id, uint8
 	_mav_put_uint8_t(buf, 20, port);
 	_mav_put_uint8_t(buf, 21, rssi);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 22);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 22);
 #else
 	mavlink_rc_channels_raw_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -91,7 +91,7 @@ static inline uint16_t mavlink_msg_rc_channels_raw_pack(uint8_t system_id, uint8
 	packet.port = port;
 	packet.rssi = rssi;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 22);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 22);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RC_CHANNELS_RAW;
@@ -135,7 +135,7 @@ static inline uint16_t mavlink_msg_rc_channels_raw_pack_chan(uint8_t system_id,
 	_mav_put_uint8_t(buf, 20, port);
 	_mav_put_uint8_t(buf, 21, rssi);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 22);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 22);
 #else
 	mavlink_rc_channels_raw_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -150,7 +150,7 @@ static inline uint16_t mavlink_msg_rc_channels_raw_pack_chan(uint8_t system_id,
 	packet.port = port;
 	packet.rssi = rssi;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 22);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 22);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RC_CHANNELS_RAW;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_rc_channels_scaled.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_rc_channels_scaled.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_rc_channels_scaled.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_rc_channels_scaled.h
index a7a4e5b97fb3382cc123a7a2bc073d4553f498ba..23c14c03d7a3b5c55a181c31f713e21a1f756b51 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_rc_channels_scaled.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_rc_channels_scaled.h
@@ -76,7 +76,7 @@ static inline uint16_t mavlink_msg_rc_channels_scaled_pack(uint8_t system_id, ui
 	_mav_put_uint8_t(buf, 20, port);
 	_mav_put_uint8_t(buf, 21, rssi);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 22);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 22);
 #else
 	mavlink_rc_channels_scaled_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -91,7 +91,7 @@ static inline uint16_t mavlink_msg_rc_channels_scaled_pack(uint8_t system_id, ui
 	packet.port = port;
 	packet.rssi = rssi;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 22);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 22);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RC_CHANNELS_SCALED;
@@ -135,7 +135,7 @@ static inline uint16_t mavlink_msg_rc_channels_scaled_pack_chan(uint8_t system_i
 	_mav_put_uint8_t(buf, 20, port);
 	_mav_put_uint8_t(buf, 21, rssi);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 22);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 22);
 #else
 	mavlink_rc_channels_scaled_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -150,7 +150,7 @@ static inline uint16_t mavlink_msg_rc_channels_scaled_pack_chan(uint8_t system_i
 	packet.port = port;
 	packet.rssi = rssi;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 22);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 22);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_RC_CHANNELS_SCALED;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_request_data_stream.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_request_data_stream.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_request_data_stream.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_request_data_stream.h
index 9889bfc08512a1ddd3d9a6714d83164b6fcdf58a..d8653ad1095f292b744d72ea070d351bffa59bf9 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_request_data_stream.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_request_data_stream.h
@@ -52,7 +52,7 @@ static inline uint16_t mavlink_msg_request_data_stream_pack(uint8_t system_id, u
 	_mav_put_uint8_t(buf, 4, req_stream_id);
 	_mav_put_uint8_t(buf, 5, start_stop);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
 #else
 	mavlink_request_data_stream_t packet;
 	packet.req_message_rate = req_message_rate;
@@ -61,7 +61,7 @@ static inline uint16_t mavlink_msg_request_data_stream_pack(uint8_t system_id, u
 	packet.req_stream_id = req_stream_id;
 	packet.start_stop = start_stop;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_REQUEST_DATA_STREAM;
@@ -93,7 +93,7 @@ static inline uint16_t mavlink_msg_request_data_stream_pack_chan(uint8_t system_
 	_mav_put_uint8_t(buf, 4, req_stream_id);
 	_mav_put_uint8_t(buf, 5, start_stop);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
 #else
 	mavlink_request_data_stream_t packet;
 	packet.req_message_rate = req_message_rate;
@@ -102,7 +102,7 @@ static inline uint16_t mavlink_msg_request_data_stream_pack_chan(uint8_t system_
 	packet.req_stream_id = req_stream_id;
 	packet.start_stop = start_stop;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_REQUEST_DATA_STREAM;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h
index 80a88cca2f66ce48cca012b34110551cb308613e..5751badc3e2bde36cddcbb4de14a33f2a6335ba3 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h
@@ -52,7 +52,7 @@ static inline uint16_t mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint_pack(uin
 	_mav_put_float(buf, 12, yaw_speed);
 	_mav_put_float(buf, 16, thrust);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
 #else
 	mavlink_roll_pitch_yaw_speed_thrust_setpoint_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -61,7 +61,7 @@ static inline uint16_t mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint_pack(uin
 	packet.yaw_speed = yaw_speed;
 	packet.thrust = thrust;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT;
@@ -93,7 +93,7 @@ static inline uint16_t mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint_pack_cha
 	_mav_put_float(buf, 12, yaw_speed);
 	_mav_put_float(buf, 16, thrust);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
 #else
 	mavlink_roll_pitch_yaw_speed_thrust_setpoint_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -102,7 +102,7 @@ static inline uint16_t mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint_pack_cha
 	packet.yaw_speed = yaw_speed;
 	packet.thrust = thrust;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_roll_pitch_yaw_thrust_setpoint.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_roll_pitch_yaw_thrust_setpoint.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_roll_pitch_yaw_thrust_setpoint.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_roll_pitch_yaw_thrust_setpoint.h
index b8b87028d58905c6ffa8a859f8601b03ee220370..a9f6ad0caa61a1fcfc9d951a0b52b7a5112ee826 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_roll_pitch_yaw_thrust_setpoint.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_roll_pitch_yaw_thrust_setpoint.h
@@ -52,7 +52,7 @@ static inline uint16_t mavlink_msg_roll_pitch_yaw_thrust_setpoint_pack(uint8_t s
 	_mav_put_float(buf, 12, yaw);
 	_mav_put_float(buf, 16, thrust);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
 #else
 	mavlink_roll_pitch_yaw_thrust_setpoint_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -61,7 +61,7 @@ static inline uint16_t mavlink_msg_roll_pitch_yaw_thrust_setpoint_pack(uint8_t s
 	packet.yaw = yaw;
 	packet.thrust = thrust;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ROLL_PITCH_YAW_THRUST_SETPOINT;
@@ -93,7 +93,7 @@ static inline uint16_t mavlink_msg_roll_pitch_yaw_thrust_setpoint_pack_chan(uint
 	_mav_put_float(buf, 12, yaw);
 	_mav_put_float(buf, 16, thrust);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
 #else
 	mavlink_roll_pitch_yaw_thrust_setpoint_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -102,7 +102,7 @@ static inline uint16_t mavlink_msg_roll_pitch_yaw_thrust_setpoint_pack_chan(uint
 	packet.yaw = yaw;
 	packet.thrust = thrust;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_ROLL_PITCH_YAW_THRUST_SETPOINT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_safety_allowed_area.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_safety_allowed_area.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_safety_allowed_area.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_safety_allowed_area.h
index fee7734d0175e4971e53feaf246596d7cc999baa..aae6fd206ae9910aad8dd98ac000e67af3035b12 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_safety_allowed_area.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_safety_allowed_area.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_safety_allowed_area_pack(uint8_t system_id, u
 	_mav_put_float(buf, 20, p2z);
 	_mav_put_uint8_t(buf, 24, frame);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 25);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 25);
 #else
 	mavlink_safety_allowed_area_t packet;
 	packet.p1x = p1x;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_safety_allowed_area_pack(uint8_t system_id, u
 	packet.p2z = p2z;
 	packet.frame = frame;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 25);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 25);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SAFETY_ALLOWED_AREA;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_safety_allowed_area_pack_chan(uint8_t system_
 	_mav_put_float(buf, 20, p2z);
 	_mav_put_uint8_t(buf, 24, frame);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 25);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 25);
 #else
 	mavlink_safety_allowed_area_t packet;
 	packet.p1x = p1x;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_safety_allowed_area_pack_chan(uint8_t system_
 	packet.p2z = p2z;
 	packet.frame = frame;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 25);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 25);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SAFETY_ALLOWED_AREA;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_safety_set_allowed_area.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_safety_set_allowed_area.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_safety_set_allowed_area.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_safety_set_allowed_area.h
index 35d9b3b25425ca660a839264327e5d0dbe9bef17..8fb410c2d63969636d2d2cf4f1c4c84b33988d6b 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_safety_set_allowed_area.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_safety_set_allowed_area.h
@@ -68,7 +68,7 @@ static inline uint16_t mavlink_msg_safety_set_allowed_area_pack(uint8_t system_i
 	_mav_put_uint8_t(buf, 25, target_component);
 	_mav_put_uint8_t(buf, 26, frame);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 27);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 27);
 #else
 	mavlink_safety_set_allowed_area_t packet;
 	packet.p1x = p1x;
@@ -81,7 +81,7 @@ static inline uint16_t mavlink_msg_safety_set_allowed_area_pack(uint8_t system_i
 	packet.target_component = target_component;
 	packet.frame = frame;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 27);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 27);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SAFETY_SET_ALLOWED_AREA;
@@ -121,7 +121,7 @@ static inline uint16_t mavlink_msg_safety_set_allowed_area_pack_chan(uint8_t sys
 	_mav_put_uint8_t(buf, 25, target_component);
 	_mav_put_uint8_t(buf, 26, frame);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 27);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 27);
 #else
 	mavlink_safety_set_allowed_area_t packet;
 	packet.p1x = p1x;
@@ -134,7 +134,7 @@ static inline uint16_t mavlink_msg_safety_set_allowed_area_pack_chan(uint8_t sys
 	packet.target_component = target_component;
 	packet.frame = frame;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 27);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 27);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SAFETY_SET_ALLOWED_AREA;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_scaled_imu.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_scaled_imu.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_scaled_imu.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_scaled_imu.h
index 145d959ade88ea1a8d5aba16195d51a31d8a9946..8ff098f39f6714c1b60e5c21ca67f547b586b0f2 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_scaled_imu.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_scaled_imu.h
@@ -72,7 +72,7 @@ static inline uint16_t mavlink_msg_scaled_imu_pack(uint8_t system_id, uint8_t co
 	_mav_put_int16_t(buf, 18, ymag);
 	_mav_put_int16_t(buf, 20, zmag);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 22);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 22);
 #else
 	mavlink_scaled_imu_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_scaled_imu_pack(uint8_t system_id, uint8_t co
 	packet.ymag = ymag;
 	packet.zmag = zmag;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 22);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 22);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SCALED_IMU;
@@ -128,7 +128,7 @@ static inline uint16_t mavlink_msg_scaled_imu_pack_chan(uint8_t system_id, uint8
 	_mav_put_int16_t(buf, 18, ymag);
 	_mav_put_int16_t(buf, 20, zmag);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 22);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 22);
 #else
 	mavlink_scaled_imu_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -142,7 +142,7 @@ static inline uint16_t mavlink_msg_scaled_imu_pack_chan(uint8_t system_id, uint8
 	packet.ymag = ymag;
 	packet.zmag = zmag;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 22);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 22);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SCALED_IMU;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_scaled_pressure.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_scaled_pressure.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_scaled_pressure.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_scaled_pressure.h
index 428a7af22373237205a021ced7d58c616e313179..dac1e0b9a6569e8a1af06a2f63ecfe430ce3de7e 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_scaled_pressure.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_scaled_pressure.h
@@ -48,7 +48,7 @@ static inline uint16_t mavlink_msg_scaled_pressure_pack(uint8_t system_id, uint8
 	_mav_put_float(buf, 8, press_diff);
 	_mav_put_int16_t(buf, 12, temperature);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
 #else
 	mavlink_scaled_pressure_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_scaled_pressure_pack(uint8_t system_id, uint8
 	packet.press_diff = press_diff;
 	packet.temperature = temperature;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SCALED_PRESSURE;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_scaled_pressure_pack_chan(uint8_t system_id,
 	_mav_put_float(buf, 8, press_diff);
 	_mav_put_int16_t(buf, 12, temperature);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 14);
 #else
 	mavlink_scaled_pressure_t packet;
 	packet.time_boot_ms = time_boot_ms;
@@ -94,7 +94,7 @@ static inline uint16_t mavlink_msg_scaled_pressure_pack_chan(uint8_t system_id,
 	packet.press_diff = press_diff;
 	packet.temperature = temperature;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 14);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SCALED_PRESSURE;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_servo_output_raw.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_servo_output_raw.h
similarity index 98%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_servo_output_raw.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_servo_output_raw.h
index dce71fd6e8d05d75aab113db92cd26dee161edaa..34a58cd76342cf46a7dc21df1ce1226af95ff914 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_servo_output_raw.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_servo_output_raw.h
@@ -72,7 +72,7 @@ static inline uint16_t mavlink_msg_servo_output_raw_pack(uint8_t system_id, uint
 	_mav_put_uint16_t(buf, 18, servo8_raw);
 	_mav_put_uint8_t(buf, 20, port);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 21);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 21);
 #else
 	mavlink_servo_output_raw_t packet;
 	packet.time_usec = time_usec;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_servo_output_raw_pack(uint8_t system_id, uint
 	packet.servo8_raw = servo8_raw;
 	packet.port = port;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 21);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 21);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SERVO_OUTPUT_RAW;
@@ -128,7 +128,7 @@ static inline uint16_t mavlink_msg_servo_output_raw_pack_chan(uint8_t system_id,
 	_mav_put_uint16_t(buf, 18, servo8_raw);
 	_mav_put_uint8_t(buf, 20, port);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 21);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 21);
 #else
 	mavlink_servo_output_raw_t packet;
 	packet.time_usec = time_usec;
@@ -142,7 +142,7 @@ static inline uint16_t mavlink_msg_servo_output_raw_pack_chan(uint8_t system_id,
 	packet.servo8_raw = servo8_raw;
 	packet.port = port;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 21);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 21);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SERVO_OUTPUT_RAW;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_global_position_setpoint_int.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_global_position_setpoint_int.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_global_position_setpoint_int.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_global_position_setpoint_int.h
index ea34731c9eeafc0126b2caeb7ef0d77bb9992b34..5b706fb506747617c639ef2a8bef12eeb6bde629 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_global_position_setpoint_int.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_global_position_setpoint_int.h
@@ -52,7 +52,7 @@ static inline uint16_t mavlink_msg_set_global_position_setpoint_int_pack(uint8_t
 	_mav_put_int16_t(buf, 12, yaw);
 	_mav_put_uint8_t(buf, 14, coordinate_frame);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 15);
 #else
 	mavlink_set_global_position_setpoint_int_t packet;
 	packet.latitude = latitude;
@@ -61,7 +61,7 @@ static inline uint16_t mavlink_msg_set_global_position_setpoint_int_pack(uint8_t
 	packet.yaw = yaw;
 	packet.coordinate_frame = coordinate_frame;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 15);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_GLOBAL_POSITION_SETPOINT_INT;
@@ -93,7 +93,7 @@ static inline uint16_t mavlink_msg_set_global_position_setpoint_int_pack_chan(ui
 	_mav_put_int16_t(buf, 12, yaw);
 	_mav_put_uint8_t(buf, 14, coordinate_frame);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 15);
 #else
 	mavlink_set_global_position_setpoint_int_t packet;
 	packet.latitude = latitude;
@@ -102,7 +102,7 @@ static inline uint16_t mavlink_msg_set_global_position_setpoint_int_pack_chan(ui
 	packet.yaw = yaw;
 	packet.coordinate_frame = coordinate_frame;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 15);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 15);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_GLOBAL_POSITION_SETPOINT_INT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_gps_global_origin.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_gps_global_origin.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_gps_global_origin.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_gps_global_origin.h
index ee6f18af567849d9b89e8597c1ae286e2a88dda9..af404b1108e720c47f6f7ee85c96fd477f5c6751 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_gps_global_origin.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_gps_global_origin.h
@@ -48,7 +48,7 @@ static inline uint16_t mavlink_msg_set_gps_global_origin_pack(uint8_t system_id,
 	_mav_put_int32_t(buf, 8, altitude);
 	_mav_put_uint8_t(buf, 12, target_system);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 13);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 13);
 #else
 	mavlink_set_gps_global_origin_t packet;
 	packet.latitude = latitude;
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_set_gps_global_origin_pack(uint8_t system_id,
 	packet.altitude = altitude;
 	packet.target_system = target_system;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 13);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 13);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_GPS_GLOBAL_ORIGIN;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_set_gps_global_origin_pack_chan(uint8_t syste
 	_mav_put_int32_t(buf, 8, altitude);
 	_mav_put_uint8_t(buf, 12, target_system);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 13);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 13);
 #else
 	mavlink_set_gps_global_origin_t packet;
 	packet.latitude = latitude;
@@ -94,7 +94,7 @@ static inline uint16_t mavlink_msg_set_gps_global_origin_pack_chan(uint8_t syste
 	packet.altitude = altitude;
 	packet.target_system = target_system;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 13);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 13);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_GPS_GLOBAL_ORIGIN;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_local_position_setpoint.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_local_position_setpoint.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_local_position_setpoint.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_local_position_setpoint.h
index 4024c9ef13c909f40c97c9ecfebe0aedabab16b1..233e07d65cc9aa8c79f90830e81c4377c69934c0 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_local_position_setpoint.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_local_position_setpoint.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_set_local_position_setpoint_pack(uint8_t syst
 	_mav_put_uint8_t(buf, 17, target_component);
 	_mav_put_uint8_t(buf, 18, coordinate_frame);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 19);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 19);
 #else
 	mavlink_set_local_position_setpoint_t packet;
 	packet.x = x;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_set_local_position_setpoint_pack(uint8_t syst
 	packet.target_component = target_component;
 	packet.coordinate_frame = coordinate_frame;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 19);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 19);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_LOCAL_POSITION_SETPOINT;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_set_local_position_setpoint_pack_chan(uint8_t
 	_mav_put_uint8_t(buf, 17, target_component);
 	_mav_put_uint8_t(buf, 18, coordinate_frame);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 19);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 19);
 #else
 	mavlink_set_local_position_setpoint_t packet;
 	packet.x = x;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_set_local_position_setpoint_pack_chan(uint8_t
 	packet.target_component = target_component;
 	packet.coordinate_frame = coordinate_frame;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 19);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 19);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_LOCAL_POSITION_SETPOINT;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_mode.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_mode.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_mode.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_mode.h
index b622de0ea9092b5ede29d9f61484e64c52c727eb..fec21ab13791a0a20706423fb387bf1469b772fb 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_mode.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_mode.h
@@ -44,14 +44,14 @@ static inline uint16_t mavlink_msg_set_mode_pack(uint8_t system_id, uint8_t comp
 	_mav_put_uint8_t(buf, 4, target_system);
 	_mav_put_uint8_t(buf, 5, base_mode);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
 #else
 	mavlink_set_mode_t packet;
 	packet.custom_mode = custom_mode;
 	packet.target_system = target_system;
 	packet.base_mode = base_mode;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_MODE;
@@ -79,14 +79,14 @@ static inline uint16_t mavlink_msg_set_mode_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_uint8_t(buf, 4, target_system);
 	_mav_put_uint8_t(buf, 5, base_mode);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 6);
 #else
 	mavlink_set_mode_t packet;
 	packet.custom_mode = custom_mode;
 	packet.target_system = target_system;
 	packet.base_mode = base_mode;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 6);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_MODE;
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_quad_motors_setpoint.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_quad_motors_setpoint.h
new file mode 100644
index 0000000000000000000000000000000000000000..40ff8998ec46367418e6cf28a61f21b740d7a2d4
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_quad_motors_setpoint.h
@@ -0,0 +1,232 @@
+// MESSAGE SET_QUAD_MOTORS_SETPOINT PACKING
+
+#define MAVLINK_MSG_ID_SET_QUAD_MOTORS_SETPOINT 60
+
+typedef struct __mavlink_set_quad_motors_setpoint_t
+{
+ uint16_t motor_front_nw; ///< Front motor in + configuration, front left motor in x configuration
+ uint16_t motor_right_ne; ///< Right motor in + configuration, front right motor in x configuration
+ uint16_t motor_back_se; ///< Back motor in + configuration, back right motor in x configuration
+ uint16_t motor_left_sw; ///< Left motor in + configuration, back left motor in x configuration
+ uint8_t target_system; ///< System ID of the system that should set these motor commands
+} mavlink_set_quad_motors_setpoint_t;
+
+#define MAVLINK_MSG_ID_SET_QUAD_MOTORS_SETPOINT_LEN 9
+#define MAVLINK_MSG_ID_60_LEN 9
+
+
+
+#define MAVLINK_MESSAGE_INFO_SET_QUAD_MOTORS_SETPOINT { \
+	"SET_QUAD_MOTORS_SETPOINT", \
+	5, \
+	{  { "motor_front_nw", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_set_quad_motors_setpoint_t, motor_front_nw) }, \
+         { "motor_right_ne", NULL, MAVLINK_TYPE_UINT16_T, 0, 2, offsetof(mavlink_set_quad_motors_setpoint_t, motor_right_ne) }, \
+         { "motor_back_se", NULL, MAVLINK_TYPE_UINT16_T, 0, 4, offsetof(mavlink_set_quad_motors_setpoint_t, motor_back_se) }, \
+         { "motor_left_sw", NULL, MAVLINK_TYPE_UINT16_T, 0, 6, offsetof(mavlink_set_quad_motors_setpoint_t, motor_left_sw) }, \
+         { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 8, offsetof(mavlink_set_quad_motors_setpoint_t, target_system) }, \
+         } \
+}
+
+
+/**
+ * @brief Pack a set_quad_motors_setpoint 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 target_system System ID of the system that should set these motor commands
+ * @param motor_front_nw Front motor in + configuration, front left motor in x configuration
+ * @param motor_right_ne Right motor in + configuration, front right motor in x configuration
+ * @param motor_back_se Back motor in + configuration, back right motor in x configuration
+ * @param motor_left_sw Left motor in + configuration, back left motor in x configuration
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_set_quad_motors_setpoint_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
+						       uint8_t target_system, uint16_t motor_front_nw, uint16_t motor_right_ne, uint16_t motor_back_se, uint16_t motor_left_sw)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[9];
+	_mav_put_uint16_t(buf, 0, motor_front_nw);
+	_mav_put_uint16_t(buf, 2, motor_right_ne);
+	_mav_put_uint16_t(buf, 4, motor_back_se);
+	_mav_put_uint16_t(buf, 6, motor_left_sw);
+	_mav_put_uint8_t(buf, 8, target_system);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 9);
+#else
+	mavlink_set_quad_motors_setpoint_t packet;
+	packet.motor_front_nw = motor_front_nw;
+	packet.motor_right_ne = motor_right_ne;
+	packet.motor_back_se = motor_back_se;
+	packet.motor_left_sw = motor_left_sw;
+	packet.target_system = target_system;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 9);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_SET_QUAD_MOTORS_SETPOINT;
+	return mavlink_finalize_message(msg, system_id, component_id, 9, 30);
+}
+
+/**
+ * @brief Pack a set_quad_motors_setpoint 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
+ * @param target_system System ID of the system that should set these motor commands
+ * @param motor_front_nw Front motor in + configuration, front left motor in x configuration
+ * @param motor_right_ne Right motor in + configuration, front right motor in x configuration
+ * @param motor_back_se Back motor in + configuration, back right motor in x configuration
+ * @param motor_left_sw Left motor in + configuration, back left motor in x configuration
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_set_quad_motors_setpoint_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
+							   mavlink_message_t* msg,
+						           uint8_t target_system,uint16_t motor_front_nw,uint16_t motor_right_ne,uint16_t motor_back_se,uint16_t motor_left_sw)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[9];
+	_mav_put_uint16_t(buf, 0, motor_front_nw);
+	_mav_put_uint16_t(buf, 2, motor_right_ne);
+	_mav_put_uint16_t(buf, 4, motor_back_se);
+	_mav_put_uint16_t(buf, 6, motor_left_sw);
+	_mav_put_uint8_t(buf, 8, target_system);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 9);
+#else
+	mavlink_set_quad_motors_setpoint_t packet;
+	packet.motor_front_nw = motor_front_nw;
+	packet.motor_right_ne = motor_right_ne;
+	packet.motor_back_se = motor_back_se;
+	packet.motor_left_sw = motor_left_sw;
+	packet.target_system = target_system;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 9);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_SET_QUAD_MOTORS_SETPOINT;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 9, 30);
+}
+
+/**
+ * @brief Encode a set_quad_motors_setpoint 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 set_quad_motors_setpoint C-struct to read the message contents from
+ */
+static inline uint16_t mavlink_msg_set_quad_motors_setpoint_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_set_quad_motors_setpoint_t* set_quad_motors_setpoint)
+{
+	return mavlink_msg_set_quad_motors_setpoint_pack(system_id, component_id, msg, set_quad_motors_setpoint->target_system, set_quad_motors_setpoint->motor_front_nw, set_quad_motors_setpoint->motor_right_ne, set_quad_motors_setpoint->motor_back_se, set_quad_motors_setpoint->motor_left_sw);
+}
+
+/**
+ * @brief Send a set_quad_motors_setpoint message
+ * @param chan MAVLink channel to send the message
+ *
+ * @param target_system System ID of the system that should set these motor commands
+ * @param motor_front_nw Front motor in + configuration, front left motor in x configuration
+ * @param motor_right_ne Right motor in + configuration, front right motor in x configuration
+ * @param motor_back_se Back motor in + configuration, back right motor in x configuration
+ * @param motor_left_sw Left motor in + configuration, back left motor in x configuration
+ */
+#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
+
+static inline void mavlink_msg_set_quad_motors_setpoint_send(mavlink_channel_t chan, uint8_t target_system, uint16_t motor_front_nw, uint16_t motor_right_ne, uint16_t motor_back_se, uint16_t motor_left_sw)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[9];
+	_mav_put_uint16_t(buf, 0, motor_front_nw);
+	_mav_put_uint16_t(buf, 2, motor_right_ne);
+	_mav_put_uint16_t(buf, 4, motor_back_se);
+	_mav_put_uint16_t(buf, 6, motor_left_sw);
+	_mav_put_uint8_t(buf, 8, target_system);
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_QUAD_MOTORS_SETPOINT, buf, 9, 30);
+#else
+	mavlink_set_quad_motors_setpoint_t packet;
+	packet.motor_front_nw = motor_front_nw;
+	packet.motor_right_ne = motor_right_ne;
+	packet.motor_back_se = motor_back_se;
+	packet.motor_left_sw = motor_left_sw;
+	packet.target_system = target_system;
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_QUAD_MOTORS_SETPOINT, (const char *)&packet, 9, 30);
+#endif
+}
+
+#endif
+
+// MESSAGE SET_QUAD_MOTORS_SETPOINT UNPACKING
+
+
+/**
+ * @brief Get field target_system from set_quad_motors_setpoint message
+ *
+ * @return System ID of the system that should set these motor commands
+ */
+static inline uint8_t mavlink_msg_set_quad_motors_setpoint_get_target_system(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_uint8_t(msg,  8);
+}
+
+/**
+ * @brief Get field motor_front_nw from set_quad_motors_setpoint message
+ *
+ * @return Front motor in + configuration, front left motor in x configuration
+ */
+static inline uint16_t mavlink_msg_set_quad_motors_setpoint_get_motor_front_nw(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_uint16_t(msg,  0);
+}
+
+/**
+ * @brief Get field motor_right_ne from set_quad_motors_setpoint message
+ *
+ * @return Right motor in + configuration, front right motor in x configuration
+ */
+static inline uint16_t mavlink_msg_set_quad_motors_setpoint_get_motor_right_ne(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_uint16_t(msg,  2);
+}
+
+/**
+ * @brief Get field motor_back_se from set_quad_motors_setpoint message
+ *
+ * @return Back motor in + configuration, back right motor in x configuration
+ */
+static inline uint16_t mavlink_msg_set_quad_motors_setpoint_get_motor_back_se(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_uint16_t(msg,  4);
+}
+
+/**
+ * @brief Get field motor_left_sw from set_quad_motors_setpoint message
+ *
+ * @return Left motor in + configuration, back left motor in x configuration
+ */
+static inline uint16_t mavlink_msg_set_quad_motors_setpoint_get_motor_left_sw(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_uint16_t(msg,  6);
+}
+
+/**
+ * @brief Decode a set_quad_motors_setpoint message into a struct
+ *
+ * @param msg The message to decode
+ * @param set_quad_motors_setpoint C-struct to decode the message contents into
+ */
+static inline void mavlink_msg_set_quad_motors_setpoint_decode(const mavlink_message_t* msg, mavlink_set_quad_motors_setpoint_t* set_quad_motors_setpoint)
+{
+#if MAVLINK_NEED_BYTE_SWAP
+	set_quad_motors_setpoint->motor_front_nw = mavlink_msg_set_quad_motors_setpoint_get_motor_front_nw(msg);
+	set_quad_motors_setpoint->motor_right_ne = mavlink_msg_set_quad_motors_setpoint_get_motor_right_ne(msg);
+	set_quad_motors_setpoint->motor_back_se = mavlink_msg_set_quad_motors_setpoint_get_motor_back_se(msg);
+	set_quad_motors_setpoint->motor_left_sw = mavlink_msg_set_quad_motors_setpoint_get_motor_left_sw(msg);
+	set_quad_motors_setpoint->target_system = mavlink_msg_set_quad_motors_setpoint_get_target_system(msg);
+#else
+	memcpy(set_quad_motors_setpoint, _MAV_PAYLOAD(msg), 9);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust.h
new file mode 100644
index 0000000000000000000000000000000000000000..c3ea8de408cd4a9aac96f756b5c84dbf3b78c9ff
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust.h
@@ -0,0 +1,236 @@
+// MESSAGE SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST PACKING
+
+#define MAVLINK_MSG_ID_SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST 61
+
+typedef struct __mavlink_set_quad_swarm_roll_pitch_yaw_thrust_t
+{
+ int16_t roll[6]; ///< Desired roll angle in radians, scaled to int16 for 6 quadrotors: 0..5
+ int16_t pitch[6]; ///< Desired pitch angle in radians, scaled to int16 for 6 quadrotors: 0..5
+ int16_t yaw[6]; ///< Desired yaw angle in radians, scaled to int16 for 6 quadrotors: 0..5
+ uint16_t thrust[6]; ///< Collective thrust, scaled to uint16 for 6 quadrotors: 0..5
+ uint8_t target_systems[6]; ///< System IDs for 6 quadrotors: 0..5, the ID's are the MAVLink IDs
+} mavlink_set_quad_swarm_roll_pitch_yaw_thrust_t;
+
+#define MAVLINK_MSG_ID_SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST_LEN 54
+#define MAVLINK_MSG_ID_61_LEN 54
+
+#define MAVLINK_MSG_SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST_FIELD_ROLL_LEN 6
+#define MAVLINK_MSG_SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST_FIELD_PITCH_LEN 6
+#define MAVLINK_MSG_SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST_FIELD_YAW_LEN 6
+#define MAVLINK_MSG_SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST_FIELD_THRUST_LEN 6
+#define MAVLINK_MSG_SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST_FIELD_TARGET_SYSTEMS_LEN 6
+
+#define MAVLINK_MESSAGE_INFO_SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST { \
+	"SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST", \
+	5, \
+	{  { "roll", NULL, MAVLINK_TYPE_INT16_T, 6, 0, offsetof(mavlink_set_quad_swarm_roll_pitch_yaw_thrust_t, roll) }, \
+         { "pitch", NULL, MAVLINK_TYPE_INT16_T, 6, 12, offsetof(mavlink_set_quad_swarm_roll_pitch_yaw_thrust_t, pitch) }, \
+         { "yaw", NULL, MAVLINK_TYPE_INT16_T, 6, 24, offsetof(mavlink_set_quad_swarm_roll_pitch_yaw_thrust_t, yaw) }, \
+         { "thrust", NULL, MAVLINK_TYPE_UINT16_T, 6, 36, offsetof(mavlink_set_quad_swarm_roll_pitch_yaw_thrust_t, thrust) }, \
+         { "target_systems", NULL, MAVLINK_TYPE_UINT8_T, 6, 48, offsetof(mavlink_set_quad_swarm_roll_pitch_yaw_thrust_t, target_systems) }, \
+         } \
+}
+
+
+/**
+ * @brief Pack a set_quad_swarm_roll_pitch_yaw_thrust 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 target_systems System IDs for 6 quadrotors: 0..5, the ID's are the MAVLink IDs
+ * @param roll Desired roll angle in radians, scaled to int16 for 6 quadrotors: 0..5
+ * @param pitch Desired pitch angle in radians, scaled to int16 for 6 quadrotors: 0..5
+ * @param yaw Desired yaw angle in radians, scaled to int16 for 6 quadrotors: 0..5
+ * @param thrust Collective thrust, scaled to uint16 for 6 quadrotors: 0..5
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
+						       const uint8_t *target_systems, const int16_t *roll, const int16_t *pitch, const int16_t *yaw, const uint16_t *thrust)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[54];
+
+	_mav_put_int16_t_array(buf, 0, roll, 6);
+	_mav_put_int16_t_array(buf, 12, pitch, 6);
+	_mav_put_int16_t_array(buf, 24, yaw, 6);
+	_mav_put_uint16_t_array(buf, 36, thrust, 6);
+	_mav_put_uint8_t_array(buf, 48, target_systems, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 54);
+#else
+	mavlink_set_quad_swarm_roll_pitch_yaw_thrust_t packet;
+
+	mav_array_memcpy(packet.roll, roll, sizeof(int16_t)*6);
+	mav_array_memcpy(packet.pitch, pitch, sizeof(int16_t)*6);
+	mav_array_memcpy(packet.yaw, yaw, sizeof(int16_t)*6);
+	mav_array_memcpy(packet.thrust, thrust, sizeof(uint16_t)*6);
+	mav_array_memcpy(packet.target_systems, target_systems, sizeof(uint8_t)*6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 54);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST;
+	return mavlink_finalize_message(msg, system_id, component_id, 54, 200);
+}
+
+/**
+ * @brief Pack a set_quad_swarm_roll_pitch_yaw_thrust 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
+ * @param target_systems System IDs for 6 quadrotors: 0..5, the ID's are the MAVLink IDs
+ * @param roll Desired roll angle in radians, scaled to int16 for 6 quadrotors: 0..5
+ * @param pitch Desired pitch angle in radians, scaled to int16 for 6 quadrotors: 0..5
+ * @param yaw Desired yaw angle in radians, scaled to int16 for 6 quadrotors: 0..5
+ * @param thrust Collective thrust, scaled to uint16 for 6 quadrotors: 0..5
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
+							   mavlink_message_t* msg,
+						           const uint8_t *target_systems,const int16_t *roll,const int16_t *pitch,const int16_t *yaw,const uint16_t *thrust)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[54];
+
+	_mav_put_int16_t_array(buf, 0, roll, 6);
+	_mav_put_int16_t_array(buf, 12, pitch, 6);
+	_mav_put_int16_t_array(buf, 24, yaw, 6);
+	_mav_put_uint16_t_array(buf, 36, thrust, 6);
+	_mav_put_uint8_t_array(buf, 48, target_systems, 6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 54);
+#else
+	mavlink_set_quad_swarm_roll_pitch_yaw_thrust_t packet;
+
+	mav_array_memcpy(packet.roll, roll, sizeof(int16_t)*6);
+	mav_array_memcpy(packet.pitch, pitch, sizeof(int16_t)*6);
+	mav_array_memcpy(packet.yaw, yaw, sizeof(int16_t)*6);
+	mav_array_memcpy(packet.thrust, thrust, sizeof(uint16_t)*6);
+	mav_array_memcpy(packet.target_systems, target_systems, sizeof(uint8_t)*6);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 54);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 54, 200);
+}
+
+/**
+ * @brief Encode a set_quad_swarm_roll_pitch_yaw_thrust 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 set_quad_swarm_roll_pitch_yaw_thrust C-struct to read the message contents from
+ */
+static inline uint16_t mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_set_quad_swarm_roll_pitch_yaw_thrust_t* set_quad_swarm_roll_pitch_yaw_thrust)
+{
+	return mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_pack(system_id, component_id, msg, set_quad_swarm_roll_pitch_yaw_thrust->target_systems, set_quad_swarm_roll_pitch_yaw_thrust->roll, set_quad_swarm_roll_pitch_yaw_thrust->pitch, set_quad_swarm_roll_pitch_yaw_thrust->yaw, set_quad_swarm_roll_pitch_yaw_thrust->thrust);
+}
+
+/**
+ * @brief Send a set_quad_swarm_roll_pitch_yaw_thrust message
+ * @param chan MAVLink channel to send the message
+ *
+ * @param target_systems System IDs for 6 quadrotors: 0..5, the ID's are the MAVLink IDs
+ * @param roll Desired roll angle in radians, scaled to int16 for 6 quadrotors: 0..5
+ * @param pitch Desired pitch angle in radians, scaled to int16 for 6 quadrotors: 0..5
+ * @param yaw Desired yaw angle in radians, scaled to int16 for 6 quadrotors: 0..5
+ * @param thrust Collective thrust, scaled to uint16 for 6 quadrotors: 0..5
+ */
+#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
+
+static inline void mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_send(mavlink_channel_t chan, const uint8_t *target_systems, const int16_t *roll, const int16_t *pitch, const int16_t *yaw, const uint16_t *thrust)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[54];
+
+	_mav_put_int16_t_array(buf, 0, roll, 6);
+	_mav_put_int16_t_array(buf, 12, pitch, 6);
+	_mav_put_int16_t_array(buf, 24, yaw, 6);
+	_mav_put_uint16_t_array(buf, 36, thrust, 6);
+	_mav_put_uint8_t_array(buf, 48, target_systems, 6);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST, buf, 54, 200);
+#else
+	mavlink_set_quad_swarm_roll_pitch_yaw_thrust_t packet;
+
+	mav_array_memcpy(packet.roll, roll, sizeof(int16_t)*6);
+	mav_array_memcpy(packet.pitch, pitch, sizeof(int16_t)*6);
+	mav_array_memcpy(packet.yaw, yaw, sizeof(int16_t)*6);
+	mav_array_memcpy(packet.thrust, thrust, sizeof(uint16_t)*6);
+	mav_array_memcpy(packet.target_systems, target_systems, sizeof(uint8_t)*6);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST, (const char *)&packet, 54, 200);
+#endif
+}
+
+#endif
+
+// MESSAGE SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST UNPACKING
+
+
+/**
+ * @brief Get field target_systems from set_quad_swarm_roll_pitch_yaw_thrust message
+ *
+ * @return System IDs for 6 quadrotors: 0..5, the ID's are the MAVLink IDs
+ */
+static inline uint16_t mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_get_target_systems(const mavlink_message_t* msg, uint8_t *target_systems)
+{
+	return _MAV_RETURN_uint8_t_array(msg, target_systems, 6,  48);
+}
+
+/**
+ * @brief Get field roll from set_quad_swarm_roll_pitch_yaw_thrust message
+ *
+ * @return Desired roll angle in radians, scaled to int16 for 6 quadrotors: 0..5
+ */
+static inline uint16_t mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_get_roll(const mavlink_message_t* msg, int16_t *roll)
+{
+	return _MAV_RETURN_int16_t_array(msg, roll, 6,  0);
+}
+
+/**
+ * @brief Get field pitch from set_quad_swarm_roll_pitch_yaw_thrust message
+ *
+ * @return Desired pitch angle in radians, scaled to int16 for 6 quadrotors: 0..5
+ */
+static inline uint16_t mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_get_pitch(const mavlink_message_t* msg, int16_t *pitch)
+{
+	return _MAV_RETURN_int16_t_array(msg, pitch, 6,  12);
+}
+
+/**
+ * @brief Get field yaw from set_quad_swarm_roll_pitch_yaw_thrust message
+ *
+ * @return Desired yaw angle in radians, scaled to int16 for 6 quadrotors: 0..5
+ */
+static inline uint16_t mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_get_yaw(const mavlink_message_t* msg, int16_t *yaw)
+{
+	return _MAV_RETURN_int16_t_array(msg, yaw, 6,  24);
+}
+
+/**
+ * @brief Get field thrust from set_quad_swarm_roll_pitch_yaw_thrust message
+ *
+ * @return Collective thrust, scaled to uint16 for 6 quadrotors: 0..5
+ */
+static inline uint16_t mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_get_thrust(const mavlink_message_t* msg, uint16_t *thrust)
+{
+	return _MAV_RETURN_uint16_t_array(msg, thrust, 6,  36);
+}
+
+/**
+ * @brief Decode a set_quad_swarm_roll_pitch_yaw_thrust message into a struct
+ *
+ * @param msg The message to decode
+ * @param set_quad_swarm_roll_pitch_yaw_thrust C-struct to decode the message contents into
+ */
+static inline void mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_decode(const mavlink_message_t* msg, mavlink_set_quad_swarm_roll_pitch_yaw_thrust_t* set_quad_swarm_roll_pitch_yaw_thrust)
+{
+#if MAVLINK_NEED_BYTE_SWAP
+	mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_get_roll(msg, set_quad_swarm_roll_pitch_yaw_thrust->roll);
+	mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_get_pitch(msg, set_quad_swarm_roll_pitch_yaw_thrust->pitch);
+	mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_get_yaw(msg, set_quad_swarm_roll_pitch_yaw_thrust->yaw);
+	mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_get_thrust(msg, set_quad_swarm_roll_pitch_yaw_thrust->thrust);
+	mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_get_target_systems(msg, set_quad_swarm_roll_pitch_yaw_thrust->target_systems);
+#else
+	memcpy(set_quad_swarm_roll_pitch_yaw_thrust, _MAV_PAYLOAD(msg), 54);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_roll_pitch_yaw_speed_thrust.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_roll_pitch_yaw_speed_thrust.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_roll_pitch_yaw_speed_thrust.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_roll_pitch_yaw_speed_thrust.h
index 0141f77520e5188d38340849de2ee212cecd4682..b79a7e9f2fd3bb519d36acf0d70b65e74e9604b7 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_roll_pitch_yaw_speed_thrust.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_roll_pitch_yaw_speed_thrust.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_set_roll_pitch_yaw_speed_thrust_pack(uint8_t
 	_mav_put_uint8_t(buf, 16, target_system);
 	_mav_put_uint8_t(buf, 17, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_set_roll_pitch_yaw_speed_thrust_t packet;
 	packet.roll_speed = roll_speed;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_set_roll_pitch_yaw_speed_thrust_pack(uint8_t
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_SPEED_THRUST;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_set_roll_pitch_yaw_speed_thrust_pack_chan(uin
 	_mav_put_uint8_t(buf, 16, target_system);
 	_mav_put_uint8_t(buf, 17, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_set_roll_pitch_yaw_speed_thrust_t packet;
 	packet.roll_speed = roll_speed;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_set_roll_pitch_yaw_speed_thrust_pack_chan(uin
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_SPEED_THRUST;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_roll_pitch_yaw_thrust.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_roll_pitch_yaw_thrust.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_roll_pitch_yaw_thrust.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_roll_pitch_yaw_thrust.h
index 453cf7b9c8b9f8c88143c55b2e25b646627603d6..8cd573a26c561e658bcdb255873dbac00a3983ab 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_roll_pitch_yaw_thrust.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_set_roll_pitch_yaw_thrust.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_set_roll_pitch_yaw_thrust_pack(uint8_t system
 	_mav_put_uint8_t(buf, 16, target_system);
 	_mav_put_uint8_t(buf, 17, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_set_roll_pitch_yaw_thrust_t packet;
 	packet.roll = roll;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_set_roll_pitch_yaw_thrust_pack(uint8_t system
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_THRUST;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_set_roll_pitch_yaw_thrust_pack_chan(uint8_t s
 	_mav_put_uint8_t(buf, 16, target_system);
 	_mav_put_uint8_t(buf, 17, target_component);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 18);
 #else
 	mavlink_set_roll_pitch_yaw_thrust_t packet;
 	packet.roll = roll;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_set_roll_pitch_yaw_thrust_pack_chan(uint8_t s
 	packet.target_system = target_system;
 	packet.target_component = target_component;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 18);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_THRUST;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_state_correction.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_state_correction.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_state_correction.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_state_correction.h
index 7dea690d292725dce5b28b8335ce0891410d2e46..0f4f1f5e22bff94c46af0c96dd5210ceaf67b2ec 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_state_correction.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_state_correction.h
@@ -68,7 +68,7 @@ static inline uint16_t mavlink_msg_state_correction_pack(uint8_t system_id, uint
 	_mav_put_float(buf, 28, vyErr);
 	_mav_put_float(buf, 32, vzErr);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 36);
 #else
 	mavlink_state_correction_t packet;
 	packet.xErr = xErr;
@@ -81,7 +81,7 @@ static inline uint16_t mavlink_msg_state_correction_pack(uint8_t system_id, uint
 	packet.vyErr = vyErr;
 	packet.vzErr = vzErr;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 36);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_STATE_CORRECTION;
@@ -121,7 +121,7 @@ static inline uint16_t mavlink_msg_state_correction_pack_chan(uint8_t system_id,
 	_mav_put_float(buf, 28, vyErr);
 	_mav_put_float(buf, 32, vzErr);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 36);
 #else
 	mavlink_state_correction_t packet;
 	packet.xErr = xErr;
@@ -134,7 +134,7 @@ static inline uint16_t mavlink_msg_state_correction_pack_chan(uint8_t system_id,
 	packet.vyErr = vyErr;
 	packet.vzErr = vzErr;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 36);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_STATE_CORRECTION;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_statustext.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_statustext.h
similarity index 86%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_statustext.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_statustext.h
index 1e1d38d2c738178761ac9c04a86a665abd314734..7c65d448f436d7331bb52d0f84293d1695982c55 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_statustext.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_statustext.h
@@ -4,7 +4,7 @@
 
 typedef struct __mavlink_statustext_t
 {
- uint8_t severity; ///< Severity of status, 0 = info message, 255 = critical fault
+ uint8_t severity; ///< Severity of status. Relies on the definitions within RFC-5424. See enum MAV_SEVERITY.
  char text[50]; ///< Status text message, without null termination character
 } mavlink_statustext_t;
 
@@ -28,7 +28,7 @@ typedef struct __mavlink_statustext_t
  * @param component_id ID of this component (e.g. 200 for IMU)
  * @param msg The MAVLink message to compress the data into
  *
- * @param severity Severity of status, 0 = info message, 255 = critical fault
+ * @param severity Severity of status. Relies on the definitions within RFC-5424. See enum MAV_SEVERITY.
  * @param text Status text message, without null termination character
  * @return length of the message in bytes (excluding serial stream start sign)
  */
@@ -39,12 +39,12 @@ static inline uint16_t mavlink_msg_statustext_pack(uint8_t system_id, uint8_t co
 	char buf[51];
 	_mav_put_uint8_t(buf, 0, severity);
 	_mav_put_char_array(buf, 1, text, 50);
-        memcpy(_MAV_PAYLOAD(msg), buf, 51);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 51);
 #else
 	mavlink_statustext_t packet;
 	packet.severity = severity;
 	mav_array_memcpy(packet.text, text, sizeof(char)*50);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 51);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 51);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_STATUSTEXT;
@@ -57,7 +57,7 @@ static inline uint16_t mavlink_msg_statustext_pack(uint8_t system_id, uint8_t co
  * @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
- * @param severity Severity of status, 0 = info message, 255 = critical fault
+ * @param severity Severity of status. Relies on the definitions within RFC-5424. See enum MAV_SEVERITY.
  * @param text Status text message, without null termination character
  * @return length of the message in bytes (excluding serial stream start sign)
  */
@@ -69,12 +69,12 @@ static inline uint16_t mavlink_msg_statustext_pack_chan(uint8_t system_id, uint8
 	char buf[51];
 	_mav_put_uint8_t(buf, 0, severity);
 	_mav_put_char_array(buf, 1, text, 50);
-        memcpy(_MAV_PAYLOAD(msg), buf, 51);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 51);
 #else
 	mavlink_statustext_t packet;
 	packet.severity = severity;
 	mav_array_memcpy(packet.text, text, sizeof(char)*50);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 51);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 51);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_STATUSTEXT;
@@ -98,7 +98,7 @@ static inline uint16_t mavlink_msg_statustext_encode(uint8_t system_id, uint8_t
  * @brief Send a statustext message
  * @param chan MAVLink channel to send the message
  *
- * @param severity Severity of status, 0 = info message, 255 = critical fault
+ * @param severity Severity of status. Relies on the definitions within RFC-5424. See enum MAV_SEVERITY.
  * @param text Status text message, without null termination character
  */
 #ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
@@ -126,7 +126,7 @@ static inline void mavlink_msg_statustext_send(mavlink_channel_t chan, uint8_t s
 /**
  * @brief Get field severity from statustext message
  *
- * @return Severity of status, 0 = info message, 255 = critical fault
+ * @return Severity of status. Relies on the definitions within RFC-5424. See enum MAV_SEVERITY.
  */
 static inline uint8_t mavlink_msg_statustext_get_severity(const mavlink_message_t* msg)
 {
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_sys_status.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_sys_status.h
similarity index 99%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_sys_status.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_sys_status.h
index adada471d1d8a3b11b1516f72f143832209f2fe3..ef09a652f8bce55bf3866775a6d0d9483a9036da 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_sys_status.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_sys_status.h
@@ -84,7 +84,7 @@ static inline uint16_t mavlink_msg_sys_status_pack(uint8_t system_id, uint8_t co
 	_mav_put_uint16_t(buf, 28, errors_count4);
 	_mav_put_int8_t(buf, 30, battery_remaining);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 31);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 31);
 #else
 	mavlink_sys_status_t packet;
 	packet.onboard_control_sensors_present = onboard_control_sensors_present;
@@ -101,7 +101,7 @@ static inline uint16_t mavlink_msg_sys_status_pack(uint8_t system_id, uint8_t co
 	packet.errors_count4 = errors_count4;
 	packet.battery_remaining = battery_remaining;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 31);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 31);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SYS_STATUS;
@@ -149,7 +149,7 @@ static inline uint16_t mavlink_msg_sys_status_pack_chan(uint8_t system_id, uint8
 	_mav_put_uint16_t(buf, 28, errors_count4);
 	_mav_put_int8_t(buf, 30, battery_remaining);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 31);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 31);
 #else
 	mavlink_sys_status_t packet;
 	packet.onboard_control_sensors_present = onboard_control_sensors_present;
@@ -166,7 +166,7 @@ static inline uint16_t mavlink_msg_sys_status_pack_chan(uint8_t system_id, uint8
 	packet.errors_count4 = errors_count4;
 	packet.battery_remaining = battery_remaining;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 31);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 31);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SYS_STATUS;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_system_time.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_system_time.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_system_time.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_system_time.h
index a46db49c31a6bf0b1733993ce6b24b2dfbb7fe38..c24808d1a2c180e1eb12190e959bfbc344d187b9 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_system_time.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_system_time.h
@@ -40,13 +40,13 @@ static inline uint16_t mavlink_msg_system_time_pack(uint8_t system_id, uint8_t c
 	_mav_put_uint64_t(buf, 0, time_unix_usec);
 	_mav_put_uint32_t(buf, 8, time_boot_ms);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
 #else
 	mavlink_system_time_t packet;
 	packet.time_unix_usec = time_unix_usec;
 	packet.time_boot_ms = time_boot_ms;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SYSTEM_TIME;
@@ -72,13 +72,13 @@ static inline uint16_t mavlink_msg_system_time_pack_chan(uint8_t system_id, uint
 	_mav_put_uint64_t(buf, 0, time_unix_usec);
 	_mav_put_uint32_t(buf, 8, time_boot_ms);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
 #else
 	mavlink_system_time_t packet;
 	packet.time_unix_usec = time_unix_usec;
 	packet.time_boot_ms = time_boot_ms;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 12);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_SYSTEM_TIME;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_vfr_hud.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_vfr_hud.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_vfr_hud.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_vfr_hud.h
index 3e4c09acdc0dc44eacca0eab0cd1fc07c23a9c13..d7c1afe410727f890e7d392c565084013a9d536c 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_vfr_hud.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_vfr_hud.h
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_vfr_hud_pack(uint8_t system_id, uint8_t compo
 	_mav_put_int16_t(buf, 16, heading);
 	_mav_put_uint16_t(buf, 18, throttle);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
 #else
 	mavlink_vfr_hud_t packet;
 	packet.airspeed = airspeed;
@@ -66,7 +66,7 @@ static inline uint16_t mavlink_msg_vfr_hud_pack(uint8_t system_id, uint8_t compo
 	packet.heading = heading;
 	packet.throttle = throttle;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_VFR_HUD;
@@ -100,7 +100,7 @@ static inline uint16_t mavlink_msg_vfr_hud_pack_chan(uint8_t system_id, uint8_t
 	_mav_put_int16_t(buf, 16, heading);
 	_mav_put_uint16_t(buf, 18, throttle);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
 #else
 	mavlink_vfr_hud_t packet;
 	packet.airspeed = airspeed;
@@ -110,7 +110,7 @@ static inline uint16_t mavlink_msg_vfr_hud_pack_chan(uint8_t system_id, uint8_t
 	packet.heading = heading;
 	packet.throttle = throttle;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_VFR_HUD;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_vicon_position_estimate.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_vicon_position_estimate.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_vicon_position_estimate.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_vicon_position_estimate.h
index 93db6edef98dcd022c47c9213c94b2f78b69397a..ecb565684d6f8adce15a92cdc4969d2892b37dbc 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_vicon_position_estimate.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_vicon_position_estimate.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_vicon_position_estimate_pack(uint8_t system_i
 	_mav_put_float(buf, 24, pitch);
 	_mav_put_float(buf, 28, yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_vicon_position_estimate_t packet;
 	packet.usec = usec;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_vicon_position_estimate_pack(uint8_t system_i
 	packet.pitch = pitch;
 	packet.yaw = yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_VICON_POSITION_ESTIMATE;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_vicon_position_estimate_pack_chan(uint8_t sys
 	_mav_put_float(buf, 24, pitch);
 	_mav_put_float(buf, 28, yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_vicon_position_estimate_t packet;
 	packet.usec = usec;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_vicon_position_estimate_pack_chan(uint8_t sys
 	packet.pitch = pitch;
 	packet.yaw = yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_VICON_POSITION_ESTIMATE;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_vision_position_estimate.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_vision_position_estimate.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_vision_position_estimate.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_vision_position_estimate.h
index c99fc99ab10090d5d753de3ad43cb7b7c9c01ee6..041caf7a073cbe71cf888ee89ce02da51c3dd6c1 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_vision_position_estimate.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_vision_position_estimate.h
@@ -60,7 +60,7 @@ static inline uint16_t mavlink_msg_vision_position_estimate_pack(uint8_t system_
 	_mav_put_float(buf, 24, pitch);
 	_mav_put_float(buf, 28, yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_vision_position_estimate_t packet;
 	packet.usec = usec;
@@ -71,7 +71,7 @@ static inline uint16_t mavlink_msg_vision_position_estimate_pack(uint8_t system_
 	packet.pitch = pitch;
 	packet.yaw = yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE;
@@ -107,7 +107,7 @@ static inline uint16_t mavlink_msg_vision_position_estimate_pack_chan(uint8_t sy
 	_mav_put_float(buf, 24, pitch);
 	_mav_put_float(buf, 28, yaw);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
 #else
 	mavlink_vision_position_estimate_t packet;
 	packet.usec = usec;
@@ -118,7 +118,7 @@ static inline uint16_t mavlink_msg_vision_position_estimate_pack_chan(uint8_t sy
 	packet.pitch = pitch;
 	packet.yaw = yaw;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_vision_speed_estimate.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_vision_speed_estimate.h
similarity index 96%
rename from libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_vision_speed_estimate.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_vision_speed_estimate.h
index 71d250c38957a68acf4d6f34929c06b0b855147b..3e30b9247ac9479e19b10b047b40e0c92883efe4 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_vision_speed_estimate.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/mavlink_msg_vision_speed_estimate.h
@@ -48,7 +48,7 @@ static inline uint16_t mavlink_msg_vision_speed_estimate_pack(uint8_t system_id,
 	_mav_put_float(buf, 12, y);
 	_mav_put_float(buf, 16, z);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
 #else
 	mavlink_vision_speed_estimate_t packet;
 	packet.usec = usec;
@@ -56,7 +56,7 @@ static inline uint16_t mavlink_msg_vision_speed_estimate_pack(uint8_t system_id,
 	packet.y = y;
 	packet.z = z;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_VISION_SPEED_ESTIMATE;
@@ -86,7 +86,7 @@ static inline uint16_t mavlink_msg_vision_speed_estimate_pack_chan(uint8_t syste
 	_mav_put_float(buf, 12, y);
 	_mav_put_float(buf, 16, z);
 
-        memcpy(_MAV_PAYLOAD(msg), buf, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
 #else
 	mavlink_vision_speed_estimate_t packet;
 	packet.usec = usec;
@@ -94,7 +94,7 @@ static inline uint16_t mavlink_msg_vision_speed_estimate_pack_chan(uint8_t syste
 	packet.y = y;
 	packet.z = z;
 
-        memcpy(_MAV_PAYLOAD(msg), &packet, 20);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
 #endif
 
 	msg->msgid = MAVLINK_MSG_ID_VISION_SPEED_ESTIMATE;
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/testsuite.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/testsuite.h
similarity index 95%
rename from libraries/GCS_MAVLink/include_v1.0/common/testsuite.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/testsuite.h
index a5089f599777d85bd57e21e46d34aaffa8ff3ede..5459a61a5adab2e4d00e37715f3ccfc2ace4989e 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/testsuite.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/testsuite.h
@@ -2526,6 +2526,108 @@ static void mavlink_test_roll_pitch_yaw_speed_thrust_setpoint(uint8_t system_id,
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 }
 
+static void mavlink_test_set_quad_motors_setpoint(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_set_quad_motors_setpoint_t packet_in = {
+		17235,
+	17339,
+	17443,
+	17547,
+	29,
+	};
+	mavlink_set_quad_motors_setpoint_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        	packet1.motor_front_nw = packet_in.motor_front_nw;
+        	packet1.motor_right_ne = packet_in.motor_right_ne;
+        	packet1.motor_back_se = packet_in.motor_back_se;
+        	packet1.motor_left_sw = packet_in.motor_left_sw;
+        	packet1.target_system = packet_in.target_system;
+        
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_set_quad_motors_setpoint_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_set_quad_motors_setpoint_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_set_quad_motors_setpoint_pack(system_id, component_id, &msg , packet1.target_system , packet1.motor_front_nw , packet1.motor_right_ne , packet1.motor_back_se , packet1.motor_left_sw );
+	mavlink_msg_set_quad_motors_setpoint_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_set_quad_motors_setpoint_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.motor_front_nw , packet1.motor_right_ne , packet1.motor_back_se , packet1.motor_left_sw );
+	mavlink_msg_set_quad_motors_setpoint_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_set_quad_motors_setpoint_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_set_quad_motors_setpoint_send(MAVLINK_COMM_1 , packet1.target_system , packet1.motor_front_nw , packet1.motor_right_ne , packet1.motor_back_se , packet1.motor_left_sw );
+	mavlink_msg_set_quad_motors_setpoint_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
+static void mavlink_test_set_quad_swarm_roll_pitch_yaw_thrust(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_set_quad_swarm_roll_pitch_yaw_thrust_t packet_in = {
+		{ 17235, 17236, 17237, 17238, 17239, 17240 },
+	{ 17859, 17860, 17861, 17862, 17863, 17864 },
+	{ 18483, 18484, 18485, 18486, 18487, 18488 },
+	{ 19107, 19108, 19109, 19110, 19111, 19112 },
+	{ 149, 150, 151, 152, 153, 154 },
+	};
+	mavlink_set_quad_swarm_roll_pitch_yaw_thrust_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        
+        	mav_array_memcpy(packet1.roll, packet_in.roll, sizeof(int16_t)*6);
+        	mav_array_memcpy(packet1.pitch, packet_in.pitch, sizeof(int16_t)*6);
+        	mav_array_memcpy(packet1.yaw, packet_in.yaw, sizeof(int16_t)*6);
+        	mav_array_memcpy(packet1.thrust, packet_in.thrust, sizeof(uint16_t)*6);
+        	mav_array_memcpy(packet1.target_systems, packet_in.target_systems, sizeof(uint8_t)*6);
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_pack(system_id, component_id, &msg , packet1.target_systems , packet1.roll , packet1.pitch , packet1.yaw , packet1.thrust );
+	mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_systems , packet1.roll , packet1.pitch , packet1.yaw , packet1.thrust );
+	mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_send(MAVLINK_COMM_1 , packet1.target_systems , packet1.roll , packet1.pitch , packet1.yaw , packet1.thrust );
+	mavlink_msg_set_quad_swarm_roll_pitch_yaw_thrust_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
 static void mavlink_test_nav_controller_output(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
 {
 	mavlink_message_t msg;
@@ -3021,6 +3123,61 @@ static void mavlink_test_command_ack(uint8_t system_id, uint8_t component_id, ma
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 }
 
+static void mavlink_test_local_position_ned_system_global_offset(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_local_position_ned_system_global_offset_t packet_in = {
+		963497464,
+	45.0,
+	73.0,
+	101.0,
+	129.0,
+	157.0,
+	185.0,
+	};
+	mavlink_local_position_ned_system_global_offset_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        	packet1.time_boot_ms = packet_in.time_boot_ms;
+        	packet1.x = packet_in.x;
+        	packet1.y = packet_in.y;
+        	packet1.z = packet_in.z;
+        	packet1.roll = packet_in.roll;
+        	packet1.pitch = packet_in.pitch;
+        	packet1.yaw = packet_in.yaw;
+        
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_local_position_ned_system_global_offset_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_local_position_ned_system_global_offset_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_local_position_ned_system_global_offset_pack(system_id, component_id, &msg , packet1.time_boot_ms , packet1.x , packet1.y , packet1.z , packet1.roll , packet1.pitch , packet1.yaw );
+	mavlink_msg_local_position_ned_system_global_offset_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_local_position_ned_system_global_offset_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_boot_ms , packet1.x , packet1.y , packet1.z , packet1.roll , packet1.pitch , packet1.yaw );
+	mavlink_msg_local_position_ned_system_global_offset_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_local_position_ned_system_global_offset_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_local_position_ned_system_global_offset_send(MAVLINK_COMM_1 , packet1.time_boot_ms , packet1.x , packet1.y , packet1.z , packet1.roll , packet1.pitch , packet1.yaw );
+	mavlink_msg_local_position_ned_system_global_offset_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
 static void mavlink_test_hil_state(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
 {
 	mavlink_message_t msg;
@@ -3234,14 +3391,18 @@ static void mavlink_test_optical_flow(uint8_t system_id, uint8_t component_id, m
 	mavlink_optical_flow_t packet_in = {
 		93372036854775807ULL,
 	73.0,
-	17859,
-	17963,
-	53,
-	120,
+	101.0,
+	129.0,
+	18275,
+	18379,
+	77,
+	144,
 	};
 	mavlink_optical_flow_t packet1, packet2;
         memset(&packet1, 0, sizeof(packet1));
         	packet1.time_usec = packet_in.time_usec;
+        	packet1.flow_comp_m_x = packet_in.flow_comp_m_x;
+        	packet1.flow_comp_m_y = packet_in.flow_comp_m_y;
         	packet1.ground_distance = packet_in.ground_distance;
         	packet1.flow_x = packet_in.flow_x;
         	packet1.flow_y = packet_in.flow_y;
@@ -3256,12 +3417,12 @@ static void mavlink_test_optical_flow(uint8_t system_id, uint8_t component_id, m
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
         memset(&packet2, 0, sizeof(packet2));
-	mavlink_msg_optical_flow_pack(system_id, component_id, &msg , packet1.time_usec , packet1.sensor_id , packet1.flow_x , packet1.flow_y , packet1.quality , packet1.ground_distance );
+	mavlink_msg_optical_flow_pack(system_id, component_id, &msg , packet1.time_usec , packet1.sensor_id , packet1.flow_x , packet1.flow_y , packet1.flow_comp_m_x , packet1.flow_comp_m_y , packet1.quality , packet1.ground_distance );
 	mavlink_msg_optical_flow_decode(&msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
         memset(&packet2, 0, sizeof(packet2));
-	mavlink_msg_optical_flow_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.sensor_id , packet1.flow_x , packet1.flow_y , packet1.quality , packet1.ground_distance );
+	mavlink_msg_optical_flow_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.time_usec , packet1.sensor_id , packet1.flow_x , packet1.flow_y , packet1.flow_comp_m_x , packet1.flow_comp_m_y , packet1.quality , packet1.ground_distance );
 	mavlink_msg_optical_flow_decode(&msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 
@@ -3274,7 +3435,7 @@ static void mavlink_test_optical_flow(uint8_t system_id, uint8_t component_id, m
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
         
         memset(&packet2, 0, sizeof(packet2));
-	mavlink_msg_optical_flow_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.sensor_id , packet1.flow_x , packet1.flow_y , packet1.quality , packet1.ground_distance );
+	mavlink_msg_optical_flow_send(MAVLINK_COMM_1 , packet1.time_usec , packet1.sensor_id , packet1.flow_x , packet1.flow_y , packet1.flow_comp_m_x , packet1.flow_comp_m_y , packet1.quality , packet1.ground_distance );
 	mavlink_msg_optical_flow_decode(last_msg, &packet2);
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 }
@@ -3779,53 +3940,6 @@ static void mavlink_test_debug(uint8_t system_id, uint8_t component_id, mavlink_
         MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
 }
 
-static void mavlink_test_extended_message(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
-{
-	mavlink_message_t msg;
-        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
-        uint16_t i;
-	mavlink_extended_message_t packet_in = {
-		5,
-	72,
-	139,
-	};
-	mavlink_extended_message_t packet1, packet2;
-        memset(&packet1, 0, sizeof(packet1));
-        	packet1.target_system = packet_in.target_system;
-        	packet1.target_component = packet_in.target_component;
-        	packet1.protocol_flags = packet_in.protocol_flags;
-        
-        
-
-        memset(&packet2, 0, sizeof(packet2));
-	mavlink_msg_extended_message_encode(system_id, component_id, &msg, &packet1);
-	mavlink_msg_extended_message_decode(&msg, &packet2);
-        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
-        memset(&packet2, 0, sizeof(packet2));
-	mavlink_msg_extended_message_pack(system_id, component_id, &msg , packet1.target_system , packet1.target_component , packet1.protocol_flags );
-	mavlink_msg_extended_message_decode(&msg, &packet2);
-        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
-        memset(&packet2, 0, sizeof(packet2));
-	mavlink_msg_extended_message_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target_system , packet1.target_component , packet1.protocol_flags );
-	mavlink_msg_extended_message_decode(&msg, &packet2);
-        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-
-        memset(&packet2, 0, sizeof(packet2));
-        mavlink_msg_to_send_buffer(buffer, &msg);
-        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
-        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
-        }
-	mavlink_msg_extended_message_decode(last_msg, &packet2);
-        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-        
-        memset(&packet2, 0, sizeof(packet2));
-	mavlink_msg_extended_message_send(MAVLINK_COMM_1 , packet1.target_system , packet1.target_component , packet1.protocol_flags );
-	mavlink_msg_extended_message_decode(last_msg, &packet2);
-        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
-}
-
 static void mavlink_test_common(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
 {
 	mavlink_test_heartbeat(system_id, component_id, last_msg);
@@ -3876,6 +3990,8 @@ static void mavlink_test_common(uint8_t system_id, uint8_t component_id, mavlink
 	mavlink_test_set_roll_pitch_yaw_speed_thrust(system_id, component_id, last_msg);
 	mavlink_test_roll_pitch_yaw_thrust_setpoint(system_id, component_id, last_msg);
 	mavlink_test_roll_pitch_yaw_speed_thrust_setpoint(system_id, component_id, last_msg);
+	mavlink_test_set_quad_motors_setpoint(system_id, component_id, last_msg);
+	mavlink_test_set_quad_swarm_roll_pitch_yaw_thrust(system_id, component_id, last_msg);
 	mavlink_test_nav_controller_output(system_id, component_id, last_msg);
 	mavlink_test_state_correction(system_id, component_id, last_msg);
 	mavlink_test_request_data_stream(system_id, component_id, last_msg);
@@ -3885,6 +4001,7 @@ static void mavlink_test_common(uint8_t system_id, uint8_t component_id, mavlink
 	mavlink_test_vfr_hud(system_id, component_id, last_msg);
 	mavlink_test_command_long(system_id, component_id, last_msg);
 	mavlink_test_command_ack(system_id, component_id, last_msg);
+	mavlink_test_local_position_ned_system_global_offset(system_id, component_id, last_msg);
 	mavlink_test_hil_state(system_id, component_id, last_msg);
 	mavlink_test_hil_controls(system_id, component_id, last_msg);
 	mavlink_test_hil_rc_inputs_raw(system_id, component_id, last_msg);
@@ -3899,7 +4016,6 @@ static void mavlink_test_common(uint8_t system_id, uint8_t component_id, mavlink
 	mavlink_test_named_value_int(system_id, component_id, last_msg);
 	mavlink_test_statustext(system_id, component_id, last_msg);
 	mavlink_test_debug(system_id, component_id, last_msg);
-	mavlink_test_extended_message(system_id, component_id, last_msg);
 }
 
 #ifdef __cplusplus
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/version.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/version.h
similarity index 84%
rename from libraries/GCS_MAVLink/include_v1.0/common/version.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/common/version.h
index f683e8c872932200937552542d9726e584da159d..b5658657de42511619bcae6d17e202bba8c393b9 100644
--- a/libraries/GCS_MAVLink/include_v1.0/common/version.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/common/version.h
@@ -5,7 +5,7 @@
 #ifndef MAVLINK_VERSION_H
 #define MAVLINK_VERSION_H
 
-#define MAVLINK_BUILD_DATE "Sun Apr  8 11:01:52 2012"
+#define MAVLINK_BUILD_DATE "Thu Apr 19 15:40:01 2012"
 #define MAVLINK_WIRE_PROTOCOL_VERSION "1.0"
 #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 101
  
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/matrixpilot/matrixpilot.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/matrixpilot/matrixpilot.h
new file mode 100644
index 0000000000000000000000000000000000000000..6d2a9b23ee6370fc559e38b0fd4ea4f34acb12a1
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/matrixpilot/matrixpilot.h
@@ -0,0 +1,53 @@
+/** @file
+ *	@brief MAVLink comm protocol generated from matrixpilot.xml
+ *	@see http://qgroundcontrol.org/mavlink/
+ */
+#ifndef MATRIXPILOT_H
+#define MATRIXPILOT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// MESSAGE LENGTHS AND CRCS
+
+#ifndef MAVLINK_MESSAGE_LENGTHS
+#define MAVLINK_MESSAGE_LENGTHS {9, 31, 12, 0, 14, 28, 3, 32, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 25, 23, 30, 101, 22, 26, 16, 14, 28, 32, 28, 28, 22, 22, 21, 6, 6, 37, 4, 4, 2, 2, 4, 2, 2, 3, 13, 12, 19, 17, 15, 15, 27, 25, 18, 18, 20, 20, 9, 54, 26, 0, 36, 0, 6, 4, 0, 21, 18, 0, 0, 0, 20, 0, 33, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 56, 42, 33, 0, 0, 0, 0, 0, 0, 0, 26, 32, 32, 20, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 30, 18, 18, 51, 9, 0}
+#endif
+
+#ifndef MAVLINK_MESSAGE_CRCS
+#define MAVLINK_MESSAGE_CRCS {50, 124, 137, 0, 237, 217, 104, 119, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 214, 159, 220, 168, 24, 23, 170, 144, 67, 115, 39, 246, 185, 104, 237, 244, 222, 212, 9, 254, 230, 28, 28, 132, 221, 232, 11, 153, 41, 39, 214, 223, 141, 33, 15, 3, 100, 24, 239, 238, 30, 200, 183, 0, 130, 0, 148, 21, 0, 52, 124, 0, 0, 0, 20, 0, 152, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 231, 183, 63, 54, 0, 0, 0, 0, 0, 0, 0, 175, 102, 158, 208, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 49, 170, 44, 83, 46, 0}
+#endif
+
+#ifndef MAVLINK_MESSAGE_INFO
+#define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_SYS_STATUS, MAVLINK_MESSAGE_INFO_SYSTEM_TIME, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_PING, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL_ACK, MAVLINK_MESSAGE_INFO_AUTH_KEY, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_SET_MODE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_READ, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_LIST, MAVLINK_MESSAGE_INFO_PARAM_VALUE, MAVLINK_MESSAGE_INFO_PARAM_SET, MAVLINK_MESSAGE_INFO_GPS_RAW_INT, MAVLINK_MESSAGE_INFO_GPS_STATUS, MAVLINK_MESSAGE_INFO_SCALED_IMU, MAVLINK_MESSAGE_INFO_RAW_IMU, MAVLINK_MESSAGE_INFO_RAW_PRESSURE, MAVLINK_MESSAGE_INFO_SCALED_PRESSURE, MAVLINK_MESSAGE_INFO_ATTITUDE, MAVLINK_MESSAGE_INFO_ATTITUDE_QUATERNION, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_INT, MAVLINK_MESSAGE_INFO_RC_CHANNELS_SCALED, MAVLINK_MESSAGE_INFO_RC_CHANNELS_RAW, MAVLINK_MESSAGE_INFO_SERVO_OUTPUT_RAW, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_PARTIAL_LIST, MAVLINK_MESSAGE_INFO_MISSION_WRITE_PARTIAL_LIST, MAVLINK_MESSAGE_INFO_MISSION_ITEM, MAVLINK_MESSAGE_INFO_MISSION_REQUEST, MAVLINK_MESSAGE_INFO_MISSION_SET_CURRENT, MAVLINK_MESSAGE_INFO_MISSION_CURRENT, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_LIST, MAVLINK_MESSAGE_INFO_MISSION_COUNT, MAVLINK_MESSAGE_INFO_MISSION_CLEAR_ALL, MAVLINK_MESSAGE_INFO_MISSION_ITEM_REACHED, MAVLINK_MESSAGE_INFO_MISSION_ACK, MAVLINK_MESSAGE_INFO_SET_GPS_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_GPS_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_SET_LOCAL_POSITION_SETPOINT, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_SETPOINT, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_SETPOINT_INT, MAVLINK_MESSAGE_INFO_SET_GLOBAL_POSITION_SETPOINT_INT, MAVLINK_MESSAGE_INFO_SAFETY_SET_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SAFETY_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_THRUST, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_SPEED_THRUST, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_THRUST_SETPOINT, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT, MAVLINK_MESSAGE_INFO_SET_QUAD_MOTORS_SETPOINT, MAVLINK_MESSAGE_INFO_SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST, MAVLINK_MESSAGE_INFO_NAV_CONTROLLER_OUTPUT, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_STATE_CORRECTION, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_REQUEST_DATA_STREAM, MAVLINK_MESSAGE_INFO_DATA_STREAM, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_MANUAL_CONTROL, MAVLINK_MESSAGE_INFO_RC_CHANNELS_OVERRIDE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_VFR_HUD, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_COMMAND_LONG, MAVLINK_MESSAGE_INFO_COMMAND_ACK, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET, MAVLINK_MESSAGE_INFO_HIL_STATE, MAVLINK_MESSAGE_INFO_HIL_CONTROLS, MAVLINK_MESSAGE_INFO_HIL_RC_INPUTS_RAW, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_OPTICAL_FLOW, MAVLINK_MESSAGE_INFO_GLOBAL_VISION_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_VISION_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_VISION_SPEED_ESTIMATE, MAVLINK_MESSAGE_INFO_VICON_POSITION_ESTIMATE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_MEMORY_VECT, MAVLINK_MESSAGE_INFO_DEBUG_VECT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_FLOAT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_INT, MAVLINK_MESSAGE_INFO_STATUSTEXT, MAVLINK_MESSAGE_INFO_DEBUG, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}}
+#endif
+
+#include "../protocol.h"
+
+#define MAVLINK_ENABLED_MATRIXPILOT
+
+#include "../common/common.h"
+
+// MAVLINK VERSION
+
+#ifndef MAVLINK_VERSION
+#define MAVLINK_VERSION 2
+#endif
+
+#if (MAVLINK_VERSION == 0)
+#undef MAVLINK_VERSION
+#define MAVLINK_VERSION 2
+#endif
+
+// ENUM DEFINITIONS
+
+
+
+// MESSAGE DEFINITIONS
+
+
+#ifdef __cplusplus
+}
+#endif // __cplusplus
+#endif // MATRIXPILOT_H
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/matrixpilot/mavlink.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/matrixpilot/mavlink.h
new file mode 100644
index 0000000000000000000000000000000000000000..7e62a97198d6196fb76328480fc184b26c5f3345
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/matrixpilot/mavlink.h
@@ -0,0 +1,27 @@
+/** @file
+ *	@brief MAVLink comm protocol built from matrixpilot.xml
+ *	@see http://pixhawk.ethz.ch/software/mavlink
+ */
+#ifndef MAVLINK_H
+#define MAVLINK_H
+
+#ifndef MAVLINK_STX
+#define MAVLINK_STX 254
+#endif
+
+#ifndef MAVLINK_ENDIAN
+#define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN
+#endif
+
+#ifndef MAVLINK_ALIGNED_FIELDS
+#define MAVLINK_ALIGNED_FIELDS 1
+#endif
+
+#ifndef MAVLINK_CRC_EXTRA
+#define MAVLINK_CRC_EXTRA 1
+#endif
+
+#include "version.h"
+#include "matrixpilot.h"
+
+#endif // MAVLINK_H
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/matrixpilot/testsuite.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/matrixpilot/testsuite.h
new file mode 100644
index 0000000000000000000000000000000000000000..9032cd3dc46fc1b88d14af70a3492cd34978466e
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/matrixpilot/testsuite.h
@@ -0,0 +1,36 @@
+/** @file
+ *	@brief MAVLink comm protocol testsuite generated from matrixpilot.xml
+ *	@see http://qgroundcontrol.org/mavlink/
+ */
+#ifndef MATRIXPILOT_TESTSUITE_H
+#define MATRIXPILOT_TESTSUITE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef MAVLINK_TEST_ALL
+#define MAVLINK_TEST_ALL
+static void mavlink_test_common(uint8_t, uint8_t, mavlink_message_t *last_msg);
+static void mavlink_test_matrixpilot(uint8_t, uint8_t, mavlink_message_t *last_msg);
+
+static void mavlink_test_all(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_test_common(system_id, component_id, last_msg);
+	mavlink_test_matrixpilot(system_id, component_id, last_msg);
+}
+#endif
+
+#include "../common/testsuite.h"
+
+
+
+static void mavlink_test_matrixpilot(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+
+}
+
+#ifdef __cplusplus
+}
+#endif // __cplusplus
+#endif // MATRIXPILOT_TESTSUITE_H
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/matrixpilot/version.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/matrixpilot/version.h
new file mode 100644
index 0000000000000000000000000000000000000000..425926f23c7cb788f9d23fb7dbdaae5b378ca586
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/matrixpilot/version.h
@@ -0,0 +1,12 @@
+/** @file
+ *	@brief MAVLink comm protocol built from matrixpilot.xml
+ *	@see http://pixhawk.ethz.ch/software/mavlink
+ */
+#ifndef MAVLINK_VERSION_H
+#define MAVLINK_VERSION_H
+
+#define MAVLINK_BUILD_DATE "Thu Apr 19 15:39:55 2012"
+#define MAVLINK_WIRE_PROTOCOL_VERSION "1.0"
+#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 101
+ 
+#endif // MAVLINK_VERSION_H
diff --git a/libraries/GCS_MAVLink/include_v1.0/mavlink_helpers.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/mavlink_helpers.h
similarity index 93%
rename from libraries/GCS_MAVLink/include_v1.0/mavlink_helpers.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/mavlink_helpers.h
index 6eb8f0ba2a554bf3a220ffcbbb922cbf9274dbdf..39d6930e5ba525250d2486639fe6ae9d73b9583d 100644
--- a/libraries/GCS_MAVLink/include_v1.0/mavlink_helpers.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/mavlink_helpers.h
@@ -18,6 +18,24 @@ MAVLINK_HELPER mavlink_status_t* mavlink_get_channel_status(uint8_t chan)
 	return &m_mavlink_status[chan];
 }
 
+/*
+ internal function to give access to the channel buffer for each channel
+ */
+MAVLINK_HELPER mavlink_message_t* mavlink_get_channel_buffer(uint8_t chan)
+{
+	
+#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 (mavlink_message_t m_mavlink_buffer[MAVLINK_COMM_NUM_BUFFERS];)
+#endif
+#else
+	static mavlink_message_t m_mavlink_buffer[MAVLINK_COMM_NUM_BUFFERS];
+#endif
+	return &m_mavlink_buffer[chan];
+}
+
 /**
  * @brief Finalize a MAVLink message with channel assignment
  *
@@ -120,7 +138,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,8 +200,6 @@ 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)
 {
-	static mavlink_message_t m_mavlink_message[MAVLINK_COMM_NUM_BUFFERS];
-
         /*
 	  default message crc function. You can override this per-system to
 	  put this data in a different memory segment
@@ -195,7 +211,7 @@ MAVLINK_HELPER uint8_t mavlink_parse_char(uint8_t chan, uint8_t c, mavlink_messa
 #endif
 #endif
 
-	mavlink_message_t* rxmsg = &m_mavlink_message[chan]; ///< The currently decoded message
+	mavlink_message_t* rxmsg = mavlink_get_channel_buffer(chan); ///< The currently decoded message
 	mavlink_status_t* status = mavlink_get_channel_status(chan); ///< The current decode status
 	int bufferIndex = 0;
 
@@ -209,6 +225,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 +286,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 +313,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 +335,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/libraries/GCS_MAVLink/include/mavlink/v1.0/mavlink_protobuf_manager.hpp b/libraries/GCS_MAVLink/include/mavlink/v1.0/mavlink_protobuf_manager.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..fd3ddd026f709c1acb8c31d7493523892924ab49
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/mavlink_protobuf_manager.hpp
@@ -0,0 +1,377 @@
+#ifndef MAVLINKPROTOBUFMANAGER_HPP
+#define MAVLINKPROTOBUFMANAGER_HPP
+
+#include <deque>
+#include <google/protobuf/message.h>
+#include <iostream>
+#include <tr1/memory>
+
+#include <checksum.h>
+#include <common/mavlink.h>
+#include <mavlink_types.h>
+#include <pixhawk/pixhawk.pb.h>
+
+namespace mavlink
+{
+
+class ProtobufManager
+{
+public:
+	ProtobufManager()
+	 : mRegisteredTypeCount(0)
+	 , mStreamID(0)
+	 , mVerbose(false)
+	 , kExtendedHeaderSize(MAVLINK_EXTENDED_HEADER_LEN)
+	 , kExtendedPayloadMaxSize(MAVLINK_MAX_EXTENDED_PAYLOAD_LEN)
+	{
+		// register GLOverlay
+		{
+			std::tr1::shared_ptr<px::GLOverlay> msg(new px::GLOverlay);
+			registerType(msg);
+		}
+
+		// register ObstacleList
+		{
+			std::tr1::shared_ptr<px::ObstacleList> msg(new px::ObstacleList);
+			registerType(msg);
+		}
+
+		// register ObstacleMap
+		{
+			std::tr1::shared_ptr<px::ObstacleMap> msg(new px::ObstacleMap);
+			registerType(msg);
+		}
+
+		// register Path
+		{
+			std::tr1::shared_ptr<px::Path> msg(new px::Path);
+                        registerType(msg);
+		}
+
+		// register PointCloudXYZI
+		{
+			std::tr1::shared_ptr<px::PointCloudXYZI> msg(new px::PointCloudXYZI);
+			registerType(msg);
+		}
+
+		// register PointCloudXYZRGB
+		{
+			std::tr1::shared_ptr<px::PointCloudXYZRGB> msg(new px::PointCloudXYZRGB);
+			registerType(msg);
+		}
+
+		// register RGBDImage
+		{
+			std::tr1::shared_ptr<px::RGBDImage> msg(new px::RGBDImage);
+			registerType(msg);
+		}
+
+		srand(time(NULL));
+		mStreamID = rand() + 1;
+	}
+
+	bool fragmentMessage(uint8_t system_id, uint8_t component_id,
+						 uint8_t target_system, uint8_t target_component,
+						 const google::protobuf::Message& protobuf_msg,
+						 std::vector<mavlink_extended_message_t>& fragments) const
+	{
+		TypeMap::const_iterator it = mTypeMap.find(protobuf_msg.GetTypeName());
+		if (it == mTypeMap.end())
+		{
+			std::cout << "# WARNING: Protobuf message with type "
+					  << protobuf_msg.GetTypeName() << " is not registered."
+					  << std::endl;
+			return false;
+		}
+
+		uint8_t typecode = it->second;
+
+		std::string data = protobuf_msg.SerializeAsString();
+
+		int fragmentCount = (protobuf_msg.ByteSize() + kExtendedPayloadMaxSize - 1) / kExtendedPayloadMaxSize;
+		unsigned int offset = 0;
+
+		for (int i = 0; i < fragmentCount; ++i)
+		{
+			mavlink_extended_message_t fragment;			
+
+			// write extended header data
+			uint8_t* payload = reinterpret_cast<uint8_t*>(fragment.base_msg.payload64);
+			unsigned int length = 0;
+			uint8_t flags = 0;
+
+			if (i < fragmentCount - 1)
+			{
+				length = kExtendedPayloadMaxSize;
+				flags |= 0x1;
+			}
+			else
+			{
+				length = protobuf_msg.ByteSize() - kExtendedPayloadMaxSize * (fragmentCount - 1);
+			}
+
+			memcpy(payload, &target_system, 1);
+			memcpy(payload + 1, &target_component, 1);
+			memcpy(payload + 2, &typecode, 1);
+			memcpy(payload + 3, &length, 4);
+			memcpy(payload + 7, &mStreamID, 2);
+			memcpy(payload + 9, &offset, 4);
+			memcpy(payload + 13, &flags, 1);
+
+			fragment.base_msg.msgid = MAVLINK_MSG_ID_EXTENDED_MESSAGE;
+			mavlink_finalize_message(&fragment.base_msg, system_id, component_id, kExtendedHeaderSize, 0);
+			
+			// write extended payload data
+			fragment.extended_payload_len = length;
+			memcpy(fragment.extended_payload, &data[offset], length);
+
+			fragments.push_back(fragment);
+			offset += length;
+		}
+
+		if (mVerbose)
+		{
+			std::cerr << "# INFO: Split extended message with size "
+					  << protobuf_msg.ByteSize() << " into "
+					  << fragmentCount << " fragments." << std::endl;
+		}
+
+		return true;
+	}
+
+	bool cacheFragment(mavlink_extended_message_t& msg)
+	{
+		if (!validFragment(msg))
+		{
+			if (mVerbose)
+			{
+				std::cerr << "# WARNING: Message is not a valid fragment. "
+						  << "Dropping message..." << std::endl;
+			}
+			return false;
+		}
+
+		// read extended header
+		uint8_t* payload = reinterpret_cast<uint8_t*>(msg.base_msg.payload64);
+		uint8_t typecode = 0;
+		unsigned int length = 0;
+		unsigned short streamID = 0;
+		unsigned int offset = 0;
+		uint8_t flags = 0;
+
+		memcpy(&typecode, payload + 2, 1);
+		memcpy(&length, payload + 3, 4);
+		memcpy(&streamID, payload + 7, 2);
+		memcpy(&offset, payload + 9, 4);
+		memcpy(&flags, payload + 13, 1);
+
+		if (typecode >= mTypeMap.size())
+		{
+			std::cout << "# WARNING: Protobuf message with type code "
+					  << static_cast<int>(typecode) << " is not registered." << std::endl;
+			return false;
+		}
+
+		bool reassemble = false;
+
+		FragmentQueue::iterator it = mFragmentQueue.find(streamID);
+		if (it == mFragmentQueue.end())
+		{
+			if (offset == 0)
+			{
+				mFragmentQueue[streamID].push_back(msg);
+
+				if ((flags & 0x1) != 0x1)
+				{
+					reassemble = true;
+				}
+
+				if (mVerbose)
+				{
+					std::cerr << "# INFO: Added fragment to new queue."
+							  << std::endl;
+				}
+			}
+			else
+			{
+				if (mVerbose)
+				{
+					std::cerr << "# WARNING: Message is not a valid fragment. "
+							  << "Dropping message..." << std::endl;
+				}
+			}
+		}
+		else
+		{
+			std::deque<mavlink_extended_message_t>& queue = it->second;
+
+			if (queue.empty())
+			{
+				if (offset == 0)
+				{
+					queue.push_back(msg);
+
+					if ((flags & 0x1) != 0x1)
+					{
+						reassemble = true;
+					}
+				}
+				else
+				{
+					if (mVerbose)
+					{
+						std::cerr << "# WARNING: Message is not a valid fragment. "
+								  << "Dropping message..." << std::endl;
+					}
+				}
+			}
+			else
+			{
+				if (fragmentDataSize(queue.back()) + fragmentOffset(queue.back()) != offset)
+				{
+					if (mVerbose)
+					{
+						std::cerr << "# WARNING: Previous fragment(s) have been lost. "
+								  << "Dropping message and clearing queue..." << std::endl;
+					}
+					queue.clear();
+				}
+				else
+				{
+					queue.push_back(msg);
+
+					if ((flags & 0x1) != 0x1)
+					{
+						reassemble = true;
+					}
+				}
+			}
+		}
+
+		if (reassemble)
+		{
+			std::deque<mavlink_extended_message_t>& queue = mFragmentQueue[streamID];
+
+			std::string data;
+			for (size_t i = 0; i < queue.size(); ++i)
+			{
+				mavlink_extended_message_t& mavlink_msg = queue.at(i);
+
+				data.append(reinterpret_cast<char*>(&mavlink_msg.extended_payload[0]),
+							static_cast<size_t>(mavlink_msg.extended_payload_len));
+			}
+
+			mMessages.at(typecode)->ParseFromString(data);
+
+			mMessageAvailable.at(typecode) = true;
+
+			queue.clear();
+
+			if (mVerbose)
+			{
+				std::cerr << "# INFO: Reassembled fragments for message with typename "
+						  << mMessages.at(typecode)->GetTypeName() << " and size "
+						  << mMessages.at(typecode)->ByteSize()
+						  << "." << std::endl;
+			}
+		}
+
+		return true;
+	}
+
+	bool getMessage(std::tr1::shared_ptr<google::protobuf::Message>& msg)
+	{
+		for (size_t i = 0; i < mMessageAvailable.size(); ++i)
+		{
+			if (mMessageAvailable.at(i))
+			{
+				msg = mMessages.at(i);
+				mMessageAvailable.at(i) = false;
+
+				return true;
+			}
+		}
+
+		return false;
+	}
+
+private:
+	void registerType(const std::tr1::shared_ptr<google::protobuf::Message>& msg)
+	{
+		mTypeMap[msg->GetTypeName()] = mRegisteredTypeCount;
+		++mRegisteredTypeCount;
+		mMessages.push_back(msg);
+		mMessageAvailable.push_back(false);
+	}
+
+	bool validFragment(const mavlink_extended_message_t& msg) const
+	{
+		if (msg.base_msg.magic != MAVLINK_STX ||
+			msg.base_msg.len != kExtendedHeaderSize ||
+			msg.base_msg.msgid != MAVLINK_MSG_ID_EXTENDED_MESSAGE)
+		{
+			return false;
+		}
+
+		uint16_t checksum;
+		checksum = crc_calculate(reinterpret_cast<const uint8_t*>(&msg.base_msg.len), MAVLINK_CORE_HEADER_LEN);
+		crc_accumulate_buffer(&checksum, reinterpret_cast<const char*>(&msg.base_msg.payload64), kExtendedHeaderSize);
+#if MAVLINK_CRC_EXTRA
+		static const uint8_t mavlink_message_crcs[256] = MAVLINK_MESSAGE_CRCS;
+		crc_accumulate(mavlink_message_crcs[msg.base_msg.msgid], &checksum);
+#endif
+
+		if (mavlink_ck_a(&(msg.base_msg)) != (uint8_t)(checksum & 0xFF) &&
+		    mavlink_ck_b(&(msg.base_msg)) != (uint8_t)(checksum >> 8))
+		{
+			return false;
+		}
+
+		return true;
+	}
+
+	unsigned int fragmentDataSize(const mavlink_extended_message_t& msg) const
+	{
+		const uint8_t* payload = reinterpret_cast<const uint8_t*>(msg.base_msg.payload64);
+
+		return *(reinterpret_cast<const unsigned int*>(payload + 3));
+	}
+
+	unsigned int fragmentOffset(const mavlink_extended_message_t& msg) const
+	{
+		const uint8_t* payload = reinterpret_cast<const uint8_t*>(msg.base_msg.payload64);
+
+		return *(reinterpret_cast<const unsigned int*>(payload + 9));
+	}
+
+	int mRegisteredTypeCount;
+	unsigned short mStreamID;
+	bool mVerbose;
+
+	typedef std::map<std::string, uint8_t> TypeMap;
+	TypeMap mTypeMap;
+	std::vector< std::tr1::shared_ptr<google::protobuf::Message> > mMessages;
+	std::vector<bool> mMessageAvailable;
+
+	typedef std::map<unsigned short, std::deque<mavlink_extended_message_t> > FragmentQueue;
+	FragmentQueue mFragmentQueue;
+
+	const int kExtendedHeaderSize;
+	/**
+	 * Extended header structure
+	 * =========================
+	 *   byte 0 - target_system
+	 *   byte 1 - target_component
+	 *   byte 2 - extended message id (type code)
+	 *   bytes 3-6 - extended payload size in bytes
+	 *   byte 7-8 - stream ID
+	 *   byte 9-12 - fragment offset
+	 *   byte 13 - fragment flags (bit 0 - 1=more fragments, 0=last fragment)
+	 */
+
+	const int kExtendedPayloadMaxSize;
+};
+
+}
+
+#endif
diff --git a/libraries/GCS_MAVLink/include_v1.0/mavlink_types.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/mavlink_types.h
similarity index 69%
rename from libraries/GCS_MAVLink/include_v1.0/mavlink_types.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/mavlink_types.h
index 03faf594fe4ae7dbc3a86e24e6bb1540d7ab54ff..16e32ae635982c1e62a62dd298224b417a122fd5 100644
--- a/libraries/GCS_MAVLink/include_v1.0/mavlink_types.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/mavlink_types.h
@@ -3,54 +3,6 @@
 
 #include <inttypes.h>
 
-enum MAV_ACTION
-{
-    MAV_ACTION_HOLD = 0,
-    MAV_ACTION_MOTORS_START = 1,
-    MAV_ACTION_LAUNCH = 2,
-    MAV_ACTION_RETURN = 3,
-    MAV_ACTION_EMCY_LAND = 4,
-    MAV_ACTION_EMCY_KILL = 5,
-    MAV_ACTION_CONFIRM_KILL = 6,
-    MAV_ACTION_CONTINUE = 7,
-    MAV_ACTION_MOTORS_STOP = 8,
-    MAV_ACTION_HALT = 9,
-    MAV_ACTION_SHUTDOWN = 10,
-    MAV_ACTION_REBOOT = 11,
-    MAV_ACTION_SET_MANUAL = 12,
-    MAV_ACTION_SET_AUTO = 13,
-    MAV_ACTION_STORAGE_READ = 14,
-    MAV_ACTION_STORAGE_WRITE = 15,
-    MAV_ACTION_CALIBRATE_RC = 16,
-    MAV_ACTION_CALIBRATE_GYRO = 17,
-    MAV_ACTION_CALIBRATE_MAG = 18,
-    MAV_ACTION_CALIBRATE_ACC = 19,
-    MAV_ACTION_CALIBRATE_PRESSURE = 20,
-    MAV_ACTION_REC_START = 21,
-    MAV_ACTION_REC_PAUSE = 22,
-    MAV_ACTION_REC_STOP = 23,
-    MAV_ACTION_TAKEOFF = 24,
-    MAV_ACTION_NAVIGATE = 25,
-    MAV_ACTION_LAND = 26,
-    MAV_ACTION_LOITER = 27,
-    MAV_ACTION_SET_ORIGIN = 28,
-    MAV_ACTION_RELAY_ON = 29,
-    MAV_ACTION_RELAY_OFF = 30,
-    MAV_ACTION_GET_IMAGE = 31,
-    MAV_ACTION_VIDEO_START = 32,
-    MAV_ACTION_VIDEO_STOP = 33,
-    MAV_ACTION_RESET_MAP = 34,
-    MAV_ACTION_RESET_PLAN = 35,
-    MAV_ACTION_DELAY_BEFORE_COMMAND = 36,
-    MAV_ACTION_ASCEND_AT_RATE = 37,
-    MAV_ACTION_CHANGE_MODE = 38,
-    MAV_ACTION_LOITER_MAX_TURNS = 39,
-    MAV_ACTION_LOITER_MAX_TIME = 40,
-    MAV_ACTION_START_HILSIM = 41,
-    MAV_ACTION_STOP_HILSIM = 42,    
-    MAV_ACTION_NB        ///< Number of MAV actions
-};
-
 #ifndef MAVLINK_MAX_PAYLOAD_LEN
 // it is possible to override this, but be careful!
 #define MAVLINK_MAX_PAYLOAD_LEN 255 ///< Maximum payload length
@@ -63,11 +15,23 @@ enum MAV_ACTION
 
 #define MAVLINK_MAX_PACKET_LEN (MAVLINK_MAX_PAYLOAD_LEN + MAVLINK_NUM_NON_PAYLOAD_BYTES) ///< Maximum packet length
 
+#define MAVLINK_MSG_ID_EXTENDED_MESSAGE 255
+#define MAVLINK_EXTENDED_HEADER_LEN 14
+
+#define MAVLINK_MAX_EXTENDED_PACKET_LEN 65507
+#if (MAVLINK_MAX_EXTENDED_PACKET_LEN > __WCHAR_MAX__)
+#define MAVLINK_MAX_EXTENDED_PACKET_LEN __WCHAR_MAX__
+#endif
+
+#define MAVLINK_MAX_EXTENDED_PAYLOAD_LEN (MAVLINK_MAX_EXTENDED_PACKET_LEN - MAVLINK_EXTENDED_HEADER_LEN - MAVLINK_NUM_NON_PAYLOAD_BYTES)
+
 typedef struct param_union {
 	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;
@@ -92,6 +56,14 @@ typedef struct __mavlink_message {
 	uint64_t payload64[(MAVLINK_MAX_PAYLOAD_LEN+MAVLINK_NUM_CHECKSUM_BYTES+7)/8];
 } mavlink_message_t;
 
+
+typedef struct __mavlink_extended_message {
+       mavlink_message_t base_msg;
+       int32_t extended_payload_len;   ///< Length of extended payload if any
+       uint8_t extended_payload[MAVLINK_MAX_EXTENDED_PAYLOAD_LEN];
+} mavlink_extended_message_t;
+
+
 typedef enum {
 	MAVLINK_TYPE_CHAR     = 0,
 	MAVLINK_TYPE_UINT8_T  = 1,
@@ -109,12 +81,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
@@ -125,11 +97,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 *)(&((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/libraries/GCS_MAVLink/include_v1.0/protocol.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/protocol.h
similarity index 97%
rename from libraries/GCS_MAVLink/include_v1.0/protocol.h
rename to libraries/GCS_MAVLink/include/mavlink/v1.0/protocol.h
index 05195c36919d04a5bf50c9799ee724af011a20f0..7b3e3c0bd2112c9516e694b729cbc990d2e766bc 100644
--- a/libraries/GCS_MAVLink/include_v1.0/protocol.h
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/protocol.h
@@ -155,7 +155,7 @@ static inline void byte_copy_8(char *dst, const char *src)
 
 /*
   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) {
@@ -171,6 +171,7 @@ static void mav_array_memcpy(void *dest, const void *src, size_t n)
 static inline void _mav_put_char_array(char *buf, uint8_t wire_offset, const char *b, uint8_t array_length)
 {
 	mav_array_memcpy(&buf[wire_offset], b, array_length);
+
 }
 
 /*
@@ -179,6 +180,7 @@ 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)
 {
 	mav_array_memcpy(&buf[wire_offset], b, array_length);
+
 }
 
 /*
@@ -187,6 +189,7 @@ 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)
 {
 	mav_array_memcpy(&buf[wire_offset], b, array_length);
+
 }
 
 #if MAVLINK_NEED_BYTE_SWAP
@@ -206,7 +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) \
 { \
-	mav_array_memcpy(&buf[wire_offset], b, array_length*sizeof(TYPE));	\
+	mav_array_memcpy(&buf[wire_offset], b, array_length*sizeof(TYPE)); \
 }
 #endif
 
@@ -219,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/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink.h
new file mode 100644
index 0000000000000000000000000000000000000000..c0a0a8967355ee30c7a39f82ae3f9f0250aaaa30
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink.h
@@ -0,0 +1,27 @@
+/** @file
+ *	@brief MAVLink comm protocol built from sensesoar.xml
+ *	@see http://pixhawk.ethz.ch/software/mavlink
+ */
+#ifndef MAVLINK_H
+#define MAVLINK_H
+
+#ifndef MAVLINK_STX
+#define MAVLINK_STX 254
+#endif
+
+#ifndef MAVLINK_ENDIAN
+#define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN
+#endif
+
+#ifndef MAVLINK_ALIGNED_FIELDS
+#define MAVLINK_ALIGNED_FIELDS 1
+#endif
+
+#ifndef MAVLINK_CRC_EXTRA
+#define MAVLINK_CRC_EXTRA 1
+#endif
+
+#include "version.h"
+#include "sensesoar.h"
+
+#endif // MAVLINK_H
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_cmd_airspeed_ack.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_cmd_airspeed_ack.h
new file mode 100644
index 0000000000000000000000000000000000000000..6dcab9fa822edaa7cc888cf0e53ab7783340e72e
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_cmd_airspeed_ack.h
@@ -0,0 +1,166 @@
+// MESSAGE CMD_AIRSPEED_ACK PACKING
+
+#define MAVLINK_MSG_ID_CMD_AIRSPEED_ACK 194
+
+typedef struct __mavlink_cmd_airspeed_ack_t
+{
+ float spCmd; ///< commanded airspeed
+ uint8_t ack; ///< 0:ack, 1:nack
+} mavlink_cmd_airspeed_ack_t;
+
+#define MAVLINK_MSG_ID_CMD_AIRSPEED_ACK_LEN 5
+#define MAVLINK_MSG_ID_194_LEN 5
+
+
+
+#define MAVLINK_MESSAGE_INFO_CMD_AIRSPEED_ACK { \
+	"CMD_AIRSPEED_ACK", \
+	2, \
+	{  { "spCmd", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_cmd_airspeed_ack_t, spCmd) }, \
+         { "ack", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_cmd_airspeed_ack_t, ack) }, \
+         } \
+}
+
+
+/**
+ * @brief Pack a cmd_airspeed_ack 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 spCmd commanded airspeed
+ * @param ack 0:ack, 1:nack
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_cmd_airspeed_ack_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
+						       float spCmd, uint8_t ack)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[5];
+	_mav_put_float(buf, 0, spCmd);
+	_mav_put_uint8_t(buf, 4, ack);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 5);
+#else
+	mavlink_cmd_airspeed_ack_t packet;
+	packet.spCmd = spCmd;
+	packet.ack = ack;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 5);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_CMD_AIRSPEED_ACK;
+	return mavlink_finalize_message(msg, system_id, component_id, 5, 243);
+}
+
+/**
+ * @brief Pack a cmd_airspeed_ack 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
+ * @param spCmd commanded airspeed
+ * @param ack 0:ack, 1:nack
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_cmd_airspeed_ack_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
+							   mavlink_message_t* msg,
+						           float spCmd,uint8_t ack)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[5];
+	_mav_put_float(buf, 0, spCmd);
+	_mav_put_uint8_t(buf, 4, ack);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 5);
+#else
+	mavlink_cmd_airspeed_ack_t packet;
+	packet.spCmd = spCmd;
+	packet.ack = ack;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 5);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_CMD_AIRSPEED_ACK;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 5, 243);
+}
+
+/**
+ * @brief Encode a cmd_airspeed_ack 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 cmd_airspeed_ack C-struct to read the message contents from
+ */
+static inline uint16_t mavlink_msg_cmd_airspeed_ack_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_cmd_airspeed_ack_t* cmd_airspeed_ack)
+{
+	return mavlink_msg_cmd_airspeed_ack_pack(system_id, component_id, msg, cmd_airspeed_ack->spCmd, cmd_airspeed_ack->ack);
+}
+
+/**
+ * @brief Send a cmd_airspeed_ack message
+ * @param chan MAVLink channel to send the message
+ *
+ * @param spCmd commanded airspeed
+ * @param ack 0:ack, 1:nack
+ */
+#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
+
+static inline void mavlink_msg_cmd_airspeed_ack_send(mavlink_channel_t chan, float spCmd, uint8_t ack)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[5];
+	_mav_put_float(buf, 0, spCmd);
+	_mav_put_uint8_t(buf, 4, ack);
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_AIRSPEED_ACK, buf, 5, 243);
+#else
+	mavlink_cmd_airspeed_ack_t packet;
+	packet.spCmd = spCmd;
+	packet.ack = ack;
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_AIRSPEED_ACK, (const char *)&packet, 5, 243);
+#endif
+}
+
+#endif
+
+// MESSAGE CMD_AIRSPEED_ACK UNPACKING
+
+
+/**
+ * @brief Get field spCmd from cmd_airspeed_ack message
+ *
+ * @return commanded airspeed
+ */
+static inline float mavlink_msg_cmd_airspeed_ack_get_spCmd(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_float(msg,  0);
+}
+
+/**
+ * @brief Get field ack from cmd_airspeed_ack message
+ *
+ * @return 0:ack, 1:nack
+ */
+static inline uint8_t mavlink_msg_cmd_airspeed_ack_get_ack(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_uint8_t(msg,  4);
+}
+
+/**
+ * @brief Decode a cmd_airspeed_ack message into a struct
+ *
+ * @param msg The message to decode
+ * @param cmd_airspeed_ack C-struct to decode the message contents into
+ */
+static inline void mavlink_msg_cmd_airspeed_ack_decode(const mavlink_message_t* msg, mavlink_cmd_airspeed_ack_t* cmd_airspeed_ack)
+{
+#if MAVLINK_NEED_BYTE_SWAP
+	cmd_airspeed_ack->spCmd = mavlink_msg_cmd_airspeed_ack_get_spCmd(msg);
+	cmd_airspeed_ack->ack = mavlink_msg_cmd_airspeed_ack_get_ack(msg);
+#else
+	memcpy(cmd_airspeed_ack, _MAV_PAYLOAD(msg), 5);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_cmd_airspeed_chng.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_cmd_airspeed_chng.h
new file mode 100644
index 0000000000000000000000000000000000000000..d5b21b8d79b69be6622885d1f13f0339e33dfab2
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_cmd_airspeed_chng.h
@@ -0,0 +1,166 @@
+// MESSAGE CMD_AIRSPEED_CHNG PACKING
+
+#define MAVLINK_MSG_ID_CMD_AIRSPEED_CHNG 192
+
+typedef struct __mavlink_cmd_airspeed_chng_t
+{
+ float spCmd; ///< commanded airspeed
+ uint8_t target; ///< Target ID
+} mavlink_cmd_airspeed_chng_t;
+
+#define MAVLINK_MSG_ID_CMD_AIRSPEED_CHNG_LEN 5
+#define MAVLINK_MSG_ID_192_LEN 5
+
+
+
+#define MAVLINK_MESSAGE_INFO_CMD_AIRSPEED_CHNG { \
+	"CMD_AIRSPEED_CHNG", \
+	2, \
+	{  { "spCmd", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_cmd_airspeed_chng_t, spCmd) }, \
+         { "target", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_cmd_airspeed_chng_t, target) }, \
+         } \
+}
+
+
+/**
+ * @brief Pack a cmd_airspeed_chng 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 target Target ID
+ * @param spCmd commanded airspeed
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_cmd_airspeed_chng_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
+						       uint8_t target, float spCmd)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[5];
+	_mav_put_float(buf, 0, spCmd);
+	_mav_put_uint8_t(buf, 4, target);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 5);
+#else
+	mavlink_cmd_airspeed_chng_t packet;
+	packet.spCmd = spCmd;
+	packet.target = target;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 5);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_CMD_AIRSPEED_CHNG;
+	return mavlink_finalize_message(msg, system_id, component_id, 5, 209);
+}
+
+/**
+ * @brief Pack a cmd_airspeed_chng 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
+ * @param target Target ID
+ * @param spCmd commanded airspeed
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_cmd_airspeed_chng_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
+							   mavlink_message_t* msg,
+						           uint8_t target,float spCmd)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[5];
+	_mav_put_float(buf, 0, spCmd);
+	_mav_put_uint8_t(buf, 4, target);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 5);
+#else
+	mavlink_cmd_airspeed_chng_t packet;
+	packet.spCmd = spCmd;
+	packet.target = target;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 5);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_CMD_AIRSPEED_CHNG;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 5, 209);
+}
+
+/**
+ * @brief Encode a cmd_airspeed_chng 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 cmd_airspeed_chng C-struct to read the message contents from
+ */
+static inline uint16_t mavlink_msg_cmd_airspeed_chng_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_cmd_airspeed_chng_t* cmd_airspeed_chng)
+{
+	return mavlink_msg_cmd_airspeed_chng_pack(system_id, component_id, msg, cmd_airspeed_chng->target, cmd_airspeed_chng->spCmd);
+}
+
+/**
+ * @brief Send a cmd_airspeed_chng message
+ * @param chan MAVLink channel to send the message
+ *
+ * @param target Target ID
+ * @param spCmd commanded airspeed
+ */
+#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
+
+static inline void mavlink_msg_cmd_airspeed_chng_send(mavlink_channel_t chan, uint8_t target, float spCmd)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[5];
+	_mav_put_float(buf, 0, spCmd);
+	_mav_put_uint8_t(buf, 4, target);
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_AIRSPEED_CHNG, buf, 5, 209);
+#else
+	mavlink_cmd_airspeed_chng_t packet;
+	packet.spCmd = spCmd;
+	packet.target = target;
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CMD_AIRSPEED_CHNG, (const char *)&packet, 5, 209);
+#endif
+}
+
+#endif
+
+// MESSAGE CMD_AIRSPEED_CHNG UNPACKING
+
+
+/**
+ * @brief Get field target from cmd_airspeed_chng message
+ *
+ * @return Target ID
+ */
+static inline uint8_t mavlink_msg_cmd_airspeed_chng_get_target(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_uint8_t(msg,  4);
+}
+
+/**
+ * @brief Get field spCmd from cmd_airspeed_chng message
+ *
+ * @return commanded airspeed
+ */
+static inline float mavlink_msg_cmd_airspeed_chng_get_spCmd(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_float(msg,  0);
+}
+
+/**
+ * @brief Decode a cmd_airspeed_chng message into a struct
+ *
+ * @param msg The message to decode
+ * @param cmd_airspeed_chng C-struct to decode the message contents into
+ */
+static inline void mavlink_msg_cmd_airspeed_chng_decode(const mavlink_message_t* msg, mavlink_cmd_airspeed_chng_t* cmd_airspeed_chng)
+{
+#if MAVLINK_NEED_BYTE_SWAP
+	cmd_airspeed_chng->spCmd = mavlink_msg_cmd_airspeed_chng_get_spCmd(msg);
+	cmd_airspeed_chng->target = mavlink_msg_cmd_airspeed_chng_get_target(msg);
+#else
+	memcpy(cmd_airspeed_chng, _MAV_PAYLOAD(msg), 5);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_filt_rot_vel.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_filt_rot_vel.h
new file mode 100644
index 0000000000000000000000000000000000000000..f5fef06f0438cfe04423ee101aa7b5920f440211
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_filt_rot_vel.h
@@ -0,0 +1,144 @@
+// MESSAGE FILT_ROT_VEL PACKING
+
+#define MAVLINK_MSG_ID_FILT_ROT_VEL 184
+
+typedef struct __mavlink_filt_rot_vel_t
+{
+ float rotVel[3]; ///< rotational velocity
+} mavlink_filt_rot_vel_t;
+
+#define MAVLINK_MSG_ID_FILT_ROT_VEL_LEN 12
+#define MAVLINK_MSG_ID_184_LEN 12
+
+#define MAVLINK_MSG_FILT_ROT_VEL_FIELD_ROTVEL_LEN 3
+
+#define MAVLINK_MESSAGE_INFO_FILT_ROT_VEL { \
+	"FILT_ROT_VEL", \
+	1, \
+	{  { "rotVel", NULL, MAVLINK_TYPE_FLOAT, 3, 0, offsetof(mavlink_filt_rot_vel_t, rotVel) }, \
+         } \
+}
+
+
+/**
+ * @brief Pack a filt_rot_vel 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 rotVel rotational velocity
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_filt_rot_vel_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
+						       const float *rotVel)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+
+	_mav_put_float_array(buf, 0, rotVel, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
+#else
+	mavlink_filt_rot_vel_t packet;
+
+	mav_array_memcpy(packet.rotVel, rotVel, sizeof(float)*3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_FILT_ROT_VEL;
+	return mavlink_finalize_message(msg, system_id, component_id, 12, 79);
+}
+
+/**
+ * @brief Pack a filt_rot_vel 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
+ * @param rotVel rotational velocity
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_filt_rot_vel_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
+							   mavlink_message_t* msg,
+						           const float *rotVel)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+
+	_mav_put_float_array(buf, 0, rotVel, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
+#else
+	mavlink_filt_rot_vel_t packet;
+
+	mav_array_memcpy(packet.rotVel, rotVel, sizeof(float)*3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_FILT_ROT_VEL;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 12, 79);
+}
+
+/**
+ * @brief Encode a filt_rot_vel 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 filt_rot_vel C-struct to read the message contents from
+ */
+static inline uint16_t mavlink_msg_filt_rot_vel_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_filt_rot_vel_t* filt_rot_vel)
+{
+	return mavlink_msg_filt_rot_vel_pack(system_id, component_id, msg, filt_rot_vel->rotVel);
+}
+
+/**
+ * @brief Send a filt_rot_vel message
+ * @param chan MAVLink channel to send the message
+ *
+ * @param rotVel rotational velocity
+ */
+#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
+
+static inline void mavlink_msg_filt_rot_vel_send(mavlink_channel_t chan, const float *rotVel)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+
+	_mav_put_float_array(buf, 0, rotVel, 3);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FILT_ROT_VEL, buf, 12, 79);
+#else
+	mavlink_filt_rot_vel_t packet;
+
+	mav_array_memcpy(packet.rotVel, rotVel, sizeof(float)*3);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FILT_ROT_VEL, (const char *)&packet, 12, 79);
+#endif
+}
+
+#endif
+
+// MESSAGE FILT_ROT_VEL UNPACKING
+
+
+/**
+ * @brief Get field rotVel from filt_rot_vel message
+ *
+ * @return rotational velocity
+ */
+static inline uint16_t mavlink_msg_filt_rot_vel_get_rotVel(const mavlink_message_t* msg, float *rotVel)
+{
+	return _MAV_RETURN_float_array(msg, rotVel, 3,  0);
+}
+
+/**
+ * @brief Decode a filt_rot_vel message into a struct
+ *
+ * @param msg The message to decode
+ * @param filt_rot_vel C-struct to decode the message contents into
+ */
+static inline void mavlink_msg_filt_rot_vel_decode(const mavlink_message_t* msg, mavlink_filt_rot_vel_t* filt_rot_vel)
+{
+#if MAVLINK_NEED_BYTE_SWAP
+	mavlink_msg_filt_rot_vel_get_rotVel(msg, filt_rot_vel->rotVel);
+#else
+	memcpy(filt_rot_vel, _MAV_PAYLOAD(msg), 12);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_llc_out.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_llc_out.h
new file mode 100644
index 0000000000000000000000000000000000000000..5ee3d5a19f2a92da8fcbfbefbf65fcdcbeb3c01c
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_llc_out.h
@@ -0,0 +1,167 @@
+// MESSAGE LLC_OUT PACKING
+
+#define MAVLINK_MSG_ID_LLC_OUT 186
+
+typedef struct __mavlink_llc_out_t
+{
+ int16_t servoOut[4]; ///< Servo signal
+ int16_t MotorOut[2]; ///< motor signal
+} mavlink_llc_out_t;
+
+#define MAVLINK_MSG_ID_LLC_OUT_LEN 12
+#define MAVLINK_MSG_ID_186_LEN 12
+
+#define MAVLINK_MSG_LLC_OUT_FIELD_SERVOOUT_LEN 4
+#define MAVLINK_MSG_LLC_OUT_FIELD_MOTOROUT_LEN 2
+
+#define MAVLINK_MESSAGE_INFO_LLC_OUT { \
+	"LLC_OUT", \
+	2, \
+	{  { "servoOut", NULL, MAVLINK_TYPE_INT16_T, 4, 0, offsetof(mavlink_llc_out_t, servoOut) }, \
+         { "MotorOut", NULL, MAVLINK_TYPE_INT16_T, 2, 8, offsetof(mavlink_llc_out_t, MotorOut) }, \
+         } \
+}
+
+
+/**
+ * @brief Pack a llc_out 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 servoOut Servo signal
+ * @param MotorOut motor signal
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_llc_out_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
+						       const int16_t *servoOut, const int16_t *MotorOut)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+
+	_mav_put_int16_t_array(buf, 0, servoOut, 4);
+	_mav_put_int16_t_array(buf, 8, MotorOut, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
+#else
+	mavlink_llc_out_t packet;
+
+	mav_array_memcpy(packet.servoOut, servoOut, sizeof(int16_t)*4);
+	mav_array_memcpy(packet.MotorOut, MotorOut, sizeof(int16_t)*2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_LLC_OUT;
+	return mavlink_finalize_message(msg, system_id, component_id, 12, 5);
+}
+
+/**
+ * @brief Pack a llc_out 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
+ * @param servoOut Servo signal
+ * @param MotorOut motor signal
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_llc_out_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
+							   mavlink_message_t* msg,
+						           const int16_t *servoOut,const int16_t *MotorOut)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+
+	_mav_put_int16_t_array(buf, 0, servoOut, 4);
+	_mav_put_int16_t_array(buf, 8, MotorOut, 2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
+#else
+	mavlink_llc_out_t packet;
+
+	mav_array_memcpy(packet.servoOut, servoOut, sizeof(int16_t)*4);
+	mav_array_memcpy(packet.MotorOut, MotorOut, sizeof(int16_t)*2);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_LLC_OUT;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 12, 5);
+}
+
+/**
+ * @brief Encode a llc_out 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 llc_out C-struct to read the message contents from
+ */
+static inline uint16_t mavlink_msg_llc_out_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_llc_out_t* llc_out)
+{
+	return mavlink_msg_llc_out_pack(system_id, component_id, msg, llc_out->servoOut, llc_out->MotorOut);
+}
+
+/**
+ * @brief Send a llc_out message
+ * @param chan MAVLink channel to send the message
+ *
+ * @param servoOut Servo signal
+ * @param MotorOut motor signal
+ */
+#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
+
+static inline void mavlink_msg_llc_out_send(mavlink_channel_t chan, const int16_t *servoOut, const int16_t *MotorOut)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+
+	_mav_put_int16_t_array(buf, 0, servoOut, 4);
+	_mav_put_int16_t_array(buf, 8, MotorOut, 2);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LLC_OUT, buf, 12, 5);
+#else
+	mavlink_llc_out_t packet;
+
+	mav_array_memcpy(packet.servoOut, servoOut, sizeof(int16_t)*4);
+	mav_array_memcpy(packet.MotorOut, MotorOut, sizeof(int16_t)*2);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LLC_OUT, (const char *)&packet, 12, 5);
+#endif
+}
+
+#endif
+
+// MESSAGE LLC_OUT UNPACKING
+
+
+/**
+ * @brief Get field servoOut from llc_out message
+ *
+ * @return Servo signal
+ */
+static inline uint16_t mavlink_msg_llc_out_get_servoOut(const mavlink_message_t* msg, int16_t *servoOut)
+{
+	return _MAV_RETURN_int16_t_array(msg, servoOut, 4,  0);
+}
+
+/**
+ * @brief Get field MotorOut from llc_out message
+ *
+ * @return motor signal
+ */
+static inline uint16_t mavlink_msg_llc_out_get_MotorOut(const mavlink_message_t* msg, int16_t *MotorOut)
+{
+	return _MAV_RETURN_int16_t_array(msg, MotorOut, 2,  8);
+}
+
+/**
+ * @brief Decode a llc_out message into a struct
+ *
+ * @param msg The message to decode
+ * @param llc_out C-struct to decode the message contents into
+ */
+static inline void mavlink_msg_llc_out_decode(const mavlink_message_t* msg, mavlink_llc_out_t* llc_out)
+{
+#if MAVLINK_NEED_BYTE_SWAP
+	mavlink_msg_llc_out_get_servoOut(msg, llc_out->servoOut);
+	mavlink_msg_llc_out_get_MotorOut(msg, llc_out->MotorOut);
+#else
+	memcpy(llc_out, _MAV_PAYLOAD(msg), 12);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_air_temp.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_air_temp.h
new file mode 100644
index 0000000000000000000000000000000000000000..60cf01845470911949dc7f48c0c895221dbcbdeb
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_air_temp.h
@@ -0,0 +1,144 @@
+// MESSAGE OBS_AIR_TEMP PACKING
+
+#define MAVLINK_MSG_ID_OBS_AIR_TEMP 183
+
+typedef struct __mavlink_obs_air_temp_t
+{
+ float airT; ///< Air Temperatur
+} mavlink_obs_air_temp_t;
+
+#define MAVLINK_MSG_ID_OBS_AIR_TEMP_LEN 4
+#define MAVLINK_MSG_ID_183_LEN 4
+
+
+
+#define MAVLINK_MESSAGE_INFO_OBS_AIR_TEMP { \
+	"OBS_AIR_TEMP", \
+	1, \
+	{  { "airT", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_obs_air_temp_t, airT) }, \
+         } \
+}
+
+
+/**
+ * @brief Pack a obs_air_temp 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 airT Air Temperatur
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_obs_air_temp_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
+						       float airT)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[4];
+	_mav_put_float(buf, 0, airT);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
+#else
+	mavlink_obs_air_temp_t packet;
+	packet.airT = airT;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_OBS_AIR_TEMP;
+	return mavlink_finalize_message(msg, system_id, component_id, 4, 248);
+}
+
+/**
+ * @brief Pack a obs_air_temp 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
+ * @param airT Air Temperatur
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_obs_air_temp_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
+							   mavlink_message_t* msg,
+						           float airT)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[4];
+	_mav_put_float(buf, 0, airT);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
+#else
+	mavlink_obs_air_temp_t packet;
+	packet.airT = airT;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_OBS_AIR_TEMP;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 4, 248);
+}
+
+/**
+ * @brief Encode a obs_air_temp 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 obs_air_temp C-struct to read the message contents from
+ */
+static inline uint16_t mavlink_msg_obs_air_temp_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_obs_air_temp_t* obs_air_temp)
+{
+	return mavlink_msg_obs_air_temp_pack(system_id, component_id, msg, obs_air_temp->airT);
+}
+
+/**
+ * @brief Send a obs_air_temp message
+ * @param chan MAVLink channel to send the message
+ *
+ * @param airT Air Temperatur
+ */
+#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
+
+static inline void mavlink_msg_obs_air_temp_send(mavlink_channel_t chan, float airT)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[4];
+	_mav_put_float(buf, 0, airT);
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBS_AIR_TEMP, buf, 4, 248);
+#else
+	mavlink_obs_air_temp_t packet;
+	packet.airT = airT;
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBS_AIR_TEMP, (const char *)&packet, 4, 248);
+#endif
+}
+
+#endif
+
+// MESSAGE OBS_AIR_TEMP UNPACKING
+
+
+/**
+ * @brief Get field airT from obs_air_temp message
+ *
+ * @return Air Temperatur
+ */
+static inline float mavlink_msg_obs_air_temp_get_airT(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_float(msg,  0);
+}
+
+/**
+ * @brief Decode a obs_air_temp message into a struct
+ *
+ * @param msg The message to decode
+ * @param obs_air_temp C-struct to decode the message contents into
+ */
+static inline void mavlink_msg_obs_air_temp_decode(const mavlink_message_t* msg, mavlink_obs_air_temp_t* obs_air_temp)
+{
+#if MAVLINK_NEED_BYTE_SWAP
+	obs_air_temp->airT = mavlink_msg_obs_air_temp_get_airT(msg);
+#else
+	memcpy(obs_air_temp, _MAV_PAYLOAD(msg), 4);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_air_velocity.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_air_velocity.h
new file mode 100644
index 0000000000000000000000000000000000000000..ef56c5c61780e00ac1fa32d3e57aadf0f4de4516
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_air_velocity.h
@@ -0,0 +1,188 @@
+// MESSAGE OBS_AIR_VELOCITY PACKING
+
+#define MAVLINK_MSG_ID_OBS_AIR_VELOCITY 178
+
+typedef struct __mavlink_obs_air_velocity_t
+{
+ float magnitude; ///< Air speed
+ float aoa; ///< angle of attack
+ float slip; ///< slip angle
+} mavlink_obs_air_velocity_t;
+
+#define MAVLINK_MSG_ID_OBS_AIR_VELOCITY_LEN 12
+#define MAVLINK_MSG_ID_178_LEN 12
+
+
+
+#define MAVLINK_MESSAGE_INFO_OBS_AIR_VELOCITY { \
+	"OBS_AIR_VELOCITY", \
+	3, \
+	{  { "magnitude", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_obs_air_velocity_t, magnitude) }, \
+         { "aoa", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_obs_air_velocity_t, aoa) }, \
+         { "slip", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_obs_air_velocity_t, slip) }, \
+         } \
+}
+
+
+/**
+ * @brief Pack a obs_air_velocity 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 magnitude Air speed
+ * @param aoa angle of attack
+ * @param slip slip angle
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_obs_air_velocity_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
+						       float magnitude, float aoa, float slip)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+	_mav_put_float(buf, 0, magnitude);
+	_mav_put_float(buf, 4, aoa);
+	_mav_put_float(buf, 8, slip);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
+#else
+	mavlink_obs_air_velocity_t packet;
+	packet.magnitude = magnitude;
+	packet.aoa = aoa;
+	packet.slip = slip;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_OBS_AIR_VELOCITY;
+	return mavlink_finalize_message(msg, system_id, component_id, 12, 32);
+}
+
+/**
+ * @brief Pack a obs_air_velocity 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
+ * @param magnitude Air speed
+ * @param aoa angle of attack
+ * @param slip slip angle
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_obs_air_velocity_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
+							   mavlink_message_t* msg,
+						           float magnitude,float aoa,float slip)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+	_mav_put_float(buf, 0, magnitude);
+	_mav_put_float(buf, 4, aoa);
+	_mav_put_float(buf, 8, slip);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
+#else
+	mavlink_obs_air_velocity_t packet;
+	packet.magnitude = magnitude;
+	packet.aoa = aoa;
+	packet.slip = slip;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_OBS_AIR_VELOCITY;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 12, 32);
+}
+
+/**
+ * @brief Encode a obs_air_velocity 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 obs_air_velocity C-struct to read the message contents from
+ */
+static inline uint16_t mavlink_msg_obs_air_velocity_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_obs_air_velocity_t* obs_air_velocity)
+{
+	return mavlink_msg_obs_air_velocity_pack(system_id, component_id, msg, obs_air_velocity->magnitude, obs_air_velocity->aoa, obs_air_velocity->slip);
+}
+
+/**
+ * @brief Send a obs_air_velocity message
+ * @param chan MAVLink channel to send the message
+ *
+ * @param magnitude Air speed
+ * @param aoa angle of attack
+ * @param slip slip angle
+ */
+#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
+
+static inline void mavlink_msg_obs_air_velocity_send(mavlink_channel_t chan, float magnitude, float aoa, float slip)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+	_mav_put_float(buf, 0, magnitude);
+	_mav_put_float(buf, 4, aoa);
+	_mav_put_float(buf, 8, slip);
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBS_AIR_VELOCITY, buf, 12, 32);
+#else
+	mavlink_obs_air_velocity_t packet;
+	packet.magnitude = magnitude;
+	packet.aoa = aoa;
+	packet.slip = slip;
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBS_AIR_VELOCITY, (const char *)&packet, 12, 32);
+#endif
+}
+
+#endif
+
+// MESSAGE OBS_AIR_VELOCITY UNPACKING
+
+
+/**
+ * @brief Get field magnitude from obs_air_velocity message
+ *
+ * @return Air speed
+ */
+static inline float mavlink_msg_obs_air_velocity_get_magnitude(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_float(msg,  0);
+}
+
+/**
+ * @brief Get field aoa from obs_air_velocity message
+ *
+ * @return angle of attack
+ */
+static inline float mavlink_msg_obs_air_velocity_get_aoa(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_float(msg,  4);
+}
+
+/**
+ * @brief Get field slip from obs_air_velocity message
+ *
+ * @return slip angle
+ */
+static inline float mavlink_msg_obs_air_velocity_get_slip(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_float(msg,  8);
+}
+
+/**
+ * @brief Decode a obs_air_velocity message into a struct
+ *
+ * @param msg The message to decode
+ * @param obs_air_velocity C-struct to decode the message contents into
+ */
+static inline void mavlink_msg_obs_air_velocity_decode(const mavlink_message_t* msg, mavlink_obs_air_velocity_t* obs_air_velocity)
+{
+#if MAVLINK_NEED_BYTE_SWAP
+	obs_air_velocity->magnitude = mavlink_msg_obs_air_velocity_get_magnitude(msg);
+	obs_air_velocity->aoa = mavlink_msg_obs_air_velocity_get_aoa(msg);
+	obs_air_velocity->slip = mavlink_msg_obs_air_velocity_get_slip(msg);
+#else
+	memcpy(obs_air_velocity, _MAV_PAYLOAD(msg), 12);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_attitude.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_attitude.h
new file mode 100644
index 0000000000000000000000000000000000000000..7a3e6d0ba48b16270acfe67d6091738bdcb078d8
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_attitude.h
@@ -0,0 +1,144 @@
+// MESSAGE OBS_ATTITUDE PACKING
+
+#define MAVLINK_MSG_ID_OBS_ATTITUDE 174
+
+typedef struct __mavlink_obs_attitude_t
+{
+ double quat[4]; ///< Quaternion re;im
+} mavlink_obs_attitude_t;
+
+#define MAVLINK_MSG_ID_OBS_ATTITUDE_LEN 32
+#define MAVLINK_MSG_ID_174_LEN 32
+
+#define MAVLINK_MSG_OBS_ATTITUDE_FIELD_QUAT_LEN 4
+
+#define MAVLINK_MESSAGE_INFO_OBS_ATTITUDE { \
+	"OBS_ATTITUDE", \
+	1, \
+	{  { "quat", NULL, MAVLINK_TYPE_DOUBLE, 4, 0, offsetof(mavlink_obs_attitude_t, quat) }, \
+         } \
+}
+
+
+/**
+ * @brief Pack a obs_attitude 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 quat Quaternion re;im
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_obs_attitude_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
+						       const double *quat)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[32];
+
+	_mav_put_double_array(buf, 0, quat, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
+#else
+	mavlink_obs_attitude_t packet;
+
+	mav_array_memcpy(packet.quat, quat, sizeof(double)*4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_OBS_ATTITUDE;
+	return mavlink_finalize_message(msg, system_id, component_id, 32, 146);
+}
+
+/**
+ * @brief Pack a obs_attitude 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
+ * @param quat Quaternion re;im
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_obs_attitude_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
+							   mavlink_message_t* msg,
+						           const double *quat)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[32];
+
+	_mav_put_double_array(buf, 0, quat, 4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 32);
+#else
+	mavlink_obs_attitude_t packet;
+
+	mav_array_memcpy(packet.quat, quat, sizeof(double)*4);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 32);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_OBS_ATTITUDE;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 32, 146);
+}
+
+/**
+ * @brief Encode a obs_attitude 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 obs_attitude C-struct to read the message contents from
+ */
+static inline uint16_t mavlink_msg_obs_attitude_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_obs_attitude_t* obs_attitude)
+{
+	return mavlink_msg_obs_attitude_pack(system_id, component_id, msg, obs_attitude->quat);
+}
+
+/**
+ * @brief Send a obs_attitude message
+ * @param chan MAVLink channel to send the message
+ *
+ * @param quat Quaternion re;im
+ */
+#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
+
+static inline void mavlink_msg_obs_attitude_send(mavlink_channel_t chan, const double *quat)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[32];
+
+	_mav_put_double_array(buf, 0, quat, 4);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBS_ATTITUDE, buf, 32, 146);
+#else
+	mavlink_obs_attitude_t packet;
+
+	mav_array_memcpy(packet.quat, quat, sizeof(double)*4);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBS_ATTITUDE, (const char *)&packet, 32, 146);
+#endif
+}
+
+#endif
+
+// MESSAGE OBS_ATTITUDE UNPACKING
+
+
+/**
+ * @brief Get field quat from obs_attitude message
+ *
+ * @return Quaternion re;im
+ */
+static inline uint16_t mavlink_msg_obs_attitude_get_quat(const mavlink_message_t* msg, double *quat)
+{
+	return _MAV_RETURN_double_array(msg, quat, 4,  0);
+}
+
+/**
+ * @brief Decode a obs_attitude message into a struct
+ *
+ * @param msg The message to decode
+ * @param obs_attitude C-struct to decode the message contents into
+ */
+static inline void mavlink_msg_obs_attitude_decode(const mavlink_message_t* msg, mavlink_obs_attitude_t* obs_attitude)
+{
+#if MAVLINK_NEED_BYTE_SWAP
+	mavlink_msg_obs_attitude_get_quat(msg, obs_attitude->quat);
+#else
+	memcpy(obs_attitude, _MAV_PAYLOAD(msg), 32);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_bias.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_bias.h
new file mode 100644
index 0000000000000000000000000000000000000000..565ab0cd8647906a7c74d2928fc72fa0509d9ea3
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_bias.h
@@ -0,0 +1,167 @@
+// MESSAGE OBS_BIAS PACKING
+
+#define MAVLINK_MSG_ID_OBS_BIAS 180
+
+typedef struct __mavlink_obs_bias_t
+{
+ float accBias[3]; ///< accelerometer bias
+ float gyroBias[3]; ///< gyroscope bias
+} mavlink_obs_bias_t;
+
+#define MAVLINK_MSG_ID_OBS_BIAS_LEN 24
+#define MAVLINK_MSG_ID_180_LEN 24
+
+#define MAVLINK_MSG_OBS_BIAS_FIELD_ACCBIAS_LEN 3
+#define MAVLINK_MSG_OBS_BIAS_FIELD_GYROBIAS_LEN 3
+
+#define MAVLINK_MESSAGE_INFO_OBS_BIAS { \
+	"OBS_BIAS", \
+	2, \
+	{  { "accBias", NULL, MAVLINK_TYPE_FLOAT, 3, 0, offsetof(mavlink_obs_bias_t, accBias) }, \
+         { "gyroBias", NULL, MAVLINK_TYPE_FLOAT, 3, 12, offsetof(mavlink_obs_bias_t, gyroBias) }, \
+         } \
+}
+
+
+/**
+ * @brief Pack a obs_bias 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 accBias accelerometer bias
+ * @param gyroBias gyroscope bias
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_obs_bias_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
+						       const float *accBias, const float *gyroBias)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[24];
+
+	_mav_put_float_array(buf, 0, accBias, 3);
+	_mav_put_float_array(buf, 12, gyroBias, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 24);
+#else
+	mavlink_obs_bias_t packet;
+
+	mav_array_memcpy(packet.accBias, accBias, sizeof(float)*3);
+	mav_array_memcpy(packet.gyroBias, gyroBias, sizeof(float)*3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 24);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_OBS_BIAS;
+	return mavlink_finalize_message(msg, system_id, component_id, 24, 159);
+}
+
+/**
+ * @brief Pack a obs_bias 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
+ * @param accBias accelerometer bias
+ * @param gyroBias gyroscope bias
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_obs_bias_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
+							   mavlink_message_t* msg,
+						           const float *accBias,const float *gyroBias)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[24];
+
+	_mav_put_float_array(buf, 0, accBias, 3);
+	_mav_put_float_array(buf, 12, gyroBias, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 24);
+#else
+	mavlink_obs_bias_t packet;
+
+	mav_array_memcpy(packet.accBias, accBias, sizeof(float)*3);
+	mav_array_memcpy(packet.gyroBias, gyroBias, sizeof(float)*3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 24);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_OBS_BIAS;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 24, 159);
+}
+
+/**
+ * @brief Encode a obs_bias 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 obs_bias C-struct to read the message contents from
+ */
+static inline uint16_t mavlink_msg_obs_bias_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_obs_bias_t* obs_bias)
+{
+	return mavlink_msg_obs_bias_pack(system_id, component_id, msg, obs_bias->accBias, obs_bias->gyroBias);
+}
+
+/**
+ * @brief Send a obs_bias message
+ * @param chan MAVLink channel to send the message
+ *
+ * @param accBias accelerometer bias
+ * @param gyroBias gyroscope bias
+ */
+#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
+
+static inline void mavlink_msg_obs_bias_send(mavlink_channel_t chan, const float *accBias, const float *gyroBias)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[24];
+
+	_mav_put_float_array(buf, 0, accBias, 3);
+	_mav_put_float_array(buf, 12, gyroBias, 3);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBS_BIAS, buf, 24, 159);
+#else
+	mavlink_obs_bias_t packet;
+
+	mav_array_memcpy(packet.accBias, accBias, sizeof(float)*3);
+	mav_array_memcpy(packet.gyroBias, gyroBias, sizeof(float)*3);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBS_BIAS, (const char *)&packet, 24, 159);
+#endif
+}
+
+#endif
+
+// MESSAGE OBS_BIAS UNPACKING
+
+
+/**
+ * @brief Get field accBias from obs_bias message
+ *
+ * @return accelerometer bias
+ */
+static inline uint16_t mavlink_msg_obs_bias_get_accBias(const mavlink_message_t* msg, float *accBias)
+{
+	return _MAV_RETURN_float_array(msg, accBias, 3,  0);
+}
+
+/**
+ * @brief Get field gyroBias from obs_bias message
+ *
+ * @return gyroscope bias
+ */
+static inline uint16_t mavlink_msg_obs_bias_get_gyroBias(const mavlink_message_t* msg, float *gyroBias)
+{
+	return _MAV_RETURN_float_array(msg, gyroBias, 3,  12);
+}
+
+/**
+ * @brief Decode a obs_bias message into a struct
+ *
+ * @param msg The message to decode
+ * @param obs_bias C-struct to decode the message contents into
+ */
+static inline void mavlink_msg_obs_bias_decode(const mavlink_message_t* msg, mavlink_obs_bias_t* obs_bias)
+{
+#if MAVLINK_NEED_BYTE_SWAP
+	mavlink_msg_obs_bias_get_accBias(msg, obs_bias->accBias);
+	mavlink_msg_obs_bias_get_gyroBias(msg, obs_bias->gyroBias);
+#else
+	memcpy(obs_bias, _MAV_PAYLOAD(msg), 24);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_position.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_position.h
new file mode 100644
index 0000000000000000000000000000000000000000..e886c8c24fc95467923a6634e01aea2598d685f3
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_position.h
@@ -0,0 +1,188 @@
+// MESSAGE OBS_POSITION PACKING
+
+#define MAVLINK_MSG_ID_OBS_POSITION 170
+
+typedef struct __mavlink_obs_position_t
+{
+ int32_t lon; ///< Longitude expressed in 1E7
+ int32_t lat; ///< Latitude expressed in 1E7
+ int32_t alt; ///< Altitude expressed in milimeters
+} mavlink_obs_position_t;
+
+#define MAVLINK_MSG_ID_OBS_POSITION_LEN 12
+#define MAVLINK_MSG_ID_170_LEN 12
+
+
+
+#define MAVLINK_MESSAGE_INFO_OBS_POSITION { \
+	"OBS_POSITION", \
+	3, \
+	{  { "lon", NULL, MAVLINK_TYPE_INT32_T, 0, 0, offsetof(mavlink_obs_position_t, lon) }, \
+         { "lat", NULL, MAVLINK_TYPE_INT32_T, 0, 4, offsetof(mavlink_obs_position_t, lat) }, \
+         { "alt", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_obs_position_t, alt) }, \
+         } \
+}
+
+
+/**
+ * @brief Pack a obs_position 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 lon Longitude expressed in 1E7
+ * @param lat Latitude expressed in 1E7
+ * @param alt Altitude expressed in milimeters
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_obs_position_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
+						       int32_t lon, int32_t lat, int32_t alt)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+	_mav_put_int32_t(buf, 0, lon);
+	_mav_put_int32_t(buf, 4, lat);
+	_mav_put_int32_t(buf, 8, alt);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
+#else
+	mavlink_obs_position_t packet;
+	packet.lon = lon;
+	packet.lat = lat;
+	packet.alt = alt;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_OBS_POSITION;
+	return mavlink_finalize_message(msg, system_id, component_id, 12, 15);
+}
+
+/**
+ * @brief Pack a obs_position 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
+ * @param lon Longitude expressed in 1E7
+ * @param lat Latitude expressed in 1E7
+ * @param alt Altitude expressed in milimeters
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_obs_position_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
+							   mavlink_message_t* msg,
+						           int32_t lon,int32_t lat,int32_t alt)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+	_mav_put_int32_t(buf, 0, lon);
+	_mav_put_int32_t(buf, 4, lat);
+	_mav_put_int32_t(buf, 8, alt);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
+#else
+	mavlink_obs_position_t packet;
+	packet.lon = lon;
+	packet.lat = lat;
+	packet.alt = alt;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_OBS_POSITION;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 12, 15);
+}
+
+/**
+ * @brief Encode a obs_position 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 obs_position C-struct to read the message contents from
+ */
+static inline uint16_t mavlink_msg_obs_position_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_obs_position_t* obs_position)
+{
+	return mavlink_msg_obs_position_pack(system_id, component_id, msg, obs_position->lon, obs_position->lat, obs_position->alt);
+}
+
+/**
+ * @brief Send a obs_position message
+ * @param chan MAVLink channel to send the message
+ *
+ * @param lon Longitude expressed in 1E7
+ * @param lat Latitude expressed in 1E7
+ * @param alt Altitude expressed in milimeters
+ */
+#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
+
+static inline void mavlink_msg_obs_position_send(mavlink_channel_t chan, int32_t lon, int32_t lat, int32_t alt)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+	_mav_put_int32_t(buf, 0, lon);
+	_mav_put_int32_t(buf, 4, lat);
+	_mav_put_int32_t(buf, 8, alt);
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBS_POSITION, buf, 12, 15);
+#else
+	mavlink_obs_position_t packet;
+	packet.lon = lon;
+	packet.lat = lat;
+	packet.alt = alt;
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBS_POSITION, (const char *)&packet, 12, 15);
+#endif
+}
+
+#endif
+
+// MESSAGE OBS_POSITION UNPACKING
+
+
+/**
+ * @brief Get field lon from obs_position message
+ *
+ * @return Longitude expressed in 1E7
+ */
+static inline int32_t mavlink_msg_obs_position_get_lon(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_int32_t(msg,  0);
+}
+
+/**
+ * @brief Get field lat from obs_position message
+ *
+ * @return Latitude expressed in 1E7
+ */
+static inline int32_t mavlink_msg_obs_position_get_lat(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_int32_t(msg,  4);
+}
+
+/**
+ * @brief Get field alt from obs_position message
+ *
+ * @return Altitude expressed in milimeters
+ */
+static inline int32_t mavlink_msg_obs_position_get_alt(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_int32_t(msg,  8);
+}
+
+/**
+ * @brief Decode a obs_position message into a struct
+ *
+ * @param msg The message to decode
+ * @param obs_position C-struct to decode the message contents into
+ */
+static inline void mavlink_msg_obs_position_decode(const mavlink_message_t* msg, mavlink_obs_position_t* obs_position)
+{
+#if MAVLINK_NEED_BYTE_SWAP
+	obs_position->lon = mavlink_msg_obs_position_get_lon(msg);
+	obs_position->lat = mavlink_msg_obs_position_get_lat(msg);
+	obs_position->alt = mavlink_msg_obs_position_get_alt(msg);
+#else
+	memcpy(obs_position, _MAV_PAYLOAD(msg), 12);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_qff.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_qff.h
new file mode 100644
index 0000000000000000000000000000000000000000..4ab10ca07cecb9577cb58597e9385486935bfb9a
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_qff.h
@@ -0,0 +1,144 @@
+// MESSAGE OBS_QFF PACKING
+
+#define MAVLINK_MSG_ID_OBS_QFF 182
+
+typedef struct __mavlink_obs_qff_t
+{
+ float qff; ///< Wind
+} mavlink_obs_qff_t;
+
+#define MAVLINK_MSG_ID_OBS_QFF_LEN 4
+#define MAVLINK_MSG_ID_182_LEN 4
+
+
+
+#define MAVLINK_MESSAGE_INFO_OBS_QFF { \
+	"OBS_QFF", \
+	1, \
+	{  { "qff", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_obs_qff_t, qff) }, \
+         } \
+}
+
+
+/**
+ * @brief Pack a obs_qff 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 qff Wind
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_obs_qff_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
+						       float qff)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[4];
+	_mav_put_float(buf, 0, qff);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
+#else
+	mavlink_obs_qff_t packet;
+	packet.qff = qff;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_OBS_QFF;
+	return mavlink_finalize_message(msg, system_id, component_id, 4, 24);
+}
+
+/**
+ * @brief Pack a obs_qff 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
+ * @param qff Wind
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_obs_qff_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
+							   mavlink_message_t* msg,
+						           float qff)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[4];
+	_mav_put_float(buf, 0, qff);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
+#else
+	mavlink_obs_qff_t packet;
+	packet.qff = qff;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_OBS_QFF;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 4, 24);
+}
+
+/**
+ * @brief Encode a obs_qff 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 obs_qff C-struct to read the message contents from
+ */
+static inline uint16_t mavlink_msg_obs_qff_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_obs_qff_t* obs_qff)
+{
+	return mavlink_msg_obs_qff_pack(system_id, component_id, msg, obs_qff->qff);
+}
+
+/**
+ * @brief Send a obs_qff message
+ * @param chan MAVLink channel to send the message
+ *
+ * @param qff Wind
+ */
+#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
+
+static inline void mavlink_msg_obs_qff_send(mavlink_channel_t chan, float qff)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[4];
+	_mav_put_float(buf, 0, qff);
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBS_QFF, buf, 4, 24);
+#else
+	mavlink_obs_qff_t packet;
+	packet.qff = qff;
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBS_QFF, (const char *)&packet, 4, 24);
+#endif
+}
+
+#endif
+
+// MESSAGE OBS_QFF UNPACKING
+
+
+/**
+ * @brief Get field qff from obs_qff message
+ *
+ * @return Wind
+ */
+static inline float mavlink_msg_obs_qff_get_qff(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_float(msg,  0);
+}
+
+/**
+ * @brief Decode a obs_qff message into a struct
+ *
+ * @param msg The message to decode
+ * @param obs_qff C-struct to decode the message contents into
+ */
+static inline void mavlink_msg_obs_qff_decode(const mavlink_message_t* msg, mavlink_obs_qff_t* obs_qff)
+{
+#if MAVLINK_NEED_BYTE_SWAP
+	obs_qff->qff = mavlink_msg_obs_qff_get_qff(msg);
+#else
+	memcpy(obs_qff, _MAV_PAYLOAD(msg), 4);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_velocity.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_velocity.h
new file mode 100644
index 0000000000000000000000000000000000000000..e5ace9f85e2e85614ecbfb0c6e2422d3b1d99185
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_velocity.h
@@ -0,0 +1,144 @@
+// MESSAGE OBS_VELOCITY PACKING
+
+#define MAVLINK_MSG_ID_OBS_VELOCITY 172
+
+typedef struct __mavlink_obs_velocity_t
+{
+ float vel[3]; ///< Velocity
+} mavlink_obs_velocity_t;
+
+#define MAVLINK_MSG_ID_OBS_VELOCITY_LEN 12
+#define MAVLINK_MSG_ID_172_LEN 12
+
+#define MAVLINK_MSG_OBS_VELOCITY_FIELD_VEL_LEN 3
+
+#define MAVLINK_MESSAGE_INFO_OBS_VELOCITY { \
+	"OBS_VELOCITY", \
+	1, \
+	{  { "vel", NULL, MAVLINK_TYPE_FLOAT, 3, 0, offsetof(mavlink_obs_velocity_t, vel) }, \
+         } \
+}
+
+
+/**
+ * @brief Pack a obs_velocity 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 vel Velocity
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_obs_velocity_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
+						       const float *vel)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+
+	_mav_put_float_array(buf, 0, vel, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
+#else
+	mavlink_obs_velocity_t packet;
+
+	mav_array_memcpy(packet.vel, vel, sizeof(float)*3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_OBS_VELOCITY;
+	return mavlink_finalize_message(msg, system_id, component_id, 12, 108);
+}
+
+/**
+ * @brief Pack a obs_velocity 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
+ * @param vel Velocity
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_obs_velocity_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
+							   mavlink_message_t* msg,
+						           const float *vel)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+
+	_mav_put_float_array(buf, 0, vel, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
+#else
+	mavlink_obs_velocity_t packet;
+
+	mav_array_memcpy(packet.vel, vel, sizeof(float)*3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_OBS_VELOCITY;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 12, 108);
+}
+
+/**
+ * @brief Encode a obs_velocity 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 obs_velocity C-struct to read the message contents from
+ */
+static inline uint16_t mavlink_msg_obs_velocity_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_obs_velocity_t* obs_velocity)
+{
+	return mavlink_msg_obs_velocity_pack(system_id, component_id, msg, obs_velocity->vel);
+}
+
+/**
+ * @brief Send a obs_velocity message
+ * @param chan MAVLink channel to send the message
+ *
+ * @param vel Velocity
+ */
+#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
+
+static inline void mavlink_msg_obs_velocity_send(mavlink_channel_t chan, const float *vel)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+
+	_mav_put_float_array(buf, 0, vel, 3);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBS_VELOCITY, buf, 12, 108);
+#else
+	mavlink_obs_velocity_t packet;
+
+	mav_array_memcpy(packet.vel, vel, sizeof(float)*3);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBS_VELOCITY, (const char *)&packet, 12, 108);
+#endif
+}
+
+#endif
+
+// MESSAGE OBS_VELOCITY UNPACKING
+
+
+/**
+ * @brief Get field vel from obs_velocity message
+ *
+ * @return Velocity
+ */
+static inline uint16_t mavlink_msg_obs_velocity_get_vel(const mavlink_message_t* msg, float *vel)
+{
+	return _MAV_RETURN_float_array(msg, vel, 3,  0);
+}
+
+/**
+ * @brief Decode a obs_velocity message into a struct
+ *
+ * @param msg The message to decode
+ * @param obs_velocity C-struct to decode the message contents into
+ */
+static inline void mavlink_msg_obs_velocity_decode(const mavlink_message_t* msg, mavlink_obs_velocity_t* obs_velocity)
+{
+#if MAVLINK_NEED_BYTE_SWAP
+	mavlink_msg_obs_velocity_get_vel(msg, obs_velocity->vel);
+#else
+	memcpy(obs_velocity, _MAV_PAYLOAD(msg), 12);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_wind.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_wind.h
new file mode 100644
index 0000000000000000000000000000000000000000..6011a1caadd0c8f05fe5cf744ebf527ef3c62a51
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_obs_wind.h
@@ -0,0 +1,144 @@
+// MESSAGE OBS_WIND PACKING
+
+#define MAVLINK_MSG_ID_OBS_WIND 176
+
+typedef struct __mavlink_obs_wind_t
+{
+ float wind[3]; ///< Wind
+} mavlink_obs_wind_t;
+
+#define MAVLINK_MSG_ID_OBS_WIND_LEN 12
+#define MAVLINK_MSG_ID_176_LEN 12
+
+#define MAVLINK_MSG_OBS_WIND_FIELD_WIND_LEN 3
+
+#define MAVLINK_MESSAGE_INFO_OBS_WIND { \
+	"OBS_WIND", \
+	1, \
+	{  { "wind", NULL, MAVLINK_TYPE_FLOAT, 3, 0, offsetof(mavlink_obs_wind_t, wind) }, \
+         } \
+}
+
+
+/**
+ * @brief Pack a obs_wind 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 wind Wind
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_obs_wind_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
+						       const float *wind)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+
+	_mav_put_float_array(buf, 0, wind, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
+#else
+	mavlink_obs_wind_t packet;
+
+	mav_array_memcpy(packet.wind, wind, sizeof(float)*3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_OBS_WIND;
+	return mavlink_finalize_message(msg, system_id, component_id, 12, 16);
+}
+
+/**
+ * @brief Pack a obs_wind 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
+ * @param wind Wind
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_obs_wind_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
+							   mavlink_message_t* msg,
+						           const float *wind)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+
+	_mav_put_float_array(buf, 0, wind, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 12);
+#else
+	mavlink_obs_wind_t packet;
+
+	mav_array_memcpy(packet.wind, wind, sizeof(float)*3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 12);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_OBS_WIND;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 12, 16);
+}
+
+/**
+ * @brief Encode a obs_wind 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 obs_wind C-struct to read the message contents from
+ */
+static inline uint16_t mavlink_msg_obs_wind_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_obs_wind_t* obs_wind)
+{
+	return mavlink_msg_obs_wind_pack(system_id, component_id, msg, obs_wind->wind);
+}
+
+/**
+ * @brief Send a obs_wind message
+ * @param chan MAVLink channel to send the message
+ *
+ * @param wind Wind
+ */
+#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
+
+static inline void mavlink_msg_obs_wind_send(mavlink_channel_t chan, const float *wind)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[12];
+
+	_mav_put_float_array(buf, 0, wind, 3);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBS_WIND, buf, 12, 16);
+#else
+	mavlink_obs_wind_t packet;
+
+	mav_array_memcpy(packet.wind, wind, sizeof(float)*3);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBS_WIND, (const char *)&packet, 12, 16);
+#endif
+}
+
+#endif
+
+// MESSAGE OBS_WIND UNPACKING
+
+
+/**
+ * @brief Get field wind from obs_wind message
+ *
+ * @return Wind
+ */
+static inline uint16_t mavlink_msg_obs_wind_get_wind(const mavlink_message_t* msg, float *wind)
+{
+	return _MAV_RETURN_float_array(msg, wind, 3,  0);
+}
+
+/**
+ * @brief Decode a obs_wind message into a struct
+ *
+ * @param msg The message to decode
+ * @param obs_wind C-struct to decode the message contents into
+ */
+static inline void mavlink_msg_obs_wind_decode(const mavlink_message_t* msg, mavlink_obs_wind_t* obs_wind)
+{
+#if MAVLINK_NEED_BYTE_SWAP
+	mavlink_msg_obs_wind_get_wind(msg, obs_wind->wind);
+#else
+	memcpy(obs_wind, _MAV_PAYLOAD(msg), 12);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_pm_elec.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_pm_elec.h
new file mode 100644
index 0000000000000000000000000000000000000000..d194dae9bc4b31f1b32fd857c5c67533de1a8d77
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_pm_elec.h
@@ -0,0 +1,182 @@
+// MESSAGE PM_ELEC PACKING
+
+#define MAVLINK_MSG_ID_PM_ELEC 188
+
+typedef struct __mavlink_pm_elec_t
+{
+ float PwCons; ///< current power consumption
+ float BatStat; ///< battery status
+ float PwGen[3]; ///< Power generation from each module
+} mavlink_pm_elec_t;
+
+#define MAVLINK_MSG_ID_PM_ELEC_LEN 20
+#define MAVLINK_MSG_ID_188_LEN 20
+
+#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
+ *
+ * @param PwCons current power consumption
+ * @param BatStat battery status
+ * @param PwGen Power generation from each module
+ * @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
+	char buf[20];
+	_mav_put_float(buf, 0, PwCons);
+	_mav_put_float(buf, 4, BatStat);
+	_mav_put_float_array(buf, 8, PwGen, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
+#else
+	mavlink_pm_elec_t packet;
+	packet.PwCons = PwCons;
+	packet.BatStat = BatStat;
+	mav_array_memcpy(packet.PwGen, PwGen, sizeof(float)*3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_PM_ELEC;
+	return mavlink_finalize_message(msg, system_id, component_id, 20, 170);
+}
+
+/**
+ * @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
+ * @param PwCons current power consumption
+ * @param BatStat battery status
+ * @param PwGen Power generation from each module
+ * @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
+	char buf[20];
+	_mav_put_float(buf, 0, PwCons);
+	_mav_put_float(buf, 4, BatStat);
+	_mav_put_float_array(buf, 8, PwGen, 3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 20);
+#else
+	mavlink_pm_elec_t packet;
+	packet.PwCons = PwCons;
+	packet.BatStat = BatStat;
+	mav_array_memcpy(packet.PwGen, PwGen, sizeof(float)*3);
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 20);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_PM_ELEC;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 20, 170);
+}
+
+/**
+ * @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
+ *
+ * @param PwCons current power consumption
+ * @param BatStat battery status
+ * @param PwGen Power generation from each module
+ */
+#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
+	char buf[20];
+	_mav_put_float(buf, 0, PwCons);
+	_mav_put_float(buf, 4, BatStat);
+	_mav_put_float_array(buf, 8, PwGen, 3);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PM_ELEC, buf, 20, 170);
+#else
+	mavlink_pm_elec_t packet;
+	packet.PwCons = PwCons;
+	packet.BatStat = BatStat;
+	mav_array_memcpy(packet.PwGen, PwGen, sizeof(float)*3);
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_PM_ELEC, (const char *)&packet, 20, 170);
+#endif
+}
+
+#endif
+
+// MESSAGE PM_ELEC UNPACKING
+
+
+/**
+ * @brief Get field PwCons from pm_elec message
+ *
+ * @return current power consumption
+ */
+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
+ *
+ * @return battery status
+ */
+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
+ *
+ * @return Power generation from each module
+ */
+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
+	memcpy(pm_elec, _MAV_PAYLOAD(msg), 20);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_sys_stat.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_sys_stat.h
new file mode 100644
index 0000000000000000000000000000000000000000..597fdf911f47ee9ca3eeed15cc543f4bbb37bbf4
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/mavlink_msg_sys_stat.h
@@ -0,0 +1,210 @@
+// MESSAGE SYS_Stat PACKING
+
+#define MAVLINK_MSG_ID_SYS_Stat 190
+
+typedef struct __mavlink_sys_stat_t
+{
+ uint8_t gps; ///< gps status
+ uint8_t act; ///< actuator status
+ uint8_t mod; ///< module status
+ uint8_t commRssi; ///< module status
+} mavlink_sys_stat_t;
+
+#define MAVLINK_MSG_ID_SYS_Stat_LEN 4
+#define MAVLINK_MSG_ID_190_LEN 4
+
+
+
+#define MAVLINK_MESSAGE_INFO_SYS_Stat { \
+	"SYS_Stat", \
+	4, \
+	{  { "gps", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_sys_stat_t, gps) }, \
+         { "act", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_sys_stat_t, act) }, \
+         { "mod", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_sys_stat_t, mod) }, \
+         { "commRssi", NULL, MAVLINK_TYPE_UINT8_T, 0, 3, offsetof(mavlink_sys_stat_t, commRssi) }, \
+         } \
+}
+
+
+/**
+ * @brief Pack a sys_stat 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 gps gps status
+ * @param act actuator status
+ * @param mod module status
+ * @param commRssi module status
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_sys_stat_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
+						       uint8_t gps, uint8_t act, uint8_t mod, uint8_t commRssi)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[4];
+	_mav_put_uint8_t(buf, 0, gps);
+	_mav_put_uint8_t(buf, 1, act);
+	_mav_put_uint8_t(buf, 2, mod);
+	_mav_put_uint8_t(buf, 3, commRssi);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
+#else
+	mavlink_sys_stat_t packet;
+	packet.gps = gps;
+	packet.act = act;
+	packet.mod = mod;
+	packet.commRssi = commRssi;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_SYS_Stat;
+	return mavlink_finalize_message(msg, system_id, component_id, 4, 157);
+}
+
+/**
+ * @brief Pack a sys_stat 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
+ * @param gps gps status
+ * @param act actuator status
+ * @param mod module status
+ * @param commRssi module status
+ * @return length of the message in bytes (excluding serial stream start sign)
+ */
+static inline uint16_t mavlink_msg_sys_stat_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
+							   mavlink_message_t* msg,
+						           uint8_t gps,uint8_t act,uint8_t mod,uint8_t commRssi)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[4];
+	_mav_put_uint8_t(buf, 0, gps);
+	_mav_put_uint8_t(buf, 1, act);
+	_mav_put_uint8_t(buf, 2, mod);
+	_mav_put_uint8_t(buf, 3, commRssi);
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, 4);
+#else
+	mavlink_sys_stat_t packet;
+	packet.gps = gps;
+	packet.act = act;
+	packet.mod = mod;
+	packet.commRssi = commRssi;
+
+        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, 4);
+#endif
+
+	msg->msgid = MAVLINK_MSG_ID_SYS_Stat;
+	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 4, 157);
+}
+
+/**
+ * @brief Encode a sys_stat 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 sys_stat C-struct to read the message contents from
+ */
+static inline uint16_t mavlink_msg_sys_stat_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_sys_stat_t* sys_stat)
+{
+	return mavlink_msg_sys_stat_pack(system_id, component_id, msg, sys_stat->gps, sys_stat->act, sys_stat->mod, sys_stat->commRssi);
+}
+
+/**
+ * @brief Send a sys_stat message
+ * @param chan MAVLink channel to send the message
+ *
+ * @param gps gps status
+ * @param act actuator status
+ * @param mod module status
+ * @param commRssi module status
+ */
+#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
+
+static inline void mavlink_msg_sys_stat_send(mavlink_channel_t chan, uint8_t gps, uint8_t act, uint8_t mod, uint8_t commRssi)
+{
+#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
+	char buf[4];
+	_mav_put_uint8_t(buf, 0, gps);
+	_mav_put_uint8_t(buf, 1, act);
+	_mav_put_uint8_t(buf, 2, mod);
+	_mav_put_uint8_t(buf, 3, commRssi);
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SYS_Stat, buf, 4, 157);
+#else
+	mavlink_sys_stat_t packet;
+	packet.gps = gps;
+	packet.act = act;
+	packet.mod = mod;
+	packet.commRssi = commRssi;
+
+	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SYS_Stat, (const char *)&packet, 4, 157);
+#endif
+}
+
+#endif
+
+// MESSAGE SYS_Stat UNPACKING
+
+
+/**
+ * @brief Get field gps from sys_stat message
+ *
+ * @return gps status
+ */
+static inline uint8_t mavlink_msg_sys_stat_get_gps(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_uint8_t(msg,  0);
+}
+
+/**
+ * @brief Get field act from sys_stat message
+ *
+ * @return actuator status
+ */
+static inline uint8_t mavlink_msg_sys_stat_get_act(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_uint8_t(msg,  1);
+}
+
+/**
+ * @brief Get field mod from sys_stat message
+ *
+ * @return module status
+ */
+static inline uint8_t mavlink_msg_sys_stat_get_mod(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_uint8_t(msg,  2);
+}
+
+/**
+ * @brief Get field commRssi from sys_stat message
+ *
+ * @return module status
+ */
+static inline uint8_t mavlink_msg_sys_stat_get_commRssi(const mavlink_message_t* msg)
+{
+	return _MAV_RETURN_uint8_t(msg,  3);
+}
+
+/**
+ * @brief Decode a sys_stat message into a struct
+ *
+ * @param msg The message to decode
+ * @param sys_stat C-struct to decode the message contents into
+ */
+static inline void mavlink_msg_sys_stat_decode(const mavlink_message_t* msg, mavlink_sys_stat_t* sys_stat)
+{
+#if MAVLINK_NEED_BYTE_SWAP
+	sys_stat->gps = mavlink_msg_sys_stat_get_gps(msg);
+	sys_stat->act = mavlink_msg_sys_stat_get_act(msg);
+	sys_stat->mod = mavlink_msg_sys_stat_get_mod(msg);
+	sys_stat->commRssi = mavlink_msg_sys_stat_get_commRssi(msg);
+#else
+	memcpy(sys_stat, _MAV_PAYLOAD(msg), 4);
+#endif
+}
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/sensesoar.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/sensesoar.h
new file mode 100644
index 0000000000000000000000000000000000000000..5a6022d59f1168d6dbcf26f7161cb44ed71e1741
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/sensesoar.h
@@ -0,0 +1,77 @@
+/** @file
+ *	@brief MAVLink comm protocol generated from sensesoar.xml
+ *	@see http://qgroundcontrol.org/mavlink/
+ */
+#ifndef SENSESOAR_H
+#define SENSESOAR_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// MESSAGE LENGTHS AND CRCS
+
+#ifndef MAVLINK_MESSAGE_LENGTHS
+#define MAVLINK_MESSAGE_LENGTHS {9, 31, 12, 0, 14, 28, 3, 32, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 25, 23, 30, 101, 22, 26, 16, 14, 28, 32, 28, 28, 22, 22, 21, 6, 6, 37, 4, 4, 2, 2, 4, 2, 2, 3, 13, 12, 19, 17, 15, 15, 27, 25, 18, 18, 20, 20, 9, 54, 26, 0, 36, 0, 6, 4, 0, 21, 18, 0, 0, 0, 20, 0, 33, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 56, 42, 33, 0, 0, 0, 0, 0, 0, 0, 26, 32, 32, 20, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 12, 0, 32, 0, 12, 0, 12, 0, 24, 0, 4, 4, 12, 0, 12, 0, 20, 0, 4, 0, 5, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 30, 18, 18, 51, 9, 0}
+#endif
+
+#ifndef MAVLINK_MESSAGE_CRCS
+#define MAVLINK_MESSAGE_CRCS {50, 124, 137, 0, 237, 217, 104, 119, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 214, 159, 220, 168, 24, 23, 170, 144, 67, 115, 39, 246, 185, 104, 237, 244, 222, 212, 9, 254, 230, 28, 28, 132, 221, 232, 11, 153, 41, 39, 214, 223, 141, 33, 15, 3, 100, 24, 239, 238, 30, 200, 183, 0, 130, 0, 148, 21, 0, 52, 124, 0, 0, 0, 20, 0, 152, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 231, 183, 63, 54, 0, 0, 0, 0, 0, 0, 0, 175, 102, 158, 208, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 108, 0, 146, 0, 16, 0, 32, 0, 159, 0, 24, 248, 79, 0, 5, 0, 170, 0, 157, 0, 209, 0, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 49, 170, 44, 83, 46, 0}
+#endif
+
+#ifndef MAVLINK_MESSAGE_INFO
+#define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_SYS_STATUS, MAVLINK_MESSAGE_INFO_SYSTEM_TIME, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_PING, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL_ACK, MAVLINK_MESSAGE_INFO_AUTH_KEY, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_SET_MODE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_READ, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_LIST, MAVLINK_MESSAGE_INFO_PARAM_VALUE, MAVLINK_MESSAGE_INFO_PARAM_SET, MAVLINK_MESSAGE_INFO_GPS_RAW_INT, MAVLINK_MESSAGE_INFO_GPS_STATUS, MAVLINK_MESSAGE_INFO_SCALED_IMU, MAVLINK_MESSAGE_INFO_RAW_IMU, MAVLINK_MESSAGE_INFO_RAW_PRESSURE, MAVLINK_MESSAGE_INFO_SCALED_PRESSURE, MAVLINK_MESSAGE_INFO_ATTITUDE, MAVLINK_MESSAGE_INFO_ATTITUDE_QUATERNION, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_INT, MAVLINK_MESSAGE_INFO_RC_CHANNELS_SCALED, MAVLINK_MESSAGE_INFO_RC_CHANNELS_RAW, MAVLINK_MESSAGE_INFO_SERVO_OUTPUT_RAW, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_PARTIAL_LIST, MAVLINK_MESSAGE_INFO_MISSION_WRITE_PARTIAL_LIST, MAVLINK_MESSAGE_INFO_MISSION_ITEM, MAVLINK_MESSAGE_INFO_MISSION_REQUEST, MAVLINK_MESSAGE_INFO_MISSION_SET_CURRENT, MAVLINK_MESSAGE_INFO_MISSION_CURRENT, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_LIST, MAVLINK_MESSAGE_INFO_MISSION_COUNT, MAVLINK_MESSAGE_INFO_MISSION_CLEAR_ALL, MAVLINK_MESSAGE_INFO_MISSION_ITEM_REACHED, MAVLINK_MESSAGE_INFO_MISSION_ACK, MAVLINK_MESSAGE_INFO_SET_GPS_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_GPS_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_SET_LOCAL_POSITION_SETPOINT, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_SETPOINT, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_SETPOINT_INT, MAVLINK_MESSAGE_INFO_SET_GLOBAL_POSITION_SETPOINT_INT, MAVLINK_MESSAGE_INFO_SAFETY_SET_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SAFETY_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_THRUST, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_SPEED_THRUST, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_THRUST_SETPOINT, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT, MAVLINK_MESSAGE_INFO_SET_QUAD_MOTORS_SETPOINT, MAVLINK_MESSAGE_INFO_SET_QUAD_SWARM_ROLL_PITCH_YAW_THRUST, MAVLINK_MESSAGE_INFO_NAV_CONTROLLER_OUTPUT, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_STATE_CORRECTION, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_REQUEST_DATA_STREAM, MAVLINK_MESSAGE_INFO_DATA_STREAM, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_MANUAL_CONTROL, MAVLINK_MESSAGE_INFO_RC_CHANNELS_OVERRIDE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_VFR_HUD, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_COMMAND_LONG, MAVLINK_MESSAGE_INFO_COMMAND_ACK, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED_SYSTEM_GLOBAL_OFFSET, MAVLINK_MESSAGE_INFO_HIL_STATE, MAVLINK_MESSAGE_INFO_HIL_CONTROLS, MAVLINK_MESSAGE_INFO_HIL_RC_INPUTS_RAW, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_OPTICAL_FLOW, MAVLINK_MESSAGE_INFO_GLOBAL_VISION_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_VISION_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_VISION_SPEED_ESTIMATE, MAVLINK_MESSAGE_INFO_VICON_POSITION_ESTIMATE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_OBS_POSITION, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_OBS_VELOCITY, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_OBS_ATTITUDE, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_OBS_WIND, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_OBS_AIR_VELOCITY, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_OBS_BIAS, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_OBS_QFF, MAVLINK_MESSAGE_INFO_OBS_AIR_TEMP, MAVLINK_MESSAGE_INFO_FILT_ROT_VEL, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_LLC_OUT, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_PM_ELEC, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_SYS_Stat, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_CMD_AIRSPEED_CHNG, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_CMD_AIRSPEED_ACK, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}, MAVLINK_MESSAGE_INFO_MEMORY_VECT, MAVLINK_MESSAGE_INFO_DEBUG_VECT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_FLOAT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_INT, MAVLINK_MESSAGE_INFO_STATUSTEXT, MAVLINK_MESSAGE_INFO_DEBUG, {"EMPTY",0,{{"","",MAVLINK_TYPE_CHAR,0,0,0}}}}
+#endif
+
+#include "../protocol.h"
+
+#define MAVLINK_ENABLED_SENSESOAR
+
+#include "../common/common.h"
+
+// MAVLINK VERSION
+
+#ifndef MAVLINK_VERSION
+#define MAVLINK_VERSION 2
+#endif
+
+#if (MAVLINK_VERSION == 0)
+#undef MAVLINK_VERSION
+#define MAVLINK_VERSION 2
+#endif
+
+// ENUM DEFINITIONS
+
+
+/** @brief  Different flight modes  */
+#ifndef HAVE_ENUM_SENSESOAR_MODE
+#define HAVE_ENUM_SENSESOAR_MODE
+enum SENSESOAR_MODE
+{
+	SENSESOAR_MODE_GLIDING=1, /*  | */
+	SENSESOAR_MODE_AUTONOMOUS=2, /*  | */
+	SENSESOAR_MODE_MANUAL=3, /*  | */
+	SENSESOAR_MODE_ENUM_END=4, /*  | */
+};
+#endif
+
+// MESSAGE DEFINITIONS
+#include "./mavlink_msg_obs_position.h"
+#include "./mavlink_msg_obs_velocity.h"
+#include "./mavlink_msg_obs_attitude.h"
+#include "./mavlink_msg_obs_wind.h"
+#include "./mavlink_msg_obs_air_velocity.h"
+#include "./mavlink_msg_obs_bias.h"
+#include "./mavlink_msg_obs_qff.h"
+#include "./mavlink_msg_obs_air_temp.h"
+#include "./mavlink_msg_filt_rot_vel.h"
+#include "./mavlink_msg_llc_out.h"
+#include "./mavlink_msg_pm_elec.h"
+#include "./mavlink_msg_sys_stat.h"
+#include "./mavlink_msg_cmd_airspeed_chng.h"
+#include "./mavlink_msg_cmd_airspeed_ack.h"
+
+#ifdef __cplusplus
+}
+#endif // __cplusplus
+#endif // SENSESOAR_H
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/testsuite.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/testsuite.h
new file mode 100644
index 0000000000000000000000000000000000000000..4c8f73c5b79b648d3544b9da2e8ce83f55f7354c
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/testsuite.h
@@ -0,0 +1,676 @@
+/** @file
+ *	@brief MAVLink comm protocol testsuite generated from sensesoar.xml
+ *	@see http://qgroundcontrol.org/mavlink/
+ */
+#ifndef SENSESOAR_TESTSUITE_H
+#define SENSESOAR_TESTSUITE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef MAVLINK_TEST_ALL
+#define MAVLINK_TEST_ALL
+static void mavlink_test_common(uint8_t, uint8_t, mavlink_message_t *last_msg);
+static void mavlink_test_sensesoar(uint8_t, uint8_t, mavlink_message_t *last_msg);
+
+static void mavlink_test_all(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_test_common(system_id, component_id, last_msg);
+	mavlink_test_sensesoar(system_id, component_id, last_msg);
+}
+#endif
+
+#include "../common/testsuite.h"
+
+
+static void mavlink_test_obs_position(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_obs_position_t packet_in = {
+		963497464,
+	963497672,
+	963497880,
+	};
+	mavlink_obs_position_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        	packet1.lon = packet_in.lon;
+        	packet1.lat = packet_in.lat;
+        	packet1.alt = packet_in.alt;
+        
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_position_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_obs_position_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_position_pack(system_id, component_id, &msg , packet1.lon , packet1.lat , packet1.alt );
+	mavlink_msg_obs_position_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_position_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.lon , packet1.lat , packet1.alt );
+	mavlink_msg_obs_position_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_obs_position_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_position_send(MAVLINK_COMM_1 , packet1.lon , packet1.lat , packet1.alt );
+	mavlink_msg_obs_position_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
+static void mavlink_test_obs_velocity(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_obs_velocity_t packet_in = {
+		{ 17.0, 18.0, 19.0 },
+	};
+	mavlink_obs_velocity_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        
+        	mav_array_memcpy(packet1.vel, packet_in.vel, sizeof(float)*3);
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_velocity_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_obs_velocity_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_velocity_pack(system_id, component_id, &msg , packet1.vel );
+	mavlink_msg_obs_velocity_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_velocity_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.vel );
+	mavlink_msg_obs_velocity_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_obs_velocity_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_velocity_send(MAVLINK_COMM_1 , packet1.vel );
+	mavlink_msg_obs_velocity_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
+static void mavlink_test_obs_attitude(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_obs_attitude_t packet_in = {
+		{ 123.0, 124.0, 125.0, 126.0 },
+	};
+	mavlink_obs_attitude_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        
+        	mav_array_memcpy(packet1.quat, packet_in.quat, sizeof(double)*4);
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_attitude_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_obs_attitude_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_attitude_pack(system_id, component_id, &msg , packet1.quat );
+	mavlink_msg_obs_attitude_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_attitude_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.quat );
+	mavlink_msg_obs_attitude_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_obs_attitude_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_attitude_send(MAVLINK_COMM_1 , packet1.quat );
+	mavlink_msg_obs_attitude_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
+static void mavlink_test_obs_wind(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_obs_wind_t packet_in = {
+		{ 17.0, 18.0, 19.0 },
+	};
+	mavlink_obs_wind_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        
+        	mav_array_memcpy(packet1.wind, packet_in.wind, sizeof(float)*3);
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_wind_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_obs_wind_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_wind_pack(system_id, component_id, &msg , packet1.wind );
+	mavlink_msg_obs_wind_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_wind_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.wind );
+	mavlink_msg_obs_wind_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_obs_wind_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_wind_send(MAVLINK_COMM_1 , packet1.wind );
+	mavlink_msg_obs_wind_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
+static void mavlink_test_obs_air_velocity(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_obs_air_velocity_t packet_in = {
+		17.0,
+	45.0,
+	73.0,
+	};
+	mavlink_obs_air_velocity_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        	packet1.magnitude = packet_in.magnitude;
+        	packet1.aoa = packet_in.aoa;
+        	packet1.slip = packet_in.slip;
+        
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_air_velocity_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_obs_air_velocity_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_air_velocity_pack(system_id, component_id, &msg , packet1.magnitude , packet1.aoa , packet1.slip );
+	mavlink_msg_obs_air_velocity_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_air_velocity_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.magnitude , packet1.aoa , packet1.slip );
+	mavlink_msg_obs_air_velocity_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_obs_air_velocity_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_air_velocity_send(MAVLINK_COMM_1 , packet1.magnitude , packet1.aoa , packet1.slip );
+	mavlink_msg_obs_air_velocity_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
+static void mavlink_test_obs_bias(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_obs_bias_t packet_in = {
+		{ 17.0, 18.0, 19.0 },
+	{ 101.0, 102.0, 103.0 },
+	};
+	mavlink_obs_bias_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        
+        	mav_array_memcpy(packet1.accBias, packet_in.accBias, sizeof(float)*3);
+        	mav_array_memcpy(packet1.gyroBias, packet_in.gyroBias, sizeof(float)*3);
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_bias_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_obs_bias_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_bias_pack(system_id, component_id, &msg , packet1.accBias , packet1.gyroBias );
+	mavlink_msg_obs_bias_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_bias_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.accBias , packet1.gyroBias );
+	mavlink_msg_obs_bias_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_obs_bias_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_bias_send(MAVLINK_COMM_1 , packet1.accBias , packet1.gyroBias );
+	mavlink_msg_obs_bias_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
+static void mavlink_test_obs_qff(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_obs_qff_t packet_in = {
+		17.0,
+	};
+	mavlink_obs_qff_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        	packet1.qff = packet_in.qff;
+        
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_qff_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_obs_qff_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_qff_pack(system_id, component_id, &msg , packet1.qff );
+	mavlink_msg_obs_qff_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_qff_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.qff );
+	mavlink_msg_obs_qff_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_obs_qff_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_qff_send(MAVLINK_COMM_1 , packet1.qff );
+	mavlink_msg_obs_qff_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
+static void mavlink_test_obs_air_temp(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_obs_air_temp_t packet_in = {
+		17.0,
+	};
+	mavlink_obs_air_temp_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        	packet1.airT = packet_in.airT;
+        
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_air_temp_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_obs_air_temp_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_air_temp_pack(system_id, component_id, &msg , packet1.airT );
+	mavlink_msg_obs_air_temp_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_air_temp_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.airT );
+	mavlink_msg_obs_air_temp_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_obs_air_temp_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_obs_air_temp_send(MAVLINK_COMM_1 , packet1.airT );
+	mavlink_msg_obs_air_temp_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
+static void mavlink_test_filt_rot_vel(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_filt_rot_vel_t packet_in = {
+		{ 17.0, 18.0, 19.0 },
+	};
+	mavlink_filt_rot_vel_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        
+        	mav_array_memcpy(packet1.rotVel, packet_in.rotVel, sizeof(float)*3);
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_filt_rot_vel_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_filt_rot_vel_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_filt_rot_vel_pack(system_id, component_id, &msg , packet1.rotVel );
+	mavlink_msg_filt_rot_vel_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_filt_rot_vel_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.rotVel );
+	mavlink_msg_filt_rot_vel_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_filt_rot_vel_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_filt_rot_vel_send(MAVLINK_COMM_1 , packet1.rotVel );
+	mavlink_msg_filt_rot_vel_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
+static void mavlink_test_llc_out(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_llc_out_t packet_in = {
+		{ 17235, 17236, 17237, 17238 },
+	{ 17651, 17652 },
+	};
+	mavlink_llc_out_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        
+        	mav_array_memcpy(packet1.servoOut, packet_in.servoOut, sizeof(int16_t)*4);
+        	mav_array_memcpy(packet1.MotorOut, packet_in.MotorOut, sizeof(int16_t)*2);
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_llc_out_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_llc_out_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_llc_out_pack(system_id, component_id, &msg , packet1.servoOut , packet1.MotorOut );
+	mavlink_msg_llc_out_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_llc_out_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.servoOut , packet1.MotorOut );
+	mavlink_msg_llc_out_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_llc_out_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_llc_out_send(MAVLINK_COMM_1 , packet1.servoOut , packet1.MotorOut );
+	mavlink_msg_llc_out_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
+static void mavlink_test_pm_elec(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_pm_elec_t packet_in = {
+		17.0,
+	45.0,
+	{ 73.0, 74.0, 75.0 },
+	};
+	mavlink_pm_elec_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        	packet1.PwCons = packet_in.PwCons;
+        	packet1.BatStat = packet_in.BatStat;
+        
+        	mav_array_memcpy(packet1.PwGen, packet_in.PwGen, sizeof(float)*3);
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_pm_elec_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_pm_elec_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_pm_elec_pack(system_id, component_id, &msg , packet1.PwCons , packet1.BatStat , packet1.PwGen );
+	mavlink_msg_pm_elec_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_pm_elec_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.PwCons , packet1.BatStat , packet1.PwGen );
+	mavlink_msg_pm_elec_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_pm_elec_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_pm_elec_send(MAVLINK_COMM_1 , packet1.PwCons , packet1.BatStat , packet1.PwGen );
+	mavlink_msg_pm_elec_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
+static void mavlink_test_sys_stat(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_sys_stat_t packet_in = {
+		5,
+	72,
+	139,
+	206,
+	};
+	mavlink_sys_stat_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        	packet1.gps = packet_in.gps;
+        	packet1.act = packet_in.act;
+        	packet1.mod = packet_in.mod;
+        	packet1.commRssi = packet_in.commRssi;
+        
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_sys_stat_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_sys_stat_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_sys_stat_pack(system_id, component_id, &msg , packet1.gps , packet1.act , packet1.mod , packet1.commRssi );
+	mavlink_msg_sys_stat_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_sys_stat_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.gps , packet1.act , packet1.mod , packet1.commRssi );
+	mavlink_msg_sys_stat_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_sys_stat_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_sys_stat_send(MAVLINK_COMM_1 , packet1.gps , packet1.act , packet1.mod , packet1.commRssi );
+	mavlink_msg_sys_stat_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
+static void mavlink_test_cmd_airspeed_chng(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_cmd_airspeed_chng_t packet_in = {
+		17.0,
+	17,
+	};
+	mavlink_cmd_airspeed_chng_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        	packet1.spCmd = packet_in.spCmd;
+        	packet1.target = packet_in.target;
+        
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_cmd_airspeed_chng_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_cmd_airspeed_chng_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_cmd_airspeed_chng_pack(system_id, component_id, &msg , packet1.target , packet1.spCmd );
+	mavlink_msg_cmd_airspeed_chng_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_cmd_airspeed_chng_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.target , packet1.spCmd );
+	mavlink_msg_cmd_airspeed_chng_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_cmd_airspeed_chng_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_cmd_airspeed_chng_send(MAVLINK_COMM_1 , packet1.target , packet1.spCmd );
+	mavlink_msg_cmd_airspeed_chng_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
+static void mavlink_test_cmd_airspeed_ack(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_message_t msg;
+        uint8_t buffer[MAVLINK_MAX_PACKET_LEN];
+        uint16_t i;
+	mavlink_cmd_airspeed_ack_t packet_in = {
+		17.0,
+	17,
+	};
+	mavlink_cmd_airspeed_ack_t packet1, packet2;
+        memset(&packet1, 0, sizeof(packet1));
+        	packet1.spCmd = packet_in.spCmd;
+        	packet1.ack = packet_in.ack;
+        
+        
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_cmd_airspeed_ack_encode(system_id, component_id, &msg, &packet1);
+	mavlink_msg_cmd_airspeed_ack_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_cmd_airspeed_ack_pack(system_id, component_id, &msg , packet1.spCmd , packet1.ack );
+	mavlink_msg_cmd_airspeed_ack_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_cmd_airspeed_ack_pack_chan(system_id, component_id, MAVLINK_COMM_0, &msg , packet1.spCmd , packet1.ack );
+	mavlink_msg_cmd_airspeed_ack_decode(&msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+
+        memset(&packet2, 0, sizeof(packet2));
+        mavlink_msg_to_send_buffer(buffer, &msg);
+        for (i=0; i<mavlink_msg_get_send_buffer_length(&msg); i++) {
+        	comm_send_ch(MAVLINK_COMM_0, buffer[i]);
+        }
+	mavlink_msg_cmd_airspeed_ack_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+        
+        memset(&packet2, 0, sizeof(packet2));
+	mavlink_msg_cmd_airspeed_ack_send(MAVLINK_COMM_1 , packet1.spCmd , packet1.ack );
+	mavlink_msg_cmd_airspeed_ack_decode(last_msg, &packet2);
+        MAVLINK_ASSERT(memcmp(&packet1, &packet2, sizeof(packet1)) == 0);
+}
+
+static void mavlink_test_sensesoar(uint8_t system_id, uint8_t component_id, mavlink_message_t *last_msg)
+{
+	mavlink_test_obs_position(system_id, component_id, last_msg);
+	mavlink_test_obs_velocity(system_id, component_id, last_msg);
+	mavlink_test_obs_attitude(system_id, component_id, last_msg);
+	mavlink_test_obs_wind(system_id, component_id, last_msg);
+	mavlink_test_obs_air_velocity(system_id, component_id, last_msg);
+	mavlink_test_obs_bias(system_id, component_id, last_msg);
+	mavlink_test_obs_qff(system_id, component_id, last_msg);
+	mavlink_test_obs_air_temp(system_id, component_id, last_msg);
+	mavlink_test_filt_rot_vel(system_id, component_id, last_msg);
+	mavlink_test_llc_out(system_id, component_id, last_msg);
+	mavlink_test_pm_elec(system_id, component_id, last_msg);
+	mavlink_test_sys_stat(system_id, component_id, last_msg);
+	mavlink_test_cmd_airspeed_chng(system_id, component_id, last_msg);
+	mavlink_test_cmd_airspeed_ack(system_id, component_id, last_msg);
+}
+
+#ifdef __cplusplus
+}
+#endif // __cplusplus
+#endif // SENSESOAR_TESTSUITE_H
diff --git a/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/version.h b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/version.h
new file mode 100644
index 0000000000000000000000000000000000000000..7874a44b668bc6fccdc62055342b8ae4f2c16b97
--- /dev/null
+++ b/libraries/GCS_MAVLink/include/mavlink/v1.0/sensesoar/version.h
@@ -0,0 +1,12 @@
+/** @file
+ *	@brief MAVLink comm protocol built from sensesoar.xml
+ *	@see http://pixhawk.ethz.ch/software/mavlink
+ */
+#ifndef MAVLINK_VERSION_H
+#define MAVLINK_VERSION_H
+
+#define MAVLINK_BUILD_DATE "Thu Apr 19 15:39:58 2012"
+#define MAVLINK_WIRE_PROTOCOL_VERSION "1.0"
+#define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 101
+ 
+#endif // MAVLINK_VERSION_H
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_dcm.h b/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_dcm.h
deleted file mode 100644
index a22663f0ffccc1ac6418d9fa5fdbf990022da6d0..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_dcm.h
+++ /dev/null
@@ -1,276 +0,0 @@
-// MESSAGE DCM PACKING
-
-#define MAVLINK_MSG_ID_DCM 163
-
-typedef struct __mavlink_dcm_t
-{
- float omegaIx; ///< X gyro drift estimate rad/s
- float omegaIy; ///< Y gyro drift estimate rad/s
- float omegaIz; ///< Z gyro drift estimate rad/s
- float accel_weight; ///< average accel_weight
- float renorm_val; ///< average renormalisation value
- float error_rp; ///< average error_roll_pitch value
- float error_yaw; ///< average error_yaw value
-} mavlink_dcm_t;
-
-#define MAVLINK_MSG_ID_DCM_LEN 28
-#define MAVLINK_MSG_ID_163_LEN 28
-
-
-
-#define MAVLINK_MESSAGE_INFO_DCM { \
-	"DCM", \
-	7, \
-	{  { "omegaIx", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_dcm_t, omegaIx) }, \
-         { "omegaIy", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_dcm_t, omegaIy) }, \
-         { "omegaIz", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_dcm_t, omegaIz) }, \
-         { "accel_weight", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_dcm_t, accel_weight) }, \
-         { "renorm_val", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_dcm_t, renorm_val) }, \
-         { "error_rp", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_dcm_t, error_rp) }, \
-         { "error_yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_dcm_t, error_yaw) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a dcm 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 omegaIx X gyro drift estimate rad/s
- * @param omegaIy Y gyro drift estimate rad/s
- * @param omegaIz Z gyro drift estimate rad/s
- * @param accel_weight average accel_weight
- * @param renorm_val average renormalisation value
- * @param error_rp average error_roll_pitch value
- * @param error_yaw average error_yaw value
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_dcm_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       float omegaIx, float omegaIy, float omegaIz, float accel_weight, float renorm_val, float error_rp, float error_yaw)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[28];
-	_mav_put_float(buf, 0, omegaIx);
-	_mav_put_float(buf, 4, omegaIy);
-	_mav_put_float(buf, 8, omegaIz);
-	_mav_put_float(buf, 12, accel_weight);
-	_mav_put_float(buf, 16, renorm_val);
-	_mav_put_float(buf, 20, error_rp);
-	_mav_put_float(buf, 24, error_yaw);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
-#else
-	mavlink_dcm_t packet;
-	packet.omegaIx = omegaIx;
-	packet.omegaIy = omegaIy;
-	packet.omegaIz = omegaIz;
-	packet.accel_weight = accel_weight;
-	packet.renorm_val = renorm_val;
-	packet.error_rp = error_rp;
-	packet.error_yaw = error_yaw;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_DCM;
-	return mavlink_finalize_message(msg, system_id, component_id, 28, 205);
-}
-
-/**
- * @brief Pack a dcm 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
- * @param omegaIx X gyro drift estimate rad/s
- * @param omegaIy Y gyro drift estimate rad/s
- * @param omegaIz Z gyro drift estimate rad/s
- * @param accel_weight average accel_weight
- * @param renorm_val average renormalisation value
- * @param error_rp average error_roll_pitch value
- * @param error_yaw average error_yaw value
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_dcm_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           float omegaIx,float omegaIy,float omegaIz,float accel_weight,float renorm_val,float error_rp,float error_yaw)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[28];
-	_mav_put_float(buf, 0, omegaIx);
-	_mav_put_float(buf, 4, omegaIy);
-	_mav_put_float(buf, 8, omegaIz);
-	_mav_put_float(buf, 12, accel_weight);
-	_mav_put_float(buf, 16, renorm_val);
-	_mav_put_float(buf, 20, error_rp);
-	_mav_put_float(buf, 24, error_yaw);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 28);
-#else
-	mavlink_dcm_t packet;
-	packet.omegaIx = omegaIx;
-	packet.omegaIy = omegaIy;
-	packet.omegaIz = omegaIz;
-	packet.accel_weight = accel_weight;
-	packet.renorm_val = renorm_val;
-	packet.error_rp = error_rp;
-	packet.error_yaw = error_yaw;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 28);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_DCM;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 28, 205);
-}
-
-/**
- * @brief Encode a dcm 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 dcm C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_dcm_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_dcm_t* dcm)
-{
-	return mavlink_msg_dcm_pack(system_id, component_id, msg, dcm->omegaIx, dcm->omegaIy, dcm->omegaIz, dcm->accel_weight, dcm->renorm_val, dcm->error_rp, dcm->error_yaw);
-}
-
-/**
- * @brief Send a dcm message
- * @param chan MAVLink channel to send the message
- *
- * @param omegaIx X gyro drift estimate rad/s
- * @param omegaIy Y gyro drift estimate rad/s
- * @param omegaIz Z gyro drift estimate rad/s
- * @param accel_weight average accel_weight
- * @param renorm_val average renormalisation value
- * @param error_rp average error_roll_pitch value
- * @param error_yaw average error_yaw value
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_dcm_send(mavlink_channel_t chan, float omegaIx, float omegaIy, float omegaIz, float accel_weight, float renorm_val, float error_rp, float error_yaw)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[28];
-	_mav_put_float(buf, 0, omegaIx);
-	_mav_put_float(buf, 4, omegaIy);
-	_mav_put_float(buf, 8, omegaIz);
-	_mav_put_float(buf, 12, accel_weight);
-	_mav_put_float(buf, 16, renorm_val);
-	_mav_put_float(buf, 20, error_rp);
-	_mav_put_float(buf, 24, error_yaw);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DCM, buf, 28, 205);
-#else
-	mavlink_dcm_t packet;
-	packet.omegaIx = omegaIx;
-	packet.omegaIy = omegaIy;
-	packet.omegaIz = omegaIz;
-	packet.accel_weight = accel_weight;
-	packet.renorm_val = renorm_val;
-	packet.error_rp = error_rp;
-	packet.error_yaw = error_yaw;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_DCM, (const char *)&packet, 28, 205);
-#endif
-}
-
-#endif
-
-// MESSAGE DCM UNPACKING
-
-
-/**
- * @brief Get field omegaIx from dcm message
- *
- * @return X gyro drift estimate rad/s
- */
-static inline float mavlink_msg_dcm_get_omegaIx(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  0);
-}
-
-/**
- * @brief Get field omegaIy from dcm message
- *
- * @return Y gyro drift estimate rad/s
- */
-static inline float mavlink_msg_dcm_get_omegaIy(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  4);
-}
-
-/**
- * @brief Get field omegaIz from dcm message
- *
- * @return Z gyro drift estimate rad/s
- */
-static inline float mavlink_msg_dcm_get_omegaIz(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  8);
-}
-
-/**
- * @brief Get field accel_weight from dcm message
- *
- * @return average accel_weight
- */
-static inline float mavlink_msg_dcm_get_accel_weight(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  12);
-}
-
-/**
- * @brief Get field renorm_val from dcm message
- *
- * @return average renormalisation value
- */
-static inline float mavlink_msg_dcm_get_renorm_val(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  16);
-}
-
-/**
- * @brief Get field error_rp from dcm message
- *
- * @return average error_roll_pitch value
- */
-static inline float mavlink_msg_dcm_get_error_rp(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  20);
-}
-
-/**
- * @brief Get field error_yaw from dcm message
- *
- * @return average error_yaw value
- */
-static inline float mavlink_msg_dcm_get_error_yaw(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  24);
-}
-
-/**
- * @brief Decode a dcm message into a struct
- *
- * @param msg The message to decode
- * @param dcm C-struct to decode the message contents into
- */
-static inline void mavlink_msg_dcm_decode(const mavlink_message_t* msg, mavlink_dcm_t* dcm)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	dcm->omegaIx = mavlink_msg_dcm_get_omegaIx(msg);
-	dcm->omegaIy = mavlink_msg_dcm_get_omegaIy(msg);
-	dcm->omegaIz = mavlink_msg_dcm_get_omegaIz(msg);
-	dcm->accel_weight = mavlink_msg_dcm_get_accel_weight(msg);
-	dcm->renorm_val = mavlink_msg_dcm_get_renorm_val(msg);
-	dcm->error_rp = mavlink_msg_dcm_get_error_rp(msg);
-	dcm->error_yaw = mavlink_msg_dcm_get_error_yaw(msg);
-#else
-	memcpy(dcm, _MAV_PAYLOAD(msg), 28);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_fenced_fetch_point.h b/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_fenced_fetch_point.h
deleted file mode 100644
index 2710ff4a9a36c327511add959a052e725c072fe0..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_fenced_fetch_point.h
+++ /dev/null
@@ -1,144 +0,0 @@
-// MESSAGE FENCED_FETCH_POINT PACKING
-
-#define MAVLINK_MSG_ID_FENCED_FETCH_POINT 161
-
-typedef struct __mavlink_fenced_fetch_point_t
-{
- uint8_t idx; ///< point index (first point is 1, 0 is for return point)
-} mavlink_fenced_fetch_point_t;
-
-#define MAVLINK_MSG_ID_FENCED_FETCH_POINT_LEN 1
-#define MAVLINK_MSG_ID_161_LEN 1
-
-
-
-#define MAVLINK_MESSAGE_INFO_FENCED_FETCH_POINT { \
-	"FENCED_FETCH_POINT", \
-	1, \
-	{  { "idx", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_fenced_fetch_point_t, idx) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a fenced_fetch_point 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 idx point index (first point is 1, 0 is for return point)
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_fenced_fetch_point_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t idx)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[1];
-	_mav_put_uint8_t(buf, 0, idx);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 1);
-#else
-	mavlink_fenced_fetch_point_t packet;
-	packet.idx = idx;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 1);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_FENCED_FETCH_POINT;
-	return mavlink_finalize_message(msg, system_id, component_id, 1, 33);
-}
-
-/**
- * @brief Pack a fenced_fetch_point 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
- * @param idx point index (first point is 1, 0 is for return point)
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_fenced_fetch_point_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t idx)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[1];
-	_mav_put_uint8_t(buf, 0, idx);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 1);
-#else
-	mavlink_fenced_fetch_point_t packet;
-	packet.idx = idx;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 1);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_FENCED_FETCH_POINT;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 1, 33);
-}
-
-/**
- * @brief Encode a fenced_fetch_point 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 fenced_fetch_point C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_fenced_fetch_point_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_fenced_fetch_point_t* fenced_fetch_point)
-{
-	return mavlink_msg_fenced_fetch_point_pack(system_id, component_id, msg, fenced_fetch_point->idx);
-}
-
-/**
- * @brief Send a fenced_fetch_point message
- * @param chan MAVLink channel to send the message
- *
- * @param idx point index (first point is 1, 0 is for return point)
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_fenced_fetch_point_send(mavlink_channel_t chan, uint8_t idx)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[1];
-	_mav_put_uint8_t(buf, 0, idx);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FENCED_FETCH_POINT, buf, 1, 33);
-#else
-	mavlink_fenced_fetch_point_t packet;
-	packet.idx = idx;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FENCED_FETCH_POINT, (const char *)&packet, 1, 33);
-#endif
-}
-
-#endif
-
-// MESSAGE FENCED_FETCH_POINT UNPACKING
-
-
-/**
- * @brief Get field idx from fenced_fetch_point message
- *
- * @return point index (first point is 1, 0 is for return point)
- */
-static inline uint8_t mavlink_msg_fenced_fetch_point_get_idx(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  0);
-}
-
-/**
- * @brief Decode a fenced_fetch_point message into a struct
- *
- * @param msg The message to decode
- * @param fenced_fetch_point C-struct to decode the message contents into
- */
-static inline void mavlink_msg_fenced_fetch_point_decode(const mavlink_message_t* msg, mavlink_fenced_fetch_point_t* fenced_fetch_point)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	fenced_fetch_point->idx = mavlink_msg_fenced_fetch_point_get_idx(msg);
-#else
-	memcpy(fenced_fetch_point, _MAV_PAYLOAD(msg), 1);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_fenced_point.h b/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_fenced_point.h
deleted file mode 100644
index 46cf41fe0053087628412248e6bd216a44c496cb..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/ardupilotmega/mavlink_msg_fenced_point.h
+++ /dev/null
@@ -1,210 +0,0 @@
-// MESSAGE FENCED_POINT PACKING
-
-#define MAVLINK_MSG_ID_FENCED_POINT 160
-
-typedef struct __mavlink_fenced_point_t
-{
- float lat; ///< Latitude of point
- float lng; ///< Longitude of point
- uint8_t idx; ///< point index (first point is 1, 0 is for return point)
- uint8_t count; ///< total number of points (for sanity checking)
-} mavlink_fenced_point_t;
-
-#define MAVLINK_MSG_ID_FENCED_POINT_LEN 10
-#define MAVLINK_MSG_ID_160_LEN 10
-
-
-
-#define MAVLINK_MESSAGE_INFO_FENCED_POINT { \
-	"FENCED_POINT", \
-	4, \
-	{  { "lat", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_fenced_point_t, lat) }, \
-         { "lng", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_fenced_point_t, lng) }, \
-         { "idx", NULL, MAVLINK_TYPE_UINT8_T, 0, 8, offsetof(mavlink_fenced_point_t, idx) }, \
-         { "count", NULL, MAVLINK_TYPE_UINT8_T, 0, 9, offsetof(mavlink_fenced_point_t, count) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a fenced_point 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 idx point index (first point is 1, 0 is for return point)
- * @param count total number of points (for sanity checking)
- * @param lat Latitude of point
- * @param lng Longitude of point
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_fenced_point_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t idx, uint8_t count, float lat, float lng)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[10];
-	_mav_put_float(buf, 0, lat);
-	_mav_put_float(buf, 4, lng);
-	_mav_put_uint8_t(buf, 8, idx);
-	_mav_put_uint8_t(buf, 9, count);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 10);
-#else
-	mavlink_fenced_point_t packet;
-	packet.lat = lat;
-	packet.lng = lng;
-	packet.idx = idx;
-	packet.count = count;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 10);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_FENCED_POINT;
-	return mavlink_finalize_message(msg, system_id, component_id, 10, 225);
-}
-
-/**
- * @brief Pack a fenced_point 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
- * @param idx point index (first point is 1, 0 is for return point)
- * @param count total number of points (for sanity checking)
- * @param lat Latitude of point
- * @param lng Longitude of point
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_fenced_point_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t idx,uint8_t count,float lat,float lng)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[10];
-	_mav_put_float(buf, 0, lat);
-	_mav_put_float(buf, 4, lng);
-	_mav_put_uint8_t(buf, 8, idx);
-	_mav_put_uint8_t(buf, 9, count);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 10);
-#else
-	mavlink_fenced_point_t packet;
-	packet.lat = lat;
-	packet.lng = lng;
-	packet.idx = idx;
-	packet.count = count;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 10);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_FENCED_POINT;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 10, 225);
-}
-
-/**
- * @brief Encode a fenced_point 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 fenced_point C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_fenced_point_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_fenced_point_t* fenced_point)
-{
-	return mavlink_msg_fenced_point_pack(system_id, component_id, msg, fenced_point->idx, fenced_point->count, fenced_point->lat, fenced_point->lng);
-}
-
-/**
- * @brief Send a fenced_point message
- * @param chan MAVLink channel to send the message
- *
- * @param idx point index (first point is 1, 0 is for return point)
- * @param count total number of points (for sanity checking)
- * @param lat Latitude of point
- * @param lng Longitude of point
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_fenced_point_send(mavlink_channel_t chan, uint8_t idx, uint8_t count, float lat, float lng)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[10];
-	_mav_put_float(buf, 0, lat);
-	_mav_put_float(buf, 4, lng);
-	_mav_put_uint8_t(buf, 8, idx);
-	_mav_put_uint8_t(buf, 9, count);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FENCED_POINT, buf, 10, 225);
-#else
-	mavlink_fenced_point_t packet;
-	packet.lat = lat;
-	packet.lng = lng;
-	packet.idx = idx;
-	packet.count = count;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_FENCED_POINT, (const char *)&packet, 10, 225);
-#endif
-}
-
-#endif
-
-// MESSAGE FENCED_POINT UNPACKING
-
-
-/**
- * @brief Get field idx from fenced_point message
- *
- * @return point index (first point is 1, 0 is for return point)
- */
-static inline uint8_t mavlink_msg_fenced_point_get_idx(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  8);
-}
-
-/**
- * @brief Get field count from fenced_point message
- *
- * @return total number of points (for sanity checking)
- */
-static inline uint8_t mavlink_msg_fenced_point_get_count(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  9);
-}
-
-/**
- * @brief Get field lat from fenced_point message
- *
- * @return Latitude of point
- */
-static inline float mavlink_msg_fenced_point_get_lat(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  0);
-}
-
-/**
- * @brief Get field lng from fenced_point message
- *
- * @return Longitude of point
- */
-static inline float mavlink_msg_fenced_point_get_lng(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  4);
-}
-
-/**
- * @brief Decode a fenced_point message into a struct
- *
- * @param msg The message to decode
- * @param fenced_point C-struct to decode the message contents into
- */
-static inline void mavlink_msg_fenced_point_decode(const mavlink_message_t* msg, mavlink_fenced_point_t* fenced_point)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	fenced_point->lat = mavlink_msg_fenced_point_get_lat(msg);
-	fenced_point->lng = mavlink_msg_fenced_point_get_lng(msg);
-	fenced_point->idx = mavlink_msg_fenced_point_get_idx(msg);
-	fenced_point->count = mavlink_msg_fenced_point_get_count(msg);
-#else
-	memcpy(fenced_point, _MAV_PAYLOAD(msg), 10);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/common.h b/libraries/GCS_MAVLink/include_v1.0/common/common.h
deleted file mode 100644
index e4b681c56cefe78d70b2e10a4a9bd6d89e6f7e49..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/common.h
+++ /dev/null
@@ -1,429 +0,0 @@
-/** @file
- *	@brief MAVLink comm protocol generated from common.xml
- *	@see http://qgroundcontrol.org/mavlink/
- */
-#ifndef COMMON_H
-#define COMMON_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// MESSAGE LENGTHS AND CRCS
-
-#ifndef MAVLINK_MESSAGE_LENGTHS
-#define MAVLINK_MESSAGE_LENGTHS {9, 31, 12, 0, 14, 28, 3, 32, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 25, 23, 30, 101, 22, 26, 16, 14, 28, 32, 28, 28, 22, 22, 21, 6, 6, 37, 4, 4, 2, 2, 4, 2, 2, 3, 13, 12, 19, 17, 15, 15, 27, 25, 18, 18, 20, 20, 0, 0, 26, 0, 36, 0, 6, 4, 0, 21, 18, 0, 0, 0, 20, 0, 33, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 42, 33, 0, 0, 0, 0, 0, 0, 0, 18, 32, 32, 20, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 30, 18, 18, 51, 9, 3}
-#endif
-
-#ifndef MAVLINK_MESSAGE_CRCS
-#define MAVLINK_MESSAGE_CRCS {50, 124, 137, 0, 237, 217, 104, 119, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 214, 159, 220, 168, 24, 23, 170, 144, 67, 115, 39, 246, 185, 104, 237, 244, 222, 212, 9, 254, 230, 28, 28, 132, 221, 232, 11, 153, 41, 39, 214, 223, 141, 33, 15, 3, 100, 24, 239, 238, 0, 0, 183, 0, 130, 0, 148, 21, 0, 52, 124, 0, 0, 0, 20, 0, 152, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 63, 54, 0, 0, 0, 0, 0, 0, 0, 19, 102, 158, 208, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 49, 170, 44, 83, 46, 247}
-#endif
-
-#ifndef MAVLINK_MESSAGE_INFO
-#define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_SYS_STATUS, MAVLINK_MESSAGE_INFO_SYSTEM_TIME, {NULL}, MAVLINK_MESSAGE_INFO_PING, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL, MAVLINK_MESSAGE_INFO_CHANGE_OPERATOR_CONTROL_ACK, MAVLINK_MESSAGE_INFO_AUTH_KEY, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_SET_MODE, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_READ, MAVLINK_MESSAGE_INFO_PARAM_REQUEST_LIST, MAVLINK_MESSAGE_INFO_PARAM_VALUE, MAVLINK_MESSAGE_INFO_PARAM_SET, MAVLINK_MESSAGE_INFO_GPS_RAW_INT, MAVLINK_MESSAGE_INFO_GPS_STATUS, MAVLINK_MESSAGE_INFO_SCALED_IMU, MAVLINK_MESSAGE_INFO_RAW_IMU, MAVLINK_MESSAGE_INFO_RAW_PRESSURE, MAVLINK_MESSAGE_INFO_SCALED_PRESSURE, MAVLINK_MESSAGE_INFO_ATTITUDE, MAVLINK_MESSAGE_INFO_ATTITUDE_QUATERNION, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_NED, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_INT, MAVLINK_MESSAGE_INFO_RC_CHANNELS_SCALED, MAVLINK_MESSAGE_INFO_RC_CHANNELS_RAW, MAVLINK_MESSAGE_INFO_SERVO_OUTPUT_RAW, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_PARTIAL_LIST, MAVLINK_MESSAGE_INFO_MISSION_WRITE_PARTIAL_LIST, MAVLINK_MESSAGE_INFO_MISSION_ITEM, MAVLINK_MESSAGE_INFO_MISSION_REQUEST, MAVLINK_MESSAGE_INFO_MISSION_SET_CURRENT, MAVLINK_MESSAGE_INFO_MISSION_CURRENT, MAVLINK_MESSAGE_INFO_MISSION_REQUEST_LIST, MAVLINK_MESSAGE_INFO_MISSION_COUNT, MAVLINK_MESSAGE_INFO_MISSION_CLEAR_ALL, MAVLINK_MESSAGE_INFO_MISSION_ITEM_REACHED, MAVLINK_MESSAGE_INFO_MISSION_ACK, MAVLINK_MESSAGE_INFO_SET_GPS_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_GPS_GLOBAL_ORIGIN, MAVLINK_MESSAGE_INFO_SET_LOCAL_POSITION_SETPOINT, MAVLINK_MESSAGE_INFO_LOCAL_POSITION_SETPOINT, MAVLINK_MESSAGE_INFO_GLOBAL_POSITION_SETPOINT_INT, MAVLINK_MESSAGE_INFO_SET_GLOBAL_POSITION_SETPOINT_INT, MAVLINK_MESSAGE_INFO_SAFETY_SET_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SAFETY_ALLOWED_AREA, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_THRUST, MAVLINK_MESSAGE_INFO_SET_ROLL_PITCH_YAW_SPEED_THRUST, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_THRUST_SETPOINT, MAVLINK_MESSAGE_INFO_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_NAV_CONTROLLER_OUTPUT, {NULL}, MAVLINK_MESSAGE_INFO_STATE_CORRECTION, {NULL}, MAVLINK_MESSAGE_INFO_REQUEST_DATA_STREAM, MAVLINK_MESSAGE_INFO_DATA_STREAM, {NULL}, MAVLINK_MESSAGE_INFO_MANUAL_CONTROL, MAVLINK_MESSAGE_INFO_RC_CHANNELS_OVERRIDE, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_VFR_HUD, {NULL}, MAVLINK_MESSAGE_INFO_COMMAND_LONG, MAVLINK_MESSAGE_INFO_COMMAND_ACK, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_HIL_STATE, MAVLINK_MESSAGE_INFO_HIL_CONTROLS, MAVLINK_MESSAGE_INFO_HIL_RC_INPUTS_RAW, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_OPTICAL_FLOW, MAVLINK_MESSAGE_INFO_GLOBAL_VISION_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_VISION_POSITION_ESTIMATE, MAVLINK_MESSAGE_INFO_VISION_SPEED_ESTIMATE, MAVLINK_MESSAGE_INFO_VICON_POSITION_ESTIMATE, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, MAVLINK_MESSAGE_INFO_MEMORY_VECT, MAVLINK_MESSAGE_INFO_DEBUG_VECT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_FLOAT, MAVLINK_MESSAGE_INFO_NAMED_VALUE_INT, MAVLINK_MESSAGE_INFO_STATUSTEXT, MAVLINK_MESSAGE_INFO_DEBUG, MAVLINK_MESSAGE_INFO_EXTENDED_MESSAGE}
-#endif
-
-#include "../protocol.h"
-
-#define MAVLINK_ENABLED_COMMON
-
-
-
-// MAVLINK VERSION
-
-#ifndef MAVLINK_VERSION
-#define MAVLINK_VERSION 3
-#endif
-
-#if (MAVLINK_VERSION == 0)
-#undef MAVLINK_VERSION
-#define MAVLINK_VERSION 3
-#endif
-
-// ENUM DEFINITIONS
-
-
-/** @brief Micro air vehicle / autopilot classes. This identifies the individual model. */
-#ifndef HAVE_ENUM_MAV_AUTOPILOT
-#define HAVE_ENUM_MAV_AUTOPILOT
-enum MAV_AUTOPILOT
-{
-	MAV_AUTOPILOT_GENERIC=0, /* Generic autopilot, full support for everything | */
-	MAV_AUTOPILOT_PIXHAWK=1, /* PIXHAWK autopilot, http://pixhawk.ethz.ch | */
-	MAV_AUTOPILOT_SLUGS=2, /* SLUGS autopilot, http://slugsuav.soe.ucsc.edu | */
-	MAV_AUTOPILOT_ARDUPILOTMEGA=3, /* ArduPilotMega / ArduCopter, http://diydrones.com | */
-	MAV_AUTOPILOT_OPENPILOT=4, /* OpenPilot, http://openpilot.org | */
-	MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY=5, /* Generic autopilot only supporting simple waypoints | */
-	MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY=6, /* Generic autopilot supporting waypoints and other simple navigation commands | */
-	MAV_AUTOPILOT_GENERIC_MISSION_FULL=7, /* Generic autopilot supporting the full mission command set | */
-	MAV_AUTOPILOT_INVALID=8, /* No valid autopilot, e.g. a GCS or other MAVLink component | */
-	MAV_AUTOPILOT_PPZ=9, /* PPZ UAV - http://nongnu.org/paparazzi | */
-	MAV_AUTOPILOT_UDB=10, /* UAV Dev Board | */
-	MAV_AUTOPILOT_FP=11, /* FlexiPilot | */
-	MAV_AUTOPILOT_ENUM_END=12, /*  | */
-};
-#endif
-
-/** @brief These flags encode the MAV mode. */
-#ifndef HAVE_ENUM_MAV_MODE_FLAG
-#define HAVE_ENUM_MAV_MODE_FLAG
-enum MAV_MODE_FLAG
-{
-	MAV_MODE_FLAG_CUSTOM_MODE_ENABLED=1, /* 0b00000001 Reserved for future use. | */
-	MAV_MODE_FLAG_TEST_ENABLED=2, /* 0b00000010 system has a test mode enabled. This flag is intended for temporary system tests and should not be used for stable implementations. | */
-	MAV_MODE_FLAG_AUTO_ENABLED=4, /* 0b00000100 autonomous mode enabled, system finds its own goal positions. Guided flag can be set or not, depends on the actual implementation. | */
-	MAV_MODE_FLAG_GUIDED_ENABLED=8, /* 0b00001000 guided mode enabled, system flies MISSIONs / mission items. | */
-	MAV_MODE_FLAG_STABILIZE_ENABLED=16, /* 0b00010000 system stabilizes electronically its attitude (and optionally position). It needs however further control inputs to move around. | */
-	MAV_MODE_FLAG_HIL_ENABLED=32, /* 0b00100000 hardware in the loop simulation. All motors / actuators are blocked, but internal software is full operational. | */
-	MAV_MODE_FLAG_MANUAL_INPUT_ENABLED=64, /* 0b01000000 remote control input is enabled. | */
-	MAV_MODE_FLAG_SAFETY_ARMED=128, /* 0b10000000 MAV safety set to armed. Motors are enabled / running / can start. Ready to fly. | */
-	MAV_MODE_FLAG_ENUM_END=129, /*  | */
-};
-#endif
-
-/** @brief These values encode the bit positions of the decode position. These values can be used to read the value of a flag bit by combining the base_mode variable with AND with the flag position value. The result will be either 0 or 1, depending on if the flag is set or not. */
-#ifndef HAVE_ENUM_MAV_MODE_FLAG_DECODE_POSITION
-#define HAVE_ENUM_MAV_MODE_FLAG_DECODE_POSITION
-enum MAV_MODE_FLAG_DECODE_POSITION
-{
-	MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE=1, /* Eighth bit: 00000001 | */
-	MAV_MODE_FLAG_DECODE_POSITION_TEST=2, /* Seventh bit: 00000010 | */
-	MAV_MODE_FLAG_DECODE_POSITION_AUTO=4, /* Sixt bit:   00000100 | */
-	MAV_MODE_FLAG_DECODE_POSITION_GUIDED=8, /* Fifth bit:  00001000 | */
-	MAV_MODE_FLAG_DECODE_POSITION_STABILIZE=16, /* Fourth bit: 00010000 | */
-	MAV_MODE_FLAG_DECODE_POSITION_HIL=32, /* Third bit:  00100000 | */
-	MAV_MODE_FLAG_DECODE_POSITION_MANUAL=64, /* Second bit: 01000000 | */
-	MAV_MODE_FLAG_DECODE_POSITION_SAFETY=128, /* First bit:  10000000 | */
-	MAV_MODE_FLAG_DECODE_POSITION_ENUM_END=129, /*  | */
-};
-#endif
-
-/** @brief Override command, pauses current mission execution and moves immediately to a position */
-#ifndef HAVE_ENUM_MAV_GOTO
-#define HAVE_ENUM_MAV_GOTO
-enum MAV_GOTO
-{
-	MAV_GOTO_DO_HOLD=0, /* Hold at the current position. | */
-	MAV_GOTO_DO_CONTINUE=1, /* Continue with the next item in mission execution. | */
-	MAV_GOTO_HOLD_AT_CURRENT_POSITION=2, /* Hold at the current position of the system | */
-	MAV_GOTO_HOLD_AT_SPECIFIED_POSITION=3, /* Hold at the position specified in the parameters of the DO_HOLD action | */
-	MAV_GOTO_ENUM_END=4, /*  | */
-};
-#endif
-
-/** @brief These defines are predefined OR-combined mode flags. There is no need to use values from this enum, but it
-               simplifies the use of the mode flags. Note that manual input is enabled in all modes as a safety override. */
-#ifndef HAVE_ENUM_MAV_MODE
-#define HAVE_ENUM_MAV_MODE
-enum MAV_MODE
-{
-	MAV_MODE_PREFLIGHT=0, /* System is not ready to fly, booting, calibrating, etc. No flag is set. | */
-	MAV_MODE_MANUAL_DISARMED=64, /* System is allowed to be active, under manual (RC) control, no stabilization | */
-	MAV_MODE_TEST_DISARMED=66, /* UNDEFINED mode. This solely depends on the autopilot - use with caution, intended for developers only. | */
-	MAV_MODE_STABILIZE_DISARMED=80, /* System is allowed to be active, under assisted RC control. | */
-	MAV_MODE_GUIDED_DISARMED=88, /* System is allowed to be active, under autonomous control, manual setpoint | */
-	MAV_MODE_AUTO_DISARMED=92, /* System is allowed to be active, under autonomous control and navigation (the trajectory is decided onboard and not pre-programmed by MISSIONs) | */
-	MAV_MODE_MANUAL_ARMED=192, /* System is allowed to be active, under manual (RC) control, no stabilization | */
-	MAV_MODE_TEST_ARMED=194, /* UNDEFINED mode. This solely depends on the autopilot - use with caution, intended for developers only. | */
-	MAV_MODE_STABILIZE_ARMED=208, /* System is allowed to be active, under assisted RC control. | */
-	MAV_MODE_GUIDED_ARMED=216, /* System is allowed to be active, under autonomous control, manual setpoint | */
-	MAV_MODE_AUTO_ARMED=220, /* System is allowed to be active, under autonomous control and navigation (the trajectory is decided onboard and not pre-programmed by MISSIONs) | */
-	MAV_MODE_ENUM_END=221, /*  | */
-};
-#endif
-
-/** @brief  */
-#ifndef HAVE_ENUM_MAV_STATE
-#define HAVE_ENUM_MAV_STATE
-enum MAV_STATE
-{
-	MAV_STATE_UNINIT=0, /* Uninitialized system, state is unknown. | */
-	MAV_STATE_BOOT=1, /* System is booting up. | */
-	MAV_STATE_CALIBRATING=2, /* System is calibrating and not flight-ready. | */
-	MAV_STATE_STANDBY=3, /* System is grounded and on standby. It can be launched any time. | */
-	MAV_STATE_ACTIVE=4, /* System is active and might be already airborne. Motors are engaged. | */
-	MAV_STATE_CRITICAL=5, /* System is in a non-normal flight mode. It can however still navigate. | */
-	MAV_STATE_EMERGENCY=6, /* System is in a non-normal flight mode. It lost control over parts or over the whole airframe. It is in mayday and going down. | */
-	MAV_STATE_POWEROFF=7, /* System just initialized its power-down sequence, will shut down now. | */
-	MAV_STATE_ENUM_END=8, /*  | */
-};
-#endif
-
-/** @brief  */
-#ifndef HAVE_ENUM_MAV_TYPE
-#define HAVE_ENUM_MAV_TYPE
-enum MAV_TYPE
-{
-	MAV_TYPE_GENERIC=0, /* Generic micro air vehicle. | */
-	MAV_TYPE_FIXED_WING=1, /* Fixed wing aircraft. | */
-	MAV_TYPE_QUADROTOR=2, /* Quadrotor | */
-	MAV_TYPE_COAXIAL=3, /* Coaxial helicopter | */
-	MAV_TYPE_HELICOPTER=4, /* Normal helicopter with tail rotor. | */
-	MAV_TYPE_ANTENNA_TRACKER=5, /* Ground installation | */
-	MAV_TYPE_GCS=6, /* Operator control unit / ground control station | */
-	MAV_TYPE_AIRSHIP=7, /* Airship, controlled | */
-	MAV_TYPE_FREE_BALLOON=8, /* Free balloon, uncontrolled | */
-	MAV_TYPE_ROCKET=9, /* Rocket | */
-	MAV_TYPE_GROUND_ROVER=10, /* Ground rover | */
-	MAV_TYPE_SURFACE_BOAT=11, /* Surface vessel, boat, ship | */
-	MAV_TYPE_SUBMARINE=12, /* Submarine | */
-	MAV_TYPE_HEXAROTOR=13, /* Hexarotor | */
-	MAV_TYPE_OCTOROTOR=14, /* Octorotor | */
-	MAV_TYPE_TRICOPTER=15, /* Octorotor | */
-	MAV_TYPE_FLAPPING_WING=16, /* Flapping wing | */
-	MAV_TYPE_ENUM_END=17, /*  | */
-};
-#endif
-
-/** @brief  */
-#ifndef HAVE_ENUM_MAV_COMPONENT
-#define HAVE_ENUM_MAV_COMPONENT
-enum MAV_COMPONENT
-{
-	MAV_COMP_ID_ALL=0, /*  | */
-	MAV_COMP_ID_CAMERA=100, /*  | */
-	MAV_COMP_ID_SERVO1=140, /*  | */
-	MAV_COMP_ID_SERVO2=141, /*  | */
-	MAV_COMP_ID_SERVO3=142, /*  | */
-	MAV_COMP_ID_SERVO4=143, /*  | */
-	MAV_COMP_ID_SERVO5=144, /*  | */
-	MAV_COMP_ID_SERVO6=145, /*  | */
-	MAV_COMP_ID_SERVO7=146, /*  | */
-	MAV_COMP_ID_SERVO8=147, /*  | */
-	MAV_COMP_ID_SERVO9=148, /*  | */
-	MAV_COMP_ID_SERVO10=149, /*  | */
-	MAV_COMP_ID_SERVO11=150, /*  | */
-	MAV_COMP_ID_SERVO12=151, /*  | */
-	MAV_COMP_ID_SERVO13=152, /*  | */
-	MAV_COMP_ID_SERVO14=153, /*  | */
-	MAV_COMP_ID_MAPPER=180, /*  | */
-	MAV_COMP_ID_MISSIONPLANNER=190, /*  | */
-	MAV_COMP_ID_PATHPLANNER=195, /*  | */
-	MAV_COMP_ID_IMU=200, /*  | */
-	MAV_COMP_ID_IMU_2=201, /*  | */
-	MAV_COMP_ID_IMU_3=202, /*  | */
-	MAV_COMP_ID_GPS=220, /*  | */
-	MAV_COMP_ID_UDP_BRIDGE=240, /*  | */
-	MAV_COMP_ID_UART_BRIDGE=241, /*  | */
-	MAV_COMP_ID_SYSTEM_CONTROL=250, /*  | */
-	MAV_COMPONENT_ENUM_END=251, /*  | */
-};
-#endif
-
-/** @brief  */
-#ifndef HAVE_ENUM_MAV_FRAME
-#define HAVE_ENUM_MAV_FRAME
-enum MAV_FRAME
-{
-	MAV_FRAME_GLOBAL=0, /* Global coordinate frame, WGS84 coordinate system. First value / x: latitude, second value / y: longitude, third value / z: positive altitude over mean sea level (MSL) | */
-	MAV_FRAME_LOCAL_NED=1, /* Local coordinate frame, Z-up (x: north, y: east, z: down). | */
-	MAV_FRAME_MISSION=2, /* NOT a coordinate frame, indicates a mission command. | */
-	MAV_FRAME_GLOBAL_RELATIVE_ALT=3, /* Global coordinate frame, WGS84 coordinate system, relative altitude over ground with respect to the home position. First value / x: latitude, second value / y: longitude, third value / z: positive altitude with 0 being at the altitude of the home location. | */
-	MAV_FRAME_LOCAL_ENU=4, /* Local coordinate frame, Z-down (x: east, y: north, z: up) | */
-	MAV_FRAME_ENUM_END=5, /*  | */
-};
-#endif
-
-/** @brief  */
-#ifndef HAVE_ENUM_MAVLINK_DATA_STREAM_TYPE
-#define HAVE_ENUM_MAVLINK_DATA_STREAM_TYPE
-enum MAVLINK_DATA_STREAM_TYPE
-{
-	MAVLINK_DATA_STREAM_IMG_JPEG=1, /*  | */
-	MAVLINK_DATA_STREAM_IMG_BMP=2, /*  | */
-	MAVLINK_DATA_STREAM_IMG_RAW8U=3, /*  | */
-	MAVLINK_DATA_STREAM_IMG_RAW32U=4, /*  | */
-	MAVLINK_DATA_STREAM_IMG_PGM=5, /*  | */
-	MAVLINK_DATA_STREAM_IMG_PNG=6, /*  | */
-	MAVLINK_DATA_STREAM_TYPE_ENUM_END=7, /*  | */
-};
-#endif
-
-/** @brief Data stream IDs. A data stream is not a fixed set of messages, but rather a
-     recommendation to the autopilot software. Individual autopilots may or may not obey
-     the recommended messages.
-      */
-#ifndef HAVE_ENUM_MAV_DATA_STREAM
-#define HAVE_ENUM_MAV_DATA_STREAM
-enum MAV_DATA_STREAM
-{
-	MAV_DATA_STREAM_ALL=0, /* Enable all data streams | */
-	MAV_DATA_STREAM_RAW_SENSORS=1, /* Enable IMU_RAW, GPS_RAW, GPS_STATUS packets. | */
-	MAV_DATA_STREAM_EXTENDED_STATUS=2, /* Enable GPS_STATUS, CONTROL_STATUS, AUX_STATUS | */
-	MAV_DATA_STREAM_RC_CHANNELS=3, /* Enable RC_CHANNELS_SCALED, RC_CHANNELS_RAW, SERVO_OUTPUT_RAW | */
-	MAV_DATA_STREAM_RAW_CONTROLLER=4, /* Enable ATTITUDE_CONTROLLER_OUTPUT, POSITION_CONTROLLER_OUTPUT, NAV_CONTROLLER_OUTPUT. | */
-	MAV_DATA_STREAM_POSITION=6, /* Enable LOCAL_POSITION, GLOBAL_POSITION/GLOBAL_POSITION_INT messages. | */
-	MAV_DATA_STREAM_EXTRA1=10, /* Dependent on the autopilot | */
-	MAV_DATA_STREAM_EXTRA2=11, /* Dependent on the autopilot | */
-	MAV_DATA_STREAM_EXTRA3=12, /* Dependent on the autopilot | */
-	MAV_DATA_STREAM_ENUM_END=13, /*  | */
-};
-#endif
-
-/** @brief  The ROI (region of interest) for the vehicle. This can be
-                be used by the vehicle for camera/vehicle attitude alignment (see
-                MAV_CMD_NAV_ROI).
-             */
-#ifndef HAVE_ENUM_MAV_ROI
-#define HAVE_ENUM_MAV_ROI
-enum MAV_ROI
-{
-	MAV_ROI_NONE=0, /* No region of interest. | */
-	MAV_ROI_WPNEXT=1, /* Point toward next MISSION. | */
-	MAV_ROI_WPINDEX=2, /* Point toward given MISSION. | */
-	MAV_ROI_LOCATION=3, /* Point toward fixed location. | */
-	MAV_ROI_TARGET=4, /* Point toward of given id. | */
-	MAV_ROI_ENUM_END=5, /*  | */
-};
-#endif
-
-/** @brief ACK / NACK / ERROR values as a result of MAV_CMDs and for mission item transmission. */
-#ifndef HAVE_ENUM_MAV_CMD_ACK
-#define HAVE_ENUM_MAV_CMD_ACK
-enum MAV_CMD_ACK
-{
-	MAV_CMD_ACK_OK=1, /* Command / mission item is ok. | */
-	MAV_CMD_ACK_ERR_FAIL=2, /* Generic error message if none of the other reasons fails or if no detailed error reporting is implemented. | */
-	MAV_CMD_ACK_ERR_ACCESS_DENIED=3, /* The system is refusing to accept this command from this source / communication partner. | */
-	MAV_CMD_ACK_ERR_NOT_SUPPORTED=4, /* Command or mission item is not supported, other commands would be accepted. | */
-	MAV_CMD_ACK_ERR_COORDINATE_FRAME_NOT_SUPPORTED=5, /* The coordinate frame of this command / mission item is not supported. | */
-	MAV_CMD_ACK_ERR_COORDINATES_OUT_OF_RANGE=6, /* The coordinate frame of this command is ok, but he coordinate values exceed the safety limits of this system. This is a generic error, please use the more specific error messages below if possible. | */
-	MAV_CMD_ACK_ERR_X_LAT_OUT_OF_RANGE=7, /* The X or latitude value is out of range. | */
-	MAV_CMD_ACK_ERR_Y_LON_OUT_OF_RANGE=8, /* The Y or longitude value is out of range. | */
-	MAV_CMD_ACK_ERR_Z_ALT_OUT_OF_RANGE=9, /* The Z or altitude value is out of range. | */
-	MAV_CMD_ACK_ENUM_END=10, /*  | */
-};
-#endif
-
-/** @brief type of a mavlink parameter */
-#ifndef HAVE_ENUM_MAV_VAR
-#define HAVE_ENUM_MAV_VAR
-enum MAV_VAR
-{
-	MAV_VAR_FLOAT=0, /* 32 bit float | */
-	MAV_VAR_UINT8=1, /* 8 bit unsigned integer | */
-	MAV_VAR_INT8=2, /* 8 bit signed integer | */
-	MAV_VAR_UINT16=3, /* 16 bit unsigned integer | */
-	MAV_VAR_INT16=4, /* 16 bit signed integer | */
-	MAV_VAR_UINT32=5, /* 32 bit unsigned integer | */
-	MAV_VAR_INT32=6, /* 32 bit signed integer | */
-	MAV_VAR_ENUM_END=7, /*  | */
-};
-#endif
-
-/** @brief result from a mavlink command */
-#ifndef HAVE_ENUM_MAV_RESULT
-#define HAVE_ENUM_MAV_RESULT
-enum MAV_RESULT
-{
-	MAV_RESULT_ACCEPTED=0, /* Command ACCEPTED and EXECUTED | */
-	MAV_RESULT_TEMPORARILY_REJECTED=1, /* Command TEMPORARY REJECTED/DENIED | */
-	MAV_RESULT_DENIED=2, /* Command PERMANENTLY DENIED | */
-	MAV_RESULT_UNSUPPORTED=3, /* Command UNKNOWN/UNSUPPORTED | */
-	MAV_RESULT_FAILED=4, /* Command executed, but failed | */
-	MAV_RESULT_ENUM_END=5, /*  | */
-};
-#endif
-
-/** @brief result in a mavlink mission ack */
-#ifndef HAVE_ENUM_MAV_MISSION_RESULT
-#define HAVE_ENUM_MAV_MISSION_RESULT
-enum MAV_MISSION_RESULT
-{
-	MAV_MISSION_ACCEPTED=0, /* mission accepted OK | */
-	MAV_MISSION_ERROR=1, /* generic error / not accepting mission commands at all right now | */
-	MAV_MISSION_UNSUPPORTED_FRAME=2, /* coordinate frame is not supported | */
-	MAV_MISSION_UNSUPPORTED=3, /* command is not supported | */
-	MAV_MISSION_NO_SPACE=4, /* mission item exceeds storage space | */
-	MAV_MISSION_INVALID=5, /* one of the parameters has an invalid value | */
-	MAV_MISSION_INVALID_PARAM1=6, /* param1 has an invalid value | */
-	MAV_MISSION_INVALID_PARAM2=7, /* param2 has an invalid value | */
-	MAV_MISSION_INVALID_PARAM3=8, /* param3 has an invalid value | */
-	MAV_MISSION_INVALID_PARAM4=9, /* param4 has an invalid value | */
-	MAV_MISSION_INVALID_PARAM5_X=10, /* x/param5 has an invalid value | */
-	MAV_MISSION_INVALID_PARAM6_Y=11, /* y/param6 has an invalid value | */
-	MAV_MISSION_INVALID_PARAM7=12, /* param7 has an invalid value | */
-	MAV_MISSION_INVALID_SEQUENCE=13, /* received waypoint out of sequence | */
-	MAV_MISSION_DENIED=14, /* not accepting any mission commands from this communication partner | */
-	MAV_MISSION_RESULT_ENUM_END=15, /*  | */
-};
-#endif
-
-// MESSAGE DEFINITIONS
-#include "./mavlink_msg_heartbeat.h"
-#include "./mavlink_msg_sys_status.h"
-#include "./mavlink_msg_system_time.h"
-#include "./mavlink_msg_ping.h"
-#include "./mavlink_msg_change_operator_control.h"
-#include "./mavlink_msg_change_operator_control_ack.h"
-#include "./mavlink_msg_auth_key.h"
-#include "./mavlink_msg_set_mode.h"
-#include "./mavlink_msg_param_request_read.h"
-#include "./mavlink_msg_param_request_list.h"
-#include "./mavlink_msg_param_value.h"
-#include "./mavlink_msg_param_set.h"
-#include "./mavlink_msg_gps_raw_int.h"
-#include "./mavlink_msg_gps_status.h"
-#include "./mavlink_msg_scaled_imu.h"
-#include "./mavlink_msg_raw_imu.h"
-#include "./mavlink_msg_raw_pressure.h"
-#include "./mavlink_msg_scaled_pressure.h"
-#include "./mavlink_msg_attitude.h"
-#include "./mavlink_msg_attitude_quaternion.h"
-#include "./mavlink_msg_local_position_ned.h"
-#include "./mavlink_msg_global_position_int.h"
-#include "./mavlink_msg_rc_channels_scaled.h"
-#include "./mavlink_msg_rc_channels_raw.h"
-#include "./mavlink_msg_servo_output_raw.h"
-#include "./mavlink_msg_mission_request_partial_list.h"
-#include "./mavlink_msg_mission_write_partial_list.h"
-#include "./mavlink_msg_mission_item.h"
-#include "./mavlink_msg_mission_request.h"
-#include "./mavlink_msg_mission_set_current.h"
-#include "./mavlink_msg_mission_current.h"
-#include "./mavlink_msg_mission_request_list.h"
-#include "./mavlink_msg_mission_count.h"
-#include "./mavlink_msg_mission_clear_all.h"
-#include "./mavlink_msg_mission_item_reached.h"
-#include "./mavlink_msg_mission_ack.h"
-#include "./mavlink_msg_set_gps_global_origin.h"
-#include "./mavlink_msg_gps_global_origin.h"
-#include "./mavlink_msg_set_local_position_setpoint.h"
-#include "./mavlink_msg_local_position_setpoint.h"
-#include "./mavlink_msg_global_position_setpoint_int.h"
-#include "./mavlink_msg_set_global_position_setpoint_int.h"
-#include "./mavlink_msg_safety_set_allowed_area.h"
-#include "./mavlink_msg_safety_allowed_area.h"
-#include "./mavlink_msg_set_roll_pitch_yaw_thrust.h"
-#include "./mavlink_msg_set_roll_pitch_yaw_speed_thrust.h"
-#include "./mavlink_msg_roll_pitch_yaw_thrust_setpoint.h"
-#include "./mavlink_msg_roll_pitch_yaw_speed_thrust_setpoint.h"
-#include "./mavlink_msg_nav_controller_output.h"
-#include "./mavlink_msg_state_correction.h"
-#include "./mavlink_msg_request_data_stream.h"
-#include "./mavlink_msg_data_stream.h"
-#include "./mavlink_msg_manual_control.h"
-#include "./mavlink_msg_rc_channels_override.h"
-#include "./mavlink_msg_vfr_hud.h"
-#include "./mavlink_msg_command_long.h"
-#include "./mavlink_msg_command_ack.h"
-#include "./mavlink_msg_hil_state.h"
-#include "./mavlink_msg_hil_controls.h"
-#include "./mavlink_msg_hil_rc_inputs_raw.h"
-#include "./mavlink_msg_optical_flow.h"
-#include "./mavlink_msg_global_vision_position_estimate.h"
-#include "./mavlink_msg_vision_position_estimate.h"
-#include "./mavlink_msg_vision_speed_estimate.h"
-#include "./mavlink_msg_vicon_position_estimate.h"
-#include "./mavlink_msg_memory_vect.h"
-#include "./mavlink_msg_debug_vect.h"
-#include "./mavlink_msg_named_value_float.h"
-#include "./mavlink_msg_named_value_int.h"
-#include "./mavlink_msg_statustext.h"
-#include "./mavlink_msg_debug.h"
-#include "./mavlink_msg_extended_message.h"
-
-#ifdef __cplusplus
-}
-#endif // __cplusplus
-#endif // COMMON_H
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_action.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_action.h
deleted file mode 100644
index b34fbb342385e326851d3fd6c0074dad158af543..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_action.h
+++ /dev/null
@@ -1,188 +0,0 @@
-// MESSAGE ACTION PACKING
-
-#define MAVLINK_MSG_ID_ACTION 10
-
-typedef struct __mavlink_action_t
-{
- uint8_t target; ///< The system executing the action
- uint8_t target_component; ///< The component executing the action
- uint8_t action; ///< The action id
-} mavlink_action_t;
-
-#define MAVLINK_MSG_ID_ACTION_LEN 3
-#define MAVLINK_MSG_ID_10_LEN 3
-
-
-
-#define MAVLINK_MESSAGE_INFO_ACTION { \
-	"ACTION", \
-	3, \
-	{  { "target", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_action_t, target) }, \
-         { "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_action_t, target_component) }, \
-         { "action", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_action_t, action) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a action 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 target The system executing the action
- * @param target_component The component executing the action
- * @param action The action id
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_action_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t target, uint8_t target_component, uint8_t action)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[3];
-	_mav_put_uint8_t(buf, 0, target);
-	_mav_put_uint8_t(buf, 1, target_component);
-	_mav_put_uint8_t(buf, 2, action);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
-#else
-	mavlink_action_t packet;
-	packet.target = target;
-	packet.target_component = target_component;
-	packet.action = action;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_ACTION;
-	return mavlink_finalize_message(msg, system_id, component_id, 3, 60);
-}
-
-/**
- * @brief Pack a action 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
- * @param target The system executing the action
- * @param target_component The component executing the action
- * @param action The action id
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_action_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t target,uint8_t target_component,uint8_t action)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[3];
-	_mav_put_uint8_t(buf, 0, target);
-	_mav_put_uint8_t(buf, 1, target_component);
-	_mav_put_uint8_t(buf, 2, action);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
-#else
-	mavlink_action_t packet;
-	packet.target = target;
-	packet.target_component = target_component;
-	packet.action = action;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_ACTION;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 3, 60);
-}
-
-/**
- * @brief Encode a action 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 action C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_action_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_action_t* action)
-{
-	return mavlink_msg_action_pack(system_id, component_id, msg, action->target, action->target_component, action->action);
-}
-
-/**
- * @brief Send a action message
- * @param chan MAVLink channel to send the message
- *
- * @param target The system executing the action
- * @param target_component The component executing the action
- * @param action The action id
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_action_send(mavlink_channel_t chan, uint8_t target, uint8_t target_component, uint8_t action)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[3];
-	_mav_put_uint8_t(buf, 0, target);
-	_mav_put_uint8_t(buf, 1, target_component);
-	_mav_put_uint8_t(buf, 2, action);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ACTION, buf, 3, 60);
-#else
-	mavlink_action_t packet;
-	packet.target = target;
-	packet.target_component = target_component;
-	packet.action = action;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ACTION, (const char *)&packet, 3, 60);
-#endif
-}
-
-#endif
-
-// MESSAGE ACTION UNPACKING
-
-
-/**
- * @brief Get field target from action message
- *
- * @return The system executing the action
- */
-static inline uint8_t mavlink_msg_action_get_target(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  0);
-}
-
-/**
- * @brief Get field target_component from action message
- *
- * @return The component executing the action
- */
-static inline uint8_t mavlink_msg_action_get_target_component(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  1);
-}
-
-/**
- * @brief Get field action from action message
- *
- * @return The action id
- */
-static inline uint8_t mavlink_msg_action_get_action(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  2);
-}
-
-/**
- * @brief Decode a action message into a struct
- *
- * @param msg The message to decode
- * @param action C-struct to decode the message contents into
- */
-static inline void mavlink_msg_action_decode(const mavlink_message_t* msg, mavlink_action_t* action)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	action->target = mavlink_msg_action_get_target(msg);
-	action->target_component = mavlink_msg_action_get_target_component(msg);
-	action->action = mavlink_msg_action_get_action(msg);
-#else
-	memcpy(action, _MAV_PAYLOAD(msg), 3);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_action_ack.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_action_ack.h
deleted file mode 100644
index f5da3cb0640ca85b293fe2683dec063a9931b822..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_action_ack.h
+++ /dev/null
@@ -1,166 +0,0 @@
-// MESSAGE ACTION_ACK PACKING
-
-#define MAVLINK_MSG_ID_ACTION_ACK 9
-
-typedef struct __mavlink_action_ack_t
-{
- uint8_t action; ///< The action id
- uint8_t result; ///< 0: Action DENIED, 1: Action executed
-} mavlink_action_ack_t;
-
-#define MAVLINK_MSG_ID_ACTION_ACK_LEN 2
-#define MAVLINK_MSG_ID_9_LEN 2
-
-
-
-#define MAVLINK_MESSAGE_INFO_ACTION_ACK { \
-	"ACTION_ACK", \
-	2, \
-	{  { "action", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_action_ack_t, action) }, \
-         { "result", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_action_ack_t, result) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a action_ack 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 action The action id
- * @param result 0: Action DENIED, 1: Action executed
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_action_ack_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t action, uint8_t result)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint8_t(buf, 0, action);
-	_mav_put_uint8_t(buf, 1, result);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
-#else
-	mavlink_action_ack_t packet;
-	packet.action = action;
-	packet.result = result;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_ACTION_ACK;
-	return mavlink_finalize_message(msg, system_id, component_id, 2, 219);
-}
-
-/**
- * @brief Pack a action_ack 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
- * @param action The action id
- * @param result 0: Action DENIED, 1: Action executed
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_action_ack_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t action,uint8_t result)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint8_t(buf, 0, action);
-	_mav_put_uint8_t(buf, 1, result);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
-#else
-	mavlink_action_ack_t packet;
-	packet.action = action;
-	packet.result = result;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_ACTION_ACK;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 2, 219);
-}
-
-/**
- * @brief Encode a action_ack 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 action_ack C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_action_ack_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_action_ack_t* action_ack)
-{
-	return mavlink_msg_action_ack_pack(system_id, component_id, msg, action_ack->action, action_ack->result);
-}
-
-/**
- * @brief Send a action_ack message
- * @param chan MAVLink channel to send the message
- *
- * @param action The action id
- * @param result 0: Action DENIED, 1: Action executed
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_action_ack_send(mavlink_channel_t chan, uint8_t action, uint8_t result)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint8_t(buf, 0, action);
-	_mav_put_uint8_t(buf, 1, result);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ACTION_ACK, buf, 2, 219);
-#else
-	mavlink_action_ack_t packet;
-	packet.action = action;
-	packet.result = result;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_ACTION_ACK, (const char *)&packet, 2, 219);
-#endif
-}
-
-#endif
-
-// MESSAGE ACTION_ACK UNPACKING
-
-
-/**
- * @brief Get field action from action_ack message
- *
- * @return The action id
- */
-static inline uint8_t mavlink_msg_action_ack_get_action(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  0);
-}
-
-/**
- * @brief Get field result from action_ack message
- *
- * @return 0: Action DENIED, 1: Action executed
- */
-static inline uint8_t mavlink_msg_action_ack_get_result(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  1);
-}
-
-/**
- * @brief Decode a action_ack message into a struct
- *
- * @param msg The message to decode
- * @param action_ack C-struct to decode the message contents into
- */
-static inline void mavlink_msg_action_ack_decode(const mavlink_message_t* msg, mavlink_action_ack_t* action_ack)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	action_ack->action = mavlink_msg_action_ack_get_action(msg);
-	action_ack->result = mavlink_msg_action_ack_get_result(msg);
-#else
-	memcpy(action_ack, _MAV_PAYLOAD(msg), 2);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_boot.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_boot.h
deleted file mode 100644
index 679a0a34646bfc9d3e18568e71e49962a4a8f8e7..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_boot.h
+++ /dev/null
@@ -1,144 +0,0 @@
-// MESSAGE BOOT PACKING
-
-#define MAVLINK_MSG_ID_BOOT 1
-
-typedef struct __mavlink_boot_t
-{
- uint32_t version; ///< The onboard software version
-} mavlink_boot_t;
-
-#define MAVLINK_MSG_ID_BOOT_LEN 4
-#define MAVLINK_MSG_ID_1_LEN 4
-
-
-
-#define MAVLINK_MESSAGE_INFO_BOOT { \
-	"BOOT", \
-	1, \
-	{  { "version", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_boot_t, version) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a boot 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 version The onboard software version
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_boot_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint32_t version)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[4];
-	_mav_put_uint32_t(buf, 0, version);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
-#else
-	mavlink_boot_t packet;
-	packet.version = version;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_BOOT;
-	return mavlink_finalize_message(msg, system_id, component_id, 4, 39);
-}
-
-/**
- * @brief Pack a boot 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
- * @param version The onboard software version
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_boot_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint32_t version)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[4];
-	_mav_put_uint32_t(buf, 0, version);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
-#else
-	mavlink_boot_t packet;
-	packet.version = version;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_BOOT;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 4, 39);
-}
-
-/**
- * @brief Encode a boot 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 boot C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_boot_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_boot_t* boot)
-{
-	return mavlink_msg_boot_pack(system_id, component_id, msg, boot->version);
-}
-
-/**
- * @brief Send a boot message
- * @param chan MAVLink channel to send the message
- *
- * @param version The onboard software version
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_boot_send(mavlink_channel_t chan, uint32_t version)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[4];
-	_mav_put_uint32_t(buf, 0, version);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_BOOT, buf, 4, 39);
-#else
-	mavlink_boot_t packet;
-	packet.version = version;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_BOOT, (const char *)&packet, 4, 39);
-#endif
-}
-
-#endif
-
-// MESSAGE BOOT UNPACKING
-
-
-/**
- * @brief Get field version from boot message
- *
- * @return The onboard software version
- */
-static inline uint32_t mavlink_msg_boot_get_version(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint32_t(msg,  0);
-}
-
-/**
- * @brief Decode a boot message into a struct
- *
- * @param msg The message to decode
- * @param boot C-struct to decode the message contents into
- */
-static inline void mavlink_msg_boot_decode(const mavlink_message_t* msg, mavlink_boot_t* boot)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	boot->version = mavlink_msg_boot_get_version(msg);
-#else
-	memcpy(boot, _MAV_PAYLOAD(msg), 4);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_command.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_command.h
deleted file mode 100644
index 5e477801fa869db190fa3344038573ca9541a9c2..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_command.h
+++ /dev/null
@@ -1,298 +0,0 @@
-// MESSAGE COMMAND PACKING
-
-#define MAVLINK_MSG_ID_COMMAND 75
-
-typedef struct __mavlink_command_t
-{
- float param1; ///< Parameter 1, as defined by MAV_CMD enum.
- float param2; ///< Parameter 2, as defined by MAV_CMD enum.
- float param3; ///< Parameter 3, as defined by MAV_CMD enum.
- float param4; ///< Parameter 4, as defined by MAV_CMD enum.
- uint8_t target_system; ///< System which should execute the command
- uint8_t target_component; ///< Component which should execute the command, 0 for all components
- uint8_t command; ///< Command ID, as defined by MAV_CMD enum.
- uint8_t confirmation; ///< 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)
-} mavlink_command_t;
-
-#define MAVLINK_MSG_ID_COMMAND_LEN 20
-#define MAVLINK_MSG_ID_75_LEN 20
-
-
-
-#define MAVLINK_MESSAGE_INFO_COMMAND { \
-	"COMMAND", \
-	8, \
-	{  { "param1", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_command_t, param1) }, \
-         { "param2", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_command_t, param2) }, \
-         { "param3", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_command_t, param3) }, \
-         { "param4", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_command_t, param4) }, \
-         { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 16, offsetof(mavlink_command_t, target_system) }, \
-         { "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 17, offsetof(mavlink_command_t, target_component) }, \
-         { "command", NULL, MAVLINK_TYPE_UINT8_T, 0, 18, offsetof(mavlink_command_t, command) }, \
-         { "confirmation", NULL, MAVLINK_TYPE_UINT8_T, 0, 19, offsetof(mavlink_command_t, confirmation) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a command 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 target_system System which should execute the command
- * @param target_component Component which should execute the command, 0 for all components
- * @param command Command ID, as defined by MAV_CMD enum.
- * @param confirmation 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)
- * @param param1 Parameter 1, as defined by MAV_CMD enum.
- * @param param2 Parameter 2, as defined by MAV_CMD enum.
- * @param param3 Parameter 3, as defined by MAV_CMD enum.
- * @param param4 Parameter 4, as defined by MAV_CMD enum.
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_command_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t target_system, uint8_t target_component, uint8_t command, uint8_t confirmation, float param1, float param2, float param3, float param4)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[20];
-	_mav_put_float(buf, 0, param1);
-	_mav_put_float(buf, 4, param2);
-	_mav_put_float(buf, 8, param3);
-	_mav_put_float(buf, 12, param4);
-	_mav_put_uint8_t(buf, 16, target_system);
-	_mav_put_uint8_t(buf, 17, target_component);
-	_mav_put_uint8_t(buf, 18, command);
-	_mav_put_uint8_t(buf, 19, confirmation);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 20);
-#else
-	mavlink_command_t packet;
-	packet.param1 = param1;
-	packet.param2 = param2;
-	packet.param3 = param3;
-	packet.param4 = param4;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-	packet.command = command;
-	packet.confirmation = confirmation;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 20);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_COMMAND;
-	return mavlink_finalize_message(msg, system_id, component_id, 20, 133);
-}
-
-/**
- * @brief Pack a command 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
- * @param target_system System which should execute the command
- * @param target_component Component which should execute the command, 0 for all components
- * @param command Command ID, as defined by MAV_CMD enum.
- * @param confirmation 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)
- * @param param1 Parameter 1, as defined by MAV_CMD enum.
- * @param param2 Parameter 2, as defined by MAV_CMD enum.
- * @param param3 Parameter 3, as defined by MAV_CMD enum.
- * @param param4 Parameter 4, as defined by MAV_CMD enum.
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_command_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t target_system,uint8_t target_component,uint8_t command,uint8_t confirmation,float param1,float param2,float param3,float param4)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[20];
-	_mav_put_float(buf, 0, param1);
-	_mav_put_float(buf, 4, param2);
-	_mav_put_float(buf, 8, param3);
-	_mav_put_float(buf, 12, param4);
-	_mav_put_uint8_t(buf, 16, target_system);
-	_mav_put_uint8_t(buf, 17, target_component);
-	_mav_put_uint8_t(buf, 18, command);
-	_mav_put_uint8_t(buf, 19, confirmation);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 20);
-#else
-	mavlink_command_t packet;
-	packet.param1 = param1;
-	packet.param2 = param2;
-	packet.param3 = param3;
-	packet.param4 = param4;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-	packet.command = command;
-	packet.confirmation = confirmation;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 20);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_COMMAND;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 20, 133);
-}
-
-/**
- * @brief Encode a command 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 command C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_command_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_command_t* command)
-{
-	return mavlink_msg_command_pack(system_id, component_id, msg, command->target_system, command->target_component, command->command, command->confirmation, command->param1, command->param2, command->param3, command->param4);
-}
-
-/**
- * @brief Send a command message
- * @param chan MAVLink channel to send the message
- *
- * @param target_system System which should execute the command
- * @param target_component Component which should execute the command, 0 for all components
- * @param command Command ID, as defined by MAV_CMD enum.
- * @param confirmation 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)
- * @param param1 Parameter 1, as defined by MAV_CMD enum.
- * @param param2 Parameter 2, as defined by MAV_CMD enum.
- * @param param3 Parameter 3, as defined by MAV_CMD enum.
- * @param param4 Parameter 4, as defined by MAV_CMD enum.
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_command_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component, uint8_t command, uint8_t confirmation, float param1, float param2, float param3, float param4)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[20];
-	_mav_put_float(buf, 0, param1);
-	_mav_put_float(buf, 4, param2);
-	_mav_put_float(buf, 8, param3);
-	_mav_put_float(buf, 12, param4);
-	_mav_put_uint8_t(buf, 16, target_system);
-	_mav_put_uint8_t(buf, 17, target_component);
-	_mav_put_uint8_t(buf, 18, command);
-	_mav_put_uint8_t(buf, 19, confirmation);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND, buf, 20, 133);
-#else
-	mavlink_command_t packet;
-	packet.param1 = param1;
-	packet.param2 = param2;
-	packet.param3 = param3;
-	packet.param4 = param4;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-	packet.command = command;
-	packet.confirmation = confirmation;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_COMMAND, (const char *)&packet, 20, 133);
-#endif
-}
-
-#endif
-
-// MESSAGE COMMAND UNPACKING
-
-
-/**
- * @brief Get field target_system from command message
- *
- * @return System which should execute the command
- */
-static inline uint8_t mavlink_msg_command_get_target_system(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  16);
-}
-
-/**
- * @brief Get field target_component from command message
- *
- * @return Component which should execute the command, 0 for all components
- */
-static inline uint8_t mavlink_msg_command_get_target_component(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  17);
-}
-
-/**
- * @brief Get field command from command message
- *
- * @return Command ID, as defined by MAV_CMD enum.
- */
-static inline uint8_t mavlink_msg_command_get_command(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  18);
-}
-
-/**
- * @brief Get field confirmation from command message
- *
- * @return 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)
- */
-static inline uint8_t mavlink_msg_command_get_confirmation(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  19);
-}
-
-/**
- * @brief Get field param1 from command message
- *
- * @return Parameter 1, as defined by MAV_CMD enum.
- */
-static inline float mavlink_msg_command_get_param1(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  0);
-}
-
-/**
- * @brief Get field param2 from command message
- *
- * @return Parameter 2, as defined by MAV_CMD enum.
- */
-static inline float mavlink_msg_command_get_param2(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  4);
-}
-
-/**
- * @brief Get field param3 from command message
- *
- * @return Parameter 3, as defined by MAV_CMD enum.
- */
-static inline float mavlink_msg_command_get_param3(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  8);
-}
-
-/**
- * @brief Get field param4 from command message
- *
- * @return Parameter 4, as defined by MAV_CMD enum.
- */
-static inline float mavlink_msg_command_get_param4(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  12);
-}
-
-/**
- * @brief Decode a command message into a struct
- *
- * @param msg The message to decode
- * @param command C-struct to decode the message contents into
- */
-static inline void mavlink_msg_command_decode(const mavlink_message_t* msg, mavlink_command_t* command)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	command->param1 = mavlink_msg_command_get_param1(msg);
-	command->param2 = mavlink_msg_command_get_param2(msg);
-	command->param3 = mavlink_msg_command_get_param3(msg);
-	command->param4 = mavlink_msg_command_get_param4(msg);
-	command->target_system = mavlink_msg_command_get_target_system(msg);
-	command->target_component = mavlink_msg_command_get_target_component(msg);
-	command->command = mavlink_msg_command_get_command(msg);
-	command->confirmation = mavlink_msg_command_get_confirmation(msg);
-#else
-	memcpy(command, _MAV_PAYLOAD(msg), 20);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_control_status.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_control_status.h
deleted file mode 100644
index 1723a6b80198af9217f86240046a07e7b28e11f0..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_control_status.h
+++ /dev/null
@@ -1,298 +0,0 @@
-// MESSAGE CONTROL_STATUS PACKING
-
-#define MAVLINK_MSG_ID_CONTROL_STATUS 52
-
-typedef struct __mavlink_control_status_t
-{
- uint8_t position_fix; ///< Position fix: 0: lost, 2: 2D position fix, 3: 3D position fix 
- uint8_t vision_fix; ///< Vision position fix: 0: lost, 1: 2D local position hold, 2: 2D global position fix, 3: 3D global position fix 
- uint8_t gps_fix; ///< GPS position fix: 0: no reception, 1: Minimum 1 satellite, but no position fix, 2: 2D position fix, 3: 3D position fix 
- uint8_t ahrs_health; ///< Attitude estimation health: 0: poor, 255: excellent
- uint8_t control_att; ///< 0: Attitude control disabled, 1: enabled
- uint8_t control_pos_xy; ///< 0: X, Y position control disabled, 1: enabled
- uint8_t control_pos_z; ///< 0: Z position control disabled, 1: enabled
- uint8_t control_pos_yaw; ///< 0: Yaw angle control disabled, 1: enabled
-} mavlink_control_status_t;
-
-#define MAVLINK_MSG_ID_CONTROL_STATUS_LEN 8
-#define MAVLINK_MSG_ID_52_LEN 8
-
-
-
-#define MAVLINK_MESSAGE_INFO_CONTROL_STATUS { \
-	"CONTROL_STATUS", \
-	8, \
-	{  { "position_fix", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_control_status_t, position_fix) }, \
-         { "vision_fix", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_control_status_t, vision_fix) }, \
-         { "gps_fix", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_control_status_t, gps_fix) }, \
-         { "ahrs_health", NULL, MAVLINK_TYPE_UINT8_T, 0, 3, offsetof(mavlink_control_status_t, ahrs_health) }, \
-         { "control_att", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_control_status_t, control_att) }, \
-         { "control_pos_xy", NULL, MAVLINK_TYPE_UINT8_T, 0, 5, offsetof(mavlink_control_status_t, control_pos_xy) }, \
-         { "control_pos_z", NULL, MAVLINK_TYPE_UINT8_T, 0, 6, offsetof(mavlink_control_status_t, control_pos_z) }, \
-         { "control_pos_yaw", NULL, MAVLINK_TYPE_UINT8_T, 0, 7, offsetof(mavlink_control_status_t, control_pos_yaw) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a control_status 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 position_fix Position fix: 0: lost, 2: 2D position fix, 3: 3D position fix 
- * @param vision_fix Vision position fix: 0: lost, 1: 2D local position hold, 2: 2D global position fix, 3: 3D global position fix 
- * @param gps_fix GPS position fix: 0: no reception, 1: Minimum 1 satellite, but no position fix, 2: 2D position fix, 3: 3D position fix 
- * @param ahrs_health Attitude estimation health: 0: poor, 255: excellent
- * @param control_att 0: Attitude control disabled, 1: enabled
- * @param control_pos_xy 0: X, Y position control disabled, 1: enabled
- * @param control_pos_z 0: Z position control disabled, 1: enabled
- * @param control_pos_yaw 0: Yaw angle control disabled, 1: enabled
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_control_status_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t position_fix, uint8_t vision_fix, uint8_t gps_fix, uint8_t ahrs_health, uint8_t control_att, uint8_t control_pos_xy, uint8_t control_pos_z, uint8_t control_pos_yaw)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[8];
-	_mav_put_uint8_t(buf, 0, position_fix);
-	_mav_put_uint8_t(buf, 1, vision_fix);
-	_mav_put_uint8_t(buf, 2, gps_fix);
-	_mav_put_uint8_t(buf, 3, ahrs_health);
-	_mav_put_uint8_t(buf, 4, control_att);
-	_mav_put_uint8_t(buf, 5, control_pos_xy);
-	_mav_put_uint8_t(buf, 6, control_pos_z);
-	_mav_put_uint8_t(buf, 7, control_pos_yaw);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
-#else
-	mavlink_control_status_t packet;
-	packet.position_fix = position_fix;
-	packet.vision_fix = vision_fix;
-	packet.gps_fix = gps_fix;
-	packet.ahrs_health = ahrs_health;
-	packet.control_att = control_att;
-	packet.control_pos_xy = control_pos_xy;
-	packet.control_pos_z = control_pos_z;
-	packet.control_pos_yaw = control_pos_yaw;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_CONTROL_STATUS;
-	return mavlink_finalize_message(msg, system_id, component_id, 8, 157);
-}
-
-/**
- * @brief Pack a control_status 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
- * @param position_fix Position fix: 0: lost, 2: 2D position fix, 3: 3D position fix 
- * @param vision_fix Vision position fix: 0: lost, 1: 2D local position hold, 2: 2D global position fix, 3: 3D global position fix 
- * @param gps_fix GPS position fix: 0: no reception, 1: Minimum 1 satellite, but no position fix, 2: 2D position fix, 3: 3D position fix 
- * @param ahrs_health Attitude estimation health: 0: poor, 255: excellent
- * @param control_att 0: Attitude control disabled, 1: enabled
- * @param control_pos_xy 0: X, Y position control disabled, 1: enabled
- * @param control_pos_z 0: Z position control disabled, 1: enabled
- * @param control_pos_yaw 0: Yaw angle control disabled, 1: enabled
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_control_status_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t position_fix,uint8_t vision_fix,uint8_t gps_fix,uint8_t ahrs_health,uint8_t control_att,uint8_t control_pos_xy,uint8_t control_pos_z,uint8_t control_pos_yaw)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[8];
-	_mav_put_uint8_t(buf, 0, position_fix);
-	_mav_put_uint8_t(buf, 1, vision_fix);
-	_mav_put_uint8_t(buf, 2, gps_fix);
-	_mav_put_uint8_t(buf, 3, ahrs_health);
-	_mav_put_uint8_t(buf, 4, control_att);
-	_mav_put_uint8_t(buf, 5, control_pos_xy);
-	_mav_put_uint8_t(buf, 6, control_pos_z);
-	_mav_put_uint8_t(buf, 7, control_pos_yaw);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
-#else
-	mavlink_control_status_t packet;
-	packet.position_fix = position_fix;
-	packet.vision_fix = vision_fix;
-	packet.gps_fix = gps_fix;
-	packet.ahrs_health = ahrs_health;
-	packet.control_att = control_att;
-	packet.control_pos_xy = control_pos_xy;
-	packet.control_pos_z = control_pos_z;
-	packet.control_pos_yaw = control_pos_yaw;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_CONTROL_STATUS;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 8, 157);
-}
-
-/**
- * @brief Encode a control_status 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 control_status C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_control_status_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_control_status_t* control_status)
-{
-	return mavlink_msg_control_status_pack(system_id, component_id, msg, control_status->position_fix, control_status->vision_fix, control_status->gps_fix, control_status->ahrs_health, control_status->control_att, control_status->control_pos_xy, control_status->control_pos_z, control_status->control_pos_yaw);
-}
-
-/**
- * @brief Send a control_status message
- * @param chan MAVLink channel to send the message
- *
- * @param position_fix Position fix: 0: lost, 2: 2D position fix, 3: 3D position fix 
- * @param vision_fix Vision position fix: 0: lost, 1: 2D local position hold, 2: 2D global position fix, 3: 3D global position fix 
- * @param gps_fix GPS position fix: 0: no reception, 1: Minimum 1 satellite, but no position fix, 2: 2D position fix, 3: 3D position fix 
- * @param ahrs_health Attitude estimation health: 0: poor, 255: excellent
- * @param control_att 0: Attitude control disabled, 1: enabled
- * @param control_pos_xy 0: X, Y position control disabled, 1: enabled
- * @param control_pos_z 0: Z position control disabled, 1: enabled
- * @param control_pos_yaw 0: Yaw angle control disabled, 1: enabled
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_control_status_send(mavlink_channel_t chan, uint8_t position_fix, uint8_t vision_fix, uint8_t gps_fix, uint8_t ahrs_health, uint8_t control_att, uint8_t control_pos_xy, uint8_t control_pos_z, uint8_t control_pos_yaw)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[8];
-	_mav_put_uint8_t(buf, 0, position_fix);
-	_mav_put_uint8_t(buf, 1, vision_fix);
-	_mav_put_uint8_t(buf, 2, gps_fix);
-	_mav_put_uint8_t(buf, 3, ahrs_health);
-	_mav_put_uint8_t(buf, 4, control_att);
-	_mav_put_uint8_t(buf, 5, control_pos_xy);
-	_mav_put_uint8_t(buf, 6, control_pos_z);
-	_mav_put_uint8_t(buf, 7, control_pos_yaw);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CONTROL_STATUS, buf, 8, 157);
-#else
-	mavlink_control_status_t packet;
-	packet.position_fix = position_fix;
-	packet.vision_fix = vision_fix;
-	packet.gps_fix = gps_fix;
-	packet.ahrs_health = ahrs_health;
-	packet.control_att = control_att;
-	packet.control_pos_xy = control_pos_xy;
-	packet.control_pos_z = control_pos_z;
-	packet.control_pos_yaw = control_pos_yaw;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_CONTROL_STATUS, (const char *)&packet, 8, 157);
-#endif
-}
-
-#endif
-
-// MESSAGE CONTROL_STATUS UNPACKING
-
-
-/**
- * @brief Get field position_fix from control_status message
- *
- * @return Position fix: 0: lost, 2: 2D position fix, 3: 3D position fix 
- */
-static inline uint8_t mavlink_msg_control_status_get_position_fix(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  0);
-}
-
-/**
- * @brief Get field vision_fix from control_status message
- *
- * @return Vision position fix: 0: lost, 1: 2D local position hold, 2: 2D global position fix, 3: 3D global position fix 
- */
-static inline uint8_t mavlink_msg_control_status_get_vision_fix(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  1);
-}
-
-/**
- * @brief Get field gps_fix from control_status message
- *
- * @return GPS position fix: 0: no reception, 1: Minimum 1 satellite, but no position fix, 2: 2D position fix, 3: 3D position fix 
- */
-static inline uint8_t mavlink_msg_control_status_get_gps_fix(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  2);
-}
-
-/**
- * @brief Get field ahrs_health from control_status message
- *
- * @return Attitude estimation health: 0: poor, 255: excellent
- */
-static inline uint8_t mavlink_msg_control_status_get_ahrs_health(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  3);
-}
-
-/**
- * @brief Get field control_att from control_status message
- *
- * @return 0: Attitude control disabled, 1: enabled
- */
-static inline uint8_t mavlink_msg_control_status_get_control_att(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  4);
-}
-
-/**
- * @brief Get field control_pos_xy from control_status message
- *
- * @return 0: X, Y position control disabled, 1: enabled
- */
-static inline uint8_t mavlink_msg_control_status_get_control_pos_xy(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  5);
-}
-
-/**
- * @brief Get field control_pos_z from control_status message
- *
- * @return 0: Z position control disabled, 1: enabled
- */
-static inline uint8_t mavlink_msg_control_status_get_control_pos_z(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  6);
-}
-
-/**
- * @brief Get field control_pos_yaw from control_status message
- *
- * @return 0: Yaw angle control disabled, 1: enabled
- */
-static inline uint8_t mavlink_msg_control_status_get_control_pos_yaw(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  7);
-}
-
-/**
- * @brief Decode a control_status message into a struct
- *
- * @param msg The message to decode
- * @param control_status C-struct to decode the message contents into
- */
-static inline void mavlink_msg_control_status_decode(const mavlink_message_t* msg, mavlink_control_status_t* control_status)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	control_status->position_fix = mavlink_msg_control_status_get_position_fix(msg);
-	control_status->vision_fix = mavlink_msg_control_status_get_vision_fix(msg);
-	control_status->gps_fix = mavlink_msg_control_status_get_gps_fix(msg);
-	control_status->ahrs_health = mavlink_msg_control_status_get_ahrs_health(msg);
-	control_status->control_att = mavlink_msg_control_status_get_control_att(msg);
-	control_status->control_pos_xy = mavlink_msg_control_status_get_control_pos_xy(msg);
-	control_status->control_pos_z = mavlink_msg_control_status_get_control_pos_z(msg);
-	control_status->control_pos_yaw = mavlink_msg_control_status_get_control_pos_yaw(msg);
-#else
-	memcpy(control_status, _MAV_PAYLOAD(msg), 8);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_extended_message.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_extended_message.h
deleted file mode 100644
index 2c42739be79f94053f5232e54e64ce2954698409..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_extended_message.h
+++ /dev/null
@@ -1,188 +0,0 @@
-// MESSAGE EXTENDED_MESSAGE PACKING
-
-#define MAVLINK_MSG_ID_EXTENDED_MESSAGE 255
-
-typedef struct __mavlink_extended_message_t
-{
- uint8_t target_system; ///< System which should execute the command
- uint8_t target_component; ///< Component which should execute the command, 0 for all components
- uint8_t protocol_flags; ///< Retransmission / ACK flags
-} mavlink_extended_message_t;
-
-#define MAVLINK_MSG_ID_EXTENDED_MESSAGE_LEN 3
-#define MAVLINK_MSG_ID_255_LEN 3
-
-
-
-#define MAVLINK_MESSAGE_INFO_EXTENDED_MESSAGE { \
-	"EXTENDED_MESSAGE", \
-	3, \
-	{  { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_extended_message_t, target_system) }, \
-         { "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_extended_message_t, target_component) }, \
-         { "protocol_flags", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_extended_message_t, protocol_flags) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a extended_message 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 target_system System which should execute the command
- * @param target_component Component which should execute the command, 0 for all components
- * @param protocol_flags Retransmission / ACK flags
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_extended_message_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t target_system, uint8_t target_component, uint8_t protocol_flags)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[3];
-	_mav_put_uint8_t(buf, 0, target_system);
-	_mav_put_uint8_t(buf, 1, target_component);
-	_mav_put_uint8_t(buf, 2, protocol_flags);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
-#else
-	mavlink_extended_message_t packet;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-	packet.protocol_flags = protocol_flags;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_EXTENDED_MESSAGE;
-	return mavlink_finalize_message(msg, system_id, component_id, 3, 247);
-}
-
-/**
- * @brief Pack a extended_message 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
- * @param target_system System which should execute the command
- * @param target_component Component which should execute the command, 0 for all components
- * @param protocol_flags Retransmission / ACK flags
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_extended_message_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t target_system,uint8_t target_component,uint8_t protocol_flags)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[3];
-	_mav_put_uint8_t(buf, 0, target_system);
-	_mav_put_uint8_t(buf, 1, target_component);
-	_mav_put_uint8_t(buf, 2, protocol_flags);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
-#else
-	mavlink_extended_message_t packet;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-	packet.protocol_flags = protocol_flags;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_EXTENDED_MESSAGE;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 3, 247);
-}
-
-/**
- * @brief Encode a extended_message 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 extended_message C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_extended_message_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_extended_message_t* extended_message)
-{
-	return mavlink_msg_extended_message_pack(system_id, component_id, msg, extended_message->target_system, extended_message->target_component, extended_message->protocol_flags);
-}
-
-/**
- * @brief Send a extended_message message
- * @param chan MAVLink channel to send the message
- *
- * @param target_system System which should execute the command
- * @param target_component Component which should execute the command, 0 for all components
- * @param protocol_flags Retransmission / ACK flags
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_extended_message_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component, uint8_t protocol_flags)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[3];
-	_mav_put_uint8_t(buf, 0, target_system);
-	_mav_put_uint8_t(buf, 1, target_component);
-	_mav_put_uint8_t(buf, 2, protocol_flags);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_EXTENDED_MESSAGE, buf, 3, 247);
-#else
-	mavlink_extended_message_t packet;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-	packet.protocol_flags = protocol_flags;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_EXTENDED_MESSAGE, (const char *)&packet, 3, 247);
-#endif
-}
-
-#endif
-
-// MESSAGE EXTENDED_MESSAGE UNPACKING
-
-
-/**
- * @brief Get field target_system from extended_message message
- *
- * @return System which should execute the command
- */
-static inline uint8_t mavlink_msg_extended_message_get_target_system(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  0);
-}
-
-/**
- * @brief Get field target_component from extended_message message
- *
- * @return Component which should execute the command, 0 for all components
- */
-static inline uint8_t mavlink_msg_extended_message_get_target_component(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  1);
-}
-
-/**
- * @brief Get field protocol_flags from extended_message message
- *
- * @return Retransmission / ACK flags
- */
-static inline uint8_t mavlink_msg_extended_message_get_protocol_flags(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  2);
-}
-
-/**
- * @brief Decode a extended_message message into a struct
- *
- * @param msg The message to decode
- * @param extended_message C-struct to decode the message contents into
- */
-static inline void mavlink_msg_extended_message_decode(const mavlink_message_t* msg, mavlink_extended_message_t* extended_message)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	extended_message->target_system = mavlink_msg_extended_message_get_target_system(msg);
-	extended_message->target_component = mavlink_msg_extended_message_get_target_component(msg);
-	extended_message->protocol_flags = mavlink_msg_extended_message_get_protocol_flags(msg);
-#else
-	memcpy(extended_message, _MAV_PAYLOAD(msg), 3);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_global_position.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_global_position.h
deleted file mode 100644
index 6e902393da60cf8103fac362f533cce4fb2864e2..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_global_position.h
+++ /dev/null
@@ -1,276 +0,0 @@
-// MESSAGE GLOBAL_POSITION PACKING
-
-#define MAVLINK_MSG_ID_GLOBAL_POSITION 33
-
-typedef struct __mavlink_global_position_t
-{
- uint64_t usec; ///< Timestamp (microseconds since unix epoch)
- float lat; ///< Latitude, in degrees
- float lon; ///< Longitude, in degrees
- float alt; ///< Absolute altitude, in meters
- float vx; ///< X Speed (in Latitude direction, positive: going north)
- float vy; ///< Y Speed (in Longitude direction, positive: going east)
- float vz; ///< Z Speed (in Altitude direction, positive: going up)
-} mavlink_global_position_t;
-
-#define MAVLINK_MSG_ID_GLOBAL_POSITION_LEN 32
-#define MAVLINK_MSG_ID_33_LEN 32
-
-
-
-#define MAVLINK_MESSAGE_INFO_GLOBAL_POSITION { \
-	"GLOBAL_POSITION", \
-	7, \
-	{  { "usec", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_global_position_t, usec) }, \
-         { "lat", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_global_position_t, lat) }, \
-         { "lon", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_global_position_t, lon) }, \
-         { "alt", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_global_position_t, alt) }, \
-         { "vx", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_global_position_t, vx) }, \
-         { "vy", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_global_position_t, vy) }, \
-         { "vz", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_global_position_t, vz) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a global_position 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 usec Timestamp (microseconds since unix epoch)
- * @param lat Latitude, in degrees
- * @param lon Longitude, in degrees
- * @param alt Absolute altitude, in meters
- * @param vx X Speed (in Latitude direction, positive: going north)
- * @param vy Y Speed (in Longitude direction, positive: going east)
- * @param vz Z Speed (in Altitude direction, positive: going up)
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_global_position_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint64_t usec, float lat, float lon, float alt, float vx, float vy, float vz)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[32];
-	_mav_put_uint64_t(buf, 0, usec);
-	_mav_put_float(buf, 8, lat);
-	_mav_put_float(buf, 12, lon);
-	_mav_put_float(buf, 16, alt);
-	_mav_put_float(buf, 20, vx);
-	_mav_put_float(buf, 24, vy);
-	_mav_put_float(buf, 28, vz);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
-#else
-	mavlink_global_position_t packet;
-	packet.usec = usec;
-	packet.lat = lat;
-	packet.lon = lon;
-	packet.alt = alt;
-	packet.vx = vx;
-	packet.vy = vy;
-	packet.vz = vz;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_GLOBAL_POSITION;
-	return mavlink_finalize_message(msg, system_id, component_id, 32, 147);
-}
-
-/**
- * @brief Pack a global_position 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
- * @param usec Timestamp (microseconds since unix epoch)
- * @param lat Latitude, in degrees
- * @param lon Longitude, in degrees
- * @param alt Absolute altitude, in meters
- * @param vx X Speed (in Latitude direction, positive: going north)
- * @param vy Y Speed (in Longitude direction, positive: going east)
- * @param vz Z Speed (in Altitude direction, positive: going up)
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_global_position_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint64_t usec,float lat,float lon,float alt,float vx,float vy,float vz)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[32];
-	_mav_put_uint64_t(buf, 0, usec);
-	_mav_put_float(buf, 8, lat);
-	_mav_put_float(buf, 12, lon);
-	_mav_put_float(buf, 16, alt);
-	_mav_put_float(buf, 20, vx);
-	_mav_put_float(buf, 24, vy);
-	_mav_put_float(buf, 28, vz);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
-#else
-	mavlink_global_position_t packet;
-	packet.usec = usec;
-	packet.lat = lat;
-	packet.lon = lon;
-	packet.alt = alt;
-	packet.vx = vx;
-	packet.vy = vy;
-	packet.vz = vz;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_GLOBAL_POSITION;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 32, 147);
-}
-
-/**
- * @brief Encode a global_position 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 global_position C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_global_position_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_global_position_t* global_position)
-{
-	return mavlink_msg_global_position_pack(system_id, component_id, msg, global_position->usec, global_position->lat, global_position->lon, global_position->alt, global_position->vx, global_position->vy, global_position->vz);
-}
-
-/**
- * @brief Send a global_position message
- * @param chan MAVLink channel to send the message
- *
- * @param usec Timestamp (microseconds since unix epoch)
- * @param lat Latitude, in degrees
- * @param lon Longitude, in degrees
- * @param alt Absolute altitude, in meters
- * @param vx X Speed (in Latitude direction, positive: going north)
- * @param vy Y Speed (in Longitude direction, positive: going east)
- * @param vz Z Speed (in Altitude direction, positive: going up)
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_global_position_send(mavlink_channel_t chan, uint64_t usec, float lat, float lon, float alt, float vx, float vy, float vz)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[32];
-	_mav_put_uint64_t(buf, 0, usec);
-	_mav_put_float(buf, 8, lat);
-	_mav_put_float(buf, 12, lon);
-	_mav_put_float(buf, 16, alt);
-	_mav_put_float(buf, 20, vx);
-	_mav_put_float(buf, 24, vy);
-	_mav_put_float(buf, 28, vz);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GLOBAL_POSITION, buf, 32, 147);
-#else
-	mavlink_global_position_t packet;
-	packet.usec = usec;
-	packet.lat = lat;
-	packet.lon = lon;
-	packet.alt = alt;
-	packet.vx = vx;
-	packet.vy = vy;
-	packet.vz = vz;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GLOBAL_POSITION, (const char *)&packet, 32, 147);
-#endif
-}
-
-#endif
-
-// MESSAGE GLOBAL_POSITION UNPACKING
-
-
-/**
- * @brief Get field usec from global_position message
- *
- * @return Timestamp (microseconds since unix epoch)
- */
-static inline uint64_t mavlink_msg_global_position_get_usec(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint64_t(msg,  0);
-}
-
-/**
- * @brief Get field lat from global_position message
- *
- * @return Latitude, in degrees
- */
-static inline float mavlink_msg_global_position_get_lat(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  8);
-}
-
-/**
- * @brief Get field lon from global_position message
- *
- * @return Longitude, in degrees
- */
-static inline float mavlink_msg_global_position_get_lon(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  12);
-}
-
-/**
- * @brief Get field alt from global_position message
- *
- * @return Absolute altitude, in meters
- */
-static inline float mavlink_msg_global_position_get_alt(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  16);
-}
-
-/**
- * @brief Get field vx from global_position message
- *
- * @return X Speed (in Latitude direction, positive: going north)
- */
-static inline float mavlink_msg_global_position_get_vx(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  20);
-}
-
-/**
- * @brief Get field vy from global_position message
- *
- * @return Y Speed (in Longitude direction, positive: going east)
- */
-static inline float mavlink_msg_global_position_get_vy(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  24);
-}
-
-/**
- * @brief Get field vz from global_position message
- *
- * @return Z Speed (in Altitude direction, positive: going up)
- */
-static inline float mavlink_msg_global_position_get_vz(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  28);
-}
-
-/**
- * @brief Decode a global_position message into a struct
- *
- * @param msg The message to decode
- * @param global_position C-struct to decode the message contents into
- */
-static inline void mavlink_msg_global_position_decode(const mavlink_message_t* msg, mavlink_global_position_t* global_position)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	global_position->usec = mavlink_msg_global_position_get_usec(msg);
-	global_position->lat = mavlink_msg_global_position_get_lat(msg);
-	global_position->lon = mavlink_msg_global_position_get_lon(msg);
-	global_position->alt = mavlink_msg_global_position_get_alt(msg);
-	global_position->vx = mavlink_msg_global_position_get_vx(msg);
-	global_position->vy = mavlink_msg_global_position_get_vy(msg);
-	global_position->vz = mavlink_msg_global_position_get_vz(msg);
-#else
-	memcpy(global_position, _MAV_PAYLOAD(msg), 32);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_local_origin_set.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_local_origin_set.h
deleted file mode 100644
index 344c76aaa9bf765482c1b8e9b8f382a69b5b075f..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_local_origin_set.h
+++ /dev/null
@@ -1,188 +0,0 @@
-// MESSAGE GPS_LOCAL_ORIGIN_SET PACKING
-
-#define MAVLINK_MSG_ID_GPS_LOCAL_ORIGIN_SET 49
-
-typedef struct __mavlink_gps_local_origin_set_t
-{
- int32_t latitude; ///< Latitude (WGS84), expressed as * 1E7
- int32_t longitude; ///< Longitude (WGS84), expressed as * 1E7
- int32_t altitude; ///< Altitude(WGS84), expressed as * 1000
-} mavlink_gps_local_origin_set_t;
-
-#define MAVLINK_MSG_ID_GPS_LOCAL_ORIGIN_SET_LEN 12
-#define MAVLINK_MSG_ID_49_LEN 12
-
-
-
-#define MAVLINK_MESSAGE_INFO_GPS_LOCAL_ORIGIN_SET { \
-	"GPS_LOCAL_ORIGIN_SET", \
-	3, \
-	{  { "latitude", NULL, MAVLINK_TYPE_INT32_T, 0, 0, offsetof(mavlink_gps_local_origin_set_t, latitude) }, \
-         { "longitude", NULL, MAVLINK_TYPE_INT32_T, 0, 4, offsetof(mavlink_gps_local_origin_set_t, longitude) }, \
-         { "altitude", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_gps_local_origin_set_t, altitude) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a gps_local_origin_set 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 latitude Latitude (WGS84), expressed as * 1E7
- * @param longitude Longitude (WGS84), expressed as * 1E7
- * @param altitude Altitude(WGS84), expressed as * 1000
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_gps_local_origin_set_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       int32_t latitude, int32_t longitude, int32_t altitude)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[12];
-	_mav_put_int32_t(buf, 0, latitude);
-	_mav_put_int32_t(buf, 4, longitude);
-	_mav_put_int32_t(buf, 8, altitude);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 12);
-#else
-	mavlink_gps_local_origin_set_t packet;
-	packet.latitude = latitude;
-	packet.longitude = longitude;
-	packet.altitude = altitude;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 12);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_GPS_LOCAL_ORIGIN_SET;
-	return mavlink_finalize_message(msg, system_id, component_id, 12, 14);
-}
-
-/**
- * @brief Pack a gps_local_origin_set 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
- * @param latitude Latitude (WGS84), expressed as * 1E7
- * @param longitude Longitude (WGS84), expressed as * 1E7
- * @param altitude Altitude(WGS84), expressed as * 1000
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_gps_local_origin_set_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           int32_t latitude,int32_t longitude,int32_t altitude)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[12];
-	_mav_put_int32_t(buf, 0, latitude);
-	_mav_put_int32_t(buf, 4, longitude);
-	_mav_put_int32_t(buf, 8, altitude);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 12);
-#else
-	mavlink_gps_local_origin_set_t packet;
-	packet.latitude = latitude;
-	packet.longitude = longitude;
-	packet.altitude = altitude;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 12);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_GPS_LOCAL_ORIGIN_SET;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 12, 14);
-}
-
-/**
- * @brief Encode a gps_local_origin_set 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 gps_local_origin_set C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_gps_local_origin_set_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_gps_local_origin_set_t* gps_local_origin_set)
-{
-	return mavlink_msg_gps_local_origin_set_pack(system_id, component_id, msg, gps_local_origin_set->latitude, gps_local_origin_set->longitude, gps_local_origin_set->altitude);
-}
-
-/**
- * @brief Send a gps_local_origin_set message
- * @param chan MAVLink channel to send the message
- *
- * @param latitude Latitude (WGS84), expressed as * 1E7
- * @param longitude Longitude (WGS84), expressed as * 1E7
- * @param altitude Altitude(WGS84), expressed as * 1000
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_gps_local_origin_set_send(mavlink_channel_t chan, int32_t latitude, int32_t longitude, int32_t altitude)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[12];
-	_mav_put_int32_t(buf, 0, latitude);
-	_mav_put_int32_t(buf, 4, longitude);
-	_mav_put_int32_t(buf, 8, altitude);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GPS_LOCAL_ORIGIN_SET, buf, 12, 14);
-#else
-	mavlink_gps_local_origin_set_t packet;
-	packet.latitude = latitude;
-	packet.longitude = longitude;
-	packet.altitude = altitude;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GPS_LOCAL_ORIGIN_SET, (const char *)&packet, 12, 14);
-#endif
-}
-
-#endif
-
-// MESSAGE GPS_LOCAL_ORIGIN_SET UNPACKING
-
-
-/**
- * @brief Get field latitude from gps_local_origin_set message
- *
- * @return Latitude (WGS84), expressed as * 1E7
- */
-static inline int32_t mavlink_msg_gps_local_origin_set_get_latitude(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_int32_t(msg,  0);
-}
-
-/**
- * @brief Get field longitude from gps_local_origin_set message
- *
- * @return Longitude (WGS84), expressed as * 1E7
- */
-static inline int32_t mavlink_msg_gps_local_origin_set_get_longitude(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_int32_t(msg,  4);
-}
-
-/**
- * @brief Get field altitude from gps_local_origin_set message
- *
- * @return Altitude(WGS84), expressed as * 1000
- */
-static inline int32_t mavlink_msg_gps_local_origin_set_get_altitude(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_int32_t(msg,  8);
-}
-
-/**
- * @brief Decode a gps_local_origin_set message into a struct
- *
- * @param msg The message to decode
- * @param gps_local_origin_set C-struct to decode the message contents into
- */
-static inline void mavlink_msg_gps_local_origin_set_decode(const mavlink_message_t* msg, mavlink_gps_local_origin_set_t* gps_local_origin_set)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	gps_local_origin_set->latitude = mavlink_msg_gps_local_origin_set_get_latitude(msg);
-	gps_local_origin_set->longitude = mavlink_msg_gps_local_origin_set_get_longitude(msg);
-	gps_local_origin_set->altitude = mavlink_msg_gps_local_origin_set_get_altitude(msg);
-#else
-	memcpy(gps_local_origin_set, _MAV_PAYLOAD(msg), 12);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_raw.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_raw.h
deleted file mode 100644
index 17f629452636962c0219a0baa403e9e2fcafa7bd..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_raw.h
+++ /dev/null
@@ -1,320 +0,0 @@
-// MESSAGE GPS_RAW PACKING
-
-#define MAVLINK_MSG_ID_GPS_RAW 32
-
-typedef struct __mavlink_gps_raw_t
-{
- uint64_t usec; ///< Timestamp (microseconds since UNIX epoch or microseconds since system boot)
- float lat; ///< Latitude in degrees
- float lon; ///< Longitude in degrees
- float alt; ///< Altitude in meters
- float eph; ///< GPS HDOP
- float epv; ///< GPS VDOP
- float v; ///< GPS ground speed
- float hdg; ///< Compass heading in degrees, 0..360 degrees
- uint8_t fix_type; ///< 0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix.
-} mavlink_gps_raw_t;
-
-#define MAVLINK_MSG_ID_GPS_RAW_LEN 37
-#define MAVLINK_MSG_ID_32_LEN 37
-
-
-
-#define MAVLINK_MESSAGE_INFO_GPS_RAW { \
-	"GPS_RAW", \
-	9, \
-	{  { "usec", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_gps_raw_t, usec) }, \
-         { "lat", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_gps_raw_t, lat) }, \
-         { "lon", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_gps_raw_t, lon) }, \
-         { "alt", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_gps_raw_t, alt) }, \
-         { "eph", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_gps_raw_t, eph) }, \
-         { "epv", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_gps_raw_t, epv) }, \
-         { "v", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_gps_raw_t, v) }, \
-         { "hdg", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_gps_raw_t, hdg) }, \
-         { "fix_type", NULL, MAVLINK_TYPE_UINT8_T, 0, 36, offsetof(mavlink_gps_raw_t, fix_type) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a gps_raw 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 usec Timestamp (microseconds since UNIX epoch or microseconds since system boot)
- * @param fix_type 0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix.
- * @param lat Latitude in degrees
- * @param lon Longitude in degrees
- * @param alt Altitude in meters
- * @param eph GPS HDOP
- * @param epv GPS VDOP
- * @param v GPS ground speed
- * @param hdg Compass heading in degrees, 0..360 degrees
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_gps_raw_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint64_t usec, uint8_t fix_type, float lat, float lon, float alt, float eph, float epv, float v, float hdg)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[37];
-	_mav_put_uint64_t(buf, 0, usec);
-	_mav_put_float(buf, 8, lat);
-	_mav_put_float(buf, 12, lon);
-	_mav_put_float(buf, 16, alt);
-	_mav_put_float(buf, 20, eph);
-	_mav_put_float(buf, 24, epv);
-	_mav_put_float(buf, 28, v);
-	_mav_put_float(buf, 32, hdg);
-	_mav_put_uint8_t(buf, 36, fix_type);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 37);
-#else
-	mavlink_gps_raw_t packet;
-	packet.usec = usec;
-	packet.lat = lat;
-	packet.lon = lon;
-	packet.alt = alt;
-	packet.eph = eph;
-	packet.epv = epv;
-	packet.v = v;
-	packet.hdg = hdg;
-	packet.fix_type = fix_type;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 37);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_GPS_RAW;
-	return mavlink_finalize_message(msg, system_id, component_id, 37, 220);
-}
-
-/**
- * @brief Pack a gps_raw 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
- * @param usec Timestamp (microseconds since UNIX epoch or microseconds since system boot)
- * @param fix_type 0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix.
- * @param lat Latitude in degrees
- * @param lon Longitude in degrees
- * @param alt Altitude in meters
- * @param eph GPS HDOP
- * @param epv GPS VDOP
- * @param v GPS ground speed
- * @param hdg Compass heading in degrees, 0..360 degrees
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_gps_raw_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint64_t usec,uint8_t fix_type,float lat,float lon,float alt,float eph,float epv,float v,float hdg)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[37];
-	_mav_put_uint64_t(buf, 0, usec);
-	_mav_put_float(buf, 8, lat);
-	_mav_put_float(buf, 12, lon);
-	_mav_put_float(buf, 16, alt);
-	_mav_put_float(buf, 20, eph);
-	_mav_put_float(buf, 24, epv);
-	_mav_put_float(buf, 28, v);
-	_mav_put_float(buf, 32, hdg);
-	_mav_put_uint8_t(buf, 36, fix_type);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 37);
-#else
-	mavlink_gps_raw_t packet;
-	packet.usec = usec;
-	packet.lat = lat;
-	packet.lon = lon;
-	packet.alt = alt;
-	packet.eph = eph;
-	packet.epv = epv;
-	packet.v = v;
-	packet.hdg = hdg;
-	packet.fix_type = fix_type;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 37);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_GPS_RAW;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 37, 220);
-}
-
-/**
- * @brief Encode a gps_raw 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 gps_raw C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_gps_raw_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_gps_raw_t* gps_raw)
-{
-	return mavlink_msg_gps_raw_pack(system_id, component_id, msg, gps_raw->usec, gps_raw->fix_type, gps_raw->lat, gps_raw->lon, gps_raw->alt, gps_raw->eph, gps_raw->epv, gps_raw->v, gps_raw->hdg);
-}
-
-/**
- * @brief Send a gps_raw message
- * @param chan MAVLink channel to send the message
- *
- * @param usec Timestamp (microseconds since UNIX epoch or microseconds since system boot)
- * @param fix_type 0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix.
- * @param lat Latitude in degrees
- * @param lon Longitude in degrees
- * @param alt Altitude in meters
- * @param eph GPS HDOP
- * @param epv GPS VDOP
- * @param v GPS ground speed
- * @param hdg Compass heading in degrees, 0..360 degrees
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_gps_raw_send(mavlink_channel_t chan, uint64_t usec, uint8_t fix_type, float lat, float lon, float alt, float eph, float epv, float v, float hdg)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[37];
-	_mav_put_uint64_t(buf, 0, usec);
-	_mav_put_float(buf, 8, lat);
-	_mav_put_float(buf, 12, lon);
-	_mav_put_float(buf, 16, alt);
-	_mav_put_float(buf, 20, eph);
-	_mav_put_float(buf, 24, epv);
-	_mav_put_float(buf, 28, v);
-	_mav_put_float(buf, 32, hdg);
-	_mav_put_uint8_t(buf, 36, fix_type);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GPS_RAW, buf, 37, 220);
-#else
-	mavlink_gps_raw_t packet;
-	packet.usec = usec;
-	packet.lat = lat;
-	packet.lon = lon;
-	packet.alt = alt;
-	packet.eph = eph;
-	packet.epv = epv;
-	packet.v = v;
-	packet.hdg = hdg;
-	packet.fix_type = fix_type;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GPS_RAW, (const char *)&packet, 37, 220);
-#endif
-}
-
-#endif
-
-// MESSAGE GPS_RAW UNPACKING
-
-
-/**
- * @brief Get field usec from gps_raw message
- *
- * @return Timestamp (microseconds since UNIX epoch or microseconds since system boot)
- */
-static inline uint64_t mavlink_msg_gps_raw_get_usec(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint64_t(msg,  0);
-}
-
-/**
- * @brief Get field fix_type from gps_raw message
- *
- * @return 0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix.
- */
-static inline uint8_t mavlink_msg_gps_raw_get_fix_type(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  36);
-}
-
-/**
- * @brief Get field lat from gps_raw message
- *
- * @return Latitude in degrees
- */
-static inline float mavlink_msg_gps_raw_get_lat(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  8);
-}
-
-/**
- * @brief Get field lon from gps_raw message
- *
- * @return Longitude in degrees
- */
-static inline float mavlink_msg_gps_raw_get_lon(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  12);
-}
-
-/**
- * @brief Get field alt from gps_raw message
- *
- * @return Altitude in meters
- */
-static inline float mavlink_msg_gps_raw_get_alt(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  16);
-}
-
-/**
- * @brief Get field eph from gps_raw message
- *
- * @return GPS HDOP
- */
-static inline float mavlink_msg_gps_raw_get_eph(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  20);
-}
-
-/**
- * @brief Get field epv from gps_raw message
- *
- * @return GPS VDOP
- */
-static inline float mavlink_msg_gps_raw_get_epv(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  24);
-}
-
-/**
- * @brief Get field v from gps_raw message
- *
- * @return GPS ground speed
- */
-static inline float mavlink_msg_gps_raw_get_v(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  28);
-}
-
-/**
- * @brief Get field hdg from gps_raw message
- *
- * @return Compass heading in degrees, 0..360 degrees
- */
-static inline float mavlink_msg_gps_raw_get_hdg(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  32);
-}
-
-/**
- * @brief Decode a gps_raw message into a struct
- *
- * @param msg The message to decode
- * @param gps_raw C-struct to decode the message contents into
- */
-static inline void mavlink_msg_gps_raw_decode(const mavlink_message_t* msg, mavlink_gps_raw_t* gps_raw)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	gps_raw->usec = mavlink_msg_gps_raw_get_usec(msg);
-	gps_raw->lat = mavlink_msg_gps_raw_get_lat(msg);
-	gps_raw->lon = mavlink_msg_gps_raw_get_lon(msg);
-	gps_raw->alt = mavlink_msg_gps_raw_get_alt(msg);
-	gps_raw->eph = mavlink_msg_gps_raw_get_eph(msg);
-	gps_raw->epv = mavlink_msg_gps_raw_get_epv(msg);
-	gps_raw->v = mavlink_msg_gps_raw_get_v(msg);
-	gps_raw->hdg = mavlink_msg_gps_raw_get_hdg(msg);
-	gps_raw->fix_type = mavlink_msg_gps_raw_get_fix_type(msg);
-#else
-	memcpy(gps_raw, _MAV_PAYLOAD(msg), 37);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_set_global_origin.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_set_global_origin.h
deleted file mode 100644
index 97ce149078c6669e37da2017a9dd2772945412ca..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_gps_set_global_origin.h
+++ /dev/null
@@ -1,232 +0,0 @@
-// MESSAGE GPS_SET_GLOBAL_ORIGIN PACKING
-
-#define MAVLINK_MSG_ID_GPS_SET_GLOBAL_ORIGIN 48
-
-typedef struct __mavlink_gps_set_global_origin_t
-{
- int32_t latitude; ///< global position * 1E7
- int32_t longitude; ///< global position * 1E7
- int32_t altitude; ///< global position * 1000
- uint8_t target_system; ///< System ID
- uint8_t target_component; ///< Component ID
-} mavlink_gps_set_global_origin_t;
-
-#define MAVLINK_MSG_ID_GPS_SET_GLOBAL_ORIGIN_LEN 14
-#define MAVLINK_MSG_ID_48_LEN 14
-
-
-
-#define MAVLINK_MESSAGE_INFO_GPS_SET_GLOBAL_ORIGIN { \
-	"GPS_SET_GLOBAL_ORIGIN", \
-	5, \
-	{  { "latitude", NULL, MAVLINK_TYPE_INT32_T, 0, 0, offsetof(mavlink_gps_set_global_origin_t, latitude) }, \
-         { "longitude", NULL, MAVLINK_TYPE_INT32_T, 0, 4, offsetof(mavlink_gps_set_global_origin_t, longitude) }, \
-         { "altitude", NULL, MAVLINK_TYPE_INT32_T, 0, 8, offsetof(mavlink_gps_set_global_origin_t, altitude) }, \
-         { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 12, offsetof(mavlink_gps_set_global_origin_t, target_system) }, \
-         { "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 13, offsetof(mavlink_gps_set_global_origin_t, target_component) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a gps_set_global_origin 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 target_system System ID
- * @param target_component Component ID
- * @param latitude global position * 1E7
- * @param longitude global position * 1E7
- * @param altitude global position * 1000
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_gps_set_global_origin_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t target_system, uint8_t target_component, int32_t latitude, int32_t longitude, int32_t altitude)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[14];
-	_mav_put_int32_t(buf, 0, latitude);
-	_mav_put_int32_t(buf, 4, longitude);
-	_mav_put_int32_t(buf, 8, altitude);
-	_mav_put_uint8_t(buf, 12, target_system);
-	_mav_put_uint8_t(buf, 13, target_component);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
-#else
-	mavlink_gps_set_global_origin_t packet;
-	packet.latitude = latitude;
-	packet.longitude = longitude;
-	packet.altitude = altitude;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_GPS_SET_GLOBAL_ORIGIN;
-	return mavlink_finalize_message(msg, system_id, component_id, 14, 170);
-}
-
-/**
- * @brief Pack a gps_set_global_origin 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
- * @param target_system System ID
- * @param target_component Component ID
- * @param latitude global position * 1E7
- * @param longitude global position * 1E7
- * @param altitude global position * 1000
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_gps_set_global_origin_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t target_system,uint8_t target_component,int32_t latitude,int32_t longitude,int32_t altitude)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[14];
-	_mav_put_int32_t(buf, 0, latitude);
-	_mav_put_int32_t(buf, 4, longitude);
-	_mav_put_int32_t(buf, 8, altitude);
-	_mav_put_uint8_t(buf, 12, target_system);
-	_mav_put_uint8_t(buf, 13, target_component);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 14);
-#else
-	mavlink_gps_set_global_origin_t packet;
-	packet.latitude = latitude;
-	packet.longitude = longitude;
-	packet.altitude = altitude;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 14);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_GPS_SET_GLOBAL_ORIGIN;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 14, 170);
-}
-
-/**
- * @brief Encode a gps_set_global_origin 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 gps_set_global_origin C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_gps_set_global_origin_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_gps_set_global_origin_t* gps_set_global_origin)
-{
-	return mavlink_msg_gps_set_global_origin_pack(system_id, component_id, msg, gps_set_global_origin->target_system, gps_set_global_origin->target_component, gps_set_global_origin->latitude, gps_set_global_origin->longitude, gps_set_global_origin->altitude);
-}
-
-/**
- * @brief Send a gps_set_global_origin message
- * @param chan MAVLink channel to send the message
- *
- * @param target_system System ID
- * @param target_component Component ID
- * @param latitude global position * 1E7
- * @param longitude global position * 1E7
- * @param altitude global position * 1000
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_gps_set_global_origin_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component, int32_t latitude, int32_t longitude, int32_t altitude)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[14];
-	_mav_put_int32_t(buf, 0, latitude);
-	_mav_put_int32_t(buf, 4, longitude);
-	_mav_put_int32_t(buf, 8, altitude);
-	_mav_put_uint8_t(buf, 12, target_system);
-	_mav_put_uint8_t(buf, 13, target_component);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GPS_SET_GLOBAL_ORIGIN, buf, 14, 170);
-#else
-	mavlink_gps_set_global_origin_t packet;
-	packet.latitude = latitude;
-	packet.longitude = longitude;
-	packet.altitude = altitude;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_GPS_SET_GLOBAL_ORIGIN, (const char *)&packet, 14, 170);
-#endif
-}
-
-#endif
-
-// MESSAGE GPS_SET_GLOBAL_ORIGIN UNPACKING
-
-
-/**
- * @brief Get field target_system from gps_set_global_origin message
- *
- * @return System ID
- */
-static inline uint8_t mavlink_msg_gps_set_global_origin_get_target_system(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  12);
-}
-
-/**
- * @brief Get field target_component from gps_set_global_origin message
- *
- * @return Component ID
- */
-static inline uint8_t mavlink_msg_gps_set_global_origin_get_target_component(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  13);
-}
-
-/**
- * @brief Get field latitude from gps_set_global_origin message
- *
- * @return global position * 1E7
- */
-static inline int32_t mavlink_msg_gps_set_global_origin_get_latitude(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_int32_t(msg,  0);
-}
-
-/**
- * @brief Get field longitude from gps_set_global_origin message
- *
- * @return global position * 1E7
- */
-static inline int32_t mavlink_msg_gps_set_global_origin_get_longitude(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_int32_t(msg,  4);
-}
-
-/**
- * @brief Get field altitude from gps_set_global_origin message
- *
- * @return global position * 1000
- */
-static inline int32_t mavlink_msg_gps_set_global_origin_get_altitude(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_int32_t(msg,  8);
-}
-
-/**
- * @brief Decode a gps_set_global_origin message into a struct
- *
- * @param msg The message to decode
- * @param gps_set_global_origin C-struct to decode the message contents into
- */
-static inline void mavlink_msg_gps_set_global_origin_decode(const mavlink_message_t* msg, mavlink_gps_set_global_origin_t* gps_set_global_origin)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	gps_set_global_origin->latitude = mavlink_msg_gps_set_global_origin_get_latitude(msg);
-	gps_set_global_origin->longitude = mavlink_msg_gps_set_global_origin_get_longitude(msg);
-	gps_set_global_origin->altitude = mavlink_msg_gps_set_global_origin_get_altitude(msg);
-	gps_set_global_origin->target_system = mavlink_msg_gps_set_global_origin_get_target_system(msg);
-	gps_set_global_origin->target_component = mavlink_msg_gps_set_global_origin_get_target_component(msg);
-#else
-	memcpy(gps_set_global_origin, _MAV_PAYLOAD(msg), 14);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_local_position.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_local_position.h
deleted file mode 100644
index e0a90edae9eae1c50d09cf3888b00958730743fa..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_local_position.h
+++ /dev/null
@@ -1,276 +0,0 @@
-// MESSAGE LOCAL_POSITION PACKING
-
-#define MAVLINK_MSG_ID_LOCAL_POSITION 31
-
-typedef struct __mavlink_local_position_t
-{
- uint64_t usec; ///< Timestamp (microseconds since UNIX epoch or microseconds since system boot)
- float x; ///< X Position
- float y; ///< Y Position
- float z; ///< Z Position
- float vx; ///< X Speed
- float vy; ///< Y Speed
- float vz; ///< Z Speed
-} mavlink_local_position_t;
-
-#define MAVLINK_MSG_ID_LOCAL_POSITION_LEN 32
-#define MAVLINK_MSG_ID_31_LEN 32
-
-
-
-#define MAVLINK_MESSAGE_INFO_LOCAL_POSITION { \
-	"LOCAL_POSITION", \
-	7, \
-	{  { "usec", NULL, MAVLINK_TYPE_UINT64_T, 0, 0, offsetof(mavlink_local_position_t, usec) }, \
-         { "x", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_local_position_t, x) }, \
-         { "y", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_local_position_t, y) }, \
-         { "z", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_local_position_t, z) }, \
-         { "vx", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_local_position_t, vx) }, \
-         { "vy", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_local_position_t, vy) }, \
-         { "vz", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_local_position_t, vz) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a local_position 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 usec Timestamp (microseconds since UNIX epoch or microseconds since system boot)
- * @param x X Position
- * @param y Y Position
- * @param z Z Position
- * @param vx X Speed
- * @param vy Y Speed
- * @param vz Z Speed
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_local_position_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint64_t usec, float x, float y, float z, float vx, float vy, float vz)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[32];
-	_mav_put_uint64_t(buf, 0, usec);
-	_mav_put_float(buf, 8, x);
-	_mav_put_float(buf, 12, y);
-	_mav_put_float(buf, 16, z);
-	_mav_put_float(buf, 20, vx);
-	_mav_put_float(buf, 24, vy);
-	_mav_put_float(buf, 28, vz);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
-#else
-	mavlink_local_position_t packet;
-	packet.usec = usec;
-	packet.x = x;
-	packet.y = y;
-	packet.z = z;
-	packet.vx = vx;
-	packet.vy = vy;
-	packet.vz = vz;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_LOCAL_POSITION;
-	return mavlink_finalize_message(msg, system_id, component_id, 32, 126);
-}
-
-/**
- * @brief Pack a local_position 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
- * @param usec Timestamp (microseconds since UNIX epoch or microseconds since system boot)
- * @param x X Position
- * @param y Y Position
- * @param z Z Position
- * @param vx X Speed
- * @param vy Y Speed
- * @param vz Z Speed
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_local_position_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint64_t usec,float x,float y,float z,float vx,float vy,float vz)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[32];
-	_mav_put_uint64_t(buf, 0, usec);
-	_mav_put_float(buf, 8, x);
-	_mav_put_float(buf, 12, y);
-	_mav_put_float(buf, 16, z);
-	_mav_put_float(buf, 20, vx);
-	_mav_put_float(buf, 24, vy);
-	_mav_put_float(buf, 28, vz);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 32);
-#else
-	mavlink_local_position_t packet;
-	packet.usec = usec;
-	packet.x = x;
-	packet.y = y;
-	packet.z = z;
-	packet.vx = vx;
-	packet.vy = vy;
-	packet.vz = vz;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 32);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_LOCAL_POSITION;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 32, 126);
-}
-
-/**
- * @brief Encode a local_position 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 local_position C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_local_position_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_local_position_t* local_position)
-{
-	return mavlink_msg_local_position_pack(system_id, component_id, msg, local_position->usec, local_position->x, local_position->y, local_position->z, local_position->vx, local_position->vy, local_position->vz);
-}
-
-/**
- * @brief Send a local_position message
- * @param chan MAVLink channel to send the message
- *
- * @param usec Timestamp (microseconds since UNIX epoch or microseconds since system boot)
- * @param x X Position
- * @param y Y Position
- * @param z Z Position
- * @param vx X Speed
- * @param vy Y Speed
- * @param vz Z Speed
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_local_position_send(mavlink_channel_t chan, uint64_t usec, float x, float y, float z, float vx, float vy, float vz)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[32];
-	_mav_put_uint64_t(buf, 0, usec);
-	_mav_put_float(buf, 8, x);
-	_mav_put_float(buf, 12, y);
-	_mav_put_float(buf, 16, z);
-	_mav_put_float(buf, 20, vx);
-	_mav_put_float(buf, 24, vy);
-	_mav_put_float(buf, 28, vz);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LOCAL_POSITION, buf, 32, 126);
-#else
-	mavlink_local_position_t packet;
-	packet.usec = usec;
-	packet.x = x;
-	packet.y = y;
-	packet.z = z;
-	packet.vx = vx;
-	packet.vy = vy;
-	packet.vz = vz;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LOCAL_POSITION, (const char *)&packet, 32, 126);
-#endif
-}
-
-#endif
-
-// MESSAGE LOCAL_POSITION UNPACKING
-
-
-/**
- * @brief Get field usec from local_position message
- *
- * @return Timestamp (microseconds since UNIX epoch or microseconds since system boot)
- */
-static inline uint64_t mavlink_msg_local_position_get_usec(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint64_t(msg,  0);
-}
-
-/**
- * @brief Get field x from local_position message
- *
- * @return X Position
- */
-static inline float mavlink_msg_local_position_get_x(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  8);
-}
-
-/**
- * @brief Get field y from local_position message
- *
- * @return Y Position
- */
-static inline float mavlink_msg_local_position_get_y(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  12);
-}
-
-/**
- * @brief Get field z from local_position message
- *
- * @return Z Position
- */
-static inline float mavlink_msg_local_position_get_z(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  16);
-}
-
-/**
- * @brief Get field vx from local_position message
- *
- * @return X Speed
- */
-static inline float mavlink_msg_local_position_get_vx(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  20);
-}
-
-/**
- * @brief Get field vy from local_position message
- *
- * @return Y Speed
- */
-static inline float mavlink_msg_local_position_get_vy(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  24);
-}
-
-/**
- * @brief Get field vz from local_position message
- *
- * @return Z Speed
- */
-static inline float mavlink_msg_local_position_get_vz(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  28);
-}
-
-/**
- * @brief Decode a local_position message into a struct
- *
- * @param msg The message to decode
- * @param local_position C-struct to decode the message contents into
- */
-static inline void mavlink_msg_local_position_decode(const mavlink_message_t* msg, mavlink_local_position_t* local_position)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	local_position->usec = mavlink_msg_local_position_get_usec(msg);
-	local_position->x = mavlink_msg_local_position_get_x(msg);
-	local_position->y = mavlink_msg_local_position_get_y(msg);
-	local_position->z = mavlink_msg_local_position_get_z(msg);
-	local_position->vx = mavlink_msg_local_position_get_vx(msg);
-	local_position->vy = mavlink_msg_local_position_get_vy(msg);
-	local_position->vz = mavlink_msg_local_position_get_vz(msg);
-#else
-	memcpy(local_position, _MAV_PAYLOAD(msg), 32);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_local_position_setpoint_set.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_local_position_setpoint_set.h
deleted file mode 100644
index a3183eb6900b115c35922fb090e3e7f08594d05e..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_local_position_setpoint_set.h
+++ /dev/null
@@ -1,254 +0,0 @@
-// MESSAGE LOCAL_POSITION_SETPOINT_SET PACKING
-
-#define MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT_SET 50
-
-typedef struct __mavlink_local_position_setpoint_set_t
-{
- float x; ///< x position
- float y; ///< y position
- float z; ///< z position
- float yaw; ///< Desired yaw angle
- uint8_t target_system; ///< System ID
- uint8_t target_component; ///< Component ID
-} mavlink_local_position_setpoint_set_t;
-
-#define MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT_SET_LEN 18
-#define MAVLINK_MSG_ID_50_LEN 18
-
-
-
-#define MAVLINK_MESSAGE_INFO_LOCAL_POSITION_SETPOINT_SET { \
-	"LOCAL_POSITION_SETPOINT_SET", \
-	6, \
-	{  { "x", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_local_position_setpoint_set_t, x) }, \
-         { "y", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_local_position_setpoint_set_t, y) }, \
-         { "z", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_local_position_setpoint_set_t, z) }, \
-         { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_local_position_setpoint_set_t, yaw) }, \
-         { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 16, offsetof(mavlink_local_position_setpoint_set_t, target_system) }, \
-         { "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 17, offsetof(mavlink_local_position_setpoint_set_t, target_component) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a local_position_setpoint_set 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 target_system System ID
- * @param target_component Component ID
- * @param x x position
- * @param y y position
- * @param z z position
- * @param yaw Desired yaw angle
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_local_position_setpoint_set_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t target_system, uint8_t target_component, float x, float y, float z, float yaw)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[18];
-	_mav_put_float(buf, 0, x);
-	_mav_put_float(buf, 4, y);
-	_mav_put_float(buf, 8, z);
-	_mav_put_float(buf, 12, yaw);
-	_mav_put_uint8_t(buf, 16, target_system);
-	_mav_put_uint8_t(buf, 17, target_component);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
-#else
-	mavlink_local_position_setpoint_set_t packet;
-	packet.x = x;
-	packet.y = y;
-	packet.z = z;
-	packet.yaw = yaw;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT_SET;
-	return mavlink_finalize_message(msg, system_id, component_id, 18, 73);
-}
-
-/**
- * @brief Pack a local_position_setpoint_set 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
- * @param target_system System ID
- * @param target_component Component ID
- * @param x x position
- * @param y y position
- * @param z z position
- * @param yaw Desired yaw angle
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_local_position_setpoint_set_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t target_system,uint8_t target_component,float x,float y,float z,float yaw)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[18];
-	_mav_put_float(buf, 0, x);
-	_mav_put_float(buf, 4, y);
-	_mav_put_float(buf, 8, z);
-	_mav_put_float(buf, 12, yaw);
-	_mav_put_uint8_t(buf, 16, target_system);
-	_mav_put_uint8_t(buf, 17, target_component);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 18);
-#else
-	mavlink_local_position_setpoint_set_t packet;
-	packet.x = x;
-	packet.y = y;
-	packet.z = z;
-	packet.yaw = yaw;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 18);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT_SET;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 18, 73);
-}
-
-/**
- * @brief Encode a local_position_setpoint_set 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 local_position_setpoint_set C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_local_position_setpoint_set_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_local_position_setpoint_set_t* local_position_setpoint_set)
-{
-	return mavlink_msg_local_position_setpoint_set_pack(system_id, component_id, msg, local_position_setpoint_set->target_system, local_position_setpoint_set->target_component, local_position_setpoint_set->x, local_position_setpoint_set->y, local_position_setpoint_set->z, local_position_setpoint_set->yaw);
-}
-
-/**
- * @brief Send a local_position_setpoint_set message
- * @param chan MAVLink channel to send the message
- *
- * @param target_system System ID
- * @param target_component Component ID
- * @param x x position
- * @param y y position
- * @param z z position
- * @param yaw Desired yaw angle
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_local_position_setpoint_set_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component, float x, float y, float z, float yaw)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[18];
-	_mav_put_float(buf, 0, x);
-	_mav_put_float(buf, 4, y);
-	_mav_put_float(buf, 8, z);
-	_mav_put_float(buf, 12, yaw);
-	_mav_put_uint8_t(buf, 16, target_system);
-	_mav_put_uint8_t(buf, 17, target_component);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT_SET, buf, 18, 73);
-#else
-	mavlink_local_position_setpoint_set_t packet;
-	packet.x = x;
-	packet.y = y;
-	packet.z = z;
-	packet.yaw = yaw;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT_SET, (const char *)&packet, 18, 73);
-#endif
-}
-
-#endif
-
-// MESSAGE LOCAL_POSITION_SETPOINT_SET UNPACKING
-
-
-/**
- * @brief Get field target_system from local_position_setpoint_set message
- *
- * @return System ID
- */
-static inline uint8_t mavlink_msg_local_position_setpoint_set_get_target_system(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  16);
-}
-
-/**
- * @brief Get field target_component from local_position_setpoint_set message
- *
- * @return Component ID
- */
-static inline uint8_t mavlink_msg_local_position_setpoint_set_get_target_component(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  17);
-}
-
-/**
- * @brief Get field x from local_position_setpoint_set message
- *
- * @return x position
- */
-static inline float mavlink_msg_local_position_setpoint_set_get_x(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  0);
-}
-
-/**
- * @brief Get field y from local_position_setpoint_set message
- *
- * @return y position
- */
-static inline float mavlink_msg_local_position_setpoint_set_get_y(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  4);
-}
-
-/**
- * @brief Get field z from local_position_setpoint_set message
- *
- * @return z position
- */
-static inline float mavlink_msg_local_position_setpoint_set_get_z(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  8);
-}
-
-/**
- * @brief Get field yaw from local_position_setpoint_set message
- *
- * @return Desired yaw angle
- */
-static inline float mavlink_msg_local_position_setpoint_set_get_yaw(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  12);
-}
-
-/**
- * @brief Decode a local_position_setpoint_set message into a struct
- *
- * @param msg The message to decode
- * @param local_position_setpoint_set C-struct to decode the message contents into
- */
-static inline void mavlink_msg_local_position_setpoint_set_decode(const mavlink_message_t* msg, mavlink_local_position_setpoint_set_t* local_position_setpoint_set)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	local_position_setpoint_set->x = mavlink_msg_local_position_setpoint_set_get_x(msg);
-	local_position_setpoint_set->y = mavlink_msg_local_position_setpoint_set_get_y(msg);
-	local_position_setpoint_set->z = mavlink_msg_local_position_setpoint_set_get_z(msg);
-	local_position_setpoint_set->yaw = mavlink_msg_local_position_setpoint_set_get_yaw(msg);
-	local_position_setpoint_set->target_system = mavlink_msg_local_position_setpoint_set_get_target_system(msg);
-	local_position_setpoint_set->target_component = mavlink_msg_local_position_setpoint_set_get_target_component(msg);
-#else
-	memcpy(local_position_setpoint_set, _MAV_PAYLOAD(msg), 18);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_object_detection_event.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_object_detection_event.h
deleted file mode 100644
index 3ee70ee87109102b4c3184b71f49e1e8ee9620f5..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_object_detection_event.h
+++ /dev/null
@@ -1,270 +0,0 @@
-// MESSAGE OBJECT_DETECTION_EVENT PACKING
-
-#define MAVLINK_MSG_ID_OBJECT_DETECTION_EVENT 140
-
-typedef struct __mavlink_object_detection_event_t
-{
- uint32_t time; ///< Timestamp in milliseconds since system boot
- float bearing; ///< Angle of the object with respect to the body frame in NED coordinates in radians. 0: front
- float distance; ///< Ground distance in meters
- uint16_t object_id; ///< Object ID
- uint8_t type; ///< Object type: 0: image, 1: letter, 2: ground vehicle, 3: air vehicle, 4: surface vehicle, 5: sub-surface vehicle, 6: human, 7: animal
- char name[20]; ///< Name of the object as defined by the detector
- uint8_t quality; ///< Detection quality / confidence. 0: bad, 255: maximum confidence
-} mavlink_object_detection_event_t;
-
-#define MAVLINK_MSG_ID_OBJECT_DETECTION_EVENT_LEN 36
-#define MAVLINK_MSG_ID_140_LEN 36
-
-#define MAVLINK_MSG_OBJECT_DETECTION_EVENT_FIELD_NAME_LEN 20
-
-#define MAVLINK_MESSAGE_INFO_OBJECT_DETECTION_EVENT { \
-	"OBJECT_DETECTION_EVENT", \
-	7, \
-	{  { "time", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_object_detection_event_t, time) }, \
-         { "bearing", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_object_detection_event_t, bearing) }, \
-         { "distance", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_object_detection_event_t, distance) }, \
-         { "object_id", NULL, MAVLINK_TYPE_UINT16_T, 0, 12, offsetof(mavlink_object_detection_event_t, object_id) }, \
-         { "type", NULL, MAVLINK_TYPE_UINT8_T, 0, 14, offsetof(mavlink_object_detection_event_t, type) }, \
-         { "name", NULL, MAVLINK_TYPE_CHAR, 20, 15, offsetof(mavlink_object_detection_event_t, name) }, \
-         { "quality", NULL, MAVLINK_TYPE_UINT8_T, 0, 35, offsetof(mavlink_object_detection_event_t, quality) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a object_detection_event 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 time Timestamp in milliseconds since system boot
- * @param object_id Object ID
- * @param type Object type: 0: image, 1: letter, 2: ground vehicle, 3: air vehicle, 4: surface vehicle, 5: sub-surface vehicle, 6: human, 7: animal
- * @param name Name of the object as defined by the detector
- * @param quality Detection quality / confidence. 0: bad, 255: maximum confidence
- * @param bearing Angle of the object with respect to the body frame in NED coordinates in radians. 0: front
- * @param distance Ground distance in meters
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_object_detection_event_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint32_t time, uint16_t object_id, uint8_t type, const char *name, uint8_t quality, float bearing, float distance)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[36];
-	_mav_put_uint32_t(buf, 0, time);
-	_mav_put_float(buf, 4, bearing);
-	_mav_put_float(buf, 8, distance);
-	_mav_put_uint16_t(buf, 12, object_id);
-	_mav_put_uint8_t(buf, 14, type);
-	_mav_put_uint8_t(buf, 35, quality);
-	_mav_put_char_array(buf, 15, name, 20);
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
-#else
-	mavlink_object_detection_event_t packet;
-	packet.time = time;
-	packet.bearing = bearing;
-	packet.distance = distance;
-	packet.object_id = object_id;
-	packet.type = type;
-	packet.quality = quality;
-	mav_array_memcpy(packet.name, name, sizeof(char)*20);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_OBJECT_DETECTION_EVENT;
-	return mavlink_finalize_message(msg, system_id, component_id, 36, 179);
-}
-
-/**
- * @brief Pack a object_detection_event 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
- * @param time Timestamp in milliseconds since system boot
- * @param object_id Object ID
- * @param type Object type: 0: image, 1: letter, 2: ground vehicle, 3: air vehicle, 4: surface vehicle, 5: sub-surface vehicle, 6: human, 7: animal
- * @param name Name of the object as defined by the detector
- * @param quality Detection quality / confidence. 0: bad, 255: maximum confidence
- * @param bearing Angle of the object with respect to the body frame in NED coordinates in radians. 0: front
- * @param distance Ground distance in meters
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_object_detection_event_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint32_t time,uint16_t object_id,uint8_t type,const char *name,uint8_t quality,float bearing,float distance)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[36];
-	_mav_put_uint32_t(buf, 0, time);
-	_mav_put_float(buf, 4, bearing);
-	_mav_put_float(buf, 8, distance);
-	_mav_put_uint16_t(buf, 12, object_id);
-	_mav_put_uint8_t(buf, 14, type);
-	_mav_put_uint8_t(buf, 35, quality);
-	_mav_put_char_array(buf, 15, name, 20);
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
-#else
-	mavlink_object_detection_event_t packet;
-	packet.time = time;
-	packet.bearing = bearing;
-	packet.distance = distance;
-	packet.object_id = object_id;
-	packet.type = type;
-	packet.quality = quality;
-	mav_array_memcpy(packet.name, name, sizeof(char)*20);
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_OBJECT_DETECTION_EVENT;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 36, 179);
-}
-
-/**
- * @brief Encode a object_detection_event 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 object_detection_event C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_object_detection_event_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_object_detection_event_t* object_detection_event)
-{
-	return mavlink_msg_object_detection_event_pack(system_id, component_id, msg, object_detection_event->time, object_detection_event->object_id, object_detection_event->type, object_detection_event->name, object_detection_event->quality, object_detection_event->bearing, object_detection_event->distance);
-}
-
-/**
- * @brief Send a object_detection_event message
- * @param chan MAVLink channel to send the message
- *
- * @param time Timestamp in milliseconds since system boot
- * @param object_id Object ID
- * @param type Object type: 0: image, 1: letter, 2: ground vehicle, 3: air vehicle, 4: surface vehicle, 5: sub-surface vehicle, 6: human, 7: animal
- * @param name Name of the object as defined by the detector
- * @param quality Detection quality / confidence. 0: bad, 255: maximum confidence
- * @param bearing Angle of the object with respect to the body frame in NED coordinates in radians. 0: front
- * @param distance Ground distance in meters
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_object_detection_event_send(mavlink_channel_t chan, uint32_t time, uint16_t object_id, uint8_t type, const char *name, uint8_t quality, float bearing, float distance)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[36];
-	_mav_put_uint32_t(buf, 0, time);
-	_mav_put_float(buf, 4, bearing);
-	_mav_put_float(buf, 8, distance);
-	_mav_put_uint16_t(buf, 12, object_id);
-	_mav_put_uint8_t(buf, 14, type);
-	_mav_put_uint8_t(buf, 35, quality);
-	_mav_put_char_array(buf, 15, name, 20);
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBJECT_DETECTION_EVENT, buf, 36, 179);
-#else
-	mavlink_object_detection_event_t packet;
-	packet.time = time;
-	packet.bearing = bearing;
-	packet.distance = distance;
-	packet.object_id = object_id;
-	packet.type = type;
-	packet.quality = quality;
-	mav_array_memcpy(packet.name, name, sizeof(char)*20);
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_OBJECT_DETECTION_EVENT, (const char *)&packet, 36, 179);
-#endif
-}
-
-#endif
-
-// MESSAGE OBJECT_DETECTION_EVENT UNPACKING
-
-
-/**
- * @brief Get field time from object_detection_event message
- *
- * @return Timestamp in milliseconds since system boot
- */
-static inline uint32_t mavlink_msg_object_detection_event_get_time(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint32_t(msg,  0);
-}
-
-/**
- * @brief Get field object_id from object_detection_event message
- *
- * @return Object ID
- */
-static inline uint16_t mavlink_msg_object_detection_event_get_object_id(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint16_t(msg,  12);
-}
-
-/**
- * @brief Get field type from object_detection_event message
- *
- * @return Object type: 0: image, 1: letter, 2: ground vehicle, 3: air vehicle, 4: surface vehicle, 5: sub-surface vehicle, 6: human, 7: animal
- */
-static inline uint8_t mavlink_msg_object_detection_event_get_type(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  14);
-}
-
-/**
- * @brief Get field name from object_detection_event message
- *
- * @return Name of the object as defined by the detector
- */
-static inline uint16_t mavlink_msg_object_detection_event_get_name(const mavlink_message_t* msg, char *name)
-{
-	return _MAV_RETURN_char_array(msg, name, 20,  15);
-}
-
-/**
- * @brief Get field quality from object_detection_event message
- *
- * @return Detection quality / confidence. 0: bad, 255: maximum confidence
- */
-static inline uint8_t mavlink_msg_object_detection_event_get_quality(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  35);
-}
-
-/**
- * @brief Get field bearing from object_detection_event message
- *
- * @return Angle of the object with respect to the body frame in NED coordinates in radians. 0: front
- */
-static inline float mavlink_msg_object_detection_event_get_bearing(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  4);
-}
-
-/**
- * @brief Get field distance from object_detection_event message
- *
- * @return Ground distance in meters
- */
-static inline float mavlink_msg_object_detection_event_get_distance(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  8);
-}
-
-/**
- * @brief Decode a object_detection_event message into a struct
- *
- * @param msg The message to decode
- * @param object_detection_event C-struct to decode the message contents into
- */
-static inline void mavlink_msg_object_detection_event_decode(const mavlink_message_t* msg, mavlink_object_detection_event_t* object_detection_event)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	object_detection_event->time = mavlink_msg_object_detection_event_get_time(msg);
-	object_detection_event->bearing = mavlink_msg_object_detection_event_get_bearing(msg);
-	object_detection_event->distance = mavlink_msg_object_detection_event_get_distance(msg);
-	object_detection_event->object_id = mavlink_msg_object_detection_event_get_object_id(msg);
-	object_detection_event->type = mavlink_msg_object_detection_event_get_type(msg);
-	mavlink_msg_object_detection_event_get_name(msg, object_detection_event->name);
-	object_detection_event->quality = mavlink_msg_object_detection_event_get_quality(msg);
-#else
-	memcpy(object_detection_event, _MAV_PAYLOAD(msg), 36);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_position_target.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_position_target.h
deleted file mode 100644
index 44c0e6931bd505996a9acb53d2316b529193a9c6..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_position_target.h
+++ /dev/null
@@ -1,210 +0,0 @@
-// MESSAGE POSITION_TARGET PACKING
-
-#define MAVLINK_MSG_ID_POSITION_TARGET 63
-
-typedef struct __mavlink_position_target_t
-{
- float x; ///< x position
- float y; ///< y position
- float z; ///< z position
- float yaw; ///< yaw orientation in radians, 0 = NORTH
-} mavlink_position_target_t;
-
-#define MAVLINK_MSG_ID_POSITION_TARGET_LEN 16
-#define MAVLINK_MSG_ID_63_LEN 16
-
-
-
-#define MAVLINK_MESSAGE_INFO_POSITION_TARGET { \
-	"POSITION_TARGET", \
-	4, \
-	{  { "x", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_position_target_t, x) }, \
-         { "y", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_position_target_t, y) }, \
-         { "z", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_position_target_t, z) }, \
-         { "yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_position_target_t, yaw) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a position_target 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 x x position
- * @param y y position
- * @param z z position
- * @param yaw yaw orientation in radians, 0 = NORTH
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_position_target_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       float x, float y, float z, float yaw)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[16];
-	_mav_put_float(buf, 0, x);
-	_mav_put_float(buf, 4, y);
-	_mav_put_float(buf, 8, z);
-	_mav_put_float(buf, 12, yaw);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 16);
-#else
-	mavlink_position_target_t packet;
-	packet.x = x;
-	packet.y = y;
-	packet.z = z;
-	packet.yaw = yaw;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 16);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_POSITION_TARGET;
-	return mavlink_finalize_message(msg, system_id, component_id, 16, 126);
-}
-
-/**
- * @brief Pack a position_target 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
- * @param x x position
- * @param y y position
- * @param z z position
- * @param yaw yaw orientation in radians, 0 = NORTH
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_position_target_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           float x,float y,float z,float yaw)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[16];
-	_mav_put_float(buf, 0, x);
-	_mav_put_float(buf, 4, y);
-	_mav_put_float(buf, 8, z);
-	_mav_put_float(buf, 12, yaw);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 16);
-#else
-	mavlink_position_target_t packet;
-	packet.x = x;
-	packet.y = y;
-	packet.z = z;
-	packet.yaw = yaw;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 16);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_POSITION_TARGET;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 16, 126);
-}
-
-/**
- * @brief Encode a position_target 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 position_target C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_position_target_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_position_target_t* position_target)
-{
-	return mavlink_msg_position_target_pack(system_id, component_id, msg, position_target->x, position_target->y, position_target->z, position_target->yaw);
-}
-
-/**
- * @brief Send a position_target message
- * @param chan MAVLink channel to send the message
- *
- * @param x x position
- * @param y y position
- * @param z z position
- * @param yaw yaw orientation in radians, 0 = NORTH
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_position_target_send(mavlink_channel_t chan, float x, float y, float z, float yaw)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[16];
-	_mav_put_float(buf, 0, x);
-	_mav_put_float(buf, 4, y);
-	_mav_put_float(buf, 8, z);
-	_mav_put_float(buf, 12, yaw);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_POSITION_TARGET, buf, 16, 126);
-#else
-	mavlink_position_target_t packet;
-	packet.x = x;
-	packet.y = y;
-	packet.z = z;
-	packet.yaw = yaw;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_POSITION_TARGET, (const char *)&packet, 16, 126);
-#endif
-}
-
-#endif
-
-// MESSAGE POSITION_TARGET UNPACKING
-
-
-/**
- * @brief Get field x from position_target message
- *
- * @return x position
- */
-static inline float mavlink_msg_position_target_get_x(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  0);
-}
-
-/**
- * @brief Get field y from position_target message
- *
- * @return y position
- */
-static inline float mavlink_msg_position_target_get_y(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  4);
-}
-
-/**
- * @brief Get field z from position_target message
- *
- * @return z position
- */
-static inline float mavlink_msg_position_target_get_z(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  8);
-}
-
-/**
- * @brief Get field yaw from position_target message
- *
- * @return yaw orientation in radians, 0 = NORTH
- */
-static inline float mavlink_msg_position_target_get_yaw(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  12);
-}
-
-/**
- * @brief Decode a position_target message into a struct
- *
- * @param msg The message to decode
- * @param position_target C-struct to decode the message contents into
- */
-static inline void mavlink_msg_position_target_decode(const mavlink_message_t* msg, mavlink_position_target_t* position_target)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	position_target->x = mavlink_msg_position_target_get_x(msg);
-	position_target->y = mavlink_msg_position_target_get_y(msg);
-	position_target->z = mavlink_msg_position_target_get_z(msg);
-	position_target->yaw = mavlink_msg_position_target_get_yaw(msg);
-#else
-	memcpy(position_target, _MAV_PAYLOAD(msg), 16);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_altitude.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_altitude.h
deleted file mode 100644
index c7a768aa4a725b5985b609bc8df2007f239e9668..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_altitude.h
+++ /dev/null
@@ -1,166 +0,0 @@
-// MESSAGE SET_ALTITUDE PACKING
-
-#define MAVLINK_MSG_ID_SET_ALTITUDE 65
-
-typedef struct __mavlink_set_altitude_t
-{
- uint32_t mode; ///< The new altitude in meters
- uint8_t target; ///< The system setting the altitude
-} mavlink_set_altitude_t;
-
-#define MAVLINK_MSG_ID_SET_ALTITUDE_LEN 5
-#define MAVLINK_MSG_ID_65_LEN 5
-
-
-
-#define MAVLINK_MESSAGE_INFO_SET_ALTITUDE { \
-	"SET_ALTITUDE", \
-	2, \
-	{  { "mode", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_set_altitude_t, mode) }, \
-         { "target", NULL, MAVLINK_TYPE_UINT8_T, 0, 4, offsetof(mavlink_set_altitude_t, target) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a set_altitude 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 target The system setting the altitude
- * @param mode The new altitude in meters
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_set_altitude_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t target, uint32_t mode)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[5];
-	_mav_put_uint32_t(buf, 0, mode);
-	_mav_put_uint8_t(buf, 4, target);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 5);
-#else
-	mavlink_set_altitude_t packet;
-	packet.mode = mode;
-	packet.target = target;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 5);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_SET_ALTITUDE;
-	return mavlink_finalize_message(msg, system_id, component_id, 5, 54);
-}
-
-/**
- * @brief Pack a set_altitude 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
- * @param target The system setting the altitude
- * @param mode The new altitude in meters
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_set_altitude_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t target,uint32_t mode)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[5];
-	_mav_put_uint32_t(buf, 0, mode);
-	_mav_put_uint8_t(buf, 4, target);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 5);
-#else
-	mavlink_set_altitude_t packet;
-	packet.mode = mode;
-	packet.target = target;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 5);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_SET_ALTITUDE;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 5, 54);
-}
-
-/**
- * @brief Encode a set_altitude 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 set_altitude C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_set_altitude_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_set_altitude_t* set_altitude)
-{
-	return mavlink_msg_set_altitude_pack(system_id, component_id, msg, set_altitude->target, set_altitude->mode);
-}
-
-/**
- * @brief Send a set_altitude message
- * @param chan MAVLink channel to send the message
- *
- * @param target The system setting the altitude
- * @param mode The new altitude in meters
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_set_altitude_send(mavlink_channel_t chan, uint8_t target, uint32_t mode)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[5];
-	_mav_put_uint32_t(buf, 0, mode);
-	_mav_put_uint8_t(buf, 4, target);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ALTITUDE, buf, 5, 54);
-#else
-	mavlink_set_altitude_t packet;
-	packet.mode = mode;
-	packet.target = target;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_ALTITUDE, (const char *)&packet, 5, 54);
-#endif
-}
-
-#endif
-
-// MESSAGE SET_ALTITUDE UNPACKING
-
-
-/**
- * @brief Get field target from set_altitude message
- *
- * @return The system setting the altitude
- */
-static inline uint8_t mavlink_msg_set_altitude_get_target(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  4);
-}
-
-/**
- * @brief Get field mode from set_altitude message
- *
- * @return The new altitude in meters
- */
-static inline uint32_t mavlink_msg_set_altitude_get_mode(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint32_t(msg,  0);
-}
-
-/**
- * @brief Decode a set_altitude message into a struct
- *
- * @param msg The message to decode
- * @param set_altitude C-struct to decode the message contents into
- */
-static inline void mavlink_msg_set_altitude_decode(const mavlink_message_t* msg, mavlink_set_altitude_t* set_altitude)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	set_altitude->mode = mavlink_msg_set_altitude_get_mode(msg);
-	set_altitude->target = mavlink_msg_set_altitude_get_target(msg);
-#else
-	memcpy(set_altitude, _MAV_PAYLOAD(msg), 5);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_nav_mode.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_nav_mode.h
deleted file mode 100644
index 5832ecb6b67e47105124b26a79a922c5e2ed3ee2..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_set_nav_mode.h
+++ /dev/null
@@ -1,166 +0,0 @@
-// MESSAGE SET_NAV_MODE PACKING
-
-#define MAVLINK_MSG_ID_SET_NAV_MODE 12
-
-typedef struct __mavlink_set_nav_mode_t
-{
- uint8_t target; ///< The system setting the mode
- uint8_t nav_mode; ///< The new navigation mode
-} mavlink_set_nav_mode_t;
-
-#define MAVLINK_MSG_ID_SET_NAV_MODE_LEN 2
-#define MAVLINK_MSG_ID_12_LEN 2
-
-
-
-#define MAVLINK_MESSAGE_INFO_SET_NAV_MODE { \
-	"SET_NAV_MODE", \
-	2, \
-	{  { "target", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_set_nav_mode_t, target) }, \
-         { "nav_mode", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_set_nav_mode_t, nav_mode) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a set_nav_mode 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 target The system setting the mode
- * @param nav_mode The new navigation mode
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_set_nav_mode_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t target, uint8_t nav_mode)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint8_t(buf, 0, target);
-	_mav_put_uint8_t(buf, 1, nav_mode);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
-#else
-	mavlink_set_nav_mode_t packet;
-	packet.target = target;
-	packet.nav_mode = nav_mode;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_SET_NAV_MODE;
-	return mavlink_finalize_message(msg, system_id, component_id, 2, 10);
-}
-
-/**
- * @brief Pack a set_nav_mode 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
- * @param target The system setting the mode
- * @param nav_mode The new navigation mode
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_set_nav_mode_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t target,uint8_t nav_mode)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint8_t(buf, 0, target);
-	_mav_put_uint8_t(buf, 1, nav_mode);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
-#else
-	mavlink_set_nav_mode_t packet;
-	packet.target = target;
-	packet.nav_mode = nav_mode;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_SET_NAV_MODE;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 2, 10);
-}
-
-/**
- * @brief Encode a set_nav_mode 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 set_nav_mode C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_set_nav_mode_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_set_nav_mode_t* set_nav_mode)
-{
-	return mavlink_msg_set_nav_mode_pack(system_id, component_id, msg, set_nav_mode->target, set_nav_mode->nav_mode);
-}
-
-/**
- * @brief Send a set_nav_mode message
- * @param chan MAVLink channel to send the message
- *
- * @param target The system setting the mode
- * @param nav_mode The new navigation mode
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_set_nav_mode_send(mavlink_channel_t chan, uint8_t target, uint8_t nav_mode)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint8_t(buf, 0, target);
-	_mav_put_uint8_t(buf, 1, nav_mode);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_NAV_MODE, buf, 2, 10);
-#else
-	mavlink_set_nav_mode_t packet;
-	packet.target = target;
-	packet.nav_mode = nav_mode;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SET_NAV_MODE, (const char *)&packet, 2, 10);
-#endif
-}
-
-#endif
-
-// MESSAGE SET_NAV_MODE UNPACKING
-
-
-/**
- * @brief Get field target from set_nav_mode message
- *
- * @return The system setting the mode
- */
-static inline uint8_t mavlink_msg_set_nav_mode_get_target(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  0);
-}
-
-/**
- * @brief Get field nav_mode from set_nav_mode message
- *
- * @return The new navigation mode
- */
-static inline uint8_t mavlink_msg_set_nav_mode_get_nav_mode(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  1);
-}
-
-/**
- * @brief Decode a set_nav_mode message into a struct
- *
- * @param msg The message to decode
- * @param set_nav_mode C-struct to decode the message contents into
- */
-static inline void mavlink_msg_set_nav_mode_decode(const mavlink_message_t* msg, mavlink_set_nav_mode_t* set_nav_mode)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	set_nav_mode->target = mavlink_msg_set_nav_mode_get_target(msg);
-	set_nav_mode->nav_mode = mavlink_msg_set_nav_mode_get_nav_mode(msg);
-#else
-	memcpy(set_nav_mode, _MAV_PAYLOAD(msg), 2);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_system_time_utc.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_system_time_utc.h
deleted file mode 100644
index fc6395099e6dd9d36b15743b8f839da9f9979fc3..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_system_time_utc.h
+++ /dev/null
@@ -1,166 +0,0 @@
-// MESSAGE SYSTEM_TIME_UTC PACKING
-
-#define MAVLINK_MSG_ID_SYSTEM_TIME_UTC 4
-
-typedef struct __mavlink_system_time_utc_t
-{
- uint32_t utc_date; ///< GPS UTC date ddmmyy
- uint32_t utc_time; ///< GPS UTC time hhmmss
-} mavlink_system_time_utc_t;
-
-#define MAVLINK_MSG_ID_SYSTEM_TIME_UTC_LEN 8
-#define MAVLINK_MSG_ID_4_LEN 8
-
-
-
-#define MAVLINK_MESSAGE_INFO_SYSTEM_TIME_UTC { \
-	"SYSTEM_TIME_UTC", \
-	2, \
-	{  { "utc_date", NULL, MAVLINK_TYPE_UINT32_T, 0, 0, offsetof(mavlink_system_time_utc_t, utc_date) }, \
-         { "utc_time", NULL, MAVLINK_TYPE_UINT32_T, 0, 4, offsetof(mavlink_system_time_utc_t, utc_time) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a system_time_utc 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 utc_date GPS UTC date ddmmyy
- * @param utc_time GPS UTC time hhmmss
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_system_time_utc_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint32_t utc_date, uint32_t utc_time)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[8];
-	_mav_put_uint32_t(buf, 0, utc_date);
-	_mav_put_uint32_t(buf, 4, utc_time);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
-#else
-	mavlink_system_time_utc_t packet;
-	packet.utc_date = utc_date;
-	packet.utc_time = utc_time;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_SYSTEM_TIME_UTC;
-	return mavlink_finalize_message(msg, system_id, component_id, 8, 191);
-}
-
-/**
- * @brief Pack a system_time_utc 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
- * @param utc_date GPS UTC date ddmmyy
- * @param utc_time GPS UTC time hhmmss
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_system_time_utc_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint32_t utc_date,uint32_t utc_time)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[8];
-	_mav_put_uint32_t(buf, 0, utc_date);
-	_mav_put_uint32_t(buf, 4, utc_time);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 8);
-#else
-	mavlink_system_time_utc_t packet;
-	packet.utc_date = utc_date;
-	packet.utc_time = utc_time;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 8);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_SYSTEM_TIME_UTC;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 8, 191);
-}
-
-/**
- * @brief Encode a system_time_utc 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 system_time_utc C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_system_time_utc_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_system_time_utc_t* system_time_utc)
-{
-	return mavlink_msg_system_time_utc_pack(system_id, component_id, msg, system_time_utc->utc_date, system_time_utc->utc_time);
-}
-
-/**
- * @brief Send a system_time_utc message
- * @param chan MAVLink channel to send the message
- *
- * @param utc_date GPS UTC date ddmmyy
- * @param utc_time GPS UTC time hhmmss
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_system_time_utc_send(mavlink_channel_t chan, uint32_t utc_date, uint32_t utc_time)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[8];
-	_mav_put_uint32_t(buf, 0, utc_date);
-	_mav_put_uint32_t(buf, 4, utc_time);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SYSTEM_TIME_UTC, buf, 8, 191);
-#else
-	mavlink_system_time_utc_t packet;
-	packet.utc_date = utc_date;
-	packet.utc_time = utc_time;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_SYSTEM_TIME_UTC, (const char *)&packet, 8, 191);
-#endif
-}
-
-#endif
-
-// MESSAGE SYSTEM_TIME_UTC UNPACKING
-
-
-/**
- * @brief Get field utc_date from system_time_utc message
- *
- * @return GPS UTC date ddmmyy
- */
-static inline uint32_t mavlink_msg_system_time_utc_get_utc_date(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint32_t(msg,  0);
-}
-
-/**
- * @brief Get field utc_time from system_time_utc message
- *
- * @return GPS UTC time hhmmss
- */
-static inline uint32_t mavlink_msg_system_time_utc_get_utc_time(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint32_t(msg,  4);
-}
-
-/**
- * @brief Decode a system_time_utc message into a struct
- *
- * @param msg The message to decode
- * @param system_time_utc C-struct to decode the message contents into
- */
-static inline void mavlink_msg_system_time_utc_decode(const mavlink_message_t* msg, mavlink_system_time_utc_t* system_time_utc)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	system_time_utc->utc_date = mavlink_msg_system_time_utc_get_utc_date(msg);
-	system_time_utc->utc_time = mavlink_msg_system_time_utc_get_utc_time(msg);
-#else
-	memcpy(system_time_utc, _MAV_PAYLOAD(msg), 8);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint.h
deleted file mode 100644
index 455607c44c2315999108ba9a2c4b7cba989e7605..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint.h
+++ /dev/null
@@ -1,430 +0,0 @@
-// MESSAGE WAYPOINT PACKING
-
-#define MAVLINK_MSG_ID_WAYPOINT 39
-
-typedef struct __mavlink_waypoint_t
-{
- float param1; ///< PARAM1 / For NAV command waypoints: Radius in which the waypoint is accepted as reached, in meters
- float param2; ///< PARAM2 / For NAV command waypoints: Time that the MAV should stay inside the PARAM1 radius before advancing, in milliseconds
- float param3; ///< PARAM3 / For LOITER command waypoints: Orbit to circle around the waypoint, in meters. If positive the orbit direction should be clockwise, if negative the orbit direction should be counter-clockwise.
- float param4; ///< PARAM4 / For NAV and LOITER command waypoints: Yaw orientation in degrees, [0..360] 0 = NORTH
- float x; ///< PARAM5 / local: x position, global: latitude
- float y; ///< PARAM6 / y position: global: longitude
- float z; ///< PARAM7 / z position: global: altitude
- uint16_t seq; ///< Sequence
- uint8_t target_system; ///< System ID
- uint8_t target_component; ///< Component ID
- uint8_t frame; ///< The coordinate system of the waypoint. see MAV_FRAME in mavlink_types.h
- uint8_t command; ///< The scheduled action for the waypoint. see MAV_COMMAND in common.xml MAVLink specs
- uint8_t current; ///< false:0, true:1
- uint8_t autocontinue; ///< autocontinue to next wp
-} mavlink_waypoint_t;
-
-#define MAVLINK_MSG_ID_WAYPOINT_LEN 36
-#define MAVLINK_MSG_ID_39_LEN 36
-
-
-
-#define MAVLINK_MESSAGE_INFO_WAYPOINT { \
-	"WAYPOINT", \
-	14, \
-	{  { "param1", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_waypoint_t, param1) }, \
-         { "param2", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_waypoint_t, param2) }, \
-         { "param3", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_waypoint_t, param3) }, \
-         { "param4", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_waypoint_t, param4) }, \
-         { "x", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_waypoint_t, x) }, \
-         { "y", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_waypoint_t, y) }, \
-         { "z", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_waypoint_t, z) }, \
-         { "seq", NULL, MAVLINK_TYPE_UINT16_T, 0, 28, offsetof(mavlink_waypoint_t, seq) }, \
-         { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 30, offsetof(mavlink_waypoint_t, target_system) }, \
-         { "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 31, offsetof(mavlink_waypoint_t, target_component) }, \
-         { "frame", NULL, MAVLINK_TYPE_UINT8_T, 0, 32, offsetof(mavlink_waypoint_t, frame) }, \
-         { "command", NULL, MAVLINK_TYPE_UINT8_T, 0, 33, offsetof(mavlink_waypoint_t, command) }, \
-         { "current", NULL, MAVLINK_TYPE_UINT8_T, 0, 34, offsetof(mavlink_waypoint_t, current) }, \
-         { "autocontinue", NULL, MAVLINK_TYPE_UINT8_T, 0, 35, offsetof(mavlink_waypoint_t, autocontinue) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a waypoint 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 target_system System ID
- * @param target_component Component ID
- * @param seq Sequence
- * @param frame The coordinate system of the waypoint. see MAV_FRAME in mavlink_types.h
- * @param command The scheduled action for the waypoint. see MAV_COMMAND in common.xml MAVLink specs
- * @param current false:0, true:1
- * @param autocontinue autocontinue to next wp
- * @param param1 PARAM1 / For NAV command waypoints: Radius in which the waypoint is accepted as reached, in meters
- * @param param2 PARAM2 / For NAV command waypoints: Time that the MAV should stay inside the PARAM1 radius before advancing, in milliseconds
- * @param param3 PARAM3 / For LOITER command waypoints: Orbit to circle around the waypoint, in meters. If positive the orbit direction should be clockwise, if negative the orbit direction should be counter-clockwise.
- * @param param4 PARAM4 / For NAV and LOITER command waypoints: Yaw orientation in degrees, [0..360] 0 = NORTH
- * @param x PARAM5 / local: x position, global: latitude
- * @param y PARAM6 / y position: global: longitude
- * @param z PARAM7 / z position: global: altitude
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t target_system, uint8_t target_component, uint16_t seq, uint8_t frame, uint8_t command, uint8_t current, uint8_t autocontinue, float param1, float param2, float param3, float param4, float x, float y, float z)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[36];
-	_mav_put_float(buf, 0, param1);
-	_mav_put_float(buf, 4, param2);
-	_mav_put_float(buf, 8, param3);
-	_mav_put_float(buf, 12, param4);
-	_mav_put_float(buf, 16, x);
-	_mav_put_float(buf, 20, y);
-	_mav_put_float(buf, 24, z);
-	_mav_put_uint16_t(buf, 28, seq);
-	_mav_put_uint8_t(buf, 30, target_system);
-	_mav_put_uint8_t(buf, 31, target_component);
-	_mav_put_uint8_t(buf, 32, frame);
-	_mav_put_uint8_t(buf, 33, command);
-	_mav_put_uint8_t(buf, 34, current);
-	_mav_put_uint8_t(buf, 35, autocontinue);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
-#else
-	mavlink_waypoint_t packet;
-	packet.param1 = param1;
-	packet.param2 = param2;
-	packet.param3 = param3;
-	packet.param4 = param4;
-	packet.x = x;
-	packet.y = y;
-	packet.z = z;
-	packet.seq = seq;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-	packet.frame = frame;
-	packet.command = command;
-	packet.current = current;
-	packet.autocontinue = autocontinue;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT;
-	return mavlink_finalize_message(msg, system_id, component_id, 36, 205);
-}
-
-/**
- * @brief Pack a waypoint 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
- * @param target_system System ID
- * @param target_component Component ID
- * @param seq Sequence
- * @param frame The coordinate system of the waypoint. see MAV_FRAME in mavlink_types.h
- * @param command The scheduled action for the waypoint. see MAV_COMMAND in common.xml MAVLink specs
- * @param current false:0, true:1
- * @param autocontinue autocontinue to next wp
- * @param param1 PARAM1 / For NAV command waypoints: Radius in which the waypoint is accepted as reached, in meters
- * @param param2 PARAM2 / For NAV command waypoints: Time that the MAV should stay inside the PARAM1 radius before advancing, in milliseconds
- * @param param3 PARAM3 / For LOITER command waypoints: Orbit to circle around the waypoint, in meters. If positive the orbit direction should be clockwise, if negative the orbit direction should be counter-clockwise.
- * @param param4 PARAM4 / For NAV and LOITER command waypoints: Yaw orientation in degrees, [0..360] 0 = NORTH
- * @param x PARAM5 / local: x position, global: latitude
- * @param y PARAM6 / y position: global: longitude
- * @param z PARAM7 / z position: global: altitude
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t target_system,uint8_t target_component,uint16_t seq,uint8_t frame,uint8_t command,uint8_t current,uint8_t autocontinue,float param1,float param2,float param3,float param4,float x,float y,float z)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[36];
-	_mav_put_float(buf, 0, param1);
-	_mav_put_float(buf, 4, param2);
-	_mav_put_float(buf, 8, param3);
-	_mav_put_float(buf, 12, param4);
-	_mav_put_float(buf, 16, x);
-	_mav_put_float(buf, 20, y);
-	_mav_put_float(buf, 24, z);
-	_mav_put_uint16_t(buf, 28, seq);
-	_mav_put_uint8_t(buf, 30, target_system);
-	_mav_put_uint8_t(buf, 31, target_component);
-	_mav_put_uint8_t(buf, 32, frame);
-	_mav_put_uint8_t(buf, 33, command);
-	_mav_put_uint8_t(buf, 34, current);
-	_mav_put_uint8_t(buf, 35, autocontinue);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 36);
-#else
-	mavlink_waypoint_t packet;
-	packet.param1 = param1;
-	packet.param2 = param2;
-	packet.param3 = param3;
-	packet.param4 = param4;
-	packet.x = x;
-	packet.y = y;
-	packet.z = z;
-	packet.seq = seq;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-	packet.frame = frame;
-	packet.command = command;
-	packet.current = current;
-	packet.autocontinue = autocontinue;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 36);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 36, 205);
-}
-
-/**
- * @brief Encode a waypoint 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 waypoint C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_waypoint_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_waypoint_t* waypoint)
-{
-	return mavlink_msg_waypoint_pack(system_id, component_id, msg, waypoint->target_system, waypoint->target_component, waypoint->seq, waypoint->frame, waypoint->command, waypoint->current, waypoint->autocontinue, waypoint->param1, waypoint->param2, waypoint->param3, waypoint->param4, waypoint->x, waypoint->y, waypoint->z);
-}
-
-/**
- * @brief Send a waypoint message
- * @param chan MAVLink channel to send the message
- *
- * @param target_system System ID
- * @param target_component Component ID
- * @param seq Sequence
- * @param frame The coordinate system of the waypoint. see MAV_FRAME in mavlink_types.h
- * @param command The scheduled action for the waypoint. see MAV_COMMAND in common.xml MAVLink specs
- * @param current false:0, true:1
- * @param autocontinue autocontinue to next wp
- * @param param1 PARAM1 / For NAV command waypoints: Radius in which the waypoint is accepted as reached, in meters
- * @param param2 PARAM2 / For NAV command waypoints: Time that the MAV should stay inside the PARAM1 radius before advancing, in milliseconds
- * @param param3 PARAM3 / For LOITER command waypoints: Orbit to circle around the waypoint, in meters. If positive the orbit direction should be clockwise, if negative the orbit direction should be counter-clockwise.
- * @param param4 PARAM4 / For NAV and LOITER command waypoints: Yaw orientation in degrees, [0..360] 0 = NORTH
- * @param x PARAM5 / local: x position, global: latitude
- * @param y PARAM6 / y position: global: longitude
- * @param z PARAM7 / z position: global: altitude
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_waypoint_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component, uint16_t seq, uint8_t frame, uint8_t command, uint8_t current, uint8_t autocontinue, float param1, float param2, float param3, float param4, float x, float y, float z)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[36];
-	_mav_put_float(buf, 0, param1);
-	_mav_put_float(buf, 4, param2);
-	_mav_put_float(buf, 8, param3);
-	_mav_put_float(buf, 12, param4);
-	_mav_put_float(buf, 16, x);
-	_mav_put_float(buf, 20, y);
-	_mav_put_float(buf, 24, z);
-	_mav_put_uint16_t(buf, 28, seq);
-	_mav_put_uint8_t(buf, 30, target_system);
-	_mav_put_uint8_t(buf, 31, target_component);
-	_mav_put_uint8_t(buf, 32, frame);
-	_mav_put_uint8_t(buf, 33, command);
-	_mav_put_uint8_t(buf, 34, current);
-	_mav_put_uint8_t(buf, 35, autocontinue);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT, buf, 36, 205);
-#else
-	mavlink_waypoint_t packet;
-	packet.param1 = param1;
-	packet.param2 = param2;
-	packet.param3 = param3;
-	packet.param4 = param4;
-	packet.x = x;
-	packet.y = y;
-	packet.z = z;
-	packet.seq = seq;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-	packet.frame = frame;
-	packet.command = command;
-	packet.current = current;
-	packet.autocontinue = autocontinue;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT, (const char *)&packet, 36, 205);
-#endif
-}
-
-#endif
-
-// MESSAGE WAYPOINT UNPACKING
-
-
-/**
- * @brief Get field target_system from waypoint message
- *
- * @return System ID
- */
-static inline uint8_t mavlink_msg_waypoint_get_target_system(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  30);
-}
-
-/**
- * @brief Get field target_component from waypoint message
- *
- * @return Component ID
- */
-static inline uint8_t mavlink_msg_waypoint_get_target_component(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  31);
-}
-
-/**
- * @brief Get field seq from waypoint message
- *
- * @return Sequence
- */
-static inline uint16_t mavlink_msg_waypoint_get_seq(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint16_t(msg,  28);
-}
-
-/**
- * @brief Get field frame from waypoint message
- *
- * @return The coordinate system of the waypoint. see MAV_FRAME in mavlink_types.h
- */
-static inline uint8_t mavlink_msg_waypoint_get_frame(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  32);
-}
-
-/**
- * @brief Get field command from waypoint message
- *
- * @return The scheduled action for the waypoint. see MAV_COMMAND in common.xml MAVLink specs
- */
-static inline uint8_t mavlink_msg_waypoint_get_command(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  33);
-}
-
-/**
- * @brief Get field current from waypoint message
- *
- * @return false:0, true:1
- */
-static inline uint8_t mavlink_msg_waypoint_get_current(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  34);
-}
-
-/**
- * @brief Get field autocontinue from waypoint message
- *
- * @return autocontinue to next wp
- */
-static inline uint8_t mavlink_msg_waypoint_get_autocontinue(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  35);
-}
-
-/**
- * @brief Get field param1 from waypoint message
- *
- * @return PARAM1 / For NAV command waypoints: Radius in which the waypoint is accepted as reached, in meters
- */
-static inline float mavlink_msg_waypoint_get_param1(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  0);
-}
-
-/**
- * @brief Get field param2 from waypoint message
- *
- * @return PARAM2 / For NAV command waypoints: Time that the MAV should stay inside the PARAM1 radius before advancing, in milliseconds
- */
-static inline float mavlink_msg_waypoint_get_param2(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  4);
-}
-
-/**
- * @brief Get field param3 from waypoint message
- *
- * @return PARAM3 / For LOITER command waypoints: Orbit to circle around the waypoint, in meters. If positive the orbit direction should be clockwise, if negative the orbit direction should be counter-clockwise.
- */
-static inline float mavlink_msg_waypoint_get_param3(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  8);
-}
-
-/**
- * @brief Get field param4 from waypoint message
- *
- * @return PARAM4 / For NAV and LOITER command waypoints: Yaw orientation in degrees, [0..360] 0 = NORTH
- */
-static inline float mavlink_msg_waypoint_get_param4(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  12);
-}
-
-/**
- * @brief Get field x from waypoint message
- *
- * @return PARAM5 / local: x position, global: latitude
- */
-static inline float mavlink_msg_waypoint_get_x(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  16);
-}
-
-/**
- * @brief Get field y from waypoint message
- *
- * @return PARAM6 / y position: global: longitude
- */
-static inline float mavlink_msg_waypoint_get_y(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  20);
-}
-
-/**
- * @brief Get field z from waypoint message
- *
- * @return PARAM7 / z position: global: altitude
- */
-static inline float mavlink_msg_waypoint_get_z(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_float(msg,  24);
-}
-
-/**
- * @brief Decode a waypoint message into a struct
- *
- * @param msg The message to decode
- * @param waypoint C-struct to decode the message contents into
- */
-static inline void mavlink_msg_waypoint_decode(const mavlink_message_t* msg, mavlink_waypoint_t* waypoint)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	waypoint->param1 = mavlink_msg_waypoint_get_param1(msg);
-	waypoint->param2 = mavlink_msg_waypoint_get_param2(msg);
-	waypoint->param3 = mavlink_msg_waypoint_get_param3(msg);
-	waypoint->param4 = mavlink_msg_waypoint_get_param4(msg);
-	waypoint->x = mavlink_msg_waypoint_get_x(msg);
-	waypoint->y = mavlink_msg_waypoint_get_y(msg);
-	waypoint->z = mavlink_msg_waypoint_get_z(msg);
-	waypoint->seq = mavlink_msg_waypoint_get_seq(msg);
-	waypoint->target_system = mavlink_msg_waypoint_get_target_system(msg);
-	waypoint->target_component = mavlink_msg_waypoint_get_target_component(msg);
-	waypoint->frame = mavlink_msg_waypoint_get_frame(msg);
-	waypoint->command = mavlink_msg_waypoint_get_command(msg);
-	waypoint->current = mavlink_msg_waypoint_get_current(msg);
-	waypoint->autocontinue = mavlink_msg_waypoint_get_autocontinue(msg);
-#else
-	memcpy(waypoint, _MAV_PAYLOAD(msg), 36);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_ack.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_ack.h
deleted file mode 100644
index 846ae88393cefb187979ec0b54cd47ebac3dce06..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_ack.h
+++ /dev/null
@@ -1,188 +0,0 @@
-// MESSAGE WAYPOINT_ACK PACKING
-
-#define MAVLINK_MSG_ID_WAYPOINT_ACK 47
-
-typedef struct __mavlink_waypoint_ack_t
-{
- uint8_t target_system; ///< System ID
- uint8_t target_component; ///< Component ID
- uint8_t type; ///< 0: OK, 1: Error
-} mavlink_waypoint_ack_t;
-
-#define MAVLINK_MSG_ID_WAYPOINT_ACK_LEN 3
-#define MAVLINK_MSG_ID_47_LEN 3
-
-
-
-#define MAVLINK_MESSAGE_INFO_WAYPOINT_ACK { \
-	"WAYPOINT_ACK", \
-	3, \
-	{  { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_waypoint_ack_t, target_system) }, \
-         { "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_waypoint_ack_t, target_component) }, \
-         { "type", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_waypoint_ack_t, type) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a waypoint_ack 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 target_system System ID
- * @param target_component Component ID
- * @param type 0: OK, 1: Error
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_ack_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t target_system, uint8_t target_component, uint8_t type)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[3];
-	_mav_put_uint8_t(buf, 0, target_system);
-	_mav_put_uint8_t(buf, 1, target_component);
-	_mav_put_uint8_t(buf, 2, type);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
-#else
-	mavlink_waypoint_ack_t packet;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-	packet.type = type;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_ACK;
-	return mavlink_finalize_message(msg, system_id, component_id, 3, 214);
-}
-
-/**
- * @brief Pack a waypoint_ack 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
- * @param target_system System ID
- * @param target_component Component ID
- * @param type 0: OK, 1: Error
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_ack_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t target_system,uint8_t target_component,uint8_t type)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[3];
-	_mav_put_uint8_t(buf, 0, target_system);
-	_mav_put_uint8_t(buf, 1, target_component);
-	_mav_put_uint8_t(buf, 2, type);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 3);
-#else
-	mavlink_waypoint_ack_t packet;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-	packet.type = type;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 3);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_ACK;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 3, 214);
-}
-
-/**
- * @brief Encode a waypoint_ack 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 waypoint_ack C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_waypoint_ack_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_waypoint_ack_t* waypoint_ack)
-{
-	return mavlink_msg_waypoint_ack_pack(system_id, component_id, msg, waypoint_ack->target_system, waypoint_ack->target_component, waypoint_ack->type);
-}
-
-/**
- * @brief Send a waypoint_ack message
- * @param chan MAVLink channel to send the message
- *
- * @param target_system System ID
- * @param target_component Component ID
- * @param type 0: OK, 1: Error
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_waypoint_ack_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component, uint8_t type)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[3];
-	_mav_put_uint8_t(buf, 0, target_system);
-	_mav_put_uint8_t(buf, 1, target_component);
-	_mav_put_uint8_t(buf, 2, type);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT_ACK, buf, 3, 214);
-#else
-	mavlink_waypoint_ack_t packet;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-	packet.type = type;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT_ACK, (const char *)&packet, 3, 214);
-#endif
-}
-
-#endif
-
-// MESSAGE WAYPOINT_ACK UNPACKING
-
-
-/**
- * @brief Get field target_system from waypoint_ack message
- *
- * @return System ID
- */
-static inline uint8_t mavlink_msg_waypoint_ack_get_target_system(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  0);
-}
-
-/**
- * @brief Get field target_component from waypoint_ack message
- *
- * @return Component ID
- */
-static inline uint8_t mavlink_msg_waypoint_ack_get_target_component(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  1);
-}
-
-/**
- * @brief Get field type from waypoint_ack message
- *
- * @return 0: OK, 1: Error
- */
-static inline uint8_t mavlink_msg_waypoint_ack_get_type(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  2);
-}
-
-/**
- * @brief Decode a waypoint_ack message into a struct
- *
- * @param msg The message to decode
- * @param waypoint_ack C-struct to decode the message contents into
- */
-static inline void mavlink_msg_waypoint_ack_decode(const mavlink_message_t* msg, mavlink_waypoint_ack_t* waypoint_ack)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	waypoint_ack->target_system = mavlink_msg_waypoint_ack_get_target_system(msg);
-	waypoint_ack->target_component = mavlink_msg_waypoint_ack_get_target_component(msg);
-	waypoint_ack->type = mavlink_msg_waypoint_ack_get_type(msg);
-#else
-	memcpy(waypoint_ack, _MAV_PAYLOAD(msg), 3);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_clear_all.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_clear_all.h
deleted file mode 100644
index 4133b58d06ba4abc86a0c11e440cd605ac474ddc..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_clear_all.h
+++ /dev/null
@@ -1,166 +0,0 @@
-// MESSAGE WAYPOINT_CLEAR_ALL PACKING
-
-#define MAVLINK_MSG_ID_WAYPOINT_CLEAR_ALL 45
-
-typedef struct __mavlink_waypoint_clear_all_t
-{
- uint8_t target_system; ///< System ID
- uint8_t target_component; ///< Component ID
-} mavlink_waypoint_clear_all_t;
-
-#define MAVLINK_MSG_ID_WAYPOINT_CLEAR_ALL_LEN 2
-#define MAVLINK_MSG_ID_45_LEN 2
-
-
-
-#define MAVLINK_MESSAGE_INFO_WAYPOINT_CLEAR_ALL { \
-	"WAYPOINT_CLEAR_ALL", \
-	2, \
-	{  { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_waypoint_clear_all_t, target_system) }, \
-         { "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_waypoint_clear_all_t, target_component) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a waypoint_clear_all 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 target_system System ID
- * @param target_component Component ID
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_clear_all_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t target_system, uint8_t target_component)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint8_t(buf, 0, target_system);
-	_mav_put_uint8_t(buf, 1, target_component);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
-#else
-	mavlink_waypoint_clear_all_t packet;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_CLEAR_ALL;
-	return mavlink_finalize_message(msg, system_id, component_id, 2, 229);
-}
-
-/**
- * @brief Pack a waypoint_clear_all 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
- * @param target_system System ID
- * @param target_component Component ID
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_clear_all_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t target_system,uint8_t target_component)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint8_t(buf, 0, target_system);
-	_mav_put_uint8_t(buf, 1, target_component);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
-#else
-	mavlink_waypoint_clear_all_t packet;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_CLEAR_ALL;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 2, 229);
-}
-
-/**
- * @brief Encode a waypoint_clear_all 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 waypoint_clear_all C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_waypoint_clear_all_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_waypoint_clear_all_t* waypoint_clear_all)
-{
-	return mavlink_msg_waypoint_clear_all_pack(system_id, component_id, msg, waypoint_clear_all->target_system, waypoint_clear_all->target_component);
-}
-
-/**
- * @brief Send a waypoint_clear_all message
- * @param chan MAVLink channel to send the message
- *
- * @param target_system System ID
- * @param target_component Component ID
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_waypoint_clear_all_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint8_t(buf, 0, target_system);
-	_mav_put_uint8_t(buf, 1, target_component);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT_CLEAR_ALL, buf, 2, 229);
-#else
-	mavlink_waypoint_clear_all_t packet;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT_CLEAR_ALL, (const char *)&packet, 2, 229);
-#endif
-}
-
-#endif
-
-// MESSAGE WAYPOINT_CLEAR_ALL UNPACKING
-
-
-/**
- * @brief Get field target_system from waypoint_clear_all message
- *
- * @return System ID
- */
-static inline uint8_t mavlink_msg_waypoint_clear_all_get_target_system(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  0);
-}
-
-/**
- * @brief Get field target_component from waypoint_clear_all message
- *
- * @return Component ID
- */
-static inline uint8_t mavlink_msg_waypoint_clear_all_get_target_component(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  1);
-}
-
-/**
- * @brief Decode a waypoint_clear_all message into a struct
- *
- * @param msg The message to decode
- * @param waypoint_clear_all C-struct to decode the message contents into
- */
-static inline void mavlink_msg_waypoint_clear_all_decode(const mavlink_message_t* msg, mavlink_waypoint_clear_all_t* waypoint_clear_all)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	waypoint_clear_all->target_system = mavlink_msg_waypoint_clear_all_get_target_system(msg);
-	waypoint_clear_all->target_component = mavlink_msg_waypoint_clear_all_get_target_component(msg);
-#else
-	memcpy(waypoint_clear_all, _MAV_PAYLOAD(msg), 2);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_count.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_count.h
deleted file mode 100644
index cfa433338be7fa8f6b187f06780ce51c9eec07d0..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_count.h
+++ /dev/null
@@ -1,188 +0,0 @@
-// MESSAGE WAYPOINT_COUNT PACKING
-
-#define MAVLINK_MSG_ID_WAYPOINT_COUNT 44
-
-typedef struct __mavlink_waypoint_count_t
-{
- uint16_t count; ///< Number of Waypoints in the Sequence
- uint8_t target_system; ///< System ID
- uint8_t target_component; ///< Component ID
-} mavlink_waypoint_count_t;
-
-#define MAVLINK_MSG_ID_WAYPOINT_COUNT_LEN 4
-#define MAVLINK_MSG_ID_44_LEN 4
-
-
-
-#define MAVLINK_MESSAGE_INFO_WAYPOINT_COUNT { \
-	"WAYPOINT_COUNT", \
-	3, \
-	{  { "count", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_waypoint_count_t, count) }, \
-         { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_waypoint_count_t, target_system) }, \
-         { "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 3, offsetof(mavlink_waypoint_count_t, target_component) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a waypoint_count 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 target_system System ID
- * @param target_component Component ID
- * @param count Number of Waypoints in the Sequence
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_count_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t target_system, uint8_t target_component, uint16_t count)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[4];
-	_mav_put_uint16_t(buf, 0, count);
-	_mav_put_uint8_t(buf, 2, target_system);
-	_mav_put_uint8_t(buf, 3, target_component);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
-#else
-	mavlink_waypoint_count_t packet;
-	packet.count = count;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_COUNT;
-	return mavlink_finalize_message(msg, system_id, component_id, 4, 8);
-}
-
-/**
- * @brief Pack a waypoint_count 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
- * @param target_system System ID
- * @param target_component Component ID
- * @param count Number of Waypoints in the Sequence
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_count_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t target_system,uint8_t target_component,uint16_t count)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[4];
-	_mav_put_uint16_t(buf, 0, count);
-	_mav_put_uint8_t(buf, 2, target_system);
-	_mav_put_uint8_t(buf, 3, target_component);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
-#else
-	mavlink_waypoint_count_t packet;
-	packet.count = count;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_COUNT;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 4, 8);
-}
-
-/**
- * @brief Encode a waypoint_count 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 waypoint_count C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_waypoint_count_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_waypoint_count_t* waypoint_count)
-{
-	return mavlink_msg_waypoint_count_pack(system_id, component_id, msg, waypoint_count->target_system, waypoint_count->target_component, waypoint_count->count);
-}
-
-/**
- * @brief Send a waypoint_count message
- * @param chan MAVLink channel to send the message
- *
- * @param target_system System ID
- * @param target_component Component ID
- * @param count Number of Waypoints in the Sequence
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_waypoint_count_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component, uint16_t count)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[4];
-	_mav_put_uint16_t(buf, 0, count);
-	_mav_put_uint8_t(buf, 2, target_system);
-	_mav_put_uint8_t(buf, 3, target_component);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT_COUNT, buf, 4, 8);
-#else
-	mavlink_waypoint_count_t packet;
-	packet.count = count;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT_COUNT, (const char *)&packet, 4, 8);
-#endif
-}
-
-#endif
-
-// MESSAGE WAYPOINT_COUNT UNPACKING
-
-
-/**
- * @brief Get field target_system from waypoint_count message
- *
- * @return System ID
- */
-static inline uint8_t mavlink_msg_waypoint_count_get_target_system(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  2);
-}
-
-/**
- * @brief Get field target_component from waypoint_count message
- *
- * @return Component ID
- */
-static inline uint8_t mavlink_msg_waypoint_count_get_target_component(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  3);
-}
-
-/**
- * @brief Get field count from waypoint_count message
- *
- * @return Number of Waypoints in the Sequence
- */
-static inline uint16_t mavlink_msg_waypoint_count_get_count(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint16_t(msg,  0);
-}
-
-/**
- * @brief Decode a waypoint_count message into a struct
- *
- * @param msg The message to decode
- * @param waypoint_count C-struct to decode the message contents into
- */
-static inline void mavlink_msg_waypoint_count_decode(const mavlink_message_t* msg, mavlink_waypoint_count_t* waypoint_count)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	waypoint_count->count = mavlink_msg_waypoint_count_get_count(msg);
-	waypoint_count->target_system = mavlink_msg_waypoint_count_get_target_system(msg);
-	waypoint_count->target_component = mavlink_msg_waypoint_count_get_target_component(msg);
-#else
-	memcpy(waypoint_count, _MAV_PAYLOAD(msg), 4);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_current.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_current.h
deleted file mode 100644
index a2438a4568c0d7d8d049cadc8373df7911a26f4d..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_current.h
+++ /dev/null
@@ -1,144 +0,0 @@
-// MESSAGE WAYPOINT_CURRENT PACKING
-
-#define MAVLINK_MSG_ID_WAYPOINT_CURRENT 42
-
-typedef struct __mavlink_waypoint_current_t
-{
- uint16_t seq; ///< Sequence
-} mavlink_waypoint_current_t;
-
-#define MAVLINK_MSG_ID_WAYPOINT_CURRENT_LEN 2
-#define MAVLINK_MSG_ID_42_LEN 2
-
-
-
-#define MAVLINK_MESSAGE_INFO_WAYPOINT_CURRENT { \
-	"WAYPOINT_CURRENT", \
-	1, \
-	{  { "seq", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_waypoint_current_t, seq) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a waypoint_current 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 seq Sequence
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_current_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint16_t seq)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint16_t(buf, 0, seq);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
-#else
-	mavlink_waypoint_current_t packet;
-	packet.seq = seq;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_CURRENT;
-	return mavlink_finalize_message(msg, system_id, component_id, 2, 101);
-}
-
-/**
- * @brief Pack a waypoint_current 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
- * @param seq Sequence
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_current_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint16_t seq)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint16_t(buf, 0, seq);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
-#else
-	mavlink_waypoint_current_t packet;
-	packet.seq = seq;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_CURRENT;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 2, 101);
-}
-
-/**
- * @brief Encode a waypoint_current 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 waypoint_current C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_waypoint_current_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_waypoint_current_t* waypoint_current)
-{
-	return mavlink_msg_waypoint_current_pack(system_id, component_id, msg, waypoint_current->seq);
-}
-
-/**
- * @brief Send a waypoint_current message
- * @param chan MAVLink channel to send the message
- *
- * @param seq Sequence
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_waypoint_current_send(mavlink_channel_t chan, uint16_t seq)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint16_t(buf, 0, seq);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT_CURRENT, buf, 2, 101);
-#else
-	mavlink_waypoint_current_t packet;
-	packet.seq = seq;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT_CURRENT, (const char *)&packet, 2, 101);
-#endif
-}
-
-#endif
-
-// MESSAGE WAYPOINT_CURRENT UNPACKING
-
-
-/**
- * @brief Get field seq from waypoint_current message
- *
- * @return Sequence
- */
-static inline uint16_t mavlink_msg_waypoint_current_get_seq(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint16_t(msg,  0);
-}
-
-/**
- * @brief Decode a waypoint_current message into a struct
- *
- * @param msg The message to decode
- * @param waypoint_current C-struct to decode the message contents into
- */
-static inline void mavlink_msg_waypoint_current_decode(const mavlink_message_t* msg, mavlink_waypoint_current_t* waypoint_current)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	waypoint_current->seq = mavlink_msg_waypoint_current_get_seq(msg);
-#else
-	memcpy(waypoint_current, _MAV_PAYLOAD(msg), 2);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_reached.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_reached.h
deleted file mode 100644
index e1d64b4b66e7edf3455101a89400c5b18af94d4b..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_reached.h
+++ /dev/null
@@ -1,144 +0,0 @@
-// MESSAGE WAYPOINT_REACHED PACKING
-
-#define MAVLINK_MSG_ID_WAYPOINT_REACHED 46
-
-typedef struct __mavlink_waypoint_reached_t
-{
- uint16_t seq; ///< Sequence
-} mavlink_waypoint_reached_t;
-
-#define MAVLINK_MSG_ID_WAYPOINT_REACHED_LEN 2
-#define MAVLINK_MSG_ID_46_LEN 2
-
-
-
-#define MAVLINK_MESSAGE_INFO_WAYPOINT_REACHED { \
-	"WAYPOINT_REACHED", \
-	1, \
-	{  { "seq", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_waypoint_reached_t, seq) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a waypoint_reached 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 seq Sequence
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_reached_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint16_t seq)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint16_t(buf, 0, seq);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
-#else
-	mavlink_waypoint_reached_t packet;
-	packet.seq = seq;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_REACHED;
-	return mavlink_finalize_message(msg, system_id, component_id, 2, 21);
-}
-
-/**
- * @brief Pack a waypoint_reached 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
- * @param seq Sequence
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_reached_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint16_t seq)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint16_t(buf, 0, seq);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
-#else
-	mavlink_waypoint_reached_t packet;
-	packet.seq = seq;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_REACHED;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 2, 21);
-}
-
-/**
- * @brief Encode a waypoint_reached 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 waypoint_reached C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_waypoint_reached_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_waypoint_reached_t* waypoint_reached)
-{
-	return mavlink_msg_waypoint_reached_pack(system_id, component_id, msg, waypoint_reached->seq);
-}
-
-/**
- * @brief Send a waypoint_reached message
- * @param chan MAVLink channel to send the message
- *
- * @param seq Sequence
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_waypoint_reached_send(mavlink_channel_t chan, uint16_t seq)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint16_t(buf, 0, seq);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT_REACHED, buf, 2, 21);
-#else
-	mavlink_waypoint_reached_t packet;
-	packet.seq = seq;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT_REACHED, (const char *)&packet, 2, 21);
-#endif
-}
-
-#endif
-
-// MESSAGE WAYPOINT_REACHED UNPACKING
-
-
-/**
- * @brief Get field seq from waypoint_reached message
- *
- * @return Sequence
- */
-static inline uint16_t mavlink_msg_waypoint_reached_get_seq(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint16_t(msg,  0);
-}
-
-/**
- * @brief Decode a waypoint_reached message into a struct
- *
- * @param msg The message to decode
- * @param waypoint_reached C-struct to decode the message contents into
- */
-static inline void mavlink_msg_waypoint_reached_decode(const mavlink_message_t* msg, mavlink_waypoint_reached_t* waypoint_reached)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	waypoint_reached->seq = mavlink_msg_waypoint_reached_get_seq(msg);
-#else
-	memcpy(waypoint_reached, _MAV_PAYLOAD(msg), 2);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_request.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_request.h
deleted file mode 100644
index b88f4dbfbe1266a87dd5f55d330f7a824ca25224..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_request.h
+++ /dev/null
@@ -1,188 +0,0 @@
-// MESSAGE WAYPOINT_REQUEST PACKING
-
-#define MAVLINK_MSG_ID_WAYPOINT_REQUEST 40
-
-typedef struct __mavlink_waypoint_request_t
-{
- uint16_t seq; ///< Sequence
- uint8_t target_system; ///< System ID
- uint8_t target_component; ///< Component ID
-} mavlink_waypoint_request_t;
-
-#define MAVLINK_MSG_ID_WAYPOINT_REQUEST_LEN 4
-#define MAVLINK_MSG_ID_40_LEN 4
-
-
-
-#define MAVLINK_MESSAGE_INFO_WAYPOINT_REQUEST { \
-	"WAYPOINT_REQUEST", \
-	3, \
-	{  { "seq", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_waypoint_request_t, seq) }, \
-         { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_waypoint_request_t, target_system) }, \
-         { "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 3, offsetof(mavlink_waypoint_request_t, target_component) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a waypoint_request 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 target_system System ID
- * @param target_component Component ID
- * @param seq Sequence
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_request_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t target_system, uint8_t target_component, uint16_t seq)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[4];
-	_mav_put_uint16_t(buf, 0, seq);
-	_mav_put_uint8_t(buf, 2, target_system);
-	_mav_put_uint8_t(buf, 3, target_component);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
-#else
-	mavlink_waypoint_request_t packet;
-	packet.seq = seq;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_REQUEST;
-	return mavlink_finalize_message(msg, system_id, component_id, 4, 51);
-}
-
-/**
- * @brief Pack a waypoint_request 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
- * @param target_system System ID
- * @param target_component Component ID
- * @param seq Sequence
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_request_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t target_system,uint8_t target_component,uint16_t seq)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[4];
-	_mav_put_uint16_t(buf, 0, seq);
-	_mav_put_uint8_t(buf, 2, target_system);
-	_mav_put_uint8_t(buf, 3, target_component);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
-#else
-	mavlink_waypoint_request_t packet;
-	packet.seq = seq;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_REQUEST;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 4, 51);
-}
-
-/**
- * @brief Encode a waypoint_request 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 waypoint_request C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_waypoint_request_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_waypoint_request_t* waypoint_request)
-{
-	return mavlink_msg_waypoint_request_pack(system_id, component_id, msg, waypoint_request->target_system, waypoint_request->target_component, waypoint_request->seq);
-}
-
-/**
- * @brief Send a waypoint_request message
- * @param chan MAVLink channel to send the message
- *
- * @param target_system System ID
- * @param target_component Component ID
- * @param seq Sequence
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_waypoint_request_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component, uint16_t seq)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[4];
-	_mav_put_uint16_t(buf, 0, seq);
-	_mav_put_uint8_t(buf, 2, target_system);
-	_mav_put_uint8_t(buf, 3, target_component);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT_REQUEST, buf, 4, 51);
-#else
-	mavlink_waypoint_request_t packet;
-	packet.seq = seq;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT_REQUEST, (const char *)&packet, 4, 51);
-#endif
-}
-
-#endif
-
-// MESSAGE WAYPOINT_REQUEST UNPACKING
-
-
-/**
- * @brief Get field target_system from waypoint_request message
- *
- * @return System ID
- */
-static inline uint8_t mavlink_msg_waypoint_request_get_target_system(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  2);
-}
-
-/**
- * @brief Get field target_component from waypoint_request message
- *
- * @return Component ID
- */
-static inline uint8_t mavlink_msg_waypoint_request_get_target_component(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  3);
-}
-
-/**
- * @brief Get field seq from waypoint_request message
- *
- * @return Sequence
- */
-static inline uint16_t mavlink_msg_waypoint_request_get_seq(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint16_t(msg,  0);
-}
-
-/**
- * @brief Decode a waypoint_request message into a struct
- *
- * @param msg The message to decode
- * @param waypoint_request C-struct to decode the message contents into
- */
-static inline void mavlink_msg_waypoint_request_decode(const mavlink_message_t* msg, mavlink_waypoint_request_t* waypoint_request)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	waypoint_request->seq = mavlink_msg_waypoint_request_get_seq(msg);
-	waypoint_request->target_system = mavlink_msg_waypoint_request_get_target_system(msg);
-	waypoint_request->target_component = mavlink_msg_waypoint_request_get_target_component(msg);
-#else
-	memcpy(waypoint_request, _MAV_PAYLOAD(msg), 4);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_request_list.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_request_list.h
deleted file mode 100644
index 61e8d834bdbdf09d933a3a40f65408bc0b3bd7e6..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_request_list.h
+++ /dev/null
@@ -1,166 +0,0 @@
-// MESSAGE WAYPOINT_REQUEST_LIST PACKING
-
-#define MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST 43
-
-typedef struct __mavlink_waypoint_request_list_t
-{
- uint8_t target_system; ///< System ID
- uint8_t target_component; ///< Component ID
-} mavlink_waypoint_request_list_t;
-
-#define MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST_LEN 2
-#define MAVLINK_MSG_ID_43_LEN 2
-
-
-
-#define MAVLINK_MESSAGE_INFO_WAYPOINT_REQUEST_LIST { \
-	"WAYPOINT_REQUEST_LIST", \
-	2, \
-	{  { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 0, offsetof(mavlink_waypoint_request_list_t, target_system) }, \
-         { "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 1, offsetof(mavlink_waypoint_request_list_t, target_component) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a waypoint_request_list 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 target_system System ID
- * @param target_component Component ID
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_request_list_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t target_system, uint8_t target_component)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint8_t(buf, 0, target_system);
-	_mav_put_uint8_t(buf, 1, target_component);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
-#else
-	mavlink_waypoint_request_list_t packet;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST;
-	return mavlink_finalize_message(msg, system_id, component_id, 2, 213);
-}
-
-/**
- * @brief Pack a waypoint_request_list 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
- * @param target_system System ID
- * @param target_component Component ID
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_request_list_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t target_system,uint8_t target_component)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint8_t(buf, 0, target_system);
-	_mav_put_uint8_t(buf, 1, target_component);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 2);
-#else
-	mavlink_waypoint_request_list_t packet;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 2);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 2, 213);
-}
-
-/**
- * @brief Encode a waypoint_request_list 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 waypoint_request_list C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_waypoint_request_list_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_waypoint_request_list_t* waypoint_request_list)
-{
-	return mavlink_msg_waypoint_request_list_pack(system_id, component_id, msg, waypoint_request_list->target_system, waypoint_request_list->target_component);
-}
-
-/**
- * @brief Send a waypoint_request_list message
- * @param chan MAVLink channel to send the message
- *
- * @param target_system System ID
- * @param target_component Component ID
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_waypoint_request_list_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[2];
-	_mav_put_uint8_t(buf, 0, target_system);
-	_mav_put_uint8_t(buf, 1, target_component);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST, buf, 2, 213);
-#else
-	mavlink_waypoint_request_list_t packet;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST, (const char *)&packet, 2, 213);
-#endif
-}
-
-#endif
-
-// MESSAGE WAYPOINT_REQUEST_LIST UNPACKING
-
-
-/**
- * @brief Get field target_system from waypoint_request_list message
- *
- * @return System ID
- */
-static inline uint8_t mavlink_msg_waypoint_request_list_get_target_system(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  0);
-}
-
-/**
- * @brief Get field target_component from waypoint_request_list message
- *
- * @return Component ID
- */
-static inline uint8_t mavlink_msg_waypoint_request_list_get_target_component(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  1);
-}
-
-/**
- * @brief Decode a waypoint_request_list message into a struct
- *
- * @param msg The message to decode
- * @param waypoint_request_list C-struct to decode the message contents into
- */
-static inline void mavlink_msg_waypoint_request_list_decode(const mavlink_message_t* msg, mavlink_waypoint_request_list_t* waypoint_request_list)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	waypoint_request_list->target_system = mavlink_msg_waypoint_request_list_get_target_system(msg);
-	waypoint_request_list->target_component = mavlink_msg_waypoint_request_list_get_target_component(msg);
-#else
-	memcpy(waypoint_request_list, _MAV_PAYLOAD(msg), 2);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_set_current.h b/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_set_current.h
deleted file mode 100644
index e2c683ee3c30e805284d27963535d01abc194b69..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/include_v1.0/common/mavlink_msg_waypoint_set_current.h
+++ /dev/null
@@ -1,188 +0,0 @@
-// MESSAGE WAYPOINT_SET_CURRENT PACKING
-
-#define MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT 41
-
-typedef struct __mavlink_waypoint_set_current_t
-{
- uint16_t seq; ///< Sequence
- uint8_t target_system; ///< System ID
- uint8_t target_component; ///< Component ID
-} mavlink_waypoint_set_current_t;
-
-#define MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT_LEN 4
-#define MAVLINK_MSG_ID_41_LEN 4
-
-
-
-#define MAVLINK_MESSAGE_INFO_WAYPOINT_SET_CURRENT { \
-	"WAYPOINT_SET_CURRENT", \
-	3, \
-	{  { "seq", NULL, MAVLINK_TYPE_UINT16_T, 0, 0, offsetof(mavlink_waypoint_set_current_t, seq) }, \
-         { "target_system", NULL, MAVLINK_TYPE_UINT8_T, 0, 2, offsetof(mavlink_waypoint_set_current_t, target_system) }, \
-         { "target_component", NULL, MAVLINK_TYPE_UINT8_T, 0, 3, offsetof(mavlink_waypoint_set_current_t, target_component) }, \
-         } \
-}
-
-
-/**
- * @brief Pack a waypoint_set_current 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 target_system System ID
- * @param target_component Component ID
- * @param seq Sequence
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_set_current_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
-						       uint8_t target_system, uint8_t target_component, uint16_t seq)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[4];
-	_mav_put_uint16_t(buf, 0, seq);
-	_mav_put_uint8_t(buf, 2, target_system);
-	_mav_put_uint8_t(buf, 3, target_component);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
-#else
-	mavlink_waypoint_set_current_t packet;
-	packet.seq = seq;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT;
-	return mavlink_finalize_message(msg, system_id, component_id, 4, 80);
-}
-
-/**
- * @brief Pack a waypoint_set_current 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
- * @param target_system System ID
- * @param target_component Component ID
- * @param seq Sequence
- * @return length of the message in bytes (excluding serial stream start sign)
- */
-static inline uint16_t mavlink_msg_waypoint_set_current_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
-							   mavlink_message_t* msg,
-						           uint8_t target_system,uint8_t target_component,uint16_t seq)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[4];
-	_mav_put_uint16_t(buf, 0, seq);
-	_mav_put_uint8_t(buf, 2, target_system);
-	_mav_put_uint8_t(buf, 3, target_component);
-
-        memcpy(_MAV_PAYLOAD(msg), buf, 4);
-#else
-	mavlink_waypoint_set_current_t packet;
-	packet.seq = seq;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-        memcpy(_MAV_PAYLOAD(msg), &packet, 4);
-#endif
-
-	msg->msgid = MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT;
-	return mavlink_finalize_message_chan(msg, system_id, component_id, chan, 4, 80);
-}
-
-/**
- * @brief Encode a waypoint_set_current 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 waypoint_set_current C-struct to read the message contents from
- */
-static inline uint16_t mavlink_msg_waypoint_set_current_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_waypoint_set_current_t* waypoint_set_current)
-{
-	return mavlink_msg_waypoint_set_current_pack(system_id, component_id, msg, waypoint_set_current->target_system, waypoint_set_current->target_component, waypoint_set_current->seq);
-}
-
-/**
- * @brief Send a waypoint_set_current message
- * @param chan MAVLink channel to send the message
- *
- * @param target_system System ID
- * @param target_component Component ID
- * @param seq Sequence
- */
-#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS
-
-static inline void mavlink_msg_waypoint_set_current_send(mavlink_channel_t chan, uint8_t target_system, uint8_t target_component, uint16_t seq)
-{
-#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
-	char buf[4];
-	_mav_put_uint16_t(buf, 0, seq);
-	_mav_put_uint8_t(buf, 2, target_system);
-	_mav_put_uint8_t(buf, 3, target_component);
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT, buf, 4, 80);
-#else
-	mavlink_waypoint_set_current_t packet;
-	packet.seq = seq;
-	packet.target_system = target_system;
-	packet.target_component = target_component;
-
-	_mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT, (const char *)&packet, 4, 80);
-#endif
-}
-
-#endif
-
-// MESSAGE WAYPOINT_SET_CURRENT UNPACKING
-
-
-/**
- * @brief Get field target_system from waypoint_set_current message
- *
- * @return System ID
- */
-static inline uint8_t mavlink_msg_waypoint_set_current_get_target_system(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  2);
-}
-
-/**
- * @brief Get field target_component from waypoint_set_current message
- *
- * @return Component ID
- */
-static inline uint8_t mavlink_msg_waypoint_set_current_get_target_component(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint8_t(msg,  3);
-}
-
-/**
- * @brief Get field seq from waypoint_set_current message
- *
- * @return Sequence
- */
-static inline uint16_t mavlink_msg_waypoint_set_current_get_seq(const mavlink_message_t* msg)
-{
-	return _MAV_RETURN_uint16_t(msg,  0);
-}
-
-/**
- * @brief Decode a waypoint_set_current message into a struct
- *
- * @param msg The message to decode
- * @param waypoint_set_current C-struct to decode the message contents into
- */
-static inline void mavlink_msg_waypoint_set_current_decode(const mavlink_message_t* msg, mavlink_waypoint_set_current_t* waypoint_set_current)
-{
-#if MAVLINK_NEED_BYTE_SWAP
-	waypoint_set_current->seq = mavlink_msg_waypoint_set_current_get_seq(msg);
-	waypoint_set_current->target_system = mavlink_msg_waypoint_set_current_get_target_system(msg);
-	waypoint_set_current->target_component = mavlink_msg_waypoint_set_current_get_target_component(msg);
-#else
-	memcpy(waypoint_set_current, _MAV_PAYLOAD(msg), 4);
-#endif
-}
diff --git a/libraries/GCS_MAVLink/license.txt b/libraries/GCS_MAVLink/license.txt
deleted file mode 100644
index 65c5ca88a67c30becee01c5a8816d964b03862f9..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/license.txt
+++ /dev/null
@@ -1,165 +0,0 @@
-                   GNU LESSER GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
-  This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
-  0. Additional Definitions.
-
-  As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
-  "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
-  An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
-  A "Combined Work" is a work produced by combining or linking an
-Application with the Library.  The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
-  The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
-  The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
-  1. Exception to Section 3 of the GNU GPL.
-
-  You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
-  2. Conveying Modified Versions.
-
-  If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
-   a) under this License, provided that you make a good faith effort to
-   ensure that, in the event an Application does not supply the
-   function or data, the facility still operates, and performs
-   whatever part of its purpose remains meaningful, or
-
-   b) under the GNU GPL, with none of the additional permissions of
-   this License applicable to that copy.
-
-  3. Object Code Incorporating Material from Library Header Files.
-
-  The object code form of an Application may incorporate material from
-a header file that is part of the Library.  You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
-   a) Give prominent notice with each copy of the object code that the
-   Library is used in it and that the Library and its use are
-   covered by this License.
-
-   b) Accompany the object code with a copy of the GNU GPL and this license
-   document.
-
-  4. Combined Works.
-
-  You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
-   a) Give prominent notice with each copy of the Combined Work that
-   the Library is used in it and that the Library and its use are
-   covered by this License.
-
-   b) Accompany the Combined Work with a copy of the GNU GPL and this license
-   document.
-
-   c) For a Combined Work that displays copyright notices during
-   execution, include the copyright notice for the Library among
-   these notices, as well as a reference directing the user to the
-   copies of the GNU GPL and this license document.
-
-   d) Do one of the following:
-
-       0) Convey the Minimal Corresponding Source under the terms of this
-       License, and the Corresponding Application Code in a form
-       suitable for, and under terms that permit, the user to
-       recombine or relink the Application with a modified version of
-       the Linked Version to produce a modified Combined Work, in the
-       manner specified by section 6 of the GNU GPL for conveying
-       Corresponding Source.
-
-       1) Use a suitable shared library mechanism for linking with the
-       Library.  A suitable mechanism is one that (a) uses at run time
-       a copy of the Library already present on the user's computer
-       system, and (b) will operate properly with a modified version
-       of the Library that is interface-compatible with the Linked
-       Version.
-
-   e) Provide Installation Information, but only if you would otherwise
-   be required to provide such information under section 6 of the
-   GNU GPL, and only to the extent that such information is
-   necessary to install and execute a modified version of the
-   Combined Work produced by recombining or relinking the
-   Application with a modified version of the Linked Version. (If
-   you use option 4d0, the Installation Information must accompany
-   the Minimal Corresponding Source and Corresponding Application
-   Code. If you use option 4d1, you must provide the Installation
-   Information in the manner specified by section 6 of the GNU GPL
-   for conveying Corresponding Source.)
-
-  5. Combined Libraries.
-
-  You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
-   a) Accompany the combined library with a copy of the same work based
-   on the Library, uncombined with any other library facilities,
-   conveyed under the terms of this License.
-
-   b) Give prominent notice with the combined library that part of it
-   is a work based on the Library, and explaining where to find the
-   accompanying uncombined form of the same work.
-
-  6. Revised Versions of the GNU Lesser General Public License.
-
-  The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
-  Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
-  If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
diff --git a/libraries/GCS_MAVLink/message_definitions/ardupilotmega.xml b/libraries/GCS_MAVLink/message_definitions/ardupilotmega.xml
deleted file mode 100644
index c6019e03f24a8dae74646f103d19675740b7424c..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions/ardupilotmega.xml
+++ /dev/null
@@ -1,270 +0,0 @@
-<?xml version='1.0'?>
-<mavlink>
-     <include>common.xml</include>
-     <!-- note that APM specific messages should use the command id
-      range from 150 to 250, to leave plenty of room for growth
-      of common.xml 
-
-      If you prototype a message here, then you should consider if it
-      is general enough to move into common.xml later
-    -->
-
-
-	<enums>
-	  <!-- Camera Mount mode Enumeration -->
-	  <enum name="MAV_MOUNT_MODE">
-	    <description>Enumeration of possible mount operation modes</description>
-	    <entry name="MAV_MOUNT_MODE_RETRACT" value="0"><description>Load and keep safe position (Roll,Pitch,Yaw) from EEPROM and stop stabilization</description></entry>
-	    <entry name="MAV_MOUNT_MODE_NEUTRAL" value="1"><description>Load and keep neutral position (Roll,Pitch,Yaw) from EEPROM.</description></entry>
-	    <entry name="MAV_MOUNT_MODE_MAVLINK_TARGETING" value="2"><description>Load neutral position and start MAVLink Roll,Pitch,Yaw control with stabilization</description></entry>
-	    <entry name="MAV_MOUNT_MODE_RC_TARGETING" value="3"><description>Load neutral position and start RC Roll,Pitch,Yaw control with stabilization</description></entry>
-	    <entry name="MAV_MOUNT_MODE_GPS_POINT" value="4"><description>Load neutral position and start to point to Lat,Lon,Alt</description></entry>
-	  </enum>
-
-	  <enum name="MAV_CMD" >
-	    <!-- Camera Controller Mission Commands Enumeration -->
-	    <entry name="MAV_CMD_DO_DIGICAM_CONFIGURE" value="202">
-	      <description>Mission command to configure an on-board camera controller system.</description>
-	      <param index="1">Modes: P, TV, AV, M, Etc</param>
-	      <param index="2">Shutter speed: Divisor number for one second</param>
-	      <param index="3">Aperture: F stop number</param>
-	      <param index="4">ISO number e.g. 80, 100, 200, Etc</param>
-	      <param index="5">Exposure type enumerator</param>
-	      <param index="6">Command Identity</param>
-	      <param index="7">Main engine cut-off time before camera trigger in seconds/10 (0 means no cut-off)</param>
-	    </entry>
-	    
-	    <entry name="MAV_CMD_DO_DIGICAM_CONTROL" value="203">
-	      <description>Mission command to control an on-board camera controller system.</description>
-	      <param index="1">Session control e.g. show/hide lens</param>
-	      <param index="2">Zoom's absolute position</param>
-	      <param index="3">Zooming step value to offset zoom from the current position</param>
-	      <param index="4">Focus Locking, Unlocking or Re-locking</param>
-	      <param index="5">Shooting Command</param>
-	      <param index="6">Command Identity</param>
-	      <param index="7">Empty</param>
-	    </entry>
-	    
-	    <!-- Camera Mount Mission Commands Enumeration -->
-	    <entry name="MAV_CMD_DO_MOUNT_CONFIGURE" value="204">
-	      <description>Mission command to configure a camera or antenna mount</description>
-	      <param index="1">Mount operation mode (see MAV_MOUNT_MODE enum)</param>
-	      <param index="2">stabilize roll? (1 = yes, 0 = no)</param>
-	      <param index="3">stabilize pitch? (1 = yes, 0 = no)</param>
-	      <param index="4">stabilize yaw? (1 = yes, 0 = no)</param>
-	      <param index="5">Empty</param>
-	      <param index="6">Empty</param>
-	      <param index="7">Empty</param>
-	    </entry>
-	
-	    <entry name="MAV_CMD_DO_MOUNT_CONTROL" value="205">
-	      <description>Mission command to control a camera or antenna mount</description>
-	      <param index="1">pitch(deg*100) or lat, depending on mount mode.</param>
-	      <param index="2">roll(deg*100) or lon depending on mount mode</param>
-	      <param index="3">yaw(deg*100) or alt (in cm) depending on mount mode</param>
-	      <param index="4">Empty</param>
-	      <param index="5">Empty</param>
-	      <param index="6">Empty</param>
-	      <param index="7">Empty</param>
-	    </entry>
-	  </enum>
-
-	  <!-- fenced mode enums -->
-	  <enum name="FENCE_ACTION">
-	    <entry name="FENCE_ACTION_NONE" value="0">
-	      <description>Disable fenced mode</description>
-	    </entry>
-	    <entry name="FENCE_ACTION_GUIDED" value="1">
-	      <description>Switched to guided mode to return point (fence point 0)</description>
-	    </entry>
-	  </enum>
-
-	  <enum name="FENCE_BREACH">
-	    <entry name="FENCE_BREACH_NONE" value="0">
-	      <description>No last fence breach</description>
-	    </entry>
-	    <entry name="FENCE_BREACH_MINALT" value="1">
-	      <description>Breached minimum altitude</description>
-	    </entry>
-	    <entry name="FENCE_BREACH_MAXALT" value="2">
-	      <description>Breached minimum altitude</description>
-	    </entry>
-	    <entry name="FENCE_BREACH_BOUNDARY" value="3">
-	      <description>Breached fence boundary</description>
-	    </entry>
-	  </enum>
-	</enums>
-
-     <messages>
-          <message id="150" name="SENSOR_OFFSETS">
-               <description>Offsets and calibrations values for hardware
-        sensors. This makes it easier to debug the calibration process.</description>
-               <field type="int16_t" name="mag_ofs_x">magnetometer X offset</field>
-               <field type="int16_t" name="mag_ofs_y">magnetometer Y offset</field>
-               <field type="int16_t" name="mag_ofs_z">magnetometer Z offset</field>
-               <field type="float" name="mag_declination">magnetic declination (radians)</field>
-               <field type="int32_t" name="raw_press">raw pressure from barometer</field>
-               <field type="int32_t" name="raw_temp">raw temperature from barometer</field>
-               <field type="float" name="gyro_cal_x">gyro X calibration</field>
-               <field type="float" name="gyro_cal_y">gyro Y calibration</field>
-               <field type="float" name="gyro_cal_z">gyro Z calibration</field>
-               <field type="float" name="accel_cal_x">accel X calibration</field>
-               <field type="float" name="accel_cal_y">accel Y calibration</field>
-               <field type="float" name="accel_cal_z">accel Z calibration</field>
-          </message>
-
-          <message id="151" name="SET_MAG_OFFSETS">
-               <description>set the magnetometer offsets</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="int16_t" name="mag_ofs_x">magnetometer X offset</field>
-               <field type="int16_t" name="mag_ofs_y">magnetometer Y offset</field>
-               <field type="int16_t" name="mag_ofs_z">magnetometer Z offset</field>
-          </message>
-
-          <message id="152" name="MEMINFO">
-               <description>state of APM memory</description>
-               <field type="uint16_t" name="brkval">heap top</field>
-               <field type="uint16_t" name="freemem">free memory</field>
-          </message>
-
-          <message id="153" name="AP_ADC">
-               <description>raw ADC output</description>
-               <field type="uint16_t" name="adc1">ADC output 1</field>
-               <field type="uint16_t" name="adc2">ADC output 2</field>
-               <field type="uint16_t" name="adc3">ADC output 3</field>
-               <field type="uint16_t" name="adc4">ADC output 4</field>
-               <field type="uint16_t" name="adc5">ADC output 5</field>
-               <field type="uint16_t" name="adc6">ADC output 6</field>
-          </message>
-
-	  <!-- Camera Controller Messages -->
-	  <message name="DIGICAM_CONFIGURE" id="154">
-	    <description>Configure on-board Camera Control System.</description>
-	    <field name="target_system" type="uint8_t">System ID</field>      
-	    <field name="target_component" type="uint8_t">Component ID</field>
-	    <field name="mode" type="uint8_t">Mode enumeration from 1 to N //P, TV, AV, M, Etc (0 means ignore)</field>
-	    <field name="shutter_speed" type="uint16_t">Divisor number //e.g. 1000 means 1/1000 (0 means ignore)</field>
-	    <field name="aperture" type="uint8_t">F stop number x 10 //e.g. 28 means 2.8 (0 means ignore)</field>
-	    <field name="iso" type="uint8_t">ISO enumeration from 1 to N //e.g. 80, 100, 200, Etc (0 means ignore)</field>
-	    <field name="exposure_type" type="uint8_t">Exposure type enumeration from 1 to N (0 means ignore)</field>
-	    <field name="command_id" type="uint8_t">Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once</field>
- 	    <field name="engine_cut_off" type="uint8_t">Main engine cut-off time before camera trigger in seconds/10 (0 means no cut-off)</field>
-	    <field name="extra_param" type="uint8_t">Extra parameters enumeration (0 means ignore)</field>
-	    <field name="extra_value" type="float">Correspondent value to given extra_param</field>
-	  </message>
-
-	  <message name="DIGICAM_CONTROL" id="155">
-	    <description>Control on-board Camera Control System to take shots.</description>
-	    <field name="target_system" type="uint8_t">System ID</field>
-	    <field name="target_component" type="uint8_t">Component ID</field>
-	    <field name="session" type="uint8_t">0: stop, 1: start or keep it up //Session control e.g. show/hide lens</field>
-	    <field name="zoom_pos" type="uint8_t">1 to N //Zoom's absolute position (0 means ignore)</field>
-	    <field name="zoom_step" type="int8_t">-100 to 100 //Zooming step value to offset zoom from the current position</field>
-	    <field name="focus_lock" type="uint8_t">0: unlock focus or keep unlocked, 1: lock focus or keep locked, 3: re-lock focus</field>
-	    <field name="shot" type="uint8_t">0: ignore, 1: shot or start filming</field>
-	    <field name="command_id" type="uint8_t">Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once</field>
-	    <field name="extra_param" type="uint8_t">Extra parameters enumeration (0 means ignore)</field>
-	    <field name="extra_value" type="float">Correspondent value to given extra_param</field>
-	  </message>
-
-	  <!-- Camera Mount Messages -->
-	  <message name="MOUNT_CONFIGURE" id="156">
-	    <description>Message to configure a camera mount, directional antenna, etc.</description>
-	    <field name="target_system" type="uint8_t">System ID</field>
-	    <field name="target_component" type="uint8_t">Component ID</field>
-	    <field name="mount_mode" type="uint8_t">mount operating mode (see MAV_MOUNT_MODE enum)</field>
-	    <field name="stab_roll" type="uint8_t">(1 = yes, 0 = no)</field>
-	    <field name="stab_pitch" type="uint8_t">(1 = yes, 0 = no)</field>
-	    <field name="stab_yaw" type="uint8_t">(1 = yes, 0 = no)</field>
-	  </message>
-    
-	  <message name="MOUNT_CONTROL" id="157">
-	    <description>Message to control a camera mount, directional antenna, etc.</description>
-	    <field name="target_system" type="uint8_t">System ID</field>
-	    <field name="target_component" type="uint8_t">Component ID</field>
-	    <field name="input_a" type="int32_t">pitch(deg*100) or lat, depending on mount mode</field>
-	    <field name="input_b" type="int32_t">roll(deg*100) or lon depending on mount mode</field>
-	    <field name="input_c" type="int32_t">yaw(deg*100) or alt (in cm) depending on mount mode</field>
-	    <field name="save_position" type="uint8_t">if "1" it will save current trimmed position on EEPROM (just valid for NEUTRAL and LANDING)</field>
-	  </message>
-
-	  <message name="MOUNT_STATUS" id="158">
-	    <description>Message with some status from APM to GCS about camera or antenna mount</description>
-	    <field name="target_system" type="uint8_t">System ID</field>
-	    <field name="target_component" type="uint8_t">Component ID</field>
-	    <field name="pointing_a" type="int32_t">pitch(deg*100) or lat, depending on mount mode</field>
-	    <field name="pointing_b" type="int32_t">roll(deg*100) or lon depending on mount mode</field>
-	    <field name="pointing_c" type="int32_t">yaw(deg*100) or alt (in cm) depending on mount mode</field>
-	  </message>
-
-	  <!-- geo-fence messages -->
-	  <message name="FENCE_POINT" id="160">
-	    <description>A fence point. Used to set a point when from
-	      GCS -> MAV. Also used to return a point from MAV -> GCS</description>
-	    <field name="target_system" type="uint8_t">System ID</field>
-	    <field name="target_component" type="uint8_t">Component ID</field>
-	    <field name="idx" type="uint8_t">point index (first point is 1, 0 is for return point)</field>
-	    <field name="count" type="uint8_t">total number of points (for sanity checking)</field>
-	    <field name="lat" type="float">Latitude of point</field>
-	    <field name="lng" type="float">Longitude of point</field>
-	  </message>
-
-	  <message name="FENCE_FETCH_POINT" id="161">
-	    <description>Request a current fence point from MAV</description>
-	    <field name="target_system" type="uint8_t">System ID</field>
-	    <field name="target_component" type="uint8_t">Component ID</field>
-	    <field name="idx" type="uint8_t">point index (first point is 1, 0 is for return point)</field>
-	  </message>
-
-	  <message name="FENCE_STATUS" id="162">
-	    <description>Status of geo-fencing. Sent in extended
-	    status stream when fencing enabled</description>
-	    <field name="breach_status" type="uint8_t">0 if currently inside fence, 1 if outside</field>
-	    <field name="breach_count" type="uint16_t">number of fence breaches</field>
-	    <field name="breach_type" type="uint8_t">last breach type (see FENCE_BREACH_* enum)</field>
-	    <field name="breach_time" type="uint32_t">time of last breach in milliseconds since boot</field>
-	  </message>
-
-	  <message name="AHRS" id="163">
-	    <description>Status of DCM attitude estimator</description>
-            <field type="float" name="omegaIx">X gyro drift estimate rad/s</field>
-            <field type="float" name="omegaIy">Y gyro drift estimate rad/s</field>
-            <field type="float" name="omegaIz">Z gyro drift estimate rad/s</field>
-            <field type="float" name="accel_weight">average accel_weight</field>
-            <field type="float" name="renorm_val">average renormalisation value</field>
-            <field type="float" name="error_rp">average error_roll_pitch value</field>
-            <field type="float" name="error_yaw">average error_yaw value</field>
-	  </message>
-
-	  <message name="SIMSTATE" id="164">
-	    <description>Status of simulation environment, if used</description>
-            <field type="float" name="roll">Roll angle (rad)</field>
-            <field type="float" name="pitch">Pitch angle (rad)</field>
-            <field type="float" name="yaw">Yaw angle (rad)</field>
-            <field type="float" name="xacc">X acceleration m/s/s</field>
-            <field type="float" name="yacc">Y acceleration m/s/s</field>
-            <field type="float" name="zacc">Z acceleration m/s/s</field>
-            <field type="float" name="xgyro">Angular speed around X axis rad/s</field>
-            <field type="float" name="ygyro">Angular speed around Y axis rad/s</field>
-            <field type="float" name="zgyro">Angular speed around Z axis rad/s</field>
-	  </message>
-
-	  <message name="HWSTATUS" id="165">
-	    <description>Status of key hardware</description>
-            <field type="uint16_t" name="Vcc">board voltage (mV)</field>
-            <field type="uint8_t"  name="I2Cerr">I2C error count</field>
-	  </message>
-
-	  <message name="RADIO" id="166">
-	    <description>Status generated by radio</description>
-            <field type="uint8_t" name="rssi">local signal strength</field>
-            <field type="uint8_t" name="remrssi">remote signal strength</field>
-	    <field type="uint8_t" name="txbuf">how full the tx buffer is as a percentage</field>
-            <field type="uint8_t" name="noise">background noise level</field>
-            <field type="uint8_t" name="remnoise">remote background noise level</field>
-	    <field type="uint16_t" name="rxerrors">receive errors</field>
-	    <field type="uint16_t" name="fixed">count of error corrected packets</field>
-	  </message>
-     </messages>
-</mavlink>
diff --git a/libraries/GCS_MAVLink/message_definitions/common.xml b/libraries/GCS_MAVLink/message_definitions/common.xml
deleted file mode 100644
index dd4ea84430da5a7ceed5ae92bdfaaff54621d75c..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions/common.xml
+++ /dev/null
@@ -1,941 +0,0 @@
-<?xml version='1.0'?>
-<mavlink>
-     <version>2</version>
-     <enums>
-          <enum name="MAV_CMD">
-               <description>Commands to be executed by the MAV. They can be executed on user request,
-      or as part of a mission script. If the action is used in a mission, the parameter mapping
-      to the waypoint/mission message is as follows:
-      Param 1, Param 2, Param 3, Param 4, X: Param 5, Y:Param 6, Z:Param 7. This command list is similar what
-      ARINC 424 is for commercial aircraft: A data format how to interpret waypoint/mission data.</description>
-               <entry value="16" name="MAV_CMD_NAV_WAYPOINT">
-                    <description>Navigate to waypoint.</description>
-                    <param index="1">Hold time in decimal seconds. (ignored by fixed wing, time to stay at waypoint for rotary wing)</param>
-                    <param index="2">Acceptance radius in meters (if the sphere with this radius is hit, the waypoint counts as reached)</param>
-                    <param index="3">0 to pass through the WP, if > 0 radius in meters to pass by WP. Positive value for clockwise orbit, negative value for counter-clockwise orbit. Allows trajectory control.</param>
-                    <param index="4">Desired yaw angle at waypoint (rotary wing)</param>
-                    <param index="5">Latitude</param>
-                    <param index="6">Longitude</param>
-                    <param index="7">Altitude</param>
-               </entry>
-               <entry value="17" name="MAV_CMD_NAV_LOITER_UNLIM">
-                    <description>Loiter around this waypoint an unlimited amount of time</description>
-                    <param index="1">Empty</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Radius around waypoint, in meters. If positive loiter clockwise, else counter-clockwise</param>
-                    <param index="4">Desired yaw angle.</param>
-                    <param index="5">Latitude</param>
-                    <param index="6">Longitude</param>
-                    <param index="7">Altitude</param>
-               </entry>
-               <entry value="18" name="MAV_CMD_NAV_LOITER_TURNS">
-                    <description>Loiter around this waypoint for X turns</description>
-                    <param index="1">Turns</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Radius around waypoint, in meters. If positive loiter clockwise, else counter-clockwise</param>
-                    <param index="4">Desired yaw angle.</param>
-                    <param index="5">Latitude</param>
-                    <param index="6">Longitude</param>
-                    <param index="7">Altitude</param>
-               </entry>
-               <entry value="19" name="MAV_CMD_NAV_LOITER_TIME">
-                    <description>Loiter around this waypoint for X seconds</description>
-                    <param index="1">Seconds (decimal)</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Radius around waypoint, in meters. If positive loiter clockwise, else counter-clockwise</param>
-                    <param index="4">Desired yaw angle.</param>
-                    <param index="5">Latitude</param>
-                    <param index="6">Longitude</param>
-                    <param index="7">Altitude</param>
-               </entry>
-               <entry value="20" name="MAV_CMD_NAV_RETURN_TO_LAUNCH">
-                    <description>Return to launch location</description>
-                    <param index="1">Empty</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="21" name="MAV_CMD_NAV_LAND">
-                    <description>Land at location</description>
-                    <param index="1">Empty</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Desired yaw angle.</param>
-                    <param index="5">Latitude</param>
-                    <param index="6">Longitude</param>
-                    <param index="7">Altitude</param>
-               </entry>
-               <entry value="22" name="MAV_CMD_NAV_TAKEOFF">
-                    <description>Takeoff from ground / hand</description>
-                    <param index="1">Minimum pitch (if airspeed sensor present), desired pitch without sensor</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Yaw angle (if magnetometer present), ignored without magnetometer</param>
-                    <param index="5">Latitude</param>
-                    <param index="6">Longitude</param>
-                    <param index="7">Altitude</param>
-               </entry>
-               <entry value="80" name="MAV_CMD_NAV_ROI">
-                    <description>Sets the region of interest (ROI) for a sensor set or the
-            vehicle itself. This can then be used by the vehicles control
-            system to control the vehicle attitude and the attitude of various
-            sensors such as cameras.</description>
-                    <param index="1">Region of intereset mode. (see MAV_ROI enum)</param>
-                    <param index="2">Waypoint index/ target ID. (see MAV_ROI enum)</param>
-                    <param index="3">ROI index (allows a vehicle to manage multiple ROI's)</param>
-                    <param index="4">Empty</param>
-                    <param index="5">x the location of the fixed ROI (see MAV_FRAME)</param>
-                    <param index="6">y</param>
-                    <param index="7">z</param>
-               </entry>
-               <entry value="81" name="MAV_CMD_NAV_PATHPLANNING">
-                    <description>Control autonomous path planning on the MAV.</description>
-                    <param index="1">0: Disable local obstacle avoidance / local path planning (without resetting map), 1: Enable local path planning, 2: Enable and reset local path planning</param>
-                    <param index="2">0: Disable full path planning (without resetting map), 1: Enable, 2: Enable and reset map/occupancy grid, 3: Enable and reset planned route, but not occupancy grid</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Yaw angle at goal, in compass degrees, [0..360]</param>
-                    <param index="5">Latitude/X of goal</param>
-                    <param index="6">Longitude/Y of goal</param>
-                    <param index="7">Altitude/Z of goal</param>
-               </entry>
-               <entry value="95" name="MAV_CMD_NAV_LAST">
-                    <description>NOP - This command is only used to mark the upper limit of the NAV/ACTION commands in the enumeration</description>
-                    <param index="1">Empty</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="112" name="MAV_CMD_CONDITION_DELAY">
-                    <description>Delay mission state machine.</description>
-                    <param index="1">Delay in seconds (decimal)</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="113" name="MAV_CMD_CONDITION_CHANGE_ALT">
-                    <description>Ascend/descend at rate.  Delay mission state machine until desired altitude reached.</description>
-                    <param index="1">Descent / Ascend rate (m/s)</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Finish Altitude</param>
-               </entry>
-               <entry value="114" name="MAV_CMD_CONDITION_DISTANCE">
-                    <description>Delay mission state machine until within desired distance of next NAV point.</description>
-                    <param index="1">Distance (meters)</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="115" name="MAV_CMD_CONDITION_YAW">
-                    <description>Reach a certain target angle.</description>
-                    <param index="1">target angle: [0-360], 0 is north</param>
-                    <param index="2">speed during yaw change:[deg per second]</param>
-                    <param index="3">direction: negative: counter clockwise, positive: clockwise [-1,1]</param>
-                    <param index="4">relative offset or absolute angle: [ 1,0]</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="159" name="MAV_CMD_CONDITION_LAST">
-                    <description>NOP - This command is only used to mark the upper limit of the CONDITION commands in the enumeration</description>
-                    <param index="1">Empty</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="176" name="MAV_CMD_DO_SET_MODE">
-                    <description>Set system mode.</description>
-                    <param index="1">Mode, as defined by ENUM MAV_MODE</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="177" name="MAV_CMD_DO_JUMP">
-                    <description>Jump to the desired command in the mission list.  Repeat this action only the specified number of times</description>
-                    <param index="1">Sequence number</param>
-                    <param index="2">Repeat count</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="178" name="MAV_CMD_DO_CHANGE_SPEED">
-                    <description>Change speed and/or throttle set points.</description>
-                    <param index="1">Speed type (0=Airspeed, 1=Ground Speed)</param>
-                    <param index="2">Speed  (m/s, -1 indicates no change)</param>
-                    <param index="3">Throttle  ( Percent, -1 indicates no change)</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="179" name="MAV_CMD_DO_SET_HOME">
-                    <description>Changes the home location either to the current location or a specified location.</description>
-                    <param index="1">Use current (1=use current location, 0=use specified location)</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Latitude</param>
-                    <param index="6">Longitude</param>
-                    <param index="7">Altitude</param>
-               </entry>
-               <entry value="180" name="MAV_CMD_DO_SET_PARAMETER">
-                    <description>Set a system parameter.  Caution!  Use of this command requires knowledge of the numeric enumeration value of the parameter.</description>
-                    <param index="1">Parameter number</param>
-                    <param index="2">Parameter value</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="181" name="MAV_CMD_DO_SET_RELAY">
-                    <description>Set a relay to a condition.</description>
-                    <param index="1">Relay number</param>
-                    <param index="2">Setting (1=on, 0=off, others possible depending on system hardware)</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="182" name="MAV_CMD_DO_REPEAT_RELAY">
-                    <description>Cycle a relay on and off for a desired number of cyles with a desired period.</description>
-                    <param index="1">Relay number</param>
-                    <param index="2">Cycle count</param>
-                    <param index="3">Cycle time (seconds, decimal)</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="183" name="MAV_CMD_DO_SET_SERVO">
-                    <description>Set a servo to a desired PWM value.</description>
-                    <param index="1">Servo number</param>
-                    <param index="2">PWM (microseconds, 1000 to 2000 typical)</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="184" name="MAV_CMD_DO_REPEAT_SERVO">
-                    <description>Cycle a between its nominal setting and a desired PWM for a desired number of cycles with a desired period.</description>
-                    <param index="1">Servo number</param>
-                    <param index="2">PWM (microseconds, 1000 to 2000 typical)</param>
-                    <param index="3">Cycle count</param>
-                    <param index="4">Cycle time (seconds)</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="200" name="MAV_CMD_DO_CONTROL_VIDEO">
-                    <description>Control onboard camera capturing.</description>
-                    <param index="1">Camera ID (-1 for all)</param>
-                    <param index="2">Transmission: 0: disabled, 1: enabled compressed, 2: enabled raw</param>
-                    <param index="3">Transmission mode: 0: video stream, >0: single images every n seconds (decimal)</param>
-                    <param index="4">Recording: 0: disabled, 1: enabled compressed, 2: enabled raw</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="201" name="MAV_CMD_DO_SET_ROI">
-                    <description>Sets the region of interest (ROI) for a sensor set or the
-                    vehicle itself. This can then be used by the vehicles control
-                    system to control the vehicle attitude and the attitude of various
-                    devices such as cameras.
-                </description>
-                    <param index="1">Region of interest mode. (see MAV_ROI enum)</param>
-                    <param index="2">Waypoint index/ target ID. (see MAV_ROI enum)</param>
-                    <param index="3">ROI index (allows a vehicle to manage multiple cameras etc.)</param>
-                    <param index="4">Empty</param>
-                    <param index="5">x the location of the fixed ROI (see MAV_FRAME)</param>
-                    <param index="6">y</param>
-                    <param index="7">z</param>
-               </entry>
-               <entry value="240" name="MAV_CMD_DO_LAST">
-                    <description>NOP - This command is only used to mark the upper limit of the DO commands in the enumeration</description>
-                    <param index="1">Empty</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="241" name="MAV_CMD_PREFLIGHT_CALIBRATION">
-                    <description>Trigger calibration. This command will be only accepted if in pre-flight mode.</description>
-                    <param index="1">Gyro calibration: 0: no, 1: yes</param>
-                    <param index="2">Magnetometer calibration: 0: no, 1: yes</param>
-                    <param index="3">Ground pressure: 0: no, 1: yes</param>
-                    <param index="4">Radio calibration: 0: no, 1: yes</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="245" name="MAV_CMD_PREFLIGHT_STORAGE">
-                    <description>Request storage of different parameter values and logs. This command will be only accepted if in pre-flight mode.</description>
-                    <param index="1">Parameter storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM</param>
-                    <param index="2">Mission storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM</param>
-                    <param index="3">Reserved</param>
-                    <param index="4">Reserved</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-          </enum>
-          <enum name="MAV_DATA_STREAM">
-               <description>Data stream IDs. A data stream is not a fixed set of messages, but rather a
-     recommendation to the autopilot software. Individual autopilots may or may not obey
-     the recommended messages.
-     </description>
-               <entry value="0" name="MAV_DATA_STREAM_ALL">
-                    <description>Enable all data streams</description>
-               </entry>
-               <entry value="1" name="MAV_DATA_STREAM_RAW_SENSORS">
-                    <description>Enable IMU_RAW, GPS_RAW, GPS_STATUS packets.</description>
-               </entry>
-               <entry value="2" name="MAV_DATA_STREAM_EXTENDED_STATUS">
-                    <description>Enable GPS_STATUS, CONTROL_STATUS, AUX_STATUS</description>
-               </entry>
-               <entry value="3" name="MAV_DATA_STREAM_RC_CHANNELS">
-                    <description>Enable RC_CHANNELS_SCALED, RC_CHANNELS_RAW, SERVO_OUTPUT_RAW</description>
-               </entry>
-               <entry value="4" name="MAV_DATA_STREAM_RAW_CONTROLLER">
-                    <description>Enable ATTITUDE_CONTROLLER_OUTPUT, POSITION_CONTROLLER_OUTPUT, NAV_CONTROLLER_OUTPUT.</description>
-               </entry>
-               <entry value="6" name="MAV_DATA_STREAM_POSITION">
-                    <description>Enable LOCAL_POSITION, GLOBAL_POSITION/GLOBAL_POSITION_INT messages.</description>
-               </entry>
-               <entry value="10" name="MAV_DATA_STREAM_EXTRA1">
-                    <description>Dependent on the autopilot</description>
-               </entry>
-               <entry value="11" name="MAV_DATA_STREAM_EXTRA2">
-                    <description>Dependent on the autopilot</description>
-               </entry>
-               <entry value="12" name="MAV_DATA_STREAM_EXTRA3">
-                    <description>Dependent on the autopilot</description>
-               </entry>
-          </enum>
-          <enum name="MAV_ROI">
-               <description> The ROI (region of interest) for the vehicle. This can be
-                be used by the vehicle for camera/vehicle attitude alignment (see
-                MAV_CMD_NAV_ROI).
-            </description>
-               <entry value="0" name="MAV_ROI_NONE">
-                    <description>No region of interest.</description>
-               </entry>
-               <entry value="1" name="MAV_ROI_WPNEXT">
-                    <description>Point toward next waypoint.</description>
-               </entry>
-               <entry value="2" name="MAV_ROI_WPINDEX">
-                    <description>Point toward given waypoint.</description>
-               </entry>
-               <entry value="3" name="MAV_ROI_LOCATION">
-                    <description>Point toward fixed location.</description>
-               </entry>
-               <entry value="4" name="MAV_ROI_TARGET">
-                    <description>Point toward of given id.</description>
-               </entry>
-          </enum>
-     </enums>
-     <messages>
-          <message id="0" name="HEARTBEAT">
-               <description>The heartbeat message shows that a system is present and responding. The type of the MAV and Autopilot hardware allow the receiving system to treat further messages from this system appropriate (e.g. by laying out the user interface based on the autopilot).</description>
-               <field type="uint8_t" name="type">Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM)</field>
-               <field type="uint8_t" name="autopilot">Type of the Autopilot: 0: Generic, 1: PIXHAWK, 2: SLUGS, 3: Ardupilot (up to 15 types), defined in MAV_AUTOPILOT_TYPE ENUM</field>
-               <field type="uint8_t_mavlink_version" name="mavlink_version">MAVLink version</field>
-          </message>
-          <message id="1" name="BOOT">
-               <description>The boot message indicates that a system is starting. The onboard software version allows to keep track of onboard soft/firmware revisions.</description>
-               <field type="uint32_t" name="version">The onboard software version</field>
-          </message>
-          <message id="2" name="SYSTEM_TIME">
-               <description>The system time is the time of the master clock, typically the computer clock of the main onboard computer.</description>
-               <field type="uint64_t" name="time_usec">Timestamp of the master clock in microseconds since UNIX epoch.</field>
-          </message>
-          <message id="3" name="PING">
-               <description>A ping message either requesting or responding to a ping. This allows to measure the system latencies, including serial port, radio modem and UDP connections.</description>
-               <field type="uint32_t" name="seq">PING sequence</field>
-               <field type="uint8_t" name="target_system">0: request ping from all receiving systems, if greater than 0: message is a ping response and number is the system id of the requesting system</field>
-               <field type="uint8_t" name="target_component">0: request ping from all receiving components, if greater than 0: message is a ping response and number is the system id of the requesting system</field>
-               <field type="uint64_t" name="time">Unix timestamp in microseconds</field>
-          </message>
-          <message id="4" name="SYSTEM_TIME_UTC">
-               <description>UTC date and time from GPS module</description>
-               <field type="uint32_t" name="utc_date">GPS UTC date ddmmyy</field>
-               <field type="uint32_t" name="utc_time">GPS UTC time hhmmss</field>
-          </message>
-          <message id="5" name="CHANGE_OPERATOR_CONTROL">
-               <description>Request to control this MAV</description>
-               <field type="uint8_t" name="target_system">System the GCS requests control for</field>
-               <field type="uint8_t" name="control_request">0: request control of this MAV, 1: Release control of this MAV</field>
-               <field type="uint8_t" name="version">0: key as plaintext, 1-255: future, different hashing/encryption variants. The GCS should in general use the safest mode possible initially and then gradually move down the encryption level if it gets a NACK message indicating an encryption mismatch.</field>
-               <field type="char[25]" name="passkey">Password / Key, depending on version plaintext or encrypted. 25 or less characters, NULL terminated. The characters may involve A-Z, a-z, 0-9, and "!?,.-"</field>
-          </message>
-          <message id="6" name="CHANGE_OPERATOR_CONTROL_ACK">
-               <description>Accept / deny control of this MAV</description>
-               <field type="uint8_t" name="gcs_system_id">ID of the GCS this message </field>
-               <field type="uint8_t" name="control_request">0: request control of this MAV, 1: Release control of this MAV</field>
-               <field type="uint8_t" name="ack">0: ACK, 1: NACK: Wrong passkey, 2: NACK: Unsupported passkey encryption method, 3: NACK: Already under control</field>
-          </message>
-          <message id="7" name="AUTH_KEY">
-               <description>Emit an encrypted signature / key identifying this system. PLEASE NOTE: This protocol has been kept simple, so transmitting the key requires an encrypted channel for true safety.</description>
-               <field type="char[32]" name="key">key</field>
-          </message>
-          <message id="9" name="ACTION_ACK">
-               <description>This message acknowledges an action. IMPORTANT: The acknowledgement can be also negative, e.g. the MAV rejects a reset message because it is in-flight. The action ids are defined in ENUM MAV_ACTION in mavlink/include/mavlink_types.h</description>
-               <field type="uint8_t" name="action">The action id</field>
-               <field type="uint8_t" name="result">0: Action DENIED, 1: Action executed</field>
-          </message>
-          <message id="10" name="ACTION">
-               <description>An action message allows to execute a certain onboard action. These include liftoff, land, storing parameters too EEPROM, shutddown, etc. The action ids are defined in ENUM MAV_ACTION in mavlink/include/mavlink_types.h</description>
-               <field type="uint8_t" name="target">The system executing the action</field>
-               <field type="uint8_t" name="target_component">The component executing the action</field>
-               <field type="uint8_t" name="action">The action id</field>
-          </message>
-          <message id="11" name="SET_MODE">
-               <description>Set the system mode, as defined by enum MAV_MODE in mavlink/include/mavlink_types.h. There is no target component id as the mode is by definition for the overall aircraft, not only for one component.</description>
-               <field type="uint8_t" name="target">The system setting the mode</field>
-               <field type="uint8_t" name="mode">The new mode</field>
-          </message>
-          <message id="12" name="SET_NAV_MODE">
-               <description>Set the system navigation mode, as defined by enum MAV_NAV_MODE in mavlink/include/mavlink_types.h. The navigation mode applies to the whole aircraft and thus all components.</description>
-               <field type="uint8_t" name="target">The system setting the mode</field>
-               <field type="uint8_t" name="nav_mode">The new navigation mode</field>
-          </message>
-          <message id="20" name="PARAM_REQUEST_READ">
-               <description>Request to read the onboard parameter with the param_id string id. Onboard parameters are stored as key[const char*] -> value[float]. This allows to send a parameter to any other component (such as the GCS) without the need of previous knowledge of possible parameter names. Thus the same GCS can store different parameters for different autopilots. See also http://qgroundcontrol.org/parameter_interface for a full documentation of QGroundControl and IMU code.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="array[15]" name="param_id">Onboard parameter id</field>
-               <field type="int16_t" name="param_index">Parameter index. Send -1 to use the param ID field as identifier</field>
-          </message>
-          <message id="21" name="PARAM_REQUEST_LIST">
-               <description>Request all parameters of this component. After his request, all parameters are emitted.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-          </message>
-          <message id="22" name="PARAM_VALUE">
-               <description>Emit the value of a onboard parameter. The inclusion of param_count and param_index in the message allows the recipient to keep track of received parameters and allows him to re-request missing parameters after a loss or timeout.</description>
-               <field type="array[15]" name="param_id">Onboard parameter id</field>
-               <field type="float" name="param_value">Onboard parameter value</field>
-               <field type="uint16_t" name="param_count">Total number of onboard parameters</field>
-               <field type="uint16_t" name="param_index">Index of this onboard parameter</field>
-          </message>
-          <message id="23" name="PARAM_SET">
-               <description>Set a parameter value TEMPORARILY to RAM. It will be reset to default on system reboot. Send the ACTION MAV_ACTION_STORAGE_WRITE to PERMANENTLY write the RAM contents to EEPROM. IMPORTANT: The receiving component should acknowledge the new parameter value by sending a param_value message to all communication partners. This will also ensure that multiple GCS all have an up-to-date list of all parameters. If the sending GCS did not receive a PARAM_VALUE message within its timeout time, it should re-send the PARAM_SET message.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="array[15]" name="param_id">Onboard parameter id</field>
-               <field type="float" name="param_value">Onboard parameter value</field>
-          </message>
-          <message id="25" name="GPS_RAW_INT">
-               <description>The global position, as returned by the Global Positioning System (GPS). This is
-NOT the global position estimate of the sytem, but rather a RAW sensor value. See message GLOBAL_POSITION for the global position estimate. Coordinate frame is right-handed, Z-axis up (GPS frame)</description>
-               <field type="uint64_t" name="usec">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-               <field type="uint8_t" name="fix_type">0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix.</field>
-               <field type="int32_t" name="lat">Latitude in 1E7 degrees</field>
-               <field type="int32_t" name="lon">Longitude in 1E7 degrees</field>
-               <field type="int32_t" name="alt">Altitude in 1E3 meters (millimeters)</field>
-               <field type="float" name="eph">GPS HDOP</field>
-               <field type="float" name="epv">GPS VDOP</field>
-               <field type="float" name="v">GPS ground speed (m/s)</field>
-               <field type="float" name="hdg">Compass heading in degrees, 0..360 degrees</field>
-          </message>
-          <message id="26" name="SCALED_IMU">
-               <description>The RAW IMU readings for the usual 9DOF sensor setup. This message should contain the scaled values to the described units</description>
-               <field type="uint64_t" name="usec">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-               <field type="int16_t" name="xacc">X acceleration (mg)</field>
-               <field type="int16_t" name="yacc">Y acceleration (mg)</field>
-               <field type="int16_t" name="zacc">Z acceleration (mg)</field>
-               <field type="int16_t" name="xgyro">Angular speed around X axis (millirad /sec)</field>
-               <field type="int16_t" name="ygyro">Angular speed around Y axis (millirad /sec)</field>
-               <field type="int16_t" name="zgyro">Angular speed around Z axis (millirad /sec)</field>
-               <field type="int16_t" name="xmag">X Magnetic field (milli tesla)</field>
-               <field type="int16_t" name="ymag">Y Magnetic field (milli tesla)</field>
-               <field type="int16_t" name="zmag">Z Magnetic field (milli tesla)</field>
-          </message>
-          <message id="27" name="GPS_STATUS">
-               <description>The positioning status, as reported by GPS. This message is intended to display status information about each satellite visible to the receiver. See message GLOBAL_POSITION for the global position estimate. This message can contain information for up to 20 satellites.</description>
-               <field type="uint8_t" name="satellites_visible">Number of satellites visible</field>
-               <field type="array[20]" name="satellite_prn">Global satellite ID</field>
-               <field type="array[20]" name="satellite_used">0: Satellite not used, 1: used for localization</field>
-               <field type="array[20]" name="satellite_elevation">Elevation (0: right on top of receiver, 90: on the horizon) of satellite</field>
-               <field type="array[20]" name="satellite_azimuth">Direction of satellite, 0: 0 deg, 255: 360 deg.</field>
-               <field type="array[20]" name="satellite_snr">Signal to noise ratio of satellite</field>
-          </message>
-          <message id="28" name="RAW_IMU">
-               <description>The RAW IMU readings for the usual 9DOF sensor setup. This message should always contain the true raw values without any scaling to allow data capture and system debugging.</description>
-               <field type="uint64_t" name="usec">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-               <field type="int16_t" name="xacc">X acceleration (raw)</field>
-               <field type="int16_t" name="yacc">Y acceleration (raw)</field>
-               <field type="int16_t" name="zacc">Z acceleration (raw)</field>
-               <field type="int16_t" name="xgyro">Angular speed around X axis (raw)</field>
-               <field type="int16_t" name="ygyro">Angular speed around Y axis (raw)</field>
-               <field type="int16_t" name="zgyro">Angular speed around Z axis (raw)</field>
-               <field type="int16_t" name="xmag">X Magnetic field (raw)</field>
-               <field type="int16_t" name="ymag">Y Magnetic field (raw)</field>
-               <field type="int16_t" name="zmag">Z Magnetic field (raw)</field>
-          </message>
-          <message id="29" name="RAW_PRESSURE">
-               <description>The RAW pressure readings for the typical setup of one absolute pressure and one differential pressure sensor. The sensor values should be the raw, UNSCALED ADC values.</description>
-               <field type="uint64_t" name="usec">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-               <field type="int16_t" name="press_abs">Absolute pressure (raw)</field>
-               <field type="int16_t" name="press_diff1">Differential pressure 1 (raw)</field>
-               <field type="int16_t" name="press_diff2">Differential pressure 2 (raw)</field>
-               <field type="int16_t" name="temperature">Raw Temperature measurement (raw)</field>
-          </message>
-          <message id="38" name="SCALED_PRESSURE">
-               <description>The pressure readings for the typical setup of one absolute and differential pressure sensor. The units are as specified in each field.</description>
-               <field type="uint64_t" name="usec">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-               <field type="float" name="press_abs">Absolute pressure (hectopascal)</field>
-               <field type="float" name="press_diff">Differential pressure 1 (hectopascal)</field>
-               <field type="int16_t" name="temperature">Temperature measurement (0.01 degrees celsius)</field>
-          </message>
-          <message id="30" name="ATTITUDE">
-               <description>The attitude in the aeronautical frame (right-handed, Z-down, X-front, Y-right).</description>
-               <field type="uint64_t" name="usec">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-               <field type="float" name="roll">Roll angle (rad)</field>
-               <field type="float" name="pitch">Pitch angle (rad)</field>
-               <field type="float" name="yaw">Yaw angle (rad)</field>
-               <field type="float" name="rollspeed">Roll angular speed (rad/s)</field>
-               <field type="float" name="pitchspeed">Pitch angular speed (rad/s)</field>
-               <field type="float" name="yawspeed">Yaw angular speed (rad/s)</field>
-          </message>
-          <message id="31" name="LOCAL_POSITION">
-               <description>The filtered local position (e.g. fused computer vision and accelerometers). Coordinate frame is right-handed, Z-axis down (aeronautical frame)</description>
-               <field type="uint64_t" name="usec">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-               <field type="float" name="x">X Position</field>
-               <field type="float" name="y">Y Position</field>
-               <field type="float" name="z">Z Position</field>
-               <field type="float" name="vx">X Speed</field>
-               <field type="float" name="vy">Y Speed</field>
-               <field type="float" name="vz">Z Speed</field>
-          </message>
-          <message id="33" name="GLOBAL_POSITION">
-               <description>The filtered global position (e.g. fused GPS and accelerometers). Coordinate frame is right-handed, Z-axis up (GPS frame)</description>
-               <field type="uint64_t" name="usec">Timestamp (microseconds since unix epoch)</field>
-               <field type="float" name="lat">Latitude, in degrees</field>
-               <field type="float" name="lon">Longitude, in degrees</field>
-               <field type="float" name="alt">Absolute altitude, in meters</field>
-               <field type="float" name="vx">X Speed (in Latitude direction, positive: going north)</field>
-               <field type="float" name="vy">Y Speed (in Longitude direction, positive: going east)</field>
-               <field type="float" name="vz">Z Speed (in Altitude direction, positive: going up)</field>
-          </message>
-          <message id="32" name="GPS_RAW">
-               <description>The global position, as returned by the Global Positioning System (GPS). This is
-NOT the global position estimate of the sytem, but rather a RAW sensor value. See message GLOBAL_POSITION for the global position estimate. Coordinate frame is right-handed, Z-axis up (GPS frame)</description>
-               <field type="uint64_t" name="usec">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-               <field type="uint8_t" name="fix_type">0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix.</field>
-               <field type="float" name="lat">Latitude in degrees</field>
-               <field type="float" name="lon">Longitude in degrees</field>
-               <field type="float" name="alt">Altitude in meters</field>
-               <field type="float" name="eph">GPS HDOP</field>
-               <field type="float" name="epv">GPS VDOP</field>
-               <field type="float" name="v">GPS ground speed</field>
-               <field type="float" name="hdg">Compass heading in degrees, 0..360 degrees</field>
-          </message>
-          <message id="34" name="SYS_STATUS">
-               <description>The general system state. If the system is following the MAVLink standard, the system state is mainly defined by three orthogonal states/modes: The system mode, which is either LOCKED (motors shut down and locked), MANUAL (system under RC control), GUIDED (system with autonomous position control, position setpoint controlled manually) or AUTO (system guided by path/waypoint planner). The NAV_MODE defined the current flight state: LIFTOFF (often an open-loop maneuver), LANDING, WAYPOINTS or VECTOR. This represents the internal navigation state machine. The system status shows wether the system is currently active or not and if an emergency occured. During the CRITICAL and EMERGENCY states the MAV is still considered to be active, but should start emergency procedures autonomously. After a failure occured it should first move from active to critical to allow manual intervention and then move to emergency after a certain timeout.</description>
-               <field type="uint8_t" name="mode">System mode, see MAV_MODE ENUM in mavlink/include/mavlink_types.h</field>
-               <field type="uint8_t" name="nav_mode">Navigation mode, see MAV_NAV_MODE ENUM</field>
-               <field type="uint8_t" name="status">System status flag, see MAV_STATUS ENUM</field>
-               <field type="uint16_t" name="load">Maximum usage in percent of the mainloop time, (0%: 0, 100%: 1000) should be always below 1000</field>
-               <field type="uint16_t" name="vbat">Battery voltage, in millivolts (1 = 1 millivolt)</field>
-               <field type="uint16_t" name="battery_remaining">Remaining battery energy: (0%: 0, 100%: 1000)</field>
-               <field type="uint16_t" name="packet_drop">Dropped packets (packets that were corrupted on reception on the MAV)</field>
-          </message>
-          <message id="35" name="RC_CHANNELS_RAW">
-               <description>The RAW values of the RC channels received. The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%. Individual receivers/transmitters might violate this specification.</description>
-               <field type="uint16_t" name="chan1_raw">RC channel 1 value, in microseconds</field>
-               <field type="uint16_t" name="chan2_raw">RC channel 2 value, in microseconds</field>
-               <field type="uint16_t" name="chan3_raw">RC channel 3 value, in microseconds</field>
-               <field type="uint16_t" name="chan4_raw">RC channel 4 value, in microseconds</field>
-               <field type="uint16_t" name="chan5_raw">RC channel 5 value, in microseconds</field>
-               <field type="uint16_t" name="chan6_raw">RC channel 6 value, in microseconds</field>
-               <field type="uint16_t" name="chan7_raw">RC channel 7 value, in microseconds</field>
-               <field type="uint16_t" name="chan8_raw">RC channel 8 value, in microseconds</field>
-               <field type="uint8_t" name="rssi">Receive signal strength indicator, 0: 0%, 255: 100%</field>
-          </message>
-          <message id="36" name="RC_CHANNELS_SCALED">
-               <description>The scaled values of the RC channels received. (-100%) -10000, (0%) 0, (100%) 10000</description>
-               <field type="int16_t" name="chan1_scaled">RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000</field>
-               <field type="int16_t" name="chan2_scaled">RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000</field>
-               <field type="int16_t" name="chan3_scaled">RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000</field>
-               <field type="int16_t" name="chan4_scaled">RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000</field>
-               <field type="int16_t" name="chan5_scaled">RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000</field>
-               <field type="int16_t" name="chan6_scaled">RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000</field>
-               <field type="int16_t" name="chan7_scaled">RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000</field>
-               <field type="int16_t" name="chan8_scaled">RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000</field>
-               <field type="uint8_t" name="rssi">Receive signal strength indicator, 0: 0%, 255: 100%</field>
-          </message>
-          <message id="37" name="SERVO_OUTPUT_RAW">
-               <description>The RAW values of the servo outputs (for RC input from the remote, use the RC_CHANNELS messages). The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%.</description>
-               <field type="uint16_t" name="servo1_raw">Servo output 1 value, in microseconds</field>
-               <field type="uint16_t" name="servo2_raw">Servo output 2 value, in microseconds</field>
-               <field type="uint16_t" name="servo3_raw">Servo output 3 value, in microseconds</field>
-               <field type="uint16_t" name="servo4_raw">Servo output 4 value, in microseconds</field>
-               <field type="uint16_t" name="servo5_raw">Servo output 5 value, in microseconds</field>
-               <field type="uint16_t" name="servo6_raw">Servo output 6 value, in microseconds</field>
-               <field type="uint16_t" name="servo7_raw">Servo output 7 value, in microseconds</field>
-               <field type="uint16_t" name="servo8_raw">Servo output 8 value, in microseconds</field>
-          </message>
-          <message id="39" name="WAYPOINT">
-               <description>Message encoding a waypoint. This message is emitted to announce
-     the presence of a waypoint and to set a waypoint on the system. The waypoint can be either in x, y, z meters (type: LOCAL) or x:lat, y:lon, z:altitude. Local frame is Z-down, right handed, global frame is Z-up, right handed</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint16_t" name="seq">Sequence</field>
-               <field type="uint8_t" name="frame">The coordinate system of the waypoint. see MAV_FRAME in mavlink_types.h</field>
-               <field type="uint8_t" name="command">The scheduled action for the waypoint. see MAV_COMMAND in common.xml MAVLink specs</field>
-               <field type="uint8_t" name="current">false:0, true:1</field>
-               <field type="uint8_t" name="autocontinue">autocontinue to next wp</field>
-               <field type="float" name="param1">PARAM1 / For NAV command waypoints: Radius in which the waypoint is accepted as reached, in meters</field>
-               <field type="float" name="param2">PARAM2 / For NAV command waypoints: Time that the MAV should stay inside the PARAM1 radius before advancing, in milliseconds</field>
-               <field type="float" name="param3">PARAM3 / For LOITER command waypoints: Orbit to circle around the waypoint, in meters. If positive the orbit direction should be clockwise, if negative the orbit direction should be counter-clockwise.</field>
-               <field type="float" name="param4">PARAM4 / For NAV and LOITER command waypoints: Yaw orientation in degrees, [0..360] 0 = NORTH</field>
-               <field type="float" name="x">PARAM5 / local: x position, global: latitude</field>
-               <field type="float" name="y">PARAM6 / y position: global: longitude</field>
-               <field type="float" name="z">PARAM7 / z position: global: altitude</field>
-          </message>
-          <message id="40" name="WAYPOINT_REQUEST">
-               <description>Request the information of the waypoint with the sequence number seq. The response of the system to this message should be a WAYPOINT message.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint16_t" name="seq">Sequence</field>
-          </message>
-          <message id="41" name="WAYPOINT_SET_CURRENT">
-               <description>Set the waypoint with sequence number seq as current waypoint. This means that the MAV will continue to this waypoint on the shortest path (not following the waypoints in-between).</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint16_t" name="seq">Sequence</field>
-          </message>
-          <message id="42" name="WAYPOINT_CURRENT">
-               <description>Message that announces the sequence number of the current active waypoint. The MAV will fly towards this waypoint.</description>
-               <field type="uint16_t" name="seq">Sequence</field>
-          </message>
-          <message id="43" name="WAYPOINT_REQUEST_LIST">
-               <description>Request the overall list of waypoints from the system/component.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-          </message>
-          <message id="44" name="WAYPOINT_COUNT">
-               <description>This message is emitted as response to WAYPOINT_REQUEST_LIST by the MAV. The GCS can then request the individual waypoints based on the knowledge of the total number of waypoints.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint16_t" name="count">Number of Waypoints in the Sequence</field>
-          </message>
-          <message id="45" name="WAYPOINT_CLEAR_ALL">
-               <description>Delete all waypoints at once.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-          </message>
-          <message id="46" name="WAYPOINT_REACHED">
-               <description>A certain waypoint has been reached. The system will either hold this position (or circle on the orbit) or (if the autocontinue on the WP was set) continue to the next waypoint.</description>
-               <field type="uint16_t" name="seq">Sequence</field>
-          </message>
-          <message id="47" name="WAYPOINT_ACK">
-               <description>Ack message during waypoint handling. The type field states if this message is a positive ack (type=0) or if an error happened (type=non-zero).</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint8_t" name="type">0: OK, 1: Error</field>
-          </message>
-          <message id="48" name="GPS_SET_GLOBAL_ORIGIN">
-               <description>As local waypoints exist, the global waypoint reference allows to transform between the local coordinate frame and the global (GPS) coordinate frame. This can be necessary when e.g. in- and outdoor settings are connected and the MAV should move from in- to outdoor.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="int32_t" name="latitude">global position * 1E7</field>
-               <field type="int32_t" name="longitude">global position * 1E7</field>
-               <field type="int32_t" name="altitude">global position * 1000</field>
-          </message>
-          <message id="49" name="GPS_LOCAL_ORIGIN_SET">
-               <description>Once the MAV sets a new GPS-Local correspondence, this message announces the origin (0,0,0) position</description>
-               <field type="int32_t" name="latitude">Latitude (WGS84), expressed as * 1E7</field>
-               <field type="int32_t" name="longitude">Longitude (WGS84), expressed as * 1E7</field>
-               <field type="int32_t" name="altitude">Altitude(WGS84), expressed as * 1000</field>
-          </message>
-          <message id="50" name="LOCAL_POSITION_SETPOINT_SET">
-               <description>Set the setpoint for a local position controller. This is the position in local coordinates the MAV should fly to. This message is sent by the path/waypoint planner to the onboard position controller. As some MAVs have a degree of freedom in yaw (e.g. all helicopters/quadrotors), the desired yaw angle is part of the message.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="float" name="x">x position</field>
-               <field type="float" name="y">y position</field>
-               <field type="float" name="z">z position</field>
-               <field type="float" name="yaw">Desired yaw angle</field>
-          </message>
-          <message id="51" name="LOCAL_POSITION_SETPOINT">
-               <description>Transmit the current local setpoint of the controller to other MAVs (collision avoidance) and to the GCS.</description>
-               <field type="float" name="x">x position</field>
-               <field type="float" name="y">y position</field>
-               <field type="float" name="z">z position</field>
-               <field type="float" name="yaw">Desired yaw angle</field>
-          </message>
-          <message id="52" name="CONTROL_STATUS">
-               <field type="uint8_t" name="position_fix">Position fix: 0: lost, 2: 2D position fix, 3: 3D position fix </field>
-               <field type="uint8_t" name="vision_fix">Vision position fix: 0: lost, 1: 2D local position hold, 2: 2D global position fix, 3: 3D global position fix </field>
-               <field type="uint8_t" name="gps_fix">GPS position fix: 0: no reception, 1: Minimum 1 satellite, but no position fix, 2: 2D position fix, 3: 3D position fix </field>
-               <field type="uint8_t" name="ahrs_health">Attitude estimation health: 0: poor, 255: excellent</field>
-               <field type="uint8_t" name="control_att">0: Attitude control disabled, 1: enabled</field>
-               <field type="uint8_t" name="control_pos_xy">0: X, Y position control disabled, 1: enabled</field>
-               <field type="uint8_t" name="control_pos_z">0: Z position control disabled, 1: enabled</field>
-               <field type="uint8_t" name="control_pos_yaw">0: Yaw angle control disabled, 1: enabled</field>
-          </message>
-          <message id="53" name="SAFETY_SET_ALLOWED_AREA">
-               <description>Set a safety zone (volume), which is defined by two corners of a cube. This message can be used to tell the MAV which setpoints/waypoints to accept and which to reject. Safety areas are often enforced by national or competition regulations.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint8_t" name="frame">Coordinate frame, as defined by MAV_FRAME enum in mavlink_types.h. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down.</field>
-               <field type="float" name="p1x">x position 1 / Latitude 1</field>
-               <field type="float" name="p1y">y position 1 / Longitude 1</field>
-               <field type="float" name="p1z">z position 1 / Altitude 1</field>
-               <field type="float" name="p2x">x position 2 / Latitude 2</field>
-               <field type="float" name="p2y">y position 2 / Longitude 2</field>
-               <field type="float" name="p2z">z position 2 / Altitude 2</field>
-          </message>
-          <message id="54" name="SAFETY_ALLOWED_AREA">
-               <description>Read out the safety zone the MAV currently assumes.</description>
-               <field type="uint8_t" name="frame">Coordinate frame, as defined by MAV_FRAME enum in mavlink_types.h. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down.</field>
-               <field type="float" name="p1x">x position 1 / Latitude 1</field>
-               <field type="float" name="p1y">y position 1 / Longitude 1</field>
-               <field type="float" name="p1z">z position 1 / Altitude 1</field>
-               <field type="float" name="p2x">x position 2 / Latitude 2</field>
-               <field type="float" name="p2y">y position 2 / Longitude 2</field>
-               <field type="float" name="p2z">z position 2 / Altitude 2</field>
-          </message>
-          <message id="55" name="SET_ROLL_PITCH_YAW_THRUST">
-               <description>Set roll, pitch and yaw.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="float" name="roll">Desired roll angle in radians</field>
-               <field type="float" name="pitch">Desired pitch angle in radians</field>
-               <field type="float" name="yaw">Desired yaw angle in radians</field>
-               <field type="float" name="thrust">Collective thrust, normalized to 0 .. 1</field>
-          </message>
-          <message id="56" name="SET_ROLL_PITCH_YAW_SPEED_THRUST">
-               <description>Set roll, pitch and yaw.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="float" name="roll_speed">Desired roll angular speed in rad/s</field>
-               <field type="float" name="pitch_speed">Desired pitch angular speed in rad/s</field>
-               <field type="float" name="yaw_speed">Desired yaw angular speed in rad/s</field>
-               <field type="float" name="thrust">Collective thrust, normalized to 0 .. 1</field>
-          </message>
-          <message id="57" name="ROLL_PITCH_YAW_THRUST_SETPOINT">
-               <description>Setpoint in roll, pitch, yaw currently active on the system.</description>
-               <field type="uint64_t" name="time_us">Timestamp in micro seconds since unix epoch</field>
-               <field type="float" name="roll">Desired roll angle in radians</field>
-               <field type="float" name="pitch">Desired pitch angle in radians</field>
-               <field type="float" name="yaw">Desired yaw angle in radians</field>
-               <field type="float" name="thrust">Collective thrust, normalized to 0 .. 1</field>
-          </message>
-          <message id="58" name="ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT">
-               <description>Setpoint in rollspeed, pitchspeed, yawspeed currently active on the system.</description>
-               <field type="uint64_t" name="time_us">Timestamp in micro seconds since unix epoch</field>
-               <field type="float" name="roll_speed">Desired roll angular speed in rad/s</field>
-               <field type="float" name="pitch_speed">Desired pitch angular speed in rad/s</field>
-               <field type="float" name="yaw_speed">Desired yaw angular speed in rad/s</field>
-               <field type="float" name="thrust">Collective thrust, normalized to 0 .. 1</field>
-          </message>
-          <message id="62" name="NAV_CONTROLLER_OUTPUT">
-               <description>Outputs of the APM navigation controller. The primary use of this message is to check the response and signs
-of the controller before actual flight and to assist with tuning controller parameters </description>
-               <field type="float" name="nav_roll">Current desired roll in degrees</field>
-               <field type="float" name="nav_pitch">Current desired pitch in degrees</field>
-               <field type="int16_t" name="nav_bearing">Current desired heading in degrees</field>
-               <field type="int16_t" name="target_bearing">Bearing to current waypoint/target in degrees</field>
-               <field type="uint16_t" name="wp_dist">Distance to active waypoint in meters</field>
-               <field type="float" name="alt_error">Current altitude error in meters</field>
-               <field type="float" name="aspd_error">Current airspeed error in meters/second</field>
-               <field type="float" name="xtrack_error">Current crosstrack error on x-y plane in meters</field>
-          </message>
-          <message id="63" name="POSITION_TARGET">
-               <description>The goal position of the system. This position is the input to any navigation or path planning algorithm and does NOT represent the current controller setpoint.</description>
-               <field type="float" name="x">x position</field>
-               <field type="float" name="y">y position</field>
-               <field type="float" name="z">z position</field>
-               <field type="float" name="yaw">yaw orientation in radians, 0 = NORTH</field>
-          </message>
-          <message id="64" name="STATE_CORRECTION">
-               <description>Corrects the systems state by adding an error correction term to the position and velocity, and by rotating the attitude by a correction angle.</description>
-               <field type="float" name="xErr">x position error</field>
-               <field type="float" name="yErr">y position error</field>
-               <field type="float" name="zErr">z position error</field>
-               <field type="float" name="rollErr">roll error (radians)</field>
-               <field type="float" name="pitchErr">pitch error (radians)</field>
-               <field type="float" name="yawErr">yaw error (radians)</field>
-               <field type="float" name="vxErr">x velocity</field>
-               <field type="float" name="vyErr">y velocity</field>
-               <field type="float" name="vzErr">z velocity</field>
-          </message>
-          <message id="65" name="SET_ALTITUDE">
-               <field type="uint8_t" name="target">The system setting the altitude</field>
-               <field type="uint32_t" name="mode">The new altitude in meters</field>
-          </message>
-          <message id="66" name="REQUEST_DATA_STREAM">
-               <field type="uint8_t" name="target_system">The target requested to send the message stream.</field>
-               <field type="uint8_t" name="target_component">The target requested to send the message stream.</field>
-               <field type="uint8_t" name="req_stream_id">The ID of the requested message type</field>
-               <field type="uint16_t" name="req_message_rate">Update rate in Hertz</field>
-               <field type="uint8_t" name="start_stop">1 to start sending, 0 to stop sending.</field>
-          </message>
-          <message id="67" name="HIL_STATE">
-               <description>This packet is useful for high throughput
-                applications such as hardware in the loop simulations.
-            </description>
-               <field type="uint64_t" name="usec">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-               <field type="float" name="roll">Roll angle (rad)</field>
-               <field type="float" name="pitch">Pitch angle (rad)</field>
-               <field type="float" name="yaw">Yaw angle (rad)</field>
-               <field type="float" name="rollspeed">Roll angular speed (rad/s)</field>
-               <field type="float" name="pitchspeed">Pitch angular speed (rad/s)</field>
-               <field type="float" name="yawspeed">Yaw angular speed (rad/s)</field>
-               <field type="int32_t" name="lat">Latitude, expressed as * 1E7</field>
-               <field type="int32_t" name="lon">Longitude, expressed as * 1E7</field>
-               <field type="int32_t" name="alt">Altitude in meters, expressed as * 1000 (millimeters)</field>
-               <field type="int16_t" name="vx">Ground X Speed (Latitude), expressed as m/s * 100</field>
-               <field type="int16_t" name="vy">Ground Y Speed (Longitude), expressed as m/s * 100</field>
-               <field type="int16_t" name="vz">Ground Z Speed (Altitude), expressed as m/s * 100</field>
-               <field type="int16_t" name="xacc">X acceleration (mg)</field>
-               <field type="int16_t" name="yacc">Y acceleration (mg)</field>
-               <field type="int16_t" name="zacc">Z acceleration (mg)</field>
-          </message>
-          <message id="68" name="HIL_CONTROLS">
-               <description>Hardware in the loop control outputs</description>
-               <field type="uint64_t" name="time_us">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-               <field type="float" name="roll_ailerons">Control output -3 .. 1</field>
-               <field type="float" name="pitch_elevator">Control output -1 .. 1</field>
-               <field type="float" name="yaw_rudder">Control output -1 .. 1</field>
-               <field type="float" name="throttle">Throttle 0 .. 1</field>
-               <field type="uint8_t" name="mode">System mode (MAV_MODE)</field>
-               <field type="uint8_t" name="nav_mode">Navigation mode (MAV_NAV_MODE)</field>
-          </message>
-          <message id="69" name="MANUAL_CONTROL">
-               <field type="uint8_t" name="target">The system to be controlled</field>
-               <field type="float" name="roll">roll</field>
-               <field type="float" name="pitch">pitch</field>
-               <field type="float" name="yaw">yaw</field>
-               <field type="float" name="thrust">thrust</field>
-               <field type="uint8_t" name="roll_manual">roll control enabled auto:0, manual:1</field>
-               <field type="uint8_t" name="pitch_manual">pitch auto:0, manual:1</field>
-               <field type="uint8_t" name="yaw_manual">yaw auto:0, manual:1</field>
-               <field type="uint8_t" name="thrust_manual">thrust auto:0, manual:1</field>
-          </message>
-          <message id="70" name="RC_CHANNELS_OVERRIDE">
-               <description>The RAW values of the RC channels sent to the MAV to override info received from the RC radio. A value of -1 means no change to that channel. A value of 0 means control of that channel should be released back to the RC radio. The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%. Individual receivers/transmitters might violate this specification.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint16_t" name="chan1_raw">RC channel 1 value, in microseconds</field>
-               <field type="uint16_t" name="chan2_raw">RC channel 2 value, in microseconds</field>
-               <field type="uint16_t" name="chan3_raw">RC channel 3 value, in microseconds</field>
-               <field type="uint16_t" name="chan4_raw">RC channel 4 value, in microseconds</field>
-               <field type="uint16_t" name="chan5_raw">RC channel 5 value, in microseconds</field>
-               <field type="uint16_t" name="chan6_raw">RC channel 6 value, in microseconds</field>
-               <field type="uint16_t" name="chan7_raw">RC channel 7 value, in microseconds</field>
-               <field type="uint16_t" name="chan8_raw">RC channel 8 value, in microseconds</field>
-          </message>
-          <message id="73" name="GLOBAL_POSITION_INT">
-               <description>The filtered global position (e.g. fused GPS and accelerometers). The position is in GPS-frame (right-handed, Z-up)</description>
-               <field type="int32_t" name="lat">Latitude, expressed as * 1E7</field>
-               <field type="int32_t" name="lon">Longitude, expressed as * 1E7</field>
-               <field type="int32_t" name="alt">Altitude in meters, expressed as * 1000 (millimeters)</field>
-               <field type="int16_t" name="vx">Ground X Speed (Latitude), expressed as m/s * 100</field>
-               <field type="int16_t" name="vy">Ground Y Speed (Longitude), expressed as m/s * 100</field>
-               <field type="int16_t" name="vz">Ground Z Speed (Altitude), expressed as m/s * 100</field>
-          </message>
-          <message id="74" name="VFR_HUD">
-               <description>Metrics typically displayed on a HUD for fixed wing aircraft</description>
-               <field type="float" name="airspeed">Current airspeed in m/s</field>
-               <field type="float" name="groundspeed">Current ground speed in m/s</field>
-               <field type="int16_t" name="heading">Current heading in degrees, in compass units (0..360, 0=north)</field>
-               <field type="uint16_t" name="throttle">Current throttle setting in integer percent, 0 to 100</field>
-               <field type="float" name="alt">Current altitude (MSL), in meters</field>
-               <field type="float" name="climb">Current climb rate in meters/second</field>
-          </message>
-          <message id="75" name="COMMAND">
-               <description>Send a command with up to four parameters to the MAV</description>
-               <field type="uint8_t" name="target_system">System which should execute the command</field>
-               <field type="uint8_t" name="target_component">Component which should execute the command, 0 for all components</field>
-               <field type="uint8_t" name="command">Command ID, as defined by MAV_CMD enum.</field>
-               <field type="uint8_t" name="confirmation">0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)</field>
-               <field type="float" name="param1">Parameter 1, as defined by MAV_CMD enum.</field>
-               <field type="float" name="param2">Parameter 2, as defined by MAV_CMD enum.</field>
-               <field type="float" name="param3">Parameter 3, as defined by MAV_CMD enum.</field>
-               <field type="float" name="param4">Parameter 4, as defined by MAV_CMD enum.</field>
-          </message>
-          <message id="76" name="COMMAND_ACK">
-               <description>Report status of a command. Includes feedback wether the command was executed</description>
-               <field type="float" name="command">Current airspeed in m/s</field>
-               <field type="float" name="result">1: Action ACCEPTED and EXECUTED, 1: Action TEMPORARY REJECTED/DENIED, 2: Action PERMANENTLY DENIED, 3: Action UNKNOWN/UNSUPPORTED, 4: Requesting CONFIRMATION</field>
-          </message>
-          <message id="100" name="OPTICAL_FLOW">
-               <description>Optical flow from a flow sensor (e.g. optical mouse sensor)</description>
-               <field type="uint64_t" name="time">Timestamp (UNIX)</field>
-               <field type="uint8_t" name="sensor_id">Sensor ID</field>
-               <field type="int16_t" name="flow_x">Flow in pixels in x-sensor direction</field>
-               <field type="int16_t" name="flow_y">Flow in pixels in y-sensor direction</field>
-               <field type="uint8_t" name="quality">Optical flow quality / confidence. 0: bad, 255: maximum quality</field>
-               <field type="float" name="ground_distance">Ground distance in meters</field>
-          </message>
-          <message id="140" name="OBJECT_DETECTION_EVENT">
-               <description>Object has been detected</description>
-               <field type="uint32_t" name="time">Timestamp in milliseconds since system boot</field>
-               <field type="uint16_t" name="object_id">Object ID</field>
-               <field type="uint8_t" name="type">Object type: 0: image, 1: letter, 2: ground vehicle, 3: air vehicle, 4: surface vehicle, 5: sub-surface vehicle, 6: human, 7: animal</field>
-               <field type="char[20]" name="name">Name of the object as defined by the detector</field>
-               <field type="uint8_t" name="quality">Detection quality / confidence. 0: bad, 255: maximum confidence</field>
-               <field type="float" name="bearing">Angle of the object with respect to the body frame in NED coordinates in radians. 0: front</field>
-               <field type="float" name="distance">Ground distance in meters</field>
-          </message>
-          <!-- MESSAGE IDs 80 - 250: Space for custom messages in individual projectname_messages.xml files -->
-          <message id="251" name="DEBUG_VECT">
-               <field type="char[10]" name="name">Name</field>
-               <field type="uint64_t" name="usec">Timestamp</field>
-               <field type="float" name="x">x</field>
-               <field type="float" name="y">y</field>
-               <field type="float" name="z">z</field>
-          </message>
-          <message id="252" name="NAMED_VALUE_FLOAT">
-               <description>Send a key-value pair as float. The use of this message is discouraged for normal packets, but a quite efficient way for testing new messages and getting experimental debug output.</description>
-               <field type="char[10]" name="name">Name of the debug variable</field>
-               <field type="float" name="value">Floating point value</field>
-          </message>
-          <message id="253" name="NAMED_VALUE_INT">
-               <description>Send a key-value pair as integer. The use of this message is discouraged for normal packets, but a quite efficient way for testing new messages and getting experimental debug output.</description>
-               <field type="char[10]" name="name">Name of the debug variable</field>
-               <field type="int32_t" name="value">Signed integer value</field>
-          </message>
-          <message id="254" name="STATUSTEXT">
-               <description>Status text message. These messages are printed in yellow in the COMM console of QGroundControl. WARNING: They consume quite some bandwidth, so use only for important status and error messages. If implemented wisely, these messages are buffered on the MCU and sent only at a limited rate (e.g. 10 Hz).</description>
-               <field type="uint8_t" name="severity">Severity of status, 0 = info message, 255 = critical fault</field>
-               <field type="int8_t[50]" name="text">Status text message, without null termination character</field>
-          </message>
-          <message id="255" name="DEBUG">
-               <description>Send a debug value. The index is used to discriminate between values. These values show up in the plot of QGroundControl as DEBUG N.</description>
-               <field type="uint8_t" name="ind">index of debug variable</field>
-               <field type="float" name="value">DEBUG value</field>
-          </message>
-     </messages>
-</mavlink>
diff --git a/libraries/GCS_MAVLink/message_definitions/common_slugs.xml b/libraries/GCS_MAVLink/message_definitions/common_slugs.xml
deleted file mode 100644
index 3ff7b5cab442d5ee929fceeb9e3190495cfcc408..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions/common_slugs.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version="1.0"?>
-<mavlink>
-<messages>
-   <message name="HEARTBEAT" id="0">
-     <description>The heartbeat message shows that a system is present and responding. The type of the MAV and Autopilot hardware allow the receiving system to treat further messages from this system appropriate (e.g. by laying out the user interface based on the autopilot).</description>
-     <field name="type" type="uint8_t">Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM)</field>
-     <field name="autopilot" type="uint8_t">Type of the Autopilot: 0: Generic, 1: PIXHAWK, 2: SLUGS, 3: Ardupilot (up to 15 types), defined in MAV_AUTOPILOT_TYPE ENUM</field>
-   </message>
- 
-   <message name="BOOT" id="1">
-	<description>The boot message indicates that a system is starting. The onboard software version allows to keep track of onboard soft/firmware revisions.</description>
-     <field name="version" type="uint32_t">The onboard software version</field>
-   </message>
-
-   <message name="SYSTEM_TIME" id="2">
-     <description>The system time is the time of the master clock, typically the computer clock of the main onboard computer.</description>
-     <field name="time_usec" type="uint64_t">Timestamp of the master clock in microseconds since UNIX epoch.</field>
-   </message>
-
-   <message name="PING" id="3">
-     <description>A ping message either requesting or responding to a ping. This allows to measure the system latencies, including serial port, radio modem and UDP connections.</description>
-     <field name="seq" type="uint32_t">PING sequence</field>
-     <field name="target_system" type="uint8_t">0: request ping from all receiving systems, if greater than 0: message is a ping response and number is the system id of the requesting system</field>
-     <field name="target_component" type="uint8_t">0: request ping from all receiving components, if greater than 0: message is a ping response and number is the system id of the requesting system</field>
-     <field name="time" type="uint64_t">Unix timestamp in microseconds</field>
-   </message>
-
-   <message name="ACTION" id="10">
-	<description>An action message allows to execute a certain onboard action. These include liftoff, land, storing parameters too EEPROM, shutddown, etc. The action ids are defined in ENUM MAV_ACTION in mavlink/include/mavlink_types.h</description>
-     <field name="target" type="uint8_t">The system executing the action</field>
-     <field name="target_component" type="uint8_t">The component executing the action</field>
-     <field name="action" type="uint8_t">The action id</field>
-   </message>
-
-   <message name="ACTION_ACK" id="62">
-	<description>This message acknowledges an action. IMPORTANT: The acknowledgement can be also negative, e.g. the MAV rejects a reset message because it is in-flight. The action ids are defined in ENUM MAV_ACTION in mavlink/include/mavlink_types.h</description>
-     <field name="action" type="uint8_t">The action id</field>
-     <field name="result" type="uint8_t">0: Action DENIED, 1: Action executed</field>
-   </message>
-
-   <message name="SET_MODE" id="11">
-   <description>Set the system mode, as defined by enum MAV_MODE in mavlink/include/mavlink_types.h. There is no target component id as the mode is by definition for the overall aircraft, not only for one component.</description>
-     <field name="target" type="uint8_t">The system setting the mode</field>
-     <field name="mode" type="uint8_t">The new mode</field>
-   </message>
-
-   <message name="SET_NAV_MODE" id="12">
-   <description>Set the system navigation mode, as defined by enum MAV_NAV_MODE in mavlink/include/mavlink_types.h. The navigation mode applies to the whole aircraft and thus all components.</description>
-     <field name="target" type="uint8_t">The system setting the mode</field>
-     <field name="nav_mode" type="uint8_t">The new navigation mode</field>
-   </message>
-   
-   <message name="RAW_IMU" id="28">
-     <description>The RAW IMU readings for the usual 9DOF sensor setup. This message should always contain the true raw values without any scaling to allow data capture and system debugging.</description>
-     <field name="usec"  type="uint64_t">Timestamp (microseconds since UNIX epoch)</field>
-     <field name="xacc"  type="int16_t">X acceleration (mg raw)</field>
-     <field name="yacc"  type="int16_t">Y acceleration (mg raw)</field>
-     <field name="zacc"  type="int16_t">Z acceleration (mg raw)</field>
-     <field name="xgyro" type="int16_t">Angular speed around X axis (adc units)</field>
-     <field name="ygyro" type="int16_t">Angular speed around Y axis (adc units)</field>
-     <field name="zgyro" type="int16_t">Angular speed around Z axis (adc units)</field>
-     <field name="xmag"  type="int16_t">X Magnetic field (milli tesla)</field>
-     <field name="ymag"  type="int16_t">Y Magnetic field (milli tesla)</field>
-     <field name="zmag"  type="int16_t">Z Magnetic field (milli tesla)</field>
-   </message>
-
-  <message name="RAW_PRESSURE" id="29">
-     <description>The RAW pressure readings for the typical setup of one absolute pressure and one differential pressure sensor. The sensor values should be the raw, unscaled ADC values.</description>
-     <field name="usec"  type="uint64_t">Timestamp (microseconds since UNIX epoch)</field>
-     <field name="press_abs"  type="int16_t">Absolute pressure (hectopascal)</field>
-     <field name="press_diff1"  type="int16_t">Differential pressure 1 (hectopascal)</field>
-     <field name="press_diff2"  type="int16_t">Differential pressure 2 (hectopascal)</field>
-     <field name="temperature"  type="int16_t">Raw Temperature measurement </field>
-  </message>
-
-   <message name="ATTITUDE" id="30">
-    <description>The attitude in the aeronautical frame (right-handed, Z-down, X-front, Y-right).</description>
-     <field name="usec"  type="uint64_t">Timestamp (microseconds)</field>
-     <field name="roll"  type="float">Roll angle (rad)</field>
-     <field name="pitch" type="float">Pitch angle (rad)</field>
-     <field name="yaw"   type="float">Yaw angle (rad)</field>
-     <field name="rollspeed"  type="float">Roll angular speed (rad/s)</field>
-     <field name="pitchspeed" type="float">Pitch angular speed (rad/s)</field>
-     <field name="yawspeed"   type="float">Yaw angular speed (rad/s)</field>
-   </message>
-
-   <message name="LOCAL_POSITION" id="31">
-     <description>The filtered local position (e.g. fused computer vision and accelerometers).</description>
-     <field name="usec" type="uint64_t">Timestamp (microseconds since unix epoch)</field>
-     <field name="x"   type="float">X Position</field>
-     <field name="y"   type="float">Y Position</field>
-     <field name="z"   type="float">Z Position</field>
-     <field name="vx"  type="float">X Speed</field>
-     <field name="vy"  type="float">Y Speed</field>
-     <field name="vz"  type="float">Z Speed</field>
-   </message>
-
-   <message name="GPS_RAW" id="32">
-     <description>The global position, as returned by the Global Positioning System (GPS). This is
-NOT the global position estimate of the sytem, but rather a RAW sensor value. See message GLOBAL_POSITION for the global position estimate.</description>
-     <field name="usec" type="uint64_t">Timestamp (microseconds since unix epoch)</field>
-     <field name="fix_type" type="uint8_t">0-1: no fix, 2: 2D fix, 3: 3D fix</field>
-     <field name="lat"   type="float">X Position</field>
-     <field name="lon"   type="float">Y Position</field>
-     <field name="alt"   type="float">Z Position in meters</field>
-     <field name="eph"  type="float">Uncertainty in meters of latitude</field>
-     <field name="epv"  type="float">Uncertainty in meters of longitude</field>
-     <field name="v"  type="float">Overall speed</field>
-     <field name="hdg"  type="float">Heading, in FIXME</field>
-   </message>
-
-   <message name="GPS_STATUS" id="27">
-     <description>The global position, as returned by the Global Positioning System (GPS). This is
-NOT the global position estimate of the sytem, but rather a RAW sensor value. See message GLOBAL_POSITION for the global position estimate. This message can contain information for up to 20 satellites.</description>
-     <field name="satellites_visible"   type="uint8_t">Number of satellites visible</field>
-     <field name="satellite_prn"   type="array[20]">Global satellite ID</field>
-     <field name="satellite_used"   type="array[20]">0: Satellite not used, 1: used for localization</field>
-     <field name="satellite_elevation"   type="array[20]">Elevation (0: right on top of receiver, 90: on the horizon) of satellite</field>
-     <field name="satellite_azimuth"  type="array[20]">Direction of satellite, 0: 0 deg, 255: 360 deg.</field>
-     <field name="satellite_snr"  type="array[20]">Signal to noise ratio of satellite</field>
-   </message>
-
-   <message name="SYS_STATUS" id="34">
-     <description>The general system state. If the system is following the MAVLink standard, the system state is mainly defined by three orthogonal states/modes: The system mode, which is either LOCKED (motors shut down and locked), MANUAL (system under RC control), GUIDED (system with autonomous position control, position setpoint controlled manually) or AUTO (system guided by path/waypoint planner). The NAV_MODE defined the current flight state: LIFTOFF (often an open-loop maneuver), LANDING, WAYPOINTS or VECTOR. This represents the internal navigation state machine. The system status shows wether the system is currently active or not and if an emergency occured. During the CRITICAL and EMERGENCY states the MAV is still considered to be active, but should start emergency procedures autonomously. After a failure occured it should first move from active to critical to allow manual intervention and then move to emergency after a certain timeout.</description>
-     <field name="mode" type="uint8_t">System mode, see MAV_MODE ENUM in mavlink/include/mavlink_types.h</field>
-     <field name="nav_mode" type="uint8_t">Navigation mode, see MAV_NAV_MODE ENUM</field>
-     <field name="status" type="uint8_t">System status flag, see MAV_STATUS ENUM</field>
-     <field name="vbat" type="uint16_t">Battery voltage, in millivolts (1 = 1 millivolt)</field>
-     <field name="motor_block" type="uint8_t">Motor block status flag, 0: Motors can be switched on (and could be either off or on), 1: Mechanical motor block switch is on, motors cannot be switched on (and are definitely off)</field>
-     <field name="packet_drop" type="uint16_t">Dropped packets (packets that were corrupted on reception on the MAV)</field>
-   </message>
-
-   <message name="WAYPOINT" id="39">
-     <description>Message encoding a waypoint. This message is emitted to announce
-     the presence of a waypoint. It cannot be used to set a waypoint, use WAYPOINT_SET for this purpose. The waypoint can be either in x, y, z meters (type: LOCAL) or x:lat, y:lon. The global and body frame are related as: positive Z-down, positive X(front looking north, positive Y(body:right) looking east. Therefore y encodes in global mode the latitude, whereas x encodes the longitude and z the GPS altitude (WGS84).</description>
-     <field name="target_system" type="uint8_t">System ID</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="seq" type="uint16_t">Sequence</field>
-     <field name="type" type="uint8_t">0: global (GPS), 1: local, 2: global orbit, 3: local orbit</field>
-     <field name="orbit" type="float">Orbit to circle around the waypoint, in meters. Set to 0 to fly straight through the waypoint</field>
-     <field name="orbit_direction" type="uint8_t">Direction of the orbit circling: 0: clockwise, 1: counter-clockwise</field>
-     <field name="param1" type="float">For waypoints of type 0 and 1: Radius in which the waypoint is accepted as reached, in meters</field>
-     <field name="param2" type="float">For waypoints of type 0 and 1: Time that the MAV should stay inside the orbit before advancing, in milliseconds</field>
-     <field name="current" type="uint8_t">false:0, true:1</field>
-     <field name="x" type="float">local: x position, global: longitude</field>
-     <field name="y" type="float">y position: global: latitude</field>
-     <field name="z" type="float">z position: global: altitude</field>
-     <field name="yaw" type="float">yaw orientation in radians, 0 = NORTH</field>
-     <field name="autocontinue" type="uint8_t">autocontinue to next wp</field>
-   </message>
-
-   <message name="WAYPOINT_REQUEST" id="40">
-     <description>Request the information of the waypoint with the sequence number seq. The response of the system to this message should be a WAYPOINT message.</description>
-     <field name="target_system" type="uint8_t">System ID</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="seq" type="uint16_t">Sequence</field>
-   </message>
-
-  <message name="WAYPOINT_SET_CURRENT" id="41">
-     <description>Set the waypoint with sequence number seq as current waypoint. This means that the MAV will continue to this waypoint on the shortest path (not following the waypoints in-between).</description>
-     <field name="target_system" type="uint8_t">System ID</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="seq" type="uint16_t">Sequence</field>
-  </message>
-
-  <message name="WAYPOINT_CURRENT" id="42">
-     <description>Message that announces the sequence number of the current active waypoint. The MAV will fly towards this waypoint.</description>
-     <field name="seq" type="uint16_t">Sequence</field>
-  </message>
-
-   <message name="WAYPOINT_COUNT" id="44">
-     <description>This message is emitted as response to WAYPOINT_REQUEST_LIST by the MAV. The GCS can then request the individual waypoints based on the knowledge of the total number of waypoints.</description>
-     <field name="target_system" type="uint8_t">System ID</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="count" type="uint16_t">Number of Waypoints in the Sequence</field>
-   </message>
-
-  <message name="WAYPOINT_CLEAR_ALL" id="45">
-     <description>Delete all waypoints at once.</description>
-     <field name="target_system" type="uint8_t">System ID</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-  </message>
-
-   <message name="WAYPOINT_REACHED" id="46">
-     <description>A certain waypoint has been reached. The system will either hold this position (or circle on the orbit) or (if the autocontinue on the WP was set) continue to the next waypoint.</description>
-     <field name="seq" type="uint16_t">Sequence</field>
-   </message>
-
-   <message name="WAYPOINT_ACK" id="47">
-     <description>Ack message during waypoint handling. The type field states if this message is a positive ack (type=0) or if an error happened (type=non-zero).</description>
-     <field name="target_system" type="uint8_t">System ID</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="type" type="uint8_t">0: OK, 1: Error</field>
-   </message>
-
-   <message name="WAYPOINT_SET_GLOBAL_REFERENCE" id="48">
-     <description>As local waypoints exist, the global waypoint reference allows to transform between the local coordinate frame and the global (GPS) coordinate frame. This can be necessary when e.g. in- and outdoor settings are connected and the MAV should move from in- to outdoor.</description>
-     <field name="target_system" type="uint8_t">System ID</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="global_x" type="float">global x position</field>
-     <field name="global_y" type="float">global y position</field>
-     <field name="global_z" type="float">global z position</field>
-     <field name="global_yaw" type="float">global yaw orientation in radians, 0 = NORTH</field>
-     <field name="local_x" type="float">local x position that matches the global x position</field>
-     <field name="local_y" type="float">local y position that matches the global y position</field>
-     <field name="local_z" type="float">local z position that matches the global z position</field>
-     <field name="local_yaw" type="float">local yaw that matches the global yaw orientation</field>
-   </message>
-
-   
-   <!-- MESSAGE IDs 80 - 250: Space for custom messages in individual projectname_messages.xml files -->
-
-  <message name="STATUSTEXT" id= "254">
-    <description>Status text message. These messages are printed in yellow in the COMM console of QGroundControl. WARNING: They consume quite some bandwidth, so use only for important status and error messages. If implemented wisely, these messages are buffered on the MCU and sent only at a limited rate (e.g. 10 Hz).</description>
-    <field name="severity" type="uint8_t">Severity of status, 0 = info message, 255 = critical fault</field>
-    <field name="text" type="array[50]">Status text message, without null termination character</field>
-  </message>
-
-
-<message name="DEBUG" id="255">
-     <description>Send a debug value. The index is used to discriminate between values. These values show up in the plot of QGroundControl as DEBUG N.</description>
-     <field name="ind"  type="uint8_t">index of debug variable</field>
-     <field name="value"  type="float">DEBUG value</field>
-   </message>
-
-</messages>
-</mavlink>
diff --git a/libraries/GCS_MAVLink/message_definitions/mavlink_standard_proposal.xml b/libraries/GCS_MAVLink/message_definitions/mavlink_standard_proposal.xml
deleted file mode 100644
index 43f0a0435d5c2127446c62947d1f1789a7346c3d..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions/mavlink_standard_proposal.xml
+++ /dev/null
@@ -1,275 +0,0 @@
-<?xml version="1.0"?>
-<mavlink>
-<messages>
-   <message name="HEARTBEAT" id="0">
-     The heartbeat message just shows that a system is present.
-     <field name="type" type="uint8_t">Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM)</field>
-     <field name="autopilot" type="uint8_t">Type of the Autopilot: 0: Generic, 1: PIXHAWK, 2: SLUGS, 3: Ardupilot (up to 15 types), defined in MAV_AUTOPILOT_TYPE ENUM</field>
-   </message>
- 
-   <message name="PING" id="1">
-     A ping message either requesting or responding to a ping.
-     <field name="seq" type="uint32_t">PING sequence</field>
-     <field name="target_system" type="uint8_t">0: request ping from all receiving systems, if greater than 0: message is a ping response and number is the system id of the requesting system</field>
-     <field name="target_component" type="uint8_t">0: request ping from all receiving components, if greater than 0: message is a ping response and number is the system id of the requesting system</field>
-     <field name="time" type="uint64_t">Unix timestamp in microseconds</field>
-     <field name="version" type="uint32_t">The onboard software version</field>
-   </message>
-   
-   
-   <message name="SYS_STATUS" id="2">
-     <field name="mode" type="uint8_t">System mode, see MAV_MODE ENUM in mavlink/include/mavlink_types.h</field>
-     <field name="nav_mode" type="uint8_t">Navigation mode, see MAV_NAV_MODE ENUM</field>
-     <field name="status" type="uint8_t">System status flag, see MAV_STATUS ENUM</field>
-     <field name="failure" type="uint8_t">Failure code description, see MAV_FAILURE ENUM</field>
-     <field name="motor_block" type="uint8_t">Motor block status flag</field>
-     <field name="packet_drop" type="uint16_t">Dropped packets</field>
-   </message>
-
-   <message name="SET_MODE" id="9">
-   Set the system mode, as defined by enum MAV_MODE in mavlink/include/mavlink_types.h
-     <field name="target" type="uint8_t">The system setting the mode</field>
-     <field name="mode" type="uint8_t">The new mode</field>
-   </message>
-
-   <message name="SET_NAV_MODE" id="10">
-   Set the system navigation mode, as defined by enum MAV_NAV_MODE in mavlink/include/mavlink_types.h
-     <field name="target" type="uint8_t">The system setting the mode</field>
-     <field name="nav_mode" type="uint8_t">The new navigation mode</field>
-   </message>
-   
-   <message name="PARAM_SET" id="11">
-     Set a parameter value TEMPORARILY to RAM. It will be reset to default on system reboot.
-     <field name="target_system" type="uint8_t">System ID</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="param_id" type="array[15]">Onboard parameter id</field>
-     <field name="param_value" type="float">Onboard parameter value</field>
-   </message>
-
-   <message name="PARAM_WRITE_STORAGE" id="12">
-     Set the current parameter value (currently active in RAM) PERMANTLY to EEPROM/HDD. It will be the new default value.
-     <field name="target_system" type="uint8_t">System ID</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="param_id" type="array[15]">Onboard parameter id</field>
-   </message>
-
-   <message name="PID_SET" id="13">
-     Set PID values.
-     <field name="target_system" type="uint8_t">System ID</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="pid_id" type="uint8_t">PID ID</field>
-     <field name="k_p" type="float">P</field>
-     <field name="k_i" type="float">I</field>
-     <field name="k_d" type="float">D</field>
-   </message>
-
-   <message name="RC_CHANNELS_TRIM_SET" id="14">
-     Trim values to scale the RAW RC channel values. The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%. Individual receivers/transmitters might violate this specification.
-    <field name="target_system" type="uint8_t">System ID</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="chan_id" type="uint8_t">RC channel id</field>
-     <field name="chan_min" type="uint16_t">RC channel 1 min value, in microseconds</field>
-     <field name="chan_zero" type="uint16_t">RC channel 1 zero value, in microseconds</field>
-     <field name="chan_max" type="uint16_t">RC channel 1 max value, in microseconds</field>
-   </message>
-
-  <message name="RC_CHANNELS_MAPPING_SET" id="15">
-     Mapping defining which functions each RC channel has.
-     <field name="target_system" type="uint8_t">System ID</field>
-    <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="chan_id" type="uint8_t">RC channel id</field>
-     <field name="chan_function" type="uint8_t">RC channel function, as defined in ENUM MAVLINK_RC_CHAN_MAPPING in mavlink/include/mavlink_types.h</field>
-   </message>
-
-  <message name="WAYPOINT_SET" id="16">
-     Message setting a waypoint. The waypoint can be either in x, y, z meters (type: LOCAL) or x:lat, y:lon. The global and body frame are related as: positive Z-down, positive X(front looking north, positive Y(body:right) looking east. Therefore x encodes in global mode the latitude, whereas y encodes the longitude and z the altitude over ground.
-     <field name="target_system" type="uint8_t">System ID</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="wp_id" type="uint16_t">Waypoint ID</field>
-     <field name="type" type="uint8_t">0: global (GPS), 1: local, 2: global orbit, 3: local orbit</field>
-     <field name="param1" type="float">Orbit to circle around the waypoint, in meters</field>
-     <field name="param2" type="float">Time that the MAV should stay inside the orbit before advancing, in milliseconds</field>
-     <field name="orbit" type="uint8">0: No orbit, 1: Right Orbit, 2: Left Orbit</field>
-     <field name="current" type="uint8_t">false:0, true:1</field>
-     <field name="x" type="float">local: x position, global: longitude</field>
-     <field name="y" type="float">y position: global: latitude</field>
-     <field name="z" type="float">z position: global: altitude</field>
-     <field name="autocontinue" type="uint16_t">autocontinue to next wp</field>
-   </message>
-
-   <message name="WAYPOINT_SET_CURRENT" id="17">
-     <field name="target_system" type="uint8_t">System ID</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="wp_id" type="uint16_t">Waypoint ID</field>
-   </message>
-
-  <message name="WAYPOINT_CLEAR_ALL" id="18">
-     <field name="target_system" type="uint8_t">System ID</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-   </message>
-
-  <message name="ACTION" id="19">
-     <field name="target_system" type="uint8_t">The system executing the action</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="action" type="uint8_t">The action id</field>
-   </message>
-   
-  <message name="ACKNOWLEDGE" id="30">
-     <field name="target_system" type="uint8_t">The system executing the action</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="akn_id" type="uint8_t">The id of the action being successfully executed and acknowledged</field>
-   </message>
-
-   <message name="PARAM_REQUEST_READ" id="31">
-     Request to read the onboard parameters.
-     <field name="target_system" type="uint8_t">System ID</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="param_id" type="array[15]">Onboard parameter id</field>
-   </message>
-
-   <message name="PARAM_VALUE" id="32">
-     Emit the value of a onboard parameter.
-     <field name="param_id" type="array[15]">Onboard parameter id</field>
-     <field name="param_value" type="float">Onboard parameter value</field>
-   </message>
-
-   <message name="PARAM_REQUEST_LIST" id="33">
-     Request all parameters of this component.
-     <field name="target_system" type="uint8_t">System ID</field>
-     <field name="target_component" type="uint8_t">Component ID</field>
-     <field name="param_subset_id" type="uint8_t">0: All parameters, else report a subset of parameters as defined in MAVLIN_SUBSET_PARAM enum</field>
-   </message>
-   
-   <message name="PID" id="34">
-     Report PID controller values.
-     <field name="pid_id" type="uint8_t">PID ID</field>
-     <field name="k_p" type="float">P</field>
-     <field name="k_i" type="float">I</field>
-     <field name="k_d" type="float">D</field>
-   </message>
-   
-   <message name="RC_CHANNELS_TRIM" id="35">
-     Report trim values to scale the RAW RC channel values. The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%. Individual receivers/transmitters might violate this specification.
-     <field name="chan_id" type="uint8_t">RC channel id</field>
-     <field name="chan_min" type="uint16_t">RC channel 1 min value, in microseconds</field>
-     <field name="chan_zero" type="uint16_t">RC channel 1 zero value, in microseconds</field>
-     <field name="chan_max" type="uint16_t">RC channel 1 max value, in microseconds</field>
-   </message>
-
-  <message name="RC_CHANNELS_MAPPING" id="36">
-     Report the mapping defining which functions each RC channel has.
-     <field name="chan_id" type="uint8_t">RC channel id</field>
-     <field name="chan_function" type="uint8_t">RC channel function, as defined in ENUM MAVLINK_RC_CHAN_MAPPING in mavlink/include/mavlink_types.h</field>
-   </message>
-
-   <message name="WAYPOINT" id="37">
-     Message encoding a waypoint. This message is emitted to announce
-     the presence of a waypoint. It cannot be used to set a waypoint, use WAYPOINT_SET for this purpose. The waypoint can be either in x, y, z meters (type: LOCAL) or x:lat, y:lon. The global and body frame are related as: positive Z-down, positive X(front looking north, positive Y(body:right) looking east. Therefore x encodes in global mode the latitude, whereas y encodes the longitude and z the altitude over ground.
-     <field name="wp_id" type="uint16_t">Waypoint ID</field>
-     <field name="type" type="uint8_t">0: global (GPS), 1: local, 2: global orbit, 3: local orbit</field>
-     <field name="param1" type="float">Orbit to circle around the waypoint, in meters</field>
-     <field name="param2" type="float">Time that the MAV should stay inside the orbit before advancing, in milliseconds</field>
-     <field name="orbit" type="uint8">0: No orbit, 1: Right Orbit, 2: Left Orbit</field>
-     <field name="current" type="uint8_t">false:0, true:1</field>
-     <field name="x" type="float">local: x position, global: longitude</field>
-     <field name="y" type="float">y position: global: latitude</field>
-     <field name="z" type="float">z position: global: altitude</field>
-     <field name="autocontinue" type="uint16_t">autocontinue to next wp</field>
-   </message>
-
-   <message name="WAYPOINT_STATUS" id="38">
-     Message emmited by a system to anounce eit
-     <field name="wp_id" type="uint16_t">Waypoint ID</field>
-     <field name="wp_status" type="uint8_t">Waypoint status: 0: Ok, 1: Reached, 2: Orbit time expired, 254: Error</field>
-   </message>
-   
-   <message name="RAW_IMU" id="50">
-     <field name="xacc"  type="int16_t">X acceleration (mg raw)</field>
-     <field name="yacc"  type="int16_t">Y acceleration (mg raw)</field>
-     <field name="zacc"  type="int16_t">Z acceleration (mg raw)</field>
-     <field name="xgyro" type="int16_t">Angular speed around X axis (adc units)</field>
-     <field name="ygyro" type="int16_t">Angular speed around Y axis (adc units)</field>
-     <field name="zgyro" type="int16_t">Angular speed around Z axis (adc units)</field>
-     <field name="xmag"  type="int16_t">X Magnetic field (milli tesla)</field>
-     <field name="ymag"  type="int16_t">Y Magnetic field (milli tesla)</field>
-     <field name="zmag"  type="int16_t">Z Magnetic field (milli tesla)</field>
-   </message>
-
-  <message name="RAW_PRESSURE" id="51">
-     <field name="usec"  type="uint64_t">Timestamp (microseconds since UNIX epoch)</field>
-     <field name="press_abs"  type="int32_t">Absolute pressure (hectopascal)</field>
-     <field name="press_diff1"  type="int32_t">Differential pressure 1 (hectopascal)</field>
-     <field name="press_diff2"  type="int32_t">Differential pressure 2 (hectopascal)</field>
-   </message>
-
-  <message name="GPS_RAW" id="52">
-     The global position, as returned by the Global Positioning System (GPS). This is
-NOT the global position estimate of the sytem, but rather a RAW sensor value. See message GLOBAL_POSITION for the global position estimate.
-     <field name="fix_type" type="uint8_t">0-1: no fix, 2: 2D fix, 3: 3D fix</field>
-     <field name="lat"   type="float">X Position</field>
-     <field name="lon"   type="float">Y Position</field>
-     <field name="alt"   type="float">Z Position in meters</field>
-     <field name="eph"  type="float">Uncertainty in meters of latitude</field>
-     <field name="epv"  type="float">Uncertainty in meters of longitude</field>
-     <field name="v"  type="float">Overall speed</field>
-     <field name="hdg"  type="float">Heading, in FIXME</field>
-   </message>
-
-   <message name="GPS_SAT_STATUS" id="53">
-     The global position, as returned by the Global Positioning System (GPS). This is
-NOT the global position estimate of the sytem, but rather a RAW sensor value. See message GLOBAL_POSITION for the global position estimate.
-     <field name="satellites_visible"   type="uint8_t">Number of satellites visible</field>
-     <field name="satellite_prn"   type="array[20]">Global satellite ID</field>
-     <field name="satellite_used"   type="array[20]">0: Satellite not used, 1: used for localization</field>
-     <field name="satellite_elevation"   type="array[20]">Elevation (0: right on top of receiver, 90: on the horizon) of satellite</field>
-     <field name="satellite_azimuth"  type="array[20]">Direction of satellite, 0: 0 deg, 255: 360 deg.</field>
-     <field name="satellite_snr"  type="array[20]">Signal to noise ratio of satellite</field>
-   </message>
-   
-   <message name="ATTITUDE" id="54">
-    The attitude in the aeronautical frame (right-handed, Z-down, X-front, Y-right).
-     <field name="usec"  type="uint64_t">Timestamp (microseconds)</field>
-     <field name="roll"  type="float">Roll angle (rad)</field>
-     <field name="pitch" type="float">Pitch angle (rad)</field>
-     <field name="yaw"   type="float">Yaw angle (rad)</field>
-     <field name="rollspeed"  type="float">Roll angular speed (rad/s)</field>
-     <field name="pitchspeed" type="float">Pitch angular speed (rad/s)</field>
-     <field name="yawspeed"   type="float">Yaw angular speed (rad/s)</field>
-   </message>
-
-   <message name="POSITION" id="55">
-     The filtered local position (e.g. fused computer vision and accelerometers).
-     <field name="type" type="uint8_t">Position type: 0: Local, 1: Global</field>
-     <field name="x"   type="float">X (long) Position</field>
-     <field name="y"   type="float">Y (lat) Position</field>
-     <field name="z"   type="float">Z (alt) Position</field>
-     <field name="vx"  type="float">Vx</field>
-     <field name="vy"  type="float">Vy</field>
-     <field name="vz"  type="float">Vz</field>
-   </message>
-
-   <message name="RC_CHANNELS_RAW" id="56">
-     The RAW values of the RC channels received. The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%. Individual receivers/transmitters might violate this specification.
-     <field name="chan1" type="uint16_t">RC channel 1 value, in microseconds</field>
-     <field name="chan2" type="uint16_t">RC channel 2 value, in microseconds</field>
-     <field name="chan3" type="uint16_t">RC channel 3 value, in microseconds</field>
-     <field name="chan4" type="uint16_t">RC channel 3 value, in microseconds</field>
-     <field name="chan5" type="uint16_t">RC channel 3 value, in microseconds</field>
-   </message>
-
-   
-   <!-- MESSAGE IDs 70 - 240: Space for custom messages in individual projectname_messages.xml files -->
-
-  <message name="STATUSTEXT" id= "240">
-    <field name="severity" type="uint8_t">Severity of status, 0 = info message, 255 = critical fault</field>
-    <field name="text" type="array[50]">Status text message, without null termination character</field>
-   </message>
-
-
-<message name="DEBUG" id="241">
-     <field name="ind"  type="uint8_t">index of debug variable</field>
-     <field name="value"  type="float">DEBUG value</field>
-   </message>
-
-</messages>
-</mavlink>
\ No newline at end of file
diff --git a/libraries/GCS_MAVLink/message_definitions/minimal.xml b/libraries/GCS_MAVLink/message_definitions/minimal.xml
deleted file mode 100644
index 5b41a4909090112233c5b91d1fa3067d7ffbdcbf..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions/minimal.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version='1.0'?>
-<mavlink>
-    <version>2</version>
-    <enums/>
-    <messages>
-        <message id="0" name="HEARTBEAT">
-            <description>The heartbeat message shows that a system is present and responding. The type of the MAV and Autopilot hardware allow the receiving system to treat further messages from this system appropriate (e.g. by laying out the user interface based on the autopilot).</description>
-            <field type="uint8_t" name="type">Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM)</field>
-            <field type="uint8_t" name="autopilot">Type of the Autopilot: 0: Generic, 1: PIXHAWK, 2: SLUGS, 3: Ardupilot (up to 15 types), defined in MAV_AUTOPILOT_TYPE ENUM</field>
-            <field type="uint8_t_mavlink_version" name="mavlink_version">MAVLink version</field>
-        </message>
-    </messages>
-</mavlink>
diff --git a/libraries/GCS_MAVLink/message_definitions/pixhawk.xml b/libraries/GCS_MAVLink/message_definitions/pixhawk.xml
deleted file mode 100644
index a9a51d698944431715810ead12b691db74d636af..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions/pixhawk.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?xml version='1.0'?>
-<mavlink>
-     <include>common.xml</include>
-     <enums>
-          <enum name="DATA_TYPES">
-               <description>Content Types for data transmission handshake</description>
-               <entry value="1" name="DATA_TYPE_JPEG_IMAGE"/>
-               <entry value="2" name="DATA_TYPE_RAW_IMAGE"/>
-               <entry value="3" name="DATA_TYPE_KINECT"/>
-          </enum>
-     </enums>
-     <messages>
-          <message id="151" name="SET_CAM_SHUTTER">
-               <field type="uint8_t" name="cam_no">Camera id</field>
-               <field type="uint8_t" name="cam_mode">Camera mode: 0 = auto, 1 = manual</field>
-               <field type="uint8_t" name="trigger_pin">Trigger pin, 0-3 for PtGrey FireFly</field>
-               <field type="uint16_t" name="interval">Shutter interval, in microseconds</field>
-               <field type="uint16_t" name="exposure">Exposure time, in microseconds</field>
-               <field type="float" name="gain">Camera gain</field>
-          </message>
-          <message id="152" name="IMAGE_TRIGGERED">
-               <field type="uint64_t" name="timestamp">Timestamp</field>
-               <field type="uint32_t" name="seq">IMU seq</field>
-               <field type="float" name="roll">Roll angle in rad</field>
-               <field type="float" name="pitch">Pitch angle in rad</field>
-               <field type="float" name="yaw">Yaw angle in rad</field>
-               <field type="float" name="local_z">Local frame Z coordinate (height over ground)</field>
-               <field type="float" name="lat">GPS X coordinate</field>
-               <field type="float" name="lon">GPS Y coordinate</field>
-               <field type="float" name="alt">Global frame altitude</field>
-               <field type="float" name="ground_x">Ground truth X</field>
-               <field type="float" name="ground_y">Ground truth Y</field>
-               <field type="float" name="ground_z">Ground truth Z</field>
-          </message>
-          <message id="153" name="IMAGE_TRIGGER_CONTROL">
-               <field type="uint8_t" name="enable">0 to disable, 1 to enable</field>
-          </message>
-          <message id="154" name="IMAGE_AVAILABLE">
-               <field type="uint64_t" name="cam_id">Camera id</field>
-               <field type="uint8_t" name="cam_no">Camera # (starts with 0)</field>
-               <field type="uint64_t" name="timestamp">Timestamp</field>
-               <field type="uint64_t" name="valid_until">Until which timestamp this buffer will stay valid</field>
-               <field type="uint32_t" name="img_seq">The image sequence number</field>
-               <field type="uint32_t" name="img_buf_index">Position of the image in the buffer, starts with 0</field>
-               <field type="uint16_t" name="width">Image width</field>
-               <field type="uint16_t" name="height">Image height</field>
-               <field type="uint16_t" name="depth">Image depth</field>
-               <field type="uint8_t" name="channels">Image channels</field>
-               <field type="uint32_t" name="key">Shared memory area key</field>
-               <field type="uint32_t" name="exposure">Exposure time, in microseconds</field>
-               <field type="float" name="gain">Camera gain</field>
-               <field type="float" name="roll">Roll angle in rad</field>
-               <field type="float" name="pitch">Pitch angle in rad</field>
-               <field type="float" name="yaw">Yaw angle in rad</field>
-               <field type="float" name="local_z">Local frame Z coordinate (height over ground)</field>
-               <field type="float" name="lat">GPS X coordinate</field>
-               <field type="float" name="lon">GPS Y coordinate</field>
-               <field type="float" name="alt">Global frame altitude</field>
-               <field type="float" name="ground_x">Ground truth X</field>
-               <field type="float" name="ground_y">Ground truth Y</field>
-               <field type="float" name="ground_z">Ground truth Z</field>
-          </message>
-          <message id="156" name="VISION_POSITION_ESTIMATE">
-               <field type="uint64_t" name="usec">Timestamp (milliseconds)</field>
-               <field type="float" name="x">Global X position</field>
-               <field type="float" name="y">Global Y position</field>
-               <field type="float" name="z">Global Z position</field>
-               <field type="float" name="roll">Roll angle in rad</field>
-               <field type="float" name="pitch">Pitch angle in rad</field>
-               <field type="float" name="yaw">Yaw angle in rad</field>
-          </message>
-          <message id="157" name="VICON_POSITION_ESTIMATE">
-               <field type="uint64_t" name="usec">Timestamp (milliseconds)</field>
-               <field type="float" name="x">Global X position</field>
-               <field type="float" name="y">Global Y position</field>
-               <field type="float" name="z">Global Z position</field>
-               <field type="float" name="roll">Roll angle in rad</field>
-               <field type="float" name="pitch">Pitch angle in rad</field>
-               <field type="float" name="yaw">Yaw angle in rad</field>
-          </message>
-          <message id="158" name="VISION_SPEED_ESTIMATE">
-               <field type="uint64_t" name="usec">Timestamp (milliseconds)</field>
-               <field type="float" name="x">Global X speed</field>
-               <field type="float" name="y">Global Y speed</field>
-               <field type="float" name="z">Global Z speed</field>
-          </message>
-          <message id="159" name="POSITION_CONTROL_SETPOINT_SET">
-               <description>Message sent to the MAV to set a new position as reference for the controller</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint16_t" name="id">ID of waypoint, 0 for plain position</field>
-               <field type="float" name="x">x position</field>
-               <field type="float" name="y">y position</field>
-               <field type="float" name="z">z position</field>
-               <field type="float" name="yaw">yaw orientation in radians, 0 = NORTH</field>
-          </message>
-          <message id="160" name="POSITION_CONTROL_OFFSET_SET">
-               <description>Message sent to the MAV to set a new offset from the currently controlled position</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="float" name="x">x position offset</field>
-               <field type="float" name="y">y position offset</field>
-               <field type="float" name="z">z position offset</field>
-               <field type="float" name="yaw">yaw orientation offset in radians, 0 = NORTH</field>
-          </message>
-          <!-- Message sent by the MAV once it sets a new position as reference in the controller -->
-          <message id="170" name="POSITION_CONTROL_SETPOINT">
-               <field type="uint16_t" name="id">ID of waypoint, 0 for plain position</field>
-               <field type="float" name="x">x position</field>
-               <field type="float" name="y">y position</field>
-               <field type="float" name="z">z position</field>
-               <field type="float" name="yaw">yaw orientation in radians, 0 = NORTH</field>
-          </message>
-          <message id="171" name="MARKER">
-               <field type="uint16_t" name="id">ID</field>
-               <field type="float" name="x">x position</field>
-               <field type="float" name="y">y position</field>
-               <field type="float" name="z">z position</field>
-               <field type="float" name="roll">roll orientation</field>
-               <field type="float" name="pitch">pitch orientation</field>
-               <field type="float" name="yaw">yaw orientation</field>
-          </message>
-          <message id="172" name="RAW_AUX">
-               <field type="uint16_t" name="adc1">ADC1 (J405 ADC3, LPC2148 AD0.6)</field>
-               <field type="uint16_t" name="adc2">ADC2 (J405 ADC5, LPC2148 AD0.2)</field>
-               <field type="uint16_t" name="adc3">ADC3 (J405 ADC6, LPC2148 AD0.1)</field>
-               <field type="uint16_t" name="adc4">ADC4 (J405 ADC7, LPC2148 AD1.3)</field>
-               <field type="uint16_t" name="vbat">Battery voltage</field>
-               <field type="int16_t" name="temp">Temperature (degrees celcius)</field>
-               <field type="int32_t" name="baro">Barometric pressure (hecto Pascal)</field>
-          </message>
-          <message id="180" name="WATCHDOG_HEARTBEAT">
-               <field type="uint16_t" name="watchdog_id">Watchdog ID</field>
-               <field type="uint16_t" name="process_count">Number of processes</field>
-          </message>
-          <message id="181" name="WATCHDOG_PROCESS_INFO">
-               <field type="uint16_t" name="watchdog_id">Watchdog ID</field>
-               <field type="uint16_t" name="process_id">Process ID</field>
-               <field type="char[100]" name="name">Process name</field>
-               <field type="char[147]" name="arguments">Process arguments</field>
-               <field type="int32_t" name="timeout">Timeout (seconds)</field>
-          </message>
-          <message id="182" name="WATCHDOG_PROCESS_STATUS">
-               <field type="uint16_t" name="watchdog_id">Watchdog ID</field>
-               <field type="uint16_t" name="process_id">Process ID</field>
-               <field type="uint8_t" name="state">Is running / finished / suspended / crashed</field>
-               <field type="uint8_t" name="muted">Is muted</field>
-               <field type="int32_t" name="pid">PID</field>
-               <field type="uint16_t" name="crashes">Number of crashes</field>
-          </message>
-          <message id="183" name="WATCHDOG_COMMAND">
-               <field type="uint8_t" name="target_system_id">Target system ID</field>
-               <field type="uint16_t" name="watchdog_id">Watchdog ID</field>
-               <field type="uint16_t" name="process_id">Process ID</field>
-               <field type="uint8_t" name="command_id">Command ID</field>
-          </message>
-          <message id="190" name="PATTERN_DETECTED">
-               <field type="uint8_t" name="type">0: Pattern, 1: Letter</field>
-               <field type="float" name="confidence">Confidence of detection</field>
-               <field type="char[100]" name="file">Pattern file name</field>
-               <field type="uint8_t" name="detected">Accepted as true detection, 0 no, 1 yes</field>
-          </message>
-          <message id="191" name="POINT_OF_INTEREST">
-               <description>Notifies the operator about a point of interest (POI). This can be anything detected by the
-                system. This generic message is intented to help interfacing to generic visualizations and to display
-                the POI on a map.
-            </description>
-               <field type="uint8_t" name="type">0: Notice, 1: Warning, 2: Critical, 3: Emergency, 4: Debug</field>
-               <field type="uint8_t" name="color">0: blue, 1: yellow, 2: red, 3: orange, 4: green, 5: magenta</field>
-               <field type="uint8_t" name="coordinate_system">0: global, 1:local</field>
-               <field type="uint16_t" name="timeout">0: no timeout, >1: timeout in seconds</field>
-               <field type="float" name="x">X Position</field>
-               <field type="float" name="y">Y Position</field>
-               <field type="float" name="z">Z Position</field>
-               <field type="char[26]" name="name">POI name</field>
-          </message>
-          <message id="192" name="POINT_OF_INTEREST_CONNECTION">
-               <description>Notifies the operator about the connection of two point of interests (POI). This can be anything detected by the
-                system. This generic message is intented to help interfacing to generic visualizations and to display
-                the POI on a map.
-            </description>
-               <field type="uint8_t" name="type">0: Notice, 1: Warning, 2: Critical, 3: Emergency, 4: Debug</field>
-               <field type="uint8_t" name="color">0: blue, 1: yellow, 2: red, 3: orange, 4: green, 5: magenta</field>
-               <field type="uint8_t" name="coordinate_system">0: global, 1:local</field>
-               <field type="uint16_t" name="timeout">0: no timeout, >1: timeout in seconds</field>
-               <field type="float" name="xp1">X1 Position</field>
-               <field type="float" name="yp1">Y1 Position</field>
-               <field type="float" name="zp1">Z1 Position</field>
-               <field type="float" name="xp2">X2 Position</field>
-               <field type="float" name="yp2">Y2 Position</field>
-               <field type="float" name="zp2">Z2 Position</field>
-               <field type="char[26]" name="name">POI connection name</field>
-          </message>
-          <message id="193" name="DATA_TRANSMISSION_HANDSHAKE">
-               <field type="uint8_t" name="type">type of requested/acknowledged data (as defined in ENUM DATA_TYPES in mavlink/include/mavlink_types.h)</field>
-               <field type="uint32_t" name="size">total data size in bytes (set on ACK only)</field>
-               <field type="uint8_t" name="packets">number of packets beeing sent (set on ACK only)</field>
-               <field type="uint8_t" name="payload">payload size per packet (normally 253 byte, see DATA field size in message ENCAPSULATED_DATA) (set on ACK only)</field>
-               <field type="uint8_t" name="jpg_quality">JPEG quality out of [1,100]</field>
-          </message>
-          <message id="194" name="ENCAPSULATED_DATA">
-               <field type="uint16_t" name="seqnr">sequence number (starting with 0 on every transmission)</field>
-               <field type="uint8_t[253]" name="data">image data bytes</field>
-          </message>
-          <message id="195" name="BRIEF_FEATURE">
-               <field type="float" name="x">x position in m</field>
-               <field type="float" name="y">y position in m</field>
-               <field type="float" name="z">z position in m</field>
-               <field type="uint8_t" name="orientation_assignment">Orientation assignment 0: false, 1:true</field>
-               <field type="uint16_t" name="size">Size in pixels</field>
-               <field type="uint16_t" name="orientation">Orientation</field>
-               <field type="uint8_t[32]" name="descriptor">Descriptor</field>
-               <field type="float" name="response">Harris operator response at this location</field>
-          </message>
-                    <message id="200" name="ATTITUDE_CONTROL">
-               <field type="uint8_t" name="target">The system to be controlled</field>
-               <field type="float" name="roll">roll</field>
-               <field type="float" name="pitch">pitch</field>
-               <field type="float" name="yaw">yaw</field>
-               <field type="float" name="thrust">thrust</field>
-               <field type="uint8_t" name="roll_manual">roll control enabled auto:0, manual:1</field>
-               <field type="uint8_t" name="pitch_manual">pitch auto:0, manual:1</field>
-               <field type="uint8_t" name="yaw_manual">yaw auto:0, manual:1</field>
-               <field type="uint8_t" name="thrust_manual">thrust auto:0, manual:1</field>
-          </message>
-     </messages>
-</mavlink>
diff --git a/libraries/GCS_MAVLink/message_definitions/slugs.xml b/libraries/GCS_MAVLink/message_definitions/slugs.xml
deleted file mode 100644
index f8644c5c4be7e497178d892e9c15c25ba3c5131c..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions/slugs.xml
+++ /dev/null
@@ -1,144 +0,0 @@
-<?xml version="1.0"?>
-<mavlink>
-    <include>common.xml</include>
-    
-    <!-- <enums> 
-  <enum name="SLUGS_ACTION" > 
-    <description> Slugs Actions </description> 
-    <entry name = "SLUGS_ACTION_NONE"> 
-    <entry name = "SLUGS_ACTION_SUCCESS"> 
-    <entry name = "SLUGS_ACTION_FAIL"> 
-    <entry name = "SLUGS_ACTION_EEPROM"> 
-    <entry name = "SLUGS_ACTION_MODE_CHANGE"> 
-    <entry name = "SLUGS_ACTION_MODE_REPORT"> 
-    <entry name = "SLUGS_ACTION_PT_CHANGE"> 
-    <entry name = "SLUGS_ACTION_PT_REPORT"> 
-    <entry name = "SLUGS_ACTION_PID_CHANGE"> 
-    <entry name = "SLUGS_ACTION_PID_REPORT"> 
-    <entry name = "SLUGS_ACTION_WP_CHANGE"> 
-    <entry name = "SLUGS_ACTION_WP_REPORT"> 
-    <entry name = "SLUGS_ACTION_MLC_CHANGE"> 
-    <entry name = "SLUGS_ACTION_MLC_REPORT"> 
-  </enum> 
-
-  <enum name="WP_PROTOCOL_STATE" > 
-    <description> Waypoint Protocol States </description> 
-    <entry name = "WP_PROT_IDLE"> 
-    <entry name = "WP_PROT_LIST_REQUESTED"> 
-    <entry name = "WP_PROT_NUM_SENT">
-    <entry name = "WP_PROT_TX_WP"> 
-    <entry name = "WP_PROT_RX_WP"> 
-    <entry name = "WP_PROT_SENDING_WP_IDLE"> 
-    <entry name = "WP_PROT_GETTING_WP_IDLE"> 
-  </enum>
-  
-</enums> -->
-    
-    <messages>
-        
-        <message name="CPU_LOAD" id="170">
-            Sensor and DSC control loads.
-            <field name="sensLoad" type="uint8_t">Sensor DSC Load</field>
-            <field name="ctrlLoad" type="uint8_t">Control DSC Load</field>
-            <field name="batVolt" type="uint16_t">Battery Voltage in millivolts</field>     
-        </message>
-        
-        <message name="AIR_DATA" id="171">
-            Air data for altitude and airspeed computation.
-            <field name="dynamicPressure" type="float">Dynamic pressure (Pa)</field>
-            <field name="staticPressure" type="float">Static pressure (Pa)</field>
-            <field name="temperature" type="uint16_t">Board temperature</field>     
-        </message>
-        
-        <message name="SENSOR_BIAS" id="172">
-            Accelerometer and gyro biases.
-            <field name="axBias" type="float">Accelerometer X bias (m/s)</field>
-            <field name="ayBias" type="float">Accelerometer Y bias (m/s)</field>
-            <field name="azBias" type="float">Accelerometer Z bias (m/s)</field>
-            <field name="gxBias" type="float">Gyro X bias (rad/s)</field>
-            <field name="gyBias" type="float">Gyro Y bias (rad/s)</field>
-            <field name="gzBias" type="float">Gyro Z bias (rad/s)</field>
-        </message>
-        
-        <message name="DIAGNOSTIC" id="173">
-            Configurable diagnostic messages.
-            <field name="diagFl1" type="float">Diagnostic float 1</field>
-            <field name="diagFl2" type="float">Diagnostic float 2</field>
-            <field name="diagFl3" type="float">Diagnostic float 3</field>
-            <field name="diagSh1" type="int16_t">Diagnostic short 1</field>
-            <field name="diagSh2" type="int16_t">Diagnostic short 2</field>
-            <field name="diagSh3" type="int16_t">Diagnostic short 3</field>
-        </message>
-        
-        <message name="SLUGS_NAVIGATION" id="176">
-            Data used in the navigation algorithm.
-            <field name="u_m" type="float">Measured Airspeed prior to the Nav Filter</field>
-            <field name="phi_c" type="float">Commanded Roll</field>
-            <field name="theta_c" type="float">Commanded Pitch</field>
-            <field name="psiDot_c" type="float">Commanded Turn rate</field>
-            <field name="ay_body" type="float">Y component of the body acceleration</field>
-            <field name="totalDist" type="float">Total Distance to Run on this leg of Navigation</field>
-            <field name="dist2Go" type="float">Remaining distance to Run on this leg of Navigation</field>
-            <field name="fromWP" type="uint8_t">Origin WP</field>
-            <field name="toWP" type="uint8_t">Destination WP</field>
-        </message>
-        
-        <message name="DATA_LOG" id="177">
-            Configurable data log probes to be used inside Simulink
-            <field name="fl_1" type="float">Log value 1 </field>
-            <field name="fl_2" type="float">Log value 2 </field>
-            <field name="fl_3" type="float">Log value 3 </field>
-            <field name="fl_4" type="float">Log value 4 </field>
-            <field name="fl_5" type="float">Log value 5 </field>
-            <field name="fl_6" type="float">Log value 6 </field>
-        </message>
-        
-        <message name="GPS_DATE_TIME" id="179">
-            Pilot console PWM messges.
-            <field name="year"  type="uint8_t">Year reported by Gps </field>
-            <field name="month" type="uint8_t">Month reported by Gps </field>
-            <field name="day"   type="uint8_t">Day reported by Gps </field>
-            <field name="hour"  type="uint8_t">Hour reported by Gps </field>
-            <field name="min"   type="uint8_t">Min reported by Gps </field>
-            <field name="sec"   type="uint8_t">Sec reported by Gps  </field>
-            <field name="visSat"   type="uint8_t">Visible sattelites reported by Gps  </field>
-        </message>
-        
-        <message name="MID_LVL_CMDS" id="180">
-            Mid Level commands sent from the GS to the autopilot. These are only sent when being opperated in mid-level commands mode from the ground; for periodic report of these commands generated from the autopilot see message XXXX.
-            <field name="target" type="uint8_t">The system setting the commands</field>
-            <field name="hCommand" type="float">Commanded Airspeed</field>
-            <field name="uCommand" type="float">Log value 2 </field>
-            <field name="rCommand" type="float">Log value 3 </field>
-        </message>
-         
-        
-        <message name="CTRL_SRFC_PT" id="181">
-            This message configures the Selective Passthrough mode. it allows to select which control surfaces the Pilot can control from his console. It is implemented as a bitfield as follows: 
-            Position          Bit        Code
-            =================================
-            15-8             Reserved  
-            7                 dt_pass    128
-            6                 dla_pass   64
-            5                 dra_pass   32
-            4                 dr_pass    16
-            3                 dle_pass   8
-            2                 dre_pass   4
-            1                 dlf_pass   2
-            0                 drf_pass   1
-            Where Bit 15 is the MSb. 0 = AP has control of the surface; 1 = Pilot Console has control of the surface.
-            <field name="target" type="uint8_t">The system setting the commands</field>
-            <field name="bitfieldPt" type="uint16_t">Bitfield containing the PT configuration</field>
-        </message>
-         
-        
-        
-        <message name="SLUGS_ACTION" id="183">
-            Action messages focused on the SLUGS AP. 
-            <field name="target" type="uint8_t">The system reporting the action</field>
-            <field name="actionId" type="uint8_t">Action ID. See apDefinitions.h in the SLUGS /clib directory for the ID names</field>
-            <field name="actionVal" type="uint16_t">Value associated with the action</field>
-        </message>
-        
-    </messages>
-</mavlink>
diff --git a/libraries/GCS_MAVLink/message_definitions/slugs_ap.xml b/libraries/GCS_MAVLink/message_definitions/slugs_ap.xml
deleted file mode 100644
index 6b51a9f8377c943ebc3d766e6522eeaf6fb65cc9..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions/slugs_ap.xml
+++ /dev/null
@@ -1,152 +0,0 @@
-<?xml version="1.0"?>
-<mavlink>
-<include>common_slugs.xml</include>
-<messages>
-   <message name="CPU_LOAD" id="170">
-     Sensor and DSC control loads.
-     <field name="sensLoad" type="uint8_t">Sensor DSC Load</field>
-     <field name="ctrlLoad" type="uint8_t">Control DSC Load</field>
-     <field name="batVolt" type="uint16_t">Battery Voltage in millivolts</field>     
-   </message>
-   
-   <message name="AIR_DATA" id="171">
-     Air data for altitude and airspeed computation.
-     <field name="dynamicPressure" type="float">Dynamic pressure (Pa)</field>
-     <field name="staticPressure" type="float">Static pressure (Pa)</field>
-     <field name="temperature" type="uint16_t">Board temperature</field>     
-   </message>
-   
-   <message name="SENSOR_BIAS" id="172">
-     Accelerometer and gyro biases.
-     <field name="axBias" type="float">Accelerometer X bias (m/s)</field>
-     <field name="ayBias" type="float">Accelerometer Y bias (m/s)</field>
-     <field name="azBias" type="float">Accelerometer Z bias (m/s)</field>
-     <field name="gxBias" type="float">Gyro X bias (rad/s)</field>
-     <field name="gyBias" type="float">Gyro Y bias (rad/s)</field>
-     <field name="gzBias" type="float">Gyro Z bias (rad/s)</field>
-   </message>
-   
-  <message name="DIAGNOSTIC" id="173">
-     Configurable diagnostic messages.
-     <field name="diagFl1" type="float">Diagnostic float 1</field>
-     <field name="diagFl2" type="float">Diagnostic float 2</field>
-     <field name="diagFl3" type="float">Diagnostic float 3</field>
-     <field name="diagSh1" type="int16_t">Diagnostic short 1</field>
-     <field name="diagSh2" type="int16_t">Diagnostic short 2</field>
-     <field name="diagSh3" type="int16_t">Diagnostic short 3</field>
-  </message>
-   
-  <message name="PILOT_CONSOLE" id="174">
-     Pilot console PWM messges.
-     <field name="dt" type="uint16_t">Pilot's console throttle command </field>
-     <field name="dla" type="uint16_t">Pilot's console left aileron command </field>
-     <field name="dra" type="uint16_t">Pilot's console right aileron command </field>
-     <field name="dr" type="uint16_t">Pilot's console rudder command </field>
-     <field name="de" type="uint16_t">Pilot's console elevator command </field>
-  </message>
-   
-   <message name="PWM_COMMANDS" id="175">
-     PWM Commands from the AP to the control surfaces.
-     <field name="dt_c" type="uint16_t">AutoPilot's throttle command </field>
-     <field name="dla_c" type="uint16_t">AutoPilot's left aileron command </field>
-     <field name="dra_c" type="uint16_t">AutoPilot's right aileron command </field>
-     <field name="dr_c" type="uint16_t">AutoPilot's rudder command </field>
-     <field name="dle_c" type="uint16_t">AutoPilot's left elevator command </field>
-     <field name="dre_c" type="uint16_t">AutoPilot's right elevator command </field>
-     <field name="dlf_c" type="uint16_t">AutoPilot's left  flap command </field>
-     <field name="drf_c" type="uint16_t">AutoPilot's right flap command </field>
-     <field name="aux1" type="uint16_t">AutoPilot's aux1 command </field>
-     <field name="aux2" type="uint16_t">AutoPilot's aux2 command </field>
-   </message>
-
-  <message name="SLUGS_NAVIGATION" id="176">
-     Data used in the navigation algorithm.
-     <field name="u_m" type="float">Measured Airspeed prior to the Nav Filter</field>
-     <field name="phi_c" type="float">Commanded Roll</field>
-     <field name="theta_c" type="float">Commanded Pitch</field>
-     <field name="psiDot_c" type="float">Commanded Turn rate</field>
-     <field name="ay_body" type="float">Y component of the body acceleration</field>
-     <field name="totalDist" type="float">Total Distance to Run on this leg of Navigation</field>
-     <field name="dist2Go" type="float">Remaining distance to Run on this leg of Navigation</field>
-     <field name="fromWP" type="uint8_t">Origin WP</field>
-     <field name="toWP" type="uint8_t">Destination WP</field>
-  </message>
-  
-  <message name="DATA_LOG" id="177">
-     Configurable data log probes to be used inside Simulink
-     <field name="fl_1" type="float">Log value 1 </field>
-     <field name="fl_2" type="float">Log value 2 </field>
-     <field name="fl_3" type="float">Log value 3 </field>
-     <field name="fl_4" type="float">Log value 4 </field>
-     <field name="fl_5" type="float">Log value 5 </field>
-     <field name="fl_6" type="float">Log value 6 </field>
-  </message>
-
-  <message name="FILTERED_DATA" id="178">
-     Measured value from the IMU in units after sensor calibration and temperature compensation. Note that this IS NOT the output of the attitude filter, for that see messages 30 and 33.
-     <field name="aX" type="float">Accelerometer X value (m/s^2) </field>
-     <field name="aY" type="float">Accelerometer Y value (m/s^2)</field>
-     <field name="aZ" type="float">Accelerometer Z value (m/s^2)</field>
-     <field name="gX" type="float">Gyro X value (rad/s) </field>
-     <field name="gY" type="float">Gyro Y value (rad/s)</field>
-     <field name="gZ" type="float">Gyro Z value (rad/s)</field>
-     <field name="mX" type="float">Magnetometer X (normalized to 1) </field>
-     <field name="mY" type="float">Magnetometer Y (normalized to 1) </field>
-     <field name="mZ" type="float">Magnetometer Z (normalized to 1) </field>
-  </message>
-
-  <message name="GPS_DATE_TIME" id="179">
-     Pilot console PWM messges.
-     <field name="year"  type="uint8_t">Year reported by Gps </field>
-     <field name="month" type="uint8_t">Month reported by Gps </field>
-     <field name="day"   type="uint8_t">Day reported by Gps </field>
-     <field name="hour"  type="uint8_t">Hour reported by Gps </field>
-     <field name="min"   type="uint8_t">Min reported by Gps </field>
-     <field name="sec"   type="uint8_t">Sec reported by Gps  </field>
-     <field name="visSat"   type="uint8_t">Visible sattelites reported by Gps  </field>
-    </message>
-    
-  <message name="MID_LVL_CMDS" id="180">
-     Mid Level commands sent from the GS to the autopilot. These are only sent when being opperated in mid-level commands mode from the ground; for periodic report of these commands generated from the autopilot see message XXXX.
-     <field name="target" type="uint8_t">The system setting the commands</field>
-     <field name="hCommand" type="float">Commanded Airspeed</field>
-     <field name="uCommand" type="float">Log value 2 </field>
-     <field name="rCommand" type="float">Log value 3 </field>
-  </message>    
-
-  <message name="CTRL_SRFC_PT" id="181">
-This message configures the Selective Passthrough mode. it allows to select which control surfaces the Pilot can control from his console. It is implemented as a bitfield as follows: 
-     Position          Bit        Code
-     =================================
-     15-8             Reserved  
-     7                 dt_pass    128
-     6                 dla_pass   64
-     5                 dra_pass   32
-     4                 dr_pass    16
-     3                 dle_pass   8
-     2                 dre_pass   4
-     1                 dlf_pass   2
-     0                 drf_pass   1
-    Where Bit 15 is the MSb. 0 = AP has control of the surface; 1 = Pilot Console has control of the surface.
-     <field name="target" type="uint8_t">The system setting the commands</field>
-     <field name="bitfieldPt" type="uint16_t">Bitfield containing the PT configuration</field>
-  </message>  
-  
-  <message name="PID" id="182">
-     Configure a PID loop.
-     <field name="target" type="uint8_t">The system setting the PID values</field>
-     <field name="pVal" type="float">Proportional gain</field>
-     <field name="iVal" type="float">Integral gain</field>
-     <field name="dVal" type="float">Derivative gain</field>
-     <field name="idx" type="uint8_t">PID loop index</field>
-  </message>
-  
-  <message name="SLUGS_ACTION" id="183">
-     Action messages focused on the SLUGS AP. 
-     <field name="target" type="uint8_t">The system reporting the action</field>
-     <field name="actionId" type="uint8_t">Action ID. See apDefinitions.h in the SLUGS /clib directory for the ID names</field>
-     <field name="actionVal" type="uint16_t">Value associated with the action</field>
-  </message>
-
-</messages>
-</mavlink>
\ No newline at end of file
diff --git a/libraries/GCS_MAVLink/message_definitions/test.xml b/libraries/GCS_MAVLink/message_definitions/test.xml
deleted file mode 100644
index 43a11e3d139782e3d7b008e898c6c7891828bd0e..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions/test.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version='1.0'?>
-<mavlink>
-    <version>3</version>
-    <messages>
-          <message id="0" name="TEST_TYPES">
-               <description>Test all field types</description>
-	       <field type="char" name="c">char</field>
-	       <field type="char[10]" name="s">string</field>
-               <field type="uint8_t" name="u8">uint8_t</field>
-               <field type="uint16_t" name="u16">uint16_t</field>
-               <field type="uint32_t" name="u32" print_format="0x%08x">uint32_t</field>
-               <field type="uint64_t" name="u64">uint64_t</field>
-               <field type="int8_t" name="s8">int8_t</field>
-               <field type="int16_t" name="s16">int16_t</field>
-               <field type="int32_t" name="s32">int32_t</field>
-               <field type="int64_t" name="s64">int64_t</field>
-               <field type="float" name="f">float</field>
-               <field type="double" name="d">double</field>
-               <field type="uint8_t[3]" name="u8_array">uint8_t_array</field>
-               <field type="uint16_t[3]" name="u16_array">uint16_t_array</field>
-               <field type="uint32_t[3]" name="u32_array">uint32_t_array</field>
-               <field type="uint64_t[3]" name="u64_array">uint64_t_array</field>
-               <field type="int8_t[3]" name="s8_array">int8_t_array</field>
-               <field type="int16_t[3]" name="s16_array">int16_t_array</field>
-               <field type="int32_t[3]" name="s32_array">int32_t_array</field>
-               <field type="int64_t[3]" name="s64_array">int64_t_array</field>
-               <field type="float[3]" name="f_array">float_array</field>
-               <field type="double[3]" name="d_array">double_array</field>
-          </message>
-    </messages>
-</mavlink>
diff --git a/libraries/GCS_MAVLink/message_definitions/ualberta.xml b/libraries/GCS_MAVLink/message_definitions/ualberta.xml
deleted file mode 100644
index 5e53e141e9f018e943abfd25bc1f58c0a0091574..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions/ualberta.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version='1.0'?>
-<mavlink>
-    <include>common.xml</include>
-    <enums>
-        <enum name="UALBERTA_AUTOPILOT_MODE">
-            <description>Available autopilot modes for ualberta uav</description>
-            <entry name="MODE_MANUAL_DIRECT">Raw input pulse widts sent to output</entry>
-            <entry name="MODE_MANUAL_SCALED">Inputs are normalized using calibration, the converted back to raw pulse widths for output</entry>
-            <entry name="MODE_AUTO_PID_ATT"> dfsdfs</entry>
-            <entry name="MODE_AUTO_PID_VEL"> dfsfds</entry>
-            <entry name="MODE_AUTO_PID_POS"> dfsdfsdfs</entry>
-        </enum>
-        <enum name="UALBERTA_NAV_MODE">
-            <description>Navigation filter mode</description>
-            <entry name="NAV_AHRS_INIT" />
-            <entry name="NAV_AHRS">AHRS mode</entry>
-            <entry name="NAV_INS_GPS_INIT">INS/GPS initialization mode</entry>
-            <entry name="NAV_INS_GPS">INS/GPS mode</entry>
-        </enum>
-        <enum name="UALBERTA_PILOT_MODE">
-            <description>Mode currently commanded by pilot</description>
-            <entry name="PILOT_MANUAL"> sdf</entry>
-            <entry name="PILOT_AUTO"> dfs</entry>
-            <entry name="PILOT_ROTO"> Rotomotion mode </entry>
-        </enum>
-    </enums>
-    <messages>
-        <message id="220" name="NAV_FILTER_BIAS">
-            <description>Accelerometer and Gyro biases from the navigation filter</description>
-            <field type="uint64_t" name="usec">Timestamp (microseconds)</field>
-            <field type="float" name="accel_0">b_f[0]</field>
-            <field type="float" name="accel_1">b_f[1]</field>
-            <field type="float" name="accel_2">b_f[2]</field>
-            <field type="float" name="gyro_0">b_f[0]</field>
-            <field type="float" name="gyro_1">b_f[1]</field>
-            <field type="float" name="gyro_2">b_f[2]</field>
-        </message>
-        <message id="221" name="RADIO_CALIBRATION">
-            <description>Complete set of calibration parameters for the radio</description>
-            <field type="uint16_t[3]" name="aileron">Aileron setpoints: left, center, right</field>
-            <field type="uint16_t[3]" name="elevator">Elevator setpoints: nose down, center, nose up</field>
-            <field type="uint16_t[3]" name="rudder">Rudder setpoints: nose left, center, nose right</field>
-            <field type="uint16_t[2]" name="gyro">Tail gyro mode/gain setpoints: heading hold, rate mode</field>
-            <field type="uint16_t[5]" name="pitch">Pitch curve setpoints (every 25%)</field>
-            <field type="uint16_t[5]" name="throttle">Throttle curve setpoints (every 25%)</field>
-        </message>
-        <message id="222" name="UALBERTA_SYS_STATUS">
-            <description>System status specific to ualberta uav</description>
-            <field type="uint8_t" name="mode">System mode, see UALBERTA_AUTOPILOT_MODE ENUM</field>
-            <field type="uint8_t" name="nav_mode">Navigation mode, see UALBERTA_NAV_MODE ENUM</field>
-            <field type="uint8_t" name="pilot">Pilot mode, see UALBERTA_PILOT_MODE</field>
-        </message>
-    </messages>
-</mavlink>
diff --git a/libraries/GCS_MAVLink/message_definitions_v1.0/ardupilotmega.xml b/libraries/GCS_MAVLink/message_definitions_v1.0/ardupilotmega.xml
deleted file mode 100644
index c6019e03f24a8dae74646f103d19675740b7424c..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions_v1.0/ardupilotmega.xml
+++ /dev/null
@@ -1,270 +0,0 @@
-<?xml version='1.0'?>
-<mavlink>
-     <include>common.xml</include>
-     <!-- note that APM specific messages should use the command id
-      range from 150 to 250, to leave plenty of room for growth
-      of common.xml 
-
-      If you prototype a message here, then you should consider if it
-      is general enough to move into common.xml later
-    -->
-
-
-	<enums>
-	  <!-- Camera Mount mode Enumeration -->
-	  <enum name="MAV_MOUNT_MODE">
-	    <description>Enumeration of possible mount operation modes</description>
-	    <entry name="MAV_MOUNT_MODE_RETRACT" value="0"><description>Load and keep safe position (Roll,Pitch,Yaw) from EEPROM and stop stabilization</description></entry>
-	    <entry name="MAV_MOUNT_MODE_NEUTRAL" value="1"><description>Load and keep neutral position (Roll,Pitch,Yaw) from EEPROM.</description></entry>
-	    <entry name="MAV_MOUNT_MODE_MAVLINK_TARGETING" value="2"><description>Load neutral position and start MAVLink Roll,Pitch,Yaw control with stabilization</description></entry>
-	    <entry name="MAV_MOUNT_MODE_RC_TARGETING" value="3"><description>Load neutral position and start RC Roll,Pitch,Yaw control with stabilization</description></entry>
-	    <entry name="MAV_MOUNT_MODE_GPS_POINT" value="4"><description>Load neutral position and start to point to Lat,Lon,Alt</description></entry>
-	  </enum>
-
-	  <enum name="MAV_CMD" >
-	    <!-- Camera Controller Mission Commands Enumeration -->
-	    <entry name="MAV_CMD_DO_DIGICAM_CONFIGURE" value="202">
-	      <description>Mission command to configure an on-board camera controller system.</description>
-	      <param index="1">Modes: P, TV, AV, M, Etc</param>
-	      <param index="2">Shutter speed: Divisor number for one second</param>
-	      <param index="3">Aperture: F stop number</param>
-	      <param index="4">ISO number e.g. 80, 100, 200, Etc</param>
-	      <param index="5">Exposure type enumerator</param>
-	      <param index="6">Command Identity</param>
-	      <param index="7">Main engine cut-off time before camera trigger in seconds/10 (0 means no cut-off)</param>
-	    </entry>
-	    
-	    <entry name="MAV_CMD_DO_DIGICAM_CONTROL" value="203">
-	      <description>Mission command to control an on-board camera controller system.</description>
-	      <param index="1">Session control e.g. show/hide lens</param>
-	      <param index="2">Zoom's absolute position</param>
-	      <param index="3">Zooming step value to offset zoom from the current position</param>
-	      <param index="4">Focus Locking, Unlocking or Re-locking</param>
-	      <param index="5">Shooting Command</param>
-	      <param index="6">Command Identity</param>
-	      <param index="7">Empty</param>
-	    </entry>
-	    
-	    <!-- Camera Mount Mission Commands Enumeration -->
-	    <entry name="MAV_CMD_DO_MOUNT_CONFIGURE" value="204">
-	      <description>Mission command to configure a camera or antenna mount</description>
-	      <param index="1">Mount operation mode (see MAV_MOUNT_MODE enum)</param>
-	      <param index="2">stabilize roll? (1 = yes, 0 = no)</param>
-	      <param index="3">stabilize pitch? (1 = yes, 0 = no)</param>
-	      <param index="4">stabilize yaw? (1 = yes, 0 = no)</param>
-	      <param index="5">Empty</param>
-	      <param index="6">Empty</param>
-	      <param index="7">Empty</param>
-	    </entry>
-	
-	    <entry name="MAV_CMD_DO_MOUNT_CONTROL" value="205">
-	      <description>Mission command to control a camera or antenna mount</description>
-	      <param index="1">pitch(deg*100) or lat, depending on mount mode.</param>
-	      <param index="2">roll(deg*100) or lon depending on mount mode</param>
-	      <param index="3">yaw(deg*100) or alt (in cm) depending on mount mode</param>
-	      <param index="4">Empty</param>
-	      <param index="5">Empty</param>
-	      <param index="6">Empty</param>
-	      <param index="7">Empty</param>
-	    </entry>
-	  </enum>
-
-	  <!-- fenced mode enums -->
-	  <enum name="FENCE_ACTION">
-	    <entry name="FENCE_ACTION_NONE" value="0">
-	      <description>Disable fenced mode</description>
-	    </entry>
-	    <entry name="FENCE_ACTION_GUIDED" value="1">
-	      <description>Switched to guided mode to return point (fence point 0)</description>
-	    </entry>
-	  </enum>
-
-	  <enum name="FENCE_BREACH">
-	    <entry name="FENCE_BREACH_NONE" value="0">
-	      <description>No last fence breach</description>
-	    </entry>
-	    <entry name="FENCE_BREACH_MINALT" value="1">
-	      <description>Breached minimum altitude</description>
-	    </entry>
-	    <entry name="FENCE_BREACH_MAXALT" value="2">
-	      <description>Breached minimum altitude</description>
-	    </entry>
-	    <entry name="FENCE_BREACH_BOUNDARY" value="3">
-	      <description>Breached fence boundary</description>
-	    </entry>
-	  </enum>
-	</enums>
-
-     <messages>
-          <message id="150" name="SENSOR_OFFSETS">
-               <description>Offsets and calibrations values for hardware
-        sensors. This makes it easier to debug the calibration process.</description>
-               <field type="int16_t" name="mag_ofs_x">magnetometer X offset</field>
-               <field type="int16_t" name="mag_ofs_y">magnetometer Y offset</field>
-               <field type="int16_t" name="mag_ofs_z">magnetometer Z offset</field>
-               <field type="float" name="mag_declination">magnetic declination (radians)</field>
-               <field type="int32_t" name="raw_press">raw pressure from barometer</field>
-               <field type="int32_t" name="raw_temp">raw temperature from barometer</field>
-               <field type="float" name="gyro_cal_x">gyro X calibration</field>
-               <field type="float" name="gyro_cal_y">gyro Y calibration</field>
-               <field type="float" name="gyro_cal_z">gyro Z calibration</field>
-               <field type="float" name="accel_cal_x">accel X calibration</field>
-               <field type="float" name="accel_cal_y">accel Y calibration</field>
-               <field type="float" name="accel_cal_z">accel Z calibration</field>
-          </message>
-
-          <message id="151" name="SET_MAG_OFFSETS">
-               <description>set the magnetometer offsets</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="int16_t" name="mag_ofs_x">magnetometer X offset</field>
-               <field type="int16_t" name="mag_ofs_y">magnetometer Y offset</field>
-               <field type="int16_t" name="mag_ofs_z">magnetometer Z offset</field>
-          </message>
-
-          <message id="152" name="MEMINFO">
-               <description>state of APM memory</description>
-               <field type="uint16_t" name="brkval">heap top</field>
-               <field type="uint16_t" name="freemem">free memory</field>
-          </message>
-
-          <message id="153" name="AP_ADC">
-               <description>raw ADC output</description>
-               <field type="uint16_t" name="adc1">ADC output 1</field>
-               <field type="uint16_t" name="adc2">ADC output 2</field>
-               <field type="uint16_t" name="adc3">ADC output 3</field>
-               <field type="uint16_t" name="adc4">ADC output 4</field>
-               <field type="uint16_t" name="adc5">ADC output 5</field>
-               <field type="uint16_t" name="adc6">ADC output 6</field>
-          </message>
-
-	  <!-- Camera Controller Messages -->
-	  <message name="DIGICAM_CONFIGURE" id="154">
-	    <description>Configure on-board Camera Control System.</description>
-	    <field name="target_system" type="uint8_t">System ID</field>      
-	    <field name="target_component" type="uint8_t">Component ID</field>
-	    <field name="mode" type="uint8_t">Mode enumeration from 1 to N //P, TV, AV, M, Etc (0 means ignore)</field>
-	    <field name="shutter_speed" type="uint16_t">Divisor number //e.g. 1000 means 1/1000 (0 means ignore)</field>
-	    <field name="aperture" type="uint8_t">F stop number x 10 //e.g. 28 means 2.8 (0 means ignore)</field>
-	    <field name="iso" type="uint8_t">ISO enumeration from 1 to N //e.g. 80, 100, 200, Etc (0 means ignore)</field>
-	    <field name="exposure_type" type="uint8_t">Exposure type enumeration from 1 to N (0 means ignore)</field>
-	    <field name="command_id" type="uint8_t">Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once</field>
- 	    <field name="engine_cut_off" type="uint8_t">Main engine cut-off time before camera trigger in seconds/10 (0 means no cut-off)</field>
-	    <field name="extra_param" type="uint8_t">Extra parameters enumeration (0 means ignore)</field>
-	    <field name="extra_value" type="float">Correspondent value to given extra_param</field>
-	  </message>
-
-	  <message name="DIGICAM_CONTROL" id="155">
-	    <description>Control on-board Camera Control System to take shots.</description>
-	    <field name="target_system" type="uint8_t">System ID</field>
-	    <field name="target_component" type="uint8_t">Component ID</field>
-	    <field name="session" type="uint8_t">0: stop, 1: start or keep it up //Session control e.g. show/hide lens</field>
-	    <field name="zoom_pos" type="uint8_t">1 to N //Zoom's absolute position (0 means ignore)</field>
-	    <field name="zoom_step" type="int8_t">-100 to 100 //Zooming step value to offset zoom from the current position</field>
-	    <field name="focus_lock" type="uint8_t">0: unlock focus or keep unlocked, 1: lock focus or keep locked, 3: re-lock focus</field>
-	    <field name="shot" type="uint8_t">0: ignore, 1: shot or start filming</field>
-	    <field name="command_id" type="uint8_t">Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once</field>
-	    <field name="extra_param" type="uint8_t">Extra parameters enumeration (0 means ignore)</field>
-	    <field name="extra_value" type="float">Correspondent value to given extra_param</field>
-	  </message>
-
-	  <!-- Camera Mount Messages -->
-	  <message name="MOUNT_CONFIGURE" id="156">
-	    <description>Message to configure a camera mount, directional antenna, etc.</description>
-	    <field name="target_system" type="uint8_t">System ID</field>
-	    <field name="target_component" type="uint8_t">Component ID</field>
-	    <field name="mount_mode" type="uint8_t">mount operating mode (see MAV_MOUNT_MODE enum)</field>
-	    <field name="stab_roll" type="uint8_t">(1 = yes, 0 = no)</field>
-	    <field name="stab_pitch" type="uint8_t">(1 = yes, 0 = no)</field>
-	    <field name="stab_yaw" type="uint8_t">(1 = yes, 0 = no)</field>
-	  </message>
-    
-	  <message name="MOUNT_CONTROL" id="157">
-	    <description>Message to control a camera mount, directional antenna, etc.</description>
-	    <field name="target_system" type="uint8_t">System ID</field>
-	    <field name="target_component" type="uint8_t">Component ID</field>
-	    <field name="input_a" type="int32_t">pitch(deg*100) or lat, depending on mount mode</field>
-	    <field name="input_b" type="int32_t">roll(deg*100) or lon depending on mount mode</field>
-	    <field name="input_c" type="int32_t">yaw(deg*100) or alt (in cm) depending on mount mode</field>
-	    <field name="save_position" type="uint8_t">if "1" it will save current trimmed position on EEPROM (just valid for NEUTRAL and LANDING)</field>
-	  </message>
-
-	  <message name="MOUNT_STATUS" id="158">
-	    <description>Message with some status from APM to GCS about camera or antenna mount</description>
-	    <field name="target_system" type="uint8_t">System ID</field>
-	    <field name="target_component" type="uint8_t">Component ID</field>
-	    <field name="pointing_a" type="int32_t">pitch(deg*100) or lat, depending on mount mode</field>
-	    <field name="pointing_b" type="int32_t">roll(deg*100) or lon depending on mount mode</field>
-	    <field name="pointing_c" type="int32_t">yaw(deg*100) or alt (in cm) depending on mount mode</field>
-	  </message>
-
-	  <!-- geo-fence messages -->
-	  <message name="FENCE_POINT" id="160">
-	    <description>A fence point. Used to set a point when from
-	      GCS -> MAV. Also used to return a point from MAV -> GCS</description>
-	    <field name="target_system" type="uint8_t">System ID</field>
-	    <field name="target_component" type="uint8_t">Component ID</field>
-	    <field name="idx" type="uint8_t">point index (first point is 1, 0 is for return point)</field>
-	    <field name="count" type="uint8_t">total number of points (for sanity checking)</field>
-	    <field name="lat" type="float">Latitude of point</field>
-	    <field name="lng" type="float">Longitude of point</field>
-	  </message>
-
-	  <message name="FENCE_FETCH_POINT" id="161">
-	    <description>Request a current fence point from MAV</description>
-	    <field name="target_system" type="uint8_t">System ID</field>
-	    <field name="target_component" type="uint8_t">Component ID</field>
-	    <field name="idx" type="uint8_t">point index (first point is 1, 0 is for return point)</field>
-	  </message>
-
-	  <message name="FENCE_STATUS" id="162">
-	    <description>Status of geo-fencing. Sent in extended
-	    status stream when fencing enabled</description>
-	    <field name="breach_status" type="uint8_t">0 if currently inside fence, 1 if outside</field>
-	    <field name="breach_count" type="uint16_t">number of fence breaches</field>
-	    <field name="breach_type" type="uint8_t">last breach type (see FENCE_BREACH_* enum)</field>
-	    <field name="breach_time" type="uint32_t">time of last breach in milliseconds since boot</field>
-	  </message>
-
-	  <message name="AHRS" id="163">
-	    <description>Status of DCM attitude estimator</description>
-            <field type="float" name="omegaIx">X gyro drift estimate rad/s</field>
-            <field type="float" name="omegaIy">Y gyro drift estimate rad/s</field>
-            <field type="float" name="omegaIz">Z gyro drift estimate rad/s</field>
-            <field type="float" name="accel_weight">average accel_weight</field>
-            <field type="float" name="renorm_val">average renormalisation value</field>
-            <field type="float" name="error_rp">average error_roll_pitch value</field>
-            <field type="float" name="error_yaw">average error_yaw value</field>
-	  </message>
-
-	  <message name="SIMSTATE" id="164">
-	    <description>Status of simulation environment, if used</description>
-            <field type="float" name="roll">Roll angle (rad)</field>
-            <field type="float" name="pitch">Pitch angle (rad)</field>
-            <field type="float" name="yaw">Yaw angle (rad)</field>
-            <field type="float" name="xacc">X acceleration m/s/s</field>
-            <field type="float" name="yacc">Y acceleration m/s/s</field>
-            <field type="float" name="zacc">Z acceleration m/s/s</field>
-            <field type="float" name="xgyro">Angular speed around X axis rad/s</field>
-            <field type="float" name="ygyro">Angular speed around Y axis rad/s</field>
-            <field type="float" name="zgyro">Angular speed around Z axis rad/s</field>
-	  </message>
-
-	  <message name="HWSTATUS" id="165">
-	    <description>Status of key hardware</description>
-            <field type="uint16_t" name="Vcc">board voltage (mV)</field>
-            <field type="uint8_t"  name="I2Cerr">I2C error count</field>
-	  </message>
-
-	  <message name="RADIO" id="166">
-	    <description>Status generated by radio</description>
-            <field type="uint8_t" name="rssi">local signal strength</field>
-            <field type="uint8_t" name="remrssi">remote signal strength</field>
-	    <field type="uint8_t" name="txbuf">how full the tx buffer is as a percentage</field>
-            <field type="uint8_t" name="noise">background noise level</field>
-            <field type="uint8_t" name="remnoise">remote background noise level</field>
-	    <field type="uint16_t" name="rxerrors">receive errors</field>
-	    <field type="uint16_t" name="fixed">count of error corrected packets</field>
-	  </message>
-     </messages>
-</mavlink>
diff --git a/libraries/GCS_MAVLink/message_definitions_v1.0/common.xml b/libraries/GCS_MAVLink/message_definitions_v1.0/common.xml
deleted file mode 100644
index 8af1eaa4131ce6398afa48f6c31677a59eaf33c5..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions_v1.0/common.xml
+++ /dev/null
@@ -1,1536 +0,0 @@
-<?xml version='1.0'?>
-<mavlink>
-     <version>3</version>
-     <enums>
-          <enum name="MAV_AUTOPILOT">
-               <description>Micro air vehicle / autopilot classes. This identifies the individual model.</description>
-               <entry value="0" name="MAV_AUTOPILOT_GENERIC">
-                    <description>Generic autopilot, full support for everything</description>
-               </entry>
-               <entry value="1" name="MAV_AUTOPILOT_PIXHAWK">
-                    <description>PIXHAWK autopilot, http://pixhawk.ethz.ch</description>
-               </entry>
-               <entry value="2" name="MAV_AUTOPILOT_SLUGS">
-                    <description>SLUGS autopilot, http://slugsuav.soe.ucsc.edu</description>
-               </entry>
-               <entry value="3" name="MAV_AUTOPILOT_ARDUPILOTMEGA">
-                    <description>ArduPilotMega / ArduCopter, http://diydrones.com</description>
-               </entry>
-               <entry value="4" name="MAV_AUTOPILOT_OPENPILOT">
-                    <description>OpenPilot, http://openpilot.org</description>
-               </entry>
-               <entry value="5" name="MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY">
-                    <description>Generic autopilot only supporting simple waypoints</description>
-               </entry>
-               <entry value="6" name="MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY">
-                    <description>Generic autopilot supporting waypoints and other simple navigation commands</description>
-               </entry>
-               <entry value="7" name="MAV_AUTOPILOT_GENERIC_MISSION_FULL">
-                    <description>Generic autopilot supporting the full mission command set</description>
-               </entry>
-               <entry value="8" name="MAV_AUTOPILOT_INVALID">
-                    <description>No valid autopilot, e.g. a GCS or other MAVLink component</description>
-               </entry>
-               <entry value="9" name="MAV_AUTOPILOT_PPZ">
-                    <description>PPZ UAV - http://nongnu.org/paparazzi</description>
-               </entry>
-               <entry value="10" name="MAV_AUTOPILOT_UDB">
-                    <description>UAV Dev Board</description>
-               </entry>
-               <entry value="11" name="MAV_AUTOPILOT_FP">
-                    <description>FlexiPilot</description>
-               </entry>
-          </enum>
-          <!-- WARNING: MAV_ACTION Enum is no longer supported - has been removed. Please use MAV_CMD -->
-          <enum name="MAV_MODE_FLAG">
-          		<description>These flags encode the MAV mode.</description>
-          		<entry value="128" name="MAV_MODE_FLAG_SAFETY_ARMED">
-          			<description>0b10000000 MAV safety set to armed. Motors are enabled / running / can start. Ready to fly.</description>
-          		</entry>
-                <entry value="64" name="MAV_MODE_FLAG_MANUAL_INPUT_ENABLED">
-          			<description>0b01000000 remote control input is enabled.</description>
-          		</entry>
-          		<entry value="32" name="MAV_MODE_FLAG_HIL_ENABLED">
-          			<description>0b00100000 hardware in the loop simulation. All motors / actuators are blocked, but internal software is full operational.</description>
-          		</entry>
-                <entry value="16" name="MAV_MODE_FLAG_STABILIZE_ENABLED">
-          			<description>0b00010000 system stabilizes electronically its attitude (and optionally position). It needs however further control inputs to move around.</description>
-          		</entry>
-                <entry value="8" name="MAV_MODE_FLAG_GUIDED_ENABLED">
-          			<description>0b00001000 guided mode enabled, system flies MISSIONs / mission items.</description>
-          		</entry>
-                <entry value="4" name="MAV_MODE_FLAG_AUTO_ENABLED">
-          			<description>0b00000100 autonomous mode enabled, system finds its own goal positions. Guided flag can be set or not, depends on the actual implementation.</description>
-          		</entry>
-                <entry value="2" name="MAV_MODE_FLAG_TEST_ENABLED">
-          			<description>0b00000010 system has a test mode enabled. This flag is intended for temporary system tests and should not be used for stable implementations.</description>
-          		</entry>
-                <entry value="1" name="MAV_MODE_FLAG_CUSTOM_MODE_ENABLED">
-          			<description>0b00000001 Reserved for future use.</description>
-          		</entry>
-          </enum>
-
-          <enum name="MAV_MODE_FLAG_DECODE_POSITION">
-          		<description>These values encode the bit positions of the decode position. These values can be used to read the value of a flag bit by combining the base_mode variable with AND with the flag position value. The result will be either 0 or 1, depending on if the flag is set or not.</description>
-                <entry value="128" name="MAV_MODE_FLAG_DECODE_POSITION_SAFETY">
-          			<description>First bit:  10000000</description>
-          		</entry>
-                <entry value="64" name="MAV_MODE_FLAG_DECODE_POSITION_MANUAL">
-          			<description>Second bit: 01000000</description>
-          		</entry>
-          		<entry value="32" name="MAV_MODE_FLAG_DECODE_POSITION_HIL">
-          			<description>Third bit:  00100000</description>
-          		</entry>
-                <entry value="16" name="MAV_MODE_FLAG_DECODE_POSITION_STABILIZE">
-          			<description>Fourth bit: 00010000</description>
-          		</entry>
-                <entry value="8" name="MAV_MODE_FLAG_DECODE_POSITION_GUIDED">
-          			<description>Fifth bit:  00001000</description>
-          		</entry>
-                <entry value="4" name="MAV_MODE_FLAG_DECODE_POSITION_AUTO">
-          			<description>Sixt bit:   00000100</description>
-          		</entry>
-                <entry value="2" name="MAV_MODE_FLAG_DECODE_POSITION_TEST">
-          			<description>Seventh bit: 00000010</description>
-          		</entry>
-                <entry value="1" name="MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE">
-          			<description>Eighth bit: 00000001</description>
-          		</entry>
-          </enum>
-          <enum name="MAV_GOTO">
-               <description>Override command, pauses current mission execution and moves immediately to a position</description>
-               <entry value="0" name="MAV_GOTO_DO_HOLD">
-                    <description>Hold at the current position.</description>
-               </entry>
-               <entry value="1" name="MAV_GOTO_DO_CONTINUE">
-                    <description>Continue with the next item in mission execution.</description>
-               </entry>
-               <entry value="2" name="MAV_GOTO_HOLD_AT_CURRENT_POSITION">
-                    <description>Hold at the current position of the system</description>
-               </entry>
-               <entry value="3" name="MAV_GOTO_HOLD_AT_SPECIFIED_POSITION">
-                    <description>Hold at the position specified in the parameters of the DO_HOLD action</description>
-               </entry>
-          </enum>
-          <enum name="MAV_MODE">
-               <description>These defines are predefined OR-combined mode flags. There is no need to use values from this enum, but it
-               simplifies the use of the mode flags. Note that manual input is enabled in all modes as a safety override.</description>
-               <entry value="0" name="MAV_MODE_PREFLIGHT">
-                    <description>System is not ready to fly, booting, calibrating, etc. No flag is set.</description>
-               </entry>
-               <entry value="80" name="MAV_MODE_STABILIZE_DISARMED">
-                    <description>System is allowed to be active, under assisted RC control.</description>
-               </entry>
-               <entry value="208" name="MAV_MODE_STABILIZE_ARMED">
-                    <description>System is allowed to be active, under assisted RC control.</description>
-               </entry>
-               <entry value="64" name="MAV_MODE_MANUAL_DISARMED">
-                    <description>System is allowed to be active, under manual (RC) control, no stabilization</description>
-               </entry>
-               <entry value="192" name="MAV_MODE_MANUAL_ARMED">
-                    <description>System is allowed to be active, under manual (RC) control, no stabilization</description>
-               </entry>
-               <entry value="88" name="MAV_MODE_GUIDED_DISARMED">
-                    <description>System is allowed to be active, under autonomous control, manual setpoint</description>
-               </entry>
-               <entry value="216" name="MAV_MODE_GUIDED_ARMED">
-                    <description>System is allowed to be active, under autonomous control, manual setpoint</description>
-               </entry>
-               <entry value="92" name="MAV_MODE_AUTO_DISARMED">
-                    <description>System is allowed to be active, under autonomous control and navigation (the trajectory is decided onboard and not pre-programmed by MISSIONs)</description>
-               </entry>
-               <entry value="220" name="MAV_MODE_AUTO_ARMED">
-                    <description>System is allowed to be active, under autonomous control and navigation (the trajectory is decided onboard and not pre-programmed by MISSIONs)</description>
-               </entry>
-               <entry value="66" name="MAV_MODE_TEST_DISARMED">
-                    <description>UNDEFINED mode. This solely depends on the autopilot - use with caution, intended for developers only.</description>
-               </entry>
-               <entry value="194" name="MAV_MODE_TEST_ARMED">
-                    <description>UNDEFINED mode. This solely depends on the autopilot - use with caution, intended for developers only.</description>
-               </entry>
-          </enum>
-          <enum name="MAV_STATE">
-               <entry value="0" name="MAV_STATE_UNINIT">
-                    <description>Uninitialized system, state is unknown.</description>
-               </entry>
-               <entry name="MAV_STATE_BOOT">
-                    <description>System is booting up.</description>
-               </entry>
-               <entry name="MAV_STATE_CALIBRATING">
-                    <description>System is calibrating and not flight-ready.</description>
-               </entry>
-               <entry name="MAV_STATE_STANDBY">
-                    <description>System is grounded and on standby. It can be launched any time.</description>
-               </entry>
-               <entry name="MAV_STATE_ACTIVE">
-                    <description>System is active and might be already airborne. Motors are engaged.</description>
-               </entry>
-               <entry name="MAV_STATE_CRITICAL">
-                    <description>System is in a non-normal flight mode. It can however still navigate.</description>
-               </entry>
-               <entry name="MAV_STATE_EMERGENCY">
-                    <description>System is in a non-normal flight mode. It lost control over parts or over the whole airframe. It is in mayday and going down.</description>
-               </entry>
-               <entry name="MAV_STATE_POWEROFF">
-                    <description>System just initialized its power-down sequence, will shut down now.</description>
-               </entry>
-          </enum>
-          <enum name="MAV_TYPE">
-               <entry value="0" name="MAV_TYPE_GENERIC">
-                    <description>Generic micro air vehicle.</description>
-               </entry>
-               <entry value="1" name="MAV_TYPE_FIXED_WING">
-                    <description>Fixed wing aircraft.</description>
-               </entry>
-               <entry value="2" name="MAV_TYPE_QUADROTOR">
-                    <description>Quadrotor</description>
-               </entry>
-               <entry value="3" name="MAV_TYPE_COAXIAL">
-                    <description>Coaxial helicopter</description>
-               </entry>
-               <entry value="4" name="MAV_TYPE_HELICOPTER">
-                    <description>Normal helicopter with tail rotor.</description>
-               </entry>
-               <entry value="5" name="MAV_TYPE_ANTENNA_TRACKER">
-                    <description>Ground installation</description>
-               </entry>
-               <entry value="6" name="MAV_TYPE_GCS">
-                    <description>Operator control unit / ground control station</description>
-               </entry>
-               <entry value="7" name="MAV_TYPE_AIRSHIP">
-                    <description>Airship, controlled</description>
-               </entry>
-               <entry value="8" name="MAV_TYPE_FREE_BALLOON">
-                    <description>Free balloon, uncontrolled</description>
-               </entry>
-               <entry value="9" name="MAV_TYPE_ROCKET">
-                    <description>Rocket</description>
-               </entry>
-               <entry value="10" name="MAV_TYPE_GROUND_ROVER">
-                    <description>Ground rover</description>
-               </entry>
-               <entry value="11" name="MAV_TYPE_SURFACE_BOAT">
-                    <description>Surface vessel, boat, ship</description>
-               </entry>
-               <entry value="12" name="MAV_TYPE_SUBMARINE">
-                    <description>Submarine</description>
-               </entry>
-               <entry value="13" name="MAV_TYPE_HEXAROTOR">
-                    <description>Hexarotor</description>
-               </entry>
-               <entry value="14" name="MAV_TYPE_OCTOROTOR">
-                    <description>Octorotor</description>
-               </entry>
-               <entry value="15" name="MAV_TYPE_TRICOPTER">
-                    <description>Octorotor</description>
-               </entry>
-               <entry value="16" name="MAV_TYPE_FLAPPING_WING">
-                    <description>Flapping wing</description>
-               </entry>
-          </enum>
-          <enum name="MAV_COMPONENT">
-               <entry value="0" name="MAV_COMP_ID_ALL">
-                    <description/>
-               </entry>
-               <entry value="220" name="MAV_COMP_ID_GPS">
-                    <description/>
-               </entry>
-               <entry value="190" name="MAV_COMP_ID_MISSIONPLANNER">
-                    <description/>
-               </entry>
-               <entry value="195" name="MAV_COMP_ID_PATHPLANNER">
-                    <description/>
-               </entry>
-               <entry value="180" name="MAV_COMP_ID_MAPPER">
-                    <description/>
-               </entry>
-               <entry value="100" name="MAV_COMP_ID_CAMERA">
-                    <description/>
-               </entry>
-               <entry value="200" name="MAV_COMP_ID_IMU">
-                    <description/>
-               </entry>
-               <entry value="201" name="MAV_COMP_ID_IMU_2">
-                    <description/>
-               </entry>
-               <entry value="202" name="MAV_COMP_ID_IMU_3">
-                    <description/>
-               </entry>
-               <entry value="240" name="MAV_COMP_ID_UDP_BRIDGE">
-                    <description/>
-               </entry>
-               <entry value="241" name="MAV_COMP_ID_UART_BRIDGE">
-                    <description/>
-               </entry>
-               <entry value="250" name="MAV_COMP_ID_SYSTEM_CONTROL">
-                    <description/>
-               </entry>
-               <entry value="140" name="MAV_COMP_ID_SERVO1">
-                    <description/>
-               </entry>
-               <entry value="141" name="MAV_COMP_ID_SERVO2">
-                    <description/>
-               </entry>
-               <entry value="142" name="MAV_COMP_ID_SERVO3">
-                    <description/>
-               </entry>
-               <entry value="143" name="MAV_COMP_ID_SERVO4">
-                    <description/>
-               </entry>
-               <entry value="144" name="MAV_COMP_ID_SERVO5">
-                    <description/>
-               </entry>
-               <entry value="145" name="MAV_COMP_ID_SERVO6">
-                    <description/>
-               </entry>
-               <entry value="146" name="MAV_COMP_ID_SERVO7">
-                    <description/>
-               </entry>
-               <entry value="147" name="MAV_COMP_ID_SERVO8">
-                    <description/>
-               </entry>
-               <entry value="148" name="MAV_COMP_ID_SERVO9">
-                    <description/>
-               </entry>
-               <entry value="149" name="MAV_COMP_ID_SERVO10">
-                    <description/>
-               </entry>
-               <entry value="150" name="MAV_COMP_ID_SERVO11">
-                    <description/>
-               </entry>
-               <entry value="151" name="MAV_COMP_ID_SERVO12">
-                    <description/>
-               </entry>
-               <entry value="152" name="MAV_COMP_ID_SERVO13">
-                    <description/>
-               </entry>
-               <entry value="153" name="MAV_COMP_ID_SERVO14">
-                    <description/>
-               </entry>
-          </enum>
-          <enum name="MAV_FRAME">
-               <entry value="0" name="MAV_FRAME_GLOBAL">
-                    <description>Global coordinate frame, WGS84 coordinate system. First value / x: latitude, second value / y: longitude, third value / z: positive altitude over mean sea level (MSL)</description>
-               </entry>
-               <entry value="1" name="MAV_FRAME_LOCAL_NED">
-                    <description>Local coordinate frame, Z-up (x: north, y: east, z: down).</description>
-               </entry>
-               <entry value="2" name="MAV_FRAME_MISSION">
-                    <description>NOT a coordinate frame, indicates a mission command.</description>
-               </entry>
-               <entry value="3" name="MAV_FRAME_GLOBAL_RELATIVE_ALT">
-                    <description>Global coordinate frame, WGS84 coordinate system, relative altitude over ground with respect to the home position. First value / x: latitude, second value / y: longitude, third value / z: positive altitude with 0 being at the altitude of the home location.</description>
-               </entry>
-               <entry value="4" name="MAV_FRAME_LOCAL_ENU">
-                    <description>Local coordinate frame, Z-down (x: east, y: north, z: up)</description>
-               </entry>
-          </enum>
-          <enum name="MAVLINK_DATA_STREAM_TYPE">
-               <entry name="MAVLINK_DATA_STREAM_IMG_JPEG">
-                    <description/>
-               </entry>
-               <entry name="MAVLINK_DATA_STREAM_IMG_BMP">
-                    <description/>
-               </entry>
-               <entry name="MAVLINK_DATA_STREAM_IMG_RAW8U">
-                    <description/>
-               </entry>
-               <entry name="MAVLINK_DATA_STREAM_IMG_RAW32U">
-                    <description/>
-               </entry>
-               <entry name="MAVLINK_DATA_STREAM_IMG_PGM">
-                    <description/>
-               </entry>
-               <entry name="MAVLINK_DATA_STREAM_IMG_PNG">
-                    <description/>
-               </entry>
-          </enum>
-          <enum name="MAV_CMD">
-               <description>Commands to be executed by the MAV. They can be executed on user request,
-      or as part of a mission script. If the action is used in a mission, the parameter mapping
-      to the waypoint/mission message is as follows:
-      Param 1, Param 2, Param 3, Param 4, X: Param 5, Y:Param 6, Z:Param 7. This command list is similar what
-      ARINC 424 is for commercial aircraft: A data format how to interpret waypoint/mission data.</description>
-               <entry value="16" name="MAV_CMD_NAV_WAYPOINT">
-                    <description>Navigate to MISSION.</description>
-                    <param index="1">Hold time in decimal seconds. (ignored by fixed wing, time to stay at MISSION for rotary wing)</param>
-                    <param index="2">Acceptance radius in meters (if the sphere with this radius is hit, the MISSION counts as reached)</param>
-                    <param index="3">0 to pass through the WP, if > 0 radius in meters to pass by WP. Positive value for clockwise orbit, negative value for counter-clockwise orbit. Allows trajectory control.</param>
-                    <param index="4">Desired yaw angle at MISSION (rotary wing)</param>
-                    <param index="5">Latitude</param>
-                    <param index="6">Longitude</param>
-                    <param index="7">Altitude</param>
-               </entry>
-               <entry value="17" name="MAV_CMD_NAV_LOITER_UNLIM">
-                    <description>Loiter around this MISSION an unlimited amount of time</description>
-                    <param index="1">Empty</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise</param>
-                    <param index="4">Desired yaw angle.</param>
-                    <param index="5">Latitude</param>
-                    <param index="6">Longitude</param>
-                    <param index="7">Altitude</param>
-               </entry>
-               <entry value="18" name="MAV_CMD_NAV_LOITER_TURNS">
-                    <description>Loiter around this MISSION for X turns</description>
-                    <param index="1">Turns</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise</param>
-                    <param index="4">Desired yaw angle.</param>
-                    <param index="5">Latitude</param>
-                    <param index="6">Longitude</param>
-                    <param index="7">Altitude</param>
-               </entry>
-               <entry value="19" name="MAV_CMD_NAV_LOITER_TIME">
-                    <description>Loiter around this MISSION for X seconds</description>
-                    <param index="1">Seconds (decimal)</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise</param>
-                    <param index="4">Desired yaw angle.</param>
-                    <param index="5">Latitude</param>
-                    <param index="6">Longitude</param>
-                    <param index="7">Altitude</param>
-               </entry>
-               <entry value="20" name="MAV_CMD_NAV_RETURN_TO_LAUNCH">
-                    <description>Return to launch location</description>
-                    <param index="1">Empty</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="21" name="MAV_CMD_NAV_LAND">
-                    <description>Land at location</description>
-                    <param index="1">Empty</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Desired yaw angle.</param>
-                    <param index="5">Latitude</param>
-                    <param index="6">Longitude</param>
-                    <param index="7">Altitude</param>
-               </entry>
-               <entry value="22" name="MAV_CMD_NAV_TAKEOFF">
-                    <description>Takeoff from ground / hand</description>
-                    <param index="1">Minimum pitch (if airspeed sensor present), desired pitch without sensor</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Yaw angle (if magnetometer present), ignored without magnetometer</param>
-                    <param index="5">Latitude</param>
-                    <param index="6">Longitude</param>
-                    <param index="7">Altitude</param>
-               </entry>
-               <entry value="80" name="MAV_CMD_NAV_ROI">
-                    <description>Sets the region of interest (ROI) for a sensor set or the
-            vehicle itself. This can then be used by the vehicles control
-            system to control the vehicle attitude and the attitude of various
-            sensors such as cameras.</description>
-                    <param index="1">Region of intereset mode. (see MAV_ROI enum)</param>
-                    <param index="2">MISSION index/ target ID. (see MAV_ROI enum)</param>
-                    <param index="3">ROI index (allows a vehicle to manage multiple ROI's)</param>
-                    <param index="4">Empty</param>
-                    <param index="5">x the location of the fixed ROI (see MAV_FRAME)</param>
-                    <param index="6">y</param>
-                    <param index="7">z</param>
-               </entry>
-               <entry value="81" name="MAV_CMD_NAV_PATHPLANNING">
-                    <description>Control autonomous path planning on the MAV.</description>
-                    <param index="1">0: Disable local obstacle avoidance / local path planning (without resetting map), 1: Enable local path planning, 2: Enable and reset local path planning</param>
-                    <param index="2">0: Disable full path planning (without resetting map), 1: Enable, 2: Enable and reset map/occupancy grid, 3: Enable and reset planned route, but not occupancy grid</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Yaw angle at goal, in compass degrees, [0..360]</param>
-                    <param index="5">Latitude/X of goal</param>
-                    <param index="6">Longitude/Y of goal</param>
-                    <param index="7">Altitude/Z of goal</param>
-               </entry>
-               <entry value="95" name="MAV_CMD_NAV_LAST">
-                    <description>NOP - This command is only used to mark the upper limit of the NAV/ACTION commands in the enumeration</description>
-                    <param index="1">Empty</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="112" name="MAV_CMD_CONDITION_DELAY">
-                    <description>Delay mission state machine.</description>
-                    <param index="1">Delay in seconds (decimal)</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="113" name="MAV_CMD_CONDITION_CHANGE_ALT">
-                    <description>Ascend/descend at rate.  Delay mission state machine until desired altitude reached.</description>
-                    <param index="1">Descent / Ascend rate (m/s)</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Finish Altitude</param>
-               </entry>
-               <entry value="114" name="MAV_CMD_CONDITION_DISTANCE">
-                    <description>Delay mission state machine until within desired distance of next NAV point.</description>
-                    <param index="1">Distance (meters)</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="115" name="MAV_CMD_CONDITION_YAW">
-                    <description>Reach a certain target angle.</description>
-                    <param index="1">target angle: [0-360], 0 is north</param>
-                    <param index="2">speed during yaw change:[deg per second]</param>
-                    <param index="3">direction: negative: counter clockwise, positive: clockwise [-1,1]</param>
-                    <param index="4">relative offset or absolute angle: [ 1,0]</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="159" name="MAV_CMD_CONDITION_LAST">
-                    <description>NOP - This command is only used to mark the upper limit of the CONDITION commands in the enumeration</description>
-                    <param index="1">Empty</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="176" name="MAV_CMD_DO_SET_MODE">
-                    <description>Set system mode.</description>
-                    <param index="1">Mode, as defined by ENUM MAV_MODE</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="177" name="MAV_CMD_DO_JUMP">
-                    <description>Jump to the desired command in the mission list.  Repeat this action only the specified number of times</description>
-                    <param index="1">Sequence number</param>
-                    <param index="2">Repeat count</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="178" name="MAV_CMD_DO_CHANGE_SPEED">
-                    <description>Change speed and/or throttle set points.</description>
-                    <param index="1">Speed type (0=Airspeed, 1=Ground Speed)</param>
-                    <param index="2">Speed  (m/s, -1 indicates no change)</param>
-                    <param index="3">Throttle  ( Percent, -1 indicates no change)</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="179" name="MAV_CMD_DO_SET_HOME">
-                    <description>Changes the home location either to the current location or a specified location.</description>
-                    <param index="1">Use current (1=use current location, 0=use specified location)</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Latitude</param>
-                    <param index="6">Longitude</param>
-                    <param index="7">Altitude</param>
-               </entry>
-               <entry value="180" name="MAV_CMD_DO_SET_PARAMETER">
-                    <description>Set a system parameter.  Caution!  Use of this command requires knowledge of the numeric enumeration value of the parameter.</description>
-                    <param index="1">Parameter number</param>
-                    <param index="2">Parameter value</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="181" name="MAV_CMD_DO_SET_RELAY">
-                    <description>Set a relay to a condition.</description>
-                    <param index="1">Relay number</param>
-                    <param index="2">Setting (1=on, 0=off, others possible depending on system hardware)</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="182" name="MAV_CMD_DO_REPEAT_RELAY">
-                    <description>Cycle a relay on and off for a desired number of cyles with a desired period.</description>
-                    <param index="1">Relay number</param>
-                    <param index="2">Cycle count</param>
-                    <param index="3">Cycle time (seconds, decimal)</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="183" name="MAV_CMD_DO_SET_SERVO">
-                    <description>Set a servo to a desired PWM value.</description>
-                    <param index="1">Servo number</param>
-                    <param index="2">PWM (microseconds, 1000 to 2000 typical)</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="184" name="MAV_CMD_DO_REPEAT_SERVO">
-                    <description>Cycle a between its nominal setting and a desired PWM for a desired number of cycles with a desired period.</description>
-                    <param index="1">Servo number</param>
-                    <param index="2">PWM (microseconds, 1000 to 2000 typical)</param>
-                    <param index="3">Cycle count</param>
-                    <param index="4">Cycle time (seconds)</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="200" name="MAV_CMD_DO_CONTROL_VIDEO">
-                    <description>Control onboard camera system.</description>
-                    <param index="1">Camera ID (-1 for all)</param>
-                    <param index="2">Transmission: 0: disabled, 1: enabled compressed, 2: enabled raw</param>
-                    <param index="3">Transmission mode: 0: video stream, >0: single images every n seconds (decimal)</param>
-                    <param index="4">Recording: 0: disabled, 1: enabled compressed, 2: enabled raw</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="240" name="MAV_CMD_DO_LAST">
-                    <description>NOP - This command is only used to mark the upper limit of the DO commands in the enumeration</description>
-                    <param index="1">Empty</param>
-                    <param index="2">Empty</param>
-                    <param index="3">Empty</param>
-                    <param index="4">Empty</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="241" name="MAV_CMD_PREFLIGHT_CALIBRATION">
-                    <description>Trigger calibration. This command will be only accepted if in pre-flight mode.</description>
-                    <param index="1">Gyro calibration: 0: no, 1: yes</param>
-                    <param index="2">Magnetometer calibration: 0: no, 1: yes</param>
-                    <param index="3">Ground pressure: 0: no, 1: yes</param>
-                    <param index="4">Radio calibration: 0: no, 1: yes</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="242" name="MAV_CMD_PREFLIGHT_SET_SENSOR_OFFSETS">
-                    <description>Set sensor offsets. This command will be only accepted if in pre-flight mode.</description>
-                    <param index="1">Sensor to adjust the offsets for: 0: gyros, 1: accelerometer, 2: magnetometer, 3: barometer, 4: optical flow</param>
-                    <param index="2">X axis offset (or generic dimension 1), in the sensor's raw units</param>
-                    <param index="3">Y axis offset (or generic dimension 2), in the sensor's raw units</param>
-                    <param index="4">Z axis offset (or generic dimension 3), in the sensor's raw units</param>
-                    <param index="5">Generic dimension 4, in the sensor's raw units</param>
-                    <param index="6">Generic dimension 5, in the sensor's raw units</param>
-                    <param index="7">Generic dimension 6, in the sensor's raw units</param>
-               </entry>
-               <entry value="245" name="MAV_CMD_PREFLIGHT_STORAGE">
-                    <description>Request storage of different parameter values and logs. This command will be only accepted if in pre-flight mode.</description>
-                    <param index="1">Parameter storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM</param>
-                    <param index="2">Mission storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM</param>
-                    <param index="3">Reserved</param>
-                    <param index="4">Reserved</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="246" name="MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN">
-                    <description>Request the reboot or shutdown of system components.</description>
-                    <param index="1">0: Do nothing for autopilot, 1: Reboot autopilot, 2: Shutdown autopilot.</param>
-                    <param index="2">0: Do nothing for onboard computer, 1: Reboot onboard computer, 2: Shutdown onboard computer.</param>
-                    <param index="3">Reserved</param>
-                    <param index="4">Reserved</param>
-                    <param index="5">Empty</param>
-                    <param index="6">Empty</param>
-                    <param index="7">Empty</param>
-               </entry>
-               <entry value="252" name="MAV_CMD_OVERRIDE_GOTO">
-                    <description>Hold / continue the current action</description>
-                    <param index="1">MAV_GOTO_DO_HOLD: hold MAV_GOTO_DO_CONTINUE: continue with next item in mission plan</param>
-                    <param index="2">MAV_GOTO_HOLD_AT_CURRENT_POSITION: Hold at current position MAV_GOTO_HOLD_AT_SPECIFIED_POSITION: hold at specified position</param>
-                    <param index="3">MAV_FRAME coordinate frame of hold point</param>
-                    <param index="4">Desired yaw angle in degrees</param>
-                    <param index="5">Latitude / X position</param>
-                    <param index="6">Longitude / Y position</param>
-                    <param index="7">Altitude / Z position</param>
-               </entry>
-               <entry value="300" name="MAV_CMD_MISSION_START">
-                    <description>start running a mission</description>
-                    <param index="1">first_item: the first mission item to run</param>
-                    <param index="2">last_item:  the last mission item to run (after this item is run, the mission ends)</param>
-               </entry>
-          </enum>
-          <enum name="MAV_DATA_STREAM">
-               <description>Data stream IDs. A data stream is not a fixed set of messages, but rather a
-     recommendation to the autopilot software. Individual autopilots may or may not obey
-     the recommended messages.
-     </description>
-               <entry value="0" name="MAV_DATA_STREAM_ALL">
-                    <description>Enable all data streams</description>
-               </entry>
-               <entry value="1" name="MAV_DATA_STREAM_RAW_SENSORS">
-                    <description>Enable IMU_RAW, GPS_RAW, GPS_STATUS packets.</description>
-               </entry>
-               <entry value="2" name="MAV_DATA_STREAM_EXTENDED_STATUS">
-                    <description>Enable GPS_STATUS, CONTROL_STATUS, AUX_STATUS</description>
-               </entry>
-               <entry value="3" name="MAV_DATA_STREAM_RC_CHANNELS">
-                    <description>Enable RC_CHANNELS_SCALED, RC_CHANNELS_RAW, SERVO_OUTPUT_RAW</description>
-               </entry>
-               <entry value="4" name="MAV_DATA_STREAM_RAW_CONTROLLER">
-                    <description>Enable ATTITUDE_CONTROLLER_OUTPUT, POSITION_CONTROLLER_OUTPUT, NAV_CONTROLLER_OUTPUT.</description>
-               </entry>
-               <entry value="6" name="MAV_DATA_STREAM_POSITION">
-                    <description>Enable LOCAL_POSITION, GLOBAL_POSITION/GLOBAL_POSITION_INT messages.</description>
-               </entry>
-               <entry value="10" name="MAV_DATA_STREAM_EXTRA1">
-                    <description>Dependent on the autopilot</description>
-               </entry>
-               <entry value="11" name="MAV_DATA_STREAM_EXTRA2">
-                    <description>Dependent on the autopilot</description>
-               </entry>
-               <entry value="12" name="MAV_DATA_STREAM_EXTRA3">
-                    <description>Dependent on the autopilot</description>
-               </entry>
-          </enum>
-          <enum name="MAV_ROI">
-               <description> The ROI (region of interest) for the vehicle. This can be
-                be used by the vehicle for camera/vehicle attitude alignment (see
-                MAV_CMD_NAV_ROI).
-            </description>
-               <entry value="0" name="MAV_ROI_NONE">
-                    <description>No region of interest.</description>
-               </entry>
-               <entry value="1" name="MAV_ROI_WPNEXT">
-                    <description>Point toward next MISSION.</description>
-               </entry>
-               <entry value="2" name="MAV_ROI_WPINDEX">
-                    <description>Point toward given MISSION.</description>
-               </entry>
-               <entry value="3" name="MAV_ROI_LOCATION">
-                    <description>Point toward fixed location.</description>
-               </entry>
-               <entry value="4" name="MAV_ROI_TARGET">
-                    <description>Point toward of given id.</description>
-               </entry>
-          </enum>
-          <enum name="MAV_CMD_ACK">
-               <description>ACK / NACK / ERROR values as a result of MAV_CMDs and for mission item transmission.</description>
-               <entry name="MAV_CMD_ACK_OK">
-                    <description>Command / mission item is ok.</description>
-               </entry>
-               <entry name="MAV_CMD_ACK_ERR_FAIL">
-                    <description>Generic error message if none of the other reasons fails or if no detailed error reporting is implemented.</description>
-               </entry>
-               <entry name="MAV_CMD_ACK_ERR_ACCESS_DENIED">
-                    <description>The system is refusing to accept this command from this source / communication partner.</description>
-               </entry>
-               <entry name="MAV_CMD_ACK_ERR_NOT_SUPPORTED">
-                    <description>Command or mission item is not supported, other commands would be accepted.</description>
-               </entry>
-               <entry name="MAV_CMD_ACK_ERR_COORDINATE_FRAME_NOT_SUPPORTED">
-                    <description>The coordinate frame of this command / mission item is not supported.</description>
-               </entry>
-               <entry name="MAV_CMD_ACK_ERR_COORDINATES_OUT_OF_RANGE">
-                    <description>The coordinate frame of this command is ok, but he coordinate values exceed the safety limits of this system. This is a generic error, please use the more specific error messages below if possible.</description>
-               </entry>
-               <entry name="MAV_CMD_ACK_ERR_X_LAT_OUT_OF_RANGE">
-                    <description>The X or latitude value is out of range.</description>
-               </entry>
-               <entry name="MAV_CMD_ACK_ERR_Y_LON_OUT_OF_RANGE">
-                    <description>The Y or longitude value is out of range.</description>
-               </entry>
-               <entry name="MAV_CMD_ACK_ERR_Z_ALT_OUT_OF_RANGE">
-                    <description>The Z or altitude value is out of range.</description>
-               </entry>
-          </enum>
-
-          <enum name="MAV_VAR">
-               <description>type of a mavlink parameter</description>
-               <entry value="0" name="MAV_VAR_FLOAT">
-                    <description>32 bit float</description>
-               </entry>
-               <entry value="1" name="MAV_VAR_UINT8">
-                    <description>8 bit unsigned integer</description>
-               </entry>
-               <entry value="2" name="MAV_VAR_INT8">
-                    <description>8 bit signed integer</description>
-               </entry>
-               <entry value="3" name="MAV_VAR_UINT16">
-                    <description>16 bit unsigned integer</description>
-               </entry>
-               <entry value="4" name="MAV_VAR_INT16">
-                    <description>16 bit signed integer</description>
-               </entry>
-               <entry value="5" name="MAV_VAR_UINT32">
-                    <description>32 bit unsigned integer</description>
-               </entry>
-               <entry value="6" name="MAV_VAR_INT32">
-                    <description>32 bit signed integer</description>
-               </entry>
-	  </enum>
-
-          <enum name="MAV_RESULT">
-               <description>result from a mavlink command</description>
-               <entry value="0" name="MAV_RESULT_ACCEPTED">
-                    <description>Command ACCEPTED and EXECUTED</description>
-               </entry>
-               <entry value="1" name="MAV_RESULT_TEMPORARILY_REJECTED">
-                    <description>Command TEMPORARY REJECTED/DENIED</description>
-               </entry>
-               <entry value="2" name="MAV_RESULT_DENIED">
-                    <description>Command PERMANENTLY DENIED</description>
-               </entry>
-               <entry value="3" name="MAV_RESULT_UNSUPPORTED">
-                    <description>Command UNKNOWN/UNSUPPORTED</description>
-               </entry>
-               <entry value="4" name="MAV_RESULT_FAILED">
-                    <description>Command executed, but failed</description>
-               </entry>
-	  </enum>
-
-          <enum name="MAV_MISSION_RESULT">
-               <description>result in a mavlink mission ack</description>
-               <entry value="0" name="MAV_MISSION_ACCEPTED">
-                    <description>mission accepted OK</description>
-               </entry>
-               <entry value="1" name="MAV_MISSION_ERROR">
-                    <description>generic error / not accepting mission commands at all right now</description>
-               </entry>
-               <entry value="2" name="MAV_MISSION_UNSUPPORTED_FRAME">
-                    <description>coordinate frame is not supported</description>
-               </entry>
-               <entry value="3" name="MAV_MISSION_UNSUPPORTED">
-                    <description>command is not supported</description>
-               </entry>
-               <entry value="4" name="MAV_MISSION_NO_SPACE">
-                    <description>mission item exceeds storage space</description>
-               </entry>
-               <entry value="5" name="MAV_MISSION_INVALID">
-                    <description>one of the parameters has an invalid value</description>
-               </entry>
-               <entry value="6" name="MAV_MISSION_INVALID_PARAM1">
-                    <description>param1 has an invalid value</description>
-               </entry>
-               <entry value="7" name="MAV_MISSION_INVALID_PARAM2">
-                    <description>param2 has an invalid value</description>
-               </entry>
-               <entry value="8" name="MAV_MISSION_INVALID_PARAM3">
-                    <description>param3 has an invalid value</description>
-               </entry>
-               <entry value="9" name="MAV_MISSION_INVALID_PARAM4">
-                    <description>param4 has an invalid value</description>
-               </entry>
-               <entry value="10" name="MAV_MISSION_INVALID_PARAM5_X">
-                    <description>x/param5 has an invalid value</description>
-               </entry>
-               <entry value="11" name="MAV_MISSION_INVALID_PARAM6_Y">
-                    <description>y/param6 has an invalid value</description>
-               </entry>
-               <entry value="12" name="MAV_MISSION_INVALID_PARAM7">
-                    <description>param7 has an invalid value</description>
-               </entry>
-               <entry value="13" name="MAV_MISSION_INVALID_SEQUENCE">
-                    <description>received waypoint out of sequence</description>
-               </entry>
-               <entry value="14" name="MAV_MISSION_DENIED">
-                    <description>not accepting any mission commands from this communication partner</description>
-               </entry>
-	  </enum>
-
-     </enums>
-     <messages>
-          <message id="0" name="HEARTBEAT">
-               <description>The heartbeat message shows that a system is present and responding. The type of the MAV and Autopilot hardware allow the receiving system to treat further messages from this system appropriate (e.g. by laying out the user interface based on the autopilot).</description>
-               <field type="uint8_t" name="type">Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM)</field>
-               <field type="uint8_t" name="autopilot">Autopilot type / class. defined in MAV_CLASS ENUM</field>
-               <field type="uint8_t" name="base_mode">System mode bitfield, see MAV_MODE_FLAGS ENUM in mavlink/include/mavlink_types.h</field>
-               <field type="uint32_t" name="custom_mode">Navigation mode bitfield, see MAV_AUTOPILOT_CUSTOM_MODE ENUM for some examples. This field is autopilot-specific.</field>
-               <field type="uint8_t" name="system_status">System status flag, see MAV_STATUS ENUM</field>
-               <field type="uint8_t_mavlink_version" name="mavlink_version">MAVLink version</field>
-          </message>
-          <message id="1" name="SYS_STATUS">
-               <description>The general system state. If the system is following the MAVLink standard, the system state is mainly defined by three orthogonal states/modes: The system mode, which is either LOCKED (motors shut down and locked), MANUAL (system under RC control), GUIDED (system with autonomous position control, position setpoint controlled manually) or AUTO (system guided by path/waypoint planner). The NAV_MODE defined the current flight state: LIFTOFF (often an open-loop maneuver), LANDING, WAYPOINTS or VECTOR. This represents the internal navigation state machine. The system status shows wether the system is currently active or not and if an emergency occured. During the CRITICAL and EMERGENCY states the MAV is still considered to be active, but should start emergency procedures autonomously. After a failure occured it should first move from active to critical to allow manual intervention and then move to emergency after a certain timeout.</description>
-               <field type="uint32_t" name="onboard_control_sensors_present" print_format="0x%04x">Bitmask showing which onboard controllers and sensors are present. Value of 0: not present. Value of 1: present. Indices: 0: 3D gyro, 1: 3D acc, 2: 3D mag, 3: absolute pressure, 4: differential pressure, 5: GPS, 6: optical flow, 7: computer vision position, 8: laser based position, 9: external ground-truth (Vicon or Leica). Controllers: 10: 3D angular rate control 11: attitude stabilization, 12: yaw position, 13: z/altitude control, 14: x/y position control, 15: motor outputs / control</field>
-               <field type="uint32_t" name="onboard_control_sensors_enabled" print_format="0x%04x">Bitmask showing which onboard controllers and sensors are enabled:  Value of 0: not enabled. Value of 1: enabled. Indices: 0: 3D gyro, 1: 3D acc, 2: 3D mag, 3: absolute pressure, 4: differential pressure, 5: GPS, 6: optical flow, 7: computer vision position, 8: laser based position, 9: external ground-truth (Vicon or Leica). Controllers: 10: 3D angular rate control 11: attitude stabilization, 12: yaw position, 13: z/altitude control, 14: x/y position control, 15: motor outputs / control</field>
-               <field type="uint32_t" name="onboard_control_sensors_health" print_format="0x%04x">Bitmask showing which onboard controllers and sensors are operational or have an error:  Value of 0: not enabled. Value of 1: enabled. Indices: 0: 3D gyro, 1: 3D acc, 2: 3D mag, 3: absolute pressure, 4: differential pressure, 5: GPS, 6: optical flow, 7: computer vision position, 8: laser based position, 9: external ground-truth (Vicon or Leica). Controllers: 10: 3D angular rate control 11: attitude stabilization, 12: yaw position, 13: z/altitude control, 14: x/y position control, 15: motor outputs / control</field>
-               <field type="uint16_t" name="load">Maximum usage in percent of the mainloop time, (0%: 0, 100%: 1000) should be always below 1000</field>
-               <field type="uint16_t" name="voltage_battery">Battery voltage, in millivolts (1 = 1 millivolt)</field>
-               <field type="int16_t" name="current_battery">Battery current, in 10*milliamperes (1 = 10 milliampere), -1: autopilot does not measure the current</field>
-               <field type="int8_t" name="battery_remaining">Remaining battery energy: (0%: 0, 100%: 100), -1: autopilot estimate the remaining battery</field>
-               <field type="uint16_t" name="drop_rate_comm">Communication drops in percent, (0%: 0, 100%: 10'000), (UART, I2C, SPI, CAN), dropped packets on all links (packets that were corrupted on reception on the MAV)</field>
-               <field type="uint16_t" name="errors_comm">Communication errors (UART, I2C, SPI, CAN), dropped packets on all links (packets that were corrupted on reception on the MAV)</field>
-               <field type="uint16_t" name="errors_count1">Autopilot-specific errors</field>
-               <field type="uint16_t" name="errors_count2">Autopilot-specific errors</field>
-               <field type="uint16_t" name="errors_count3">Autopilot-specific errors</field>
-               <field type="uint16_t" name="errors_count4">Autopilot-specific errors</field>
-          </message>
-
-          <message id="2" name="SYSTEM_TIME">
-               <description>The system time is the time of the master clock, typically the computer clock of the main onboard computer.</description>
-               <field type="uint64_t" name="time_unix_usec">Timestamp of the master clock in microseconds since UNIX epoch.</field>
-               <field type="uint32_t" name="time_boot_ms">Timestamp of the component clock since boot time in milliseconds.</field>
-          </message>
-          <!-- FIXME to be removed / merged with SYSTEM_TIME -->
-          <message id="4" name="PING">
-               <description>A ping message either requesting or responding to a ping. This allows to measure the system latencies, including serial port, radio modem and UDP connections.</description>
-               <field type="uint64_t" name="time_usec">Unix timestamp in microseconds</field>
-               <field type="uint32_t" name="seq">PING sequence</field>
-               <field type="uint8_t" name="target_system">0: request ping from all receiving systems, if greater than 0: message is a ping response and number is the system id of the requesting system</field>
-               <field type="uint8_t" name="target_component">0: request ping from all receiving components, if greater than 0: message is a ping response and number is the system id of the requesting system</field>
-          </message>
-          <message id="5" name="CHANGE_OPERATOR_CONTROL">
-               <description>Request to control this MAV</description>
-               <field type="uint8_t" name="target_system">System the GCS requests control for</field>
-               <field type="uint8_t" name="control_request">0: request control of this MAV, 1: Release control of this MAV</field>
-               <field type="uint8_t" name="version">0: key as plaintext, 1-255: future, different hashing/encryption variants. The GCS should in general use the safest mode possible initially and then gradually move down the encryption level if it gets a NACK message indicating an encryption mismatch.</field>
-               <field type="char[25]" name="passkey">Password / Key, depending on version plaintext or encrypted. 25 or less characters, NULL terminated. The characters may involve A-Z, a-z, 0-9, and "!?,.-"</field>
-          </message>
-          <message id="6" name="CHANGE_OPERATOR_CONTROL_ACK">
-               <description>Accept / deny control of this MAV</description>
-               <field type="uint8_t" name="gcs_system_id">ID of the GCS this message </field>
-               <field type="uint8_t" name="control_request">0: request control of this MAV, 1: Release control of this MAV</field>
-               <field type="uint8_t" name="ack">0: ACK, 1: NACK: Wrong passkey, 2: NACK: Unsupported passkey encryption method, 3: NACK: Already under control</field>
-          </message>
-          <message id="7" name="AUTH_KEY">
-               <description>Emit an encrypted signature / key identifying this system. PLEASE NOTE: This protocol has been kept simple, so transmitting the key requires an encrypted channel for true safety.</description>
-               <field type="char[32]" name="key">key</field>
-          </message>
-          <message id="11" name="SET_MODE">
-               <description>Set the system mode, as defined by enum MAV_MODE. There is no target component id as the mode is by definition for the overall aircraft, not only for one component.</description>
-               <field type="uint8_t" name="target_system">The system setting the mode</field>
-               <field type="uint8_t" name="base_mode">The new base mode</field>
-               <field type="uint32_t" name="custom_mode">The new autopilot-specific mode. This field can be ignored by an autopilot.</field>
-          </message>
-          <message id="20" name="PARAM_REQUEST_READ">
-               <description>Request to read the onboard parameter with the param_id string id. Onboard parameters are stored as key[const char*] -> value[float]. This allows to send a parameter to any other component (such as the GCS) without the need of previous knowledge of possible parameter names. Thus the same GCS can store different parameters for different autopilots. See also http://qgroundcontrol.org/parameter_interface for a full documentation of QGroundControl and IMU code.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="char[16]" name="param_id">Onboard parameter id</field>
-               <field type="int16_t" name="param_index">Parameter index. Send -1 to use the param ID field as identifier</field>
-          </message>
-          <message id="21" name="PARAM_REQUEST_LIST">
-               <description>Request all parameters of this component. After his request, all parameters are emitted.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-          </message>
-          <message id="22" name="PARAM_VALUE">
-               <description>Emit the value of a onboard parameter. The inclusion of param_count and param_index in the message allows the recipient to keep track of received parameters and allows him to re-request missing parameters after a loss or timeout.</description>
-               <field type="char[16]" name="param_id">Onboard parameter id</field>
-               <field type="float" name="param_value">Onboard parameter value</field>
-               <field type="uint8_t" name="param_type">Onboard parameter type: see MAV_VAR enum</field>
-               <field type="uint16_t" name="param_count">Total number of onboard parameters</field>
-               <field type="uint16_t" name="param_index">Index of this onboard parameter</field>
-          </message>
-          <message id="23" name="PARAM_SET">
-               <description>Set a parameter value TEMPORARILY to RAM. It will be reset to default on system reboot. Send the ACTION MAV_ACTION_STORAGE_WRITE to PERMANENTLY write the RAM contents to EEPROM. IMPORTANT: The receiving component should acknowledge the new parameter value by sending a param_value message to all communication partners. This will also ensure that multiple GCS all have an up-to-date list of all parameters. If the sending GCS did not receive a PARAM_VALUE message within its timeout time, it should re-send the PARAM_SET message.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="char[16]" name="param_id">Onboard parameter id</field>
-               <field type="float" name="param_value">Onboard parameter value</field>
-               <field type="uint8_t" name="param_type">Onboard parameter type: see MAV_VAR enum</field>
-          </message>
-          <message id="24" name="GPS_RAW_INT">
-               <description>The global position, as returned by the Global Positioning System (GPS). This is
-                NOT the global position estimate of the sytem, but rather a RAW sensor value. See message GLOBAL_POSITION for the global position estimate. Coordinate frame is right-handed, Z-axis up (GPS frame)
-            </description>
-               <field type="uint64_t" name="time_usec">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-               <field type="uint8_t" name="fix_type">0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix.</field>
-               <field type="int32_t" name="lat">Latitude in 1E7 degrees</field>
-               <field type="int32_t" name="lon">Longitude in 1E7 degrees</field>
-               <field type="int32_t" name="alt">Altitude in 1E3 meters (millimeters) above MSL</field>
-               <field type="uint16_t" name="eph">GPS HDOP horizontal dilution of position in cm (m*100). If unknown, set to: 65535</field>
-               <field type="uint16_t" name="epv">GPS VDOP horizontal dilution of position in cm (m*100). If unknown, set to: 65535</field>
-               <field type="uint16_t" name="vel">GPS ground speed (m/s * 100). If unknown, set to: 65535</field>
-               <field type="uint16_t" name="cog">Course over ground (NOT heading, but direction of movement) in degrees * 100, 0.0..359.99 degrees. If unknown, set to: 65535</field>
-               <field type="uint8_t" name="satellites_visible">Number of satellites visible. If unknown, set to 255</field>
-          </message>
-          <message id="25" name="GPS_STATUS">
-               <description>The positioning status, as reported by GPS. This message is intended to display status information about each satellite visible to the receiver. See message GLOBAL_POSITION for the global position estimate. This message can contain information for up to 20 satellites.</description>
-               <field type="uint8_t" name="satellites_visible">Number of satellites visible</field>
-               <field type="uint8_t[20]" name="satellite_prn">Global satellite ID</field>
-               <field type="uint8_t[20]" name="satellite_used">0: Satellite not used, 1: used for localization</field>
-               <field type="uint8_t[20]" name="satellite_elevation">Elevation (0: right on top of receiver, 90: on the horizon) of satellite</field>
-               <field type="uint8_t[20]" name="satellite_azimuth">Direction of satellite, 0: 0 deg, 255: 360 deg.</field>
-               <field type="uint8_t[20]" name="satellite_snr">Signal to noise ratio of satellite</field>
-          </message>
-          <message id="26" name="SCALED_IMU">
-               <description>The RAW IMU readings for the usual 9DOF sensor setup. This message should contain the scaled values to the described units</description>
-               <field type="uint32_t" name="time_boot_ms">Timestamp (milliseconds since system boot)</field>
-               <field type="int16_t" name="xacc">X acceleration (mg)</field>
-               <field type="int16_t" name="yacc">Y acceleration (mg)</field>
-               <field type="int16_t" name="zacc">Z acceleration (mg)</field>
-               <field type="int16_t" name="xgyro">Angular speed around X axis (millirad /sec)</field>
-               <field type="int16_t" name="ygyro">Angular speed around Y axis (millirad /sec)</field>
-               <field type="int16_t" name="zgyro">Angular speed around Z axis (millirad /sec)</field>
-               <field type="int16_t" name="xmag">X Magnetic field (milli tesla)</field>
-               <field type="int16_t" name="ymag">Y Magnetic field (milli tesla)</field>
-               <field type="int16_t" name="zmag">Z Magnetic field (milli tesla)</field>
-          </message>
-          <message id="27" name="RAW_IMU">
-               <description>The RAW IMU readings for the usual 9DOF sensor setup. This message should always contain the true raw values without any scaling to allow data capture and system debugging.</description>
-               <field type="uint64_t" name="time_usec">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-               <field type="int16_t" name="xacc">X acceleration (raw)</field>
-               <field type="int16_t" name="yacc">Y acceleration (raw)</field>
-               <field type="int16_t" name="zacc">Z acceleration (raw)</field>
-               <field type="int16_t" name="xgyro">Angular speed around X axis (raw)</field>
-               <field type="int16_t" name="ygyro">Angular speed around Y axis (raw)</field>
-               <field type="int16_t" name="zgyro">Angular speed around Z axis (raw)</field>
-               <field type="int16_t" name="xmag">X Magnetic field (raw)</field>
-               <field type="int16_t" name="ymag">Y Magnetic field (raw)</field>
-               <field type="int16_t" name="zmag">Z Magnetic field (raw)</field>
-          </message>
-          <message id="28" name="RAW_PRESSURE">
-               <description>The RAW pressure readings for the typical setup of one absolute pressure and one differential pressure sensor. The sensor values should be the raw, UNSCALED ADC values.</description>
-               <field type="uint64_t" name="time_usec">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-               <field type="int16_t" name="press_abs">Absolute pressure (raw)</field>
-               <field type="int16_t" name="press_diff1">Differential pressure 1 (raw)</field>
-               <field type="int16_t" name="press_diff2">Differential pressure 2 (raw)</field>
-               <field type="int16_t" name="temperature">Raw Temperature measurement (raw)</field>
-          </message>
-          <message id="29" name="SCALED_PRESSURE">
-               <description>The pressure readings for the typical setup of one absolute and differential pressure sensor. The units are as specified in each field.</description>
-               <field type="uint32_t" name="time_boot_ms">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-               <field type="float" name="press_abs">Absolute pressure (hectopascal)</field>
-               <field type="float" name="press_diff">Differential pressure 1 (hectopascal)</field>
-               <field type="int16_t" name="temperature">Temperature measurement (0.01 degrees celsius)</field>
-          </message>
-          <message id="30" name="ATTITUDE">
-               <description>The attitude in the aeronautical frame (right-handed, Z-down, X-front, Y-right).</description>
-               <field type="uint32_t" name="time_boot_ms">Timestamp (milliseconds since system boot)</field>
-               <field type="float" name="roll">Roll angle (rad)</field>
-               <field type="float" name="pitch">Pitch angle (rad)</field>
-               <field type="float" name="yaw">Yaw angle (rad)</field>
-               <field type="float" name="rollspeed">Roll angular speed (rad/s)</field>
-               <field type="float" name="pitchspeed">Pitch angular speed (rad/s)</field>
-               <field type="float" name="yawspeed">Yaw angular speed (rad/s)</field>
-          </message>
-          <message id="31" name="ATTITUDE_QUATERNION">
-               <description>The attitude in the aeronautical frame (right-handed, Z-down, X-front, Y-right), expressed as quaternion.</description>
-               <field type="uint32_t" name="time_boot_ms">Timestamp (milliseconds since system boot)</field>
-               <field type="float" name="q1">Quaternion component 1</field>
-               <field type="float" name="q2">Quaternion component 2</field>
-               <field type="float" name="q3">Quaternion component 3</field>
-               <field type="float" name="q4">Quaternion component 4</field>
-               <field type="float" name="rollspeed">Roll angular speed (rad/s)</field>
-               <field type="float" name="pitchspeed">Pitch angular speed (rad/s)</field>
-               <field type="float" name="yawspeed">Yaw angular speed (rad/s)</field>
-          </message>
-          <message id="32" name="LOCAL_POSITION_NED">
-               <description>The filtered local position (e.g. fused computer vision and accelerometers). Coordinate frame is right-handed, Z-axis down (aeronautical frame, NED / north-east-down convention)</description>
-               <field type="uint32_t" name="time_boot_ms">Timestamp (milliseconds since system boot)</field>
-               <field type="float" name="x">X Position</field>
-               <field type="float" name="y">Y Position</field>
-               <field type="float" name="z">Z Position</field>
-               <field type="float" name="vx">X Speed</field>
-               <field type="float" name="vy">Y Speed</field>
-               <field type="float" name="vz">Z Speed</field>
-          </message>
-          <message id="33" name="GLOBAL_POSITION_INT">
-               <description>The filtered global position (e.g. fused GPS and accelerometers). The position is in GPS-frame (right-handed, Z-up). It
-               is designed as scaled integer message since the resolution of float is not sufficient.</description>
-               <field type="uint32_t" name="time_boot_ms">Timestamp (milliseconds since system boot)</field>
-               <field type="int32_t" name="lat">Latitude, expressed as * 1E7</field>
-               <field type="int32_t" name="lon">Longitude, expressed as * 1E7</field>
-               <field type="int32_t" name="alt">Altitude in meters, expressed as * 1000 (millimeters), above MSL</field>
-               <field type="int32_t" name="relative_alt">Altitude above ground in meters, expressed as * 1000 (millimeters)</field>
-               <field type="int16_t" name="vx">Ground X Speed (Latitude), expressed as m/s * 100</field>
-               <field type="int16_t" name="vy">Ground Y Speed (Longitude), expressed as m/s * 100</field>
-               <field type="int16_t" name="vz">Ground Z Speed (Altitude), expressed as m/s * 100</field>
-               <field type="uint16_t" name="hdg">Compass heading in degrees * 100, 0.0..359.99 degrees. If unknown, set to: 65535</field>
-          </message>
-          <message id="34" name="RC_CHANNELS_SCALED">
-               <description>The scaled values of the RC channels received. (-100%) -10000, (0%) 0, (100%) 10000</description>
-               <field type="uint32_t" name="time_boot_ms">Timestamp (milliseconds since system boot)</field>
-               <field type="uint8_t" name="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.</field>
-               <field type="int16_t" name="chan1_scaled">RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000</field>
-               <field type="int16_t" name="chan2_scaled">RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000</field>
-               <field type="int16_t" name="chan3_scaled">RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000</field>
-               <field type="int16_t" name="chan4_scaled">RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000</field>
-               <field type="int16_t" name="chan5_scaled">RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000</field>
-               <field type="int16_t" name="chan6_scaled">RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000</field>
-               <field type="int16_t" name="chan7_scaled">RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000</field>
-               <field type="int16_t" name="chan8_scaled">RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000</field>
-               <field type="uint8_t" name="rssi">Receive signal strength indicator, 0: 0%, 255: 100%</field>
-          </message>
-          <message id="35" name="RC_CHANNELS_RAW">
-               <description>The RAW values of the RC channels received. The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%. Individual receivers/transmitters might violate this specification.</description>
-               <field type="uint32_t" name="time_boot_ms">Timestamp (milliseconds since system boot)</field>
-               <field type="uint8_t" name="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.</field>
-               <field type="uint16_t" name="chan1_raw">RC channel 1 value, in microseconds</field>
-               <field type="uint16_t" name="chan2_raw">RC channel 2 value, in microseconds</field>
-               <field type="uint16_t" name="chan3_raw">RC channel 3 value, in microseconds</field>
-               <field type="uint16_t" name="chan4_raw">RC channel 4 value, in microseconds</field>
-               <field type="uint16_t" name="chan5_raw">RC channel 5 value, in microseconds</field>
-               <field type="uint16_t" name="chan6_raw">RC channel 6 value, in microseconds</field>
-               <field type="uint16_t" name="chan7_raw">RC channel 7 value, in microseconds</field>
-               <field type="uint16_t" name="chan8_raw">RC channel 8 value, in microseconds</field>
-               <field type="uint8_t" name="rssi">Receive signal strength indicator, 0: 0%, 255: 100%</field>
-          </message>
-          <message id="36" name="SERVO_OUTPUT_RAW">
-               <description>The RAW values of the servo outputs (for RC input from the remote, use the RC_CHANNELS messages). The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%.</description>
-               <field type="uint32_t" name="time_usec">Timestamp (since UNIX epoch or microseconds since system boot)</field>
-               <field type="uint8_t" name="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.</field>
-               <field type="uint16_t" name="servo1_raw">Servo output 1 value, in microseconds</field>
-               <field type="uint16_t" name="servo2_raw">Servo output 2 value, in microseconds</field>
-               <field type="uint16_t" name="servo3_raw">Servo output 3 value, in microseconds</field>
-               <field type="uint16_t" name="servo4_raw">Servo output 4 value, in microseconds</field>
-               <field type="uint16_t" name="servo5_raw">Servo output 5 value, in microseconds</field>
-               <field type="uint16_t" name="servo6_raw">Servo output 6 value, in microseconds</field>
-               <field type="uint16_t" name="servo7_raw">Servo output 7 value, in microseconds</field>
-               <field type="uint16_t" name="servo8_raw">Servo output 8 value, in microseconds</field>
-          </message>
-          <message id="37" name="MISSION_REQUEST_PARTIAL_LIST">
-               <description>Request the overall list of MISSIONs from the system/component. http://qgroundcontrol.org/mavlink/waypoint_protocol</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="int16_t" name="start_index">Start index, 0 by default</field>
-               <field type="int16_t" name="end_index">End index, -1 by default (-1: send list to end). Else a valid index of the list</field>
-          </message>
-          <message id="38" name="MISSION_WRITE_PARTIAL_LIST">
-               <description>This message is sent to the MAV to write a partial list. If start index == end index, only one item will be transmitted / updated. If the start index is NOT 0 and above the current list size, this request should be REJECTED!</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="int16_t" name="start_index">Start index, 0 by default and smaller / equal to the largest index of the current onboard list.</field>
-               <field type="int16_t" name="end_index">End index, equal or greater than start index.</field>
-          </message>
-          <message id="39" name="MISSION_ITEM">
-               <description>Message encoding a mission item. This message is emitted to announce
-                the presence of a mission item and to set a mission item on the system. The mission item can be either in x, y, z meters (type: LOCAL) or x:lat, y:lon, z:altitude. Local frame is Z-down, right handed (NED), global frame is Z-up, right handed (ENU). http://qgroundcontrol.org/mavlink/waypoint_protocol
-            </description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint16_t" name="seq">Sequence</field>
-               <field type="uint8_t" name="frame">The coordinate system of the MISSION. see MAV_FRAME in mavlink_types.h</field>
-               <field type="uint16_t" name="command">The scheduled action for the MISSION. see MAV_CMD in common.xml MAVLink specs</field>
-               <field type="uint8_t" name="current">false:0, true:1</field>
-               <field type="uint8_t" name="autocontinue">autocontinue to next wp</field>
-               <field type="float" name="param1">PARAM1 / For NAV command MISSIONs: Radius in which the MISSION is accepted as reached, in meters</field>
-               <field type="float" name="param2">PARAM2 / For NAV command MISSIONs: Time that the MAV should stay inside the PARAM1 radius before advancing, in milliseconds</field>
-               <field type="float" name="param3">PARAM3 / For LOITER command MISSIONs: Orbit to circle around the MISSION, in meters. If positive the orbit direction should be clockwise, if negative the orbit direction should be counter-clockwise.</field>
-               <field type="float" name="param4">PARAM4 / For NAV and LOITER command MISSIONs: Yaw orientation in degrees, [0..360] 0 = NORTH</field>
-               <field type="float" name="x">PARAM5 / local: x position, global: latitude</field>
-               <field type="float" name="y">PARAM6 / y position: global: longitude</field>
-               <field type="float" name="z">PARAM7 / z position: global: altitude</field>
-          </message>
-          <message id="40" name="MISSION_REQUEST">
-               <description>Request the information of the mission item with the sequence number seq. The response of the system to this message should be a MISSION_ITEM message. http://qgroundcontrol.org/mavlink/waypoint_protocol</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint16_t" name="seq">Sequence</field>
-          </message>
-          <message id="41" name="MISSION_SET_CURRENT">
-               <description>Set the mission item with sequence number seq as current item. This means that the MAV will continue to this mission item on the shortest path (not following the mission items in-between).</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint16_t" name="seq">Sequence</field>
-          </message>
-          <message id="42" name="MISSION_CURRENT">
-               <description>Message that announces the sequence number of the current active mission item. The MAV will fly towards this mission item.</description>
-               <field type="uint16_t" name="seq">Sequence</field>
-          </message>
-          <message id="43" name="MISSION_REQUEST_LIST">
-               <description>Request the overall list of mission items from the system/component.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-          </message>
-          <message id="44" name="MISSION_COUNT">
-               <description>This message is emitted as response to MISSION_REQUEST_LIST by the MAV and to initiate a write transaction. The GCS can then request the individual mission item based on the knowledge of the total number of MISSIONs.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint16_t" name="count">Number of mission items in the sequence</field>
-          </message>
-          <message id="45" name="MISSION_CLEAR_ALL">
-               <description>Delete all mission items at once.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-          </message>
-          <message id="46" name="MISSION_ITEM_REACHED">
-               <description>A certain mission item has been reached. The system will either hold this position (or circle on the orbit) or (if the autocontinue on the WP was set) continue to the next MISSION.</description>
-               <field type="uint16_t" name="seq">Sequence</field>
-          </message>
-          <message id="47" name="MISSION_ACK">
-               <description>Ack message during MISSION handling. The type field states if this message is a positive ack (type=0) or if an error happened (type=non-zero).</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint8_t" name="type">See MAV_MISSION_RESULT enum</field>
-          </message>
-          <message id="48" name="SET_GPS_GLOBAL_ORIGIN">
-               <description>As local MISSIONs exist, the global MISSION reference allows to transform between the local coordinate frame and the global (GPS) coordinate frame. This can be necessary when e.g. in- and outdoor settings are connected and the MAV should move from in- to outdoor.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="int32_t" name="latitude">global position * 1E7</field>
-               <field type="int32_t" name="longitude">global position * 1E7</field>
-               <field type="int32_t" name="altitude">global position * 1000</field>
-          </message>
-          <message id="49" name="GPS_GLOBAL_ORIGIN">
-               <description>Once the MAV sets a new GPS-Local correspondence, this message announces the origin (0,0,0) position</description>
-               <field type="int32_t" name="latitude">Latitude (WGS84), expressed as * 1E7</field>
-               <field type="int32_t" name="longitude">Longitude (WGS84), expressed as * 1E7</field>
-               <field type="int32_t" name="altitude">Altitude(WGS84), expressed as * 1000</field>
-          </message>
-          <message id="50" name="SET_LOCAL_POSITION_SETPOINT">
-               <description>Set the setpoint for a local position controller. This is the position in local coordinates the MAV should fly to. This message is sent by the path/MISSION planner to the onboard position controller. As some MAVs have a degree of freedom in yaw (e.g. all helicopters/quadrotors), the desired yaw angle is part of the message.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint8_t" name="coordinate_frame">Coordinate frame - valid values are only MAV_FRAME_LOCAL_NED or MAV_FRAME_LOCAL_ENU</field>
-               <field type="float" name="x">x position</field>
-               <field type="float" name="y">y position</field>
-               <field type="float" name="z">z position</field>
-               <field type="float" name="yaw">Desired yaw angle</field>
-          </message>
-          <message id="51" name="LOCAL_POSITION_SETPOINT">
-               <description>Transmit the current local setpoint of the controller to other MAVs (collision avoidance) and to the GCS.</description>
-               <field type="uint8_t" name="coordinate_frame">Coordinate frame - valid values are only MAV_FRAME_LOCAL_NED or MAV_FRAME_LOCAL_ENU</field>
-               <field type="float" name="x">x position</field>
-               <field type="float" name="y">y position</field>
-               <field type="float" name="z">z position</field>
-               <field type="float" name="yaw">Desired yaw angle</field>
-          </message>
-          <message id="52" name="GLOBAL_POSITION_SETPOINT_INT">
-               <description>Transmit the current local setpoint of the controller to other MAVs (collision avoidance) and to the GCS.</description>
-               <field type="uint8_t" name="coordinate_frame">Coordinate frame - valid values are only MAV_FRAME_GLOBAL or MAV_FRAME_GLOBAL_RELATIVE_ALT</field>
-               <field type="int32_t" name="latitude">WGS84 Latitude position in degrees * 1E7</field>
-               <field type="int32_t" name="longitude">WGS84 Longitude position in degrees * 1E7</field>
-               <field type="int32_t" name="altitude">WGS84 Altitude in meters * 1000 (positive for up)</field>
-               <field type="int16_t" name="yaw">Desired yaw angle in degrees * 100</field>
-          </message>
-          <message id="53" name="SET_GLOBAL_POSITION_SETPOINT_INT">
-               <description>Set the current global position setpoint.</description>
-               <field type="uint8_t" name="coordinate_frame">Coordinate frame - valid values are only MAV_FRAME_GLOBAL or MAV_FRAME_GLOBAL_RELATIVE_ALT</field>
-               <field type="int32_t" name="latitude">WGS84 Latitude position in degrees * 1E7</field>
-               <field type="int32_t" name="longitude">WGS84 Longitude position in degrees * 1E7</field>
-               <field type="int32_t" name="altitude">WGS84 Altitude in meters * 1000 (positive for up)</field>
-               <field type="int16_t" name="yaw">Desired yaw angle in degrees * 100</field>
-          </message>
-          <message id="54" name="SAFETY_SET_ALLOWED_AREA">
-               <description>Set a safety zone (volume), which is defined by two corners of a cube. This message can be used to tell the MAV which setpoints/MISSIONs to accept and which to reject. Safety areas are often enforced by national or competition regulations.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint8_t" name="frame">Coordinate frame, as defined by MAV_FRAME enum in mavlink_types.h. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down.</field>
-               <field type="float" name="p1x">x position 1 / Latitude 1</field>
-               <field type="float" name="p1y">y position 1 / Longitude 1</field>
-               <field type="float" name="p1z">z position 1 / Altitude 1</field>
-               <field type="float" name="p2x">x position 2 / Latitude 2</field>
-               <field type="float" name="p2y">y position 2 / Longitude 2</field>
-               <field type="float" name="p2z">z position 2 / Altitude 2</field>
-          </message>
-          <message id="55" name="SAFETY_ALLOWED_AREA">
-               <description>Read out the safety zone the MAV currently assumes.</description>
-               <field type="uint8_t" name="frame">Coordinate frame, as defined by MAV_FRAME enum in mavlink_types.h. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down.</field>
-               <field type="float" name="p1x">x position 1 / Latitude 1</field>
-               <field type="float" name="p1y">y position 1 / Longitude 1</field>
-               <field type="float" name="p1z">z position 1 / Altitude 1</field>
-               <field type="float" name="p2x">x position 2 / Latitude 2</field>
-               <field type="float" name="p2y">y position 2 / Longitude 2</field>
-               <field type="float" name="p2z">z position 2 / Altitude 2</field>
-          </message>
-          <message id="56" name="SET_ROLL_PITCH_YAW_THRUST">
-               <description>Set roll, pitch and yaw.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="float" name="roll">Desired roll angle in radians</field>
-               <field type="float" name="pitch">Desired pitch angle in radians</field>
-               <field type="float" name="yaw">Desired yaw angle in radians</field>
-               <field type="float" name="thrust">Collective thrust, normalized to 0 .. 1</field>
-          </message>
-          <message id="57" name="SET_ROLL_PITCH_YAW_SPEED_THRUST">
-               <description>Set roll, pitch and yaw.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="float" name="roll_speed">Desired roll angular speed in rad/s</field>
-               <field type="float" name="pitch_speed">Desired pitch angular speed in rad/s</field>
-               <field type="float" name="yaw_speed">Desired yaw angular speed in rad/s</field>
-               <field type="float" name="thrust">Collective thrust, normalized to 0 .. 1</field>
-          </message>
-          <message id="58" name="ROLL_PITCH_YAW_THRUST_SETPOINT">
-               <description>Setpoint in roll, pitch, yaw currently active on the system.</description>
-               <field type="uint32_t" name="time_boot_ms">Timestamp in milliseconds since system boot</field>
-               <field type="float" name="roll">Desired roll angle in radians</field>
-               <field type="float" name="pitch">Desired pitch angle in radians</field>
-               <field type="float" name="yaw">Desired yaw angle in radians</field>
-               <field type="float" name="thrust">Collective thrust, normalized to 0 .. 1</field>
-          </message>
-          <message id="59" name="ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT">
-               <description>Setpoint in rollspeed, pitchspeed, yawspeed currently active on the system.</description>
-               <field type="uint32_t" name="time_boot_ms">Timestamp in milliseconds since system boot</field>
-               <field type="float" name="roll_speed">Desired roll angular speed in rad/s</field>
-               <field type="float" name="pitch_speed">Desired pitch angular speed in rad/s</field>
-               <field type="float" name="yaw_speed">Desired yaw angular speed in rad/s</field>
-               <field type="float" name="thrust">Collective thrust, normalized to 0 .. 1</field>
-          </message>
-          <message id="62" name="NAV_CONTROLLER_OUTPUT">
-               <description>Outputs of the APM navigation controller. The primary use of this message is to check the response and signs
-                of the controller before actual flight and to assist with tuning controller parameters
-            </description>
-               <field type="float" name="nav_roll">Current desired roll in degrees</field>
-               <field type="float" name="nav_pitch">Current desired pitch in degrees</field>
-               <field type="int16_t" name="nav_bearing">Current desired heading in degrees</field>
-               <field type="int16_t" name="target_bearing">Bearing to current MISSION/target in degrees</field>
-               <field type="uint16_t" name="wp_dist">Distance to active MISSION in meters</field>
-               <field type="float" name="alt_error">Current altitude error in meters</field>
-               <field type="float" name="aspd_error">Current airspeed error in meters/second</field>
-               <field type="float" name="xtrack_error">Current crosstrack error on x-y plane in meters</field>
-          </message>
-          <message id="64" name="STATE_CORRECTION">
-               <description>Corrects the systems state by adding an error correction term to the position and velocity, and by rotating the attitude by a correction angle.</description>
-               <field type="float" name="xErr">x position error</field>
-               <field type="float" name="yErr">y position error</field>
-               <field type="float" name="zErr">z position error</field>
-               <field type="float" name="rollErr">roll error (radians)</field>
-               <field type="float" name="pitchErr">pitch error (radians)</field>
-               <field type="float" name="yawErr">yaw error (radians)</field>
-               <field type="float" name="vxErr">x velocity</field>
-               <field type="float" name="vyErr">y velocity</field>
-               <field type="float" name="vzErr">z velocity</field>
-          </message>
-          <message id="66" name="REQUEST_DATA_STREAM">
-               <field type="uint8_t" name="target_system">The target requested to send the message stream.</field>
-               <field type="uint8_t" name="target_component">The target requested to send the message stream.</field>
-               <field type="uint8_t" name="req_stream_id">The ID of the requested data stream</field>
-               <field type="uint16_t" name="req_message_rate">The requested interval between two messages of this type</field>
-               <field type="uint8_t" name="start_stop">1 to start sending, 0 to stop sending.</field>
-          </message>
-          <message id="67" name="DATA_STREAM">
-               <field type="uint8_t" name="stream_id">The ID of the requested data stream</field>
-               <field type="uint16_t" name="message_rate">The requested interval between two messages of this type</field>
-               <field type="uint8_t" name="on_off">1 stream is enabled, 0 stream is stopped.</field>
-          </message>
-          <message id="69" name="MANUAL_CONTROL">
-               <field type="uint8_t" name="target">The system to be controlled</field>
-               <field type="float" name="roll">roll</field>
-               <field type="float" name="pitch">pitch</field>
-               <field type="float" name="yaw">yaw</field>
-               <field type="float" name="thrust">thrust</field>
-               <field type="uint8_t" name="roll_manual">roll control enabled auto:0, manual:1</field>
-               <field type="uint8_t" name="pitch_manual">pitch auto:0, manual:1</field>
-               <field type="uint8_t" name="yaw_manual">yaw auto:0, manual:1</field>
-               <field type="uint8_t" name="thrust_manual">thrust auto:0, manual:1</field>
-          </message>
-          <message id="70" name="RC_CHANNELS_OVERRIDE">
-               <description>The RAW values of the RC channels sent to the MAV to override info received from the RC radio. A value of -1 means no change to that channel. A value of 0 means control of that channel should be released back to the RC radio. The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%. Individual receivers/transmitters might violate this specification.</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint16_t" name="chan1_raw">RC channel 1 value, in microseconds</field>
-               <field type="uint16_t" name="chan2_raw">RC channel 2 value, in microseconds</field>
-               <field type="uint16_t" name="chan3_raw">RC channel 3 value, in microseconds</field>
-               <field type="uint16_t" name="chan4_raw">RC channel 4 value, in microseconds</field>
-               <field type="uint16_t" name="chan5_raw">RC channel 5 value, in microseconds</field>
-               <field type="uint16_t" name="chan6_raw">RC channel 6 value, in microseconds</field>
-               <field type="uint16_t" name="chan7_raw">RC channel 7 value, in microseconds</field>
-               <field type="uint16_t" name="chan8_raw">RC channel 8 value, in microseconds</field>
-          </message>
-          <message id="74" name="VFR_HUD">
-               <description>Metrics typically displayed on a HUD for fixed wing aircraft</description>
-               <field type="float" name="airspeed">Current airspeed in m/s</field>
-               <field type="float" name="groundspeed">Current ground speed in m/s</field>
-               <field type="int16_t" name="heading">Current heading in degrees, in compass units (0..360, 0=north)</field>
-               <field type="uint16_t" name="throttle">Current throttle setting in integer percent, 0 to 100</field>
-               <field type="float" name="alt">Current altitude (MSL), in meters</field>
-               <field type="float" name="climb">Current climb rate in meters/second</field>
-          </message>
-          <message id="76" name="COMMAND_LONG">
-               <description>Send a command with up to four parameters to the MAV</description>
-               <field type="uint8_t" name="target_system">System which should execute the command</field>
-               <field type="uint8_t" name="target_component">Component which should execute the command, 0 for all components</field>
-               <field type="uint16_t" name="command">Command ID, as defined by MAV_CMD enum.</field>
-               <field type="uint8_t" name="confirmation">0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)</field>
-               <field type="float" name="param1">Parameter 1, as defined by MAV_CMD enum.</field>
-               <field type="float" name="param2">Parameter 2, as defined by MAV_CMD enum.</field>
-               <field type="float" name="param3">Parameter 3, as defined by MAV_CMD enum.</field>
-               <field type="float" name="param4">Parameter 4, as defined by MAV_CMD enum.</field>
-               <field type="float" name="param5">Parameter 5, as defined by MAV_CMD enum.</field>
-               <field type="float" name="param6">Parameter 6, as defined by MAV_CMD enum.</field>
-               <field type="float" name="param7">Parameter 7, as defined by MAV_CMD enum.</field>
-          </message>
-          <message id="77" name="COMMAND_ACK">
-               <description>Report status of a command. Includes feedback wether the command was executed</description>
-               <field type="uint16_t" name="command">Command ID, as defined by MAV_CMD enum.</field>
-               <field type="uint8_t" name="result">See MAV_RESULT enum</field>
-          </message>
-
-          <!--
-          <message id="80" name="MISSION_ITEM">
-          	   <description>One mission element following the MAV_CMD enumeration</description>
-          	   <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint16_t" name="id">ID</field>
-               <field type="uint16_t" name="id">Total count (size of total mission)</field>
-               <field type="uint8_t" name="frame">The coordinate system of the MISSION. see MAV_FRAME in mavlink_types.h</field>
-               <field type="uint8_t" name="command">The scheduled action for the MISSION. see MAV_COMMAND in common.xml MAVLink specs</field>
-               <field type="uint8_t" name="current">false:0, true:1</field>
-               <field type="uint8_t" name="autocontinue">autocontinue to next wp</field>
-               <field type="float" name="param1">PARAM1 / For NAV command MISSIONs: Radius in which the MISSION is accepted as reached, in meters</field>
-               <field type="float" name="param2">PARAM2 / For NAV command MISSIONs: Time that the MAV should stay inside the PARAM1 radius before advancing, in milliseconds</field>
-               <field type="float" name="param3">PARAM3 / For LOITER command MISSIONs: Orbit to circle around the MISSION, in meters. If positive the orbit direction should be clockwise, if negative the orbit direction should be counter-clockwise.</field>
-               <field type="float" name="param4">PARAM4 / For NAV and LOITER command MISSIONs: Yaw orientation in degrees, [0..360] 0 = NORTH</field>
-               <field type="float" name="x">PARAM5 / local: x position, global: latitude</field>
-               <field type="float" name="y">PARAM6 / y position: global: longitude</field>
-               <field type="float" name="z">PARAM7 / z position: global: altitude</field>
-          </message>
-          <message id="81" name="MISSION_ACK">
-               <description>ACK / NACK for one mission element or a whole mission</description>
-          	   <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint8_t" name="mission_status"></field>
-               <field type="uint16_t" name="begin_item"></field>
-               <field type="uint16_t" name="end_item"></field>
-               <field type="uint8_t" name="packet_seq"></field>
-          </message>
-          <message id="82" name="MISSION_REQUEST">
-               <description>One mission element following the MAV_CMD enumeration</description>
-          	   <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="uint8_t" name="mission_command">Command id: 0: read whole mission, 1: read mission from begin to end, 2: write mission items from begin to end, 3: clear mission.</field>
-               <field type="uint16_t" name="begin_item"></field>
-               <field type="uint16_t" name="end_item"></field>
-          </message> -->
-                    <message id="90" name="HIL_STATE">
-            <description>Sent from simulation to autopilot. This packet is useful for high throughput
-                applications such as hardware in the loop simulations.
-            </description>
-            <field type="uint64_t" name="time_usec">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-            <field type="float" name="roll">Roll angle (rad)</field>
-            <field type="float" name="pitch">Pitch angle (rad)</field>
-            <field type="float" name="yaw">Yaw angle (rad)</field>
-            <field type="float" name="rollspeed">Roll angular speed (rad/s)</field>
-            <field type="float" name="pitchspeed">Pitch angular speed (rad/s)</field>
-            <field type="float" name="yawspeed">Yaw angular speed (rad/s)</field>
-            <field type="int32_t" name="lat">Latitude, expressed as * 1E7</field>
-            <field type="int32_t" name="lon">Longitude, expressed as * 1E7</field>
-            <field type="int32_t" name="alt">Altitude in meters, expressed as * 1000 (millimeters)</field>
-            <field type="int16_t" name="vx">Ground X Speed (Latitude), expressed as m/s * 100</field>
-            <field type="int16_t" name="vy">Ground Y Speed (Longitude), expressed as m/s * 100</field>
-            <field type="int16_t" name="vz">Ground Z Speed (Altitude), expressed as m/s * 100</field>
-            <field type="int16_t" name="xacc">X acceleration (mg)</field>
-            <field type="int16_t" name="yacc">Y acceleration (mg)</field>
-            <field type="int16_t" name="zacc">Z acceleration (mg)</field>
-        </message>
-        <message id="91" name="HIL_CONTROLS">
-            <description>Sent from autopilot to simulation. Hardware in the loop control outputs</description>
-            <field name="time_usec" type="uint64_t">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-            <field name="roll_ailerons" type="float">Control output -1 .. 1</field>
-            <field name="pitch_elevator" type="float">Control output -1 .. 1</field>
-            <field name="yaw_rudder" type="float">Control output -1 .. 1</field>
-            <field name="throttle" type="float">Throttle 0 .. 1</field>
-            <field name="aux1" type="float">Aux 1, -1 .. 1</field>
-            <field name="aux2" type="float">Aux 2, -1 .. 1</field>
-            <field name="aux3" type="float">Aux 3, -1 .. 1</field>
-            <field name="aux4" type="float">Aux 4, -1 .. 1</field>
-            <field name="mode" type="uint8_t">System mode (MAV_MODE)</field>
-            <field name="nav_mode" type="uint8_t">Navigation mode (MAV_NAV_MODE)</field>
-        </message>
-        <message id="92" name="HIL_RC_INPUTS_RAW">
-               <description>Sent from simulation to autopilot. The RAW values of the RC channels received. The standard PPM modulation is as follows: 1000 microseconds: 0%, 2000 microseconds: 100%. Individual receivers/transmitters might violate this specification.</description>
-               <field type="uint64_t" name="time_usec">Timestamp (microseconds since UNIX epoch or microseconds since system boot)</field>
-               <field type="uint16_t" name="chan1_raw">RC channel 1 value, in microseconds</field>
-               <field type="uint16_t" name="chan2_raw">RC channel 2 value, in microseconds</field>
-               <field type="uint16_t" name="chan3_raw">RC channel 3 value, in microseconds</field>
-               <field type="uint16_t" name="chan4_raw">RC channel 4 value, in microseconds</field>
-               <field type="uint16_t" name="chan5_raw">RC channel 5 value, in microseconds</field>
-               <field type="uint16_t" name="chan6_raw">RC channel 6 value, in microseconds</field>
-               <field type="uint16_t" name="chan7_raw">RC channel 7 value, in microseconds</field>
-               <field type="uint16_t" name="chan8_raw">RC channel 8 value, in microseconds</field>
-               <field type="uint16_t" name="chan9_raw">RC channel 9 value, in microseconds</field>
-               <field type="uint16_t" name="chan10_raw">RC channel 10 value, in microseconds</field>
-               <field type="uint16_t" name="chan11_raw">RC channel 11 value, in microseconds</field>
-               <field type="uint16_t" name="chan12_raw">RC channel 12 value, in microseconds</field>
-               <field type="uint8_t" name="rssi">Receive signal strength indicator, 0: 0%, 255: 100%</field>
-          </message>
-          <message id="100" name="OPTICAL_FLOW">
-               <description>Optical flow from a flow sensor (e.g. optical mouse sensor)</description>
-               <field type="uint64_t" name="time_usec">Timestamp (UNIX)</field>
-               <field type="uint8_t" name="sensor_id">Sensor ID</field>
-               <field type="int16_t" name="flow_x">Flow in pixels in x-sensor direction</field>
-               <field type="int16_t" name="flow_y">Flow in pixels in y-sensor direction</field>
-               <field type="uint8_t" name="quality">Optical flow quality / confidence. 0: bad, 255: maximum quality</field>
-               <field type="float" name="ground_distance">Ground distance in meters</field>
-          </message>
-          <message id="101" name="GLOBAL_VISION_POSITION_ESTIMATE">
-               <field type="uint64_t" name="usec">Timestamp (milliseconds)</field>
-               <field type="float" name="x">Global X position</field>
-               <field type="float" name="y">Global Y position</field>
-               <field type="float" name="z">Global Z position</field>
-               <field type="float" name="roll">Roll angle in rad</field>
-               <field type="float" name="pitch">Pitch angle in rad</field>
-               <field type="float" name="yaw">Yaw angle in rad</field>
-          </message>
-          <message id="102" name="VISION_POSITION_ESTIMATE">
-               <field type="uint64_t" name="usec">Timestamp (milliseconds)</field>
-               <field type="float" name="x">Global X position</field>
-               <field type="float" name="y">Global Y position</field>
-               <field type="float" name="z">Global Z position</field>
-               <field type="float" name="roll">Roll angle in rad</field>
-               <field type="float" name="pitch">Pitch angle in rad</field>
-               <field type="float" name="yaw">Yaw angle in rad</field>
-          </message>
-          <message id="103" name="VISION_SPEED_ESTIMATE">
-               <field type="uint64_t" name="usec">Timestamp (milliseconds)</field>
-               <field type="float" name="x">Global X speed</field>
-               <field type="float" name="y">Global Y speed</field>
-               <field type="float" name="z">Global Z speed</field>
-          </message>
-          <message id="104" name="VICON_POSITION_ESTIMATE">
-               <field type="uint64_t" name="usec">Timestamp (milliseconds)</field>
-               <field type="float" name="x">Global X position</field>
-               <field type="float" name="y">Global Y position</field>
-               <field type="float" name="z">Global Z position</field>
-               <field type="float" name="roll">Roll angle in rad</field>
-               <field type="float" name="pitch">Pitch angle in rad</field>
-               <field type="float" name="yaw">Yaw angle in rad</field>
-          </message>
-          <!-- MESSAGE IDs 150 - 240: Space for custom messages in individual projectname_messages.xml files -->
-          <message id="249" name="MEMORY_VECT">
-               <description>Send raw controller memory. The use of this message is discouraged for normal packets, but a quite efficient way for testing new messages and getting experimental debug output.</description>
-               <field type="uint16_t" name="address">Starting address of the debug variables</field>
-               <field type="uint8_t" name="ver">Version code of the type variable. 0=unknown, type ignored and assumed int16_t. 1=as below</field>
-               <field type="uint8_t" name="type">Type code of the memory variables. for ver = 1: 0=16 x int16_t, 1=16 x uint16_t, 2=16 x Q15, 3=16 x 1Q14</field>
-               <field type="int8_t[32]" name="value">Memory contents at specified address</field>
-          </message>
-          <message id="250" name="DEBUG_VECT">
-               <field type="char[10]" name="name">Name</field>
-               <field type="uint64_t" name="time_usec">Timestamp</field>
-               <field type="float" name="x">x</field>
-               <field type="float" name="y">y</field>
-               <field type="float" name="z">z</field>
-          </message>
-          <message id="251" name="NAMED_VALUE_FLOAT">
-               <description>Send a key-value pair as float. The use of this message is discouraged for normal packets, but a quite efficient way for testing new messages and getting experimental debug output.</description>
-               <field type="uint32_t" name="time_boot_ms">Timestamp (milliseconds since system boot)</field>
-               <field type="char[10]" name="name">Name of the debug variable</field>
-               <field type="float" name="value">Floating point value</field>
-          </message>
-          <message id="252" name="NAMED_VALUE_INT">
-               <description>Send a key-value pair as integer. The use of this message is discouraged for normal packets, but a quite efficient way for testing new messages and getting experimental debug output.</description>
-               <field type="uint32_t" name="time_boot_ms">Timestamp (milliseconds since system boot)</field>
-               <field type="char[10]" name="name">Name of the debug variable</field>
-               <field type="int32_t" name="value">Signed integer value</field>
-          </message>
-          <message id="253" name="STATUSTEXT">
-               <description>Status text message. These messages are printed in yellow in the COMM console of QGroundControl. WARNING: They consume quite some bandwidth, so use only for important status and error messages. If implemented wisely, these messages are buffered on the MCU and sent only at a limited rate (e.g. 10 Hz).</description>
-               <field type="uint8_t" name="severity">Severity of status, 0 = info message, 255 = critical fault</field>
-               <field type="char[50]" name="text">Status text message, without null termination character</field>
-          </message>
-          <message id="254" name="DEBUG">
-               <description>Send a debug value. The index is used to discriminate between values. These values show up in the plot of QGroundControl as DEBUG N.</description>
-               <field type="uint32_t" name="time_boot_ms">Timestamp (milliseconds since system boot)</field>
-               <field type="uint8_t" name="ind">index of debug variable</field>
-               <field type="float" name="value">DEBUG value</field>
-          </message>
-          <message id="255" name="EXTENDED_MESSAGE">
-               <description>Extended message spacer.</description>
-               <field type="uint8_t" name="target_system">System which should execute the command</field>
-               <field type="uint8_t" name="target_component">Component which should execute the command, 0 for all components</field>
-               <field type="uint8_t" name="protocol_flags">Retransmission / ACK flags</field>
-          </message>
-     </messages>
-</mavlink>
diff --git a/libraries/GCS_MAVLink/message_definitions_v1.0/matrixpilot.xml b/libraries/GCS_MAVLink/message_definitions_v1.0/matrixpilot.xml
deleted file mode 100644
index 9e86eaf999dec7f8207b93c1e874c23384b215db..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions_v1.0/matrixpilot.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version='1.0'?>
-<mavlink>
-     <include>common.xml</include>
-     <!-- note that MatrixPilot specific messages should use the command id
-      range from 150 to 250, to leave plenty of room for growth
-      of common.xml
-
-      If you prototype a message here, then you should consider if it
-      is general enough to move into common.xml later
-    -->
-     <messages>
-
-     </messages>
-</mavlink>
diff --git a/libraries/GCS_MAVLink/message_definitions_v1.0/minimal.xml b/libraries/GCS_MAVLink/message_definitions_v1.0/minimal.xml
deleted file mode 100644
index 185a657de94c14e7e69d7f50578353f04e4d5db4..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions_v1.0/minimal.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version='1.0'?>
-<mavlink>
-    <version>2</version>
-    <enums/>
-    <messages>
-          <message id="0" name="HEARTBEAT">
-               <description>The heartbeat message shows that a system is present and responding. The type of the MAV and Autopilot hardware allow the receiving system to treat further messages from this system appropriate (e.g. by laying out the user interface based on the autopilot).</description>
-               <field type="uint8_t" name="type">Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM)</field>
-               <field type="uint8_t" name="autopilot">Autopilot type / class. defined in MAV_CLASS ENUM</field>
-               <field type="uint8_t" name="base_mode">System mode bitfield, see MAV_MODE_FLAGS ENUM in mavlink/include/mavlink_types.h</field>
-               <field type="uint32_t" name="custom_mode">Navigation mode bitfield, see MAV_AUTOPILOT_CUSTOM_MODE ENUM for some examples. This field is autopilot-specific.</field>
-               <field type="uint8_t" name="system_status">System status flag, see MAV_STATUS ENUM</field>
-               <field type="uint8_t_mavlink_version" name="mavlink_version">MAVLink version</field>
-          </message>
-    </messages>
-</mavlink>
diff --git a/libraries/GCS_MAVLink/message_definitions_v1.0/pixhawk.xml b/libraries/GCS_MAVLink/message_definitions_v1.0/pixhawk.xml
deleted file mode 100644
index 75d536a12e5429c5c0d5f2559ac0992d7fa9d693..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions_v1.0/pixhawk.xml
+++ /dev/null
@@ -1,193 +0,0 @@
-<?xml version='1.0'?>
-<mavlink>
-     <include>common.xml</include>
-     <enums>
-          <enum name="DATA_TYPES">
-               <description>Content Types for data transmission handshake</description>
-               <entry value="1" name="DATA_TYPE_JPEG_IMAGE"/>
-               <entry value="2" name="DATA_TYPE_RAW_IMAGE"/>
-               <entry value="3" name="DATA_TYPE_KINECT"/>
-          </enum>
-     </enums>
-     <messages>
-          <message id="151" name="SET_CAM_SHUTTER">
-               <field type="uint8_t" name="cam_no">Camera id</field>
-               <field type="uint8_t" name="cam_mode">Camera mode: 0 = auto, 1 = manual</field>
-               <field type="uint8_t" name="trigger_pin">Trigger pin, 0-3 for PtGrey FireFly</field>
-               <field type="uint16_t" name="interval">Shutter interval, in microseconds</field>
-               <field type="uint16_t" name="exposure">Exposure time, in microseconds</field>
-               <field type="float" name="gain">Camera gain</field>
-          </message>
-          <message id="152" name="IMAGE_TRIGGERED">
-               <field type="uint64_t" name="timestamp">Timestamp</field>
-               <field type="uint32_t" name="seq">IMU seq</field>
-               <field type="float" name="roll">Roll angle in rad</field>
-               <field type="float" name="pitch">Pitch angle in rad</field>
-               <field type="float" name="yaw">Yaw angle in rad</field>
-               <field type="float" name="local_z">Local frame Z coordinate (height over ground)</field>
-               <field type="float" name="lat">GPS X coordinate</field>
-               <field type="float" name="lon">GPS Y coordinate</field>
-               <field type="float" name="alt">Global frame altitude</field>
-               <field type="float" name="ground_x">Ground truth X</field>
-               <field type="float" name="ground_y">Ground truth Y</field>
-               <field type="float" name="ground_z">Ground truth Z</field>
-          </message>
-          <message id="153" name="IMAGE_TRIGGER_CONTROL">
-               <field type="uint8_t" name="enable">0 to disable, 1 to enable</field>
-          </message>
-          <message id="154" name="IMAGE_AVAILABLE">
-               <field type="uint64_t" name="cam_id">Camera id</field>
-               <field type="uint8_t" name="cam_no">Camera # (starts with 0)</field>
-               <field type="uint64_t" name="timestamp">Timestamp</field>
-               <field type="uint64_t" name="valid_until">Until which timestamp this buffer will stay valid</field>
-               <field type="uint32_t" name="img_seq">The image sequence number</field>
-               <field type="uint32_t" name="img_buf_index">Position of the image in the buffer, starts with 0</field>
-               <field type="uint16_t" name="width">Image width</field>
-               <field type="uint16_t" name="height">Image height</field>
-               <field type="uint16_t" name="depth">Image depth</field>
-               <field type="uint8_t" name="channels">Image channels</field>
-               <field type="uint32_t" name="key">Shared memory area key</field>
-               <field type="uint32_t" name="exposure">Exposure time, in microseconds</field>
-               <field type="float" name="gain">Camera gain</field>
-               <field type="float" name="roll">Roll angle in rad</field>
-               <field type="float" name="pitch">Pitch angle in rad</field>
-               <field type="float" name="yaw">Yaw angle in rad</field>
-               <field type="float" name="local_z">Local frame Z coordinate (height over ground)</field>
-               <field type="float" name="lat">GPS X coordinate</field>
-               <field type="float" name="lon">GPS Y coordinate</field>
-               <field type="float" name="alt">Global frame altitude</field>
-               <field type="float" name="ground_x">Ground truth X</field>
-               <field type="float" name="ground_y">Ground truth Y</field>
-               <field type="float" name="ground_z">Ground truth Z</field>
-          </message>
-          <message id="160" name="SET_POSITION_CONTROL_OFFSET">
-               <description>Message sent to the MAV to set a new offset from the currently controlled position</description>
-               <field type="uint8_t" name="target_system">System ID</field>
-               <field type="uint8_t" name="target_component">Component ID</field>
-               <field type="float" name="x">x position offset</field>
-               <field type="float" name="y">y position offset</field>
-               <field type="float" name="z">z position offset</field>
-               <field type="float" name="yaw">yaw orientation offset in radians, 0 = NORTH</field>
-          </message>
-          <!-- Message sent by the MAV once it sets a new position as reference in the controller -->
-          <message id="170" name="POSITION_CONTROL_SETPOINT">
-               <field type="uint16_t" name="id">ID of waypoint, 0 for plain position</field>
-               <field type="float" name="x">x position</field>
-               <field type="float" name="y">y position</field>
-               <field type="float" name="z">z position</field>
-               <field type="float" name="yaw">yaw orientation in radians, 0 = NORTH</field>
-          </message>
-          <message id="171" name="MARKER">
-               <field type="uint16_t" name="id">ID</field>
-               <field type="float" name="x">x position</field>
-               <field type="float" name="y">y position</field>
-               <field type="float" name="z">z position</field>
-               <field type="float" name="roll">roll orientation</field>
-               <field type="float" name="pitch">pitch orientation</field>
-               <field type="float" name="yaw">yaw orientation</field>
-          </message>
-          <message id="172" name="RAW_AUX">
-               <field type="uint16_t" name="adc1">ADC1 (J405 ADC3, LPC2148 AD0.6)</field>
-               <field type="uint16_t" name="adc2">ADC2 (J405 ADC5, LPC2148 AD0.2)</field>
-               <field type="uint16_t" name="adc3">ADC3 (J405 ADC6, LPC2148 AD0.1)</field>
-               <field type="uint16_t" name="adc4">ADC4 (J405 ADC7, LPC2148 AD1.3)</field>
-               <field type="uint16_t" name="vbat">Battery voltage</field>
-               <field type="int16_t" name="temp">Temperature (degrees celcius)</field>
-               <field type="int32_t" name="baro">Barometric pressure (hecto Pascal)</field>
-          </message>
-          <message id="180" name="WATCHDOG_HEARTBEAT">
-               <field type="uint16_t" name="watchdog_id">Watchdog ID</field>
-               <field type="uint16_t" name="process_count">Number of processes</field>
-          </message>
-          <message id="181" name="WATCHDOG_PROCESS_INFO">
-               <field type="uint16_t" name="watchdog_id">Watchdog ID</field>
-               <field type="uint16_t" name="process_id">Process ID</field>
-               <field type="char[100]" name="name">Process name</field>
-               <field type="char[147]" name="arguments">Process arguments</field>
-               <field type="int32_t" name="timeout">Timeout (seconds)</field>
-          </message>
-          <message id="182" name="WATCHDOG_PROCESS_STATUS">
-               <field type="uint16_t" name="watchdog_id">Watchdog ID</field>
-               <field type="uint16_t" name="process_id">Process ID</field>
-               <field type="uint8_t" name="state">Is running / finished / suspended / crashed</field>
-               <field type="uint8_t" name="muted">Is muted</field>
-               <field type="int32_t" name="pid">PID</field>
-               <field type="uint16_t" name="crashes">Number of crashes</field>
-          </message>
-          <message id="183" name="WATCHDOG_COMMAND">
-               <field type="uint8_t" name="target_system_id">Target system ID</field>
-               <field type="uint16_t" name="watchdog_id">Watchdog ID</field>
-               <field type="uint16_t" name="process_id">Process ID</field>
-               <field type="uint8_t" name="command_id">Command ID</field>
-          </message>
-          <message id="190" name="PATTERN_DETECTED">
-               <field type="uint8_t" name="type">0: Pattern, 1: Letter</field>
-               <field type="float" name="confidence">Confidence of detection</field>
-               <field type="char[100]" name="file">Pattern file name</field>
-               <field type="uint8_t" name="detected">Accepted as true detection, 0 no, 1 yes</field>
-          </message>
-          <message id="191" name="POINT_OF_INTEREST">
-               <description>Notifies the operator about a point of interest (POI). This can be anything detected by the
-                system. This generic message is intented to help interfacing to generic visualizations and to display
-                the POI on a map.
-            </description>
-               <field type="uint8_t" name="type">0: Notice, 1: Warning, 2: Critical, 3: Emergency, 4: Debug</field>
-               <field type="uint8_t" name="color">0: blue, 1: yellow, 2: red, 3: orange, 4: green, 5: magenta</field>
-               <field type="uint8_t" name="coordinate_system">0: global, 1:local</field>
-               <field type="uint16_t" name="timeout">0: no timeout, >1: timeout in seconds</field>
-               <field type="float" name="x">X Position</field>
-               <field type="float" name="y">Y Position</field>
-               <field type="float" name="z">Z Position</field>
-               <field type="char[26]" name="name">POI name</field>
-          </message>
-          <message id="192" name="POINT_OF_INTEREST_CONNECTION">
-               <description>Notifies the operator about the connection of two point of interests (POI). This can be anything detected by the
-                system. This generic message is intented to help interfacing to generic visualizations and to display
-                the POI on a map.
-            </description>
-               <field type="uint8_t" name="type">0: Notice, 1: Warning, 2: Critical, 3: Emergency, 4: Debug</field>
-               <field type="uint8_t" name="color">0: blue, 1: yellow, 2: red, 3: orange, 4: green, 5: magenta</field>
-               <field type="uint8_t" name="coordinate_system">0: global, 1:local</field>
-               <field type="uint16_t" name="timeout">0: no timeout, >1: timeout in seconds</field>
-               <field type="float" name="xp1">X1 Position</field>
-               <field type="float" name="yp1">Y1 Position</field>
-               <field type="float" name="zp1">Z1 Position</field>
-               <field type="float" name="xp2">X2 Position</field>
-               <field type="float" name="yp2">Y2 Position</field>
-               <field type="float" name="zp2">Z2 Position</field>
-               <field type="char[26]" name="name">POI connection name</field>
-          </message>
-          <message id="193" name="DATA_TRANSMISSION_HANDSHAKE">
-               <field type="uint8_t" name="type">type of requested/acknowledged data (as defined in ENUM DATA_TYPES in mavlink/include/mavlink_types.h)</field>
-               <field type="uint32_t" name="size">total data size in bytes (set on ACK only)</field>
-               <field type="uint8_t" name="packets">number of packets beeing sent (set on ACK only)</field>
-               <field type="uint8_t" name="payload">payload size per packet (normally 253 byte, see DATA field size in message ENCAPSULATED_DATA) (set on ACK only)</field>
-               <field type="uint8_t" name="jpg_quality">JPEG quality out of [1,100]</field>
-          </message>
-          <message id="194" name="ENCAPSULATED_DATA">
-               <field type="uint16_t" name="seqnr">sequence number (starting with 0 on every transmission)</field>
-               <field type="uint8_t[253]" name="data">image data bytes</field>
-          </message>
-          <message id="195" name="BRIEF_FEATURE">
-               <field type="float" name="x">x position in m</field>
-               <field type="float" name="y">y position in m</field>
-               <field type="float" name="z">z position in m</field>
-               <field type="uint8_t" name="orientation_assignment">Orientation assignment 0: false, 1:true</field>
-               <field type="uint16_t" name="size">Size in pixels</field>
-               <field type="uint16_t" name="orientation">Orientation</field>
-               <field type="uint8_t[32]" name="descriptor">Descriptor</field>
-               <field type="float" name="response">Harris operator response at this location</field>
-          </message>
-          <message id="200" name="ATTITUDE_CONTROL">
-               <field type="uint8_t" name="target">The system to be controlled</field>
-               <field type="float" name="roll">roll</field>
-               <field type="float" name="pitch">pitch</field>
-               <field type="float" name="yaw">yaw</field>
-               <field type="float" name="thrust">thrust</field>
-               <field type="uint8_t" name="roll_manual">roll control enabled auto:0, manual:1</field>
-               <field type="uint8_t" name="pitch_manual">pitch auto:0, manual:1</field>
-               <field type="uint8_t" name="yaw_manual">yaw auto:0, manual:1</field>
-               <field type="uint8_t" name="thrust_manual">thrust auto:0, manual:1</field>
-          </message>
-     </messages>
-</mavlink>
diff --git a/libraries/GCS_MAVLink/message_definitions_v1.0/slugs.xml b/libraries/GCS_MAVLink/message_definitions_v1.0/slugs.xml
deleted file mode 100644
index f8644c5c4be7e497178d892e9c15c25ba3c5131c..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions_v1.0/slugs.xml
+++ /dev/null
@@ -1,144 +0,0 @@
-<?xml version="1.0"?>
-<mavlink>
-    <include>common.xml</include>
-    
-    <!-- <enums> 
-  <enum name="SLUGS_ACTION" > 
-    <description> Slugs Actions </description> 
-    <entry name = "SLUGS_ACTION_NONE"> 
-    <entry name = "SLUGS_ACTION_SUCCESS"> 
-    <entry name = "SLUGS_ACTION_FAIL"> 
-    <entry name = "SLUGS_ACTION_EEPROM"> 
-    <entry name = "SLUGS_ACTION_MODE_CHANGE"> 
-    <entry name = "SLUGS_ACTION_MODE_REPORT"> 
-    <entry name = "SLUGS_ACTION_PT_CHANGE"> 
-    <entry name = "SLUGS_ACTION_PT_REPORT"> 
-    <entry name = "SLUGS_ACTION_PID_CHANGE"> 
-    <entry name = "SLUGS_ACTION_PID_REPORT"> 
-    <entry name = "SLUGS_ACTION_WP_CHANGE"> 
-    <entry name = "SLUGS_ACTION_WP_REPORT"> 
-    <entry name = "SLUGS_ACTION_MLC_CHANGE"> 
-    <entry name = "SLUGS_ACTION_MLC_REPORT"> 
-  </enum> 
-
-  <enum name="WP_PROTOCOL_STATE" > 
-    <description> Waypoint Protocol States </description> 
-    <entry name = "WP_PROT_IDLE"> 
-    <entry name = "WP_PROT_LIST_REQUESTED"> 
-    <entry name = "WP_PROT_NUM_SENT">
-    <entry name = "WP_PROT_TX_WP"> 
-    <entry name = "WP_PROT_RX_WP"> 
-    <entry name = "WP_PROT_SENDING_WP_IDLE"> 
-    <entry name = "WP_PROT_GETTING_WP_IDLE"> 
-  </enum>
-  
-</enums> -->
-    
-    <messages>
-        
-        <message name="CPU_LOAD" id="170">
-            Sensor and DSC control loads.
-            <field name="sensLoad" type="uint8_t">Sensor DSC Load</field>
-            <field name="ctrlLoad" type="uint8_t">Control DSC Load</field>
-            <field name="batVolt" type="uint16_t">Battery Voltage in millivolts</field>     
-        </message>
-        
-        <message name="AIR_DATA" id="171">
-            Air data for altitude and airspeed computation.
-            <field name="dynamicPressure" type="float">Dynamic pressure (Pa)</field>
-            <field name="staticPressure" type="float">Static pressure (Pa)</field>
-            <field name="temperature" type="uint16_t">Board temperature</field>     
-        </message>
-        
-        <message name="SENSOR_BIAS" id="172">
-            Accelerometer and gyro biases.
-            <field name="axBias" type="float">Accelerometer X bias (m/s)</field>
-            <field name="ayBias" type="float">Accelerometer Y bias (m/s)</field>
-            <field name="azBias" type="float">Accelerometer Z bias (m/s)</field>
-            <field name="gxBias" type="float">Gyro X bias (rad/s)</field>
-            <field name="gyBias" type="float">Gyro Y bias (rad/s)</field>
-            <field name="gzBias" type="float">Gyro Z bias (rad/s)</field>
-        </message>
-        
-        <message name="DIAGNOSTIC" id="173">
-            Configurable diagnostic messages.
-            <field name="diagFl1" type="float">Diagnostic float 1</field>
-            <field name="diagFl2" type="float">Diagnostic float 2</field>
-            <field name="diagFl3" type="float">Diagnostic float 3</field>
-            <field name="diagSh1" type="int16_t">Diagnostic short 1</field>
-            <field name="diagSh2" type="int16_t">Diagnostic short 2</field>
-            <field name="diagSh3" type="int16_t">Diagnostic short 3</field>
-        </message>
-        
-        <message name="SLUGS_NAVIGATION" id="176">
-            Data used in the navigation algorithm.
-            <field name="u_m" type="float">Measured Airspeed prior to the Nav Filter</field>
-            <field name="phi_c" type="float">Commanded Roll</field>
-            <field name="theta_c" type="float">Commanded Pitch</field>
-            <field name="psiDot_c" type="float">Commanded Turn rate</field>
-            <field name="ay_body" type="float">Y component of the body acceleration</field>
-            <field name="totalDist" type="float">Total Distance to Run on this leg of Navigation</field>
-            <field name="dist2Go" type="float">Remaining distance to Run on this leg of Navigation</field>
-            <field name="fromWP" type="uint8_t">Origin WP</field>
-            <field name="toWP" type="uint8_t">Destination WP</field>
-        </message>
-        
-        <message name="DATA_LOG" id="177">
-            Configurable data log probes to be used inside Simulink
-            <field name="fl_1" type="float">Log value 1 </field>
-            <field name="fl_2" type="float">Log value 2 </field>
-            <field name="fl_3" type="float">Log value 3 </field>
-            <field name="fl_4" type="float">Log value 4 </field>
-            <field name="fl_5" type="float">Log value 5 </field>
-            <field name="fl_6" type="float">Log value 6 </field>
-        </message>
-        
-        <message name="GPS_DATE_TIME" id="179">
-            Pilot console PWM messges.
-            <field name="year"  type="uint8_t">Year reported by Gps </field>
-            <field name="month" type="uint8_t">Month reported by Gps </field>
-            <field name="day"   type="uint8_t">Day reported by Gps </field>
-            <field name="hour"  type="uint8_t">Hour reported by Gps </field>
-            <field name="min"   type="uint8_t">Min reported by Gps </field>
-            <field name="sec"   type="uint8_t">Sec reported by Gps  </field>
-            <field name="visSat"   type="uint8_t">Visible sattelites reported by Gps  </field>
-        </message>
-        
-        <message name="MID_LVL_CMDS" id="180">
-            Mid Level commands sent from the GS to the autopilot. These are only sent when being opperated in mid-level commands mode from the ground; for periodic report of these commands generated from the autopilot see message XXXX.
-            <field name="target" type="uint8_t">The system setting the commands</field>
-            <field name="hCommand" type="float">Commanded Airspeed</field>
-            <field name="uCommand" type="float">Log value 2 </field>
-            <field name="rCommand" type="float">Log value 3 </field>
-        </message>
-         
-        
-        <message name="CTRL_SRFC_PT" id="181">
-            This message configures the Selective Passthrough mode. it allows to select which control surfaces the Pilot can control from his console. It is implemented as a bitfield as follows: 
-            Position          Bit        Code
-            =================================
-            15-8             Reserved  
-            7                 dt_pass    128
-            6                 dla_pass   64
-            5                 dra_pass   32
-            4                 dr_pass    16
-            3                 dle_pass   8
-            2                 dre_pass   4
-            1                 dlf_pass   2
-            0                 drf_pass   1
-            Where Bit 15 is the MSb. 0 = AP has control of the surface; 1 = Pilot Console has control of the surface.
-            <field name="target" type="uint8_t">The system setting the commands</field>
-            <field name="bitfieldPt" type="uint16_t">Bitfield containing the PT configuration</field>
-        </message>
-         
-        
-        
-        <message name="SLUGS_ACTION" id="183">
-            Action messages focused on the SLUGS AP. 
-            <field name="target" type="uint8_t">The system reporting the action</field>
-            <field name="actionId" type="uint8_t">Action ID. See apDefinitions.h in the SLUGS /clib directory for the ID names</field>
-            <field name="actionVal" type="uint16_t">Value associated with the action</field>
-        </message>
-        
-    </messages>
-</mavlink>
diff --git a/libraries/GCS_MAVLink/message_definitions_v1.0/test.xml b/libraries/GCS_MAVLink/message_definitions_v1.0/test.xml
deleted file mode 100644
index 02bc03204d11a3565e9a39ce4b2646e935a6bd2b..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions_v1.0/test.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version='1.0'?>
-<mavlink>
-     <version>3</version>
-     <messages>
-          <message id="0" name="TEST_TYPES">
-               <description>Test all field types</description>
-               <field type="char" name="c">char</field>
-               <field type="char[10]" name="s">string</field>
-               <field type="uint8_t" name="u8">uint8_t</field>
-               <field type="uint16_t" name="u16">uint16_t</field>
-               <field print_format="0x%08x" type="uint32_t" name="u32">uint32_t</field>
-               <field type="uint64_t" name="u64">uint64_t</field>
-               <field type="int8_t" name="s8">int8_t</field>
-               <field type="int16_t" name="s16">int16_t</field>
-               <field type="int32_t" name="s32">int32_t</field>
-               <field type="int64_t" name="s64">int64_t</field>
-               <field type="float" name="f">float</field>
-               <field type="double" name="d">double</field>
-               <field type="uint8_t[3]" name="u8_array">uint8_t_array</field>
-               <field type="uint16_t[3]" name="u16_array">uint16_t_array</field>
-               <field type="uint32_t[3]" name="u32_array">uint32_t_array</field>
-               <field type="uint64_t[3]" name="u64_array">uint64_t_array</field>
-               <field type="int8_t[3]" name="s8_array">int8_t_array</field>
-               <field type="int16_t[3]" name="s16_array">int16_t_array</field>
-               <field type="int32_t[3]" name="s32_array">int32_t_array</field>
-               <field type="int64_t[3]" name="s64_array">int64_t_array</field>
-               <field type="float[3]" name="f_array">float_array</field>
-               <field type="double[3]" name="d_array">double_array</field>
-          </message>
-     </messages>
-</mavlink>
diff --git a/libraries/GCS_MAVLink/message_definitions_v1.0/ualberta.xml b/libraries/GCS_MAVLink/message_definitions_v1.0/ualberta.xml
deleted file mode 100644
index 5e53e141e9f018e943abfd25bc1f58c0a0091574..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/message_definitions_v1.0/ualberta.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version='1.0'?>
-<mavlink>
-    <include>common.xml</include>
-    <enums>
-        <enum name="UALBERTA_AUTOPILOT_MODE">
-            <description>Available autopilot modes for ualberta uav</description>
-            <entry name="MODE_MANUAL_DIRECT">Raw input pulse widts sent to output</entry>
-            <entry name="MODE_MANUAL_SCALED">Inputs are normalized using calibration, the converted back to raw pulse widths for output</entry>
-            <entry name="MODE_AUTO_PID_ATT"> dfsdfs</entry>
-            <entry name="MODE_AUTO_PID_VEL"> dfsfds</entry>
-            <entry name="MODE_AUTO_PID_POS"> dfsdfsdfs</entry>
-        </enum>
-        <enum name="UALBERTA_NAV_MODE">
-            <description>Navigation filter mode</description>
-            <entry name="NAV_AHRS_INIT" />
-            <entry name="NAV_AHRS">AHRS mode</entry>
-            <entry name="NAV_INS_GPS_INIT">INS/GPS initialization mode</entry>
-            <entry name="NAV_INS_GPS">INS/GPS mode</entry>
-        </enum>
-        <enum name="UALBERTA_PILOT_MODE">
-            <description>Mode currently commanded by pilot</description>
-            <entry name="PILOT_MANUAL"> sdf</entry>
-            <entry name="PILOT_AUTO"> dfs</entry>
-            <entry name="PILOT_ROTO"> Rotomotion mode </entry>
-        </enum>
-    </enums>
-    <messages>
-        <message id="220" name="NAV_FILTER_BIAS">
-            <description>Accelerometer and Gyro biases from the navigation filter</description>
-            <field type="uint64_t" name="usec">Timestamp (microseconds)</field>
-            <field type="float" name="accel_0">b_f[0]</field>
-            <field type="float" name="accel_1">b_f[1]</field>
-            <field type="float" name="accel_2">b_f[2]</field>
-            <field type="float" name="gyro_0">b_f[0]</field>
-            <field type="float" name="gyro_1">b_f[1]</field>
-            <field type="float" name="gyro_2">b_f[2]</field>
-        </message>
-        <message id="221" name="RADIO_CALIBRATION">
-            <description>Complete set of calibration parameters for the radio</description>
-            <field type="uint16_t[3]" name="aileron">Aileron setpoints: left, center, right</field>
-            <field type="uint16_t[3]" name="elevator">Elevator setpoints: nose down, center, nose up</field>
-            <field type="uint16_t[3]" name="rudder">Rudder setpoints: nose left, center, nose right</field>
-            <field type="uint16_t[2]" name="gyro">Tail gyro mode/gain setpoints: heading hold, rate mode</field>
-            <field type="uint16_t[5]" name="pitch">Pitch curve setpoints (every 25%)</field>
-            <field type="uint16_t[5]" name="throttle">Throttle curve setpoints (every 25%)</field>
-        </message>
-        <message id="222" name="UALBERTA_SYS_STATUS">
-            <description>System status specific to ualberta uav</description>
-            <field type="uint8_t" name="mode">System mode, see UALBERTA_AUTOPILOT_MODE ENUM</field>
-            <field type="uint8_t" name="nav_mode">Navigation mode, see UALBERTA_NAV_MODE ENUM</field>
-            <field type="uint8_t" name="pilot">Pilot mode, see UALBERTA_PILOT_MODE</field>
-        </message>
-    </messages>
-</mavlink>
diff --git a/libraries/GCS_MAVLink/missionlib/testing/.gitignore b/libraries/GCS_MAVLink/missionlib/testing/.gitignore
deleted file mode 100644
index 0776965a63b239ff52dbd7c2afe5aaa7db6c2262..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/missionlib/testing/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*.o
-udptest
-build
diff --git a/libraries/GCS_MAVLink/missionlib/testing/Makefile b/libraries/GCS_MAVLink/missionlib/testing/Makefile
deleted file mode 100644
index 134aa47fc483cf4ec6ffb03c9afab0b06c7ae2ff..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/missionlib/testing/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-VERSION = 1.00
-CC      = gcc
-CFLAGS  = -I ../../include/common -Wall -Werror -DVERSION=\"$(MAVLINK_VERSION)\" -std=c99
-LDFLAGS = ""
-
-OBJ = udp.o
-
-udptest: $(OBJ)
-	$(CC) $(CFLAGS) -o udptest $(OBJ) $(LDFLAGS)
-
-%.o: %.c
-	$(CC) $(CFLAGS) -c $<
\ No newline at end of file
diff --git a/libraries/GCS_MAVLink/missionlib/testing/main.c b/libraries/GCS_MAVLink/missionlib/testing/main.c
deleted file mode 100644
index 0bec1155ad5e73a5bdd765f71399e88bc0c59754..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/missionlib/testing/main.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/*******************************************************************************
- 
- Copyright (C) 2011 Lorenz Meier lm ( a t ) inf.ethz.ch
- and Bryan Godbolt godbolt ( a t ) ualberta.ca
- 
- adapted from example written by Bryan Godbolt godbolt ( a t ) ualberta.ca
- 
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- 
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
- 
- You should have received a copy of the GNU General Public License
- along with this program.  If not, see <http://www.gnu.org/licenses/>.
- 
- ****************************************************************************/
-/*
- This program sends some data to qgroundcontrol using the mavlink protocol.  The sent packets
- cause qgroundcontrol to respond with heartbeats.  Any settings or custom commands sent from
- qgroundcontrol are printed by this program along with the heartbeats.
- 
- 
- I compiled this program sucessfully on Ubuntu 10.04 with the following command
- 
- gcc -I ../../pixhawk/mavlink/include -o udp-server udp.c
- 
- the rt library is needed for the clock_gettime on linux
- */
-/* These headers are for QNX, but should all be standard on unix/linux */
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <time.h>
-#if (defined __QNX__) | (defined __QNXNTO__)
-/* QNX specific headers */
-#include <unix.h>
-#else
-/* Linux / MacOS POSIX timer headers */
-#include <sys/time.h>
-#include <time.h>
-#include <arpa/inet.h>
-#endif
-
-/* 0: Include MAVLink types */
-#include <../mavlink_types.h>
-
-/* 1: Define mavlink system storage */
-mavlink_system_t mavlink_system;
-
-/* 2: Include actual protocol, REQUIRES mavlink_system */
-#include <mavlink.h>
-
-/* 3: Define waypoint helper functions */
-void mavlink_wpm_send_message(mavlink_message_t* msg);
-void mavlink_wpm_send_gcs_string(const char* string);
-uint64_t mavlink_wpm_get_system_timestamp();
-
-/* 4: Include waypoint protocol */
-#include "waypoints.h"
-mavlink_wpm_storage wpm;
-
-
-#define BUFFER_LENGTH 2041 // minimum buffer size that can be used with qnx (I don't know why)
-
-char help[] = "--help";
-
-
-char target_ip[100];
-
-float position[6] = {};
-int sock;
-struct sockaddr_in gcAddr; 
-struct sockaddr_in locAddr;
-uint8_t buf[BUFFER_LENGTH];
-ssize_t recsize;
-socklen_t fromlen;
-int bytes_sent;
-mavlink_message_t msg;
-uint16_t len;
-int i = 0;
-unsigned int temp = 0;
-
-uint64_t microsSinceEpoch();
-
-
-
-
-/* Provide the interface functions for the waypoint manager */
-
-/*
- *  @brief Sends a MAVLink message over UDP
- */
-void mavlink_wpm_send_message(mavlink_message_t* msg)
-{
-	uint8_t buf[MAVLINK_MAX_PACKET_LEN];
-	uint16_t len = mavlink_msg_to_send_buffer(buf, msg);
-	uint16_t bytes_sent = sendto(sock, buf, len, 0, (struct sockaddr*)&gcAddr, sizeof (struct sockaddr_in));
-	
-	printf("SENT %d bytes", bytes_sent);
-}
-
-void mavlink_wpm_send_gcs_string(const char* string)
-{
-	printf("%s",string);
-}
-
-uint64_t mavlink_wpm_get_system_timestamp()
-{
-	struct timeval tv;
-	gettimeofday(&tv, NULL);
-	return ((uint64_t)tv.tv_sec) * 1000000 + tv.tv_usec;
-}
-
-
-
-int main(int argc, char* argv[])
-{	
-	// Initialize MAVLink
-	mavlink_wpm_init(&wpm);
-	mavlink_system.sysid = 1;
-	mavlink_system.compid = MAV_COMP_ID_WAYPOINTPLANNER;
-	
-	
-	
-	// Create socket
-	sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
-	
-	// Check if --help flag was used
-	if ((argc == 2) && (strcmp(argv[1], help) == 0))
-    {
-		printf("\n");
-		printf("\tUsage:\n\n");
-		printf("\t");
-		printf("%s", argv[0]);
-		printf(" <ip address of QGroundControl>\n");
-		printf("\tDefault for localhost: udp-server 127.0.0.1\n\n");
-		exit(EXIT_FAILURE);
-    }
-	
-	
-	// Change the target ip if parameter was given
-	strcpy(target_ip, "127.0.0.1");
-	if (argc == 2)
-    {
-		strcpy(target_ip, argv[1]);
-    }
-	
-	
-	memset(&locAddr, 0, sizeof(locAddr));
-	locAddr.sin_family = AF_INET;
-	locAddr.sin_addr.s_addr = INADDR_ANY;
-	locAddr.sin_port = htons(14551);
-	
-	/* Bind the socket to port 14551 - necessary to receive packets from qgroundcontrol */ 
-	if (-1 == bind(sock,(struct sockaddr *)&locAddr, sizeof(struct sockaddr)))
-    {
-		perror("error bind failed");
-		close(sock);
-		exit(EXIT_FAILURE);
-    } 
-	
-	/* Attempt to make it non blocking */
-	if (fcntl(sock, F_SETFL, O_NONBLOCK | FASYNC) < 0)
-    {
-		fprintf(stderr, "error setting nonblocking: %s\n", strerror(errno));
-		close(sock);
-		exit(EXIT_FAILURE);
-    }
-	
-	
-	memset(&gcAddr, 0, sizeof(gcAddr));
-	gcAddr.sin_family = AF_INET;
-	gcAddr.sin_addr.s_addr = inet_addr(target_ip);
-	gcAddr.sin_port = htons(14550);
-	
-	
-	printf("MAVLINK MISSION LIBRARY EXAMPLE PROCESS INITIALIZATION DONE, RUNNING..\n");
-	
-	
-	for (;;) 
-    {
-		
-		/*Send Heartbeat */
-		mavlink_msg_heartbeat_pack(mavlink_system.sysid, 200, &msg, MAV_HELICOPTER, MAV_CLASS_GENERIC);
-		len = mavlink_msg_to_send_buffer(buf, &msg);
-		bytes_sent = sendto(sock, buf, len, 0, (struct sockaddr*)&gcAddr, sizeof(struct sockaddr_in));
-		
-		/* Send Status */
-		mavlink_msg_sys_status_pack(1, 200, &msg, MAV_MODE_GUIDED, MAV_NAV_HOLD, MAV_STATE_ACTIVE, 500, 7500, 0, 0);
-		len = mavlink_msg_to_send_buffer(buf, &msg);
-		bytes_sent = sendto(sock, buf, len, 0, (struct sockaddr*)&gcAddr, sizeof (struct sockaddr_in));
-		
-		/* Send Local Position */
-		mavlink_msg_local_position_pack(mavlink_system.sysid, 200, &msg, microsSinceEpoch(), 
-										position[0], position[1], position[2],
-										position[3], position[4], position[5]);
-		len = mavlink_msg_to_send_buffer(buf, &msg);
-		bytes_sent = sendto(sock, buf, len, 0, (struct sockaddr*)&gcAddr, sizeof(struct sockaddr_in));
-		
-		/* Send attitude */
-		mavlink_msg_attitude_pack(mavlink_system.sysid, 200, &msg, microsSinceEpoch(), 1.2, 1.7, 3.14, 0.01, 0.02, 0.03);
-		len = mavlink_msg_to_send_buffer(buf, &msg);
-		bytes_sent = sendto(sock, buf, len, 0, (struct sockaddr*)&gcAddr, sizeof(struct sockaddr_in));
-		
-		
-		memset(buf, 0, BUFFER_LENGTH);
-		recsize = recvfrom(sock, (void *)buf, BUFFER_LENGTH, 0, (struct sockaddr *)&gcAddr, &fromlen);
-		if (recsize > 0)
-      	{
-			// Something received - print out all bytes and parse packet
-			mavlink_message_t msg;
-			mavlink_status_t status;
-			
-			printf("Bytes Received: %d\nDatagram: ", (int)recsize);
-			for (i = 0; i < recsize; ++i)
-			{
-				temp = buf[i];
-				printf("%02x ", (unsigned char)temp);
-				if (mavlink_parse_char(MAVLINK_COMM_0, buf[i], &msg, &status))
-				{
-					// Packet received
-					printf("\nReceived packet: SYS: %d, COMP: %d, LEN: %d, MSG ID: %d\n", msg.sysid, msg.compid, msg.len, msg.msgid);
-					
-					// Handle packet with waypoint component
-					mavlink_wpm_message_handler(&msg);
-					
-					// Handle packet with parameter component
-				}
-			}
-			printf("\n");
-		}
-		memset(buf, 0, BUFFER_LENGTH);
-		usleep(50000); // Sleep one second
-    }
-}
-
-
-/* QNX timer version */
-#if (defined __QNX__) | (defined __QNXNTO__)
-uint64_t microsSinceEpoch()
-{
-	
-	struct timespec time;
-	
-	uint64_t micros = 0;
-	
-	clock_gettime(CLOCK_REALTIME, &time);  
-	micros = (uint64_t)time.tv_sec * 100000 + time.tv_nsec/1000;
-	
-	return micros;
-}
-#else
-uint64_t microsSinceEpoch()
-{
-	
-	struct timeval tv;
-	
-	uint64_t micros = 0;
-	
-	gettimeofday(&tv, NULL);  
-	micros =  ((uint64_t)tv.tv_sec) * 1000000 + tv.tv_usec;
-	
-	return micros;
-}
-#endif
\ No newline at end of file
diff --git a/libraries/GCS_MAVLink/missionlib/testing/udp.c b/libraries/GCS_MAVLink/missionlib/testing/udp.c
deleted file mode 100644
index dc096be51bd2b38c58240eb833703e90af31c54f..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/missionlib/testing/udp.c
+++ /dev/null
@@ -1,1073 +0,0 @@
-/*******************************************************************************
- 
- Copyright (C) 2011 Lorenz Meier lm ( a t ) inf.ethz.ch
-                and Bryan Godbolt godbolt ( a t ) ualberta.ca
- 
- adapted from example written by Bryan Godbolt godbolt ( a t ) ualberta.ca
- 
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- 
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
- 
- You should have received a copy of the GNU General Public License
- along with this program.  If not, see <http://www.gnu.org/licenses/>.
- 
- ****************************************************************************/
-/*
- This program sends some data to qgroundcontrol using the mavlink protocol.  The sent packets
- cause qgroundcontrol to respond with heartbeats.  Any settings or custom commands sent from
- qgroundcontrol are printed by this program along with the heartbeats.
- 
- 
- I compiled this program sucessfully on Ubuntu 10.04 with the following command
- 
- gcc -I ../../pixhawk/mavlink/include -o udp-server udp.c
- 
- the rt library is needed for the clock_gettime on linux
- */
-/* These headers are for QNX, but should all be standard on unix/linux */
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <time.h>
-#if (defined __QNX__) | (defined __QNXNTO__)
-/* QNX specific headers */
-#include <unix.h>
-#else
-/* Linux / MacOS POSIX timer headers */
-#include <sys/time.h>
-#include <time.h>
-#include <arpa/inet.h>
-#endif
-
-/* This assumes you have the mavlink headers on your include path
- or in the same folder as this source file */
-#include <mavlink.h>
-
-
-#define BUFFER_LENGTH 2041 // minimum buffer size that can be used with qnx (I don't know why)
-
-uint64_t microsSinceEpoch();
-
-
-// FIXME XXX - TO BE MOVED TO XML
-enum MAVLINK_WPM_STATES
-{
-    MAVLINK_WPM_STATE_IDLE = 0,
-    MAVLINK_WPM_STATE_SENDLIST,
-    MAVLINK_WPM_STATE_SENDLIST_SENDWPS,
-    MAVLINK_WPM_STATE_GETLIST,
-    MAVLINK_WPM_STATE_GETLIST_GETWPS,
-    MAVLINK_WPM_STATE_GETLIST_GOTALL,
-	MAVLINK_WPM_STATE_ENUM_END
-};
-
-enum MAVLINK_WPM_CODES
-{
-    MAVLINK_WPM_CODE_OK = 0,
-    MAVLINK_WPM_CODE_ERR_WAYPOINT_ACTION_NOT_SUPPORTED,
-    MAVLINK_WPM_CODE_ERR_WAYPOINT_FRAME_NOT_SUPPORTED,
-    MAVLINK_WPM_CODE_ERR_WAYPOINT_OUT_OF_BOUNDS,
-    MAVLINK_WPM_CODE_ERR_WAYPOINT_MAX_NUMBER_EXCEEDED,
-    MAVLINK_WPM_CODE_ENUM_END
-};
-
-
-/* WAYPOINT MANAGER - MISSION LIB */
-
-#define MAVLINK_WPM_MAX_WP_COUNT 100
-#define MAVLINK_WPM_CONFIG_IN_FLIGHT_UPDATE  ///< Enable double buffer and in-flight updates
-#define MAVLINK_WPM_TEXT_FEEDBACK            ///< Report back status information as text
-#define MAVLINK_WPM_SYSTEM_ID 1
-#define MAVLINK_WPM_COMPONENT_ID 1
-
-struct _mavlink_wpm_storage {
-	mavlink_waypoint_t waypoints[MAVLINK_WPM_MAX_WP_COUNT];      ///< Currently active waypoints
-#ifdef MAVLINK_WPM_CONFIG_IN_FLIGHT_UPDATE
-	mavlink_waypoint_t rcv_waypoints[MAVLINK_WPM_MAX_WP_COUNT];  ///< Receive buffer for next waypoints
-#endif
-	uint16_t count;
-	MAVLINK_WPM_STATES current_state;
-} mavlink_wpm_storage;
-
-
-void mavlink_wpm_init(mavlink_wpm_storage* state)
-{
-	// Set all waypoints to zero
-	
-	// Set count to zero
-	state->count = 0;
-	state->current_state = MAVLINK_WPM_STATE_IDLE;
-}
-
-
-PX_WAYPOINTPLANNER_STATES current_state = PX_WPP_IDLE;
-uint16_t protocol_current_wp_id = 0;
-uint16_t protocol_current_count = 0;
-uint8_t protocol_current_partner_systemid = 0;
-uint8_t protocol_current_partner_compid = 0;
-uint64_t protocol_timestamp_lastaction = 0;
-
-uint64_t timestamp_last_send_setpoint = 0;
-
-
-/*
- *  @brief Sends an waypoint ack message
- */
-void mavlink_wpm_send_waypoint_ack(uint8_t target_systemid, uint8_t target_compid, uint8_t type)
-{
-    mavlink_message_t msg;
-    mavlink_waypoint_ack_t wpa;
-	
-    wpa.target_system = target_systemid;
-    wpa.target_component = target_compid;
-    wpa.type = type;
-	
-    mavlink_msg_waypoint_ack_encode(systemid, compid, &msg, &wpa);
-    mavlink_message_t_publish(lcm, "MAVLINK", &msg);
-	
-    usleep(paramClient->getParamValue("PROTOCOLDELAY"));
-	
-    if (verbose) printf("Sent waypoint ack (%u) to ID %u\n", wpa.type, wpa.target_system);
-}
-
-/*
- *  @brief Broadcasts the new target waypoint and directs the MAV to fly there
- *
- *  This function broadcasts its new active waypoint sequence number and
- *  sends a message to the controller, advising it to fly to the coordinates
- *  of the waypoint with a given orientation
- *
- *  @param seq The waypoint sequence number the MAV should fly to.
- */
-void mavlink_wpm_send_waypoint_current(uint16_t seq)
-{
-    if(seq < waypoints->size())
-    {
-        mavlink_waypoint_t *cur = waypoints->at(seq);
-		
-        mavlink_message_t msg;
-        mavlink_waypoint_current_t wpc;
-		
-        wpc.seq = cur->seq;
-		
-        mavlink_msg_waypoint_current_encode(systemid, compid, &msg, &wpc);
-        mavlink_message_t_publish(lcm, "MAVLINK", &msg);
-		
-        usleep(paramClient->getParamValue("PROTOCOLDELAY"));
-		
-        if (verbose) printf("Broadcasted new current waypoint %u\n", wpc.seq);
-    }
-    else
-    {
-        if (verbose) printf("ERROR: index out of bounds\n");
-    }
-}
-
-/*
- *  @brief Directs the MAV to fly to a position
- *
- *  Sends a message to the controller, advising it to fly to the coordinates
- *  of the waypoint with a given orientation
- *
- *  @param seq The waypoint sequence number the MAV should fly to.
- */
-void mavlink_wpm_send_setpoint(uint16_t seq)
-{
-    if(seq < waypoints->size())
-    {
-        mavlink_waypoint_t *cur = waypoints->at(seq);
-		
-        mavlink_message_t msg;
-        mavlink_local_position_setpoint_set_t PControlSetPoint;
-		
-        // send new set point to local IMU
-        if (cur->frame == 1)
-        {
-            PControlSetPoint.target_system = systemid;
-            PControlSetPoint.target_component = MAV_COMP_ID_IMU;
-            PControlSetPoint.x = cur->x;
-            PControlSetPoint.y = cur->y;
-            PControlSetPoint.z = cur->z;
-            PControlSetPoint.yaw = cur->param4;
-			
-            mavlink_msg_local_position_setpoint_set_encode(systemid, compid, &msg, &PControlSetPoint);
-            mavlink_message_t_publish(lcm, "MAVLINK", &msg);
-			
-            usleep(paramClient->getParamValue("PROTOCOLDELAY"));
-        }
-        else
-        {
-            if (verbose) printf("No new set point sent to IMU because the new waypoint %u had no local coordinates\n", cur->seq);
-        }
-		
-        struct timeval tv;
-        gettimeofday(&tv, NULL);
-        uint64_t now = ((uint64_t)tv.tv_sec) * 1000000 + tv.tv_usec;
-        timestamp_last_send_setpoint = now;
-    }
-    else
-    {
-        if (verbose) printf("ERROR: index out of bounds\n");
-    }
-}
-
-void mavlink_wpm_send_waypoint_count(uint8_t target_systemid, uint8_t target_compid, uint16_t count)
-{
-    mavlink_message_t msg;
-    mavlink_waypoint_count_t wpc;
-	
-    wpc.target_system = target_systemid;
-    wpc.target_component = target_compid;
-    wpc.count = count;
-	
-    mavlink_msg_waypoint_count_encode(systemid, compid, &msg, &wpc);
-    mavlink_message_t_publish(lcm, "MAVLINK", &msg);
-	
-    if (verbose) printf("Sent waypoint count (%u) to ID %u\n", wpc.count, wpc.target_system);
-	
-    usleep(paramClient->getParamValue("PROTOCOLDELAY"));
-}
-
-void mavlink_wpm_send_waypoint(uint8_t target_systemid, uint8_t target_compid, uint16_t seq)
-{
-    if (seq < waypoints->size())
-    {
-        mavlink_message_t msg;
-        mavlink_waypoint_t *wp = waypoints->at(seq);
-        wp->target_system = target_systemid;
-        wp->target_component = target_compid;
-        mavlink_msg_waypoint_encode(systemid, compid, &msg, wp);
-        mavlink_message_t_publish(lcm, "MAVLINK", &msg);
-        if (verbose) printf("Sent waypoint %u to ID %u\n", wp->seq, wp->target_system);
-		
-        usleep(paramClient->getParamValue("PROTOCOLDELAY"));
-    }
-    else
-    {
-        if (verbose) printf("ERROR: index out of bounds\n");
-    }
-}
-
-void mavlink_wpm_send_waypoint_request(uint8_t target_systemid, uint8_t target_compid, uint16_t seq)
-{
-    if (seq < waypoints->size())
-    {
-        mavlink_message_t msg;
-        mavlink_waypoint_request_t wpr;
-        wpr.target_system = target_systemid;
-        wpr.target_component = target_compid;
-        wpr.seq = seq;
-        mavlink_msg_waypoint_request_encode(systemid, compid, &msg, &wpr);
-        mavlink_message_t_publish(lcm, "MAVLINK", &msg);
-        if (verbose) printf("Sent waypoint request %u to ID %u\n", wpr.seq, wpr.target_system);
-		
-        usleep(paramClient->getParamValue("PROTOCOLDELAY"));
-    }
-    else
-    {
-        if (verbose) printf("ERROR: index out of bounds\n");
-    }
-}
-
-/*
- *  @brief emits a message that a waypoint reached
- *
- *  This function broadcasts a message that a waypoint is reached.
- *
- *  @param seq The waypoint sequence number the MAV has reached.
- */
-void mavlink_wpm_send_waypoint_reached(uint16_t seq)
-{
-    mavlink_message_t msg;
-    mavlink_waypoint_reached_t wp_reached;
-	
-    wp_reached.seq = seq;
-	
-    mavlink_msg_waypoint_reached_encode(systemid, compid, &msg, &wp_reached);
-    mavlink_message_t_publish(lcm, "MAVLINK", &msg);
-	
-    if (verbose) printf("Sent waypoint %u reached message\n", wp_reached.seq);
-	
-    usleep(paramClient->getParamValue("PROTOCOLDELAY"));
-}
-
-float mavlink_wpm_distance_to_segment(uint16_t seq, float x, float y, float z)
-{
-    if (seq < waypoints->size())
-    {
-        mavlink_waypoint_t *cur = waypoints->at(seq);
-		
-        const PxVector3 A(cur->x, cur->y, cur->z);
-        const PxVector3 C(x, y, z);
-		
-        // seq not the second last waypoint
-        if ((uint16_t)(seq+1) < waypoints->size())
-        {
-            mavlink_waypoint_t *next = waypoints->at(seq+1);
-            const PxVector3 B(next->x, next->y, next->z);
-            const float r = (B-A).dot(C-A) / (B-A).lengthSquared();
-            if (r >= 0 && r <= 1)
-            {
-                const PxVector3 P(A + r*(B-A));
-                return (P-C).length();
-            }
-            else if (r < 0.f)
-            {
-                return (C-A).length();
-            }
-            else
-            {
-                return (C-B).length();
-            }
-        }
-        else
-        {
-            return (C-A).length();
-        }
-    }
-    else
-    {
-        if (verbose) printf("ERROR: index out of bounds\n");
-    }
-    return -1.f;
-}
-
-float mavlink_wpm_distance_to_point(uint16_t seq, float x, float y, float z)
-{
-    if (seq < waypoints->size())
-    {
-        mavlink_waypoint_t *cur = waypoints->at(seq);
-		
-        const PxVector3 A(cur->x, cur->y, cur->z);
-        const PxVector3 C(x, y, z);
-		
-        return (C-A).length();
-    }
-    else
-    {
-        if (verbose) printf("ERROR: index out of bounds\n");
-    }
-    return -1.f;
-}
-
-
-static void mavlink_wpm_mavlink_handler(const lcm_recv_buf_t *rbuf, const char * channel, const mavlink_message_t* msg, void * user)
-{
-    // Handle param messages
-    paramClient->handleMAVLinkPacket(msg);
-	
-    //check for timed-out operations
-    struct timeval tv;
-    gettimeofday(&tv, NULL);
-    uint64_t now = ((uint64_t)tv.tv_sec) * 1000000 + tv.tv_usec;
-    if (now-protocol_timestamp_lastaction > paramClient->getParamValue("PROTOCOLTIMEOUT") && current_state != PX_WPP_IDLE)
-    {
-        if (verbose) printf("Last operation (state=%u) timed out, changing state to PX_WPP_IDLE\n", current_state);
-        current_state = PX_WPP_IDLE;
-        protocol_current_count = 0;
-        protocol_current_partner_systemid = 0;
-        protocol_current_partner_compid = 0;
-        protocol_current_wp_id = -1;
-		
-        if(waypoints->size() == 0)
-        {
-            current_active_wp_id = -1;
-        }
-    }
-	
-    if(now-timestamp_last_send_setpoint > paramClient->getParamValue("SETPOINTDELAY") && current_active_wp_id < waypoints->size())
-    {
-        send_setpoint(current_active_wp_id);
-    }
-	
-    switch(msg->msgid)
-    {
-		case MAVLINK_MSG_ID_ATTITUDE:
-        {
-            if(msg->sysid == systemid && current_active_wp_id < waypoints->size())
-            {
-                mavlink_waypoint_t *wp = waypoints->at(current_active_wp_id);
-                if(wp->frame == 1)
-                {
-                    mavlink_attitude_t att;
-                    mavlink_msg_attitude_decode(msg, &att);
-                    float yaw_tolerance = paramClient->getParamValue("YAWTOLERANCE");
-                    //compare current yaw
-                    if (att.yaw - yaw_tolerance >= 0.0f && att.yaw + yaw_tolerance < 2.f*M_PI)
-                    {
-                        if (att.yaw - yaw_tolerance <= wp->param4 && att.yaw + yaw_tolerance >= wp->param4)
-                            yawReached = true;
-                    }
-                    else if(att.yaw - yaw_tolerance < 0.0f)
-                    {
-                        float lowerBound = 360.0f + att.yaw - yaw_tolerance;
-                        if (lowerBound < wp->param4 || wp->param4 < att.yaw + yaw_tolerance)
-                            yawReached = true;
-                    }
-                    else
-                    {
-                        float upperBound = att.yaw + yaw_tolerance - 2.f*M_PI;
-                        if (att.yaw - yaw_tolerance < wp->param4 || wp->param4 < upperBound)
-                            yawReached = true;
-                    }
-                }
-            }
-            break;
-        }
-			
-		case MAVLINK_MSG_ID_LOCAL_POSITION:
-        {
-            if(msg->sysid == systemid && current_active_wp_id < waypoints->size())
-            {
-                mavlink_waypoint_t *wp = waypoints->at(current_active_wp_id);
-				
-                if(wp->frame == 1)
-                {
-                    mavlink_local_position_t pos;
-                    mavlink_msg_local_position_decode(msg, &pos);
-                    if (debug) printf("Received new position: x: %f | y: %f | z: %f\n", pos.x, pos.y, pos.z);
-					
-                    posReached = false;
-					
-                    // compare current position (given in message) with current waypoint
-                    float orbit = wp->param1;
-					
-                    float dist;
-                    if (wp->param2 == 0)
-                    {
-                        dist = distanceToSegment(current_active_wp_id, pos.x, pos.y, pos.z);
-                    }
-                    else
-                    {
-                        dist = distanceToPoint(current_active_wp_id, pos.x, pos.y, pos.z);
-                    }
-					
-                    if (dist >= 0.f && dist <= orbit && yawReached)
-                    {
-                        posReached = true;
-                    }
-                }
-            }
-            break;
-        }
-			
-		case MAVLINK_MSG_ID_CMD: // special action from ground station
-        {
-            mavlink_cmd_t action;
-            mavlink_msg_cmd_decode(msg, &action);
-            if(action.target == systemid)
-            {
-                if (verbose) std::cerr << "Waypoint: received message with action " << action.action << std::endl;
-                switch (action.action)
-                {
-						//				case MAV_ACTION_LAUNCH:
-						//					if (verbose) std::cerr << "Launch received" << std::endl;
-						//					current_active_wp_id = 0;
-						//					if (waypoints->size()>0)
-						//					{
-						//						setActive(waypoints[current_active_wp_id]);
-						//					}
-						//					else
-						//						if (verbose) std::cerr << "No launch, waypointList empty" << std::endl;
-						//					break;
-						
-						//				case MAV_ACTION_CONTINUE:
-						//					if (verbose) std::c
-						//					err << "Continue received" << std::endl;
-						//					idle = false;
-						//					setActive(waypoints[current_active_wp_id]);
-						//					break;
-						
-						//				case MAV_ACTION_HALT:
-						//					if (verbose) std::cerr << "Halt received" << std::endl;
-						//					idle = true;
-						//					break;
-						
-						//				default:
-						//					if (verbose) std::cerr << "Unknown action received with id " << action.action << ", no action taken" << std::endl;
-						//					break;
-                }
-            }
-            break;
-        }
-			
-		case MAVLINK_MSG_ID_WAYPOINT_ACK:
-        {
-            mavlink_waypoint_ack_t wpa;
-            mavlink_msg_waypoint_ack_decode(msg, &wpa);
-			
-            if((msg->sysid == protocol_current_partner_systemid && msg->compid == protocol_current_partner_compid) && (wpa.target_system == systemid && wpa.target_component == compid))
-            {
-                protocol_timestamp_lastaction = now;
-				
-                if (current_state == PX_WPP_SENDLIST || current_state == PX_WPP_SENDLIST_SENDWPS)
-                {
-                    if (protocol_current_wp_id == waypoints->size()-1)
-                    {
-                        if (verbose) printf("Received Ack after having sent last waypoint, going to state PX_WPP_IDLE\n");
-                        current_state = PX_WPP_IDLE;
-                        protocol_current_wp_id = 0;
-                    }
-                }
-            }
-            break;
-        }
-			
-		case MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT:
-        {
-            mavlink_waypoint_set_current_t wpc;
-            mavlink_msg_waypoint_set_current_decode(msg, &wpc);
-			
-            if(wpc.target_system == systemid && wpc.target_component == compid)
-            {
-                protocol_timestamp_lastaction = now;
-				
-                if (current_state == PX_WPP_IDLE)
-                {
-                    if (wpc.seq < waypoints->size())
-                    {
-                        if (verbose) printf("Received MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT\n");
-                        current_active_wp_id = wpc.seq;
-                        uint32_t i;
-                        for(i = 0; i < waypoints->size(); i++)
-                        {
-                            if (i == current_active_wp_id)
-                            {
-                                waypoints->at(i)->current = true;
-                            }
-                            else
-                            {
-                                waypoints->at(i)->current = false;
-                            }
-                        }
-                        if (verbose) printf("New current waypoint %u\n", current_active_wp_id);
-                        yawReached = false;
-                        posReached = false;
-                        send_waypoint_current(current_active_wp_id);
-                        send_setpoint(current_active_wp_id);
-                        timestamp_firstinside_orbit = 0;
-                    }
-                    else
-                    {
-                        if (verbose) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT: Index out of bounds\n");
-                    }
-                }
-            }
-            break;
-        }
-			
-		case MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST:
-        {
-            mavlink_waypoint_request_list_t wprl;
-            mavlink_msg_waypoint_request_list_decode(msg, &wprl);
-            if(wprl.target_system == systemid && wprl.target_component == compid)
-            {
-                protocol_timestamp_lastaction = now;
-				
-                if (current_state == PX_WPP_IDLE || current_state == PX_WPP_SENDLIST)
-                {
-                    if (waypoints->size() > 0)
-                    {
-                        if (verbose && current_state == PX_WPP_IDLE) printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST from %u changing state to PX_WPP_SENDLIST\n", msg->sysid);
-                        if (verbose && current_state == PX_WPP_SENDLIST) printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST again from %u staying in state PX_WPP_SENDLIST\n", msg->sysid);
-                        current_state = PX_WPP_SENDLIST;
-                        protocol_current_wp_id = 0;
-                        protocol_current_partner_systemid = msg->sysid;
-                        protocol_current_partner_compid = msg->compid;
-                    }
-                    else
-                    {
-                        if (verbose) printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST from %u but have no waypoints, staying in \n", msg->sysid);
-                    }
-                    protocol_current_count = waypoints->size();
-                    send_waypoint_count(msg->sysid,msg->compid, protocol_current_count);
-                }
-                else
-                {
-                    if (verbose) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST because i'm doing something else already (state=%i).\n", current_state);
-                }
-            }
-            break;
-        }
-			
-		case MAVLINK_MSG_ID_WAYPOINT_REQUEST:
-        {
-            mavlink_waypoint_request_t wpr;
-            mavlink_msg_waypoint_request_decode(msg, &wpr);
-            if(msg->sysid == protocol_current_partner_systemid && msg->compid == protocol_current_partner_compid && wpr.target_system == systemid && wpr.target_component == compid)
-            {
-                protocol_timestamp_lastaction = now;
-				
-                //ensure that we are in the correct state and that the first request has id 0 and the following requests have either the last id (re-send last waypoint) or last_id+1 (next waypoint)
-                if ((current_state == PX_WPP_SENDLIST && wpr.seq == 0) || (current_state == PX_WPP_SENDLIST_SENDWPS && (wpr.seq == protocol_current_wp_id || wpr.seq == protocol_current_wp_id + 1) && wpr.seq < waypoints->size()))
-                {
-                    if (verbose && current_state == PX_WPP_SENDLIST) printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST of waypoint %u from %u changing state to PX_WPP_SENDLIST_SENDWPS\n", wpr.seq, msg->sysid);
-                    if (verbose && current_state == PX_WPP_SENDLIST_SENDWPS && wpr.seq == protocol_current_wp_id + 1) printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST of waypoint %u from %u staying in state PX_WPP_SENDLIST_SENDWPS\n", wpr.seq, msg->sysid);
-                    if (verbose && current_state == PX_WPP_SENDLIST_SENDWPS && wpr.seq == protocol_current_wp_id) printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST of waypoint %u (again) from %u staying in state PX_WPP_SENDLIST_SENDWPS\n", wpr.seq, msg->sysid);
-					
-                    current_state = PX_WPP_SENDLIST_SENDWPS;
-                    protocol_current_wp_id = wpr.seq;
-                    send_waypoint(protocol_current_partner_systemid, protocol_current_partner_compid, wpr.seq);
-                }
-                else
-                {
-                    if (verbose)
-                    {
-                        if (!(current_state == PX_WPP_SENDLIST || current_state == PX_WPP_SENDLIST_SENDWPS)) { printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST because i'm doing something else already (state=%i).\n", current_state); break; }
-                        else if (current_state == PX_WPP_SENDLIST)
-                        {
-                            if (wpr.seq != 0) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST because the first requested waypoint ID (%u) was not 0.\n", wpr.seq);
-                        }
-                        else if (current_state == PX_WPP_SENDLIST_SENDWPS)
-                        {
-                            if (wpr.seq != protocol_current_wp_id && wpr.seq != protocol_current_wp_id + 1) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST because the requested waypoint ID (%u) was not the expected (%u or %u).\n", wpr.seq, protocol_current_wp_id, protocol_current_wp_id+1);
-                            else if (wpr.seq >= waypoints->size()) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST because the requested waypoint ID (%u) was out of bounds.\n", wpr.seq);
-                        }
-                        else printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST - FIXME: missed error description\n");
-                    }
-                }
-            }
-            else
-            {
-                //we we're target but already communicating with someone else
-                if((wpr.target_system == systemid && wpr.target_component == compid) && !(msg->sysid == protocol_current_partner_systemid && msg->compid == protocol_current_partner_compid))
-                {
-                    if (verbose) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST from ID %u because i'm already talking to ID %u.\n", msg->sysid, protocol_current_partner_systemid);
-                }
-            }
-            break;
-        }
-			
-		case MAVLINK_MSG_ID_WAYPOINT_COUNT:
-        {
-            mavlink_waypoint_count_t wpc;
-            mavlink_msg_waypoint_count_decode(msg, &wpc);
-            if(wpc.target_system == systemid && wpc.target_component == compid)
-            {
-                protocol_timestamp_lastaction = now;
-				
-                if (current_state == PX_WPP_IDLE || (current_state == PX_WPP_GETLIST && protocol_current_wp_id == 0))
-                {
-                    if (wpc.count > 0)
-                    {
-                        if (verbose && current_state == PX_WPP_IDLE) printf("Got MAVLINK_MSG_ID_WAYPOINT_COUNT (%u) from %u changing state to PX_WPP_GETLIST\n", wpc.count, msg->sysid);
-                        if (verbose && current_state == PX_WPP_GETLIST) printf("Got MAVLINK_MSG_ID_WAYPOINT_COUNT (%u) again from %u\n", wpc.count, msg->sysid);
-						
-                        current_state = PX_WPP_GETLIST;
-                        protocol_current_wp_id = 0;
-                        protocol_current_partner_systemid = msg->sysid;
-                        protocol_current_partner_compid = msg->compid;
-                        protocol_current_count = wpc.count;
-						
-                        printf("clearing receive buffer and readying for receiving waypoints\n");
-                        while(waypoints_receive_buffer->size() > 0)
-                        {
-                            delete waypoints_receive_buffer->back();
-                            waypoints_receive_buffer->pop_back();
-                        }
-						
-                        send_waypoint_request(protocol_current_partner_systemid, protocol_current_partner_compid, protocol_current_wp_id);
-                    }
-                    else if (wpc.count == 0)
-                    {
-                        printf("got waypoint count of 0, clearing waypoint list and staying in state PX_WPP_IDLE\n");
-                        while(waypoints_receive_buffer->size() > 0)
-                        {
-                            delete waypoints->back();
-                            waypoints->pop_back();
-                        }
-                        current_active_wp_id = -1;
-                        yawReached = false;
-                        posReached = false;
-                        break;
-						
-                    }
-                    else
-                    {
-                        if (verbose) printf("Ignoring MAVLINK_MSG_ID_WAYPOINT_COUNT from %u with count of %u\n", msg->sysid, wpc.count);
-                    }
-                }
-                else
-                {
-                    if (verbose && !(current_state == PX_WPP_IDLE || current_state == PX_WPP_GETLIST)) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_COUNT because i'm doing something else already (state=%i).\n", current_state);
-                    else if (verbose && current_state == PX_WPP_GETLIST && protocol_current_wp_id != 0) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_COUNT because i'm already receiving waypoint %u.\n", protocol_current_wp_id);
-                    else printf("Ignored MAVLINK_MSG_ID_WAYPOINT_COUNT - FIXME: missed error description\n");
-                }
-            }
-            break;
-        }
-			
-		case MAVLINK_MSG_ID_WAYPOINT:
-        {
-            mavlink_waypoint_t wp;
-            mavlink_msg_waypoint_decode(msg, &wp);
-			
-            if((msg->sysid == protocol_current_partner_systemid && msg->compid == protocol_current_partner_compid) && (wp.target_system == systemid && wp.target_component == compid))
-            {
-                protocol_timestamp_lastaction = now;
-				
-                //ensure that we are in the correct state and that the first waypoint has id 0 and the following waypoints have the correct ids
-                if ((current_state == PX_WPP_GETLIST && wp.seq == 0) || (current_state == PX_WPP_GETLIST_GETWPS && wp.seq == protocol_current_wp_id && wp.seq < protocol_current_count))
-                {
-                    if (verbose && current_state == PX_WPP_GETLIST) printf("Got MAVLINK_MSG_ID_WAYPOINT %u from %u changing state to PX_WPP_GETLIST_GETWPS\n", wp.seq, msg->sysid);
-                    if (verbose && current_state == PX_WPP_GETLIST_GETWPS && wp.seq == protocol_current_wp_id) printf("Got MAVLINK_MSG_ID_WAYPOINT %u from %u\n", wp.seq, msg->sysid);
-                    if (verbose && current_state == PX_WPP_GETLIST_GETWPS && wp.seq-1 == protocol_current_wp_id) printf("Got MAVLINK_MSG_ID_WAYPOINT %u (again) from %u\n", wp.seq, msg->sysid);
-					
-                    current_state = PX_WPP_GETLIST_GETWPS;
-                    protocol_current_wp_id = wp.seq + 1;
-                    mavlink_waypoint_t* newwp = new mavlink_waypoint_t;
-                    memcpy(newwp, &wp, sizeof(mavlink_waypoint_t));
-                    waypoints_receive_buffer->push_back(newwp);
-					
-                    if (verbose) printf ("Added new waypoint to list. X= %f\t Y= %f\t Z= %f\t Yaw= %f\n", newwp->x, newwp->y, newwp->z, newwp->param4);
-					
-                    if(protocol_current_wp_id == protocol_current_count && current_state == PX_WPP_GETLIST_GETWPS)
-                    {
-                        if (verbose) printf("Got all %u waypoints, changing state to PX_WPP_IDLE\n", protocol_current_count);
-						
-                        send_waypoint_ack(protocol_current_partner_systemid, protocol_current_partner_compid, 0);
-						
-                        if (current_active_wp_id > waypoints_receive_buffer->size()-1)
-                        {
-                            current_active_wp_id = waypoints_receive_buffer->size() - 1;
-                        }
-						
-                        // switch the waypoints list
-                        std::vector<mavlink_waypoint_t*>* waypoints_temp = waypoints;
-                        waypoints = waypoints_receive_buffer;
-                        waypoints_receive_buffer = waypoints_temp;
-						
-                        //get the new current waypoint
-                        uint32_t i;
-                        for(i = 0; i < waypoints->size(); i++)
-                        {
-                            if (waypoints->at(i)->current == 1)
-                            {
-                                current_active_wp_id = i;
-                                //if (verbose) printf("New current waypoint %u\n", current_active_wp_id);
-                                yawReached = false;
-                                posReached = false;
-                                send_waypoint_current(current_active_wp_id);
-                                send_setpoint(current_active_wp_id);
-                                timestamp_firstinside_orbit = 0;
-                                break;
-                            }
-                        }
-						
-                        if (i == waypoints->size())
-                        {
-                            current_active_wp_id = -1;
-                            yawReached = false;
-                            posReached = false;
-                            timestamp_firstinside_orbit = 0;
-                        }
-						
-                        current_state = PX_WPP_IDLE;
-                    }
-                    else
-                    {
-                        send_waypoint_request(protocol_current_partner_systemid, protocol_current_partner_compid, protocol_current_wp_id);
-                    }
-                }
-                else
-                {
-                    if (current_state == PX_WPP_IDLE)
-                    {
-                        //we're done receiving waypoints, answer with ack.
-                        send_waypoint_ack(protocol_current_partner_systemid, protocol_current_partner_compid, 0);
-                        printf("Received MAVLINK_MSG_ID_WAYPOINT while state=PX_WPP_IDLE, answered with WAYPOINT_ACK.\n");
-                    }
-                    if (verbose)
-                    {
-                        if (!(current_state == PX_WPP_GETLIST || current_state == PX_WPP_GETLIST_GETWPS)) { printf("Ignored MAVLINK_MSG_ID_WAYPOINT %u because i'm doing something else already (state=%i).\n", wp.seq, current_state); break; }
-                        else if (current_state == PX_WPP_GETLIST)
-                        {
-                            if(!(wp.seq == 0)) printf("Ignored MAVLINK_MSG_ID_WAYPOINT because the first waypoint ID (%u) was not 0.\n", wp.seq);
-                            else printf("Ignored MAVLINK_MSG_ID_WAYPOINT %u - FIXME: missed error description\n", wp.seq);
-                        }
-                        else if (current_state == PX_WPP_GETLIST_GETWPS)
-                        {
-                            if (!(wp.seq == protocol_current_wp_id)) printf("Ignored MAVLINK_MSG_ID_WAYPOINT because the waypoint ID (%u) was not the expected %u.\n", wp.seq, protocol_current_wp_id);
-                            else if (!(wp.seq < protocol_current_count)) printf("Ignored MAVLINK_MSG_ID_WAYPOINT because the waypoint ID (%u) was out of bounds.\n", wp.seq);
-                            else printf("Ignored MAVLINK_MSG_ID_WAYPOINT %u - FIXME: missed error description\n", wp.seq);
-                        }
-                        else printf("Ignored MAVLINK_MSG_ID_WAYPOINT %u - FIXME: missed error description\n", wp.seq);
-                    }
-                }
-            }
-            else
-            {
-                //we we're target but already communicating with someone else
-                if((wp.target_system == systemid && wp.target_component == compid) && !(msg->sysid == protocol_current_partner_systemid && msg->compid == protocol_current_partner_compid) && current_state != PX_WPP_IDLE)
-                {
-                    if (verbose) printf("Ignored MAVLINK_MSG_ID_WAYPOINT %u from ID %u because i'm already talking to ID %u.\n", wp.seq, msg->sysid, protocol_current_partner_systemid);
-                }
-                else if(wp.target_system == systemid && wp.target_component == compid)
-                {
-                    if (verbose) printf("Ignored MAVLINK_MSG_ID_WAYPOINT %u from ID %u because i have no idea what to do with it\n", wp.seq, msg->sysid);
-                }
-            }
-            break;
-        }
-			
-		case MAVLINK_MSG_ID_WAYPOINT_CLEAR_ALL:
-        {
-            mavlink_waypoint_clear_all_t wpca;
-            mavlink_msg_waypoint_clear_all_decode(msg, &wpca);
-			
-            if(wpca.target_system == systemid && wpca.target_component == compid && current_state == PX_WPP_IDLE)
-            {
-                protocol_timestamp_lastaction = now;
-				
-                if (verbose) printf("Got MAVLINK_MSG_ID_WAYPOINT_CLEAR_LIST from %u deleting all waypoints\n", msg->sysid);
-                while(waypoints->size() > 0)
-                {
-                    delete waypoints->back();
-                    waypoints->pop_back();
-                }
-                current_active_wp_id = -1;
-                yawReached = false;
-                posReached = false;
-            }
-            else if (wpca.target_system == systemid && wpca.target_component == compid && current_state != PX_WPP_IDLE)
-            {
-                if (verbose) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_CLEAR_LIST from %u because i'm doing something else already (state=%i).\n", msg->sysid, current_state);
-            }
-            break;
-        }
-			
-		default:
-        {
-            if (debug) std::cerr << "Waypoint: received message of unknown type" << std::endl;
-            break;
-        }
-    }
-	
-    //check if the current waypoint was reached
-    if ((posReached && /*yawReached &&*/ !idle))
-    {
-        if (current_active_wp_id < waypoints->size())
-        {
-            mavlink_waypoint_t *cur_wp = waypoints->at(current_active_wp_id);
-			
-            if (timestamp_firstinside_orbit == 0)
-            {
-                // Announce that last waypoint was reached
-                if (verbose) printf("*** Reached waypoint %u ***\n", cur_wp->seq);
-                send_waypoint_reached(cur_wp->seq);
-                timestamp_firstinside_orbit = now;
-            }
-			
-            // check if the MAV was long enough inside the waypoint orbit
-            //if (now-timestamp_lastoutside_orbit > (cur_wp->hold_time*1000))
-            if(now-timestamp_firstinside_orbit >= cur_wp->param2*1000)
-            {
-                if (cur_wp->autocontinue)
-                {
-                    cur_wp->current = 0;
-                    if (current_active_wp_id == waypoints->size() - 1 && waypoints->size() > 1)
-                    {
-                        //the last waypoint was reached, if auto continue is
-                        //activated restart the waypoint list from the beginning
-                        current_active_wp_id = 1;
-                    }
-                    else
-                    {
-                        if ((uint16_t)(current_active_wp_id + 1) < waypoints->size())
-                            current_active_wp_id++;
-                    }
-					
-                    // Fly to next waypoint
-                    timestamp_firstinside_orbit = 0;
-                    send_waypoint_current(current_active_wp_id);
-                    send_setpoint(current_active_wp_id);
-                    waypoints->at(current_active_wp_id)->current = true;
-                    posReached = false;
-                    yawReached = false;
-                    if (verbose) printf("Set new waypoint (%u)\n", current_active_wp_id);
-                }
-            }
-        }
-    }
-    else
-    {
-        timestamp_lastoutside_orbit = now;
-    }
-}
-
-
-
-
-
-
-
-
-int main(int argc, char* argv[])
-{
-	
-	char help[] = "--help";
-	
-	
-	char target_ip[100];
-	
-	float position[6] = {};
-	int sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
-	struct sockaddr_in gcAddr; 
-	struct sockaddr_in locAddr;
-	//struct sockaddr_in fromAddr;
-	uint8_t buf[BUFFER_LENGTH];
-	ssize_t recsize;
-	socklen_t fromlen;
-	int bytes_sent;
-	mavlink_message_t msg;
-	uint16_t len;
-	int i = 0;
-	//int success = 0;
-	unsigned int temp = 0;
-	
-	// Check if --help flag was used
-	if ((argc == 2) && (strcmp(argv[1], help) == 0))
-    {
-		printf("\n");
-		printf("\tUsage:\n\n");
-		printf("\t");
-		printf("%s", argv[0]);
-		printf(" <ip address of QGroundControl>\n");
-		printf("\tDefault for localhost: udp-server 127.0.0.1\n\n");
-		exit(EXIT_FAILURE);
-    }
-	
-	
-	// Change the target ip if parameter was given
-	strcpy(target_ip, "127.0.0.1");
-	if (argc == 2)
-    {
-		strcpy(target_ip, argv[1]);
-    }
-	
-	
-	memset(&locAddr, 0, sizeof(locAddr));
-	locAddr.sin_family = AF_INET;
-	locAddr.sin_addr.s_addr = INADDR_ANY;
-	locAddr.sin_port = htons(14551);
-	
-	/* Bind the socket to port 14551 - necessary to receive packets from qgroundcontrol */ 
-	if (-1 == bind(sock,(struct sockaddr *)&locAddr, sizeof(struct sockaddr)))
-    {
-		perror("error bind failed");
-		close(sock);
-		exit(EXIT_FAILURE);
-    } 
-	
-	/* Attempt to make it non blocking */
-	if (fcntl(sock, F_SETFL, O_NONBLOCK | FASYNC) < 0)
-    {
-		fprintf(stderr, "error setting nonblocking: %s\n", strerror(errno));
-		close(sock);
-		exit(EXIT_FAILURE);
-    }
-	
-	
-	memset(&gcAddr, 0, sizeof(gcAddr));
-	gcAddr.sin_family = AF_INET;
-	gcAddr.sin_addr.s_addr = inet_addr(target_ip);
-	gcAddr.sin_port = htons(14550);
-	
-	
-	printf("MAVLINK MISSION LIBRARY EXAMPLE PROCESS INITIALIZATION DONE, RUNNING..\n");
-	
-	
-	for (;;) 
-    {
-		
-		/*Send Heartbeat */
-		mavlink_msg_heartbeat_pack(1, 200, &msg, MAV_TYPE_HELICOPTER, MAV_CLASS_GENERIC);
-		len = mavlink_msg_to_send_buffer(buf, &msg);
-		bytes_sent = sendto(sock, buf, len, 0, (struct sockaddr*)&gcAddr, sizeof(struct sockaddr_in));
-		
-		/* Send Status */
-		mavlink_msg_sys_status_pack(1, 200, &msg, MAV_MODE_GUIDED, MAV_NAV_HOLD, MAV_STATE_ACTIVE, 500, 7500, 0, 0);
-		len = mavlink_msg_to_send_buffer(buf, &msg);
-		bytes_sent = sendto(sock, buf, len, 0, (struct sockaddr*)&gcAddr, sizeof (struct sockaddr_in));
-		
-		/* Send Local Position */
-		mavlink_msg_local_position_pack(1, 200, &msg, microsSinceEpoch(), 
-										position[0], position[1], position[2],
-										position[3], position[4], position[5]);
-		len = mavlink_msg_to_send_buffer(buf, &msg);
-		bytes_sent = sendto(sock, buf, len, 0, (struct sockaddr*)&gcAddr, sizeof(struct sockaddr_in));
-		
-		/* Send attitude */
-		mavlink_msg_attitude_pack(1, 200, &msg, microsSinceEpoch(), 1.2, 1.7, 3.14, 0.01, 0.02, 0.03);
-		len = mavlink_msg_to_send_buffer(buf, &msg);
-		bytes_sent = sendto(sock, buf, len, 0, (struct sockaddr*)&gcAddr, sizeof(struct sockaddr_in));
-		
-		
-		memset(buf, 0, BUFFER_LENGTH);
-		recsize = recvfrom(sock, (void *)buf, BUFFER_LENGTH, 0, (struct sockaddr *)&gcAddr, &fromlen);
-		if (recsize > 0)
-      	{
-			// Something received - print out all bytes and parse packet
-			mavlink_message_t msg;
-			mavlink_status_t status;
-			
-			printf("Bytes Received: %d\nDatagram: ", (int)recsize);
-			for (i = 0; i < recsize; ++i)
-			{
-				temp = buf[i];
-				printf("%02x ", (unsigned char)temp);
-				if (mavlink_parse_char(MAVLINK_COMM_0, buf[i], &msg, &status))
-				{
-					// Packet received
-					printf("\nReceived packet: SYS: %d, COMP: %d, LEN: %d, MSG ID: %d\n", msg.sysid, msg.compid, msg.len, msg.msgid);
-				}
-			}
-			printf("\n");
-		}
-		memset(buf, 0, BUFFER_LENGTH);
-		sleep(1); // Sleep one second
-    }
-}
-
-
-/* QNX timer version */
-#if (defined __QNX__) | (defined __QNXNTO__)
-uint64_t microsSinceEpoch()
-{
-	
-	struct timespec time;
-	
-	uint64_t micros = 0;
-	
-	clock_gettime(CLOCK_REALTIME, &time);  
-	micros = (uint64_t)time.tv_sec * 100000 + time.tv_nsec/1000;
-	
-	return micros;
-}
-#else
-uint64_t microsSinceEpoch()
-{
-	
-	struct timeval tv;
-	
-	uint64_t micros = 0;
-	
-	gettimeofday(&tv, NULL);  
-	micros =  ((uint64_t)tv.tv_sec) * 1000000 + tv.tv_usec;
-	
-	return micros;
-}
-#endif
\ No newline at end of file
diff --git a/libraries/GCS_MAVLink/missionlib/testing/udptest.1 b/libraries/GCS_MAVLink/missionlib/testing/udptest.1
deleted file mode 100644
index 78b31915f7e5c80f3b00d5711092d74eaaa420f3..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/missionlib/testing/udptest.1
+++ /dev/null
@@ -1,79 +0,0 @@
-.\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples.
-.\"See Also:
-.\"man mdoc.samples for a complete listing of options
-.\"man mdoc for the short list of editing options
-.\"/usr/share/misc/mdoc.template
-.Dd 01.08.11               \" DATE 
-.Dt udptest 1      \" Program name and manual section number 
-.Os Darwin
-.Sh NAME                 \" Section Header - required - don't modify 
-.Nm udptest,
-.\" The following lines are read in generating the apropos(man -k) database. Use only key
-.\" words here as the database is built based on the words here and in the .ND line. 
-.Nm Other_name_for_same_program(),
-.Nm Yet another name for the same program.
-.\" Use .Nm macro to designate other names for the documented program.
-.Nd This line parsed for whatis database.
-.Sh SYNOPSIS             \" Section Header - required - don't modify
-.Nm
-.Op Fl abcd              \" [-abcd]
-.Op Fl a Ar path         \" [-a path] 
-.Op Ar file              \" [file]
-.Op Ar                   \" [file ...]
-.Ar arg0                 \" Underlined argument - use .Ar anywhere to underline
-arg2 ...                 \" Arguments
-.Sh DESCRIPTION          \" Section Header - required - don't modify
-Use the .Nm macro to refer to your program throughout the man page like such:
-.Nm
-Underlining is accomplished with the .Ar macro like this:
-.Ar underlined text .
-.Pp                      \" Inserts a space
-A list of items with descriptions:
-.Bl -tag -width -indent  \" Begins a tagged list 
-.It item a               \" Each item preceded by .It macro
-Description of item a
-.It item b
-Description of item b
-.El                      \" Ends the list
-.Pp
-A list of flags and their descriptions:
-.Bl -tag -width -indent  \" Differs from above in tag removed 
-.It Fl a                 \"-a flag as a list item
-Description of -a flag
-.It Fl b
-Description of -b flag
-.El                      \" Ends the list
-.Pp
-.\" .Sh ENVIRONMENT      \" May not be needed
-.\" .Bl -tag -width "ENV_VAR_1" -indent \" ENV_VAR_1 is width of the string ENV_VAR_1
-.\" .It Ev ENV_VAR_1
-.\" Description of ENV_VAR_1
-.\" .It Ev ENV_VAR_2
-.\" Description of ENV_VAR_2
-.\" .El                      
-.Sh FILES                \" File used or created by the topic of the man page
-.Bl -tag -width "/Users/joeuser/Library/really_long_file_name" -compact
-.It Pa /usr/share/file_name
-FILE_1 description
-.It Pa /Users/joeuser/Library/really_long_file_name
-FILE_2 description
-.El                      \" Ends the list
-.\" .Sh DIAGNOSTICS       \" May not be needed
-.\" .Bl -diag
-.\" .It Diagnostic Tag
-.\" Diagnostic informtion here.
-.\" .It Diagnostic Tag
-.\" Diagnostic informtion here.
-.\" .El
-.Sh SEE ALSO 
-.\" List links in ascending order by section, alphabetically within a section.
-.\" Please do not reference files that do not exist without filing a bug report
-.Xr a 1 , 
-.Xr b 1 ,
-.Xr c 1 ,
-.Xr a 2 ,
-.Xr b 2 ,
-.Xr a 3 ,
-.Xr b 3 
-.\" .Sh BUGS              \" Document known, unremedied bugs 
-.\" .Sh HISTORY           \" Document history if command behaves in a unique manner
\ No newline at end of file
diff --git a/libraries/GCS_MAVLink/missionlib/testing/udptest.xcodeproj/.gitignore b/libraries/GCS_MAVLink/missionlib/testing/udptest.xcodeproj/.gitignore
deleted file mode 100644
index d82a5e47def52cce2467649612ca36ad79f40a63..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/missionlib/testing/udptest.xcodeproj/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.mode1v3
-*.pbxuser
diff --git a/libraries/GCS_MAVLink/missionlib/testing/udptest.xcodeproj/project.pbxproj b/libraries/GCS_MAVLink/missionlib/testing/udptest.xcodeproj/project.pbxproj
deleted file mode 100644
index ba27d2f32eed92413f59df2f43dc17a6830706f7..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/missionlib/testing/udptest.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,217 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 45;
-	objects = {
-
-/* Begin PBXBuildFile section */
-		34E8AFDB13F5064C001100AA /* waypoints.c in Sources */ = {isa = PBXBuildFile; fileRef = 34E8AFDA13F5064C001100AA /* waypoints.c */; };
-		8DD76FAC0486AB0100D96B5E /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = 08FB7796FE84155DC02AAC07 /* main.c */; settings = {ATTRIBUTES = (); }; };
-		8DD76FB00486AB0100D96B5E /* udptest.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = C6A0FF2C0290799A04C91782 /* udptest.1 */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXCopyFilesBuildPhase section */
-		8DD76FAF0486AB0100D96B5E /* CopyFiles */ = {
-			isa = PBXCopyFilesBuildPhase;
-			buildActionMask = 8;
-			dstPath = /usr/share/man/man1/;
-			dstSubfolderSpec = 0;
-			files = (
-				8DD76FB00486AB0100D96B5E /* udptest.1 in CopyFiles */,
-			);
-			runOnlyForDeploymentPostprocessing = 1;
-		};
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
-		08FB7796FE84155DC02AAC07 /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = "<group>"; };
-		34E8AFDA13F5064C001100AA /* waypoints.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = waypoints.c; path = ../waypoints.c; sourceTree = SOURCE_ROOT; };
-		34E8AFDC13F50659001100AA /* waypoints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = waypoints.h; path = ../waypoints.h; sourceTree = SOURCE_ROOT; };
-		8DD76FB20486AB0100D96B5E /* udptest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = udptest; sourceTree = BUILT_PRODUCTS_DIR; };
-		C6A0FF2C0290799A04C91782 /* udptest.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = udptest.1; sourceTree = "<group>"; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		8DD76FAD0486AB0100D96B5E /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		08FB7794FE84155DC02AAC07 /* udptest */ = {
-			isa = PBXGroup;
-			children = (
-				34E8AFDC13F50659001100AA /* waypoints.h */,
-				08FB7795FE84155DC02AAC07 /* Source */,
-				C6A0FF2B0290797F04C91782 /* Documentation */,
-				1AB674ADFE9D54B511CA2CBB /* Products */,
-			);
-			name = udptest;
-			sourceTree = "<group>";
-		};
-		08FB7795FE84155DC02AAC07 /* Source */ = {
-			isa = PBXGroup;
-			children = (
-				34E8AFDA13F5064C001100AA /* waypoints.c */,
-				08FB7796FE84155DC02AAC07 /* main.c */,
-			);
-			name = Source;
-			sourceTree = "<group>";
-		};
-		1AB674ADFE9D54B511CA2CBB /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				8DD76FB20486AB0100D96B5E /* udptest */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		C6A0FF2B0290797F04C91782 /* Documentation */ = {
-			isa = PBXGroup;
-			children = (
-				C6A0FF2C0290799A04C91782 /* udptest.1 */,
-			);
-			name = Documentation;
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
-		8DD76FA90486AB0100D96B5E /* udptest */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 1DEB928508733DD80010E9CD /* Build configuration list for PBXNativeTarget "udptest" */;
-			buildPhases = (
-				8DD76FAB0486AB0100D96B5E /* Sources */,
-				8DD76FAD0486AB0100D96B5E /* Frameworks */,
-				8DD76FAF0486AB0100D96B5E /* CopyFiles */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = udptest;
-			productInstallPath = "$(HOME)/bin";
-			productName = udptest;
-			productReference = 8DD76FB20486AB0100D96B5E /* udptest */;
-			productType = "com.apple.product-type.tool";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		08FB7793FE84155DC02AAC07 /* Project object */ = {
-			isa = PBXProject;
-			buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "udptest" */;
-			compatibilityVersion = "Xcode 3.1";
-			developmentRegion = English;
-			hasScannedForEncodings = 1;
-			knownRegions = (
-				English,
-				Japanese,
-				French,
-				German,
-			);
-			mainGroup = 08FB7794FE84155DC02AAC07 /* udptest */;
-			projectDirPath = "";
-			projectRoot = "";
-			targets = (
-				8DD76FA90486AB0100D96B5E /* udptest */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXSourcesBuildPhase section */
-		8DD76FAB0486AB0100D96B5E /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				8DD76FAC0486AB0100D96B5E /* main.c in Sources */,
-				34E8AFDB13F5064C001100AA /* waypoints.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
-		1DEB928608733DD80010E9CD /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				COPY_PHASE_STRIP = NO;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_MODEL_TUNING = G5;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				INSTALL_PATH = /usr/local/bin;
-				PRODUCT_NAME = udptest;
-			};
-			name = Debug;
-		};
-		1DEB928708733DD80010E9CD /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				GCC_MODEL_TUNING = G5;
-				INSTALL_PATH = /usr/local/bin;
-				PRODUCT_NAME = udptest;
-			};
-			name = Release;
-		};
-		1DEB928A08733DD80010E9CD /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				HEADER_SEARCH_PATHS = ../../include/common/;
-				ONLY_ACTIVE_ARCH = YES;
-				PREBINDING = NO;
-				SDKROOT = macosx10.6;
-			};
-			name = Debug;
-		};
-		1DEB928B08733DD80010E9CD /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
-				GCC_C_LANGUAGE_STANDARD = gnu99;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				PREBINDING = NO;
-				SDKROOT = macosx10.6;
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		1DEB928508733DD80010E9CD /* Build configuration list for PBXNativeTarget "udptest" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				1DEB928608733DD80010E9CD /* Debug */,
-				1DEB928708733DD80010E9CD /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "udptest" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				1DEB928A08733DD80010E9CD /* Debug */,
-				1DEB928B08733DD80010E9CD /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
-}
diff --git a/libraries/GCS_MAVLink/missionlib/testing/udptest.xcodeproj/user.mode1v3 b/libraries/GCS_MAVLink/missionlib/testing/udptest.xcodeproj/user.mode1v3
deleted file mode 100644
index 2bf1029cecde05b969add965636808d8dc0b6caa..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/missionlib/testing/udptest.xcodeproj/user.mode1v3
+++ /dev/null
@@ -1,1440 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>ActivePerspectiveName</key>
-	<string>Project</string>
-	<key>AllowedModules</key>
-	<array>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>PBXSmartGroupTreeModule</string>
-			<key>Name</key>
-			<string>Groups and Files Outline View</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>PBXNavigatorGroup</string>
-			<key>Name</key>
-			<string>Editor</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>XCTaskListModule</string>
-			<key>Name</key>
-			<string>Task List</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>XCDetailModule</string>
-			<key>Name</key>
-			<string>File and Smart Group Detail Viewer</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>1</string>
-			<key>Module</key>
-			<string>PBXBuildResultsModule</string>
-			<key>Name</key>
-			<string>Detailed Build Results Viewer</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>1</string>
-			<key>Module</key>
-			<string>PBXProjectFindModule</string>
-			<key>Name</key>
-			<string>Project Batch Find Tool</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>XCProjectFormatConflictsModule</string>
-			<key>Name</key>
-			<string>Project Format Conflicts List</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>PBXBookmarksModule</string>
-			<key>Name</key>
-			<string>Bookmarks Tool</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>PBXClassBrowserModule</string>
-			<key>Name</key>
-			<string>Class Browser</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>PBXCVSModule</string>
-			<key>Name</key>
-			<string>Source Code Control Tool</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>PBXDebugBreakpointsModule</string>
-			<key>Name</key>
-			<string>Debug Breakpoints Tool</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>XCDockableInspector</string>
-			<key>Name</key>
-			<string>Inspector</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>PBXOpenQuicklyModule</string>
-			<key>Name</key>
-			<string>Open Quickly Tool</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>1</string>
-			<key>Module</key>
-			<string>PBXDebugSessionModule</string>
-			<key>Name</key>
-			<string>Debugger</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>1</string>
-			<key>Module</key>
-			<string>PBXDebugCLIModule</string>
-			<key>Name</key>
-			<string>Debug Console</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>XCSnapshotModule</string>
-			<key>Name</key>
-			<string>Snapshots Tool</string>
-		</dict>
-	</array>
-	<key>BundlePath</key>
-	<string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string>
-	<key>Description</key>
-	<string>DefaultDescriptionKey</string>
-	<key>DockingSystemVisible</key>
-	<false/>
-	<key>Extension</key>
-	<string>mode1v3</string>
-	<key>FavBarConfig</key>
-	<dict>
-		<key>PBXProjectModuleGUID</key>
-		<string>CEA4FF3213E6BD8E002506EF</string>
-		<key>XCBarModuleItemNames</key>
-		<dict/>
-		<key>XCBarModuleItems</key>
-		<array/>
-	</dict>
-	<key>FirstTimeWindowDisplayed</key>
-	<false/>
-	<key>Identifier</key>
-	<string>com.apple.perspectives.project.mode1v3</string>
-	<key>MajorVersion</key>
-	<integer>33</integer>
-	<key>MinorVersion</key>
-	<integer>0</integer>
-	<key>Name</key>
-	<string>Default</string>
-	<key>Notifications</key>
-	<array/>
-	<key>OpenEditors</key>
-	<array>
-		<dict>
-			<key>Content</key>
-			<dict>
-				<key>PBXProjectModuleGUID</key>
-				<string>CED081F713E6F90000BAE9DD</string>
-				<key>PBXProjectModuleLabel</key>
-				<string>px_waypointplanner.cc</string>
-				<key>PBXSplitModuleInNavigatorKey</key>
-				<dict>
-					<key>Split0</key>
-					<dict>
-						<key>PBXProjectModuleGUID</key>
-						<string>CED081F813E6F90000BAE9DD</string>
-						<key>PBXProjectModuleLabel</key>
-						<string>px_waypointplanner.cc</string>
-						<key>_historyCapacity</key>
-						<integer>0</integer>
-						<key>bookmark</key>
-						<string>CED081FB13E6F90000BAE9DD</string>
-						<key>history</key>
-						<array>
-							<string>CED081F913E6F90000BAE9DD</string>
-						</array>
-					</dict>
-					<key>SplitCount</key>
-					<string>1</string>
-				</dict>
-				<key>StatusBarVisibility</key>
-				<true/>
-			</dict>
-			<key>Geometry</key>
-			<dict>
-				<key>Frame</key>
-				<string>{{0, 20}, {995, 634}}</string>
-				<key>PBXModuleWindowStatusBarHidden2</key>
-				<false/>
-				<key>RubberWindowFrame</key>
-				<string>15 103 995 675 0 0 1280 778 </string>
-			</dict>
-		</dict>
-	</array>
-	<key>PerspectiveWidths</key>
-	<array>
-		<integer>-1</integer>
-		<integer>-1</integer>
-	</array>
-	<key>Perspectives</key>
-	<array>
-		<dict>
-			<key>ChosenToolbarItems</key>
-			<array>
-				<string>active-combo-popup</string>
-				<string>action</string>
-				<string>NSToolbarFlexibleSpaceItem</string>
-				<string>debugger-enable-breakpoints</string>
-				<string>build-and-go</string>
-				<string>com.apple.ide.PBXToolbarStopButton</string>
-				<string>get-info</string>
-				<string>NSToolbarFlexibleSpaceItem</string>
-				<string>com.apple.pbx.toolbar.searchfield</string>
-			</array>
-			<key>ControllerClassBaseName</key>
-			<string></string>
-			<key>IconName</key>
-			<string>WindowOfProjectWithEditor</string>
-			<key>Identifier</key>
-			<string>perspective.project</string>
-			<key>IsVertical</key>
-			<false/>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>ContentConfiguration</key>
-					<dict>
-						<key>PBXBottomSmartGroupGIDs</key>
-						<array>
-							<string>1C37FBAC04509CD000000102</string>
-							<string>1C37FAAC04509CD000000102</string>
-							<string>1C37FABC05509CD000000102</string>
-							<string>1C37FABC05539CD112110102</string>
-							<string>E2644B35053B69B200211256</string>
-							<string>1C37FABC04509CD000100104</string>
-							<string>1CC0EA4004350EF90044410B</string>
-							<string>1CC0EA4004350EF90041110B</string>
-						</array>
-						<key>PBXProjectModuleGUID</key>
-						<string>1CE0B1FE06471DED0097A5F4</string>
-						<key>PBXProjectModuleLabel</key>
-						<string>Files</string>
-						<key>PBXProjectStructureProvided</key>
-						<string>yes</string>
-						<key>PBXSmartGroupTreeModuleColumnData</key>
-						<dict>
-							<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
-							<array>
-								<real>186</real>
-							</array>
-							<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
-							<array>
-								<string>MainColumn</string>
-							</array>
-						</dict>
-						<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
-						<dict>
-							<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
-							<array>
-								<string>08FB7794FE84155DC02AAC07</string>
-								<string>1C37FBAC04509CD000000102</string>
-								<string>1C37FABC05509CD000000102</string>
-							</array>
-							<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
-							<array>
-								<array>
-									<integer>0</integer>
-								</array>
-							</array>
-							<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
-							<string>{{0, 0}, {186, 615}}</string>
-						</dict>
-						<key>PBXTopSmartGroupGIDs</key>
-						<array/>
-						<key>XCIncludePerspectivesSwitch</key>
-						<true/>
-						<key>XCSharingToken</key>
-						<string>com.apple.Xcode.GFSharingToken</string>
-					</dict>
-					<key>GeometryConfiguration</key>
-					<dict>
-						<key>Frame</key>
-						<string>{{0, 0}, {203, 633}}</string>
-						<key>GroupTreeTableConfiguration</key>
-						<array>
-							<string>MainColumn</string>
-							<real>186</real>
-						</array>
-						<key>RubberWindowFrame</key>
-						<string>0 104 1280 674 0 0 1280 778 </string>
-					</dict>
-					<key>Module</key>
-					<string>PBXSmartGroupTreeModule</string>
-					<key>Proportion</key>
-					<string>203pt</string>
-				</dict>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>1CE0B20306471E060097A5F4</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>mavlink_msg_waypoint_count.h</string>
-								<key>PBXSplitModuleInNavigatorKey</key>
-								<dict>
-									<key>Split0</key>
-									<dict>
-										<key>PBXProjectModuleGUID</key>
-										<string>1CE0B20406471E060097A5F4</string>
-										<key>PBXProjectModuleLabel</key>
-										<string>mavlink_msg_waypoint_count.h</string>
-										<key>_historyCapacity</key>
-										<integer>0</integer>
-										<key>bookmark</key>
-										<string>CED081F313E6F90000BAE9DD</string>
-										<key>history</key>
-										<array>
-											<string>CED081EC13E6F90000BAE9DD</string>
-											<string>CED081ED13E6F90000BAE9DD</string>
-											<string>CED081EF13E6F90000BAE9DD</string>
-											<string>CED081F113E6F90000BAE9DD</string>
-										</array>
-									</dict>
-									<key>SplitCount</key>
-									<string>1</string>
-								</dict>
-								<key>StatusBarVisibility</key>
-								<true/>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{0, 0}, {1072, 556}}</string>
-								<key>RubberWindowFrame</key>
-								<string>0 104 1280 674 0 0 1280 778 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXNavigatorGroup</string>
-							<key>Proportion</key>
-							<string>556pt</string>
-						</dict>
-						<dict>
-							<key>BecomeActive</key>
-							<true/>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>1CE0B20506471E060097A5F4</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>Detail</string>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{0, 561}, {1072, 72}}</string>
-								<key>RubberWindowFrame</key>
-								<string>0 104 1280 674 0 0 1280 778 </string>
-							</dict>
-							<key>Module</key>
-							<string>XCDetailModule</string>
-							<key>Proportion</key>
-							<string>72pt</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>1072pt</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Project</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>XCModuleDock</string>
-				<string>PBXSmartGroupTreeModule</string>
-				<string>XCModuleDock</string>
-				<string>PBXNavigatorGroup</string>
-				<string>XCDetailModule</string>
-			</array>
-			<key>TableOfContents</key>
-			<array>
-				<string>CED081F513E6F90000BAE9DD</string>
-				<string>1CE0B1FE06471DED0097A5F4</string>
-				<string>CED081F613E6F90000BAE9DD</string>
-				<string>1CE0B20306471E060097A5F4</string>
-				<string>1CE0B20506471E060097A5F4</string>
-			</array>
-			<key>ToolbarConfigUserDefaultsMinorVersion</key>
-			<string>2</string>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.defaultV3</string>
-		</dict>
-		<dict>
-			<key>ControllerClassBaseName</key>
-			<string></string>
-			<key>IconName</key>
-			<string>WindowOfProject</string>
-			<key>Identifier</key>
-			<string>perspective.morph</string>
-			<key>IsVertical</key>
-			<integer>0</integer>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>BecomeActive</key>
-					<integer>1</integer>
-					<key>ContentConfiguration</key>
-					<dict>
-						<key>PBXBottomSmartGroupGIDs</key>
-						<array>
-							<string>1C37FBAC04509CD000000102</string>
-							<string>1C37FAAC04509CD000000102</string>
-							<string>1C08E77C0454961000C914BD</string>
-							<string>1C37FABC05509CD000000102</string>
-							<string>1C37FABC05539CD112110102</string>
-							<string>E2644B35053B69B200211256</string>
-							<string>1C37FABC04509CD000100104</string>
-							<string>1CC0EA4004350EF90044410B</string>
-							<string>1CC0EA4004350EF90041110B</string>
-						</array>
-						<key>PBXProjectModuleGUID</key>
-						<string>11E0B1FE06471DED0097A5F4</string>
-						<key>PBXProjectModuleLabel</key>
-						<string>Files</string>
-						<key>PBXProjectStructureProvided</key>
-						<string>yes</string>
-						<key>PBXSmartGroupTreeModuleColumnData</key>
-						<dict>
-							<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
-							<array>
-								<real>186</real>
-							</array>
-							<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
-							<array>
-								<string>MainColumn</string>
-							</array>
-						</dict>
-						<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
-						<dict>
-							<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
-							<array>
-								<string>29B97314FDCFA39411CA2CEA</string>
-								<string>1C37FABC05509CD000000102</string>
-							</array>
-							<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
-							<array>
-								<array>
-									<integer>0</integer>
-								</array>
-							</array>
-							<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
-							<string>{{0, 0}, {186, 337}}</string>
-						</dict>
-						<key>PBXTopSmartGroupGIDs</key>
-						<array/>
-						<key>XCIncludePerspectivesSwitch</key>
-						<integer>1</integer>
-						<key>XCSharingToken</key>
-						<string>com.apple.Xcode.GFSharingToken</string>
-					</dict>
-					<key>GeometryConfiguration</key>
-					<dict>
-						<key>Frame</key>
-						<string>{{0, 0}, {203, 355}}</string>
-						<key>GroupTreeTableConfiguration</key>
-						<array>
-							<string>MainColumn</string>
-							<real>186</real>
-						</array>
-						<key>RubberWindowFrame</key>
-						<string>373 269 690 397 0 0 1440 878 </string>
-					</dict>
-					<key>Module</key>
-					<string>PBXSmartGroupTreeModule</string>
-					<key>Proportion</key>
-					<string>100%</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Morph</string>
-			<key>PreferredWidth</key>
-			<integer>300</integer>
-			<key>ServiceClasses</key>
-			<array>
-				<string>XCModuleDock</string>
-				<string>PBXSmartGroupTreeModule</string>
-			</array>
-			<key>TableOfContents</key>
-			<array>
-				<string>11E0B1FE06471DED0097A5F4</string>
-			</array>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.default.shortV3</string>
-		</dict>
-	</array>
-	<key>PerspectivesBarVisible</key>
-	<false/>
-	<key>ShelfIsVisible</key>
-	<false/>
-	<key>SourceDescription</key>
-	<string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
-	<key>StatusbarIsVisible</key>
-	<true/>
-	<key>TimeStamp</key>
-	<real>0.0</real>
-	<key>ToolbarConfigUserDefaultsMinorVersion</key>
-	<string>2</string>
-	<key>ToolbarDisplayMode</key>
-	<integer>1</integer>
-	<key>ToolbarIsVisible</key>
-	<true/>
-	<key>ToolbarSizeMode</key>
-	<integer>1</integer>
-	<key>Type</key>
-	<string>Perspectives</string>
-	<key>UpdateMessage</key>
-	<string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature).  You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature.  Do you wish to update to the latest Workspace defaults for project '%@'?</string>
-	<key>WindowJustification</key>
-	<integer>5</integer>
-	<key>WindowOrderList</key>
-	<array>
-		<string>CED0820513E6F90000BAE9DD</string>
-		<string>CED0820613E6F90000BAE9DD</string>
-		<string>CED0820713E6F90000BAE9DD</string>
-		<string>1C78EAAD065D492600B07095</string>
-		<string>1CD10A99069EF8BA00B06720</string>
-		<string>CEA4FF3313E6BD8E002506EF</string>
-		<string>CED081F713E6F90000BAE9DD</string>
-		<string>/Users/user/src/mavlink10/missionlib/testing/udptest.xcodeproj</string>
-	</array>
-	<key>WindowString</key>
-	<string>0 104 1280 674 0 0 1280 778 </string>
-	<key>WindowToolsV3</key>
-	<array>
-		<dict>
-			<key>FirstTimeWindowDisplayed</key>
-			<false/>
-			<key>Identifier</key>
-			<string>windowTool.build</string>
-			<key>IsVertical</key>
-			<true/>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>1CD0528F0623707200166675</string>
-								<key>PBXProjectModuleLabel</key>
-								<string></string>
-								<key>StatusBarVisibility</key>
-								<true/>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{0, 0}, {500, 218}}</string>
-								<key>RubberWindowFrame</key>
-								<string>29 258 500 500 0 0 1280 778 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXNavigatorGroup</string>
-							<key>Proportion</key>
-							<string>218pt</string>
-						</dict>
-						<dict>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>XCMainBuildResultsModuleGUID</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>Build Results</string>
-								<key>XCBuildResultsTrigger_Collapse</key>
-								<integer>1021</integer>
-								<key>XCBuildResultsTrigger_Open</key>
-								<integer>1011</integer>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{0, 223}, {500, 236}}</string>
-								<key>RubberWindowFrame</key>
-								<string>29 258 500 500 0 0 1280 778 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXBuildResultsModule</string>
-							<key>Proportion</key>
-							<string>236pt</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>459pt</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Build Results</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXBuildResultsModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<true/>
-			<key>TableOfContents</key>
-			<array>
-				<string>CEA4FF3313E6BD8E002506EF</string>
-				<string>CED081FD13E6F90000BAE9DD</string>
-				<string>1CD0528F0623707200166675</string>
-				<string>XCMainBuildResultsModuleGUID</string>
-			</array>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.buildV3</string>
-			<key>WindowContentMinSize</key>
-			<string>486 300</string>
-			<key>WindowString</key>
-			<string>29 258 500 500 0 0 1280 778 </string>
-			<key>WindowToolGUID</key>
-			<string>CEA4FF3313E6BD8E002506EF</string>
-			<key>WindowToolIsVisible</key>
-			<false/>
-		</dict>
-		<dict>
-			<key>FirstTimeWindowDisplayed</key>
-			<false/>
-			<key>Identifier</key>
-			<string>windowTool.debugger</string>
-			<key>IsVertical</key>
-			<true/>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>Debugger</key>
-								<dict>
-									<key>HorizontalSplitView</key>
-									<dict>
-										<key>_collapsingFrameDimension</key>
-										<real>0.0</real>
-										<key>_indexOfCollapsedView</key>
-										<integer>0</integer>
-										<key>_percentageOfCollapsedView</key>
-										<real>0.0</real>
-										<key>isCollapsed</key>
-										<string>yes</string>
-										<key>sizes</key>
-										<array>
-											<string>{{0, 0}, {316, 198}}</string>
-											<string>{{316, 0}, {378, 198}}</string>
-										</array>
-									</dict>
-									<key>VerticalSplitView</key>
-									<dict>
-										<key>_collapsingFrameDimension</key>
-										<real>0.0</real>
-										<key>_indexOfCollapsedView</key>
-										<integer>0</integer>
-										<key>_percentageOfCollapsedView</key>
-										<real>0.0</real>
-										<key>isCollapsed</key>
-										<string>yes</string>
-										<key>sizes</key>
-										<array>
-											<string>{{0, 0}, {694, 198}}</string>
-											<string>{{0, 198}, {694, 183}}</string>
-										</array>
-									</dict>
-								</dict>
-								<key>LauncherConfigVersion</key>
-								<string>8</string>
-								<key>PBXProjectModuleGUID</key>
-								<string>1C162984064C10D400B95A72</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>Debug - GLUTExamples (Underwater)</string>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>DebugConsoleVisible</key>
-								<string>None</string>
-								<key>DebugConsoleWindowFrame</key>
-								<string>{{200, 200}, {500, 300}}</string>
-								<key>DebugSTDIOWindowFrame</key>
-								<string>{{200, 200}, {500, 300}}</string>
-								<key>Frame</key>
-								<string>{{0, 0}, {694, 381}}</string>
-								<key>PBXDebugSessionStackFrameViewKey</key>
-								<dict>
-									<key>DebugVariablesTableConfiguration</key>
-									<array>
-										<string>Name</string>
-										<real>120</real>
-										<string>Value</string>
-										<real>85</real>
-										<string>Summary</string>
-										<real>148</real>
-									</array>
-									<key>Frame</key>
-									<string>{{316, 0}, {378, 198}}</string>
-									<key>RubberWindowFrame</key>
-									<string>196 241 694 422 0 0 1280 778 </string>
-								</dict>
-								<key>RubberWindowFrame</key>
-								<string>196 241 694 422 0 0 1280 778 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXDebugSessionModule</string>
-							<key>Proportion</key>
-							<string>381pt</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>381pt</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Debugger</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXDebugSessionModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<true/>
-			<key>TableOfContents</key>
-			<array>
-				<string>1CD10A99069EF8BA00B06720</string>
-				<string>CED081FE13E6F90000BAE9DD</string>
-				<string>1C162984064C10D400B95A72</string>
-				<string>CED081FF13E6F90000BAE9DD</string>
-				<string>CED0820013E6F90000BAE9DD</string>
-				<string>CED0820113E6F90000BAE9DD</string>
-				<string>CED0820213E6F90000BAE9DD</string>
-				<string>CED0820313E6F90000BAE9DD</string>
-			</array>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.debugV3</string>
-			<key>WindowString</key>
-			<string>196 241 694 422 0 0 1280 778 </string>
-			<key>WindowToolGUID</key>
-			<string>1CD10A99069EF8BA00B06720</string>
-			<key>WindowToolIsVisible</key>
-			<false/>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.find</string>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>Dock</key>
-							<array>
-								<dict>
-									<key>ContentConfiguration</key>
-									<dict>
-										<key>PBXProjectModuleGUID</key>
-										<string>1CDD528C0622207200134675</string>
-										<key>PBXProjectModuleLabel</key>
-										<string>&lt;No Editor&gt;</string>
-										<key>PBXSplitModuleInNavigatorKey</key>
-										<dict>
-											<key>Split0</key>
-											<dict>
-												<key>PBXProjectModuleGUID</key>
-												<string>1CD0528D0623707200166675</string>
-											</dict>
-											<key>SplitCount</key>
-											<string>1</string>
-										</dict>
-										<key>StatusBarVisibility</key>
-										<integer>1</integer>
-									</dict>
-									<key>GeometryConfiguration</key>
-									<dict>
-										<key>Frame</key>
-										<string>{{0, 0}, {781, 167}}</string>
-										<key>RubberWindowFrame</key>
-										<string>62 385 781 470 0 0 1440 878 </string>
-									</dict>
-									<key>Module</key>
-									<string>PBXNavigatorGroup</string>
-									<key>Proportion</key>
-									<string>781pt</string>
-								</dict>
-							</array>
-							<key>Proportion</key>
-							<string>50%</string>
-						</dict>
-						<dict>
-							<key>BecomeActive</key>
-							<integer>1</integer>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>1CD0528E0623707200166675</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>Project Find</string>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{8, 0}, {773, 254}}</string>
-								<key>RubberWindowFrame</key>
-								<string>62 385 781 470 0 0 1440 878 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXProjectFindModule</string>
-							<key>Proportion</key>
-							<string>50%</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>428pt</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Project Find</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXProjectFindModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<integer>1</integer>
-			<key>TableOfContents</key>
-			<array>
-				<string>1C530D57069F1CE1000CFCEE</string>
-				<string>1C530D58069F1CE1000CFCEE</string>
-				<string>1C530D59069F1CE1000CFCEE</string>
-				<string>1CDD528C0622207200134675</string>
-				<string>1C530D5A069F1CE1000CFCEE</string>
-				<string>1CE0B1FE06471DED0097A5F4</string>
-				<string>1CD0528E0623707200166675</string>
-			</array>
-			<key>WindowString</key>
-			<string>62 385 781 470 0 0 1440 878 </string>
-			<key>WindowToolGUID</key>
-			<string>1C530D57069F1CE1000CFCEE</string>
-			<key>WindowToolIsVisible</key>
-			<integer>0</integer>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>MENUSEPARATOR</string>
-		</dict>
-		<dict>
-			<key>FirstTimeWindowDisplayed</key>
-			<false/>
-			<key>Identifier</key>
-			<string>windowTool.debuggerConsole</string>
-			<key>IsVertical</key>
-			<true/>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>1C78EAAC065D492600B07095</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>Debugger Console</string>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{0, 0}, {650, 209}}</string>
-								<key>RubberWindowFrame</key>
-								<string>205 385 650 250 0 0 1280 778 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXDebugCLIModule</string>
-							<key>Proportion</key>
-							<string>209pt</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>209pt</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Debugger Console</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXDebugCLIModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<true/>
-			<key>TableOfContents</key>
-			<array>
-				<string>1C78EAAD065D492600B07095</string>
-				<string>CED0820413E6F90000BAE9DD</string>
-				<string>1C78EAAC065D492600B07095</string>
-			</array>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.consoleV3</string>
-			<key>WindowString</key>
-			<string>205 385 650 250 0 0 1280 778 </string>
-			<key>WindowToolGUID</key>
-			<string>1C78EAAD065D492600B07095</string>
-			<key>WindowToolIsVisible</key>
-			<false/>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.snapshots</string>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>Module</key>
-							<string>XCSnapshotModule</string>
-							<key>Proportion</key>
-							<string>100%</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>100%</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Snapshots</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>XCSnapshotModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<string>Yes</string>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.snapshots</string>
-			<key>WindowString</key>
-			<string>315 824 300 550 0 0 1440 878 </string>
-			<key>WindowToolIsVisible</key>
-			<string>Yes</string>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.scm</string>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>1C78EAB2065D492600B07095</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>&lt;No Editor&gt;</string>
-								<key>PBXSplitModuleInNavigatorKey</key>
-								<dict>
-									<key>Split0</key>
-									<dict>
-										<key>PBXProjectModuleGUID</key>
-										<string>1C78EAB3065D492600B07095</string>
-									</dict>
-									<key>SplitCount</key>
-									<string>1</string>
-								</dict>
-								<key>StatusBarVisibility</key>
-								<integer>1</integer>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{0, 0}, {452, 0}}</string>
-								<key>RubberWindowFrame</key>
-								<string>743 379 452 308 0 0 1280 1002 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXNavigatorGroup</string>
-							<key>Proportion</key>
-							<string>0pt</string>
-						</dict>
-						<dict>
-							<key>BecomeActive</key>
-							<integer>1</integer>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>1CD052920623707200166675</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>SCM</string>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>ConsoleFrame</key>
-								<string>{{0, 259}, {452, 0}}</string>
-								<key>Frame</key>
-								<string>{{0, 7}, {452, 259}}</string>
-								<key>RubberWindowFrame</key>
-								<string>743 379 452 308 0 0 1280 1002 </string>
-								<key>TableConfiguration</key>
-								<array>
-									<string>Status</string>
-									<real>30</real>
-									<string>FileName</string>
-									<real>199</real>
-									<string>Path</string>
-									<real>197.0950012207031</real>
-								</array>
-								<key>TableFrame</key>
-								<string>{{0, 0}, {452, 250}}</string>
-							</dict>
-							<key>Module</key>
-							<string>PBXCVSModule</string>
-							<key>Proportion</key>
-							<string>262pt</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>266pt</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>SCM</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXCVSModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<integer>1</integer>
-			<key>TableOfContents</key>
-			<array>
-				<string>1C78EAB4065D492600B07095</string>
-				<string>1C78EAB5065D492600B07095</string>
-				<string>1C78EAB2065D492600B07095</string>
-				<string>1CD052920623707200166675</string>
-			</array>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.scm</string>
-			<key>WindowString</key>
-			<string>743 379 452 308 0 0 1280 1002 </string>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.breakpoints</string>
-			<key>IsVertical</key>
-			<integer>0</integer>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>BecomeActive</key>
-							<integer>1</integer>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXBottomSmartGroupGIDs</key>
-								<array>
-									<string>1C77FABC04509CD000000102</string>
-								</array>
-								<key>PBXProjectModuleGUID</key>
-								<string>1CE0B1FE06471DED0097A5F4</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>Files</string>
-								<key>PBXProjectStructureProvided</key>
-								<string>no</string>
-								<key>PBXSmartGroupTreeModuleColumnData</key>
-								<dict>
-									<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
-									<array>
-										<real>168</real>
-									</array>
-									<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
-									<array>
-										<string>MainColumn</string>
-									</array>
-								</dict>
-								<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
-								<dict>
-									<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
-									<array>
-										<string>1C77FABC04509CD000000102</string>
-									</array>
-									<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
-									<array>
-										<array>
-											<integer>0</integer>
-										</array>
-									</array>
-									<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
-									<string>{{0, 0}, {168, 350}}</string>
-								</dict>
-								<key>PBXTopSmartGroupGIDs</key>
-								<array/>
-								<key>XCIncludePerspectivesSwitch</key>
-								<integer>0</integer>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{0, 0}, {185, 368}}</string>
-								<key>GroupTreeTableConfiguration</key>
-								<array>
-									<string>MainColumn</string>
-									<real>168</real>
-								</array>
-								<key>RubberWindowFrame</key>
-								<string>315 424 744 409 0 0 1440 878 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXSmartGroupTreeModule</string>
-							<key>Proportion</key>
-							<string>185pt</string>
-						</dict>
-						<dict>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>1CA1AED706398EBD00589147</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>Detail</string>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{190, 0}, {554, 368}}</string>
-								<key>RubberWindowFrame</key>
-								<string>315 424 744 409 0 0 1440 878 </string>
-							</dict>
-							<key>Module</key>
-							<string>XCDetailModule</string>
-							<key>Proportion</key>
-							<string>554pt</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>368pt</string>
-				</dict>
-			</array>
-			<key>MajorVersion</key>
-			<integer>3</integer>
-			<key>MinorVersion</key>
-			<integer>0</integer>
-			<key>Name</key>
-			<string>Breakpoints</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXSmartGroupTreeModule</string>
-				<string>XCDetailModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<integer>1</integer>
-			<key>TableOfContents</key>
-			<array>
-				<string>1CDDB66807F98D9800BB5817</string>
-				<string>1CDDB66907F98D9800BB5817</string>
-				<string>1CE0B1FE06471DED0097A5F4</string>
-				<string>1CA1AED706398EBD00589147</string>
-			</array>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.breakpointsV3</string>
-			<key>WindowString</key>
-			<string>315 424 744 409 0 0 1440 878 </string>
-			<key>WindowToolGUID</key>
-			<string>1CDDB66807F98D9800BB5817</string>
-			<key>WindowToolIsVisible</key>
-			<integer>1</integer>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.debugAnimator</string>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>Module</key>
-							<string>PBXNavigatorGroup</string>
-							<key>Proportion</key>
-							<string>100%</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>100%</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Debug Visualizer</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXNavigatorGroup</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<integer>1</integer>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.debugAnimatorV3</string>
-			<key>WindowString</key>
-			<string>100 100 700 500 0 0 1280 1002 </string>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.bookmarks</string>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>Module</key>
-							<string>PBXBookmarksModule</string>
-							<key>Proportion</key>
-							<string>100%</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>100%</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Bookmarks</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXBookmarksModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<integer>0</integer>
-			<key>WindowString</key>
-			<string>538 42 401 187 0 0 1280 1002 </string>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.projectFormatConflicts</string>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>Module</key>
-							<string>XCProjectFormatConflictsModule</string>
-							<key>Proportion</key>
-							<string>100%</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>100%</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Project Format Conflicts</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>XCProjectFormatConflictsModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<integer>0</integer>
-			<key>WindowContentMinSize</key>
-			<string>450 300</string>
-			<key>WindowString</key>
-			<string>50 850 472 307 0 0 1440 877</string>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.classBrowser</string>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>BecomeActive</key>
-							<integer>1</integer>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>OptionsSetName</key>
-								<string>Hierarchy, all classes</string>
-								<key>PBXProjectModuleGUID</key>
-								<string>1CA6456E063B45B4001379D8</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>Class Browser - NSObject</string>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>ClassesFrame</key>
-								<string>{{0, 0}, {374, 96}}</string>
-								<key>ClassesTreeTableConfiguration</key>
-								<array>
-									<string>PBXClassNameColumnIdentifier</string>
-									<real>208</real>
-									<string>PBXClassBookColumnIdentifier</string>
-									<real>22</real>
-								</array>
-								<key>Frame</key>
-								<string>{{0, 0}, {630, 331}}</string>
-								<key>MembersFrame</key>
-								<string>{{0, 105}, {374, 395}}</string>
-								<key>MembersTreeTableConfiguration</key>
-								<array>
-									<string>PBXMemberTypeIconColumnIdentifier</string>
-									<real>22</real>
-									<string>PBXMemberNameColumnIdentifier</string>
-									<real>216</real>
-									<string>PBXMemberTypeColumnIdentifier</string>
-									<real>97</real>
-									<string>PBXMemberBookColumnIdentifier</string>
-									<real>22</real>
-								</array>
-								<key>PBXModuleWindowStatusBarHidden2</key>
-								<integer>1</integer>
-								<key>RubberWindowFrame</key>
-								<string>385 179 630 352 0 0 1440 878 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXClassBrowserModule</string>
-							<key>Proportion</key>
-							<string>332pt</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>332pt</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Class Browser</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXClassBrowserModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<integer>0</integer>
-			<key>TableOfContents</key>
-			<array>
-				<string>1C0AD2AF069F1E9B00FABCE6</string>
-				<string>1C0AD2B0069F1E9B00FABCE6</string>
-				<string>1CA6456E063B45B4001379D8</string>
-			</array>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.classbrowser</string>
-			<key>WindowString</key>
-			<string>385 179 630 352 0 0 1440 878 </string>
-			<key>WindowToolGUID</key>
-			<string>1C0AD2AF069F1E9B00FABCE6</string>
-			<key>WindowToolIsVisible</key>
-			<integer>0</integer>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.refactoring</string>
-			<key>IncludeInToolsMenu</key>
-			<integer>0</integer>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>BecomeActive</key>
-							<integer>1</integer>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{0, 0}, {500, 335}</string>
-								<key>RubberWindowFrame</key>
-								<string>{0, 0}, {500, 335}</string>
-							</dict>
-							<key>Module</key>
-							<string>XCRefactoringModule</string>
-							<key>Proportion</key>
-							<string>100%</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>100%</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Refactoring</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>XCRefactoringModule</string>
-			</array>
-			<key>WindowString</key>
-			<string>200 200 500 356 0 0 1920 1200 </string>
-		</dict>
-	</array>
-</dict>
-</plist>
diff --git a/libraries/GCS_MAVLink/missionlib/testing/udptest.xcodeproj/user.pbxuser b/libraries/GCS_MAVLink/missionlib/testing/udptest.xcodeproj/user.pbxuser
deleted file mode 100644
index 548d2fa89dbad7b9388785b91696a4a31ef1def9..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/missionlib/testing/udptest.xcodeproj/user.pbxuser
+++ /dev/null
@@ -1,236 +0,0 @@
-// !$*UTF8*$!
-{
-	08FB7793FE84155DC02AAC07 /* Project object */ = {
-		activeBuildConfigurationName = Debug;
-		activeExecutable = CEA4FF2913E6BD6D002506EF /* udptest */;
-		activeTarget = 8DD76FA90486AB0100D96B5E /* udptest */;
-		codeSenseManager = CEA4FF4013E6BD8E002506EF /* Code sense */;
-		executables = (
-			CEA4FF2913E6BD6D002506EF /* udptest */,
-		);
-		perUserDictionary = {
-			PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
-				PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
-				PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
-				PBXFileTableDataSourceColumnWidthsKey = (
-					20,
-					833,
-					20,
-					48,
-					43,
-					43,
-					20,
-				);
-				PBXFileTableDataSourceColumnsKey = (
-					PBXFileDataSource_FiletypeID,
-					PBXFileDataSource_Filename_ColumnID,
-					PBXFileDataSource_Built_ColumnID,
-					PBXFileDataSource_ObjectSize_ColumnID,
-					PBXFileDataSource_Errors_ColumnID,
-					PBXFileDataSource_Warnings_ColumnID,
-					PBXFileDataSource_Target_ColumnID,
-				);
-			};
-			PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
-				PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
-				PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
-				PBXFileTableDataSourceColumnWidthsKey = (
-					20,
-					301,
-					60,
-					20,
-					48,
-					43,
-					43,
-				);
-				PBXFileTableDataSourceColumnsKey = (
-					PBXFileDataSource_FiletypeID,
-					PBXFileDataSource_Filename_ColumnID,
-					PBXTargetDataSource_PrimaryAttribute,
-					PBXFileDataSource_Built_ColumnID,
-					PBXFileDataSource_ObjectSize_ColumnID,
-					PBXFileDataSource_Errors_ColumnID,
-					PBXFileDataSource_Warnings_ColumnID,
-				);
-			};
-			PBXPerProjectTemplateStateSaveDate = 333907732;
-			PBXWorkspaceStateSaveDate = 333907732;
-		};
-		perUserProjectItems = {
-			CED081EC13E6F90000BAE9DD = CED081EC13E6F90000BAE9DD /* PBXTextBookmark */;
-			CED081ED13E6F90000BAE9DD = CED081ED13E6F90000BAE9DD /* PBXTextBookmark */;
-			CED081EF13E6F90000BAE9DD = CED081EF13E6F90000BAE9DD /* PBXTextBookmark */;
-			CED081F113E6F90000BAE9DD = CED081F113E6F90000BAE9DD /* PBXTextBookmark */;
-			CED081F313E6F90000BAE9DD = CED081F313E6F90000BAE9DD /* PBXTextBookmark */;
-			CED081F913E6F90000BAE9DD = CED081F913E6F90000BAE9DD /* PBXTextBookmark */;
-			CED081FB13E6F90000BAE9DD = CED081FB13E6F90000BAE9DD /* PBXTextBookmark */;
-		};
-		sourceControlManager = CEA4FF3F13E6BD8E002506EF /* Source Control */;
-		userBuildSettings = {
-		};
-	};
-	08FB7796FE84155DC02AAC07 /* main.c */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {1797, 14781}}";
-			sepNavSelRange = "{32946, 0}";
-			sepNavVisRange = "{32608, 2708}";
-			sepNavWindowFrame = "{{374, 47}, {906, 731}}";
-		};
-	};
-	8DD76FA90486AB0100D96B5E /* udptest */ = {
-		activeExec = 0;
-		executables = (
-			CEA4FF2913E6BD6D002506EF /* udptest */,
-		);
-	};
-	CEA4FF2913E6BD6D002506EF /* udptest */ = {
-		isa = PBXExecutable;
-		activeArgIndices = (
-		);
-		argumentStrings = (
-		);
-		autoAttachOnCrash = 1;
-		breakpointsEnabled = 0;
-		configStateDict = {
-		};
-		customDataFormattersEnabled = 1;
-		dataTipCustomDataFormattersEnabled = 1;
-		dataTipShowTypeColumn = 1;
-		dataTipSortType = 0;
-		debuggerPlugin = GDBDebugging;
-		disassemblyDisplayState = 0;
-		dylibVariantSuffix = "";
-		enableDebugStr = 1;
-		environmentEntries = (
-		);
-		executableSystemSymbolLevel = 0;
-		executableUserSymbolLevel = 0;
-		libgmallocEnabled = 0;
-		name = udptest;
-		savedGlobals = {
-		};
-		showTypeColumn = 0;
-		sourceDirectories = (
-		);
-	};
-	CEA4FF3F13E6BD8E002506EF /* Source Control */ = {
-		isa = PBXSourceControlManager;
-		fallbackIsa = XCSourceControlManager;
-		isSCMEnabled = 0;
-		scmConfiguration = {
-			repositoryNamesForRoots = {
-				"" = "";
-			};
-		};
-	};
-	CEA4FF4013E6BD8E002506EF /* Code sense */ = {
-		isa = PBXCodeSenseManager;
-		indexTemplatePath = "";
-	};
-	CED081EC13E6F90000BAE9DD /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 08FB7796FE84155DC02AAC07 /* main.c */;
-		name = "main.c: 678";
-		rLen = 31;
-		rLoc = 25201;
-		rType = 0;
-		vrLen = 2936;
-		vrLoc = 23777;
-	};
-	CED081ED13E6F90000BAE9DD /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = CED081EE13E6F90000BAE9DD /* mavlink_msg_waypoint_request.h */;
-		name = "mavlink_msg_waypoint_request.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 1362;
-		vrLoc = 0;
-	};
-	CED081EE13E6F90000BAE9DD /* mavlink_msg_waypoint_request.h */ = {
-		isa = PBXFileReference;
-		lastKnownFileType = sourcecode.c.h;
-		name = mavlink_msg_waypoint_request.h;
-		path = /Users/user/src/mavlink10/include/common/mavlink_msg_waypoint_request.h;
-		sourceTree = "<absolute>";
-	};
-	CED081EF13E6F90000BAE9DD /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = CED081F013E6F90000BAE9DD /* mavlink_msg_waypoint_clear_all.h */;
-		name = "mavlink_msg_waypoint_clear_all.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 1447;
-		vrLoc = 0;
-	};
-	CED081F013E6F90000BAE9DD /* mavlink_msg_waypoint_clear_all.h */ = {
-		isa = PBXFileReference;
-		lastKnownFileType = sourcecode.c.h;
-		name = mavlink_msg_waypoint_clear_all.h;
-		path = /Users/user/src/mavlink10/include/common/mavlink_msg_waypoint_clear_all.h;
-		sourceTree = "<absolute>";
-	};
-	CED081F113E6F90000BAE9DD /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = CED081F213E6F90000BAE9DD /* mavlink_msg_waypoint_count.h */;
-		rLen = 0;
-		rLoc = 9223372036854775808;
-		rType = 0;
-	};
-	CED081F213E6F90000BAE9DD /* mavlink_msg_waypoint_count.h */ = {
-		isa = PBXFileReference;
-		lastKnownFileType = sourcecode.c.h;
-		name = mavlink_msg_waypoint_count.h;
-		path = /Users/user/src/mavlink10/include/common/mavlink_msg_waypoint_count.h;
-		sourceTree = "<absolute>";
-	};
-	CED081F313E6F90000BAE9DD /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = CED081F413E6F90000BAE9DD /* mavlink_msg_waypoint_count.h */;
-		name = "mavlink_msg_waypoint_count.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 1530;
-		vrLoc = 0;
-	};
-	CED081F413E6F90000BAE9DD /* mavlink_msg_waypoint_count.h */ = {
-		isa = PBXFileReference;
-		lastKnownFileType = sourcecode.c.h;
-		name = mavlink_msg_waypoint_count.h;
-		path = /Users/user/src/mavlink10/include/common/mavlink_msg_waypoint_count.h;
-		sourceTree = "<absolute>";
-	};
-	CED081F913E6F90000BAE9DD /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = CED081FA13E6F90000BAE9DD /* px_waypointplanner.cc */;
-		rLen = 0;
-		rLoc = 41642;
-		rType = 0;
-	};
-	CED081FA13E6F90000BAE9DD /* px_waypointplanner.cc */ = {
-		isa = PBXFileReference;
-		lastKnownFileType = sourcecode.cpp.cpp;
-		name = px_waypointplanner.cc;
-		path = /Users/user/Documents/pixhawk/mavconn/src/planning/px_waypointplanner.cc;
-		sourceTree = "<absolute>";
-	};
-	CED081FB13E6F90000BAE9DD /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = CED081FC13E6F90000BAE9DD /* px_waypointplanner.cc */;
-		name = "px_waypointplanner.cc: 30";
-		rLen = 561;
-		rLoc = 785;
-		rType = 0;
-		vrLen = 1834;
-		vrLoc = 33761;
-	};
-	CED081FC13E6F90000BAE9DD /* px_waypointplanner.cc */ = {
-		isa = PBXFileReference;
-		lastKnownFileType = sourcecode.cpp.cpp;
-		name = px_waypointplanner.cc;
-		path = /Users/user/Documents/pixhawk/mavconn/src/planning/px_waypointplanner.cc;
-		sourceTree = "<absolute>";
-	};
-}
diff --git a/libraries/GCS_MAVLink/missionlib/waypoints.c b/libraries/GCS_MAVLink/missionlib/waypoints.c
deleted file mode 100644
index a7b8ee5f5ca0aa43be983ab1f1c1eaadaa616ee4..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/missionlib/waypoints.c
+++ /dev/null
@@ -1,1044 +0,0 @@
-/*******************************************************************************
- 
- Copyright (C) 2011 Lorenz Meier lm ( a t ) inf.ethz.ch
- 
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- 
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
- 
- You should have received a copy of the GNU General Public License
- along with this program.  If not, see <http://www.gnu.org/licenses/>.
- 
- ****************************************************************************/
-
-#include "waypoints.h"
-#include <math.h>
-
-bool debug = true;
-bool verbose = true;
-
-extern mavlink_system_t mavlink_system;
-extern mavlink_wpm_storage wpm;
-
-extern void mavlink_wpm_send_message(mavlink_message_t* msg);
-extern void mavlink_wpm_send_gcs_string(const char* string);
-extern uint64_t mavlink_wpm_get_system_timestamp();
-
-
-#define MAVLINK_WPM_NO_PRINTF
-
-void mavlink_wpm_init(mavlink_wpm_storage* state)
-{
-	// Set all waypoints to zero
-	
-	// Set count to zero
-	state->size = 0;
-	state->max_size = MAVLINK_WPM_MAX_WP_COUNT;
-	state->current_state = MAVLINK_WPM_STATE_IDLE;
-	state->current_partner_sysid = 0;
-	state->current_partner_compid = 0;
-	state->timestamp_lastaction = 0;
-	state->timestamp_last_send_setpoint = 0;
-	state->timeout = MAVLINK_WPM_PROTOCOL_TIMEOUT_DEFAULT;
-	state->delay_setpoint = MAVLINK_WPM_SETPOINT_DELAY_DEFAULT;
-	state->idle = false;      				///< indicates if the system is following the waypoints or is waiting
-	state->current_active_wp_id = -1;		///< id of current waypoint
-	state->yaw_reached = false;						///< boolean for yaw attitude reached
-	state->pos_reached = false;						///< boolean for position reached
-	state->timestamp_lastoutside_orbit = 0;///< timestamp when the MAV was last outside the orbit or had the wrong yaw value
-	state->timestamp_firstinside_orbit = 0;///< timestamp when the MAV was the first time after a waypoint change inside the orbit and had the correct yaw value
-	
-}
-
-/*
- *  @brief Sends an waypoint ack message
- */
-void mavlink_wpm_send_waypoint_ack(uint8_t sysid, uint8_t compid, uint8_t type)
-{
-    mavlink_message_t msg;
-    mavlink_waypoint_ack_t wpa;
-	
-    wpa.target_system = wpm.current_partner_sysid;
-    wpa.target_component = wpm.current_partner_compid;
-    wpa.type = type;
-	
-    mavlink_msg_waypoint_ack_encode(mavlink_system.sysid, mavlink_system.compid, &msg, &wpa);
-    mavlink_wpm_send_message(&msg);
-	
-    // FIXME TIMING usleep(paramClient->getParamValue("PROTOCOLDELAY"));
-	
-    if (MAVLINK_WPM_TEXT_FEEDBACK)
-	{
-#ifdef MAVLINK_WPM_NO_PRINTF
-    	mavlink_wpm_send_gcs_string("Sent waypoint ACK");
-#else
-		if (MAVLINK_WPM_VERBOSE) printf("Sent waypoint ack (%u) to ID %u\n", wpa.type, wpa.target_system);
-#endif
-		mavlink_wpm_send_gcs_string("Sent waypoint ACK");
-	}
-}
-
-/*
- *  @brief Broadcasts the new target waypoint and directs the MAV to fly there
- *
- *  This function broadcasts its new active waypoint sequence number and
- *  sends a message to the controller, advising it to fly to the coordinates
- *  of the waypoint with a given orientation
- *
- *  @param seq The waypoint sequence number the MAV should fly to.
- */
-void mavlink_wpm_send_waypoint_current(uint16_t seq)
-{
-    if(seq < wpm.size)
-    {
-        mavlink_waypoint_t *cur = &(wpm.waypoints[seq]);
-		
-        mavlink_message_t msg;
-        mavlink_waypoint_current_t wpc;
-		
-        wpc.seq = cur->seq;
-		
-        mavlink_msg_waypoint_current_encode(mavlink_system.sysid, mavlink_system.compid, &msg, &wpc);
-        mavlink_wpm_send_message(&msg);
-		
-        // FIXME TIMING usleep(paramClient->getParamValue("PROTOCOLDELAY"));
-		
-        if (MAVLINK_WPM_TEXT_FEEDBACK) mavlink_wpm_send_gcs_string("Broadcasted new current waypoint\n"); //// printf("Broadcasted new current waypoint %u\n", wpc.seq);
-    }
-    else
-    {
-        if (MAVLINK_WPM_TEXT_FEEDBACK) mavlink_wpm_send_gcs_string("ERROR: index out of bounds\n");
-    }
-}
-
-/*
- *  @brief Directs the MAV to fly to a position
- *
- *  Sends a message to the controller, advising it to fly to the coordinates
- *  of the waypoint with a given orientation
- *
- *  @param seq The waypoint sequence number the MAV should fly to.
- */
-void mavlink_wpm_send_setpoint(uint16_t seq)
-{
-    if(seq < wpm.size)
-    {
-        mavlink_waypoint_t *cur = &(wpm.waypoints[seq]);
-		
-        mavlink_message_t msg;
-        mavlink_local_position_setpoint_set_t position_control_set_point;
-		
-        // Send new NED or ENU setpoint to onbaord autopilot
-        if (cur->frame == MAV_FRAME_LOCAL_NED || cur->frame == MAV_FRAME_LOCAL_ENU)
-        {
-            position_control_set_point.target_system = mavlink_system.sysid;
-            position_control_set_point.target_component = MAV_COMP_ID_IMU;
-            position_control_set_point.x = cur->x;
-            position_control_set_point.y = cur->y;
-            position_control_set_point.z = cur->z;
-            position_control_set_point.yaw = cur->param4;
-			
-            mavlink_msg_local_position_setpoint_set_encode(mavlink_system.sysid, mavlink_system.compid, &msg, &position_control_set_point);
-            mavlink_wpm_send_message(&msg);
-			
-            // FIXME TIMING usleep(paramClient->getParamValue("PROTOCOLDELAY"));
-        }
-        else
-        {
-            if (MAVLINK_WPM_TEXT_FEEDBACK) mavlink_wpm_send_gcs_string("No new setpoint set because of invalid coordinate frame of waypoint");//// if (verbose) // printf("No new set point sent to IMU because the new waypoint %u had no local coordinates\n", cur->seq);
-        }
-		
-        wpm.timestamp_last_send_setpoint = mavlink_wpm_get_system_timestamp();
-    }
-    else
-    {
-        if (MAVLINK_WPM_TEXT_FEEDBACK) mavlink_wpm_send_gcs_string("ERROR: Waypoint index out of bounds\n"); //// if (verbose) // printf("ERROR: index out of bounds\n");
-    }
-}
-
-void mavlink_wpm_send_waypoint_count(uint8_t sysid, uint8_t compid, uint16_t count)
-{
-    mavlink_message_t msg;
-    mavlink_waypoint_count_t wpc;
-	
-    wpc.target_system = wpm.current_partner_sysid;
-    wpc.target_component = wpm.current_partner_compid;
-    wpc.count = count;
-	
-    mavlink_msg_waypoint_count_encode(mavlink_system.sysid, mavlink_system.compid, &msg, &wpc);
-    mavlink_wpm_send_message(&msg);
-	
-    if (MAVLINK_WPM_TEXT_FEEDBACK) mavlink_wpm_send_gcs_string("Sent waypoint count"); //// if (verbose) // printf("Sent waypoint count (%u) to ID %u\n", wpc.count, wpc.target_system);
-	
-    // FIXME TIMING usleep(paramClient->getParamValue("PROTOCOLDELAY"));
-}
-
-void mavlink_wpm_send_waypoint(uint8_t sysid, uint8_t compid, uint16_t seq)
-{
-    if (seq < wpm.size)
-    {
-        mavlink_message_t msg;
-        mavlink_waypoint_t *wp = &(wpm.waypoints[seq]);
-        wp->target_system = wpm.current_partner_sysid;
-        wp->target_component = wpm.current_partner_compid;
-        mavlink_msg_waypoint_encode(mavlink_system.sysid, mavlink_system.compid, &msg, wp);
-        mavlink_wpm_send_message(&msg);
-        if (MAVLINK_WPM_TEXT_FEEDBACK) mavlink_wpm_send_gcs_string("Sent waypoint"); //// if (verbose) // printf("Sent waypoint %u to ID %u\n", wp->seq, wp->target_system);
-		
-        // FIXME TIMING usleep(paramClient->getParamValue("PROTOCOLDELAY"));
-    }
-    else
-    {
-        if (MAVLINK_WPM_TEXT_FEEDBACK) mavlink_wpm_send_gcs_string("ERROR: Waypoint index out of bounds\n");
-    }
-}
-
-void mavlink_wpm_send_waypoint_request(uint8_t sysid, uint8_t compid, uint16_t seq)
-{
-    if (seq < wpm.max_size)
-    {
-        mavlink_message_t msg;
-        mavlink_waypoint_request_t wpr;
-        wpr.target_system = wpm.current_partner_sysid;
-        wpr.target_component = wpm.current_partner_compid;
-        wpr.seq = seq;
-        mavlink_msg_waypoint_request_encode(mavlink_system.sysid, mavlink_system.compid, &msg, &wpr);
-        mavlink_wpm_send_message(&msg);
-        if (MAVLINK_WPM_TEXT_FEEDBACK) mavlink_wpm_send_gcs_string("Sent waypoint request"); //// if (verbose) // printf("Sent waypoint request %u to ID %u\n", wpr.seq, wpr.target_system);
-		
-        // FIXME TIMING usleep(paramClient->getParamValue("PROTOCOLDELAY"));
-    }
-    else
-    {
-        if (MAVLINK_WPM_TEXT_FEEDBACK) mavlink_wpm_send_gcs_string("ERROR: Waypoint index exceeds list capacity\n");
-    }
-}
-
-/*
- *  @brief emits a message that a waypoint reached
- *
- *  This function broadcasts a message that a waypoint is reached.
- *
- *  @param seq The waypoint sequence number the MAV has reached.
- */
-void mavlink_wpm_send_waypoint_reached(uint16_t seq)
-{
-    mavlink_message_t msg;
-    mavlink_waypoint_reached_t wp_reached;
-	
-    wp_reached.seq = seq;
-	
-    mavlink_msg_waypoint_reached_encode(mavlink_system.sysid, mavlink_system.compid, &msg, &wp_reached);
-    mavlink_wpm_send_message(&msg);
-	
-    if (MAVLINK_WPM_TEXT_FEEDBACK) mavlink_wpm_send_gcs_string("Sent waypoint reached message"); //// if (verbose) // printf("Sent waypoint %u reached message\n", wp_reached.seq);
-	
-    // FIXME TIMING usleep(paramClient->getParamValue("PROTOCOLDELAY"));
-}
-
-//float mavlink_wpm_distance_to_segment(uint16_t seq, float x, float y, float z)
-//{
-//    if (seq < wpm.size)
-//    {
-//        mavlink_waypoint_t *cur = waypoints->at(seq);
-//		
-//        const PxVector3 A(cur->x, cur->y, cur->z);
-//        const PxVector3 C(x, y, z);
-//		
-//        // seq not the second last waypoint
-//        if ((uint16_t)(seq+1) < wpm.size)
-//        {
-//            mavlink_waypoint_t *next = waypoints->at(seq+1);
-//            const PxVector3 B(next->x, next->y, next->z);
-//            const float r = (B-A).dot(C-A) / (B-A).lengthSquared();
-//            if (r >= 0 && r <= 1)
-//            {
-//                const PxVector3 P(A + r*(B-A));
-//                return (P-C).length();
-//            }
-//            else if (r < 0.f)
-//            {
-//                return (C-A).length();
-//            }
-//            else
-//            {
-//                return (C-B).length();
-//            }
-//        }
-//        else
-//        {
-//            return (C-A).length();
-//        }
-//    }
-//    else
-//    {
-//        // if (verbose) // printf("ERROR: index out of bounds\n");
-//    }
-//    return -1.f;
-//}
-
-float mavlink_wpm_distance_to_point(uint16_t seq, float x, float y, float z)
-{
-	//    if (seq < wpm.size)
-	//    {
-	//        mavlink_waypoint_t *cur = waypoints->at(seq);
-	//		
-	//        const PxVector3 A(cur->x, cur->y, cur->z);
-	//        const PxVector3 C(x, y, z);
-	//		
-	//        return (C-A).length();
-	//    }
-	//    else
-	//    {
-	//        // if (verbose) // printf("ERROR: index out of bounds\n");
-	//    }
-    return -1.f;
-}
-
-
-void mavlink_wpm_message_handler(const mavlink_message_t* msg)
-{
-    // Handle param messages
-    //paramClient->handleMAVLinkPacket(msg);
-	
-    //check for timed-out operations
-    uint64_t now = mavlink_wpm_get_system_timestamp();
-    if (now-wpm.timestamp_lastaction > wpm.timeout && wpm.current_state != MAVLINK_WPM_STATE_IDLE)
-    {
-#ifdef MAVLINK_WPM_NO_PRINTF
-    	mavlink_wpm_send_gcs_string("Operation timeout switching -> IDLE");
-#else
-		if (MAVLINK_WPM_VERBOSE) printf("Last operation (state=%u) timed out, changing state to MAVLINK_WPM_STATE_IDLE\n", wpm.current_state);
-#endif
-		wpm.current_state = MAVLINK_WPM_STATE_IDLE;
-        wpm.current_count = 0;
-        wpm.current_partner_sysid = 0;
-        wpm.current_partner_compid = 0;
-        wpm.current_wp_id = -1;
-		
-        if(wpm.size == 0)
-        {
-            wpm.current_active_wp_id = -1;
-        }
-    }
-	
-    if(now-wpm.timestamp_last_send_setpoint > wpm.delay_setpoint && wpm.current_active_wp_id < wpm.size)
-    {
-        mavlink_wpm_send_setpoint(wpm.current_active_wp_id);
-    }
-	
-    switch(msg->msgid)
-    {
-		case MAVLINK_MSG_ID_ATTITUDE:
-        {
-            if(msg->sysid == mavlink_system.sysid && wpm.current_active_wp_id < wpm.size)
-            {
-                mavlink_waypoint_t *wp = &(wpm.waypoints[wpm.current_active_wp_id]);
-                if(wp->frame == MAV_FRAME_LOCAL_ENU || wp->frame == MAV_FRAME_LOCAL_NED)
-                {
-                    mavlink_attitude_t att;
-                    mavlink_msg_attitude_decode(msg, &att);
-                    float yaw_tolerance = wpm.accept_range_yaw;
-                    //compare current yaw
-                    if (att.yaw - yaw_tolerance >= 0.0f && att.yaw + yaw_tolerance < 2.f*M_PI)
-                    {
-                        if (att.yaw - yaw_tolerance <= wp->param4 && att.yaw + yaw_tolerance >= wp->param4)
-                            wpm.yaw_reached = true;
-                    }
-                    else if(att.yaw - yaw_tolerance < 0.0f)
-                    {
-                        float lowerBound = 360.0f + att.yaw - yaw_tolerance;
-                        if (lowerBound < wp->param4 || wp->param4 < att.yaw + yaw_tolerance)
-                            wpm.yaw_reached = true;
-                    }
-                    else
-                    {
-                        float upperBound = att.yaw + yaw_tolerance - 2.f*M_PI;
-                        if (att.yaw - yaw_tolerance < wp->param4 || wp->param4 < upperBound)
-                            wpm.yaw_reached = true;
-                    }
-                }
-            }
-            break;
-        }
-			
-		case MAVLINK_MSG_ID_LOCAL_POSITION:
-        {
-            if(msg->sysid == mavlink_system.sysid && wpm.current_active_wp_id < wpm.size)
-            {
-                mavlink_waypoint_t *wp = &(wpm.waypoints[wpm.current_active_wp_id]);
-				
-                if(wp->frame == MAV_FRAME_LOCAL_ENU || MAV_FRAME_LOCAL_NED)
-                {
-                    mavlink_local_position_t pos;
-                    mavlink_msg_local_position_decode(msg, &pos);
-                    //// if (debug) // printf("Received new position: x: %f | y: %f | z: %f\n", pos.x, pos.y, pos.z);
-					
-                    wpm.pos_reached = false;
-					
-                    // compare current position (given in message) with current waypoint
-                    float orbit = wp->param1;
-					
-                    float dist;
-                    if (wp->param2 == 0)
-                    {
-						// FIXME segment distance
-                        //dist = mavlink_wpm_distance_to_segment(current_active_wp_id, pos.x, pos.y, pos.z);
-                    }
-                    else
-                    {
-                        dist = mavlink_wpm_distance_to_point(wpm.current_active_wp_id, pos.x, pos.y, pos.z);
-                    }
-					
-                    if (dist >= 0.f && dist <= orbit && wpm.yaw_reached)
-                    {
-                        wpm.pos_reached = true;
-                    }
-                }
-            }
-            break;
-        }
-			
-			//		case MAVLINK_MSG_ID_CMD: // special action from ground station
-			//        {
-			//            mavlink_cmd_t action;
-			//            mavlink_msg_cmd_decode(msg, &action);
-			//            if(action.target == mavlink_system.sysid)
-			//            {
-			//                // if (verbose) std::cerr << "Waypoint: received message with action " << action.action << std::endl;
-			//                switch (action.action)
-			//                {
-			//						//				case MAV_ACTION_LAUNCH:
-			//						//					// if (verbose) std::cerr << "Launch received" << std::endl;
-			//						//					current_active_wp_id = 0;
-			//						//					if (wpm.size>0)
-			//						//					{
-			//						//						setActive(waypoints[current_active_wp_id]);
-			//						//					}
-			//						//					else
-			//						//						// if (verbose) std::cerr << "No launch, waypointList empty" << std::endl;
-			//						//					break;
-			//						
-			//						//				case MAV_ACTION_CONTINUE:
-			//						//					// if (verbose) std::c
-			//						//					err << "Continue received" << std::endl;
-			//						//					idle = false;
-			//						//					setActive(waypoints[current_active_wp_id]);
-			//						//					break;
-			//						
-			//						//				case MAV_ACTION_HALT:
-			//						//					// if (verbose) std::cerr << "Halt received" << std::endl;
-			//						//					idle = true;
-			//						//					break;
-			//						
-			//						//				default:
-			//						//					// if (verbose) std::cerr << "Unknown action received with id " << action.action << ", no action taken" << std::endl;
-			//						//					break;
-			//                }
-			//            }
-			//            break;
-			//        }
-			
-		case MAVLINK_MSG_ID_WAYPOINT_ACK:
-        {
-            mavlink_waypoint_ack_t wpa;
-            mavlink_msg_waypoint_ack_decode(msg, &wpa);
-			
-            if((msg->sysid == wpm.current_partner_sysid && msg->compid == wpm.current_partner_compid) && (wpa.target_system == mavlink_system.sysid /*&& wpa.target_component == mavlink_system.compid*/))
-            {
-                wpm.timestamp_lastaction = now;
-				
-                if (wpm.current_state == MAVLINK_WPM_STATE_SENDLIST || wpm.current_state == MAVLINK_WPM_STATE_SENDLIST_SENDWPS)
-                {
-                    if (wpm.current_wp_id == wpm.size-1)
-                    {
-#ifdef MAVLINK_WPM_NO_PRINTF
-						mavlink_wpm_send_gcs_string("Got last WP ACK state -> IDLE");
-#else
-						if (MAVLINK_WPM_VERBOSE) printf("Received ACK after having sent last waypoint, going to state MAVLINK_WPM_STATE_IDLE\n");
-#endif
-						wpm.current_state = MAVLINK_WPM_STATE_IDLE;
-                        wpm.current_wp_id = 0;
-                    }
-                }
-            }
-			else
-			{
-#ifdef MAVLINK_WPM_NO_PRINTF
-				mavlink_wpm_send_gcs_string("REJ. WP CMD: curr partner id mismatch");
-#else
-				if (MAVLINK_WPM_VERBOSE) printf("IGNORED WAYPOINT COMMAND BECAUSE TARGET SYSTEM AND COMPONENT OR COMM PARTNER ID MISMATCH\n");
-#endif
-			}
-            break;
-        }
-			
-		case MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT:
-        {
-            mavlink_waypoint_set_current_t wpc;
-            mavlink_msg_waypoint_set_current_decode(msg, &wpc);
-			
-            if(wpc.target_system == mavlink_system.sysid /*&& wpc.target_component == mavlink_system.compid*/)
-            {
-                wpm.timestamp_lastaction = now;
-				
-                if (wpm.current_state == MAVLINK_WPM_STATE_IDLE)
-                {
-                    if (wpc.seq < wpm.size)
-                    {
-                        // if (verbose) // printf("Received MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT\n");
-                        wpm.current_active_wp_id = wpc.seq;
-                        uint32_t i;
-                        for(i = 0; i < wpm.size; i++)
-                        {
-                            if (i == wpm.current_active_wp_id)
-                            {
-                                wpm.waypoints[i].current = true;
-                            }
-                            else
-                            {
-                                wpm.waypoints[i].current = false;
-                            }
-                        }
-#ifdef MAVLINK_WPM_NO_PRINTF
-						mavlink_wpm_send_gcs_string("NEW WP SET");
-#else
-						if (MAVLINK_WPM_VERBOSE) printf("New current waypoint %u\n", wpm.current_active_wp_id);
-#endif
-                        wpm.yaw_reached = false;
-                        wpm.pos_reached = false;
-                        mavlink_wpm_send_waypoint_current(wpm.current_active_wp_id);
-                        mavlink_wpm_send_setpoint(wpm.current_active_wp_id);
-                        wpm.timestamp_firstinside_orbit = 0;
-                    }
-                    else
-                    {
-#ifdef MAVLINK_WPM_NO_PRINTF
-						mavlink_wpm_send_gcs_string("IGN WP CURR CMD: Not in list");
-#else
-						if (MAVLINK_WPM_VERBOSE) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT: Index out of bounds\n");
-#endif
-                    }
-                }
-				else
-				{
-#ifdef MAVLINK_WPM_NO_PRINTF
-					mavlink_wpm_send_gcs_string("IGN WP CURR CMD: Busy");
-#else
-					if (MAVLINK_WPM_VERBOSE) printf("IGNORED WAYPOINT COMMAND BECAUSE NOT IN IDLE STATE\n");
-#endif
-				}
-            }
-			else
-			{
-#ifdef MAVLINK_WPM_NO_PRINTF
-				mavlink_wpm_send_gcs_string("REJ. WP CMD: target id mismatch");
-#else
-				if (MAVLINK_WPM_VERBOSE) printf("IGNORED WAYPOINT COMMAND BECAUSE TARGET SYSTEM AND COMPONENT OR COMM PARTNER ID MISMATCH\n");
-#endif
-			}
-            break;
-        }
-			
-		case MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST:
-        {
-            mavlink_waypoint_request_list_t wprl;
-            mavlink_msg_waypoint_request_list_decode(msg, &wprl);
-            if(wprl.target_system == mavlink_system.sysid /*&& wprl.target_component == mavlink_system.compid*/)
-            {
-                wpm.timestamp_lastaction = now;
-				
-                if (wpm.current_state == MAVLINK_WPM_STATE_IDLE || wpm.current_state == MAVLINK_WPM_STATE_SENDLIST)
-                {
-                    if (wpm.size > 0)
-                    {
-                        if (verbose && wpm.current_state == MAVLINK_WPM_STATE_IDLE) // printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST from %u changing state to MAVLINK_WPM_STATE_SENDLIST\n", msg->sysid);
-							if (verbose && wpm.current_state == MAVLINK_WPM_STATE_SENDLIST) // printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST again from %u staying in state MAVLINK_WPM_STATE_SENDLIST\n", msg->sysid);
-								wpm.current_state = MAVLINK_WPM_STATE_SENDLIST;
-                        wpm.current_wp_id = 0;
-                        wpm.current_partner_sysid = msg->sysid;
-                        wpm.current_partner_compid = msg->compid;
-                    }
-                    else
-                    {
-                        // if (verbose) // printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST from %u but have no waypoints, staying in \n", msg->sysid);
-                    }
-                    wpm.current_count = wpm.size;
-                    mavlink_wpm_send_waypoint_count(msg->sysid,msg->compid, wpm.current_count);
-                }
-                else
-                {
-                    // if (verbose) // printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST because i'm doing something else already (state=%i).\n", wpm.current_state);
-                }
-            }
-			else
-			{
-				// if (verbose) // printf("IGNORED WAYPOINT COMMAND BECAUSE TARGET SYSTEM AND COMPONENT MISMATCH\n");
-			}
-			
-            break;
-        }
-			
-		case MAVLINK_MSG_ID_WAYPOINT_REQUEST:
-        {
-            mavlink_waypoint_request_t wpr;
-            mavlink_msg_waypoint_request_decode(msg, &wpr);
-            if(msg->sysid == wpm.current_partner_sysid && msg->compid == wpm.current_partner_compid && wpr.target_system == mavlink_system.sysid /*&& wpr.target_component == mavlink_system.compid*/)
-            {
-                wpm.timestamp_lastaction = now;
-				
-                //ensure that we are in the correct state and that the first request has id 0 and the following requests have either the last id (re-send last waypoint) or last_id+1 (next waypoint)
-                if ((wpm.current_state == MAVLINK_WPM_STATE_SENDLIST && wpr.seq == 0) || (wpm.current_state == MAVLINK_WPM_STATE_SENDLIST_SENDWPS && (wpr.seq == wpm.current_wp_id || wpr.seq == wpm.current_wp_id + 1) && wpr.seq < wpm.size))
-                {
-                    if (wpm.current_state == MAVLINK_WPM_STATE_SENDLIST)
-                    {
-#ifdef MAVLINK_WPM_NO_PRINTF
-						mavlink_wpm_send_gcs_string("GOT WP REQ, state -> SEND");
-#else
-						if (MAVLINK_WPM_VERBOSE) printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST of waypoint %u from %u changing state to MAVLINK_WPM_STATE_SENDLIST_SENDWPS\n", wpr.seq, msg->sysid);
-#endif
-                    }
-                    if (wpm.current_state == MAVLINK_WPM_STATE_SENDLIST_SENDWPS && wpr.seq == wpm.current_wp_id + 1)
-                    {
-#ifdef MAVLINK_WPM_NO_PRINTF
-						mavlink_wpm_send_gcs_string("GOT 2nd WP REQ");
-#else
-						if (MAVLINK_WPM_VERBOSE) printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST of waypoint %u from %u staying in state MAVLINK_WPM_STATE_SENDLIST_SENDWPS\n", wpr.seq, msg->sysid);
-#endif
-                    }
-                    if (wpm.current_state == MAVLINK_WPM_STATE_SENDLIST_SENDWPS && wpr.seq == wpm.current_wp_id)
-                    {
-#ifdef MAVLINK_WPM_NO_PRINTF
-						mavlink_wpm_send_gcs_string("GOT 2nd WP REQ");
-#else
-						if (MAVLINK_WPM_VERBOSE) printf("Got MAVLINK_MSG_ID_WAYPOINT_REQUEST of waypoint %u (again) from %u staying in state MAVLINK_WPM_STATE_SENDLIST_SENDWPS\n", wpr.seq, msg->sysid);
-#endif
-                    }
-					
-                    wpm.current_state = MAVLINK_WPM_STATE_SENDLIST_SENDWPS;
-                    wpm.current_wp_id = wpr.seq;
-                    mavlink_wpm_send_waypoint(wpm.current_partner_sysid, wpm.current_partner_compid, wpr.seq);
-                }
-                else
-                {
-                    // if (verbose)
-                    {
-                        if (!(wpm.current_state == MAVLINK_WPM_STATE_SENDLIST || wpm.current_state == MAVLINK_WPM_STATE_SENDLIST_SENDWPS))
-						{
-#ifdef MAVLINK_WPM_NO_PRINTF
-							mavlink_wpm_send_gcs_string("REJ. WP CMD: Busy");
-#else
-							if (MAVLINK_WPM_VERBOSE) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST because i'm doing something else already (state=%i).\n", wpm.current_state);
-#endif
-							break;
-						}
-                        else if (wpm.current_state == MAVLINK_WPM_STATE_SENDLIST)
-                        {
-                            if (wpr.seq != 0)
-							{
-#ifdef MAVLINK_WPM_NO_PRINTF
-								mavlink_wpm_send_gcs_string("REJ. WP CMD: First id != 0");
-#else
-								if (MAVLINK_WPM_VERBOSE) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST because the first requested waypoint ID (%u) was not 0.\n", wpr.seq);
-#endif
-							}
-                        }
-                        else if (wpm.current_state == MAVLINK_WPM_STATE_SENDLIST_SENDWPS)
-                        {
-                            if (wpr.seq != wpm.current_wp_id && wpr.seq != wpm.current_wp_id + 1)
-							{
-#ifdef MAVLINK_WPM_NO_PRINTF
-								mavlink_wpm_send_gcs_string("REJ. WP CMD: Req. WP was unexpected");
-#else
-								if (MAVLINK_WPM_VERBOSE) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST because the requested waypoint ID (%u) was not the expected (%u or %u).\n", wpr.seq, wpm.current_wp_id, wpm.current_wp_id+1);
-#endif
-							}
-							else if (wpr.seq >= wpm.size)
-							{
-#ifdef MAVLINK_WPM_NO_PRINTF
-								mavlink_wpm_send_gcs_string("REJ. WP CMD: Req. WP not in list");
-#else
-								if (MAVLINK_WPM_VERBOSE) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST because the requested waypoint ID (%u) was out of bounds.\n", wpr.seq);
-#endif
-							}
-                        }
-                        else
-						{
-#ifdef MAVLINK_WPM_NO_PRINTF
-							mavlink_wpm_send_gcs_string("REJ. WP CMD: ?");
-#else
-							if (MAVLINK_WPM_VERBOSE) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST - FIXME: missed error description\n");
-#endif
-						}
-                    }
-                }
-            }
-            else
-            {
-                //we we're target but already communicating with someone else
-                if((wpr.target_system == mavlink_system.sysid /*&& wpr.target_component == mavlink_system.compid*/) && !(msg->sysid == wpm.current_partner_sysid && msg->compid == wpm.current_partner_compid))
-                {
-#ifdef MAVLINK_WPM_NO_PRINTF
-					mavlink_wpm_send_gcs_string("REJ. WP CMD: Busy");
-#else
-					if (MAVLINK_WPM_VERBOSE) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_REQUEST from ID %u because i'm already talking to ID %u.\n", msg->sysid, wpm.current_partner_sysid);
-#endif
-                }
-				else
-				{
-#ifdef MAVLINK_WPM_NO_PRINTF
-					mavlink_wpm_send_gcs_string("REJ. WP CMD: target id mismatch");
-#else
-					if (MAVLINK_WPM_VERBOSE) printf("IGNORED WAYPOINT COMMAND BECAUSE TARGET SYSTEM AND COMPONENT OR COMM PARTNER ID MISMATCH\n");
-#endif
-				}
-				
-            }
-            break;
-        }
-			
-		case MAVLINK_MSG_ID_WAYPOINT_COUNT:
-        {
-            mavlink_waypoint_count_t wpc;
-            mavlink_msg_waypoint_count_decode(msg, &wpc);
-            if(wpc.target_system == mavlink_system.sysid/* && wpc.target_component == mavlink_system.compid*/)
-            {
-                wpm.timestamp_lastaction = now;
-				
-                if (wpm.current_state == MAVLINK_WPM_STATE_IDLE || (wpm.current_state == MAVLINK_WPM_STATE_GETLIST && wpm.current_wp_id == 0))
-                {
-                    if (wpc.count > 0)
-                    {
-                        if (wpm.current_state == MAVLINK_WPM_STATE_IDLE)
-                        {
-#ifdef MAVLINK_WPM_NO_PRINTF
-							mavlink_wpm_send_gcs_string("WP CMD OK: state -> GETLIST");
-#else
-							if (MAVLINK_WPM_VERBOSE) printf("Got MAVLINK_MSG_ID_WAYPOINT_COUNT (%u) from %u changing state to MAVLINK_WPM_STATE_GETLIST\n", wpc.count, msg->sysid);
-#endif
-                        }
-                        if (wpm.current_state == MAVLINK_WPM_STATE_GETLIST)
-                        {
-#ifdef MAVLINK_WPM_NO_PRINTF
-							mavlink_wpm_send_gcs_string("WP CMD OK AGAIN");
-#else
-							if (MAVLINK_WPM_VERBOSE) printf("Got MAVLINK_MSG_ID_WAYPOINT_COUNT (%u) again from %u\n", wpc.count, msg->sysid);
-#endif
-                        }
-						
-                        wpm.current_state = MAVLINK_WPM_STATE_GETLIST;
-                        wpm.current_wp_id = 0;
-                        wpm.current_partner_sysid = msg->sysid;
-                        wpm.current_partner_compid = msg->compid;
-                        wpm.current_count = wpc.count;
-						
-#ifdef MAVLINK_WPM_NO_PRINTF
-						mavlink_wpm_send_gcs_string("CLR RCV BUF: READY");
-#else
-						if (MAVLINK_WPM_VERBOSE) printf("clearing receive buffer and readying for receiving waypoints\n");
-#endif
-						wpm.rcv_size = 0;
-                        //while(waypoints_receive_buffer->size() > 0)
-						//                        {
-						//                            delete waypoints_receive_buffer->back();
-						//                            waypoints_receive_buffer->pop_back();
-						//                        }
-						
-                        mavlink_wpm_send_waypoint_request(wpm.current_partner_sysid, wpm.current_partner_compid, wpm.current_wp_id);
-                    }
-                    else if (wpc.count == 0)
-                    {
-#ifdef MAVLINK_WPM_NO_PRINTF
-						mavlink_wpm_send_gcs_string("COUNT 0");
-#else
-						if (MAVLINK_WPM_VERBOSE) printf("got waypoint count of 0, clearing waypoint list and staying in state MAVLINK_WPM_STATE_IDLE\n");
-#endif
-						wpm.rcv_size = 0;
-                        //while(waypoints_receive_buffer->size() > 0)
-						//                        {
-						//                            delete waypoints->back();
-						//                            waypoints->pop_back();
-						//                        }
-                        wpm.current_active_wp_id = -1;
-                        wpm.yaw_reached = false;
-                        wpm.pos_reached = false;
-                        break;
-						
-                    }
-                    else
-                    {
-#ifdef MAVLINK_WPM_NO_PRINTF
-						mavlink_wpm_send_gcs_string("IGN WP CMD");
-#else
-						if (MAVLINK_WPM_VERBOSE) printf("Ignoring MAVLINK_MSG_ID_WAYPOINT_COUNT from %u with count of %u\n", msg->sysid, wpc.count);
-#endif
-                    }
-                }
-                else
-                {
-                    if (!(wpm.current_state == MAVLINK_WPM_STATE_IDLE || wpm.current_state == MAVLINK_WPM_STATE_GETLIST))
-					{
-#ifdef MAVLINK_WPM_NO_PRINTF
-						mavlink_wpm_send_gcs_string("REJ. WP CMD: Busy");
-#else
-						if (MAVLINK_WPM_VERBOSE) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_COUNT because i'm doing something else already (state=%i).\n", wpm.current_state);
-#endif
-					}
-                    else if (wpm.current_state == MAVLINK_WPM_STATE_GETLIST && wpm.current_wp_id != 0)
-					{
-#ifdef MAVLINK_WPM_NO_PRINTF
-						mavlink_wpm_send_gcs_string("REJ. WP CMD: Busy");
-#else
-						if (MAVLINK_WPM_VERBOSE) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_COUNT because i'm already receiving waypoint %u.\n", wpm.current_wp_id);
-#endif
-					}
-                    else
-					{
-#ifdef MAVLINK_WPM_NO_PRINTF
-						mavlink_wpm_send_gcs_string("REJ. WP CMD: ?");
-#else
-						if (MAVLINK_WPM_VERBOSE) printf("Ignored MAVLINK_MSG_ID_WAYPOINT_COUNT - FIXME: missed error description\n");
-#endif
-					}
-                }
-            }
-			else
-			{
-#ifdef MAVLINK_WPM_NO_PRINTF
-				mavlink_wpm_send_gcs_string("REJ. WP CMD: target id mismatch");
-#else
-				if (MAVLINK_WPM_VERBOSE) printf("IGNORED WAYPOINT COMMAND BECAUSE TARGET SYSTEM AND COMPONENT OR COMM PARTNER ID MISMATCH\n");
-#endif
-			}
-            
-        }
-			break;
-			
-		case MAVLINK_MSG_ID_WAYPOINT:
-        {
-            mavlink_waypoint_t wp;
-            mavlink_msg_waypoint_decode(msg, &wp);
-			
-			// if (verbose) // printf("GOT WAYPOINT!");
-			
-            if((msg->sysid == wpm.current_partner_sysid && msg->compid == wpm.current_partner_compid) && (wp.target_system == mavlink_system.sysid /*&& wp.target_component == mavlink_system.compid*/))
-            {
-                wpm.timestamp_lastaction = now;
-				
-                //ensure that we are in the correct state and that the first waypoint has id 0 and the following waypoints have the correct ids
-                if ((wpm.current_state == MAVLINK_WPM_STATE_GETLIST && wp.seq == 0) || (wpm.current_state == MAVLINK_WPM_STATE_GETLIST_GETWPS && wp.seq == wpm.current_wp_id && wp.seq < wpm.current_count))
-                {
-                    if (verbose && wpm.current_state == MAVLINK_WPM_STATE_GETLIST) // printf("Got MAVLINK_MSG_ID_WAYPOINT %u from %u changing state to MAVLINK_WPM_STATE_GETLIST_GETWPS\n", wp.seq, msg->sysid);
-						if (verbose && wpm.current_state == MAVLINK_WPM_STATE_GETLIST_GETWPS && wp.seq == wpm.current_wp_id) // printf("Got MAVLINK_MSG_ID_WAYPOINT %u from %u\n", wp.seq, msg->sysid);
-							if (verbose && wpm.current_state == MAVLINK_WPM_STATE_GETLIST_GETWPS && wp.seq-1 == wpm.current_wp_id) // printf("Got MAVLINK_MSG_ID_WAYPOINT %u (again) from %u\n", wp.seq, msg->sysid);
-								
-								wpm.current_state = MAVLINK_WPM_STATE_GETLIST_GETWPS;
-                    mavlink_waypoint_t* newwp = &(wpm.rcv_waypoints[wp.seq]);
-                    memcpy(newwp, &wp, sizeof(mavlink_waypoint_t));
-					
-					wpm.current_wp_id = wp.seq + 1;
-					
-                    // if (verbose) // printf ("Added new waypoint to list. X= %f\t Y= %f\t Z= %f\t Yaw= %f\n", newwp->x, newwp->y, newwp->z, newwp->param4);
-					
-                    if(wpm.current_wp_id == wpm.current_count && wpm.current_state == MAVLINK_WPM_STATE_GETLIST_GETWPS)
-                    {
-                        // if (verbose) // printf("Got all %u waypoints, changing state to MAVLINK_WPM_STATE_IDLE\n", wpm.current_count);
-						
-                        mavlink_wpm_send_waypoint_ack(wpm.current_partner_sysid, wpm.current_partner_compid, 0);
-						
-                        if (wpm.current_active_wp_id > wpm.rcv_size-1)
-                        {
-                            wpm.current_active_wp_id = wpm.rcv_size-1;
-                        }
-						
-                        // switch the waypoints list
-						// FIXME CHECK!!!
-						for (int i = 0; i < wpm.current_count; ++i)
-						{
-							wpm.waypoints[i] = wpm.rcv_waypoints[i];
-						}
-						wpm.size = wpm.current_count;
-						
-                        //get the new current waypoint
-                        uint32_t i;
-                        for(i = 0; i < wpm.size; i++)
-                        {
-                            if (wpm.waypoints[i].current == 1)
-                            {
-                                wpm.current_active_wp_id = i;
-                                //// if (verbose) // printf("New current waypoint %u\n", current_active_wp_id);
-                                wpm.yaw_reached = false;
-                                wpm.pos_reached = false;
-								mavlink_wpm_send_waypoint_current(wpm.current_active_wp_id);
-                                mavlink_wpm_send_setpoint(wpm.current_active_wp_id);
-								wpm.timestamp_firstinside_orbit = 0;
-                                break;
-                            }
-                        }
-						
-                        if (i == wpm.size)
-                        {
-                            wpm.current_active_wp_id = -1;
-                            wpm.yaw_reached = false;
-                            wpm.pos_reached = false;
-                            wpm.timestamp_firstinside_orbit = 0;
-                        }
-						
-                        wpm.current_state = MAVLINK_WPM_STATE_IDLE;
-                    }
-                    else
-                    {
-                        mavlink_wpm_send_waypoint_request(wpm.current_partner_sysid, wpm.current_partner_compid, wpm.current_wp_id);
-                    }
-                }
-                else
-                {
-                    if (wpm.current_state == MAVLINK_WPM_STATE_IDLE)
-                    {
-                        //we're done receiving waypoints, answer with ack.
-                        mavlink_wpm_send_waypoint_ack(wpm.current_partner_sysid, wpm.current_partner_compid, 0);
-                        // printf("Received MAVLINK_MSG_ID_WAYPOINT while state=MAVLINK_WPM_STATE_IDLE, answered with WAYPOINT_ACK.\n");
-                    }
-                    // if (verbose)
-                    {
-                        if (!(wpm.current_state == MAVLINK_WPM_STATE_GETLIST || wpm.current_state == MAVLINK_WPM_STATE_GETLIST_GETWPS))
-						{
-							// printf("Ignored MAVLINK_MSG_ID_WAYPOINT %u because i'm doing something else already (state=%i).\n", wp.seq, wpm.current_state);
-							break;
-						}
-                        else if (wpm.current_state == MAVLINK_WPM_STATE_GETLIST)
-                        {
-                            if(!(wp.seq == 0))
-							{
-								// printf("Ignored MAVLINK_MSG_ID_WAYPOINT because the first waypoint ID (%u) was not 0.\n", wp.seq);
-							}
-                            else
-							{
-								// printf("Ignored MAVLINK_MSG_ID_WAYPOINT %u - FIXME: missed error description\n", wp.seq);
-							}
-                        }
-                        else if (wpm.current_state == MAVLINK_WPM_STATE_GETLIST_GETWPS)
-                        {
-                            if (!(wp.seq == wpm.current_wp_id))
-							{
-								// printf("Ignored MAVLINK_MSG_ID_WAYPOINT because the waypoint ID (%u) was not the expected %u.\n", wp.seq, wpm.current_wp_id);
-							}
-                            else if (!(wp.seq < wpm.current_count))
-							{
-								// printf("Ignored MAVLINK_MSG_ID_WAYPOINT because the waypoint ID (%u) was out of bounds.\n", wp.seq);
-							}
-                            else
-							{
-								// printf("Ignored MAVLINK_MSG_ID_WAYPOINT %u - FIXME: missed error description\n", wp.seq);
-							}
-                        }
-                        else
-						{
-							// printf("Ignored MAVLINK_MSG_ID_WAYPOINT %u - FIXME: missed error description\n", wp.seq);
-						}
-                    }
-                }
-            }
-            else
-            {
-                //we we're target but already communicating with someone else
-                if((wp.target_system == mavlink_system.sysid /*&& wp.target_component == mavlink_system.compid*/) && !(msg->sysid == wpm.current_partner_sysid && msg->compid == wpm.current_partner_compid) && wpm.current_state != MAVLINK_WPM_STATE_IDLE)
-                {
-                    // if (verbose) // printf("Ignored MAVLINK_MSG_ID_WAYPOINT %u from ID %u because i'm already talking to ID %u.\n", wp.seq, msg->sysid, wpm.current_partner_sysid);
-                }
-                else if(wp.target_system == mavlink_system.sysid /* && wp.target_component == mavlink_system.compid*/)
-                {
-                    // if (verbose) // printf("Ignored MAVLINK_MSG_ID_WAYPOINT %u from ID %u because i have no idea what to do with it\n", wp.seq, msg->sysid);
-                }
-            }
-            break;
-        }
-			
-		case MAVLINK_MSG_ID_WAYPOINT_CLEAR_ALL:
-        {
-            mavlink_waypoint_clear_all_t wpca;
-            mavlink_msg_waypoint_clear_all_decode(msg, &wpca);
-			
-            if(wpca.target_system == mavlink_system.sysid /*&& wpca.target_component == mavlink_system.compid */ && wpm.current_state == MAVLINK_WPM_STATE_IDLE)
-            {
-                wpm.timestamp_lastaction = now;
-				
-                // if (verbose) // printf("Got MAVLINK_MSG_ID_WAYPOINT_CLEAR_LIST from %u deleting all waypoints\n", msg->sysid);
-                // Delete all waypoints
-				wpm.size = 0;
-                wpm.current_active_wp_id = -1;
-                wpm.yaw_reached = false;
-                wpm.pos_reached = false;
-            }
-            else if (wpca.target_system == mavlink_system.sysid /*&& wpca.target_component == mavlink_system.compid */ && wpm.current_state != MAVLINK_WPM_STATE_IDLE)
-            {
-                // if (verbose) // printf("Ignored MAVLINK_MSG_ID_WAYPOINT_CLEAR_LIST from %u because i'm doing something else already (state=%i).\n", msg->sysid, wpm.current_state);
-            }
-            break;
-        }
-			
-		default:
-        {
-            // if (debug) // printf("Waypoint: received message of unknown type");
-            break;
-        }
-    }
-	
-    //check if the current waypoint was reached
-    if (wpm.pos_reached /*wpm.yaw_reached &&*/ && !wpm.idle)
-    {
-        if (wpm.current_active_wp_id < wpm.size)
-        {
-            mavlink_waypoint_t *cur_wp = &(wpm.waypoints[wpm.current_active_wp_id]);
-			
-            if (wpm.timestamp_firstinside_orbit == 0)
-            {
-                // Announce that last waypoint was reached
-                // if (verbose) // printf("*** Reached waypoint %u ***\n", cur_wp->seq);
-                mavlink_wpm_send_waypoint_reached(cur_wp->seq);
-                wpm.timestamp_firstinside_orbit = now;
-            }
-			
-            // check if the MAV was long enough inside the waypoint orbit
-            //if (now-timestamp_lastoutside_orbit > (cur_wp->hold_time*1000))
-            if(now-wpm.timestamp_firstinside_orbit >= cur_wp->param2*1000)
-            {
-                if (cur_wp->autocontinue)
-                {
-                    cur_wp->current = 0;
-                    if (wpm.current_active_wp_id == wpm.size - 1 && wpm.size > 1)
-                    {
-                        //the last waypoint was reached, if auto continue is
-                        //activated restart the waypoint list from the beginning
-                        wpm.current_active_wp_id = 1;
-                    }
-                    else
-                    {
-                        if ((uint16_t)(wpm.current_active_wp_id + 1) < wpm.size)
-                            wpm.current_active_wp_id++;
-                    }
-					
-                    // Fly to next waypoint
-                    wpm.timestamp_firstinside_orbit = 0;
-                    mavlink_wpm_send_waypoint_current(wpm.current_active_wp_id);
-                    mavlink_wpm_send_setpoint(wpm.current_active_wp_id);
-                    wpm.waypoints[wpm.current_active_wp_id].current = true;
-                    wpm.pos_reached = false;
-                    wpm.yaw_reached = false;
-                    // if (verbose) // printf("Set new waypoint (%u)\n", wpm.current_active_wp_id);
-                }
-            }
-        }
-    }
-    else
-    {
-        wpm.timestamp_lastoutside_orbit = now;
-    }
-}
-
diff --git a/libraries/GCS_MAVLink/missionlib/waypoints.h b/libraries/GCS_MAVLink/missionlib/waypoints.h
deleted file mode 100644
index 4bc32a14a4368cf68e2dd69b60b027c8a93f4e65..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/missionlib/waypoints.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- 
- Copyright (C) 2011 Lorenz Meier lm ( a t ) inf.ethz.ch
- 
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- 
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
- 
- You should have received a copy of the GNU General Public License
- along with this program.  If not, see <http://www.gnu.org/licenses/>.
- 
- ****************************************************************************/
-
-/* This assumes you have the mavlink headers on your include path
- or in the same folder as this source file */
-#include <mavlink.h>
-#include <stdbool.h>
-
-// FIXME XXX - TO BE MOVED TO XML
-enum MAVLINK_WPM_STATES
-{
-    MAVLINK_WPM_STATE_IDLE = 0,
-    MAVLINK_WPM_STATE_SENDLIST,
-    MAVLINK_WPM_STATE_SENDLIST_SENDWPS,
-    MAVLINK_WPM_STATE_GETLIST,
-    MAVLINK_WPM_STATE_GETLIST_GETWPS,
-    MAVLINK_WPM_STATE_GETLIST_GOTALL,
-	MAVLINK_WPM_STATE_ENUM_END
-};
-
-enum MAVLINK_WPM_CODES
-{
-    MAVLINK_WPM_CODE_OK = 0,
-    MAVLINK_WPM_CODE_ERR_WAYPOINT_ACTION_NOT_SUPPORTED,
-    MAVLINK_WPM_CODE_ERR_WAYPOINT_FRAME_NOT_SUPPORTED,
-    MAVLINK_WPM_CODE_ERR_WAYPOINT_OUT_OF_BOUNDS,
-    MAVLINK_WPM_CODE_ERR_WAYPOINT_MAX_NUMBER_EXCEEDED,
-    MAVLINK_WPM_CODE_ENUM_END
-};
-
-
-/* WAYPOINT MANAGER - MISSION LIB */
-
-#define MAVLINK_WPM_MAX_WP_COUNT 100
-#define MAVLINK_WPM_CONFIG_IN_FLIGHT_UPDATE				  ///< Enable double buffer and in-flight updates
-#define MAVLINK_WPM_TEXT_FEEDBACK 1						  ///< Report back status information as text
-#define MAVLINK_WPM_SYSTEM_ID 1
-#define MAVLINK_WPM_COMPONENT_ID 1
-#define MAVLINK_WPM_PROTOCOL_TIMEOUT_DEFAULT 2000000
-#define MAVLINK_WPM_SETPOINT_DELAY_DEFAULT 1000000
-#define MAVLINK_WPM_PROTOCOL_DELAY_DEFAULT 40
-
-
-struct mavlink_wpm_storage {
-	mavlink_waypoint_t waypoints[MAVLINK_WPM_MAX_WP_COUNT];      ///< Currently active waypoints
-#ifdef MAVLINK_WPM_CONFIG_IN_FLIGHT_UPDATE
-	mavlink_waypoint_t rcv_waypoints[MAVLINK_WPM_MAX_WP_COUNT];  ///< Receive buffer for next waypoints
-#endif
-	uint16_t size;
-	uint16_t max_size;
-	uint16_t rcv_size;
-	enum MAVLINK_WPM_STATES current_state;
-	uint16_t current_wp_id;							///< Waypoint in current transmission
-	uint16_t current_active_wp_id;					///< Waypoint the system is currently heading towards
-	uint16_t current_count;
-	uint8_t current_partner_sysid;
-	uint8_t current_partner_compid;
-	uint64_t timestamp_lastaction;
-	uint64_t timestamp_last_send_setpoint;
-	uint64_t timestamp_firstinside_orbit;
-	uint64_t timestamp_lastoutside_orbit;
-	uint32_t timeout;
-	uint32_t delay_setpoint;
-	float accept_range_yaw;
-	float accept_range_distance;
-	bool yaw_reached;
-	bool pos_reached;
-	bool idle;
-};
-
-typedef struct mavlink_wpm_storage mavlink_wpm_storage;
-
-void mavlink_wpm_init(mavlink_wpm_storage* state);
-
-void mavlink_wpm_message_handler(const mavlink_message_t* msg);
\ No newline at end of file
diff --git a/libraries/GCS_MAVLink/sync b/libraries/GCS_MAVLink/sync
deleted file mode 100755
index 424c2439307bf7240601afd5f4c070b159598b6e..0000000000000000000000000000000000000000
--- a/libraries/GCS_MAVLink/sync
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-branch="master" 
-trap exit ERR
-rm -rf _tmp
-git clone git://github.com/pixhawk/mavlink.git -b $branch _tmp
-rm -rf _tmp/.git
-rsync -av _tmp/* .
-rm -rf _tmp
-svn add --force *
diff --git a/libraries/GCS_MAVLink/update b/libraries/GCS_MAVLink/update
new file mode 100755
index 0000000000000000000000000000000000000000..7e22a08c628b9f6e0d5d216b65e913e4be0cc9bc
--- /dev/null
+++ b/libraries/GCS_MAVLink/update
@@ -0,0 +1,14 @@
+#!/bin/bash
+if [[ $# != 1 ]]
+then
+    echo "usage: $0 version"
+    exit
+fi
+
+MAVLINK_VERSION=$1
+rm -rf  VERSION mavlink* include lib share *.zip
+wget https://github.com/downloads/mavlink/mavlink/mavlink-${MAVLINK_VERSION}.zip
+unzip mavlink-${MAVLINK_VERSION}.zip
+mv mavlink-${MAVLINK_VERSION}/* .
+rm -rf  mavlink* share lib
+echo $MAVLINK_VERSION > VERSION