Agora  1.2.0
Agora project
framestats.h
Go to the documentation of this file.
1 // Copyright (c) 2018-2020, Rice University
2 // RENEW OPEN SOURCE LICENSE: http://renew-wireless.org/license
3 
10 #ifndef FRAMESTATS_H_
11 #define FRAMESTATS_H_
12 
13 #include <string>
14 #include <vector>
15 
16 class FrameStats {
17  public:
18  explicit FrameStats(std::string new_frame_id);
19  FrameStats(std::string new_frame_id, size_t ul, size_t dl);
20 
21  void SetClientPilotSyms(size_t ul, size_t dl);
22 
23  size_t NumDLCalSyms() const;
24  size_t NumULCalSyms() const;
25  size_t NumDLSyms() const;
26  size_t NumULSyms() const;
27  size_t NumPilotSyms() const;
28  size_t NumBeaconSyms() const;
29  size_t NumTotalSyms() const;
30 
31  /* Returns SIZE_MAX if symbol number is not a beacon */
32  size_t GetBeaconSymbolIdx(size_t symbol_number) const;
33  size_t GetDLSymbol(size_t location) const;
34  inline size_t GetDLDataSymbol(size_t location) const {
35  return GetDLSymbol(location + client_dl_pilot_symbols_);
36  }
37  inline size_t GetDLSymbolLast() const {
38  return ((this->dl_symbols_.empty()) ? SIZE_MAX : this->dl_symbols_.back());
39  }
40  /* Returns SIZE_MAX if there are no DL symbols */
41  size_t GetDLSymbolIdx(size_t symbol_number) const;
42 
43  size_t GetULSymbol(size_t location) const;
44  inline size_t GetULDataSymbol(size_t location) const {
45  return GetULSymbol(location + client_ul_pilot_symbols_);
46  }
47  inline size_t GetULSymbolLast() const {
48  return ((this->ul_symbols_.empty()) ? SIZE_MAX : this->ul_symbols_.back());
49  }
50  /* Returns SIZE_MAX if there are no UL symbols */
51  size_t GetULSymbolIdx(size_t symbol_number) const;
52 
53  size_t GetPilotSymbol(size_t location) const;
54  size_t GetPilotSymbolIdx(size_t symbol_number) const;
55 
56  size_t GetDLCalSymbol(size_t location) const;
57  size_t GetDLCalSymbolIdx(size_t symbol_number) const;
58  size_t GetULCalSymbol(size_t location) const;
59 
60  size_t GetBeaconSymbol(size_t location) const;
61  inline size_t GetBeaconSymbolLast() const {
62  return ((this->beacon_symbols_.empty()) ? SIZE_MAX
63  : this->beacon_symbols_.back());
64  }
65 
66  bool IsRecCalEnabled() const;
67  size_t NumDataSyms() const;
68 
69  /* Accessors */
70  inline const std::string& FrameIdentifier() const {
71  return frame_identifier_;
72  }
73  inline size_t ClientUlPilotSymbols() const {
75  }
76  inline size_t ClientDlPilotSymbols() const {
78  }
79 
80  inline size_t NumUlDataSyms() const {
81  return this->NumULSyms() - this->ClientUlPilotSymbols();
82  }
83  inline size_t NumDlDataSyms() const {
84  return this->NumDLSyms() - this->ClientDlPilotSymbols();
85  }
86 
87  private:
88  std::string frame_identifier_;
89 
90  std::vector<size_t> beacon_symbols_;
91  std::vector<size_t> pilot_symbols_;
92  std::vector<size_t> ul_symbols_;
93  std::vector<size_t> ul_cal_symbols_;
94  std::vector<size_t> dl_symbols_;
95  std::vector<size_t> dl_cal_symbols_;
96 
101 
102  /* Helper function */
103  static size_t GetSymbolIdx(const std::vector<size_t>& search_vector,
104  size_t symbol_number);
105 }; /* class FrameStats */
106 
107 #endif /* FRAMESTATS_H_ */
FrameStats::NumPilotSyms
size_t NumPilotSyms() const
Definition: framestats.cc:91
FrameStats::GetBeaconSymbolLast
size_t GetBeaconSymbolLast() const
Definition: framestats.h:61
FrameStats::GetDLDataSymbol
size_t GetDLDataSymbol(size_t location) const
Definition: framestats.h:34
FrameStats::GetDLSymbolIdx
size_t GetDLSymbolIdx(size_t symbol_number) const
Definition: framestats.cc:152
FrameStats::NumDLCalSyms
size_t NumDLCalSyms() const
Definition: framestats.cc:79
FrameStats::FrameIdentifier
const std::string & FrameIdentifier() const
Definition: framestats.h:70
FrameStats::IsRecCalEnabled
bool IsRecCalEnabled() const
Definition: framestats.cc:97
FrameStats::dl_symbols_
std::vector< size_t > dl_symbols_
Definition: framestats.h:94
FrameStats::GetDLCalSymbolIdx
size_t GetDLCalSymbolIdx(size_t symbol_number) const
Definition: framestats.cc:164
FrameStats::GetULCalSymbol
size_t GetULCalSymbol(size_t location) const
Definition: framestats.cc:118
FrameStats::ul_cal_symbols_
std::vector< size_t > ul_cal_symbols_
Definition: framestats.h:93
FrameStats::NumBeaconSyms
size_t NumBeaconSyms() const
Definition: framestats.cc:87
FrameStats::GetPilotSymbol
size_t GetPilotSymbol(size_t location) const
Definition: framestats.cc:122
framestats.h
Class defination for frame tracking.
FrameStats::client_ul_pilot_symbols_
size_t client_ul_pilot_symbols_
Definition: framestats.h:97
FrameStats::client_ul_data_symbols_
size_t client_ul_data_symbols_
Definition: framestats.h:99
FrameStats::beacon_symbols_
std::vector< size_t > beacon_symbols_
Definition: framestats.h:90
FrameStats::GetULSymbolIdx
size_t GetULSymbolIdx(size_t symbol_number) const
Definition: framestats.cc:156
FrameStats::GetSymbolIdx
static size_t GetSymbolIdx(const std::vector< size_t > &search_vector, size_t symbol_number)
Definition: framestats.cc:130
AGORA_LOG_ERROR
#define AGORA_LOG_ERROR(...)
Definition: logger.h:39
FrameStats::client_dl_pilot_symbols_
size_t client_dl_pilot_symbols_
Definition: framestats.h:98
FrameStats::dl_cal_symbols_
std::vector< size_t > dl_cal_symbols_
Definition: framestats.h:95
FrameStats::SetClientPilotSyms
void SetClientPilotSyms(size_t ul, size_t dl)
Definition: framestats.cc:70
FrameStats::ClientUlPilotSymbols
size_t ClientUlPilotSymbols() const
Definition: framestats.h:73
FrameStats::GetDLCalSymbol
size_t GetDLCalSymbol(size_t location) const
Definition: framestats.cc:110
i
for i
Definition: generate_data.m:107
FrameStats::NumDlDataSyms
size_t NumDlDataSyms() const
Definition: framestats.h:83
FrameStats::FrameStats
FrameStats(std::string new_frame_id)
Definition: framestats.cc:16
FrameStats::ul_symbols_
std::vector< size_t > ul_symbols_
Definition: framestats.h:92
start
end start
Definition: inspect_agora_results.m:95
FrameStats::pilot_symbols_
std::vector< size_t > pilot_symbols_
Definition: framestats.h:91
FrameStats::GetDLSymbol
size_t GetDLSymbol(size_t location) const
Definition: framestats.cc:106
FrameStats::NumULCalSyms
size_t NumULCalSyms() const
Definition: framestats.cc:81
FrameStats::ClientDlPilotSymbols
size_t ClientDlPilotSymbols() const
Definition: framestats.h:76
FrameStats::NumDLSyms
size_t NumDLSyms() const
Definition: framestats.cc:83
FrameStats::GetPilotSymbolIdx
size_t GetPilotSymbolIdx(size_t symbol_number) const
Definition: framestats.cc:160
FrameStats::GetBeaconSymbolIdx
size_t GetBeaconSymbolIdx(size_t symbol_number) const
Definition: framestats.cc:148
FrameStats::client_dl_data_symbols_
size_t client_dl_data_symbols_
Definition: framestats.h:100
FrameStats::NumULSyms
size_t NumULSyms() const
Definition: framestats.cc:85
FrameStats::GetULDataSymbol
size_t GetULDataSymbol(size_t location) const
Definition: framestats.h:44
FrameStats::GetDLSymbolLast
size_t GetDLSymbolLast() const
Definition: framestats.h:37
std
Definition: json.hpp:5213
FrameStats::NumDataSyms
size_t NumDataSyms() const
Definition: framestats.cc:101
FrameStats::GetULSymbolLast
size_t GetULSymbolLast() const
Definition: framestats.h:47
FrameStats::NumUlDataSyms
size_t NumUlDataSyms() const
Definition: framestats.h:80
FrameStats::GetBeaconSymbol
size_t GetBeaconSymbol(size_t location) const
Definition: framestats.cc:126
FrameStats::GetULSymbol
size_t GetULSymbol(size_t location) const
Definition: framestats.cc:114
FrameStats
Definition: framestats.h:16
FrameStats::NumTotalSyms
size_t NumTotalSyms() const
Definition: framestats.cc:93
FrameStats::frame_identifier_
std::string frame_identifier_
Definition: framestats.h:88