diff --git a/updater/Cargo.lock b/updater/Cargo.lock index 3bcb90b..7631315 100644 --- a/updater/Cargo.lock +++ b/updater/Cargo.lock @@ -2,68 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "aead" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" -dependencies = [ - "crypto-common", - "generic-array 0.14.7", -] - -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "aes-gcm" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" -dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", - "subtle", -] - -[[package]] -name = "as-slice" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45403b49e3954a4b8428a0ac21a4b7afadccf92bfd96273f1a58cd4812496ae0" -dependencies = [ - "generic-array 0.12.4", - "generic-array 0.13.3", - "generic-array 0.14.7", - "stable_deref_trait", -] - -[[package]] -name = "atomic-polyfill" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" -dependencies = [ - "critical-section", -] - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - [[package]] name = "bare-metal" version = "0.2.5" @@ -73,18 +11,6 @@ dependencies = [ "rustc_version", ] -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "bitfield" version = "0.13.2" @@ -103,17 +29,7 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "buffered-io" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5698b2eda4613b62f3aa3119805df1ca6739e00167a2600b3a234ac49b14803" -dependencies = [ - "embedded-io", - "embedded-io-async", + "generic-array", ] [[package]] @@ -128,22 +44,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - [[package]] name = "const-sha1" version = "0.3.0" @@ -162,72 +62,22 @@ dependencies = [ "volatile-register", ] -[[package]] -name = "cortex-m-rt" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "801d4dec46b34c299ccf6b036717ae0fce602faa4f4fe816d9013b9a7c9f5ba6" -dependencies = [ - "cortex-m-rt-macros", -] - -[[package]] -name = "cortex-m-rt-macros" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e37549a379a9e0e6e576fd208ee60394ccb8be963889eebba3ffe0980364f472" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "cpufeatures" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" -dependencies = [ - "libc", -] - [[package]] name = "critical-section" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array 0.14.7", - "rand_core", - "subtle", - "zeroize", -] - [[package]] name = "crypto-common" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array 0.14.7", + "generic-array", "typenum", ] -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - [[package]] name = "data-encoding" version = "2.6.0" @@ -266,26 +116,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "defmt-rtt" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab697b3dbbc1750b7c8b821aa6f6e7f2480b47a99bc057a2ed7b170ebef0c51" -dependencies = [ - "critical-section", - "defmt", -] - -[[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "zeroize", -] - [[package]] name = "digest" version = "0.10.7" @@ -294,7 +124,6 @@ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", "crypto-common", - "subtle", ] [[package]] @@ -315,25 +144,6 @@ dependencies = [ "signature", ] -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest", - "ff", - "generic-array 0.14.7", - "group", - "hkdf", - "rand_core", - "sec1", - "subtle", - "zeroize", -] - [[package]] name = "embassy-boot" version = "0.4.0" @@ -389,7 +199,7 @@ dependencies = [ "embassy-time", "embedded-io-async", "embedded-nal-async", - "heapless 0.8.0", + "heapless", "managed", "smoltcp", ] @@ -415,7 +225,7 @@ dependencies = [ "embedded-io-async", "futures-sink", "futures-util", - "heapless 0.8.0", + "heapless", ] [[package]] @@ -522,39 +332,6 @@ dependencies = [ "embedded-storage", ] -[[package]] -name = "embedded-tls" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6efb76fdd004a4ef787640177237b83449e6c5847765ea50bf15900061fd601" -dependencies = [ - "aes-gcm", - "atomic-polyfill", - "defmt", - "digest", - "embedded-io", - "embedded-io-async", - "generic-array 0.14.7", - "heapless 0.6.1", - "heapless 0.8.0", - "hkdf", - "hmac", - "p256", - "rand_core", - "sha2", - "typenum", -] - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "rand_core", - "subtle", -] - [[package]] name = "futures-core" version = "0.3.31" @@ -585,24 +362,6 @@ dependencies = [ "pin-utils", ] -[[package]] -name = "generic-array" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" -dependencies = [ - "typenum", -] - -[[package]] -name = "generic-array" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f797e67af32588215eaaab8327027ee8e71b9dd0b2b26996aedf20c030fce309" -dependencies = [ - "typenum", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -611,57 +370,6 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", - "zeroize", -] - -[[package]] -name = "ghash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" -dependencies = [ - "opaque-debug", - "polyval", -] - -[[package]] -name = "git-version" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19" -dependencies = [ - "git-version-macro", -] - -[[package]] -name = "git-version-macro" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core", - "subtle", -] - -[[package]] -name = "hash32" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4041af86e63ac4298ce40e5cca669066e75b6f1aa3390fe2561ffa5e1d9f4cc" -dependencies = [ - "byteorder", ] [[package]] @@ -673,18 +381,6 @@ dependencies = [ "byteorder", ] -[[package]] -name = "heapless" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634bd4d29cbf24424d0a4bfcbf80c6960129dc24424752a7d1d1390607023422" -dependencies = [ - "as-slice", - "generic-array 0.14.7", - "hash32 0.1.1", - "stable_deref_trait", -] - [[package]] name = "heapless" version = "0.8.0" @@ -692,86 +388,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" dependencies = [ "defmt", - "hash32 0.3.1", + "hash32", "serde", "stable_deref_trait", ] -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "impl-tools" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ae95c9095c2f1126d7db785955c73cdc5fc33e7c3fa911bd4a42931672029a7" -dependencies = [ - "autocfg", - "impl-tools-lib", - "proc-macro-error2", - "syn", -] - -[[package]] -name = "impl-tools-lib" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a391adcea096a89a593317881fb61ef4e68d3e7d9de9e2338e6e1557be29e10" -dependencies = [ - "proc-macro-error2", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array 0.14.7", -] - [[package]] name = "lhash" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "744a4c881f502e98c2241d2e5f50040ac73b30194d64452bb6260393b53f0dc9" -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - [[package]] name = "litrs" version = "0.4.1" @@ -799,31 +426,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d" -[[package]] -name = "nourl" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3c12edfda65fe16901d81d3bd93fd18ac07078b5007875a1c3b0d35f7725269" -dependencies = [ - "defmt", -] - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "elliptic-curve", - "primeorder", -] - [[package]] name = "picoserve" version = "0.13.3" @@ -836,7 +438,7 @@ dependencies = [ "embassy-time", "embedded-io-async", "futures-util", - "heapless 0.8.0", + "heapless", "lhash", "ryu", "serde", @@ -855,45 +457,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "polyval" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" -dependencies = [ - "cfg-if", - "cpufeatures", - "opaque-debug", - "universal-hash", -] - -[[package]] -name = "portable-atomic" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" -dependencies = [ - "critical-section", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "primeorder" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" -dependencies = [ - "elliptic-curve", -] - [[package]] name = "proc-macro-error-attr2" version = "2.0.0" @@ -934,56 +497,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" - -[[package]] -name = "reqwless" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb1be74cb817fa6dbda417110f575d9b9ad5488817f1eb65f2f6468fe6d5d663" -dependencies = [ - "base64", - "buffered-io", - "defmt", - "embedded-io", - "embedded-io-async", - "embedded-nal-async", - "embedded-tls", - "heapless 0.8.0", - "hex", - "httparse", - "nourl", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rust-mqtt" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f71160765f368fd9a84e0955e2ddb6d64ac9018fee1c5323354d6d08c816b40" -dependencies = [ - "defmt", - "embedded-io", - "embedded-io-async", - "heapless 0.8.0", - "rand_core", -] - [[package]] name = "rustc_version" version = "0.2.3" @@ -1010,19 +523,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array 0.14.7", - "subtle", - "zeroize", -] - [[package]] name = "semver" version = "0.9.0" @@ -1054,7 +554,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b81787e655bd59cecadc91f7b6b8651330b2be6c33246039a65e5cd6f4e0828" dependencies = [ "defmt", - "heapless 0.8.0", + "heapless", "ryu", "serde", ] @@ -1070,17 +570,6 @@ dependencies = [ "syn", ] -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - [[package]] name = "signature" version = "2.2.0" @@ -1097,7 +586,7 @@ dependencies = [ "byteorder", "cfg-if", "defmt", - "heapless 0.8.0", + "heapless", "managed", ] @@ -1107,15 +596,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" -[[package]] -name = "static_cell" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89b0684884a883431282db1e4343f34afc2ff6996fe1f4a1664519b66e14c1e" -dependencies = [ - "portable-atomic", -] - [[package]] name = "subtle" version = "2.6.1" @@ -1165,24 +645,12 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" -[[package]] -name = "universal-hash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" -dependencies = [ - "crypto-common", - "subtle", -] - [[package]] name = "updater" version = "0.1.0" dependencies = [ "cortex-m", - "cortex-m-rt", "defmt", - "defmt-rtt", "embassy-boot", "embassy-futures", "embassy-net", @@ -1190,18 +658,9 @@ dependencies = [ "embassy-time", "embedded-io-async", "embedded-storage", - "embedded-tls", - "git-version", - "heapless 0.8.0", - "impl-tools", + "heapless", "picoserve", - "portable-atomic", - "rand_core", - "reqwless", - "rust-mqtt", "serde", - "serde-json-core", - "static_cell", ] [[package]] @@ -1231,27 +690,6 @@ dependencies = [ "vcell", ] -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "byteorder", - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "zeroize" version = "1.8.1" diff --git a/updater/Cargo.toml b/updater/Cargo.toml index fd47484..de31e83 100644 --- a/updater/Cargo.toml +++ b/updater/Cargo.toml @@ -5,9 +5,7 @@ edition = "2021" [dependencies] cortex-m = { version = "0.7", features = ["inline-asm"] } -cortex-m-rt = "0.7" defmt = "0.3" -defmt-rtt = "0.4" embassy-net = { version = "0.6", features = [ "tcp", "dhcpv4", @@ -21,27 +19,12 @@ embassy-time = { version = "0.4", features = [ "defmt-timestamp-uptime", ] } embassy-futures = { version = "0.1", features = ["defmt"] } -rand_core = "0.6" embedded-io-async = { version = "0.6", features = ["defmt-03"] } embedded-storage = "0.3" -rust-mqtt = { version = "0.3", features = [ - "defmt", - "no_std", - "tls", -], default-features = false } heapless = { version = "0.8", features = ["defmt-03", "serde"] } serde = { version = "1.0", default-features = false, features = ["derive"] } -serde-json-core = "0.6" -embedded-tls = { version = "0.17", default-features = false, features = [ - "defmt", -] } -reqwless = { version = "0.13", features = ["defmt"] } -static_cell = { version = "2", features = ["nightly"] } -impl-tools = "0.10" -portable-atomic = { version = "1.6", features = ["critical-section"] } picoserve = { version = "0.13.3", features = ["defmt", "embassy"] } embassy-sync = { version = "0.6.1", features = ["defmt"] } -git-version = "0.3.9" [patch.crates-io] picoserve = { git = "https://github.com/hodasemi/picoserve" } diff --git a/updater/src/error.rs b/updater/src/error.rs deleted file mode 100644 index bf944bf..0000000 --- a/updater/src/error.rs +++ /dev/null @@ -1,110 +0,0 @@ -use core::fmt::{Display, Write}; - -use defmt::{Format, Formatter}; -use embassy_boot::FirmwareUpdaterError; -use embassy_net::{dns, tcp::ConnectError}; -use embedded_io_async::ReadExactError; -use embedded_storage::nor_flash::NorFlashError; -use embedded_tls::TlsError; -use heapless::String; -use rust_mqtt::packet::v5::reason_codes::ReasonCode; - -impl_tools::impl_scope! { - #[derive(Debug)] - pub enum Error { - InvalidScheme, - Mqtt(ReasonCode), - Dns(dns::Error), - Connect(ConnectError), - Tls(TlsError), - Reqwless(reqwless::Error), - FirmwareUpdater(FirmwareUpdaterError), - FlashError(FE), - UnexpectedEof, - } - - impl Self { - pub fn string(&self) -> String<256> { - let mut error = String::new(); - core::write!(error, "{}", self).expect("Formatting the error should not fail"); - error - } - } - - impl From for Self { - fn from(error: ReasonCode) -> Self { - Self::Mqtt(error) - } - } - - impl From for Self { - fn from(error: dns::Error) -> Self { - Self::Dns(error) - } - } - - impl From for Self { - fn from(error: ConnectError) -> Self { - Self::Connect(error) - } - } - - impl From for Self { - fn from(error: TlsError) -> Self { - Self::Tls(error) - } - } - - impl From for Self { - fn from(error: reqwless::Error) -> Self { - Self::Reqwless(error) - } - } - - impl From for Self { - fn from(error: FirmwareUpdaterError) -> Self { - Self::FirmwareUpdater(error) - } - } - - impl From> for Self { - fn from(error: ReadExactError) -> Self { - match error { - ReadExactError::UnexpectedEof => Self::UnexpectedEof, - ReadExactError::Other(error) => Self::Reqwless(error), - } - } - } - - impl Format for Self { - fn format(&self, f: Formatter) { - match self { - Error::InvalidScheme => defmt::write!(f, "Invalid URL scheme"), - Error::Mqtt(error) => defmt::write!(f, "Mqtt: {}", error), - Error::Dns(error) => defmt::write!(f, "Dns: {}", error), - Error::Connect(error) => defmt::write!(f, "Connect: {}", error), - Error::Tls(error) => defmt::write!(f, "Tls: {}", error), - Error::Reqwless(error) => defmt::write!(f, "Reqwless: {}", error), - Error::FirmwareUpdater(error) => defmt::write!(f, "FirmwareUpdater: {}", error), - Error::FlashError(error) => defmt::write!(f, "FlashError: {:?}", error), - Error::UnexpectedEof => defmt::write!(f, "UnexpectedEof"), - } - } - } - - impl Display for Self { - fn fmt(&self, f: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error> { - match self { - Error::InvalidScheme => core::write!(f, "Invalid URL scheme"), - Error::Mqtt(error) => core::write!(f, "Mqtt: {}", error), - Error::Dns(error) => core::write!(f, "Dns: {:?}", error), - Error::Connect(error) => core::write!(f, "Connect: {:?}", error), - Error::Tls(error) => core::write!(f, "Tls: {:?}", error), - Error::Reqwless(error) => core::write!(f, "Reqwless: {:?}", error), - Error::FirmwareUpdater(error) => core::write!(f, "FirmwareUpdater: {:?}", error), - Error::FlashError(error) => core::write!(f, "FlashError: {:?}", error), - Error::UnexpectedEof => core::write!(f, "UnexpectedEof"), - } - } - } -} diff --git a/updater/src/lib.rs b/updater/src/lib.rs index 1f1438f..fbee29d 100644 --- a/updater/src/lib.rs +++ b/updater/src/lib.rs @@ -13,24 +13,6 @@ use picoserve::{ routing::{get, put_service, PathRouter}, Router, }; -use serde::Serialize; - -mod error; - -pub use crate::error::Error; - -#[derive(Serialize)] -#[serde(rename_all = "snake_case", tag = "status")] -pub enum Status<'a> { - Connected { version: &'a str }, - Disconnected, - PreparingUpdate, - Erasing, - Writing { progress: u32 }, - Verifying, - UpdateFailed { error: &'a str }, - UpdateComplete, -} #[derive(Clone, Copy)] struct UpdaterService @@ -114,10 +96,7 @@ where } debug!("Writing chunk: {}", read); - if let Err(err) = writer - .write(size, &buffer.0[..read]) - .map_err(Error::FlashError) - { + if let Err(err) = writer.write(size, &buffer.0[..read]) { return response::Response::new( StatusCode::INTERNAL_SERVER_ERROR, format_args!("{err:?}"),