diff --git a/.github/workflows/rust_ci.yml b/.github/workflows/rust_ci.yml index feeb504..997056e 100644 --- a/.github/workflows/rust_ci.yml +++ b/.github/workflows/rust_ci.yml @@ -27,14 +27,13 @@ jobs: WIFI_PSK: password steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup Rust - uses: esp-rs/xtensa-toolchain@v1.5 + uses: esp-rs/xtensa-toolchain@v1.6 with: default: true buildtargets: esp32s3 ldproxy: false - version: "1.86.0" - name: Enable caching uses: Swatinem/rust-cache@v2 - name: Run build diff --git a/Cargo.lock b/Cargo.lock index 869cbb5..eca898e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -16,9 +16,9 @@ checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "az" @@ -81,9 +81,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "cfg-if" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "critical-section" @@ -138,9 +138,9 @@ dependencies = [ [[package]] name = "delegate" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9b6483c2bbed26f97861cf57651d4f2b731964a28cd2257f934a4b452480d21" +checksum = "6178a82cf56c836a3ba61a7935cdb1c49bfaa6fa4327cd5bf554a503087de26b" dependencies = [ "proc-macro2", "quote", @@ -167,10 +167,11 @@ dependencies = [ [[package]] name = "embassy-embedded-hal" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fea5ef5bed4d3468dfd44f5c9fa4cda8f54c86d4fb4ae683eacf9d39e2ea12" +checksum = "8c62a3bf127e03832fb97d8b01a058775e617653bc89e2a12c256485a7fb54c1" dependencies = [ + "embassy-embedded-hal 0.4.0", "embassy-futures", "embassy-sync 0.6.2", "embassy-time", @@ -182,6 +183,23 @@ dependencies = [ "nb 1.1.0", ] +[[package]] +name = "embassy-embedded-hal" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1611b7a7ab5d1fbed84c338df26d56fd9bded58006ebb029075112ed2c5e039" +dependencies = [ + "embassy-futures", + "embassy-hal-internal", + "embassy-sync 0.7.1", + "embedded-hal 0.2.7", + "embedded-hal 1.0.0", + "embedded-hal-async", + "embedded-storage", + "embedded-storage-async", + "nb 1.1.0", +] + [[package]] name = "embassy-executor" version = "0.7.0" @@ -211,6 +229,15 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f878075b9794c1e4ac788c95b728f26aa6366d32eeb10c7051389f898f7d067" +[[package]] +name = "embassy-hal-internal" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95285007a91b619dc9f26ea8f55452aa6c60f7115a4edc05085cd2bd3127cd7a" +dependencies = [ + "num-traits", +] + [[package]] name = "embassy-net" version = "0.7.0" @@ -250,15 +277,15 @@ dependencies = [ [[package]] name = "embassy-sync" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cef1a8a1ea892f9b656de0295532ac5d8067e9830d49ec75076291fd6066b136" +checksum = "03c372c90d3525a648684fa1c131decaf7d9ff181030db09c876fad6043443b9" dependencies = [ "cfg-if", "critical-section", "embedded-io-async", + "futures-core", "futures-sink", - "futures-util", "heapless", ] @@ -299,9 +326,12 @@ dependencies = [ [[package]] name = "embassy-usb-driver" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fc247028eae04174b6635104a35b1ed336aabef4654f5e87a8f32327d231970" +checksum = "340c5ce591ef58c6449e43f51d2c53efe1bf0bb6a40cbf80afa0d259c7d52c76" +dependencies = [ + "embedded-io-async", +] [[package]] name = "embassy-usb-synopsys-otg" @@ -431,23 +461,11 @@ dependencies = [ "object-chain", ] -[[package]] -name = "enum-as-inner" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "enumset" -version = "1.1.6" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11a6b7c3d347de0a9f7bfd2f853be43fe32fa6fac30c70f6d6d67a1e936b87ee" +checksum = "d6ee17054f550fd7400e1906e2f9356c7672643ed34008a9e8abe147ccd2d821" dependencies = [ "enumset_derive", "serde", @@ -455,9 +473,9 @@ dependencies = [ [[package]] name = "enumset_derive" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6da3ea9e1d1a3b1593e15781f930120e72aa7501610b2f82e5b6739c72e8eac5" +checksum = "76d07902c93376f1e96c34abc4d507c0911df3816cef50b01f5a2ff3ad8c370d" dependencies = [ "darling", "proc-macro2", @@ -487,48 +505,52 @@ dependencies = [ [[package]] name = "esp-backtrace" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c304bbe17df32db8bc0027a9da989aa3efebbd4e7a79d58850deb29e2af577f" +checksum = "5f270a29a3c4e492399b13e157b10151a7616cba69c4d554076ea93ed1bd2916" dependencies = [ "cfg-if", - "esp-build", "esp-config", - "esp-metadata", "esp-println", "heapless", "semihosting", ] [[package]] -name = "esp-build" -version = "0.3.0" +name = "esp-bootloader-esp-idf" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "837020ff95fbf4c15c206541dda7994f1bbe6e1505e36a6a5ecb51fdb61656d7" +checksum = "3a093dbdc64b0288baacc214c2e8c2f3f13ecbf979c36ee2f63797ecf22538f1" dependencies = [ - "quote", - "syn", - "termcolor", + "cfg-if", + "document-features", + "embedded-storage", + "esp-config", + "esp-rom-sys", + "jiff", + "log", + "strum", ] [[package]] name = "esp-config" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c8c4c95d8d6243ddb39efe1fcf2524c9becd0f86bb3e24048ed30b4f553609f" +checksum = "abd4a8db4b72794637a25944bc8d361c3cc271d4f03987ce8741312b6b61529c" dependencies = [ "document-features", + "esp-metadata-generated", + "evalexpr", "serde", - "serde_json", + "serde_yaml", ] [[package]] name = "esp-hal" -version = "1.0.0-beta.1" +version = "1.0.0-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d973697621cd3eef9c3f260fa8c1af77d8547cfc92734255d8e8ddf05c7d331" +checksum = "f3887eda2917deef3d99e7a5c324f9190714e99055361ad36890dffd0a995b49" dependencies = [ - "basic-toml", "bitfield", "bitflags 2.9.1", "bytemuck", @@ -537,7 +559,7 @@ dependencies = [ "delegate", "digest", "document-features", - "embassy-embedded-hal", + "embassy-embedded-hal 0.3.2", "embassy-futures", "embassy-sync 0.6.2", "embassy-usb-driver", @@ -548,12 +570,18 @@ dependencies = [ "embedded-io", "embedded-io-async", "enumset", - "esp-build", "esp-config", "esp-hal-procmacros", - "esp-metadata", + "esp-metadata-generated", "esp-riscv-rt", + "esp-rom-sys", "esp-synopsys-usb-otg", + "esp32", + "esp32c2", + "esp32c3", + "esp32c6", + "esp32h2", + "esp32s2", "esp32s3", "fugit", "instability", @@ -573,9 +601,9 @@ dependencies = [ [[package]] name = "esp-hal-embassy" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87807cdf22124ba46dbac7d7f6d3ee2e7f06c4e461f3783443464d868101647d" +checksum = "d000d94064c485f86adc6b02b541e2f072e03321b4f03d4303b7ff3062c7e692" dependencies = [ "cfg-if", "critical-section", @@ -585,11 +613,10 @@ dependencies = [ "embassy-time", "embassy-time-driver", "embassy-time-queue-utils", - "esp-build", "esp-config", "esp-hal", "esp-hal-procmacros", - "esp-metadata", + "esp-metadata-generated", "log", "portable-atomic", "static_cell", @@ -597,58 +624,79 @@ dependencies = [ [[package]] name = "esp-hal-procmacros" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73164008cb2eada2ef85e6b0e459001d851f9b8e65e96e0d594bdfa8cf1b813b" +checksum = "fbece384edaf0d1eabfa45afa96d910634d4158638ef983b2d419a8dec832246" dependencies = [ - "darling", "document-features", "litrs", "object", "proc-macro-crate", - "proc-macro-error2", "proc-macro2", "quote", "syn", + "termcolor", ] [[package]] name = "esp-metadata" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0154d59933c2419ef25a01938517cc6969f47b6af53ebb34c279393aa20d9654" +checksum = "a6fbc1d166be84c0750f121e95c8989ddebd7e7bdd86af3594a6cfb34f039650" dependencies = [ "anyhow", "basic-toml", + "indexmap", + "proc-macro2", + "quote", "serde", "strum", ] +[[package]] +name = "esp-metadata-generated" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "189d36b8c8a752bdebec67fd02a15ebb1432feea345553749bca7ce2393cc795" +dependencies = [ + "esp-metadata", +] + [[package]] name = "esp-println" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fae8b38d5fdc1d29d823c4737f18edfb0ccf0406985cf893f87c0cfc26a6ab33" +checksum = "3e7e3ab41e96093d7fd307e93bfc88bd646a8ff23036ebf809e116b18869f719" dependencies = [ "critical-section", "document-features", - "esp-build", - "esp-metadata", + "esp-metadata-generated", "log", "portable-atomic", ] [[package]] name = "esp-riscv-rt" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05c2badd16cbd6307d463090615332b77c17a6766b41ba5fe5bb783310e8af6" +checksum = "9a00370dfcb0ccc01c6b2540076379c6efd6890a27f584de217c38e3239e19d5" dependencies = [ "document-features", "riscv", "riscv-rt-macros", ] +[[package]] +name = "esp-rom-sys" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "646aca2b30503b6c6f34250255fbd5887fd0c4104ea90802c1fea34f3035e7d6" +dependencies = [ + "cfg-if", + "document-features", + "esp-metadata-generated", +] + [[package]] name = "esp-synopsys-usb-otg" version = "0.4.2" @@ -664,9 +712,9 @@ dependencies = [ [[package]] name = "esp-wifi" -version = "0.14.1" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3700028d3d2ee57e6d2a5c5f60544711052f8d394e73a6f534b538fbfb9d058c" +checksum = "84908f2e95cb99a200cf448abafc416576338be590778a15d9224eee237f3210" dependencies = [ "allocator-api2", "cfg-if", @@ -677,10 +725,9 @@ dependencies = [ "embedded-io-async", "enumset", "esp-alloc", - "esp-build", "esp-config", "esp-hal", - "esp-metadata", + "esp-metadata-generated", "esp-wifi-sys", "num-derive", "num-traits", @@ -700,6 +747,16 @@ dependencies = [ "anyhow", ] +[[package]] +name = "esp32" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7680f79e3a4770e59c2dc25b17dcd852921ee57ffae9a4c4806c9ca5001d54d" +dependencies = [ + "critical-section", + "vcell", +] + [[package]] name = "esp32-homecontrol" version = "0.1.0" @@ -707,13 +764,14 @@ dependencies = [ "embassy-executor", "embassy-futures", "embassy-net", - "embassy-sync 0.7.0", + "embassy-sync 0.7.1", "embassy-time", "embedded-graphics", "embedded-hal 1.0.0", "embedded-text", "esp-alloc", "esp-backtrace", + "esp-bootloader-esp-idf", "esp-hal", "esp-hal-embassy", "esp-println", @@ -729,16 +787,72 @@ dependencies = [ "strum", ] +[[package]] +name = "esp32c2" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da1bcf86fca83543e0e95561cba27bbcc6b6e7adc5428f49187f5868bc0c3ed2" +dependencies = [ + "critical-section", + "vcell", +] + +[[package]] +name = "esp32c3" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce2c5a33d4377f974cbe8cadf8307f04f2c39755704cb09e81852c63ee4ac7b8" +dependencies = [ + "critical-section", + "vcell", +] + +[[package]] +name = "esp32c6" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ca8fc81b7164df58b5e04aaac9e987459312e51903cca807317990293973a6e" +dependencies = [ + "critical-section", + "vcell", +] + +[[package]] +name = "esp32h2" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80171d08c17d8c63b53334c60ca654786a7593481531d19b639c4e5c76d276de" +dependencies = [ + "critical-section", + "vcell", +] + +[[package]] +name = "esp32s2" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c90d347480fca91f4be3e94b576af9c6c7987795c58dc3c5a7c108b6b3966dc" +dependencies = [ + "critical-section", + "vcell", +] + [[package]] name = "esp32s3" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27a4c6fd31207a297fc29d2b8f4da27facf45f8c83041f7c0f978aa65ab367c9" +checksum = "a3769c56222c4548833f236c7009f1f8b3f2387af26366f6bd1cea456666a49d" dependencies = [ "critical-section", "vcell", ] +[[package]] +name = "evalexpr" +version = "12.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02a3229bec56a977f174b32fe7b8d89e8c79ebb4493d10ad763b6676dc2dc0c9" + [[package]] name = "float-cmp" version = "0.9.0" @@ -848,12 +962,13 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "indexmap" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", "hashbrown", + "serde", ] [[package]] @@ -864,9 +979,9 @@ checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" [[package]] name = "instability" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf9fed6d91cfb734e7476a06bde8300a1b94e217e1b523b6f0cd1a01998c71d" +checksum = "435d80800b936787d62688c927b6490e887c7ef5ff9ce922c6c6050fca75eb9a" dependencies = [ "darling", "indoc", @@ -881,6 +996,30 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "jiff" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" +dependencies = [ + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", +] + +[[package]] +name = "jiff-static" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "linked_list_allocator" version = "0.10.5" @@ -889,9 +1028,9 @@ checksum = "9afa463f5405ee81cdb9cc2baf37e08ec7e4c8209442b5d72c04cfb2cd6e6286" [[package]] name = "litrs" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" +checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" dependencies = [ "proc-macro2", ] @@ -920,15 +1059,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3c8dda44ff03a2f238717214da50f65d5a53b45cd213a7370424ffdb6fae815" -[[package]] -name = "minijinja" -version = "2.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd72e8b4e42274540edabec853f607c015c73436159b06c39c7af85a20433155" -dependencies = [ - "serde", -] - [[package]] name = "mipidsi" version = "0.9.0" @@ -1015,6 +1145,15 @@ version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + [[package]] name = "portable_atomic_enum" version = "0.3.1" @@ -1045,33 +1184,11 @@ dependencies = [ "toml_edit", ] -[[package]] -name = "proc-macro-error-attr2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" -dependencies = [ - "proc-macro2", - "quote", -] - -[[package]] -name = "proc-macro-error2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" -dependencies = [ - "proc-macro-error-attr2", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] @@ -1162,12 +1279,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "rustversion" -version = "1.0.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" - [[package]] name = "ryu" version = "1.0.20" @@ -1202,9 +1313,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ "itoa", "memchr", @@ -1213,12 +1324,16 @@ dependencies = [ ] [[package]] -name = "serde_spanned" -version = "0.6.9" +name = "serde_yaml" +version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ + "indexmap", + "itoa", + "ryu", "serde", + "unsafe-libyaml", ] [[package]] @@ -1242,9 +1357,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "static_cell" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89b0684884a883431282db1e4343f34afc2ff6996fe1f4a1664519b66e14c1e" +checksum = "0530892bb4fa575ee0da4b86f86c667132a94b74bb72160f58ee5a4afec74c23" dependencies = [ "portable-atomic", ] @@ -1257,31 +1372,30 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" -version = "0.27.1" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.27.1" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" dependencies = [ "heck", "proc-macro2", "quote", - "rustversion", "syn", ] [[package]] name = "syn" -version = "2.0.103" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4307e30089d6fd6aff212f2da3a1f9e32f3223b1f010fb09b7c95f90f3ca1e8" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -1297,26 +1411,11 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "toml" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - [[package]] name = "toml_datetime" version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" -dependencies = [ - "serde", -] [[package]] name = "toml_edit" @@ -1325,19 +1424,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap", - "serde", - "serde_spanned", "toml_datetime", - "toml_write", "winnow", ] -[[package]] -name = "toml_write" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" - [[package]] name = "typenum" version = "1.18.0" @@ -1356,6 +1446,12 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + [[package]] name = "usb-device" version = "0.3.2" @@ -1468,48 +1564,40 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" +checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" dependencies = [ "memchr", ] [[package]] name = "xtensa-lx" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68737a6c8f32ddcd97476acf68ddc6d411697fd94f64a601af16854b74967dff" +checksum = "3a564fffeb3cd773a524e8d8a5c66ca5e9739ea7450e36a3e6a54dd31f1e652f" dependencies = [ "critical-section", - "document-features", ] [[package]] name = "xtensa-lx-rt" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "235815f34d1bf9c2f9c07917e2b63efbcab5ca5ce9d8faddb97b7105eed1ade3" +checksum = "520a8fb0121eb6868f4f5ff383e262dc863f9042496724e01673a98a9b7e6c2b" dependencies = [ - "anyhow", "document-features", - "enum-as-inner", - "minijinja", "r0", - "serde", - "strum", - "toml", "xtensa-lx", "xtensa-lx-rt-proc-macros", ] [[package]] name = "xtensa-lx-rt-proc-macros" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c1ab67b22f0576b953a25c43bdfed0ff84af2e01ced85e95c29e7bac6bf2180" +checksum = "c5a56a616147f5947ceb673790dd618d77b30e26e677f4a896df049d73059438" dependencies = [ - "darling", "proc-macro2", "quote", "syn", diff --git a/Cargo.toml b/Cargo.toml index fd085b6..c5a7912 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,13 +4,13 @@ version = "0.1.0" edition = "2021" [dependencies] -esp-backtrace = { version = "0.16.0", features = [ +esp-backtrace = { version = "0.17.0", features = [ "esp32s3", "exception-handler", "panic-handler", "println", ] } -esp-hal = { version = "1.0.0-beta.1", features = [ +esp-hal = { version = "1.0.0-rc.0", features = [ "esp32s3", "unstable", "log-04", @@ -24,26 +24,27 @@ embassy-net = { version = "0.7.0", features = [ "dhcpv4-hostname", ] } mipidsi = { version = "0.9.0" } -esp-wifi = { version = "0.14.1", features = ["esp32s3", "serde", "wifi"] } +esp-wifi = { version = "0.15.0", features = ["esp32s3", "serde", "wifi"] } heapless = { version = "0.8.0", default-features = false } -esp-println = { version = "0.14.0", features = ["esp32s3", "log-04"] } +esp-println = { version = "0.15.0", features = ["esp32s3", "log-04"] } embassy-executor = { version = "0.7.0", features = ["task-arena-size-163840"] } embassy-time = { version = "0.4.0", features = [] } -esp-hal-embassy = { version = "0.8.1", features = ["esp32s3", "log-04"] } +esp-hal-embassy = { version = "0.9.0", features = ["esp32s3", "log-04"] } rust-mqtt = { version = "0.3.0", default-features = false, features = [] } embedded-text = "0.7.2" embedded-graphics = { version = "0.8.1", features = [] } embedded-hal = { version = "1.0.0", features = [] } serde = { version = "1.0.219", default-features = false, features = ["derive"] } -serde_json = { version = "1.0.140", default-features = false, features = [ +serde_json = { version = "1.0.143", default-features = false, features = [ "alloc", ] } embassy-futures = { version = "0.1.1", features = [] } -embassy-sync = { version = "0.7.0", features = [] } -static_cell = "2.1.0" +embassy-sync = { version = "0.7.1", features = [] } +static_cell = "2.1.1" nb = { version = "1.1.0", features = [] } log = "0.4.27" -strum = { version = "0.27.1", default-features = false } +strum = { version = "0.27.2", default-features = false } +esp-bootloader-esp-idf = { version = "0.2.0", features = ["log-04", "esp32s3"] } [profile.dev] # Rust debug is too slow. diff --git a/src/display.rs b/src/display.rs index 366f6fd..59bd6a4 100644 --- a/src/display.rs +++ b/src/display.rs @@ -156,7 +156,7 @@ pub enum Error { impl core::fmt::Display for Error { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { match self { - Error::DisplayInterface(msg) => write!(f, "Display interface error: {}", msg), + Error::DisplayInterface(msg) => write!(f, "Display interface error: {msg}"), Error::InitError => write!(f, "Display initialization error"), } } diff --git a/src/main.rs b/src/main.rs index b4180ea..4d53265 100644 --- a/src/main.rs +++ b/src/main.rs @@ -56,6 +56,8 @@ static mut BOOT_COUNT: u32 = 0; #[ram(rtc_fast)] static mut DISCOVERY_MESSAGES_SENT: bool = false; +esp_bootloader_esp_idf::esp_app_desc!(); + #[main] async fn main(spawner: Spawner) { init_logger(log::LevelFilter::Info); @@ -86,14 +88,7 @@ async fn main_fallible(spawner: Spawner, boot_count: u32) -> Result<(), Error> { let mut power_pin = Output::new(peripherals.GPIO15, Level::Low, OutputConfig::default()); power_pin.set_high(); - let stack = connect_to_wifi( - peripherals.WIFI, - timg1.timer0, - peripherals.RADIO_CLK, - peripherals.RNG, - spawner, - ) - .await?; + let stack = connect_to_wifi(peripherals.WIFI, timg1.timer0, peripherals.RNG, spawner).await?; let display_peripherals = DisplayPeripherals { backlight: peripherals.GPIO38, @@ -174,8 +169,8 @@ enum Error { impl core::fmt::Display for Error { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { match self { - Error::Wifi(error) => write!(f, "Wifi error: {:?}", error), - Error::Display(error) => write!(f, "Display error: {}", error), + Error::Wifi(error) => write!(f, "Wifi error: {error:?}"), + Error::Display(error) => write!(f, "Display error: {error}"), } } } diff --git a/src/update_task.rs b/src/update_task.rs index e0438f6..d4b3c42 100644 --- a/src/update_task.rs +++ b/src/update_task.rs @@ -77,7 +77,7 @@ pub async fn update_task( } }; - let pump_set_topic = format!("{}/pump/set", DEVICE_ID); + let pump_set_topic = format!("{DEVICE_ID}/pump/set"); if let Err(e) = client.subscribe_to_topic(&pump_set_topic).await { println!( @@ -256,7 +256,7 @@ async fn publish_sensor_data( let key = s.topic(); let value = s.value(); let message = json!({ "value": value }).to_string(); - let topic_name = format!("{}/{}", DEVICE_ID, key); + let topic_name = format!("{DEVICE_ID}/{key}"); println!( "Publishing to topic {}, message: {}", @@ -281,7 +281,7 @@ async fn process_display( display: &mut Display<'static, Delay>, sensor_data: &SensorData, ) -> Result<(), Error> { - display.write_multiline(&format!("{}", sensor_data))?; + display.write_multiline(&format!("{sensor_data}"))?; Timer::after(Duration::from_secs(AWAKE_DURATION_SECONDS)).await; display.enable_powersave()?; Ok(()) @@ -346,8 +346,7 @@ fn get_sensor_discovery(s: &Sensor) -> (String, String) { } let discovery_topic = format!( - "{}/{}/{}_{}/config", - HOMEASSISTANT_DISCOVERY_TOPIC_PREFIX, HOMEASSISTANT_SENSOR_TOPIC, DEVICE_ID, topic + "{HOMEASSISTANT_DISCOVERY_TOPIC_PREFIX}/{HOMEASSISTANT_SENSOR_TOPIC}/{DEVICE_ID}_{topic}/config" ); (discovery_topic, payload.to_string()) @@ -361,8 +360,7 @@ fn get_pump_discovery(topic: &str) -> (String, String) { payload["payload_close"] = json!("CLOSE"); let discovery_topic = format!( - "{}/{}/{}_{}/config", - HOMEASSISTANT_DISCOVERY_TOPIC_PREFIX, HOMEASSISTANT_VALVE_TOPIC, DEVICE_ID, topic + "{HOMEASSISTANT_DISCOVERY_TOPIC_PREFIX}/{HOMEASSISTANT_VALVE_TOPIC}/{DEVICE_ID}_{topic}/config" ); (discovery_topic, payload.to_string()) @@ -394,10 +392,10 @@ impl core::fmt::Display for Error { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { match self { Error::Port => write!(f, "Port error"), - Error::Dns(e) => write!(f, "DNS error: {:?}", e), - Error::Connection(e) => write!(f, "Connection error: {:?}", e), - Error::Broker(e) => write!(f, "Broker error: {:?}", e), - Error::Display(e) => write!(f, "Display error: {:?}", e), + Error::Dns(e) => write!(f, "DNS error: {e:?}"), + Error::Connection(e) => write!(f, "Connection error: {e:?}"), + Error::Broker(e) => write!(f, "Broker error: {e:?}"), + Error::Display(e) => write!(f, "Display error: {e:?}"), } } } diff --git a/src/wifi.rs b/src/wifi.rs index 72c50db..5f10201 100644 --- a/src/wifi.rs +++ b/src/wifi.rs @@ -25,14 +25,13 @@ pub static STOP_WIFI_SIGNAL: Signal = Signal::new() pub async fn connect_to_wifi( wifi: peripherals::WIFI<'static>, timer: esp_hal::timer::timg::Timer<'static>, - radio_clocks: peripherals::RADIO_CLK<'static>, rng: RNG<'static>, spawner: Spawner, ) -> Result, WifiError> { let mut rng = Rng::new(rng); static INIT: StaticCell> = StaticCell::new(); - let init = INIT.init(esp_wifi::init(timer, rng, radio_clocks).unwrap()); + let init = INIT.init(esp_wifi::init(timer, rng).unwrap()); let (controller, interfaces) = esp_wifi::wifi::new(init, wifi).unwrap();