8 releases
new 0.6.4 | Mar 15, 2025 |
---|---|
0.6.3 | Mar 15, 2025 |
0.6.1 | Feb 22, 2025 |
#301 in Robotics
1,174 downloads per month
Used in 3 crates
(via mavspec)
82KB
975 lines
MAVLink dialects bindings for MAVSpec
⚠️ All issues related to this crate should be submitted to MAVSpec.
MAVLink messages bindings based on MAVInspect.
This library is a part of MAVSpec
code-generation
toolchain and is intended to use alongside with it. However, nothing prevents you from using
this crate independently.
Since MAVSpec
is I/O agnostic, it and does not provide any
abstractions for transferring MAVLink messages. If you want to communicate with MAVLink devices,
use Mavio for embedded devices and simple tasks or
Maviola for advanced I/O in std
environments (for ground
control stations, communication layers, and so on).
Upstream crates that use Mavka libraries toolchain can use Cargo patch mechanism to replace this crate and therefore change which dialects will be packaged.
Usage
This crate exposes dialects
module where all MAVlink dialects can be found.
fn main() {
let protocol = mavlink_dialects::common::Common;
let common = protocol.get_dialect_by_name("common").unwrap();
let heartbeat_message = common.get_message_by_name("HEARTBEAT").unwrap();
assert_eq!(heartbeat_message.defined_in().unwrap(), "minimal");
}
Development
The main development workflow for this crate involves inclusion into MAVSpec as a submodule.
License
Here we simply comply with the suggested dual licensing according to Rust API Guidelines (C-PERMISSIVE).
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~0.9–2.6MB
~47K SLoC