T: make number of subframes per frame a configurable item
Think: NR with different number of slots per frame depending on mu. The name 'subframes_per_frame' is a bit ambiguous. It is valid for LTE, but for NR it should be 'slots_per_frame'. For example, for sub-carrier spacing of 30KHz, we have 20 slots per frame, so in this case subframes_per_frame = 20. In reality whatever the numerology, there is always 10 subframes per frame in NR. But how to name this variable which is used both for LTE and NR cases? 'subframes_or_slots_per_frame'? It's a bit long and also ambiguous. Conclusion: no big deal I think. 'subframes_per_frame' and so be it.
This commit is contained in:
@@ -16,7 +16,7 @@ logger *new_ticked_ttilog(void *event_handler, void *database,
|
||||
int convert_to_dB, float empty_value);
|
||||
logger *new_throughputlog(void *event_handler, void *database,
|
||||
char *tick_event_name, char *frame_varname, char *subframe_varname,
|
||||
char *event_name, char *data_varname);
|
||||
char *event_name, char *data_varname, int subframes_per_frame);
|
||||
logger *new_timelog(void *event_handler, void *database, char *event_name);
|
||||
logger *new_ticklog(void *event_handler, void *database,
|
||||
char *event_name, char *frame_name, char *subframe_name);
|
||||
|
||||
@@ -19,7 +19,8 @@ struct throughputlog {
|
||||
int data_arg;
|
||||
int last_tick_frame;
|
||||
int last_tick_subframe;
|
||||
unsigned long bits[1000];
|
||||
int subframes_per_frame;
|
||||
unsigned long *bits;
|
||||
unsigned long total;
|
||||
int insert_point;
|
||||
char *tick_event_name;
|
||||
@@ -74,11 +75,11 @@ static void _tick_event(void *p, event e)
|
||||
l->common.v[i]->append(l->common.v[i], frame, subframe, (double)l->total);
|
||||
|
||||
while (l->last_tick_frame != frame || l->last_tick_subframe != subframe) {
|
||||
l->insert_point = (l->insert_point + 1) % 1000;
|
||||
l->insert_point = (l->insert_point + 1) % (100 * l->subframes_per_frame);
|
||||
l->total -= l->bits[l->insert_point];
|
||||
l->bits[l->insert_point] = 0;
|
||||
l->last_tick_subframe++;
|
||||
if (l->last_tick_subframe == 10) {
|
||||
if (l->last_tick_subframe == l->subframes_per_frame) {
|
||||
l->last_tick_subframe = 0;
|
||||
l->last_tick_frame++;
|
||||
l->last_tick_frame %= 1024;
|
||||
@@ -89,7 +90,7 @@ static void _tick_event(void *p, event e)
|
||||
|
||||
logger *new_throughputlog(event_handler *h, void *database,
|
||||
char *tick_event_name, char *frame_varname, char *subframe_varname,
|
||||
char *event_name, char *data_varname)
|
||||
char *event_name, char *data_varname, int subframes_per_frame)
|
||||
{
|
||||
struct throughputlog *ret;
|
||||
int event_id;
|
||||
@@ -189,6 +190,10 @@ logger *new_throughputlog(event_handler *h, void *database,
|
||||
abort();
|
||||
}
|
||||
|
||||
ret->subframes_per_frame = subframes_per_frame;
|
||||
ret->bits = calloc(100 * subframes_per_frame, sizeof(unsigned long));
|
||||
if (ret->bits == NULL) abort();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user