This repository has been archived on 2026-08-31. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
donglora/vendor/lora-phy/src/sx126x/variant.rs
T
swaitsandClaude Opus 4.6 3102fc747a 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>
2026-03-29 20:42:54 -06:00

48 lines
1.1 KiB
Rust

use super::DeviceSel;
/// Implement this trait on your custom variant or use provided impls
pub trait Sx126xVariant {
/// whether to use high or low power PA
fn get_device_sel(&self) -> DeviceSel;
/// use dio2 as rf switch output
fn use_dio2_as_rfswitch(&self) -> bool {
true
}
}
/// Sx1261 uses only LowPowerPA
pub struct Sx1261;
impl Sx126xVariant for Sx1261 {
fn get_device_sel(&self) -> super::DeviceSel {
super::DeviceSel::LowPowerPA
}
}
/// Sx1262 uses only HighPowerPA
pub struct Sx1262;
impl Sx126xVariant for Sx1262 {
fn get_device_sel(&self) -> super::DeviceSel {
super::DeviceSel::HighPowerPA
}
}
/// Stm32wl variant.
pub struct Stm32wl {
/// select which output to use. (Switching is not supported)
pub use_high_power_pa: bool,
}
impl Sx126xVariant for Stm32wl {
fn get_device_sel(&self) -> super::DeviceSel {
if self.use_high_power_pa {
DeviceSel::HighPowerPA
} else {
DeviceSel::LowPowerPA
}
}
fn use_dio2_as_rfswitch(&self) -> bool {
false
}
}