From a347f418c8e7be2f18b2e80b2896ee20521194d4 Mon Sep 17 00:00:00 2001 From: "Morgan 'ARR\\!' Allen" Date: Thu, 2 Dec 2021 10:02:08 -0800 Subject: [PATCH] add FHSS IRQ handling --- main/esp32-lora.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/main/esp32-lora.c b/main/esp32-lora.c index 715cee5..9bc0d2b 100644 --- a/main/esp32-lora.c +++ b/main/esp32-lora.c @@ -417,6 +417,21 @@ static void IRAM_ATTR lora32_dio_task(void *arg) { // these *should* fire at the same time, defaults to false if(lora->cad_done != NULL) lora->cad_done(lora, cad_detected); } + + if((irqs & IRQ_FHSS_CHANGE) == IRQ_FHSS_CHANGE) { + ESP_LOGI(TAG, "switching channel %d: %d", lora->channel, lora->channels[lora->channel]); + + if(lora->channel == 0 && lora->channels[lora->channel] == 0) continue; + + if(lora->channels[lora->channel] == 0) { + ESP_LOGI(TAG, "reseting to channel 0"); + lora->channel = 0; + } + + lora32_set_frequency(lora, lora->frequency + (lora->channels[lora->channel] * bandwidths[lora->bandwidth])); + + lora->channel++; + } } }