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
+1
@@ -0,0 +1 @@
|
||||
{"files":{".cargo/config.toml":"906b46f92d786174dfce31f1d338770568d3617c5b93e8331fc9d3377cd6afe6",".cargo_vcs_info.json":"c87d46603cc3b1b815eea03f189804adc90607ae72e5c5c50d33ac79d2bc04ad","CHANGELOG.md":"38cb74681fbfb3f0f0d6a0fb3dfb41ad2eded8302776f8edbf2a77a6ae5b5ff6","Cargo.lock":"08d150b9fbdf3e8a902a04a6e8b57563c139758285fcc1da17d58931c9142cd7","Cargo.toml":"2bade3faff536bea755d13fbcabfb3ea35d6c6dce957df79af1786399520575e","Cargo.toml.orig":"fbd8d2d40237341c7407e3692cec4310191a985479eacbaba05561adfa67b650","README.md":"19fbdc898f675a2fcec4d061513105364af1cce851ee32704204a4c1853a79ec","build.rs":"99ca7a5ed5ad2697a406a5cf0fb3e8547a04a2ca5e26b4db43d49ab592f92f4a","ci/script.sh":"69a9358ed9c6b17447cb51ca34506c4d8b3a069b415cfa1264636cc332983d09","examples/alignment.rs":"3c653dbf7be49e7e0b9bd9f3b5d9fb56f62267c178ee338e0d5f04eff924f357","examples/cfg-static.rs":"a82b62a4af2792bc15add71de6845836d2bcf16f08fb55768b2ad640bc6001f4","examples/data_overflow.rs":"b339968260f9ea3f8454cc8bb2ce532be50bcf9b81f13b607a89bbfa7fb0e1d1","examples/device.rs":"b1e6e10b7fbdf0784bc9dead47596572c42d518f767f4bda5c7457417ac75eff","examples/divergent-default-handler.rs":"ddcceb8a6bcf939e66320e1c876932b5f9b0c58a5f70797ddf63a86a17478611","examples/divergent-exception.rs":"6c286edd17afa258e202fe72d3c682410de6310cb9327134816d4684907d6006","examples/entry-static.rs":"e5579c8e8a7d414cd51af983eadd87e39b334e4d6312f48d557c00e3ef6b2b48","examples/hard-fault-trampoline.rs":"f214137ae3d05b177f78dc270bb6fdd33618eeeffd4ad33fde12878ab22c5694","examples/main.rs":"82b9d5d1649e8da328cca8f6dab6144be3443f8a1e4cc76a43f4bea364173451","examples/minimal.rs":"f66ace7010aa8a5b8ca47a97b254939047314b46cedb19689e4625d71a9cbad3","examples/override-exception.rs":"8aafc496badda846f42b9a75c47426175b3e70841d08e7b41371c1413827943a","examples/pre_init.rs":"2a13b45353761ec4f632ee89e865f46d353c02fb73b6d72768e9ef498dba9946","examples/qemu.rs":"bbc31554710816cb238cee8ac670a869c414fe200aa8c048874d2692e9b222bd","examples/state.rs":"6927d661beced2acaa6059cf394298e4d1ccd3d17175945123a41e67cdfc792c","examples/unsafe-default-handler.rs":"aabce6a3380be15d3d059b9dbf809b93f67ecd750c38d83190fdc9f8a1f286aa","examples/unsafe-entry.rs":"a0db7e3961800989cb2658efdaff86cd7f9459414b899f4b69117c752692484a","examples/unsafe-exception.rs":"ea534617e988672dfaf385c403818f55f295de2531af1d3ecd0d5984d7b9187f","examples/unsafe-hard-fault.rs":"4139e666b022b172a6772f24c70b699f7cda0228185428d5be2c7c92650e5614","examples/unsafety.rs":"e39698bc3e75cae3e7a96d5e008b2ca3fb47970c024863698a7b55b8bf3fc1c4","examples/warnings.rs":"4fd9ee498f738161f618d2feb9b4045398647361feffc84a8027437e0926e333","link.x.in":"c6890afc1cefc9f78574104c7c0cd06ec5c485df3e441021b4c2b3593ccaf5c7","src/lib.rs":"e530ce139e7d53337f468aab4102df11f95caf808914f1bda8937ae1ace03c86","tests/README.md":"c955f3a0b55d39230f90b8dbfd59d39e8463c6391e9f0a33c98dfda9d16e6c21","tests/compile-fail/default-handler-bad-signature-1.rs":"fda1cfe10f8546bafe63d07cbe3307fa73e56ef001dece4b7724a11a586c05a1","tests/compile-fail/default-handler-bad-signature-2.rs":"1f59db99c9d1e46e3823a34224d19b0d41531e6813b52a2ede822b69c5c63ac1","tests/compile-fail/default-handler-hidden.rs":"a75665fe6a89a19f33a2c2d0fc3495f433a17544d0a8d3c07f0a53a9847d6991","tests/compile-fail/default-handler-twice.rs":"df94e46696f6ff0486c178ce0c1f615a2432630feb5da01dca0f694536a7aed1","tests/compile-fail/duplicate-static.rs":"0ce0e47bd2ff975921ef0246812f63e3b5ef86c9e7459213acddae2be4fa907d","tests/compile-fail/entry-args.rs":"b375df87c096746c6ffec50d923f8c8c135483a4667895da67d45aa1c1699a78","tests/compile-fail/entry-bad-signature-1.rs":"0febd74608e8659038a7459b5680190bc4a82be7879c42e052c4d1b45cb93288","tests/compile-fail/entry-bad-signature-2.rs":"80cc72e8221bdbad15d2866e675d7dd18ef6bf2a1159823e811f9f243bf2ecb5","tests/compile-fail/entry-bad-signature-3.rs":"36b831e838a0ad53127426ee8abb742dbb94586d08ef1b96568e00592bcfed01","tests/compile-fail/entry-hidden.rs":"c8d30a641aa8b935716b64c32bd7eceee05bd1d19b21e8bb4751fc526c50bca4","tests/compile-fail/entry-soundness.rs":"d44ed5a86a882c84b105dab182d6057e04faceb80be98a1d21ee3f66221867eb","tests/compile-fail/entry-twice.rs":"d838b3ca815fee86e26b5c349ff436639cce79875ca0cc7cf7e79d44532bfb6c","tests/compile-fail/exception-args.rs":"c02ae0ba76fcae0fdf0c4da0d74e565377b763e4a7bafd552e905895283681da","tests/compile-fail/exception-bad-signature-1.rs":"e5b92cc8b663e159f113449badadba1a41e13282eb015ea029a07e2733e8b867","tests/compile-fail/exception-bad-signature-2.rs":"ee0b8e063aa683f5c962f5d5fa40dbc82194d7a6b8cecd46e3ac5025f7c548e3","tests/compile-fail/exception-hidden.rs":"9e3bb7dcdb090e5afefba4e83abf333b1f9ea3d01ed138f4181e6f6796a46ac1","tests/compile-fail/exception-nmi-unsafe.rs":"1262c0b3b376b10f4fdc7f50d91ad244714761f5c183128aa73c940dc33e4327","tests/compile-fail/exception-soundness.rs":"ffb5e5cd19c11b52325e77a5706ba9ccf47a892f3a46e82d70b603a527871ef9","tests/compile-fail/exception-twice.rs":"bba3c0c92d22a99a7672aaf1037001b35a77eb0527191753bdfd585b6e279af0","teLine truncated
|
||||
Reference in new issue
Block a user