Proper handling of RX1 frequency in rx_config

Previously, we weren't filling in RX1 frequecny in rx_window1_config
structure. However, everything worked as in LoRaPHY::rx_config() API
there was a check which filled in correct RX1 frequency.
Now we are filling in RX1 freq. properly while we are computing
parameters for RX1 window.
pull/8405/head
Hasnain Virk 2018-09-21 15:50:04 +03:00
parent 9e4487c850
commit 7818733728
2 changed files with 7 additions and 2 deletions

View File

@ -904,7 +904,7 @@ void LoRaMac::open_rx1_window(void)
_lora_phy->rx_config(&_params.rx_window1_config); _lora_phy->rx_config(&_params.rx_window1_config);
_lora_phy->handle_receive(); _lora_phy->handle_receive();
tr_debug("Opening RX1 Window"); tr_debug("RX1 slot open, Freq = %lu", _params.rx_window1_config.frequency);
} }
void LoRaMac::open_rx2_window() void LoRaMac::open_rx2_window()
@ -933,7 +933,7 @@ void LoRaMac::open_rx2_window()
_lora_phy->handle_receive(); _lora_phy->handle_receive();
_params.rx_slot = _params.rx_window2_config.rx_slot; _params.rx_slot = _params.rx_window2_config.rx_slot;
tr_debug("Opening RX2 Window, Frequency = %lu", _params.rx_window2_config.frequency); tr_debug("RX2 slot open, Freq = %lu", _params.rx_window2_config.frequency);
} }
void LoRaMac::on_ack_timeout_timer_event(void) void LoRaMac::on_ack_timeout_timer_event(void)

View File

@ -806,6 +806,11 @@ void LoRaPHY::compute_rx_win_params(int8_t datarate, uint8_t min_rx_symbols,
((uint32_t *)phy_params.bandwidths.table)[rx_conf_params->datarate]); ((uint32_t *)phy_params.bandwidths.table)[rx_conf_params->datarate]);
} }
if (rx_conf_params->rx_slot == RX_SLOT_WIN_1) {
rx_conf_params->frequency = phy_params.channels.channel_list[rx_conf_params->channel].frequency;
}
get_rx_window_params(t_symbol, min_rx_symbols, rx_error, RADIO_WAKEUP_TIME, get_rx_window_params(t_symbol, min_rx_symbols, rx_error, RADIO_WAKEUP_TIME,
&rx_conf_params->window_timeout, &rx_conf_params->window_offset); &rx_conf_params->window_timeout, &rx_conf_params->window_offset);
} }