Use hardware channel activity detection for checking interference

This commit is contained in:
Wessel Nieboer
2026-02-18 01:16:52 +01:00
committed by Wessel Nieboer
parent fb726e48c2
commit 952d12c8b9
6 changed files with 16 additions and 8 deletions

View File

@@ -168,10 +168,17 @@ void RadioLibWrapper::onSendFinished() {
state = STATE_IDLE;
}
int16_t RadioLibWrapper::performChannelScan() {
return _radio->scanChannel();
}
bool RadioLibWrapper::isChannelActive() {
return _threshold == 0
? false // interference check is disabled
: getCurrentRSSI() > _noise_floor + _threshold;
if (_threshold == 0) return false; // interference check is disabled
int16_t result = performChannelScan();
// scanChannel() leaves radio in standby — restart RX regardless of result
startRecv();
return (result == RADIOLIB_LORA_DETECTED);
}
float RadioLibWrapper::getLastRSSI() const {