diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c index 07768763a59ac1c40f7b8555bab91734386ae1f7..c6f3bba5ffc3754e8ce1ad49a5cd70d60744b257 100644 --- a/common/utils/T/tracer/enb.c +++ b/common/utils/T/tracer/enb.c @@ -32,6 +32,8 @@ typedef struct { widget *pucch1_energy_ue_xy_plot; widget *pucch_iq_ue_xy_plot; widget *dl_ul_harq_ue_label; + widget *dl_mcs_xy_plot; + widget *ul_mcs_xy_plot; logger *pusch_iq_ue_logger; logger *ul_estimate_ue_logger; logger *pucch1_energy_ue_threshold_logger; @@ -44,6 +46,8 @@ typedef struct { logger *ul_dci_retransmission_logger[8]; logger *ul_ack_logger[8]; logger *ul_nack_logger[8]; + logger *dl_mcs_logger; + logger *ul_mcs_logger; } enb_gui; typedef struct { @@ -137,6 +141,10 @@ static void set_current_ue(gui *g, enb_data *e, int ue) xy_plot_set_title(g, e->e->pucch_iq_ue_xy_plot, s); sprintf(s, "DL/UL HARQ (x8) [UE %d]", ue); label_set_text(g, e->e->dl_ul_harq_ue_label, s); + sprintf(s, "DL MCS [UE %d]", ue); + xy_plot_set_title(g, e->e->dl_mcs_xy_plot, s); + sprintf(s, "UL MCS [UE %d]", ue); + xy_plot_set_title(g, e->e->ul_mcs_xy_plot, s); logger_set_filter(e->e->pusch_iq_ue_logger, filter_eq( @@ -175,6 +183,14 @@ static void set_current_ue(gui *g, enb_data *e, int ue) logger_set_filter(e->e->ul_nack_logger[i], ticktime_filter(e->database, "ENB_PHY_ULSCH_UE_NACK", i, ue)); } + logger_set_filter(e->e->dl_mcs_logger, + filter_eq( + filter_evarg(e->database, "ENB_PHY_DLSCH_UE_DCI", "UE_id"), + filter_int(ue))); + logger_set_filter(e->e->ul_mcs_logger, + filter_eq( + filter_evarg(e->database, "ENB_PHY_ULSCH_UE_DCI", "UE_id"), + filter_int(ue))); } static void click(void *private, gui *g, @@ -309,6 +325,30 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database, logger_add_view(l, v); e->pucch_iq_ue_logger = l; + /* 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; + /* downlink/uplink UE DCIs */ widget_add_child(g, top_container, new_label(g,"DL/UL TICK/DCI/ACK/NACK [all UEs]"), -1);