Commit 75f47316 authored by Florian Kaltenberger's avatar Florian Kaltenberger

added per-ue, per-cc throughput plots

parent 42154589
...@@ -171,6 +171,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database) ...@@ -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_evarg(database, "ENB_PHY_INPUT_SIGNAL", "CC_id"),
filter_int(0))); filter_int(0)));
#if 0
/* input signal CC 1 */ /* input signal CC 1 */
input_signal_plot = new_xy_plot(g, 256, 55, "input signal CC 1", 20); input_signal_plot = new_xy_plot(g, 256, 55, "input signal CC 1", 20);
widget_add_child(g, line, input_signal_plot, -1); 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) ...@@ -188,6 +189,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
filter_eq( filter_eq(
filter_evarg(database, "ENB_PHY_INPUT_SIGNAL", "CC_id"), filter_evarg(database, "ENB_PHY_INPUT_SIGNAL", "CC_id"),
filter_int(1))); filter_int(1)));
#endif
/* UE 0 PUSCH IQ data */ /* UE 0 PUSCH IQ data */
w = new_xy_plot(g, 55, 55, "PUSCH IQ [UE 0]", 50); 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) ...@@ -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_evarg(database, "ENB_PHY_PUCCH_1AB_IQ", "UE_ID"),
filter_int(0))); filter_int(0)));
/* UE x DL mcs */ #if 0
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;
/* UE x DL mcs */ /* UE x DL mcs */
line = new_container(g, HORIZONTAL); line = new_container(g, HORIZONTAL);
widget_add_child(g, top_container, line, -1); 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) ...@@ -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")); v = new_view_tti(10, g, w, new_color(g, "#0c0c72"));
logger_add_view(l, v); logger_add_view(l, v);
e->ul_mcs_logger = l; e->ul_mcs_logger = l;
#endif
/* UE x DL PHY (truly: DCI) throughput */ line = new_container(g, HORIZONTAL);
col = new_container(g, VERTICAL); widget_add_child(g, top_container, line, -1);
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);
/* UE x UL PHY (truly: DCI) throughput */ for (i = 0; i < 2; i++) {
col = new_container(g, VERTICAL); char s[64];
widget_add_child(g, line, col, -1); /* UE x DL PHY (truly: DCI) throughput CC 0 */
w = new_xy_plot(g, 70, 10, "UL PHY [0]", 35); col = new_container(g, VERTICAL);
w2 = new_textarea(g, 70, 11, 64); widget_add_child(g, line, col, -1);
xy_plot_set_range(g, w, 0, 1000, 0, 100000); sprintf(s, " DL [CC 0 UE %d]", i);
xy_plot_set_tick_type(g, w, XY_PLOT_SCROLL_TICK); w = new_xy_plot(g, 80, 50, s, 35);
widget_add_child(g, col, w2, -1); w2 = new_textarea(g, 70, 11, 64);
widget_add_child(g, col, w, -1); xy_plot_set_range(g, w, 0, 1000, 0, 100000);
container_set_child_growable(g, col, w, 1); xy_plot_set_tick_type(g, w, XY_PLOT_SCROLL_TICK);
l = new_throughputlog(h, database, "ENB_PHY_DL_TICK", "frame", "subframe", widget_add_child(g, col, w2, -1);
"ENB_PHY_ULSCH_UE_DCI", "TBS"); widget_add_child(g, col, w, -1);
v = new_view_scrolltti(10, g, w, new_color(g, "#0c0c72"), w2); container_set_child_growable(g, col, w, 1);
logger_add_view(l, v); 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 */ /* downlink/uplink UE DCIs */
widget_add_child(g, top_container, 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) ...@@ -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++) for (i = 0; i < 8; i++)
timeline_set_subline_background_color(g, timeline_plot, i, timeline_set_subline_background_color(g, timeline_plot, i,
new_color(g, i==0 || i==4 ? "#aaf" : "#eee")); 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 */ /* DL tick logging */
timelog = new_timelog(h, database, "ENB_PHY_DL_TICK"); timelog = new_timelog(h, database, "ENB_PHY_DL_TICK");
subview = new_subview_time(timeview, 0, new_color(g, "#77c"), 600*1000); 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) ...@@ -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, timeline_set_subline_background_color(g, timeline_plot, i,
new_color(g, i >= 9 && i <= 16 ? (i%8)&1 ? "#e6e6bb" : "#eeb" : new_color(g, i >= 9 && i <= 16 ? (i%8)&1 ? "#e6e6bb" : "#eeb" :
i==0 || i==9+8 ? "#ddd" : (i%9)&1 ? "#e6e6e6" : "#eee")); 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, ticktime_set_tick(timeview,
new_ticklog(h, database, "ENB_MASTER_TICK", "frame", "subframe")); new_ticklog(h, database, "ENB_MASTER_TICK", "frame", "subframe"));
/* tick */ /* tick */
...@@ -647,8 +692,8 @@ int main(int n, char **v) ...@@ -647,8 +692,8 @@ int main(int n, char **v)
free(desc); free(desc);
} }
on_off(database, "ENB_PHY_INPUT_SIGNAL", 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_UL_CHANNEL_ESTIMATE", is_on, 1);
on_off(database, "ENB_PHY_DL_TICK", 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_DCI", is_on, 1);
on_off(database, "ENB_PHY_DLSCH_UE_ACK", is_on, 1); on_off(database, "ENB_PHY_DLSCH_UE_ACK", is_on, 1);
......
...@@ -37,4 +37,6 @@ void logger_add_view(logger *l, view *v); ...@@ -37,4 +37,6 @@ void logger_add_view(logger *l, view *v);
void logger_set_filter(logger *l, void *filter); void logger_set_filter(logger *l, void *filter);
void ticked_ttilog_set_tick_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_ */ #endif /* _LOGGER_H_ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment