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
+79
@@ -0,0 +1,79 @@
|
||||
#![allow(clippy::let_underscore_untyped)]
|
||||
|
||||
use paste::paste;
|
||||
|
||||
#[test]
|
||||
fn test_paste_doc() {
|
||||
macro_rules! m {
|
||||
($ret:ident) => {
|
||||
paste! {
|
||||
#[doc = "Create a new [`" $ret "`] object."]
|
||||
fn new() -> $ret { todo!() }
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
struct Paste;
|
||||
m!(Paste);
|
||||
|
||||
let _ = new;
|
||||
}
|
||||
|
||||
macro_rules! get_doc {
|
||||
(#[doc = $literal:tt]) => {
|
||||
$literal
|
||||
};
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_escaping() {
|
||||
let doc = paste! {
|
||||
get_doc!(#[doc = "s\"" r#"r#""#])
|
||||
};
|
||||
|
||||
let expected = "s\"r#\"";
|
||||
assert_eq!(doc, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_literals() {
|
||||
let doc = paste! {
|
||||
get_doc!(#[doc = "int=" 0x1 " bool=" true " float=" 0.01])
|
||||
};
|
||||
|
||||
let expected = "int=0x1 bool=true float=0.01";
|
||||
assert_eq!(doc, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_case() {
|
||||
let doc = paste! {
|
||||
get_doc!(#[doc = "HTTP " get:upper "!"])
|
||||
};
|
||||
|
||||
let expected = "HTTP GET!";
|
||||
assert_eq!(doc, expected);
|
||||
}
|
||||
|
||||
// https://github.com/dtolnay/paste/issues/63
|
||||
#[test]
|
||||
fn test_stringify() {
|
||||
macro_rules! create {
|
||||
($doc:expr) => {
|
||||
paste! {
|
||||
#[doc = $doc]
|
||||
pub struct Struct;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! forward {
|
||||
($name:ident) => {
|
||||
create!(stringify!($name));
|
||||
};
|
||||
}
|
||||
|
||||
forward!(documentation);
|
||||
|
||||
let _ = Struct;
|
||||
}
|
||||
Reference in new issue
Block a user