Skip to content

Commit 87b3fae

Browse files
author
Cruz Monrreal
authored
Merge pull request #7399 from hasnainvirk/bug_fix_recv_window
Bug fix for receive windows
2 parents 3faedca + bf78e26 commit 87b3fae

File tree

2 files changed

+8
-24
lines changed

2 files changed

+8
-24
lines changed

features/lorawan/lorastack/mac/LoRaMac.cpp

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -868,12 +868,8 @@ void LoRaMac::open_rx1_window(void)
868868

869869
_mcps_indication.rx_datarate = _params.rx_window1_config.datarate;
870870

871-
if (_lora_phy.rx_config(&_params.rx_window1_config)) {
872-
_lora_phy.handle_receive();
873-
} else {
874-
tr_error("Receive failed. Radio is not IDLE");
875-
return;
876-
}
871+
_lora_phy.rx_config(&_params.rx_window1_config);
872+
_lora_phy.handle_receive();
877873

878874
tr_debug("Opening RX1 Window");
879875
}
@@ -888,24 +884,21 @@ void LoRaMac::open_rx2_window()
888884
_params.rx_window2_config.frequency = _params.sys_params.rx2_channel.frequency;
889885
_params.rx_window2_config.dl_dwell_time = _params.sys_params.downlink_dwell_time;
890886
_params.rx_window2_config.is_repeater_supported = _params.is_repeater_supported;
891-
_params.rx_window2_config.rx_slot = _params.rx_window2_config.is_rx_continuous ?
892-
RX_SLOT_WIN_CLASS_C : RX_SLOT_WIN_2;
893887

894888
if (get_device_class() == CLASS_C) {
895889
_params.rx_window2_config.is_rx_continuous = true;
896890
} else {
897891
_params.rx_window2_config.is_rx_continuous = false;
898892
}
899893

894+
_params.rx_window2_config.rx_slot = _params.rx_window2_config.is_rx_continuous ?
895+
RX_SLOT_WIN_CLASS_C : RX_SLOT_WIN_2;
896+
900897
_mcps_indication.rx_datarate = _params.rx_window2_config.datarate;
901898

902-
if (_lora_phy.rx_config(&_params.rx_window2_config)) {
903-
_lora_phy.handle_receive();
904-
_params.rx_slot = _params.rx_window2_config.rx_slot;
905-
} else {
906-
tr_error("Receive failed. Radio is not IDLE");
907-
return;
908-
}
899+
_lora_phy.rx_config(&_params.rx_window2_config);
900+
_lora_phy.handle_receive();
901+
_params.rx_slot = _params.rx_window2_config.rx_slot;
909902

910903
tr_debug("Opening RX2 Window, Frequency = %lu", _params.rx_window2_config.frequency);
911904
}

features/lorawan/lorastack/phy/LoRaPHY.cpp

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -813,15 +813,6 @@ bool LoRaPHY::rx_config(rx_config_params_t *rx_conf)
813813
uint8_t phy_dr = 0;
814814
uint32_t frequency = rx_conf->frequency;
815815

816-
_radio->lock();
817-
818-
if (_radio->get_status() != RF_IDLE) {
819-
_radio->unlock();
820-
return false;
821-
}
822-
823-
_radio->unlock();
824-
825816
if (rx_conf->rx_slot == RX_SLOT_WIN_1) {
826817
// Apply window 1 frequency
827818
frequency = phy_params.channels.channel_list[rx_conf->channel].frequency;

0 commit comments

Comments
 (0)