feat: add display UI with splash screen, dashboard, and RSSI sparkline
Implement full SSD1306 OLED display support: - Splash screen on boot (1.5s) with project name, version, board - Dashboard showing radio state, config, counters, RSSI/SNR - RSSI history sparkline (64-sample ring buffer, 2px-wide bars) - DisplayOn/DisplayOff host commands routed via dedicated channel - Pure render functions against generic DrawTarget (no hardware coupling) - Display on/off control bypasses radio task entirely Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
17624 files changed
+4564928
-38
No files matched your search
Vendored
+1
@@ -0,0 +1 @@
|
||||
{"files":{".cargo_vcs_info.json":"827cd7b7400c8765a23daa827fc02fe2175b888a488277e14f3388ada4abdffb","CHANGELOG.md":"066004313fa58273fc7de22e6736b09e00ffcf39983010fb3ce558bb39208a14","Cargo.toml":"a44789688c49082d4c3c4fc1b4eccf05072f9829c6c3e63f4c8e936f978a0c6c","Cargo.toml.orig":"04a9aea5e22fcbd583578164bf7117e6dae207422de9c76cf6569104194aaa52","MIGRATING-0.20.md":"174476f8e98a40755e926584b80b95f633b08527a191bdc29e4283c8066a423a","MIGRATING-0.21.md":"b0a2279dd487dde2837eb3c9c22df320d2625fded2ce57e396de470f4e67f367","README.md":"ae133fafa6d0df4e473ac583224054d87e4021ad72c6f793730a3a17a224beda","build.rs":"c3d252ab4d3b5defdc764b6d02df7f1a2b86f58e7c8b669355ef1caf419ca7f3","ld/README.md":"c259aacbd812a02ad7d5dfdbdbcdbee0d89eb05d55d86f7e93f3d351a752d481","ld/esp32/esp32.x":"6816b526403f873ca4bd1a358ec1c0ae5ab29904f12a6c64f1de50cbfe2a6315","ld/esp32/linkall.x":"9e4cca5156ea076ddc4505f714a39c087fa8b41298e1f15d132434ce453eb725","ld/esp32/memory.x":"4a22bf5cbafadbb544b10079040174f6d590e223e361acc85ad17897eb7ca49a","ld/esp32/rom-functions.x":"4566c5daa10d02d7a17447a8e280e8756fd40ff37ab3ce682a3b2b44e32178d5","ld/esp32/rom/additional.ld":"1eff39b05055c300063d5b881532d616d4ca564ff985723d5fab83c92de7b568","ld/esp32/rom/esp32.rom.api.ld":"e0438d826affdb8a0b62d0e8d448fa36c598647eff068b5f668e0ba9a2a055d4","ld/esp32/rom/esp32.rom.eco3.ld":"f4cd1c4e71f49ca72517b9375c4bcddcc4aa08e88ac7e308bca38ec61081c5ec","ld/esp32/rom/esp32.rom.ld":"22c5c6ea44d93d7c8f3789d69d860465e714f1b4c06028aaa18518a7f04a40b0","ld/esp32/rom/esp32.rom.libgcc.ld":"fde777f43fddcc8594b56745b79af404c2fb10fc9256c10a093fb4d51a361eb2","ld/esp32/rom/esp32.rom.redefined.ld":"f17d1133d8573aa08e0b460b941522ae06431456c8bd9a0520e6de454e6f4c52","ld/esp32/rom/esp32.rom.spiflash_legacy.ld":"99c9ad65aaf721acdc2a3e318712f3374a36678be7f41548fcde83bc8e061e25","ld/esp32/rom/esp32.rom.syscalls.ld":"42aa0e2c376e956cbb6f3b327c77ebb1019f77cd74850fafa69dddc54fdd7d12","ld/esp32c2/esp32c2.x":"73d59d66b7e8e4a913bb1e67d53f676fc0359d768a7619c793ee1a7e43a8b0df","ld/esp32c2/linkall.x":"8c318e690ff655f691b4807a981a3125723a36eeb6ee819374011764606141a1","ld/esp32c2/memory.x":"1037555b0a7e9d6498b7a5ed4dff2e45aab997b8ebb9caeb37d62480280fd80a","ld/esp32c2/rom-functions.x":"2d3801505a5abaa073c819e4136c36c887de247aa3255bb0cded37d5761445a3","ld/esp32c2/rom/additional.ld":"006e5e94e42620eee4c5240e9fdf6b98db3c0ae798537dd670921bcff7d8bc78","ld/esp32c2/rom/esp32c2.rom.api.ld":"b2e0ad0eeaacbc313b44c691be796232a83f8bd38ac39a96204ff60d1232a4bc","ld/esp32c2/rom/esp32c2.rom.heap.ld":"7c43ff3086d0faf1a5654fd9bdeae0ad2466b5042d05b41cfadba4a761908205","ld/esp32c2/rom/esp32c2.rom.ld":"68483549b3b795a5dc30a2f100dc1c4a7026c259ce9c538002a66ab7b6d9317a","ld/esp32c2/rom/esp32c2.rom.libgcc.ld":"0fff5b53c3e3e67f2f88a4ad8631f64abe7ee12c2a7deecadcd55d0aa7631940","ld/esp32c2/rom/esp32c2.rom.rvfp.ld":"ad172c8f7b0d37d9ce31e2255a42bca2318557e3480a0a6d5a124a97c7b4c103","ld/esp32c2/rom/esp32c2.rom.version.ld":"19be0e78d3b053b74a3db56693afff3b2e6f68675d29a27f8c73d90d175cd40b","ld/esp32c3/esp32c3.x":"073892f3d6149b9a9d526bf0cd5ee4c3135084e60d8f6f50498ade879a143f7f","ld/esp32c3/linkall.x":"5e56c1ef6c25ee902077bc945d743ba65483bc48a0df67732f6a0f0662d9500b","ld/esp32c3/memory.x":"a37d853f768991619325d36c2c495412233ebb1da4d64aeb5c1949cb434fa923","ld/esp32c3/rom-functions.x":"ab0cf51cb267c0c8aff00499fca0d926034e6f7d232d336dd4baef32980ab818","ld/esp32c3/rom/additional.ld":"445fc51c7d70eec2e3586f7ddb5ce03d19d5a2d8c22352e231f1e5f8283d665f","ld/esp32c3/rom/esp32c3.rom.api.ld":"6318574f75f42e1ac1246b903a966f8df8d55e47834da38408689b577bbbc561","ld/esp32c3/rom/esp32c3.rom.eco3.ld":"e490f1626b4e5693ec1eab66030112c0e9978481be59eb21e0a13833280ad568","ld/esp32c3/rom/esp32c3.rom.eco7.ld":"a14344f0afe5b57a416a406e967af42e5a02fb311051431c6913d9c796b49882","ld/esp32c3/rom/esp32c3.rom.ld":"23663e901b768e62a86266913e30d8653ddfd9a35c7e0785d40e10ceb4146a64","ld/esp32c3/rom/esp32c3.rom.libgcc.ld":"5f39f099ad408b7500408684be32f12e0a6b88a7cf2a6457597af81ab485c775","ld/esp32c3/rom/esp32c3.rom.version.ld":"da6f68007ada4ad205ba9e740365e7baf8e1df7f5bca1009c5aa4363a8f26552","ld/esp32c6/esp32c6.x":"0eb01d44d189f69ad531074350e0ad0096d696e67405930068315da07138554c","ld/esp32c6/linkall.x":"ca8c906997de98f1f8d5d22b89dd7cab987b270d322b785b2bd60d9691c201db","ld/esp32c6/memory.x":"1987e4d5c5ebbaa7dc79973d74a36dfbea16dec1062f8aa8c84d7002fc6998ff","ld/esp32c6/rom-functions.x":"268b238bb0acc9493bc69577feb8ede2e1420015228ec4fbb43257358b2f856b","ld/esp32c6/rom/additional.ld":"882459861f80b431a2703cc1712d6bf266bfd95a219f542a2082121fafbf9289","ld/esp32c6/rom/esp32c6.rom.api.ld":"6c8bfc83dda3e441dc227bd81cd6fcf07d42371af4934b2061fd9994b825872b","ld/esp32c6/rom/esp32c6.rom.coexist.ld":"946755aa6c84eba9273ec4c62232270ad4daa82ed0aa456f52001d55fdcae6a5","ld/esp32c6/rom/esp32c6.rom.heap.ld":"e0dd085315a2a09e3138b4d989078fac5ee2ee1374731de99626f36f278edb58","ld/esp32c6/rom/esp32c6.rom.ld":"b90dfa6a2f3da855bf49f3c59c92c2876ae739a1a26bca07d8cd5f6aaf52a96c","ld/esp32c6/rom/esp32c6.Line truncated
|
||||
Reference in new issue
Block a user