diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c index fdc54e1c591e884776237d735458603a6fdd8ee8..f607743d1592f1473ad172ad9684a7ba17730104 100644 --- a/common/utils/T/tracer/enb.c +++ b/common/utils/T/tracer/enb.c @@ -31,7 +31,10 @@ void reset_ue_ids(void) int i; printf("resetting known UEs\n"); for (i = 0; i < 65536; i++) ue_id[i] = -1; - next_ue_id = 0; + ue_id[65535] = 0; + ue_id[65534] = 1; /* HACK: to be removed */ + ue_id[2] = 2; /* this supposes RA RNTI = 2, very openair specific */ + next_ue_id = 3; } int ue_id_from_rnti(void *_priv, int rnti) @@ -228,13 +231,15 @@ static void click(void *private, gui *g, enb_data *ed = private; enb_gui *e = ed->e; int ue = ed->ue; + int do_reset = 0; if (button != 1) return; if (w == e->prev_ue_button) { ue--; if (ue < 0) ue = 0; } if (w == e->next_ue_button) ue++; - if (w == e->current_ue_button) reset_ue_ids(); + if (w == e->current_ue_button) do_reset = 1; if (pthread_mutex_lock(&ed->lock)) abort(); + if (do_reset) reset_ue_ids(); if (ue != ed->ue) { set_current_ue(g, ed, ue); ed->ue = ue; @@ -619,7 +624,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database, container_set_child_growable(g, top_container, text, 1); e->legacy = new_view_textlist(10000, 10, g, text); - set_current_ue(g, ed, 0); + set_current_ue(g, ed, ed->ue); register_notifier(g, "click", e->current_ue_button, click, ed); register_notifier(g, "click", e->prev_ue_button, click, ed); register_notifier(g, "click", e->next_ue_button, click, ed); @@ -735,7 +740,7 @@ int main(int n, char **v) g = gui_init(); new_thread(gui_thread, g); - enb_data.ue = 0; + enb_data.ue = 3; enb_data.e = ⪚ enb_data.database = database;