fix(lora): correct preset SNR floors and signal colors - #7110
Conversation
Derive demodulation floors from firmware spreading factors. Use the active preset for traceroute and neighbor-info colors, restore four RSSI display bands, and add LongTurbo to the site planner sensitivity table. Cover all preset floors and annotated signal colors with regression tests. Document the preset-relative rating.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (13)
Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughThe change derives SNR limits from modem spreading factors, updates RSSI and SNR quality bands, applies preset-aware colors to traceroute and neighbor information, adds tests, and updates related documentation and map sensitivity handling. ChangesSignal quality and modem presets
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant TracerouteLogScreen
participant LocalModemPreset
participant AnnotatedStrings
participant determineSignalQuality
TracerouteLogScreen->>LocalModemPreset: Read current modem preset
TracerouteLogScreen->>AnnotatedStrings: Pass SNR, colors, and modem preset
AnnotatedStrings->>determineSignalQuality: Evaluate SNR against modem preset
determineSignalQuality-->>AnnotatedStrings: Return quality tier
AnnotatedStrings-->>TracerouteLogScreen: Return colored annotated text
Merge Risk: ⚪ Minimal · up to The PR recalibrates preset-relative signal quality, RSSI colors, annotations, and site-planner sensitivity. Supplied regression coverage and validation show no current merge-blocking risk. 🚥 Pre-merge checks | ✅ 6 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (6 passed)
Full details: Tests Prove The Path, Not The End StateExplanation The added test Resolution Change or remove the coverage-only test. Make the test invoke the production mapping for every preset and assert the independent expected floor, while also verifying that each preset has a real Full details: Regression Coverage For Changed BehaviorExplanation Three changed behaviors lack tests that would fail without the corresponding fixes. (1) Resolution Add a Compose/UI regression test for
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
LongTurbo links were rated against an SF9 SNR floor even though firmware uses SF11. NarrowFast and NarrowSlow also had incorrect floors, and traceroute colors ignored the selected preset.
🐛 Bug Fixes
Testing Performed
spotlessApply spotlessCheck detekt assembleDebug test allTests kmpSmokeCompileon Linux. Apple test execution is skipped on this host.-Dorg.gradle.isolated-projects=false --no-configuration-cache(CI also disables Isolated Projects for this task). No golden changes.Constitution check: all seven principles evaluated; shared logic stays in commonMain, no new dependencies or privacy-sensitive data, and user docs are updated.
Summary by CodeRabbit
New Features
Bug Fixes
Documentation