diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c index b76bd20376fe7f45a21ccf967d391f235b9813fe..542403a3c67ee806db50203c2a94a14f96d55bc6 100644 --- a/common/utils/T/tracer/enb.c +++ b/common/utils/T/tracer/enb.c @@ -171,6 +171,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database) filter_evarg(database, "ENB_PHY_INPUT_SIGNAL", "CC_id"), filter_int(0))); +#if 0 /* input signal CC 1 */ input_signal_plot = new_xy_plot(g, 256, 55, "input signal CC 1", 20); widget_add_child(g, line, input_signal_plot, -1); @@ -188,6 +189,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database) filter_eq( filter_evarg(database, "ENB_PHY_INPUT_SIGNAL", "CC_id"), filter_int(1))); +#endif /* UE 0 PUSCH IQ data */ w = new_xy_plot(g, 55, 55, "PUSCH IQ [UE 0]", 50); @@ -250,30 +252,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database) filter_evarg(database, "ENB_PHY_PUCCH_1AB_IQ", "UE_ID"), filter_int(0))); - /* UE x DL mcs */ - line = new_container(g, HORIZONTAL); - widget_add_child(g, top_container, line, -1); - w = new_xy_plot(g, 128, 55, "", 20); - xy_plot_set_range(g, w, 0, 1024*10, -1, 29); - e->dl_mcs_xy_plot = w; - widget_add_child(g, line, w, -1); - l = new_ticked_ttilog(h, database, "ENB_PHY_DL_TICK", "frame", "subframe", - "ENB_PHY_DLSCH_UE_DCI", "mcs", 0, -1); - v = new_view_tti(10, g, w, new_color(g, "#0c0c72")); - logger_add_view(l, v); - e->dl_mcs_logger = l; - - /* UE x UL mcs */ - w = new_xy_plot(g, 128, 55, "", 20); - xy_plot_set_range(g, w, 0, 1024*10, -1, 29); - e->ul_mcs_xy_plot = w; - widget_add_child(g, line, w, -1); - l = new_ticked_ttilog(h, database, "ENB_PHY_DL_TICK", "frame", "subframe", - "ENB_PHY_ULSCH_UE_DCI", "mcs", 0, -1); - v = new_view_tti(10, g, w, new_color(g, "#0c0c72")); - logger_add_view(l, v); - e->ul_mcs_logger = l; - +#if 0 /* UE x DL mcs */ line = new_container(g, HORIZONTAL); widget_add_child(g, top_container, line, -1); @@ -297,36 +276,102 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database) v = new_view_tti(10, g, w, new_color(g, "#0c0c72")); logger_add_view(l, v); e->ul_mcs_logger = l; +#endif - /* UE x DL PHY (truly: DCI) throughput */ - col = new_container(g, VERTICAL); - widget_add_child(g, line, col, -1); - w = new_xy_plot(g, 70, 10, "DL PHY [0]", 35); - w2 = new_textarea(g, 70, 11, 64); - xy_plot_set_range(g, w, 0, 1000, 0, 100000); - xy_plot_set_tick_type(g, w, XY_PLOT_SCROLL_TICK); - widget_add_child(g, col, w2, -1); - widget_add_child(g, col, w, -1); - container_set_child_growable(g, col, w, 1); - l = new_throughputlog(h, database, "ENB_PHY_DL_TICK", "frame", "subframe", - "ENB_PHY_DLSCH_UE_DCI", "TBS"); - v = new_view_scrolltti(10, g, w, new_color(g, "#0c0c72"), w2); - logger_add_view(l, v); + line = new_container(g, HORIZONTAL); + widget_add_child(g, top_container, line, -1); - /* UE x UL PHY (truly: DCI) throughput */ - col = new_container(g, VERTICAL); - widget_add_child(g, line, col, -1); - w = new_xy_plot(g, 70, 10, "UL PHY [0]", 35); - w2 = new_textarea(g, 70, 11, 64); - xy_plot_set_range(g, w, 0, 1000, 0, 100000); - xy_plot_set_tick_type(g, w, XY_PLOT_SCROLL_TICK); - widget_add_child(g, col, w2, -1); - widget_add_child(g, col, w, -1); - container_set_child_growable(g, col, w, 1); - l = new_throughputlog(h, database, "ENB_PHY_DL_TICK", "frame", "subframe", - "ENB_PHY_ULSCH_UE_DCI", "TBS"); - v = new_view_scrolltti(10, g, w, new_color(g, "#0c0c72"), w2); - logger_add_view(l, v); + for (i = 0; i < 2; i++) { + char s[64]; + /* UE x DL PHY (truly: DCI) throughput CC 0 */ + col = new_container(g, VERTICAL); + widget_add_child(g, line, col, -1); + sprintf(s, " DL [CC 0 UE %d]", i); + w = new_xy_plot(g, 80, 50, s, 35); + w2 = new_textarea(g, 70, 11, 64); + xy_plot_set_range(g, w, 0, 1000, 0, 100000); + xy_plot_set_tick_type(g, w, XY_PLOT_SCROLL_TICK); + widget_add_child(g, col, w2, -1); + widget_add_child(g, col, w, -1); + container_set_child_growable(g, col, w, 1); + l = new_throughputlog(h, database, "ENB_PHY_DL_TICK", "frame", "subframe", + "ENB_PHY_DLSCH_UE_DCI", "TBS"); + v = new_view_scrolltti(10, g, w, new_color(g, "#0c0c72"), w2); + logger_add_view(l, v); + throughputlog_set_tick_filter(l, + filter_eq( + filter_evarg(database, "ENB_PHY_DL_TICK", "CC_id"), + filter_int(0))); + logger_set_filter(l, + filter_and( + filter_eq( + filter_evarg(database, "ENB_PHY_DLSCH_UE_DCI", "CC_id"), + filter_int(0)), + filter_eq( + filter_evarg(database, "ENB_PHY_DLSCH_UE_DCI", "UE_id"), + filter_int(i)))); + + /* UE x DL PHY (truly: DCI) throughput CC 1 */ + col = new_container(g, VERTICAL); + widget_add_child(g, line, col, -1); + sprintf(s, " DL [CC 1 UE %d]", i); + w = new_xy_plot(g, 80, 50, s, 35); + w2 = new_textarea(g, 70, 11, 64); + xy_plot_set_range(g, w, 0, 1000, 0, 100000); + xy_plot_set_tick_type(g, w, XY_PLOT_SCROLL_TICK); + widget_add_child(g, col, w2, -1); + widget_add_child(g, col, w, -1); + container_set_child_growable(g, col, w, 1); + l = new_throughputlog(h, database, "ENB_PHY_DL_TICK", "frame", "subframe", + "ENB_PHY_DLSCH_UE_DCI", "TBS"); + v = new_view_scrolltti(10, g, w, new_color(g, "#0c0c72"), w2); + logger_add_view(l, v); + throughputlog_set_tick_filter(l, + filter_eq( + filter_evarg(database, "ENB_PHY_DL_TICK", "CC_id"), + filter_int(1))); + logger_set_filter(l, + filter_and( + filter_eq( + filter_evarg(database, "ENB_PHY_DLSCH_UE_DCI", "CC_id"), + filter_int(1)), + filter_eq( + filter_evarg(database, "ENB_PHY_DLSCH_UE_DCI", "UE_id"), + filter_int(i)))); + + /* UE x UL PHY (truly: DCI) throughput CC 0 */ + col = new_container(g, VERTICAL); + widget_add_child(g, line, col, -1); + sprintf(s, " UL [CC 0 UE %d]", i); + w = new_xy_plot(g, 80, 50, s, 35); + w2 = new_textarea(g, 70, 11, 64); + xy_plot_set_range(g, w, 0, 1000, 0, 100000); + xy_plot_set_tick_type(g, w, XY_PLOT_SCROLL_TICK); + widget_add_child(g, col, w2, -1); + widget_add_child(g, col, w, -1); + container_set_child_growable(g, col, w, 1); + l = new_throughputlog(h, database, "ENB_PHY_DL_TICK", "frame", "subframe", + "ENB_PHY_ULSCH_UE_DCI", "TBS"); + v = new_view_scrolltti(10, g, w, new_color(g, "#0c0c72"), w2); + logger_add_view(l, v); + throughputlog_set_tick_filter(l, + filter_eq( + filter_evarg(database, "ENB_PHY_DL_TICK", "CC_id"), + filter_int(0))); + logger_set_filter(l, + filter_and( + filter_eq( + filter_evarg(database, "ENB_PHY_ULSCH_UE_DCI", "CC_id"), + filter_int(0)), + filter_eq( + filter_evarg(database, "ENB_PHY_ULSCH_UE_DCI", "UE_id"), + filter_int(i)))); + + if (i == 0) { + w = new_space(g, 50, 2); + widget_add_child(g, line, w, -1); + } + } /* downlink/uplink UE DCIs */ widget_add_child(g, top_container, @@ -339,7 +384,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database) for (i = 0; i < 8; i++) timeline_set_subline_background_color(g, timeline_plot, i, new_color(g, i==0 || i==4 ? "#aaf" : "#eee")); - timeview = new_view_time(3600, 10, g, timeline_plot); + timeview = new_view_time(3600, 1, g, timeline_plot); /* DL tick logging */ timelog = new_timelog(h, database, "ENB_PHY_DL_TICK"); subview = new_subview_time(timeview, 0, new_color(g, "#77c"), 600*1000); @@ -394,7 +439,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database) timeline_set_subline_background_color(g, timeline_plot, i, new_color(g, i >= 9 && i <= 16 ? (i%8)&1 ? "#e6e6bb" : "#eeb" : i==0 || i==9+8 ? "#ddd" : (i%9)&1 ? "#e6e6e6" : "#eee")); - timeview = new_view_ticktime(10, g, timeline_plot); + timeview = new_view_ticktime(2, g, timeline_plot); ticktime_set_tick(timeview, new_ticklog(h, database, "ENB_MASTER_TICK", "frame", "subframe")); /* tick */ @@ -647,8 +692,8 @@ int main(int n, char **v) free(desc); } - on_off(database, "ENB_PHY_INPUT_SIGNAL", is_on, 1); - on_off(database, "ENB_PHY_UL_CHANNEL_ESTIMATE", is_on, 1); + //on_off(database, "ENB_PHY_INPUT_SIGNAL", is_on, 1); + //on_off(database, "ENB_PHY_UL_CHANNEL_ESTIMATE", is_on, 1); on_off(database, "ENB_PHY_DL_TICK", is_on, 1); on_off(database, "ENB_PHY_DLSCH_UE_DCI", is_on, 1); on_off(database, "ENB_PHY_DLSCH_UE_ACK", is_on, 1); diff --git a/common/utils/T/tracer/logger/logger.h b/common/utils/T/tracer/logger/logger.h index 434cf5a90fee02a4c97d33ddcab26e5f484b193c..6d69521e62f65892bc3509902ae0e43f73ddceed 100644 --- a/common/utils/T/tracer/logger/logger.h +++ b/common/utils/T/tracer/logger/logger.h @@ -37,4 +37,6 @@ void logger_add_view(logger *l, view *v); void logger_set_filter(logger *l, void *filter); void ticked_ttilog_set_tick_filter(logger *l, void *filter); +void throughputlog_set_tick_filter(logger *_l, void *filter); + #endif /* _LOGGER_H_ */