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>
43 lines
842 B
Rust
43 lines
842 B
Rust
#![allow(
|
|
clippy::semicolon_if_nothing_returned, // https://github.com/rust-lang/rust-clippy/issues/7324
|
|
clippy::used_underscore_items,
|
|
)]
|
|
|
|
#[rustversion::attr(all(), const)]
|
|
fn _basic() {}
|
|
const _BASIC: () = _basic();
|
|
|
|
#[rustversion::attr(all(), const)]
|
|
unsafe fn _unsafe() {}
|
|
const _UNSAFE: () = unsafe { _unsafe() };
|
|
|
|
macro_rules! item {
|
|
($i:item) => {
|
|
#[rustversion::attr(all(), const)]
|
|
$i
|
|
};
|
|
}
|
|
|
|
item! {fn _item() {}}
|
|
const _ITEM: () = _item();
|
|
|
|
macro_rules! ident {
|
|
($fn:ident) => {
|
|
#[rustversion::attr(all(), const)]
|
|
$fn _ident() {}
|
|
};
|
|
}
|
|
|
|
ident! {fn}
|
|
const _IDENT: () = _ident();
|
|
|
|
#[rustversion::attr(all(), const)]
|
|
/// doc
|
|
fn _doc_below() {}
|
|
const _DOC_BELOW: () = _doc_below();
|
|
|
|
/// doc
|
|
#[rustversion::attr(all(), const)]
|
|
fn _doc_above() {}
|
|
const _DOC_ABOVE: () = _doc_above();
|