A RPi Pico powered Lightning Detector

Yeet KDL configs, embrace TOML

+67 -258
+1 -1
.gitignore
··· 1 1 /target 2 - config.kdl 2 + pico-config.toml
+54 -244
Cargo.lock
··· 758 758 ] 759 759 760 760 [[package]] 761 - name = "facet" 762 - version = "0.34.0" 763 - source = "registry+https://github.com/rust-lang/crates.io-index" 764 - checksum = "72ee49c69f8a398d01d9b160e3e6288c1a5f7d756e8377f0530bbb4019aa1616" 765 - dependencies = [ 766 - "autocfg", 767 - "facet-core", 768 - "facet-macros", 769 - "static_assertions", 770 - ] 771 - 772 - [[package]] 773 - name = "facet-core" 774 - version = "0.34.0" 775 - source = "registry+https://github.com/rust-lang/crates.io-index" 776 - checksum = "87ca85b6f8c289d86e5a0daa6b402ed1edf4001ad9b6ead357cc047fff680e0d" 777 - dependencies = [ 778 - "autocfg", 779 - "impls", 780 - ] 781 - 782 - [[package]] 783 - name = "facet-kdl" 784 - version = "0.34.0" 785 - source = "registry+https://github.com/rust-lang/crates.io-index" 786 - checksum = "5b52d9f35c93a85109d9d1d9042fbc1b02972c28eaceb36374995e9d166f4019" 787 - dependencies = [ 788 - "facet", 789 - "facet-core", 790 - "facet-reflect", 791 - "facet-singularize", 792 - "facet-solver", 793 - "kdl", 794 - "log", 795 - "miette", 796 - ] 797 - 798 - [[package]] 799 - name = "facet-macro-parse" 800 - version = "0.34.0" 801 - source = "registry+https://github.com/rust-lang/crates.io-index" 802 - checksum = "294183c810413075f9c3f075c0b3554d04ad06207dad18debc649a48779321f6" 803 - dependencies = [ 804 - "facet-macro-types", 805 - "proc-macro2", 806 - "quote", 807 - ] 808 - 809 - [[package]] 810 - name = "facet-macro-types" 811 - version = "0.34.0" 812 - source = "registry+https://github.com/rust-lang/crates.io-index" 813 - checksum = "8335dd3290eb5780aa40fb5b0da6c1a1c08980af6ada54c2e0d8cbbcd52b8f33" 814 - dependencies = [ 815 - "proc-macro2", 816 - "quote", 817 - "unsynn", 818 - ] 819 - 820 - [[package]] 821 - name = "facet-macros" 822 - version = "0.34.0" 823 - source = "registry+https://github.com/rust-lang/crates.io-index" 824 - checksum = "54f7c8e20f24f6c933290da20e76ce8b62a28ea7f16ea173a1aa21cb2ebf61f0" 825 - dependencies = [ 826 - "facet-macros-impl", 827 - ] 828 - 829 - [[package]] 830 - name = "facet-macros-impl" 831 - version = "0.34.0" 832 - source = "registry+https://github.com/rust-lang/crates.io-index" 833 - checksum = "fc36ba0859bb5fc539e9fb9ed4dab7a5af3b9dbf080e92adaeb5041c58971fcb" 834 - dependencies = [ 835 - "facet-macro-parse", 836 - "facet-macro-types", 837 - "proc-macro2", 838 - "quote", 839 - "strsim", 840 - "unsynn", 841 - ] 842 - 843 - [[package]] 844 - name = "facet-reflect" 845 - version = "0.34.0" 846 - source = "registry+https://github.com/rust-lang/crates.io-index" 847 - checksum = "d6ab47f7ccaed7b782b4cdbfa3482f16720c0e7e31c38bf5f7da8b8f8c988690" 848 - dependencies = [ 849 - "facet-core", 850 - "miette", 851 - ] 852 - 853 - [[package]] 854 - name = "facet-singularize" 855 - version = "0.34.0" 856 - source = "registry+https://github.com/rust-lang/crates.io-index" 857 - checksum = "cd14cadea48902b862d1f9256f1eac9102680d3fc105e5888008e219f2de6023" 858 - 859 - [[package]] 860 - name = "facet-solver" 861 - version = "0.34.0" 862 - source = "registry+https://github.com/rust-lang/crates.io-index" 863 - checksum = "e7a23bcde5d4f562dfed81ca31c15c241536b1b6ef0a6e46cc17d8963b9f9f33" 864 - dependencies = [ 865 - "facet-core", 866 - "facet-reflect", 867 - "strsim", 868 - ] 869 - 870 - [[package]] 871 761 name = "fixed" 872 762 version = "1.29.0" 873 763 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1044 934 checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 1045 935 1046 936 [[package]] 1047 - name = "impls" 1048 - version = "1.0.3" 1049 - source = "registry+https://github.com/rust-lang/crates.io-index" 1050 - checksum = "7a46645bbd70538861a90d0f26c31537cdf1e44aae99a794fb75a664b70951bc" 1051 - 1052 - [[package]] 1053 937 name = "indexmap" 1054 - version = "2.12.1" 938 + version = "2.13.0" 1055 939 source = "registry+https://github.com/rust-lang/crates.io-index" 1056 - checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" 940 + checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" 1057 941 dependencies = [ 1058 942 "equivalent", 1059 943 "hashbrown", ··· 1072 956 checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" 1073 957 dependencies = [ 1074 958 "either", 1075 - ] 1076 - 1077 - [[package]] 1078 - name = "kdl" 1079 - version = "6.5.0" 1080 - source = "registry+https://github.com/rust-lang/crates.io-index" 1081 - checksum = "81a29e7b50079ff44549f68c0becb1c73d7f6de2a4ea952da77966daf3d4761e" 1082 - dependencies = [ 1083 - "miette", 1084 - "num", 1085 - "winnow 0.6.24", 1086 959 ] 1087 960 1088 961 [[package]] ··· 1128 1001 1129 1002 [[package]] 1130 1003 name = "libc" 1131 - version = "0.2.179" 1004 + version = "0.2.180" 1132 1005 source = "registry+https://github.com/rust-lang/crates.io-index" 1133 - checksum = "c5a2d376baa530d1238d133232d15e239abad80d05838b4b59354e5268af431f" 1006 + checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" 1134 1007 1135 1008 [[package]] 1136 1009 name = "linux-raw-sys" ··· 1211 1084 ] 1212 1085 1213 1086 [[package]] 1214 - name = "mutants" 1215 - version = "0.0.3" 1216 - source = "registry+https://github.com/rust-lang/crates.io-index" 1217 - checksum = "bc0287524726960e07b119cebd01678f852f147742ae0d925e6a520dca956126" 1218 - 1219 - [[package]] 1220 1087 name = "nb" 1221 1088 version = "0.1.3" 1222 1089 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1238 1105 checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" 1239 1106 1240 1107 [[package]] 1241 - name = "num" 1242 - version = "0.4.3" 1243 - source = "registry+https://github.com/rust-lang/crates.io-index" 1244 - checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" 1245 - dependencies = [ 1246 - "num-bigint", 1247 - "num-complex", 1248 - "num-integer", 1249 - "num-iter", 1250 - "num-rational", 1251 - "num-traits", 1252 - ] 1253 - 1254 - [[package]] 1255 - name = "num-bigint" 1256 - version = "0.4.6" 1257 - source = "registry+https://github.com/rust-lang/crates.io-index" 1258 - checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" 1259 - dependencies = [ 1260 - "num-integer", 1261 - "num-traits", 1262 - ] 1263 - 1264 - [[package]] 1265 - name = "num-complex" 1266 - version = "0.4.6" 1267 - source = "registry+https://github.com/rust-lang/crates.io-index" 1268 - checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" 1269 - dependencies = [ 1270 - "num-traits", 1271 - ] 1272 - 1273 - [[package]] 1274 - name = "num-integer" 1275 - version = "0.1.46" 1276 - source = "registry+https://github.com/rust-lang/crates.io-index" 1277 - checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 1278 - dependencies = [ 1279 - "num-traits", 1280 - ] 1281 - 1282 - [[package]] 1283 - name = "num-iter" 1284 - version = "0.1.45" 1285 - source = "registry+https://github.com/rust-lang/crates.io-index" 1286 - checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" 1287 - dependencies = [ 1288 - "autocfg", 1289 - "num-integer", 1290 - "num-traits", 1291 - ] 1292 - 1293 - [[package]] 1294 - name = "num-rational" 1295 - version = "0.4.2" 1296 - source = "registry+https://github.com/rust-lang/crates.io-index" 1297 - checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" 1298 - dependencies = [ 1299 - "num-bigint", 1300 - "num-integer", 1301 - "num-traits", 1302 - ] 1303 - 1304 - [[package]] 1305 1108 name = "num-traits" 1306 1109 version = "0.2.19" 1307 1110 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1685 1488 checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" 1686 1489 1687 1490 [[package]] 1688 - name = "rustc-hash" 1689 - version = "2.1.1" 1690 - source = "registry+https://github.com/rust-lang/crates.io-index" 1691 - checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 1692 - 1693 - [[package]] 1694 1491 name = "rustc_version" 1695 1492 version = "0.2.3" 1696 1493 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1721 1518 [[package]] 1722 1519 name = "sachy-config" 1723 1520 version = "0.1.0" 1724 - source = "git+https://tangled.org/sachy.dev/sachy-embed-core#07539b3e060d72b69d4c5fef8db61a10dc20541d" 1521 + source = "git+https://tangled.org/sachy.dev/sachy-embed-core#ddd979631521a586c4e8b1df7bf8cef817921c98" 1725 1522 dependencies = [ 1726 - "facet", 1727 - "facet-kdl", 1728 1523 "miette", 1524 + "toml_edit", 1729 1525 ] 1730 1526 1731 1527 [[package]] 1732 1528 name = "sachy-fmt" 1733 1529 version = "0.1.0" 1734 - source = "git+https://tangled.org/sachy.dev/sachy-embed-core#07539b3e060d72b69d4c5fef8db61a10dc20541d" 1530 + source = "git+https://tangled.org/sachy.dev/sachy-embed-core#ddd979631521a586c4e8b1df7bf8cef817921c98" 1735 1531 dependencies = [ 1736 1532 "defmt 1.0.1", 1737 1533 ] ··· 1739 1535 [[package]] 1740 1536 name = "sachy-mdns" 1741 1537 version = "0.1.0" 1742 - source = "git+https://tangled.org/sachy.dev/sachy-embed-core#07539b3e060d72b69d4c5fef8db61a10dc20541d" 1538 + source = "git+https://tangled.org/sachy.dev/sachy-embed-core#ddd979631521a586c4e8b1df7bf8cef817921c98" 1743 1539 dependencies = [ 1744 1540 "defmt 1.0.1", 1745 1541 "embassy-time", 1746 1542 "sachy-fmt", 1747 - "winnow 0.7.14", 1543 + "winnow", 1748 1544 ] 1749 1545 1750 1546 [[package]] 1751 1547 name = "sachy-sntp" 1752 1548 version = "0.1.0" 1753 - source = "git+https://tangled.org/sachy.dev/sachy-embed-core#07539b3e060d72b69d4c5fef8db61a10dc20541d" 1549 + source = "git+https://tangled.org/sachy.dev/sachy-embed-core#ddd979631521a586c4e8b1df7bf8cef817921c98" 1754 1550 dependencies = [ 1755 1551 "chrono", 1756 1552 "defmt 1.0.1", ··· 1886 1682 checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" 1887 1683 1888 1684 [[package]] 1889 - name = "static_assertions" 1890 - version = "1.1.0" 1891 - source = "registry+https://github.com/rust-lang/crates.io-index" 1892 - checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 1893 - 1894 - [[package]] 1895 1685 name = "static_cell" 1896 1686 version = "2.1.1" 1897 1687 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1903 1693 [[package]] 1904 1694 name = "striker-proto" 1905 1695 version = "0.1.0" 1906 - source = "git+https://tangled.org/sachy.dev/striker#bd091d3021faf30a207617dd329c3782f98b7176" 1696 + source = "git+https://tangled.org/sachy.dev/striker#674322b5d31c9f4d2c2e129c4c4f17d72cee2b2d" 1907 1697 dependencies = [ 1908 1698 "postcard", 1909 1699 "serde", ··· 2042 1832 ] 2043 1833 2044 1834 [[package]] 1835 + name = "toml_datetime" 1836 + version = "0.7.5+spec-1.1.0" 1837 + source = "registry+https://github.com/rust-lang/crates.io-index" 1838 + checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" 1839 + dependencies = [ 1840 + "serde_core", 1841 + ] 1842 + 1843 + [[package]] 1844 + name = "toml_edit" 1845 + version = "0.24.0+spec-1.1.0" 1846 + source = "registry+https://github.com/rust-lang/crates.io-index" 1847 + checksum = "8c740b185920170a6d9191122cafef7010bd6270a3824594bff6784c04d7f09e" 1848 + dependencies = [ 1849 + "indexmap", 1850 + "toml_datetime", 1851 + "toml_parser", 1852 + "toml_writer", 1853 + "winnow", 1854 + ] 1855 + 1856 + [[package]] 1857 + name = "toml_parser" 1858 + version = "1.0.6+spec-1.1.0" 1859 + source = "registry+https://github.com/rust-lang/crates.io-index" 1860 + checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" 1861 + dependencies = [ 1862 + "winnow", 1863 + ] 1864 + 1865 + [[package]] 1866 + name = "toml_writer" 1867 + version = "1.0.6+spec-1.1.0" 1868 + source = "registry+https://github.com/rust-lang/crates.io-index" 1869 + checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" 1870 + 1871 + [[package]] 2045 1872 name = "typenum" 2046 1873 version = "1.19.0" 2047 1874 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2076 1903 version = "0.2.6" 2077 1904 source = "registry+https://github.com/rust-lang/crates.io-index" 2078 1905 checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 2079 - 2080 - [[package]] 2081 - name = "unsynn" 2082 - version = "0.3.0" 2083 - source = "registry+https://github.com/rust-lang/crates.io-index" 2084 - checksum = "501a7adf1a4bd9951501e5c66621e972ef8874d787628b7f90e64f936ef7ec0a" 2085 - dependencies = [ 2086 - "mutants", 2087 - "proc-macro2", 2088 - "rustc-hash", 2089 - ] 2090 1906 2091 1907 [[package]] 2092 1908 name = "vcell" ··· 2225 2041 2226 2042 [[package]] 2227 2043 name = "winnow" 2228 - version = "0.6.24" 2044 + version = "0.7.14" 2229 2045 source = "registry+https://github.com/rust-lang/crates.io-index" 2230 - checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" 2046 + checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" 2231 2047 dependencies = [ 2232 2048 "memchr", 2233 2049 ] 2234 2050 2235 2051 [[package]] 2236 - name = "winnow" 2237 - version = "0.7.14" 2238 - source = "registry+https://github.com/rust-lang/crates.io-index" 2239 - checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" 2240 - 2241 - [[package]] 2242 2052 name = "zerocopy" 2243 - version = "0.8.32" 2053 + version = "0.8.33" 2244 2054 source = "registry+https://github.com/rust-lang/crates.io-index" 2245 - checksum = "1fabae64378cb18147bb18bca364e63bdbe72a0ffe4adf0addfec8aa166b2c56" 2055 + checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd" 2246 2056 dependencies = [ 2247 2057 "zerocopy-derive", 2248 2058 ] 2249 2059 2250 2060 [[package]] 2251 2061 name = "zerocopy-derive" 2252 - version = "0.8.32" 2062 + version = "0.8.33" 2253 2063 source = "registry+https://github.com/rust-lang/crates.io-index" 2254 - checksum = "c9c2d862265a8bb4471d87e033e730f536e2a285cc7cb05dbce09a2a97075f90" 2064 + checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1" 2255 2065 dependencies = [ 2256 2066 "proc-macro2", 2257 2067 "quote",
+1 -1
build.rs
··· 35 35 println!("cargo:rustc-link-arg-bins=-Tlink-rp.x"); 36 36 println!("cargo:rustc-link-arg-bins=-Tdefmt.x"); 37 37 38 - let config = include_str!("config.kdl"); 38 + let config = include_str!("pico-config.toml"); 39 39 40 40 let out_file = out.join("constants.rs"); 41 41
-12
config.example.kdl
··· 1 - statics { 2 - SSID "CHANGEME" 3 - PASSWORD "astrongpassword123" 4 - HOST_NAME "strike" 5 - } 6 - constants { 7 - HEAP_SIZE "usize" "65536" 8 - BLOCK_SIZE "usize" "512" 9 - HOST_PORT "u16" "6125" 10 - BLIP_THRESHOLD "u16" "12" 11 - BLIP_SIZE "usize" "2" 12 - }
+11
pico-config.example.toml
··· 1 + [statics] 2 + SSID = "CHANGEME" 3 + PASSWORD = "astrongpassword123" 4 + HOST_NAME = "strike" 5 + 6 + [constants] 7 + HEAP_SIZE = { type = "usize", value = 65536 } 8 + BLOCK_SIZE = { type = "usize", value = 512 } 9 + HOST_PORT = { type = "u16", value = 6125 } 10 + BLIP_THRESHOLD = { type = "u16", value = 12 } 11 + BLIP_SIZE = { type = "usize", value = 2 }