- pheap_node_id_t i = ph_remove_head(sleeps_heap, false);
- send_t *send = &sleeping_sends[i];
- uint32_t ago = now - send->timestamp;
- send_report(send->seq, ago);
- send->send_count++;
- if (send->send_count < config_resend_count)
- ph_insert_node(sleeps_heap, i);
- else
- ph_free_node(sleeps_heap, i);
+ press_t press;
+ if (!get_press_due_for_resend(pp, now, &press))
+ signal_error_by_blinking();
+ uint32_t ago = now - press.timestamp;
+ send_report_packet(press.seq, ago);
+ press.send_count++;
+ if (press.send_count < config_resend_count) {
+ add_press(pp, &press);
+ }