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
+43
@@ -0,0 +1,43 @@
|
||||
# lora-modulation
|
||||
|
||||
[![Latest Version]][crates.io]
|
||||
[![Docs]][doc.rs]
|
||||
|
||||
A minimal crate for providing LoRa modulation characteristics of:
|
||||
* Bandwidth
|
||||
* Spreading factor
|
||||
* Coding rate
|
||||
|
||||
Provides utility for calculating time on air.
|
||||
|
||||
## Usage
|
||||
|
||||
```rust
|
||||
use lora_modulation::{BaseBandModulationParams, SpreadingFactor, Bandwidth, CodingRate};
|
||||
|
||||
let length = 12;
|
||||
let params = BaseBandModulationParams::new(SpreadingFactor::_9, Bandwidth::_125KHz, CodingRate::_4_5);
|
||||
let time_on_air = params.time_on_air_us(
|
||||
Some(8), // preamble
|
||||
true, // explicit header
|
||||
length); // length of payload
|
||||
|
||||
// Time on air is 144.384 ms
|
||||
assert_eq!(time_on_air, 144384);
|
||||
```
|
||||
|
||||
```rust
|
||||
use lora_modulation::{BaseBandModulationParams, SpreadingFactor, Bandwidth, CodingRate};
|
||||
|
||||
let symbols = 14;
|
||||
let params = BaseBandModulationParams::new(SpreadingFactor::_12, Bandwidth::_125KHz, CodingRate::_4_5);
|
||||
let timeout = params.symbols_to_ms(symbols);
|
||||
|
||||
// Timeout is 458 ms
|
||||
assert_eq!(timeout, 458);
|
||||
```
|
||||
|
||||
[Latest Version]: https://img.shields.io/crates/v/lora-modulation.svg
|
||||
[crates.io]: https://crates.io/crates/lora-modulation
|
||||
[Docs]: https://docs.rs/lora-modulation/badge.svg
|
||||
[doc.rs]: https://docs.rs/lora-modulation
|
||||
Reference in new issue
Block a user