From 5822e94e5f33ab6f4519ac7582a0f423399caf88 Mon Sep 17 00:00:00 2001 From: Cedric Roux <cedric.roux@eurecom.fr> Date: Tue, 17 May 2016 17:33:45 +0200 Subject: [PATCH] starting work on DL/UL DCI graphical logging --- common/utils/T/T_messages.txt | 8 +++++ common/utils/T/tracer/enb.c | 40 ++++++++++++++++++------- openair1/SCHED/phy_procedures_lte_eNb.c | 4 +++ 3 files changed, 42 insertions(+), 10 deletions(-) diff --git a/common/utils/T/T_messages.txt b/common/utils/T/T_messages.txt index 87627cfe4a..1691f4517e 100644 --- a/common/utils/T/T_messages.txt +++ b/common/utils/T/T_messages.txt @@ -1,4 +1,12 @@ #PHY logs +ID = ENB_UL_TICK + DESC = eNodeB uplink tick - one tick per ms at start of uplink processing + GROUP = ALL:PHY:GRAPHIC + FORMAT = int,eNB_ID : int,frame : int,subframe +ID = ENB_DL_TICK + DESC = eNodeB downlink tick - one tick per ms at start of downlink processing + GROUP = ALL:PHY:GRAPHIC + FORMAT = int,eNB_ID : int,frame : int,subframe ID = ENB_INPUT_SIGNAL DESC = eNodeB received signal in the time domain for a duration of 1ms GROUP = ALL:PHY:GRAPHIC:HEAVY diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c index 974db118ca..c3172a612f 100644 --- a/common/utils/T/tracer/enb.c +++ b/common/utils/T/tracer/enb.c @@ -120,9 +120,9 @@ static void enb_main_gui(gui *g, event_handler *h, void *database) logger *input_signal_log; view *input_signal_view; widget *timeline_plot; - logger *input_signal_timelog; - view *input_signal_timeview; - view *input_signal_subview; + logger *timelog; + view *timeview; + view *subview; int i; main_window = new_toplevel_window(g, 800, 600, "eNB tracer"); @@ -144,19 +144,35 @@ static void enb_main_gui(gui *g, event_handler *h, void *database) g, input_signal_plot, new_color(g, "#0c0c72")); logger_add_view(input_signal_log, input_signal_view); + /* downlink UE DCIs */ line = new_container(g, HORIZONTAL); widget_add_child(g, top_container, line, -1); - timeline_plot = new_timeline(g, 512, 16, 5); + timeline_plot = new_timeline(g, 512, 4, 5); widget_add_child(g, line, timeline_plot, -1); container_set_child_growable(g, line, timeline_plot, 1); - for (i = 0; i < 16; i++) + for (i = 0; i < 4; i++) timeline_set_subline_background_color(g, timeline_plot, i, new_color(g, i & 1 ? "#ddd" : "#eee")); - input_signal_timelog = new_timelog(h, database, "ENB_INPUT_SIGNAL"); - input_signal_timeview = new_view_time(3600, 10, g, timeline_plot); - input_signal_subview = new_subview_time(input_signal_timeview, - 0, FOREGROUND_COLOR); - logger_add_view(input_signal_timelog, input_signal_subview); + timelog = new_timelog(h, database, "ENB_DL_TICK"); + timeview = new_view_time(3600, 10, g, timeline_plot); + subview = new_subview_time(timeview, 0, FOREGROUND_COLOR); + logger_add_view(timelog, subview); + widget_add_child(g, line, new_label(g,"DL TICK/DCI/ACK/NACK "), 0); + + /* uplink UE DCIs */ + line = new_container(g, HORIZONTAL); + widget_add_child(g, top_container, line, -1); + timeline_plot = new_timeline(g, 512, 4, 5); + widget_add_child(g, line, timeline_plot, -1); + container_set_child_growable(g, line, timeline_plot, 1); + for (i = 0; i < 4; i++) + timeline_set_subline_background_color(g, timeline_plot, i, + new_color(g, i & 1 ? "#ddd" : "#eee")); + timelog = new_timelog(h, database, "ENB_UL_TICK"); + timeview = new_view_time(3600, 10, g, timeline_plot); + subview = new_subview_time(timeview, 0, FOREGROUND_COLOR); + logger_add_view(timelog, subview); + widget_add_child(g, line, new_label(g,"UL TICK/DCI/ACK/NACK "), 0); } int main(int n, char **v) @@ -216,6 +232,10 @@ int main(int n, char **v) enb_main_gui(g, h, database); + on_off(database, "ENB_INPUT_SIGNAL", is_on, 1); + on_off(database, "ENB_UL_TICK", is_on, 1); + on_off(database, "ENB_DL_TICK", is_on, 1); + for (i = 0; i < on_off_n; i++) on_off(database, on_off_name[i], is_on, on_off_action[i]); diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 7bf32eba48..2566adc4c6 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -651,6 +651,8 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e phy_vars_eNB->Mod_id, frame, subframe); #endif + T(T_ENB_DL_TICK, T_INT(phy_vars_eNB->Mod_id), T_INT(frame), T_INT(subframe)); + for (i=0; i<NUMBER_OF_UE_MAX; i++) { // If we've dropped the UE, go back to PRACH mode for this UE //#if !defined(EXMIMO_IOT) @@ -2443,6 +2445,8 @@ void phy_procedures_eNB_RX(const unsigned char sched_subframe,PHY_VARS_eNB *phy_ LOG_D(PHY,"[eNB %d] Frame %d: Doing phy_procedures_eNB_RX(%d)\n",phy_vars_eNB->Mod_id,frame, subframe); #endif + T(T_ENB_UL_TICK, T_INT(phy_vars_eNB->Mod_id), T_INT(frame), T_INT(subframe)); + T(T_ENB_INPUT_SIGNAL, T_INT(phy_vars_eNB->Mod_id), T_INT(frame), T_INT(subframe), T_INT(0), T_BUFFER(&phy_vars_eNB->lte_eNB_common_vars.rxdata[0][0][subframe*phy_vars_eNB->lte_frame_parms.samples_per_tti], phy_vars_eNB->lte_frame_parms.samples_per_tti * 4)); -- GitLab