From 6f0c849cb3822d6a9741687c933e32db2bb035e0 Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Mon, 13 Jan 2025 21:12:39 +0100 Subject: [PATCH] Fixed missing check in interference avoidance --- RNode_Firmware.ino | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/RNode_Firmware.ino b/RNode_Firmware.ino index 185b2ca..245e55a 100644 --- a/RNode_Firmware.ino +++ b/RNode_Firmware.ino @@ -242,11 +242,13 @@ void setup() { avoid_interference = false; #else #if HAS_EEPROM - if (EEPROM.read(eeprom_addr(ADDR_CONF_DIA)) == 0x01) { avoid_interference = false; } - else { avoid_interference = true; } + uint8_t ia_conf = EEPROM.read(eeprom_addr(ADDR_CONF_DIA)); + if (ia_conf == 0x00) { avoid_interference = true; } + else { avoid_interference = false; } #elif MCU_VARIANT == MCU_NRF52 - if (eeprom_read(eeprom_addr(ADDR_CONF_DIA)) == 0x01) { avoid_interference = false; } - else { avoid_interference = true; } + uint8_t ia_conf == eeprom_read(eeprom_addr(ADDR_CONF_DIA)); + if (ia_conf == 0x00) { avoid_interference = true; } + else { avoid_interference = false; } #endif #endif #endif @@ -1263,7 +1265,7 @@ void update_modem_status() { portEXIT_CRITICAL(); #endif - interference_detected = current_rssi > (noise_floor+CSMA_INFR_THRESHOLD_DB); + interference_detected = !carrier_detected && (current_rssi > (noise_floor+CSMA_INFR_THRESHOLD_DB)); if (interference_detected) { if (led_id_filter < LED_ID_TRIG) { led_id_filter += 1; } } else { if (led_id_filter > 0) {led_id_filter -= 1; } }