30 lines
1.9 KiB
Markdown
30 lines
1.9 KiB
Markdown
# MAVLink dialects the bridge reads
|
|
|
|
The MAVLink bridge (`src/mavlink`, feature `mavlink`) decodes frames with the `mavlink`
|
|
crate 0.21.0 and reads what each field *means* (its unit, its fixed-point scale, its range)
|
|
from these XML files through `flowrs-iface`'s own reader. The two must describe the same
|
|
messages, so these are the files the crate's build script compiles, unchanged: the
|
|
`mavlink/mavlink` repository at `44a1229ece43cfc3ce1640451ad5aaba52a28459`, the commit the
|
|
crate's `mavlink` submodule names at its 0.21.0 tag. Every file was compared byte for byte
|
|
with the copy inside the published crate. `tests/mavlink.rs` checks that `flowrs-iface`'s
|
|
`CRC_EXTRA` equals the crate's for every message of `ardupilotmega` and `common`; a crate
|
|
upgrade that moves the XML fails it until these files follow.
|
|
|
|
| File | Includes | What |
|
|
|---|---|---|
|
|
| `minimal.xml` | — | HEARTBEAT, PROTOCOL_VERSION and the core enums |
|
|
| `standard.xml` | `minimal.xml` | the standard set |
|
|
| `common.xml` | `standard.xml` | the common set, PX4's and ArduPilot's base (1,152-odd `units=` attributes) |
|
|
| `ardupilotmega.xml` | `common.xml`, `uAvionix.xml`, `icarous.xml`, `loweheiser.xml`, `cubepilot.xml`, `csAirLink.xml` | ArduPilot's dialect |
|
|
| `uAvionix.xml`, `icarous.xml`, `loweheiser.xml`, `cubepilot.xml`, `csAirLink.xml` | — or `common.xml` / `minimal.xml` | ardupilotmega's includes |
|
|
|
|
This is a newer commit than the projection corpus pins (`crates/flowrs-iface/tests/corpus/pins/mavlink.json`,
|
|
`2e2b6af…`): `common.xml`, `minimal.xml` and `standard.xml` differ between the two. The
|
|
bridge follows the crate it links; the corpus measures the projections.
|
|
|
|
## Licence
|
|
|
|
The message definition XML is MIT-licensed (https://mavlink.io/en/#license); `LICENSE`
|
|
reproduces the permission notice from the repository's `COPYING`. The generator, mavgen and
|
|
pymavlink, is LGPLv3 and is neither vendored nor linked. `MANIFEST.tsv` gives each file's
|
|
SHA-256 and source.
|