|
| 1 | +<!-- THIS FILE IS AUTO-GENERATED FROM XML: https://github.com/mavlink/mavlink/blob/master/doc/mavlink_xml_to_markdown.py (Do not update mavlink-devguide) --> |
| 2 | + |
| 3 | +# XML Definition Files & Dialects |
| 4 | + |
| 5 | +MAVLink definitions files can be found in [mavlink/message definitions](https://github.com/mavlink/mavlink/blob/master/message_definitions/). |
| 6 | +These can roughly be divided into: |
| 7 | + |
| 8 | +- [Standard definitions](#standard-definitions) - core definitions shared by many flight stacks |
| 9 | +- [Test definitions](#test-definitions) - definitions to support testing and validation |
| 10 | +- [Dialects](#dialects) - _protocol-_ and _vendor-specific_ messages, enums and commands |
| 11 | + |
| 12 | +## Standard Definitions |
| 13 | + |
| 14 | +The following XML definition files are considered standard/core (i.e. not dialects): |
| 15 | + |
| 16 | +- [minimal.xml](minimal.md) - the minimum set of entities (messages, enums, MAV_CMD) required to set up a MAVLink network. |
| 17 | +- [standard.xml](standard.md) - the standard set of entities that are implemented by almost all flight stacks (at least 2, in a compatible way). |
| 18 | + This `includes` [minimal.xml](minimal.md). |
| 19 | +- [common.xml](common.md) - the set of entities that have been implemented in at least one core flight stack. |
| 20 | + This `includes` [standard.xml](minimal.md) |
| 21 | + |
| 22 | +> **Note** We are still working towards moving the truly standard entities from **common.xml** to **standard.xml** |
| 23 | +> Currently you should include [common.xml](common.md) |
| 24 | +
|
| 25 | +In addition: |
| 26 | + |
| 27 | +- [development.xml](development.md) - XML definitions that are _proposed_ for inclusion in the standard definitions. |
| 28 | + These are work in progress. |
| 29 | + |
| 30 | +## Test Definitions |
| 31 | + |
| 32 | +The following definitions are used for testing and dialect validation: |
| 33 | + |
| 34 | +- [all.xml](all.md) - This includes all other XML files, and is used to verify that there are no ID clashes (and can potentially be used by GCS to communicate with any core dialect). |
| 35 | +- [test.xml](test.md) - Test XML definition file. |
| 36 | + |
| 37 | +## Dialects {#dialects} |
| 38 | + |
| 39 | +MAVLink _dialects_ are XML definition files that define _protocol-_ and _vendor-specific_ messages, enums and commands. |
| 40 | + |
| 41 | +> **Note** Vendor forks of MAVLink may contain XML entities that have not yet been pushed into the main repository (and will not be documented). |
| 42 | +
|
| 43 | +Dialects may _include_ other MAVLink XML files, which may in turn contain other XML files (up to 5 levels of XML file nesting are allowed - see `MAXIMUM_INCLUDE_FILE_NESTING` in [mavgen.py](https://github.com/ArduPilot/pymavlink/blob/master/generator/mavgen.py#L44)). |
| 44 | +A typical pattern is for a dialect to include [common.xml](../messages/common.md) (containing the _MAVLink standard definitions_), extending it with vendor or protocol specific messages. |
| 45 | + |
| 46 | +The dialect definitions are: |
| 47 | + |
| 48 | +- [cubepilot.xml](cubepilot.md) |
| 49 | +- [python_array_test.xml](python_array_test.md) |
| 50 | +- [ardupilotmega.xml](ardupilotmega.md) |
| 51 | +- [common.xml](common.md) |
| 52 | +- [development.xml](development.md) |
| 53 | +- [matrixpilot.xml](matrixpilot.md) |
| 54 | +- [ASLUAV.xml](ASLUAV.md) |
| 55 | +- [csAirLink.xml](csAirLink.md) |
| 56 | +- [all.xml](all.md) |
| 57 | +- [storm32.xml](storm32.md) |
| 58 | +- [icarous.xml](icarous.md) |
| 59 | +- [test.xml](test.md) |
| 60 | +- [AVSSUAS.xml](AVSSUAS.md) |
| 61 | +- [uAvionix.xml](uAvionix.md) |
| 62 | +- [minimal.xml](minimal.md) |
| 63 | +- [paparazzi.xml](paparazzi.md) |
| 64 | +- [standard.xml](standard.md) |
| 65 | +- [ualberta.xml](ualberta.md) |
| 66 | +- [loweheiser.xml](loweheiser.md) |
0 commit comments