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_vcs_info.json":"f9b91694acb7af25d6458ff2c6f06caa87238b3184a3b9dd6c69040f1edff4d9","CHANGELOG.md":"68ae3c104dd3a90dd279f0d5515cdc432cfa6d48a3219a67d4e180baa8741a5e","Cargo.lock":"744c5b93421df5ff20c001d68f65a99d7bb46e061b2bedce79724a4d7165cf12","Cargo.toml":"85a022a791c824412157e37a22c85cc339bd5e6f0577aeb17af48ae30f6535ad","Cargo.toml.orig":"35a5beb15cbb96e408f817c7539d074fbee6972e2578a533320bba714abb5a23","LICENSE":"8ea93490d74a5a1b1af3ff71d786271b3f1e5f0bea79ac16e02ec533cef040d6","README.md":"2bc1f336ffd96c177f5f8b54211636502a680febb8ed7bd18d1425cb29b86d40","clippy.toml":"c5ef3489cce9d5ed7c766e6486a18a0a3dc0f4c677fcf05166e1d47104f6cd3f","compiletests.sh":"a5628eb53fa881733ede086c33a2d5751cb86fe41ca6fd8ee3c4892c6c800d68","examples/automatic_bounds.rs":"2950c8d33bb40f095decba1990d7d0bcd48dffc6e9b7cefce2fcb3818ecf1d18","examples/consume_fields.rs":"ce436936441f1f6734f47074e6625ebf64f15180b9c126a58e24aaa33613b59c","examples/expr_with.rs":"0a250af2118d85c44c0a6a079633b6913993f4aabf59b961a1411c6cef09ad5f","examples/fallible_read.rs":"a71e00798911c355cd63eddd3a08c24c5f752357c3246968167af958846b1e02","examples/heterogeneous_enum_and_word.rs":"1c3b9dc2fa90e343d8ea4afa66751ce5687492b600ba4df3eb1e70ba2cf70a72","examples/shorthand_or_long_field.rs":"ec2e2b155fd0803c80f98d0ba94e8419dd7307012ccfb916b8f752925a295d55","examples/supports_struct.rs":"08c5cc46400a0e5cf811c0d254a37b42de94b34cd04ac801069105bc792051f6","src/lib.rs":"c90f109acd8f6891f87784c2b0db7dc8cb5a4033239976a6374f796b84503095","src/macros_public.rs":"7d2ce0c5026227ef7854db11d7a885ad891255438b2e49bbdfda56fa2f92feec","tests/accrue_errors.rs":"4f0f5be65c5cd639b107a6a14e9fb51573b27cfa9210a2182fa5f450bc1d56db","tests/attrs_with.rs":"81a24bfdbcd0f0797790cd38ee8093dce6b8b9a37354936a7b0c48121f4c7a74","tests/compile-fail/attrs_with_bad_fn.rs":"70ab2eee7619caaf9a05e0dc0f68ef41d396244dc373bf5a63b5756e754267cc","tests/compile-fail/attrs_with_bad_fn.stderr":"470bec1069cd9b230460a3b63ac5b003bf538220a427663ea41f886cf5e31180","tests/compile-fail/attrs_without_forward_attrs.rs":"b11c9d344e8e340509f7bd57f06dec7e18350c625ab48c17b4bebe137a71c0a8","tests/compile-fail/attrs_without_forward_attrs.stderr":"008e8e998749d18ece4c1d0e8a3cfce964a62f24149e290426da9c6d572a4f12","tests/compile-fail/default_expr_wrong_type.rs":"e09889ac3a243bd6096a0ef7076822b146f1481b70aae703e170ea6527071448","tests/compile-fail/default_expr_wrong_type.stderr":"9c7971d8aaf92e683fa5fa698d172fd735bda553f6e70303a6105b81800b53de","tests/compile-fail/duplicate_word_across_variants.rs":"741d879dfe4d1ba630d6c773a32a20135bb9d7e7aa0bc35a604d9a73db967872","tests/compile-fail/duplicate_word_across_variants.stderr":"e25d86df4bd5b558c6588688171767e234ffd3a859b942b6573cf74c0eafd2b8","tests/compile-fail/duplicate_word_on_variant.rs":"eac1353adb1e453f97e7f7014e0a6e3126ceb1650ca049d10a7fbaeaf0997c9e","tests/compile-fail/duplicate_word_on_variant.stderr":"8ba3499b81db67ac00b69b43572fa870fdfaa2b6831d47c0b611a00f1f563885","tests/compile-fail/flatten_meta_conflicts.rs":"daf9a4d71cf9aa079979b492dd0a2f0d98d58ff65aa512a40496faa40246231d","tests/compile-fail/flatten_meta_conflicts.stderr":"6278b76248c56ff41256b452acdab6be81c202f5d60e222a86f955eb4cbf664c","tests/compile-fail/flatten_multiple_fields.rs":"359291f3ddbcab89fd8cbe8f09bd7d03ad7c4bf77142027e9df8e6bbd6e400e7","tests/compile-fail/flatten_multiple_fields.stderr":"f9395a26eef518946d09d270fcff9fe8c7e209cb6168fb6d113837d447e04f60","tests/compile-fail/from_word.rs":"7ea2e4bdc38ee1bbf8a76e9c0f7db246eab5635bc4b23f79b047302d211863ed","tests/compile-fail/from_word.stderr":"815d14d9dd2f6d1c4371f244848356e8cd3ada0effa1fa9a4844e4a42df6f339","tests/compile-fail/not_impl_from_meta.rs":"20ef167d88ea06967c26a05234d3b1787f0695d45b4ab1150bf9dc77625f9c74","tests/compile-fail/not_impl_from_meta.stderr":"d945e09111b290f2fa7227332da193fec99ad4ebdcb5f0a4364e3d0c9b0dffed","tests/compile-fail/skip_field_not_impl_default.rs":"5cb7e2e68d7dc42e6508eb0c170869179f127cf641b44f08f6403760f30c469b","tests/compile-fail/skip_field_not_impl_default.stderr":"9f66e34ce32cbab54776006fc03bb776ec4d4a6ed6310139ea66c7cf7ae9920e","tests/compile-fail/with_closure_capture.rs":"2d88094a83ef4bee3429a948d51e76bc5bd81865ddda58179a127a0ecb4be53c","tests/compile-fail/with_closure_capture.stderr":"985bb463acf5faae0707c5287dace60f734e10ef14740c7f0f3ea877222c3940","tests/compile-fail/word_on_wrong_variant_type.rs":"1f83eaca4da3187d411926d2fef907e7d7000479c326012f8f9fc0ee5be26411","tests/compile-fail/word_on_wrong_variant_type.stderr":"edd5f2ffecdc8dc2c5f3edd5061682ed278a1276f4a9781fd7aeae1c37aca41a","tests/compiletests.rs":"71644363704ae87461895bb107f427128148af8addcd7bb2c745cdf4287dac1a","tests/computed_bound.rs":"aed9c00f2b8373e9426337137207e5b9341d236adef682bd2c9427db9ce1d1ff","tests/custom_bound.rs":"9b823063b7fc6c6b3b23905405ce7f316e8a937d5c67c416b89642e537bf9110","tests/data_with.rs":"1c09c9456f2f145104aa4cd068d28f950ff4883a0b0d6fd791fc90ca34784e08","tests/defaults.rs":"078b79f5a1b405ce9ddc9dd847afb674c2Line truncated
|
||||
Reference in new issue
Block a user