feat: redesign active display layout with mode box and title box

New layout:
- Mode box (left): RX/TX indicator with vertical separator
- Title box (right): 'DongLoRa v{ver}' + radio settings (freq/bw/sf/cr)
- Centered info rows: packet counters + RSSI/SNR with labels
- Sparkline bar graph fills remaining height
- Idle state returns to splash screen (active screen only for RX/TX)
- Layout positions derived from display dimensions (h/w agnostic)
- RSSI history buffer doubled to 128 slots (~2 min at 1s/slot)
- Smart compact_count() formatting for large RX/TX counters (k/M)
This commit is contained in:
swaits committed 2026-03-30 15:32:45 -06:00
1 parent 466acfc0b6
commit b11fcac121
3 files changed
+336 -180

No files matched your search

+26
View File
@@ -0,0 +1,26 @@
+---------------------+
|RXTX 910.525MHz 22dBM|
|62.5kHz SF7 CR4/5 |
|RX:4 TX:0 |
|0dBm SNR:14dB |
|---------------------|
| <BAR GRAPH HERE> |
+---------------------+
+---------------------+
|RX|DongLoRa v99.99.99| <= title (centered in title box)
|TX| 950.000/500/12/8 | <= radio settings (centered in title box)
|---------------------| <= thin separator line
|RX:99999999 TX:999999| <= rx/tx counts (centered, see note below)
|RSSI:-120dBm SNR:20dB| <= last receive info (cenetered)
|---------------------| <= thin separator line
|RX/TX BAR GRAPH HERE | <= bar graph, can be shorter than current
+---------------------+
* note the vertical bar to the right of the RX/TX indicators (which work the
same as before, alternating based on which mode we're in, and being inverted) -- that vertical bar puts them in their own little box now which I'm calling the "mode box" (get rid of "IDLE" mode, we never need to show that since we just go back to the idle/splash screen), and that gives way to a new box to the right I'm calling the title box
* note on RX/TX counts.. if these exceed what we have space for, I guess figure out something smart to do?
* note on display size -- all of this has to be done in a h/w agnostic way because different boards might have different display sizes!
* I believe I've used max values for all this stuff, check that and correct if needed
* Also, I want things to stay laid out nicely,