From a973d984d73df5470f265288dc749e8caa142895 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20J=C3=B6rdens?= Date: Mon, 27 Jan 2025 11:24:52 +0000 Subject: [PATCH 1/2] bump minimq, nal --- Cargo.lock | 139 ++++++++++++++++------------------------- Cargo.toml | 8 ++- src/net/data_stream.rs | 4 +- src/net/telemetry.rs | 34 ++++------ 4 files changed, 74 insertions(+), 111 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d1156cb63..f5c544a5e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -77,7 +77,7 @@ dependencies = [ "arbitrary-int", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -127,9 +127,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.2" +version = "1.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" +checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" dependencies = [ "jobserver", "libc", @@ -178,7 +178,7 @@ checksum = "e37549a379a9e0e6e576fd208ee60394ccb8be963889eebba3ffe0980364f472" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -208,7 +208,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -219,7 +219,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -230,7 +230,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -302,12 +302,11 @@ checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" [[package]] name = "embedded-nal" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a943fad5ed3d3f8a00f1e80f6bba371f1e7f0df28ec38477535eb318dc19cc" +checksum = "c56a28be191a992f28f178ec338a0bf02f63d7803244add736d026a471e6ed77" dependencies = [ "nb 1.1.0", - "no-std-net", ] [[package]] @@ -359,7 +358,7 @@ checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -605,7 +604,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -649,9 +648,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", "hashbrown", @@ -674,9 +673,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.167" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libgit2-sys" @@ -698,9 +697,9 @@ checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libz-sys" -version = "1.1.20" +version = "1.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" +checksum = "df9b68e50e6e0b26f672573834882eb57759f6db9b3be2ea3c35c91188bb4eaa" dependencies = [ "cc", "libc", @@ -770,8 +769,7 @@ dependencies = [ [[package]] name = "miniconf" version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1503186d3a89d933300e616a919e10b089a8c3379956589d009556ed5ea1b3c4" +source = "git+https://github.com/quartiq/miniconf.git#52796414eecc3c42b0ab066a539284ad562f33e8" dependencies = [ "itoa", "miniconf_derive", @@ -784,20 +782,18 @@ dependencies = [ [[package]] name = "miniconf_derive" version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbe8f870567988a09000856955ae194f2dfb1ff73ff615988a44d0fc2385df7b" +source = "git+https://github.com/quartiq/miniconf.git#52796414eecc3c42b0ab066a539284ad562f33e8" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] name = "miniconf_mqtt" version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18beed978188ff9ec7ce6f1a10a0d0e6d821fb4742021498662f4ddaa8e02892" +source = "git+https://github.com/quartiq/miniconf.git#52796414eecc3c42b0ab066a539284ad562f33e8" dependencies = [ "embedded-io", "heapless 0.8.0", @@ -805,23 +801,23 @@ dependencies = [ "miniconf", "minimq", "serde-json-core", - "smlang 0.8.0", + "smlang", "strum", ] [[package]] name = "minimq" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c63955f174d014ef627e6f21dda747c24a294be94234e91ae30a9b2173784e1" +checksum = "8aca206883c70c23d8a8179533c0dad0f7c9abe6574c0dc0908e913203b6b6e3" dependencies = [ "bit_field", "embedded-nal", "embedded-time", - "heapless 0.7.17", + "heapless 0.8.0", "num_enum", "serde", - "smlang 0.6.0", + "smlang", "varint-rs", ] @@ -861,12 +857,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d" -[[package]] -name = "no-std-net" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" - [[package]] name = "num" version = "0.3.1" @@ -957,7 +947,7 @@ checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -983,9 +973,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project-lite" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -1035,23 +1025,23 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -1110,7 +1100,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -1175,14 +1165,14 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.23", + "semver 1.0.25", ] [[package]] name = "rustversion" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "ryu" @@ -1207,9 +1197,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.23" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" [[package]] name = "semver-parser" @@ -1254,7 +1244,7 @@ checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -1277,7 +1267,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -1317,33 +1307,13 @@ version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" -[[package]] -name = "smlang" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62b263177e999fea25b50588d4413d1686f070d6fe986c3b2e5a7a4d2c532e9" -dependencies = [ - "smlang-macros 0.6.0", -] - [[package]] name = "smlang" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1de84f9f80bbe6272174e2bfdb8cf7ce4815b218038a42161c2f21c1d872c215" dependencies = [ - "smlang-macros 0.8.0", -] - -[[package]] -name = "smlang-macros" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c682cc05cd4c0dce61656d654b1aef023e7d4b27b58834af94b31391df081469" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", + "smlang-macros", ] [[package]] @@ -1374,8 +1344,7 @@ dependencies = [ [[package]] name = "smoltcp-nal" version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "975f15c4c77e7798c236b542032891f0cafe5f2e103debe59d069d50a645ed8a" +source = "git+https://github.com/quartiq/smoltcp-nal.git#dcdc1e423d69a30e02773f4fbcf17dbac9ae2fc0" dependencies = [ "embedded-nal", "embedded-time", @@ -1523,7 +1492,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -1539,9 +1508,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.90" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -1568,7 +1537,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -1599,7 +1568,7 @@ checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] [[package]] @@ -1620,9 +1589,9 @@ checksum = "e87a2ed6b42ec5e28cc3b94c09982969e9227600b2e3dcbc1db927a84c06bd69" [[package]] name = "unicode-ident" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +checksum = "11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243" [[package]] name = "url" @@ -1759,7 +1728,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", "synstructure", ] @@ -1780,7 +1749,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", "synstructure", ] @@ -1803,5 +1772,5 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.96", ] diff --git a/Cargo.toml b/Cargo.toml index 5d767b787..8825da03b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -64,7 +64,7 @@ lm75 = "0.2" enum-iterator = "2.1.0" rand_xorshift = "0.3.0" rand_core = "0.6.4" -minimq = "0.9.0" +minimq = "0.10.0" usb-device = "0.3.2" usbd-serial = "0.2" # Keep this synced with the miniconf version in py/setup.py @@ -112,3 +112,9 @@ opt-level = 3 debug = true lto = true codegen-units = 1 + +[patch.crates-io] +miniconf = { git = "https://github.com/quartiq/miniconf.git" } +miniconf_derive = { git = "https://github.com/quartiq/miniconf.git" } +miniconf_mqtt = { git = "https://github.com/quartiq/miniconf.git" } +smoltcp-nal = { git = "https://github.com/quartiq/smoltcp-nal.git" } diff --git a/src/net/data_stream.rs b/src/net/data_stream.rs index fdbc28e4c..94b2fb6c4 100644 --- a/src/net/data_stream.rs +++ b/src/net/data_stream.rs @@ -25,7 +25,7 @@ #![allow(non_camel_case_types)] // https://github.com/rust-embedded/heapless/issues/411 -use core::{fmt::Write, mem::MaybeUninit}; +use core::{fmt::Write, mem::MaybeUninit, net::SocketAddr}; use heapless::{ box_pool, pool::boxed::{Box, BoxBlock}, @@ -35,7 +35,7 @@ use heapless::{ use num_enum::IntoPrimitive; use serde::Serialize; use serde_with::DeserializeFromStr; -use smoltcp_nal::embedded_nal::{nb, SocketAddr, UdpClientStack}; +use smoltcp_nal::embedded_nal::{nb, UdpClientStack}; use super::NetworkReference; diff --git a/src/net/telemetry.rs b/src/net/telemetry.rs index 6b42b97c8..9db846e41 100644 --- a/src/net/telemetry.rs +++ b/src/net/telemetry.rs @@ -12,7 +12,7 @@ //! for unit conversion can be off-loaded to lower priority tasks. use crate::hardware::metadata::ApplicationMetadata; use heapless::String; -use minimq::{DeferredPublication, Publication}; +use minimq::Publication; use serde::Serialize; use super::NetworkReference; @@ -134,14 +134,9 @@ impl TelemetryClient { self.mqtt .client() - .publish( - minimq::DeferredPublication::new(|buf| { - serde_json_core::to_slice(telemetry, buf) - }) - .topic(&topic) - .finish() - .unwrap(), - ) + .publish(minimq::Publication::new(&topic, |buf: &mut [u8]| { + serde_json_core::to_slice(telemetry, buf) + })) .map_err(|e| log::error!("Telemetry publishing error: {:?}", e)) .ok(); } @@ -184,25 +179,18 @@ impl TelemetryClient { if mqtt .client() - .publish( - DeferredPublication::new(|buf| { - serde_json_core::to_slice(&metadata, buf) - }) - .topic(&topic) - .finish() - .unwrap(), - ) + .publish(Publication::new(&topic, |buf: &mut [u8]| { + serde_json_core::to_slice(&metadata, buf) + })) .is_err() { // Note(unwrap): We can guarantee that this message will be sent because we checked // for ability to publish above. mqtt.client() - .publish( - Publication::new(DEFAULT_METADATA.as_bytes()) - .topic(&topic) - .finish() - .unwrap(), - ) + .publish(Publication::new( + &topic, + DEFAULT_METADATA.as_bytes(), + )) .unwrap(); } From d097acde7293e9f6f0516cec16ef8ab66ca3d0d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20J=C3=B6rdens?= Date: Mon, 27 Jan 2025 11:29:39 +0000 Subject: [PATCH 2/2] smoltcp 0.6 released --- Cargo.lock | 5 +++-- Cargo.toml | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f5c544a5e..08c89df1b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1343,8 +1343,9 @@ dependencies = [ [[package]] name = "smoltcp-nal" -version = "0.5.1" -source = "git+https://github.com/quartiq/smoltcp-nal.git#dcdc1e423d69a30e02773f4fbcf17dbac9ae2fc0" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c433f9b2c78a974d0c04dec6a931747a37452e673ab0129283baca096f49a65a" dependencies = [ "embedded-nal", "embedded-time", diff --git a/Cargo.toml b/Cargo.toml index 8825da03b..4324fa61b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,7 +71,7 @@ usbd-serial = "0.2" miniconf = { version = "0.18", features = ["json-core", "derive", "postcard"] } miniconf_mqtt = { version = "0.18" } tca9539 = "0.2" -smoltcp-nal = { version = "0.5", features = ["shared-stack"] } +smoltcp-nal = { version = "0.6", features = ["shared-stack"] } postcard = "1" bit_field = "0.10.2" embassy-futures = { version = "0.1", default-features = false } @@ -117,4 +117,3 @@ codegen-units = 1 miniconf = { git = "https://github.com/quartiq/miniconf.git" } miniconf_derive = { git = "https://github.com/quartiq/miniconf.git" } miniconf_mqtt = { git = "https://github.com/quartiq/miniconf.git" } -smoltcp-nal = { git = "https://github.com/quartiq/smoltcp-nal.git" }