From bcd54bd367e3d5ba3c62639b350b0092e59646b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20Jos=C3=A9=20Pereira?= Date: Fri, 17 Oct 2025 11:51:28 -0300 Subject: [PATCH 1/2] Cargo: Update to latest version of rust-mavlink MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Patrick José Pereira --- Cargo.lock | 215 ++++++++++++++++++++++++++++++++++++------- Cargo.toml | 4 +- dev_utils/Cargo.toml | 2 +- 3 files changed, 183 insertions(+), 38 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1cb4c39..8bc9ac0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -84,9 +84,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +dependencies = [ + "serde", +] [[package]] name = "bumpalo" @@ -118,6 +121,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "ciborium" version = "0.2.2" @@ -170,6 +179,22 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + [[package]] name = "crc-any" version = "2.5.0" @@ -387,6 +412,16 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" +[[package]] +name = "io-kit-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617ee6cf8e3f66f3b4ea67a4058564628cde41901316e19f559e14c7c72c5e7b" +dependencies = [ + "core-foundation-sys", + "mach2", +] + [[package]] name = "is-terminal" version = "0.4.13" @@ -450,29 +485,43 @@ version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +[[package]] +name = "mach2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" +dependencies = [ + "libc", +] + [[package]] name = "mavlink" -version = "0.13.2" -source = "git+https://github.com/mavlink/rust-mavlink#5f2ecbe856a02e7bd17f43de63c8136db7947715" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f7825f4c22c09decde0aa12b5df65137e09280b82c9ad685669b92a4da89fb8" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.9.4", "mavlink-bindgen", "mavlink-core", "num-derive", "num-traits", + "serde", + "serde_arrays", ] [[package]] name = "mavlink-bindgen" -version = "0.13.2" -source = "git+https://github.com/mavlink/rust-mavlink#5f2ecbe856a02e7bd17f43de63c8136db7947715" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06f9e500cdbdaf02b07da1625f2af65165bd14e58df22f2f0bfa3fd6db3a9917" dependencies = [ "crc-any", "lazy_static", "proc-macro2", "quick-xml", "quote", - "thiserror 1.0.64", + "regex", + "thiserror", ] [[package]] @@ -487,7 +536,7 @@ dependencies = [ "log", "mavlink", "rand", - "thiserror 2.0.12", + "thiserror", "tokio", "tokio-stream", "tokio-util", @@ -496,13 +545,19 @@ dependencies = [ [[package]] name = "mavlink-core" -version = "0.13.2" -source = "git+https://github.com/mavlink/rust-mavlink#5f2ecbe856a02e7bd17f43de63c8136db7947715" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1825f94f84c7ea6ed9ecf7864815bcd4bfbb1af8c7f2a1e28840740af32bc8d" dependencies = [ "async-trait", "byteorder", "crc-any", + "futures", + "serde", + "serde_arrays", + "serialport", "tokio", + "tokio-serial", ] [[package]] @@ -528,10 +583,47 @@ checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ "hermit-abi 0.3.9", "libc", + "log", "wasi", "windows-sys", ] +[[package]] +name = "mio-serial" +version = "5.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "029e1f407e261176a983a6599c084efd322d9301028055c87174beac71397ba3" +dependencies = [ + "log", + "mio", + "nix 0.29.0", + "serialport", + "winapi", +] + +[[package]] +name = "nix" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", +] + +[[package]] +name = "nix" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +dependencies = [ + "bitflags 2.9.4", + "cfg-if", + "cfg_aliases", + "libc", +] + [[package]] name = "num-derive" version = "0.4.2" @@ -656,9 +748,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.36.2" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" +checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89" dependencies = [ "memchr", ] @@ -728,7 +820,7 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.4", ] [[package]] @@ -796,6 +888,15 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde_arrays" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94a16b99c5ea4fe3daccd14853ad260ec00ea043b2708d1fd1da3106dcd8d9df" +dependencies = [ + "serde", +] + [[package]] name = "serde_derive" version = "1.0.210" @@ -819,6 +920,25 @@ dependencies = [ "serde", ] +[[package]] +name = "serialport" +version = "4.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21f60a586160667241d7702c420fc223939fb3c0bb8d3fac84f78768e8970dee" +dependencies = [ + "bitflags 2.9.4", + "cfg-if", + "core-foundation", + "core-foundation-sys", + "io-kit-sys", + "mach2", + "nix 0.26.4", + "quote", + "scopeguard", + "unescaper", + "windows-sys", +] + [[package]] name = "signal-hook-registry" version = "1.4.2" @@ -864,33 +984,13 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "thiserror" -version = "1.0.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" -dependencies = [ - "thiserror-impl 1.0.64", -] - [[package]] name = "thiserror" version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl 2.0.12", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" -dependencies = [ - "proc-macro2", - "quote", - "syn", + "thiserror-impl", ] [[package]] @@ -943,6 +1043,20 @@ dependencies = [ "syn", ] +[[package]] +name = "tokio-serial" +version = "5.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa1d5427f11ba7c5e6384521cfd76f2d64572ff29f3f4f7aa0f496282923fdc8" +dependencies = [ + "cfg-if", + "futures", + "log", + "mio-serial", + "serialport", + "tokio", +] + [[package]] name = "tokio-stream" version = "0.1.16" @@ -998,6 +1112,15 @@ dependencies = [ "once_cell", ] +[[package]] +name = "unescaper" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c01d12e3a56a4432a8b436f293c25f4808bdf9e9f9f98f9260bba1f1bc5a1f26" +dependencies = [ + "thiserror", +] + [[package]] name = "unicode-ident" version = "1.0.13" @@ -1085,6 +1208,22 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + [[package]] name = "winapi-util" version = "0.1.9" @@ -1094,6 +1233,12 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + [[package]] name = "windows-sys" version = "0.52.0" diff --git a/Cargo.toml b/Cargo.toml index 2ab1453..1844f3b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ bench = false [dependencies] bytes = "1.10" log = "0.4" -mavlink = { default-features = false, features = ["std", "ardupilotmega"], git = "https://github.com/mavlink/rust-mavlink", hash = "5f2ecbe8" } +mavlink = { version = "0.16.1", default-features = false, features = ["std", "ardupilotmega"] } thiserror = "2.0" tokio-util = { version = "0.7", features = ["codec"] } @@ -32,7 +32,7 @@ anyhow = "1.0" criterion = { version = "0.5", features = ["async_tokio"] } dev-utils = { path = "dev_utils" } futures = "0.3" -mavlink = { default-features = false, features = ["std", "ardupilotmega", "tokio-1"], git = "https://github.com/mavlink/rust-mavlink", hash = "5f2ecbe8" } +mavlink = { version = "0.16.1", default-features = false, features = ["std", "ardupilotmega", "tokio-1"] } rand = "0.8" tokio = { version = "1", features = ["full"] } tokio-stream = "0.1" diff --git a/dev_utils/Cargo.toml b/dev_utils/Cargo.toml index e381f5d..447d40e 100644 --- a/dev_utils/Cargo.toml +++ b/dev_utils/Cargo.toml @@ -6,5 +6,5 @@ version = "0.1.0" edition = "2021" [dependencies] -mavlink = { default-features = false, features = ["std", "ardupilotmega", "tokio-1"], git = "https://github.com/mavlink/rust-mavlink", hash = "5f2ecbe8" } +mavlink = { version = "0.16.1", features = ["std", "ardupilotmega", "tokio-1"] } rand = "0.8" From ae138dc5742bba88afb325a27c2aa00d2c50013b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20Jos=C3=A9=20Pereira?= Date: Fri, 17 Oct 2025 12:01:27 -0300 Subject: [PATCH 2/2] Update code to use latest version of rust-mavlink 0.16.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Patrick José Pereira --- benches/bench.rs | 2 +- dev_utils/src/lib.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/benches/bench.rs b/benches/bench.rs index b2b0c79..67faf16 100644 --- a/benches/bench.rs +++ b/benches/bench.rs @@ -21,7 +21,7 @@ fn add_random_v2_message(buf: &mut Vec, rng: &mut StdRng) { loop { let message_id = rng.gen_range(0..2 ^ 24); - if let Ok(data) = MavMessage::default_message_from_id(message_id) { + if let Some(data) = MavMessage::default_message_from_id(message_id) { if mavlink::write_v2_msg(buf, header, &data).is_ok() { break; } diff --git a/dev_utils/src/lib.rs b/dev_utils/src/lib.rs index 8117ea1..5e08f0e 100644 --- a/dev_utils/src/lib.rs +++ b/dev_utils/src/lib.rs @@ -20,7 +20,7 @@ pub fn create_random_v1_raw_message(rng: &mut StdRng) -> MAVLinkV1MessageRaw { loop { let message_id = rng.gen_range(0..2 ^ 24); - if let Ok(message_data) = MavMessage::default_message_from_id(message_id) { + if let Some(message_data) = MavMessage::default_message_from_id(message_id) { let mut raw_v1_message = MAVLinkV1MessageRaw::new(); raw_v1_message.serialize_message(header, &message_data); @@ -47,7 +47,7 @@ pub fn create_random_v2_raw_message(rng: &mut StdRng) -> MAVLinkV2MessageRaw { loop { let message_id = rng.gen_range(0..2 ^ 24); - if let Ok(message_data) = MavMessage::default_message_from_id(message_id) { + if let Some(message_data) = MavMessage::default_message_from_id(message_id) { let mut raw_v2_message = MAVLinkV2MessageRaw::new(); raw_v2_message.serialize_message(header, &message_data);