feat(wifi): use the embassy-sync RpcService for the wifi service

This commit is contained in:
2026-08-27 18:08:54 -05:00
parent aed54c7ab6
commit 68412464ec
3 changed files with 209 additions and 213 deletions
Generated
+189 -175
View File
@@ -13,9 +13,9 @@ dependencies = [
[[package]]
name = "aho-corasick"
version = "1.1.4"
version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba"
dependencies = [
"memchr",
]
@@ -32,30 +32,24 @@ version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
[[package]]
name = "base64"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
[[package]]
name = "bitfield"
version = "0.19.4"
version = "0.19.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21ba6517c6b0f2bf08be60e187ab64b038438f22dd755614d8fe4d4098c46419"
checksum = "b45721c9db4c7a20899d05efb7ad9235f50b256e980db30ffb229abf732934c3"
dependencies = [
"bitfield-macros",
]
[[package]]
name = "bitfield-macros"
version = "0.19.4"
version = "0.19.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f48d6ace212fdf1b45fd6b566bb40808415344642b76c3224c07c8df9da81e97"
checksum = "c0cb6f3d4773a2107b94cbeccaa5b5f0b35a88389b5d522d13d659f64317b22d"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 3.0.4",
]
[[package]]
@@ -66,9 +60,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
version = "2.13.0"
version = "2.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8"
checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da"
[[package]]
name = "block-buffer"
@@ -87,7 +81,7 @@ checksum = "211713d2e9fb4793ce4360a712c0764264aff6be48932ccf02ca2a331c0436a9"
dependencies = [
"btuuid",
"defmt 1.1.1",
"embassy-sync 0.8.0",
"embassy-sync 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"embedded-io 0.7.1",
"embedded-io-async 0.7.0",
"futures-intrusive",
@@ -111,9 +105,9 @@ checksum = "21c7ab3e4ae80853c7f8dcdcd904dfa25c02cc373534b8d165194325a088a7cc"
[[package]]
name = "bytemuck"
version = "1.25.0"
version = "1.25.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec"
checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797"
[[package]]
name = "byteorder"
@@ -123,9 +117,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "cc"
version = "1.2.63"
version = "1.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "556e016178bb5662a08681bbe0f00f8e17631781a4dfc8c45e466e4b185ec27f"
checksum = "0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273"
dependencies = [
"find-msvc-tools",
"shlex",
@@ -181,9 +175,9 @@ checksum = "0d8a42181e0652c2997ae4d217f25b63c5337a52fd2279736e97b832fa0a3cff"
[[package]]
name = "cordyceps"
version = "0.3.4"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "688d7fbb8092b8de775ef2536f36c8c31f2bc4006ece2e8d8ad2d17d00ce0a2a"
checksum = "5b9ab7e0ca1d179628fa0172b2b97203c7fa0cd81be2448bd446fb9559ca9261"
dependencies = [
"loom",
"tracing",
@@ -199,9 +193,8 @@ dependencies = [
"embassy-executor",
"embassy-futures",
"embassy-net",
"embassy-sync 0.8.0",
"embassy-sync 0.8.0 (git+https://github.com/embassy-rs/embassy?branch=main)",
"embassy-time",
"embedded-rpc",
"esp-alloc",
"esp-backtrace",
"esp-bootloader-esp-idf",
@@ -269,12 +262,12 @@ dependencies = [
[[package]]
name = "darling"
version = "0.23.0"
version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d"
checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec"
dependencies = [
"darling_core 0.23.0",
"darling_macro 0.23.0",
"darling_core 0.24.1",
"darling_macro 0.24.1",
]
[[package]]
@@ -288,7 +281,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -301,20 +294,20 @@ dependencies = [
"ident_case",
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
name = "darling_core"
version = "0.23.0"
version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0"
checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff"
dependencies = [
"ident_case",
"proc-macro2",
"quote",
"strsim",
"syn 2.0.117",
"syn 3.0.4",
]
[[package]]
@@ -325,7 +318,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead"
dependencies = [
"darling_core 0.20.11",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -336,18 +329,18 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81"
dependencies = [
"darling_core 0.21.3",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
name = "darling_macro"
version = "0.23.0"
version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d"
checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785"
dependencies = [
"darling_core 0.23.0",
"darling_core 0.24.1",
"quote",
"syn 2.0.117",
"syn 3.0.4",
]
[[package]]
@@ -378,7 +371,7 @@ dependencies = [
"defmt-parser",
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -398,7 +391,7 @@ checksum = "780eb241654bf097afb00fc5f054a09b687dad862e485fdcf8399bb056565370"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -428,7 +421,7 @@ checksum = "11772ed3eb3db124d826f3abeadf5a791a557f62c19b123e3f07288158a71fdd"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -449,7 +442,7 @@ dependencies = [
"defmt 1.1.1",
"embassy-futures",
"embassy-hal-internal",
"embassy-sync 0.8.0",
"embassy-sync 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"embassy-time",
"embedded-hal 0.2.7",
"embedded-hal 1.0.0",
@@ -482,7 +475,7 @@ dependencies = [
"darling 0.20.11",
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -518,7 +511,7 @@ dependencies = [
"defmt 1.1.1",
"document-features",
"embassy-net-driver",
"embassy-sync 0.8.0",
"embassy-sync 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"embassy-time",
"embedded-io-async 0.7.0",
"embedded-nal-async",
@@ -579,6 +572,19 @@ dependencies = [
"heapless 0.9.3",
]
[[package]]
name = "embassy-sync"
version = "0.8.0"
source = "git+https://github.com/embassy-rs/embassy?branch=main#0b51d4cea5c02b8aa5dc0fad74be46f36b83373d"
dependencies = [
"cfg-if",
"critical-section",
"embedded-io-async 0.7.0",
"futures-core",
"futures-sink",
"heapless 0.9.3",
]
[[package]]
name = "embassy-time"
version = "0.5.1"
@@ -706,15 +712,6 @@ dependencies = [
"embedded-nal",
]
[[package]]
name = "embedded-rpc"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "691855ab7f974e2aaa87433e0f6e5967a959f312c486f6f929ff1cda14c7f80d"
dependencies = [
"embassy-sync 0.8.0",
]
[[package]]
name = "embedded-storage"
version = "0.3.1"
@@ -732,9 +729,9 @@ dependencies = [
[[package]]
name = "enumset"
version = "1.1.13"
version = "1.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "839c4174b41e75c8f7306110b2c51996a293b8d1d850edd529011841d9fede7d"
checksum = "ccc5801fd11762e24d1e420d01d2ac518f2a2ca4329d4fbb6639f2412b6204e0"
dependencies = [
"defmt 1.1.1",
"enumset_derive",
@@ -749,7 +746,7 @@ dependencies = [
"darling 0.21.3",
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -785,7 +782,7 @@ dependencies = [
"defmt 1.1.1",
"document-features",
"esp-config",
"esp-metadata-generated",
"esp-metadata-generated 0.4.0",
"esp-println",
"heapless 0.9.3",
"riscv",
@@ -804,7 +801,7 @@ dependencies = [
"embedded-storage",
"esp-config",
"esp-hal-procmacros",
"esp-metadata-generated",
"esp-metadata-generated 0.4.0",
"esp-rom-sys",
"jiff",
"strum",
@@ -817,7 +814,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4d9b92fd9cfb0b4f8f1b6219b9763269a335571e307b014903b8201619374b80"
dependencies = [
"document-features",
"esp-metadata-generated",
"esp-metadata-generated 0.4.0",
"serde",
"serde_yaml",
"somni-expr",
@@ -825,12 +822,12 @@ dependencies = [
[[package]]
name = "esp-hal"
version = "1.1.1"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2bfcf2a0842903717f4663f6a08512c32b0f6b2d7fb7db3c8a6895d2e6d49f72"
checksum = "9e2874462a2a0faca8b6318a10b0db87d2b7cd74dded82b3dfd780c07a319038"
dependencies = [
"bitfield",
"bitflags 2.13.0",
"bitflags 2.13.1",
"bytemuck",
"cfg-if",
"critical-section",
@@ -840,7 +837,7 @@ dependencies = [
"document-features",
"embassy-embedded-hal",
"embassy-futures",
"embassy-sync 0.8.0",
"embassy-sync 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"embedded-can",
"embedded-hal 1.0.0",
"embedded-hal-async",
@@ -851,7 +848,7 @@ dependencies = [
"enumset",
"esp-config",
"esp-hal-procmacros",
"esp-metadata-generated",
"esp-metadata-generated 0.4.0",
"esp-riscv-rt",
"esp-rom-sys",
"esp-sync",
@@ -859,7 +856,7 @@ dependencies = [
"esp32c2",
"esp32c3",
"esp32c5",
"esp32c6",
"esp32c6 0.23.2",
"esp32c61",
"esp32h2",
"esp32s2",
@@ -890,7 +887,7 @@ dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
"termcolor",
]
@@ -900,6 +897,12 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42c2ee95b945a4780796e4359e72c033aed3b45073880e8029458f538532db8a"
[[package]]
name = "esp-metadata-generated"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7237b66a6b13163199b9e094ea96958565a5b04d35f518ee5834dc61c044011d"
[[package]]
name = "esp-phy"
version = "0.2.0"
@@ -909,13 +912,13 @@ dependencies = [
"cfg-if",
"defmt 1.1.1",
"document-features",
"embassy-sync 0.8.0",
"embassy-sync 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"esp-config",
"esp-hal",
"esp-metadata-generated",
"esp-metadata-generated 0.4.0",
"esp-sync",
"esp-wifi-sys-esp32c6",
"esp32c6",
"esp32c6 0.23.2",
]
[[package]]
@@ -926,7 +929,7 @@ checksum = "42dee1e9ac7c3539bf6464db1707b0edd7557168f98278cf3c84fe70e63c6ce6"
dependencies = [
"defmt 1.1.1",
"document-features",
"esp-metadata-generated",
"esp-metadata-generated 0.4.0",
"esp-sync",
"log",
"portable-atomic",
@@ -945,7 +948,7 @@ dependencies = [
"docsplay",
"document-features",
"embassy-net-driver",
"embassy-sync 0.8.0",
"embassy-sync 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"embedded-io 0.6.1",
"embedded-io 0.7.1",
"embedded-io-async 0.6.1",
@@ -955,7 +958,7 @@ dependencies = [
"esp-config",
"esp-hal",
"esp-hal-procmacros",
"esp-metadata-generated",
"esp-metadata-generated 0.4.0",
"esp-phy",
"esp-radio-rtos-driver",
"esp-sync",
@@ -966,7 +969,7 @@ dependencies = [
"esp-wifi-sys-esp32h2",
"esp-wifi-sys-esp32s2",
"esp-wifi-sys-esp32s3",
"esp32c6",
"esp32c6 0.23.2",
"heapless 0.9.3",
"ieee802154",
"instability",
@@ -1001,14 +1004,13 @@ dependencies = [
[[package]]
name = "esp-rom-sys"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eae852ccb08971155023d1371c96d5490cbc26860f06aee2d629ef73f1a890c3"
checksum = "e933ff78374b763b65998b64ad671b4890ed4ba13a80deff9f53afe95ede289d"
dependencies = [
"cfg-if",
"document-features",
"esp-metadata-generated",
"esp32c6",
"esp-metadata-generated 0.5.0",
"esp32c6 0.24.0",
]
[[package]]
@@ -1022,14 +1024,14 @@ dependencies = [
"defmt 1.1.1",
"document-features",
"embassy-executor",
"embassy-sync 0.8.0",
"embassy-sync 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"embassy-time-driver",
"embassy-time-queue-utils",
"esp-alloc",
"esp-config",
"esp-hal",
"esp-hal-procmacros",
"esp-metadata-generated",
"esp-metadata-generated 0.4.0",
"esp-radio-rtos-driver",
"esp-rom-sys",
"esp-sync",
@@ -1049,7 +1051,7 @@ dependencies = [
"embedded-storage",
"esp-hal",
"esp-hal-procmacros",
"esp-metadata-generated",
"esp-metadata-generated 0.4.0",
"esp-rom-sys",
"esp-sync",
]
@@ -1065,8 +1067,8 @@ dependencies = [
"document-features",
"embassy-sync 0.6.2",
"embassy-sync 0.7.2",
"embassy-sync 0.8.0",
"esp-metadata-generated",
"embassy-sync 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"esp-metadata-generated 0.4.0",
"riscv",
"xtensa-lx",
]
@@ -1184,6 +1186,15 @@ dependencies = [
"vcell",
]
[[package]]
name = "esp32c6"
version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a207a5d6886ca89b4f220606dcf3779ca869803df192508314939186ae8de1ee"
dependencies = [
"vcell",
]
[[package]]
name = "esp32c61"
version = "0.3.2"
@@ -1226,9 +1237,9 @@ dependencies = [
[[package]]
name = "find-msvc-tools"
version = "0.1.9"
version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890"
[[package]]
name = "fnv"
@@ -1248,9 +1259,9 @@ dependencies = [
[[package]]
name = "futures-core"
version = "0.3.32"
version = "0.3.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e"
[[package]]
name = "futures-intrusive"
@@ -1264,21 +1275,21 @@ dependencies = [
[[package]]
name = "futures-sink"
version = "0.3.32"
version = "0.3.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893"
checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d"
[[package]]
name = "futures-task"
version = "0.3.32"
version = "0.3.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd"
[[package]]
name = "futures-util"
version = "0.3.32"
version = "0.3.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6"
checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc"
dependencies = [
"futures-core",
"futures-task",
@@ -1421,15 +1432,15 @@ dependencies = [
[[package]]
name = "instability"
version = "0.3.12"
version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5eb2d60ef19920a3a9193c3e371f726ec1dafc045dac788d0fb3704272458971"
checksum = "2bf84e73fa6f27f299dec58e13223cf70db80da872eb921d4f6138342a0eabc8"
dependencies = [
"darling 0.23.0",
"darling 0.24.1",
"indoc",
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 3.0.4",
]
[[package]]
@@ -1441,7 +1452,7 @@ dependencies = [
"proc-macro2",
"proc-macro2-diagnostics",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -1452,10 +1463,12 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
[[package]]
name = "jiff"
version = "0.2.28"
version = "0.2.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4603d3033e49e2b0e31229fcab20a5d40089c607d975cd9c80551dc69eed9102"
checksum = "668b7183bd07af9a4885f5c35b0cc5c83c4607a913c16b7e17291832910d2dcc"
dependencies = [
"defmt 1.1.1",
"jiff-core",
"jiff-static",
"log",
"portable-atomic",
@@ -1464,14 +1477,24 @@ dependencies = [
]
[[package]]
name = "jiff-static"
version = "0.2.28"
name = "jiff-core"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "782d32378dddf207193ac91cefb848ad41abb58195c95168e1291227a0832b47"
checksum = "7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09"
dependencies = [
"defmt 1.1.1",
]
[[package]]
name = "jiff-static"
version = "0.2.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a69dcb3a21cfb32ce1cd056169337ca284af0766dd766e7878819b251a49204"
dependencies = [
"jiff-core",
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -1482,9 +1505,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "libc"
version = "0.2.186"
version = "0.2.189"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
[[package]]
name = "linked_list_allocator"
@@ -1509,9 +1532,9 @@ dependencies = [
[[package]]
name = "log"
version = "0.4.32"
version = "0.4.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "953f07c43838f8e6f9758cab68bf5bed85465e7587ebe0b823f1bcd81978ad3a"
checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6"
[[package]]
name = "loom"
@@ -1543,9 +1566,9 @@ dependencies = [
[[package]]
name = "memchr"
version = "2.8.1"
version = "2.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b947ae49db0d222b1dbc6b113ce7248a3fc3a6ca21b696717bfc000ba4484d8"
checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
[[package]]
name = "nb"
@@ -1579,7 +1602,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -1640,7 +1663,7 @@ checksum = "e18e82b212e47a9df016984abe8da12c179440942c02f57c7badc82f6466a051"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -1660,7 +1683,7 @@ checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -1702,7 +1725,7 @@ checksum = "a33fa6ec7f2047f572d49317cca19c87195de99c6e5b6ee492da701cfe02b053"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -1726,9 +1749,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.106"
version = "1.0.107"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
dependencies = [
"unicode-ident",
]
@@ -1741,15 +1764,15 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
"version_check",
]
[[package]]
name = "quote"
version = "1.0.45"
version = "1.0.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
dependencies = [
"proc-macro2",
]
@@ -1774,9 +1797,9 @@ checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69"
[[package]]
name = "regex-automata"
version = "0.4.14"
version = "0.4.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2"
dependencies = [
"aho-corasick",
"memchr",
@@ -1810,7 +1833,7 @@ checksum = "7d323d13972c1b104aa036bc692cd08b822c8bbf23d79a27c526095856499799"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -1840,7 +1863,7 @@ checksum = "def519ddeeb5e43c2b4fc3952c27b3a86782fc05192f322b2309125cd85b1fc3"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -1851,22 +1874,21 @@ checksum = "b1376b15f3ff160e9b1e8ea564ce427f2f6fcf77528cc0a8bf405cb476f9cea7"
[[package]]
name = "rlsf"
version = "0.2.2"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1646a59a9734b8b7a0ac51689388a60fe1625d4b956348e9de07591a1478457a"
checksum = "07393724337be2ee43a9d86164df4505746874a3fa65913374bc6d6a92314362"
dependencies = [
"cfg-if",
"const-default",
"libc",
"rustversion",
"svgbobdoc",
]
[[package]]
name = "rustversion"
version = "1.0.22"
version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
[[package]]
name = "ryu"
@@ -1897,9 +1919,9 @@ dependencies = [
[[package]]
name = "serde"
version = "1.0.228"
version = "1.0.229"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
dependencies = [
"serde_core",
"serde_derive",
@@ -1919,22 +1941,22 @@ dependencies = [
[[package]]
name = "serde_core"
version = "1.0.228"
version = "1.0.229"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.228"
version = "1.0.229"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 3.0.4",
]
[[package]]
@@ -1967,9 +1989,9 @@ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
[[package]]
name = "smallvec"
version = "1.15.1"
version = "1.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
[[package]]
name = "smoltcp"
@@ -2068,7 +2090,7 @@ dependencies = [
"heck",
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -2077,19 +2099,6 @@ version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
[[package]]
name = "svgbobdoc"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2c04b93fc15d79b39c63218f15e3fdffaa4c227830686e3b7c5f41244eb3e50"
dependencies = [
"base64",
"proc-macro2",
"quote",
"syn 1.0.109",
"unicode-width",
]
[[package]]
name = "syn"
version = "1.0.109"
@@ -2103,9 +2112,20 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.117"
version = "2.0.119"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "syn"
version = "3.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f"
dependencies = [
"proc-macro2",
"quote",
@@ -2123,29 +2143,29 @@ dependencies = [
[[package]]
name = "thiserror"
version = "2.0.18"
version = "2.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "2.0.18"
version = "2.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 3.0.4",
]
[[package]]
name = "thread_local"
version = "1.1.9"
version = "1.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185"
checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070"
dependencies = [
"cfg-if",
]
@@ -2161,9 +2181,9 @@ dependencies = [
[[package]]
name = "toml_edit"
version = "0.25.12+spec-1.1.0"
version = "0.25.13+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2153edc6955a6c354fad8f5efd38b6a8769bdccf9fe50f8e1329f81b0baa5d7"
checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b"
dependencies = [
"indexmap",
"toml_datetime",
@@ -2173,9 +2193,9 @@ dependencies = [
[[package]]
name = "toml_parser"
version = "1.1.2+spec-1.1.0"
version = "1.1.3+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"
checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56"
dependencies = [
"winnow",
]
@@ -2199,7 +2219,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
[[package]]
@@ -2259,12 +2279,6 @@ version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
[[package]]
name = "unicode-width"
version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
[[package]]
name = "unsafe-libyaml"
version = "0.2.11"
@@ -2330,9 +2344,9 @@ dependencies = [
[[package]]
name = "winnow"
version = "1.0.3"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1"
checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81"
dependencies = [
"memchr",
]
@@ -2366,5 +2380,5 @@ checksum = "96fb42cd29c42f8744c74276e9f5bee7b06685bbe5b88df891516d72cb320450"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
"syn 2.0.119",
]
+1 -2
View File
@@ -31,10 +31,9 @@ esp-backtrace = { version = "0.19.0", features = [
] }
esp-println = { version = "0.17.0", features = ["defmt-espflash", "esp32c6"] }
embassy-sync = { version = "0.8.0", features = ["defmt"] }
embassy-sync = { git = "https://github.com/embassy-rs/embassy", branch = "main" }
embassy-futures = { version = "0.1.2", features = ["defmt"] }
embassy-embedded-hal = { version = "0.6.0", features = ["defmt", "time"] }
embedded-rpc = "0.2.0"
critical-section = "1.2.0"
static_cell = { version = "2.1.1", features = ["nightly"] }
+19 -36
View File
@@ -2,30 +2,29 @@ use defmt::{error, info};
use embassy_executor::Spawner;
use embassy_futures::select::{Either, select};
use embassy_net::{Runner, Stack};
use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
use embassy_sync::signal::Signal;
use embassy_sync::{blocking_mutex::raw::CriticalSectionRawMutex, rpc_service::RpcService};
use embassy_time::{Duration, Timer};
use embedded_rpc::{RequestDroppedError, RpcService};
use esp_hal::peripherals::WIFI;
use esp_radio::wifi::sta::StationConfig;
use esp_radio::wifi::{ControllerConfig, Interface, WifiController};
pub enum WifiCommand {
SetStationConfig(esp_radio::wifi::Config),
SetDhcpConfig(embassy_net::DhcpConfig),
pub static WIFI_SERVICE: RpcService<CriticalSectionRawMutex, WifiService, 64> = RpcService::new();
pub struct WifiService {
pub net_stack: Stack<'static>
}
impl WifiCommand {
pub async fn set_station_config(
config: esp_radio::wifi::Config,
) -> Result<(), RequestDroppedError> {
WIFI_SERVICE
.request(WifiCommand::SetStationConfig(config))
.await
impl WifiService {
pub async fn set_station_config(config: esp_radio::wifi::Config) {
WIFI_HANDLER_RPC.signal(config);
}
pub async fn set_dhcp_config(&self, config: embassy_net::DhcpConfig) {
self.net_stack.set_config_v4(embassy_net::ConfigV4::Dhcp(config));
}
}
pub static WIFI_SERVICE: RpcService<CriticalSectionRawMutex, WifiCommand, ()> = RpcService::new();
pub fn start_wifi(spawner: Spawner, wifi: WIFI<'static>) -> Stack<'static> {
let wifi_config = esp_radio::wifi::Config::Station(StationConfig::default());
@@ -62,26 +61,10 @@ pub fn start_wifi(spawner: Spawner, wifi: WIFI<'static>) -> Stack<'static> {
#[embassy_executor::task]
async fn handler(net_stack: Stack<'static>) {
loop {
let (req, served) = WIFI_SERVICE.serve().await;
match req {
WifiCommand::SetStationConfig(config) => {
if WIFI_HANDLER_RPC.request(config).await.is_err() {
continue;
}
}
WifiCommand::SetDhcpConfig(dhcp_config) => {
net_stack.set_config_v4(embassy_net::ConfigV4::Dhcp(dhcp_config));
}
}
served.respond(());
}
WIFI_SERVICE.run(&mut WifiService {net_stack: net_stack}).await;
}
static WIFI_HANDLER_RPC: RpcService<CriticalSectionRawMutex, esp_radio::wifi::Config, ()> =
RpcService::new();
static WIFI_HANDLER_RPC: Signal<CriticalSectionRawMutex, esp_radio::wifi::Config> = Signal::new();
#[embassy_executor::task]
async fn wifi_handler(mut controller: WifiController<'static>) {
@@ -103,11 +86,11 @@ async fn wifi_handler(mut controller: WifiController<'static>) {
};
loop {
if let Either::First((req, served)) =
select(WIFI_HANDLER_RPC.serve(), connection(&mut controller)).await
if let Either::First(req) =
select(WIFI_HANDLER_RPC.wait(), connection(&mut controller)).await
{
if controller.set_config(&req).is_ok() {
served.respond(());
if let Some(err) = controller.set_config(&req).err() {
error!("Wifi controller failed to set a new config: {:?}", err)
}
}
}