RENEWLab  1.1.0
RENEW project
config.h
Go to the documentation of this file.
1 /*
2  Copyright (c) 2018-2021, Rice University
3  RENEW OPEN SOURCE LICENSE: http://renew-wireless.org/license
4  Author(s): Rahman Doost-Mohamamdy: doost@rice.edu
5 
6 ---------------------------------------------------------------------
7  Reads Configuration Parameters from file
8 ---------------------------------------------------------------------
9 */
10 
11 #ifndef CONFIG_HEADER
12 #define CONFIG_HEADER
13 
14 #include <complex.h>
15 
16 #include <algorithm>
17 #include <atomic>
18 #include <vector>
19 
20 class Config {
21  public:
22  Config(const std::string&, const std::string&, const bool, const bool);
23  ~Config();
24 
25  //Accessors
26  inline bool bs_present(void) const { return this->bs_present_; }
27  inline bool client_present(void) const { return this->client_present_; }
28  inline size_t num_bs_sdrs_all(void) const { return this->num_bs_sdrs_all_; }
29  inline size_t num_bs_antennas_all(void) const {
30  return this->num_bs_antennas_all_;
31  }
32  inline size_t num_cl_sdrs(void) const { return this->num_cl_sdrs_; }
33  inline size_t core_alloc(void) const { return this->core_alloc_; }
34  inline int slot_samp_size(void) const { return this->slot_samp_size_; }
35  inline size_t samps_per_slot(void) const { return this->samps_per_slot_; }
36  inline size_t slot_per_frame(void) const { return this->slot_per_frame_; }
37  inline size_t symbol_per_slot(void) const { return this->symbol_per_slot_; }
38  inline size_t samps_per_frame(void) const {
39  return this->samps_per_slot_ * this->slot_per_frame_;
40  }
41  inline bool ul_data_slot_present(void) const {
42  return this->ul_data_slot_present_;
43  }
44  inline bool dl_data_slot_present(void) const {
45  return this->dl_data_slot_present_;
46  }
47  inline size_t num_cells(void) const { return this->num_cells_; }
48  inline size_t guard_mult(void) const { return this->guard_mult_; }
49  inline bool bs_hw_framer(void) const { return this->bs_hw_framer_; }
50  inline bool hw_framer(void) const { return this->hw_framer_; }
51  inline int prefix(void) const { return this->prefix_; }
52  inline int postfix(void) const { return this->postfix_; }
53  inline int beacon_size(void) const { return this->beacon_size_; }
54  inline double bw_filter(void) const { return this->bw_filter_; }
55  inline double freq(void) const { return this->freq_; }
56  inline double nco(void) const { return this->nco_; }
57  inline double radio_rf_freq(void) const { return this->radio_rf_freq_; }
58  inline bool single_gain(void) const { return this->single_gain_; }
59  inline bool cl_agc_en(void) const { return this->cl_agc_en_; }
60  inline int cl_agc_gain_init(void) const { return this->cl_agc_gain_init_; }
61  inline bool imbalance_cal_en(void) const { return this->imbalance_cal_en_; }
62  inline bool sample_cal_en(void) const { return this->sample_cal_en_; }
63  inline size_t max_frame(void) const { return this->max_frame_; }
64  inline size_t ul_data_frame_num(void) const {
65  return this->ul_data_frame_num_;
66  }
67  inline size_t dl_data_frame_num(void) const {
68  return this->dl_data_frame_num_;
69  }
70  inline bool beam_sweep(void) const { return this->beam_sweep_; }
71  inline size_t beacon_channel(void) const { return this->beacon_ch_; }
72  inline size_t beacon_ant(void) const { return this->beacon_ant_; }
73  inline size_t beacon_radio(void) const { return this->beacon_radio_; }
74  inline size_t num_cl_antennas(void) const { return this->num_cl_antennas_; }
75  inline size_t fft_size(void) const { return this->fft_size_; }
76  inline size_t cp_size(void) const { return this->cp_size_; }
77  inline size_t symbol_data_subcarrier_num(void) const {
78  return this->symbol_data_subcarrier_num_;
79  }
80  inline size_t pilot_slot_per_frame(void) const {
81  return this->pilot_slot_per_frame_;
82  }
83  inline size_t noise_slot_per_frame(void) const {
84  return this->noise_slot_per_frame_;
85  }
86  inline size_t ul_slot_per_frame(void) const {
87  return this->ul_slot_per_frame_;
88  }
89  inline size_t dl_slot_per_frame(void) const {
90  return this->dl_slot_per_frame_;
91  }
92  inline const std::vector<std::vector<size_t>>& dl_slots(void) const {
93  return this->dl_slots_;
94  }
95  inline double rate(void) const { return this->rate_; }
96  inline int tx_advance(size_t id) const { return this->tx_advance_.at(id); }
97  inline size_t cl_sdr_ch(void) const { return this->cl_sdr_ch_; }
98  inline size_t bs_sdr_ch(void) const { return this->bs_sdr_ch_; }
99 
100  inline bool running(void) const { return this->running_.load(); }
101  inline void running(bool value) { this->running_ = value; }
102 
103  inline const std::string& frame_mode(void) const { return this->frame_mode_; }
104  inline const std::string& bs_channel(void) const { return this->bs_channel_; }
105  inline const std::string& trace_file(void) const { return this->trace_file_; }
106  inline const std::string& cl_channel(void) const { return this->cl_channel_; }
107  inline const std::string& beacon_seq(void) const { return this->beacon_seq_; }
108  inline const std::string& pilot_seq(void) const { return this->pilot_seq_; }
109  inline const std::string& data_mod(void) const { return this->data_mod_; }
110  inline const std::string& cl_data_mod(void) const {
111  return this->cl_data_mod_;
112  }
113 
114  inline const std::vector<size_t>& n_bs_sdrs_agg(void) const {
115  return this->n_bs_sdrs_agg_;
116  }
117  inline bool internal_measurement(void) const {
118  return this->internal_measurement_;
119  }
120  inline bool ref_node_enable(void) const { return this->ref_node_enable_; }
121  inline size_t cal_ref_sdr_id(void) const { return this->cal_ref_sdr_id_; }
122  inline const std::vector<std::vector<std::string>>& calib_frames(void) const {
123  return this->calib_frames_;
124  }
125 
126  //TODO split the following (4) in accessor and setter
127  inline std::vector<std::complex<int16_t>>& beacon_ci16(void) {
128  return this->beacon_ci16_;
129  }
130  inline std::vector<std::complex<int16_t>>& neg_beacon_ci16(void) {
131  return this->neg_beacon_ci16_;
132  }
133  inline std::vector<std::vector<std::complex<float>>>& tx_data(void) {
134  return this->tx_data_;
135  };
136  inline std::vector<std::complex<int16_t>>& pilot_ci16(void) {
137  return this->pilot_ci16_;
138  }
139  inline std::vector<std::complex<float>>& pilot_cf32(void) {
140  return this->pilot_cf32_;
141  }
142  inline std::vector<size_t>& n_bs_sdrs(void) { return this->n_bs_sdrs_; }
143 
144  inline const std::vector<std::string>& cl_frames(void) const {
145  return this->cl_frames_;
146  }
147  inline const std::vector<std::vector<size_t>>& cl_pilot_slots(void) const {
148  return this->cl_pilot_slots_;
149  }
150  inline const std::vector<std::vector<size_t>>& cl_ul_slots(void) const {
151  return this->cl_ul_slots_;
152  }
153  inline const std::vector<std::vector<size_t>>& cl_dl_slots(void) const {
154  return this->cl_dl_slots_;
155  }
156  inline const std::vector<std::string>& cl_sdr_ids(void) const {
157  return this->cl_sdr_ids_;
158  }
159  inline const std::vector<std::string>& ul_tx_fd_data_files(void) const {
160  return this->ul_tx_fd_data_files_;
161  }
162  inline const std::vector<std::string>& ul_tx_td_data_files(void) const {
163  return this->ul_tx_td_data_files_;
164  }
165  inline const std::vector<std::string>& dl_tx_fd_data_files(void) const {
166  return this->dl_tx_fd_data_files_;
167  }
168  inline const std::vector<std::string>& dl_tx_td_data_files(void) const {
169  return this->dl_tx_td_data_files_;
170  }
171 
172  inline const std::vector<size_t>& data_ind(void) const {
173  return this->data_ind_;
174  }
175  inline const std::vector<uint32_t>& coeffs(void) const {
176  return this->coeffs_;
177  }
178  inline const std::vector<uint32_t>& pilot(void) const { return this->pilot_; }
179  inline const std::vector<std::vector<double>>& cl_txgain_vec(void) const {
180  return this->cl_txgain_vec_;
181  }
182  inline const std::vector<std::vector<double>>& cl_rxgain_vec(void) const {
183  return this->cl_rxgain_vec_;
184  }
185  inline const std::vector<uint32_t>& beacon(void) const {
186  return this->beacon_;
187  }
188 
189  inline std::vector<std::vector<float>>& pilot_sym_t(void) {
190  return this->pilot_sym_t_;
191  };
192  inline std::vector<std::vector<float>>& pilot_sym_f(void) {
193  return this->pilot_sym_f_;
194  };
195  inline std::vector<std::complex<float>>& pilot_sc(void) {
196  return this->pilot_sc_;
197  };
198  inline std::vector<size_t>& pilot_sc_ind(void) {
199  return this->pilot_sc_ind_;
200  };
201 
202  inline const std::vector<std::string>& frames(void) const {
203  return this->frames_;
204  }
205 
206  inline const std::vector<std::vector<std::string>>& bs_sdr_ids(void) const {
207  return this->bs_sdr_ids_;
208  }
209  inline const std::vector<std::complex<float>>& gold_cf32(void) const {
210  return this->gold_cf32_;
211  }
212 
213  inline size_t cl_rx_thread_num(void) const { return this->cl_rx_thread_num_; }
214  inline size_t bs_rx_thread_num(void) const { return this->bs_rx_thread_num_; }
215  inline size_t recorder_thread_num(void) const {
216  return this->recorder_thread_num_;
217  }
218  inline size_t reader_thread_num(void) const {
219  return this->reader_thread_num_;
220  }
221 
222  inline const std::vector<std::string>& hub_ids(void) const {
223  return this->hub_ids_;
224  }
225 
226  inline const std::vector<std::string>& calib_ids(void) const {
227  return this->calib_ids_;
228  }
229 
230  inline const std::vector<double>& tx_gain(void) const {
231  return this->tx_gain_;
232  }
233  inline const std::vector<double>& rx_gain(void) const {
234  return this->rx_gain_;
235  }
236  inline const std::vector<double>& cal_tx_gain(void) const {
237  return this->cal_tx_gain_;
238  }
239 
240  inline std::vector<std::vector<std::complex<int16_t>>>& txdata_time_dom(
241  void) {
242  return this->txdata_time_dom_;
243  }
244  inline const std::vector<std::vector<std::complex<float>>>& txdata_freq_dom(
245  void) const {
246  return this->txdata_freq_dom_;
247  }
248 
249  inline std::vector<std::vector<std::complex<int16_t>>>& dl_txdata_time_dom(
250  void) {
251  return this->dl_txdata_time_dom_;
252  }
253  inline const std::vector<std::vector<std::complex<float>>>&
254  dl_txdata_freq_dom(void) const {
255  return this->dl_txdata_freq_dom_;
256  }
257 
258  inline size_t getPacketDataLength() const {
259  return (2 * this->samps_per_slot_ * sizeof(short));
260  }
261 
263  inline double getFrameDurationSec() const {
264  return ((this->symbol_per_slot_ * this->samps_per_slot_) / this->rate_);
265  }
266 
267  size_t getNumAntennas();
268  size_t getMaxNumAntennas();
269  size_t getNumBsSdrs();
270  size_t getTotNumAntennas();
271  size_t getNumRecordedSdrs();
272  int getClientId(int, int);
273  int getNoiseSlotIndex(int, int);
274  int getUlSlotIndex(int, int);
275  int getDlSlotIndex(int, int);
276  bool isPilot(int, int);
277  bool isNoise(int, int);
278  bool isUlData(int, int);
279  bool isDlData(int, int);
280  unsigned getCoreCount();
281  void loadULData(const std::string&);
282  void loadDLData(const std::string&);
283 
284  private:
287 
288  // common features
289  double freq_;
290  double nco_; // baseband frequency controlled by NCO
291  double rate_;
292  double
293  radio_rf_freq_; // RF frequency set frame_modeon the radio after NCO adjustments
294  double bw_filter_;
295  size_t fft_size_;
296  size_t cp_size_;
302  size_t prefix_;
303  size_t postfix_;
308  size_t dl_slot_per_frame_; // No accessor
309  float tx_scale_; // No accessor
310  std::string pilot_seq_;
311  std::string beacon_seq_;
314  std::string data_mod_;
315  std::string cl_data_mod_;
316 
317  // BS features
318  size_t num_cells_;
319  size_t guard_mult_;
320  std::vector<std::string> bs_sdr_file_; // No accessor
321  std::string hub_file_; // No accessor
322  std::string ref_sdr;
323  size_t bs_sdr_ch_;
324  std::vector<std::vector<std::string>> bs_sdr_ids_;
325  std::vector<std::string> hub_ids_;
326  std::vector<std::string> calib_ids_;
327  std::vector<std::complex<float>> gold_cf32_;
328  std::vector<uint32_t> beacon_;
329  std::vector<std::complex<int16_t>> beacon_ci16_;
330  std::vector<std::complex<int16_t>> neg_beacon_ci16_;
332  size_t beacon_ant_;
334  size_t beacon_ch_;
336  std::vector<size_t> n_bs_sdrs_;
337  std::vector<size_t> n_bs_antennas_; //No accessor
338  std::vector<size_t> n_bs_sdrs_agg_;
341  std::string bs_channel_;
342  std::vector<std::string> frames_;
343  std::string frame_mode_;
346  size_t max_frame_;
349  std::vector<std::vector<size_t>>
350  pilot_slots_; // Accessed through getClientId
351  std::vector<std::vector<size_t>> noise_slots_;
352  std::vector<std::vector<size_t>>
353  ul_slots_; // Accessed through getUlSFIndex()
354  std::vector<std::vector<size_t>> dl_slots_;
356  std::vector<double> tx_gain_;
357  std::vector<double> rx_gain_;
358  std::vector<double> cal_tx_gain_;
361  std::string trace_file_;
362  std::vector<std::vector<std::string>> calib_frames_;
366 
367  // Clients features
368  std::vector<std::string> cl_sdr_ids_;
370  size_t num_cl_sdrs_;
371  size_t cl_sdr_ch_;
373  std::string cl_channel_;
376  std::vector<int> tx_advance_;
377  std::vector<size_t> data_ind_;
378  std::vector<uint32_t> coeffs_;
379  std::vector<std::complex<int16_t>> pilot_ci16_;
380  std::vector<std::complex<float>> pilot_cf32_;
381  std::vector<uint32_t> pilot_;
382  std::vector<std::complex<float>> pilot_sc_;
383  std::vector<size_t> pilot_sc_ind_;
384  std::vector<std::vector<float>> pilot_sym_t_;
385  std::vector<std::vector<float>> pilot_sym_f_;
386  std::vector<std::vector<std::complex<float>>> tx_data_;
387  std::vector<std::vector<std::complex<float>>> txdata_freq_dom_;
388  std::vector<std::vector<std::complex<int16_t>>> txdata_time_dom_;
389  std::vector<std::vector<std::complex<float>>> dl_txdata_freq_dom_;
390  std::vector<std::vector<std::complex<int16_t>>> dl_txdata_time_dom_;
391 
392  std::vector<std::string> cl_frames_;
393  std::vector<std::vector<size_t>> cl_pilot_slots_;
394  std::vector<std::vector<size_t>> cl_ul_slots_;
395  std::vector<std::vector<size_t>> cl_dl_slots_;
396 
397  std::vector<std::vector<double>> cl_txgain_vec_;
398  std::vector<std::vector<double>> cl_rxgain_vec_;
399  std::vector<std::string> ul_tx_td_data_files_;
400  std::vector<std::string> ul_tx_fd_data_files_;
401  std::vector<std::string> dl_tx_td_data_files_;
402  std::vector<std::string> dl_tx_fd_data_files_;
403 
404  std::atomic<bool> running_;
410 };
411 
412 #endif /* CONFIG_HEADER */
Config::reader_thread_num
size_t reader_thread_num(void) const
Definition: config.h:218
Config::beacon_seq
const std::string & beacon_seq(void) const
Definition: config.h:107
Config::n_bs_sdrs_agg_
std::vector< size_t > n_bs_sdrs_agg_
Definition: config.h:338
Config::bs_channel
const std::string & bs_channel(void) const
Definition: config.h:104
Config::cl_rx_thread_num_
size_t cl_rx_thread_num_
Definition: config.h:407
Config::beam_sweep_
bool beam_sweep_
Definition: config.h:335
Config::imbalance_cal_en
bool imbalance_cal_en(void) const
Definition: config.h:61
Config::num_cells_
size_t num_cells_
Definition: config.h:318
Config::isDlData
bool isDlData(int, int)
Definition: config.cc:896
Config::trace_file_
std::string trace_file_
Definition: config.h:361
Config::dl_data_slot_present
bool dl_data_slot_present(void) const
Definition: config.h:44
Config::ul_tx_td_data_files_
std::vector< std::string > ul_tx_td_data_files_
Definition: config.h:399
Config::nco
double nco(void) const
Definition: config.h:56
Config::slot_per_frame_
size_t slot_per_frame_
Definition: config.h:304
Config::cl_data_mod
const std::string & cl_data_mod(void) const
Definition: config.h:110
Config::pilot_sc
std::vector< std::complex< float > > & pilot_sc(void)
Definition: config.h:195
Config::cl_rxgain_vec_
std::vector< std::vector< double > > cl_rxgain_vec_
Definition: config.h:398
Config::hub_ids
const std::vector< std::string > & hub_ids(void) const
Definition: config.h:222
Config::sample_cal_en_
bool sample_cal_en_
Definition: config.h:359
Config::running_
std::atomic< bool > running_
Definition: config.h:404
Config::dl_slot_per_frame_
size_t dl_slot_per_frame_
Definition: config.h:308
Config::beacon_size
int beacon_size(void) const
Definition: config.h:53
Config::calib_frames
const std::vector< std::vector< std::string > > & calib_frames(void) const
Definition: config.h:122
Config::beacon_ch_
size_t beacon_ch_
Definition: config.h:334
Config::ul_slots_
std::vector< std::vector< size_t > > ul_slots_
Definition: config.h:353
Config::tx_advance_
std::vector< int > tx_advance_
Definition: config.h:376
Config::ul_slot_per_frame_
size_t ul_slot_per_frame_
Definition: config.h:307
Config::neg_beacon_ci16_
std::vector< std::complex< int16_t > > neg_beacon_ci16_
Definition: config.h:330
Config::tx_advance
int tx_advance(size_t id) const
Definition: config.h:96
Config::getPacketDataLength
size_t getPacketDataLength() const
Definition: config.h:258
Config::cl_dl_slots
const std::vector< std::vector< size_t > > & cl_dl_slots(void) const
Definition: config.h:153
Config::symbol_data_subcarrier_num_
size_t symbol_data_subcarrier_num_
Definition: config.h:298
Config::~Config
~Config()
Definition: config.cc:832
Config::rx_gain
const std::vector< double > & rx_gain(void) const
Definition: config.h:233
Config::samps_per_slot_
size_t samps_per_slot_
Definition: config.h:301
Config::getUlSlotIndex
int getUlSlotIndex(int, int)
Definition: config.cc:854
Config::bs_present_
bool bs_present_
Definition: config.h:285
value
Take index of maximum corr value[max_corr, m_idx]
Definition: iris_py.m:278
Config::fft_size
size_t fft_size(void) const
Definition: config.h:75
Config::getCoreCount
unsigned getCoreCount()
Definition: config.cc:904
Config::num_bs_antennas_all_
size_t num_bs_antennas_all_
Definition: config.h:340
Config::bw_filter
double bw_filter(void) const
Definition: config.h:54
Config::ul_data_frame_num_
size_t ul_data_frame_num_
Definition: config.h:347
Config::dl_slot_per_frame
size_t dl_slot_per_frame(void) const
Definition: config.h:89
Config::cl_ul_slots
const std::vector< std::vector< size_t > > & cl_ul_slots(void) const
Definition: config.h:150
Config::bw_filter_
double bw_filter_
Definition: config.h:294
Config::tx_scale_
float tx_scale_
Definition: config.h:309
Config::pilot_seq_
std::string pilot_seq_
Definition: config.h:310
Config::txdata_time_dom
std::vector< std::vector< std::complex< int16_t > > > & txdata_time_dom(void)
Definition: config.h:240
Config::num_bs_sdrs_all
size_t num_bs_sdrs_all(void) const
Definition: config.h:28
Config::beacon_seq_
std::string beacon_seq_
Definition: config.h:311
Config::cl_agc_en_
bool cl_agc_en_
Definition: config.h:374
Config::pilot_sym_t_
std::vector< std::vector< float > > pilot_sym_t_
Definition: config.h:384
Config::beacon_radio
size_t beacon_radio(void) const
Definition: config.h:73
Config::ul_tx_td_data_files
const std::vector< std::string > & ul_tx_td_data_files(void) const
Definition: config.h:162
Config::rate_
double rate_
Definition: config.h:291
Config::getNumBsSdrs
size_t getNumBsSdrs()
Definition: config.cc:793
Config::data_ind_
std::vector< size_t > data_ind_
Definition: config.h:377
Config::txdata_time_dom_
std::vector< std::vector< std::complex< int16_t > > > txdata_time_dom_
Definition: config.h:388
Config::bs_hw_framer_
bool bs_hw_framer_
Definition: config.h:344
Config::beacon_ant
size_t beacon_ant(void) const
Definition: config.h:72
Config::getNumAntennas
size_t getNumAntennas()
Definition: config.cc:763
Config::tx_data_
std::vector< std::vector< std::complex< float > > > tx_data_
Definition: config.h:386
Config::cl_agc_en
bool cl_agc_en(void) const
Definition: config.h:59
Config::num_cells
size_t num_cells(void) const
Definition: config.h:47
Config::recorder_thread_num_
size_t recorder_thread_num_
Definition: config.h:408
Config::single_gain_
bool single_gain_
Definition: config.h:355
Config::n_bs_sdrs_agg
const std::vector< size_t > & n_bs_sdrs_agg(void) const
Definition: config.h:114
Config::running
void running(bool value)
Definition: config.h:101
Config::running
bool running(void) const
Definition: config.h:100
Config::freq_
double freq_
Definition: config.h:289
Config::cal_tx_gain
const std::vector< double > & cal_tx_gain(void) const
Definition: config.h:236
Config::ul_data_frame_num
size_t ul_data_frame_num(void) const
Definition: config.h:64
Config::noise_slot_per_frame_
size_t noise_slot_per_frame_
Definition: config.h:306
Config::slot_samp_size_
size_t slot_samp_size_
Definition: config.h:300
Config::pilot_sym_t
std::vector< std::vector< float > > & pilot_sym_t(void)
Definition: config.h:189
Config::pilot_sc_
std::vector< std::complex< float > > pilot_sc_
Definition: config.h:382
Config::ofdm_symbol_size_
size_t ofdm_symbol_size_
Definition: config.h:297
Config::recorder_thread_num
size_t recorder_thread_num(void) const
Definition: config.h:215
Config::pilot
const std::vector< uint32_t > & pilot(void) const
Definition: config.h:178
Config::ref_node_enable
bool ref_node_enable(void) const
Definition: config.h:120
Config::isPilot
bool isPilot(int, int)
Definition: config.cc:872
Config::ul_data_slot_present_
bool ul_data_slot_present_
Definition: config.h:312
Config::dl_data_frame_num
size_t dl_data_frame_num(void) const
Definition: config.h:67
Config::cl_ul_slots_
std::vector< std::vector< size_t > > cl_ul_slots_
Definition: config.h:394
Config::beacon_radio_
size_t beacon_radio_
Definition: config.h:333
Config::dl_txdata_freq_dom
const std::vector< std::vector< std::complex< float > > > & dl_txdata_freq_dom(void) const
Definition: config.h:254
Config::coeffs
const std::vector< uint32_t > & coeffs(void) const
Definition: config.h:175
Config::cl_sdr_ch
size_t cl_sdr_ch(void) const
Definition: config.h:97
Config::cal_ref_sdr_id
size_t cal_ref_sdr_id(void) const
Definition: config.h:121
Config::getFrameDurationSec
double getFrameDurationSec() const
Return the frame duration in seconds.
Definition: config.h:263
Config::cl_txgain_vec_
std::vector< std::vector< double > > cl_txgain_vec_
Definition: config.h:397
Config::coeffs_
std::vector< uint32_t > coeffs_
Definition: config.h:378
Config::pilot_
std::vector< uint32_t > pilot_
Definition: config.h:381
Config::dl_slots
const std::vector< std::vector< size_t > > & dl_slots(void) const
Definition: config.h:92
Config::radio_rf_freq
double radio_rf_freq(void) const
Definition: config.h:57
Config::cl_rx_thread_num
size_t cl_rx_thread_num(void) const
Definition: config.h:213
Config::freq
double freq(void) const
Definition: config.h:55
Config::postfix_
size_t postfix_
Definition: config.h:303
Config::cl_pilot_slots
const std::vector< std::vector< size_t > > & cl_pilot_slots(void) const
Definition: config.h:147
Config::dl_tx_fd_data_files
const std::vector< std::string > & dl_tx_fd_data_files(void) const
Definition: config.h:165
Config::beacon
const std::vector< uint32_t > & beacon(void) const
Definition: config.h:185
Config::cl_rxgain_vec
const std::vector< std::vector< double > > & cl_rxgain_vec(void) const
Definition: config.h:182
Config::imbalance_cal_en_
bool imbalance_cal_en_
Definition: config.h:360
Config::pilot_sym_f
std::vector< std::vector< float > > & pilot_sym_f(void)
Definition: config.h:192
Config::Config
Config(const std::string &, const std::string &, const bool, const bool)
Definition: config.cc:25
Config::postfix
int postfix(void) const
Definition: config.h:52
Config::ul_tx_fd_data_files
const std::vector< std::string > & ul_tx_fd_data_files(void) const
Definition: config.h:159
Config::pilot_ci16_
std::vector< std::complex< int16_t > > pilot_ci16_
Definition: config.h:379
Config::guard_mult
size_t guard_mult(void) const
Definition: config.h:48
Config::pilot_slot_per_frame_
size_t pilot_slot_per_frame_
Definition: config.h:305
Config::core_alloc_
bool core_alloc_
Definition: config.h:405
Config::samps_per_slot
size_t samps_per_slot(void) const
Definition: config.h:35
Config::frames
const std::vector< std::string > & frames(void) const
Definition: config.h:202
Config::cl_sdr_ids
const std::vector< std::string > & cl_sdr_ids(void) const
Definition: config.h:156
Config::hub_ids_
std::vector< std::string > hub_ids_
Definition: config.h:325
Config::loadDLData
void loadDLData(const std::string &)
Definition: config.cc:688
Config::beacon_ci16_
std::vector< std::complex< int16_t > > beacon_ci16_
Definition: config.h:329
Config::max_frame
size_t max_frame(void) const
Definition: config.h:63
Config::pilot_ci16
std::vector< std::complex< int16_t > > & pilot_ci16(void)
Definition: config.h:136
Config::pilot_slot_per_frame
size_t pilot_slot_per_frame(void) const
Definition: config.h:80
Config::bs_sdr_file_
std::vector< std::string > bs_sdr_file_
Definition: config.h:320
Config::isUlData
bool isUlData(int, int)
Definition: config.cc:888
Config::ul_tx_fd_data_files_
std::vector< std::string > ul_tx_fd_data_files_
Definition: config.h:400
Config::beacon_size_
int beacon_size_
Definition: config.h:331
Config::getMaxNumAntennas
size_t getMaxNumAntennas()
Definition: config.cc:773
Config::pilot_slots_
std::vector< std::vector< size_t > > pilot_slots_
Definition: config.h:350
Config::nco_
double nco_
Definition: config.h:290
Config::reader_thread_num_
size_t reader_thread_num_
Definition: config.h:409
Config::isNoise
bool isNoise(int, int)
Definition: config.cc:880
Config::pilot_cf32_
std::vector< std::complex< float > > pilot_cf32_
Definition: config.h:380
Config::ul_data_slot_present
bool ul_data_slot_present(void) const
Definition: config.h:41
Config::pilot_sc_ind_
std::vector< size_t > pilot_sc_ind_
Definition: config.h:383
Config::dl_txdata_freq_dom_
std::vector< std::vector< std::complex< float > > > dl_txdata_freq_dom_
Definition: config.h:389
Config::num_cl_sdrs_
size_t num_cl_sdrs_
Definition: config.h:370
Config::num_cl_antennas
size_t num_cl_antennas(void) const
Definition: config.h:74
Config::max_tx_gain_ue_
size_t max_tx_gain_ue_
Definition: config.h:369
Config::sample_cal_en
bool sample_cal_en(void) const
Definition: config.h:62
Config::frames_
std::vector< std::string > frames_
Definition: config.h:342
Config::loadULData
void loadULData(const std::string &)
Definition: config.cc:613
Config::getNoiseSlotIndex
int getNoiseSlotIndex(int, int)
Definition: config.cc:845
Config::num_cl_antennas_
size_t num_cl_antennas_
Definition: config.h:372
Config::cl_agc_gain_init
int cl_agc_gain_init(void) const
Definition: config.h:60
Config::dl_tx_td_data_files_
std::vector< std::string > dl_tx_td_data_files_
Definition: config.h:401
Config::dl_slots_
std::vector< std::vector< size_t > > dl_slots_
Definition: config.h:354
Config::txdata_freq_dom
const std::vector< std::vector< std::complex< float > > > & txdata_freq_dom(void) const
Definition: config.h:244
Config::gold_cf32
const std::vector< std::complex< float > > & gold_cf32(void) const
Definition: config.h:209
Config::dl_tx_fd_data_files_
std::vector< std::string > dl_tx_fd_data_files_
Definition: config.h:402
Config::single_gain
bool single_gain(void) const
Definition: config.h:58
Config::cl_sdr_ch_
size_t cl_sdr_ch_
Definition: config.h:371
Config::internal_measurement
bool internal_measurement(void) const
Definition: config.h:117
Config::cal_tx_gain_
std::vector< double > cal_tx_gain_
Definition: config.h:358
Config::rx_gain_
std::vector< double > rx_gain_
Definition: config.h:357
Config::internal_measurement_
bool internal_measurement_
Definition: config.h:363
Config::cl_pilot_slots_
std::vector< std::vector< size_t > > cl_pilot_slots_
Definition: config.h:393
Config::calib_frames_
std::vector< std::vector< std::string > > calib_frames_
Definition: config.h:362
Config::symbol_data_subcarrier_num
size_t symbol_data_subcarrier_num(void) const
Definition: config.h:77
Config::beam_sweep
bool beam_sweep(void) const
Definition: config.h:70
Config::guard_mult_
size_t guard_mult_
Definition: config.h:319
Config::cl_dl_slots_
std::vector< std::vector< size_t > > cl_dl_slots_
Definition: config.h:395
Config::getTotNumAntennas
size_t getTotNumAntennas()
Definition: config.cc:807
Config
Definition: config.h:20
Config::dl_data_slot_present_
bool dl_data_slot_present_
Definition: config.h:313
Config::noise_slot_per_frame
size_t noise_slot_per_frame(void) const
Definition: config.h:83
Config::symbol_per_slot
size_t symbol_per_slot(void) const
Definition: config.h:37
Config::prefix
int prefix(void) const
Definition: config.h:51
Config::radio_rf_freq_
double radio_rf_freq_
Definition: config.h:293
Config::cp_size
size_t cp_size(void) const
Definition: config.h:76
Config::slot_per_frame
size_t slot_per_frame(void) const
Definition: config.h:36
Config::num_bs_antennas_all
size_t num_bs_antennas_all(void) const
Definition: config.h:29
Config::getClientId
int getClientId(int, int)
Definition: config.cc:834
Config::num_cl_sdrs
size_t num_cl_sdrs(void) const
Definition: config.h:32
Config::samps_per_frame
size_t samps_per_frame(void) const
Definition: config.h:38
Config::bs_present
bool bs_present(void) const
Definition: config.h:26
Config::bs_sdr_ch_
size_t bs_sdr_ch_
Definition: config.h:323
Config::beacon_ci16
std::vector< std::complex< int16_t > > & beacon_ci16(void)
Definition: config.h:127
Config::bs_rx_thread_num_
size_t bs_rx_thread_num_
Definition: config.h:406
Config::dl_txdata_time_dom_
std::vector< std::vector< std::complex< int16_t > > > dl_txdata_time_dom_
Definition: config.h:390
Config::noise_slots_
std::vector< std::vector< size_t > > noise_slots_
Definition: config.h:351
Config::rate
double rate(void) const
Definition: config.h:95
Config::slot_samp_size
int slot_samp_size(void) const
Definition: config.h:34
Config::cl_txgain_vec
const std::vector< std::vector< double > > & cl_txgain_vec(void) const
Definition: config.h:179
Config::pilot_sc_ind
std::vector< size_t > & pilot_sc_ind(void)
Definition: config.h:198
Config::symbol_per_slot_
size_t symbol_per_slot_
Definition: config.h:299
Config::cl_data_mod_
std::string cl_data_mod_
Definition: config.h:315
Config::tx_gain
const std::vector< double > & tx_gain(void) const
Definition: config.h:230
Config::num_bs_sdrs_all_
size_t num_bs_sdrs_all_
Definition: config.h:339
Config::beacon_channel
size_t beacon_channel(void) const
Definition: config.h:71
Config::bs_rx_thread_num
size_t bs_rx_thread_num(void) const
Definition: config.h:214
Config::ul_slot_per_frame
size_t ul_slot_per_frame(void) const
Definition: config.h:86
Config::cl_sdr_ids_
std::vector< std::string > cl_sdr_ids_
Definition: config.h:368
Config::gold_cf32_
std::vector< std::complex< float > > gold_cf32_
Definition: config.h:327
Config::ref_sdr
std::string ref_sdr
Definition: config.h:322
Config::dl_data_frame_num_
size_t dl_data_frame_num_
Definition: config.h:348
Config::data_ind
const std::vector< size_t > & data_ind(void) const
Definition: config.h:172
Config::client_present_
bool client_present_
Definition: config.h:286
Config::dl_txdata_time_dom
std::vector< std::vector< std::complex< int16_t > > > & dl_txdata_time_dom(void)
Definition: config.h:249
Config::neg_beacon_ci16
std::vector< std::complex< int16_t > > & neg_beacon_ci16(void)
Definition: config.h:130
Config::pilot_seq
const std::string & pilot_seq(void) const
Definition: config.h:108
Config::prefix_
size_t prefix_
Definition: config.h:302
Config::bs_sdr_ch
size_t bs_sdr_ch(void) const
Definition: config.h:98
Config::n_bs_antennas_
std::vector< size_t > n_bs_antennas_
Definition: config.h:337
Config::bs_hw_framer
bool bs_hw_framer(void) const
Definition: config.h:49
Config::cl_channel
const std::string & cl_channel(void) const
Definition: config.h:106
Config::fft_size_
size_t fft_size_
Definition: config.h:295
Config::data_mod
const std::string & data_mod(void) const
Definition: config.h:109
Config::txdata_freq_dom_
std::vector< std::vector< std::complex< float > > > txdata_freq_dom_
Definition: config.h:387
Config::tx_gain_
std::vector< double > tx_gain_
Definition: config.h:356
Config::cl_channel_
std::string cl_channel_
Definition: config.h:373
Config::tx_data
std::vector< std::vector< std::complex< float > > > & tx_data(void)
Definition: config.h:133
Config::max_frame_
size_t max_frame_
Definition: config.h:346
Config::data_mod_
std::string data_mod_
Definition: config.h:314
Config::pilot_cf32
std::vector< std::complex< float > > & pilot_cf32(void)
Definition: config.h:139
Config::bs_channel_
std::string bs_channel_
Definition: config.h:341
Config::calib_ids
const std::vector< std::string > & calib_ids(void) const
Definition: config.h:226
Config::frame_mode_
std::string frame_mode_
Definition: config.h:343
Config::beacon_ant_
size_t beacon_ant_
Definition: config.h:332
Config::core_alloc
size_t core_alloc(void) const
Definition: config.h:33
Config::bs_sdr_ids
const std::vector< std::vector< std::string > > & bs_sdr_ids(void) const
Definition: config.h:206
Config::hub_file_
std::string hub_file_
Definition: config.h:321
Config::pilot_sym_f_
std::vector< std::vector< float > > pilot_sym_f_
Definition: config.h:385
Config::getNumRecordedSdrs
size_t getNumRecordedSdrs()
Definition: config.cc:817
Config::cal_ref_sdr_id_
size_t cal_ref_sdr_id_
Definition: config.h:365
Config::cl_agc_gain_init_
int cl_agc_gain_init_
Definition: config.h:375
Config::bs_sdr_ids_
std::vector< std::vector< std::string > > bs_sdr_ids_
Definition: config.h:324
Config::n_bs_sdrs
std::vector< size_t > & n_bs_sdrs(void)
Definition: config.h:142
Config::frame_mode
const std::string & frame_mode(void) const
Definition: config.h:103
Config::hw_framer_
bool hw_framer_
Definition: config.h:345
Config::client_present
bool client_present(void) const
Definition: config.h:27
Config::n_bs_sdrs_
std::vector< size_t > n_bs_sdrs_
Definition: config.h:336
Config::trace_file
const std::string & trace_file(void) const
Definition: config.h:105
Config::dl_tx_td_data_files
const std::vector< std::string > & dl_tx_td_data_files(void) const
Definition: config.h:168
Config::cl_frames
const std::vector< std::string > & cl_frames(void) const
Definition: config.h:144
Config::calib_ids_
std::vector< std::string > calib_ids_
Definition: config.h:326
Config::getDlSlotIndex
int getDlSlotIndex(int, int)
Definition: config.cc:864
Config::cp_size_
size_t cp_size_
Definition: config.h:296
Config::ref_node_enable_
bool ref_node_enable_
Definition: config.h:364
Config::hw_framer
bool hw_framer(void) const
Definition: config.h:50
Config::cl_frames_
std::vector< std::string > cl_frames_
Definition: config.h:392
Config::beacon_
std::vector< uint32_t > beacon_
Definition: config.h:328