diff --git a/common/utils/T/tracer/Makefile b/common/utils/T/tracer/Makefile index 9069d2be2c3aac29ae132f57aa64330ac8adf555..b06ff4dd4dab61bd55a207e33d1a4ee5a007a121 100644 --- a/common/utils/T/tracer/Makefile +++ b/common/utils/T/tracer/Makefile @@ -5,6 +5,7 @@ local: remote: make -f Makefile.remote + make -f Makefile.remote textlog clean: make -f Makefile.local clean diff --git a/common/utils/T/tracer/Makefile.remote b/common/utils/T/tracer/Makefile.remote index 9dc082e01e1d1f3b02ab0e81d5030f6124cb7785..8dd9d9a7e2a6a88c288e6bba04e8e5d37f7c4e22 100644 --- a/common/utils/T/tracer/Makefile.remote +++ b/common/utils/T/tracer/Makefile.remote @@ -12,7 +12,7 @@ $(PROG): gui/gui.a $(OBJS) $(CC) $(CFLAGS) -o $(PROG) $(OBJS) gui/gui.a $(LIBS) textlog: utils.o remote.o database.o event.o handler.o textlog.o \ - view/view.a gui/gui.a + event_selector.o view/view.a gui/gui.a $(CC) $(CFLAGS) -o textlog $^ $(LIBS) .PHONY: gui/gui.a view/view.a diff --git a/common/utils/T/tracer/event_selector.c b/common/utils/T/tracer/event_selector.c new file mode 100644 index 0000000000000000000000000000000000000000..f632efb8daef9c9817978f1a64b00ac3099a5b44 --- /dev/null +++ b/common/utils/T/tracer/event_selector.c @@ -0,0 +1,41 @@ +#include "event_selector.h" +#include "gui/gui.h" + +void setup_event_selector(gui *g, void *database, int socket, int *is_on) +{ + widget *win; + widget *main_container; + widget *container; + widget *left, *right; + widget *events, *groups; + + win = new_toplevel_window(g, 610, 800, "event selector"); + main_container = new_container(g, VERTICAL); + widget_add_child(g, win, main_container, -1); + + container = new_container(g, HORIZONTAL); + widget_add_child(g, main_container, container, -1); + container_set_child_growable(g, main_container, container, 1); + widget_add_child(g, main_container, + new_label(g, "mouse scroll to scroll - " + "left click to activate - " + "right click to deactivate"), -1); + + left = new_container(g, VERTICAL); + right = new_container(g, VERTICAL); + widget_add_child(g, container, left, -1); + widget_add_child(g, container, right, -1); + container_set_child_growable(g, container, left, 1); + container_set_child_growable(g, container, right, 1); + + widget_add_child(g, left, new_label(g, "Events"), -1); + widget_add_child(g, right, new_label(g, "Groups"), -1); + + events = new_text_list(g, 300, 10, new_color(g, "#ccccff")); + groups = new_text_list(g, 300, 10, new_color(g, "#ccffee")); + + widget_add_child(g, left, events, -1); + widget_add_child(g, right, groups, -1); + container_set_child_growable(g, left, events, 1); + container_set_child_growable(g, right, groups, 1); +} diff --git a/common/utils/T/tracer/event_selector.h b/common/utils/T/tracer/event_selector.h new file mode 100644 index 0000000000000000000000000000000000000000..11e977b4f641772e3f9380fd9baecdd04d517059 --- /dev/null +++ b/common/utils/T/tracer/event_selector.h @@ -0,0 +1,8 @@ +#ifndef _EVENT_SELECTOR_H_ +#define _EVENT_SELECTOR_H_ + +#include "gui/gui.h" + +void setup_event_selector(gui *g, void *database, int socket, int *is_on); + +#endif /* _EVENT_SELECTOR_H_ */ diff --git a/common/utils/T/tracer/remote.c b/common/utils/T/tracer/remote.c index 020aba3cdb80bf0ca81bb7baf99c2956f4c2ae36..9d1d2b0968bc88a9686289cdbff726b8aa2b6554 100644 --- a/common/utils/T/tracer/remote.c +++ b/common/utils/T/tracer/remote.c @@ -12,6 +12,7 @@ #include "gui/gui.h" #include "utils.h" #include "../T_defs.h" +#include "event_selector.h" #define DEFAULT_REMOTE_PORT 2021 @@ -115,6 +116,7 @@ int main(int n, char **v) int l; event_handler *h; textlog *textlog; + gui *g; int gui_mode = 0; on_off_name = malloc(n * sizeof(char *)); if (on_off_name == NULL) abort(); @@ -155,17 +157,18 @@ int main(int n, char **v) "ENB_UL_CHANNEL_ESTIMATE", "ev: {} eNB_id [eNB_ID] frame [frame] subframe [subframe]"); + g = gui_init(); + new_thread(gui_thread, g); + if (gui_mode) { view *tout; - gui *g; widget *w, *win; - g = gui_init(); - w = new_text_list(g, 600, 20, 0); +// w = new_text_list(g, 600, 20, 0); + w = new_text_list(g, 600, 20, new_color(g, "#ffabab")); win = new_toplevel_window(g, 600, 20*12, "textlog"); widget_add_child(g, win, w, -1); - //tout = new_textlist(1000, 10, g, w); - tout = new_textlist(7, 4, g, w); - new_thread(gui_thread, g); + tout = new_textlist(1000, 10, g, w); + //tout = new_textlist(7, 4, g, w); textlog_add_view(textlog, tout); } else { view *sout = new_stdout(); @@ -175,7 +178,7 @@ int main(int n, char **v) for (i = 0; i < on_off_n; i++) on_off(database, on_off_name[i], is_on, on_off_action[i]); - s = get_connection("127.0.0.1", port); + s = get_connection("0.0.0.0", port); /* send the first message - activate selected traces */ t = 0; @@ -187,6 +190,8 @@ int main(int n, char **v) if (is_on[l]) if (write(s, &l, sizeof(int)) != sizeof(int)) abort(); + setup_event_selector(g, database, s, is_on); + /* read messages */ while (1) { char v[T_BUFFER_MAX];