Remove redundant event from timer callbacks

Since our timers are now already using events, we no longer need to
defer timer callback calls.
pull/6411/head
Kimmo Vaisanen 2018-03-01 10:01:41 +02:00 committed by Antti Kauppila
parent c6eee4fd98
commit fe225a8430
2 changed files with 20 additions and 52 deletions

View File

@ -178,41 +178,6 @@ void LoRaMac::handle_fhss_change_channel(uint8_t cur_channel)
//(void)ret; //(void)ret;
} }
void LoRaMac::handle_mac_state_check_timer_event(void)
{
const int ret = ev_queue->call(this, &LoRaMac::on_mac_state_check_timer_event);
MBED_ASSERT(ret != 0);
(void)ret;
}
void LoRaMac::handle_delayed_tx_timer_event(void)
{
const int ret = ev_queue->call(this, &LoRaMac::on_tx_delayed_timer_event);
MBED_ASSERT(ret != 0);
(void)ret;
}
void LoRaMac::handle_ack_timeout()
{
const int ret = ev_queue->call(this, &LoRaMac::on_ack_timeout_timer_event);
MBED_ASSERT(ret != 0);
(void)ret;
}
void LoRaMac::handle_rx1_timer_event(void)
{
const int ret = ev_queue->call(this, &LoRaMac::on_rx_window1_timer_event);
MBED_ASSERT(ret != 0);
(void)ret;
}
void LoRaMac::handle_rx2_timer_event(void)
{
const int ret = ev_queue->call(this, &LoRaMac::on_rx_window2_timer_event);
MBED_ASSERT(ret != 0);
(void)ret;
}
/*************************************************************************** /***************************************************************************
* Radio event callbacks - delegated to Radio driver * * Radio event callbacks - delegated to Radio driver *
**************************************************************************/ **************************************************************************/
@ -283,7 +248,9 @@ void LoRaMac::prepare_rx_done_abort(void)
_params.mac_state |= LORAMAC_RX_ABORT; _params.mac_state |= LORAMAC_RX_ABORT;
if (_params.is_node_ack_requested) { if (_params.is_node_ack_requested) {
handle_ack_timeout(); const int ret = ev_queue->call(this, &LoRaMac::on_ack_timeout_timer_event);
MBED_ASSERT(ret != 0);
(void)ret;
} }
_params.flags.bits.mcps_ind = 1; _params.flags.bits.mcps_ind = 1;
@ -836,7 +803,10 @@ void LoRaMac::on_mac_state_check_timer_event(void)
} else { } else {
_params.flags.bits.mac_done = 0; _params.flags.bits.mac_done = 0;
// Sends the same frame again // Sends the same frame again
handle_delayed_tx_timer_event(); const int ret = ev_queue->call(this, &LoRaMac::on_tx_delayed_timer_event);
MBED_ASSERT(ret != 0);
(void)ret;
} }
} }
} else { } else {
@ -860,7 +830,9 @@ void LoRaMac::on_mac_state_check_timer_event(void)
} else { } else {
_params.flags.bits.mac_done = 0; _params.flags.bits.mac_done = 0;
// Sends the same frame again // Sends the same frame again
handle_delayed_tx_timer_event(); const int ret = ev_queue->call(this, &LoRaMac::on_tx_delayed_timer_event);
MBED_ASSERT(ret != 0);
(void)ret;
} }
} }
} }
@ -1324,7 +1296,10 @@ void LoRaMac::reset_mac_parameters(void)
void LoRaMac::open_continuous_rx2_window (void) void LoRaMac::open_continuous_rx2_window (void)
{ {
handle_rx2_timer_event(); const int ret = ev_queue->call(this, &LoRaMac::on_rx_window2_timer_event);
MBED_ASSERT(ret != 0);
(void)ret;
_params.rx_slot = RX_SLOT_WIN_CLASS_C; _params.rx_slot = RX_SLOT_WIN_CLASS_C;
} }
@ -1662,15 +1637,15 @@ lorawan_status_t LoRaMac::initialize(loramac_primitives_t *primitives,
// Initialize timers // Initialize timers
_lora_time.init(_params.timers.mac_state_check_timer, _lora_time.init(_params.timers.mac_state_check_timer,
mbed::callback(this, &LoRaMac::handle_mac_state_check_timer_event)); mbed::callback(this, &LoRaMac::on_mac_state_check_timer_event));
_lora_time.init(_params.timers.tx_delayed_timer, _lora_time.init(_params.timers.tx_delayed_timer,
mbed::callback(this, &LoRaMac::handle_delayed_tx_timer_event)); mbed::callback(this, &LoRaMac::on_tx_delayed_timer_event));
_lora_time.init(_params.timers.rx_window1_timer, _lora_time.init(_params.timers.rx_window1_timer,
mbed::callback(this, &LoRaMac::handle_rx1_timer_event)); mbed::callback(this, &LoRaMac::on_rx_window1_timer_event));
_lora_time.init(_params.timers.rx_window2_timer, _lora_time.init(_params.timers.rx_window2_timer,
mbed::callback(this, &LoRaMac::handle_rx2_timer_event)); mbed::callback(this, &LoRaMac::on_rx_window2_timer_event));
_lora_time.init(_params.timers.ack_timeout_timer, _lora_time.init(_params.timers.ack_timeout_timer,
mbed::callback(this, &LoRaMac::handle_ack_timeout)); mbed::callback(this, &LoRaMac::on_ack_timeout_timer_event));
// Store the current initialization time // Store the current initialization time
_params.timers.mac_init_time = _lora_time.get_current_time(); _params.timers.mac_init_time = _lora_time.get_current_time();

View File

@ -545,18 +545,11 @@ private:
*/ */
void handle_cad_done(bool cad); void handle_cad_done(bool cad);
void handle_tx_done(void); void handle_tx_done(void);
void handle_rx_done(uint8_t *payload, uint16_t size, int16_t rssi, void handle_rx_done(uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr);
int8_t snr);
void handle_rx_error(void); void handle_rx_error(void);
void handle_rx_timeout(void); void handle_rx_timeout(void);
void handle_tx_timeout(void); void handle_tx_timeout(void);
void handle_fhss_change_channel(uint8_t cur_channel); void handle_fhss_change_channel(uint8_t cur_channel);
void handle_rx1_timer_event(void);
void handle_rx2_timer_event(void);
void handle_ack_timeout(void);
void handle_delayed_tx_timer_event(void);
void handle_mac_state_check_timer_event(void);
void handle_next_tx_timer_event(void);
private: private:
/** /**