5G-MAG Reference Tools - MBMS Modem
|
Frame processor for CAS subframes. More...
#include <CasFrameProcessor.h>
Public Member Functions | |
CasFrameProcessor (const libconfig::Config &cfg, Phy &phy, srsran::rlc &rlc, RestHandler &rest, unsigned rx_channels) | |
Default constructor. More... | |
virtual | ~CasFrameProcessor () |
Default destructor. More... | |
bool | init () |
Initialize signal- and softbuffers, init all underlying components. More... | |
bool | process (uint32_t tti) |
Process the sample data in the signal buffer. More... | |
void | set_cell (srsran_cell_t cell) |
Set the parameters for the cell (Nof PRB, etc). More... | |
cf_t ** | get_rx_buffer_and_lock () |
Get a handle of the signal buffer to store samples for processing in. More... | |
uint32_t | rx_buffer_size () |
Size of the signal buffer. More... | |
void | unlock () |
Unlock the processor. More... | |
void | lock () |
std::vector< uint8_t > | ce_values () |
Get the CE values (time domain) for displaying the spectrum of the received signal. More... | |
std::vector< uint8_t > | pdsch_data () |
Get the constellation diagram data (I/Q data of the subcarriers after CE) More... | |
float | cinr_db () |
Get the CINR estimate (in dB) More... | |
void | set_filter_order (uint8_t filter_order) |
Set the filter order used to filter the channel estimates. More... | |
uint8_t | get_filter_order () |
void | set_filter_coef (float filter_coef) |
Set the coef for gauss filtering. More... | |
float | get_filter_coef () |
void | set_filter_type (srsran_chest_filter_t filter_type) |
Set the filter type for chest. More... | |
uint8_t | get_filter_type () |
void | set_noise_alg (srsran_chest_dl_noise_alg_t noise_alg) |
Set the noise estimation algorithm used in the channel estimation stage. More... | |
uint8_t | get_noise_alg () |
void | set_sync_error (bool enable) |
Enables the estimation os synchronization error. More... | |
bool | get_sync_error () |
void | set_estimator_alg (srsran_chest_dl_estimator_alg_t estimator_alg) |
Set the method to estimate the channel estimates of the complete resource grid from the reference symbols. More... | |
uint8_t | get_estimator_alg () |
void | set_cfo_estimate (bool enable) |
Enables the estimation of the carrier frequency offset. More... | |
bool | get_cfo_estimate () |
void | set_evm_meas (bool enable) |
Enables the computation of the error vector magnitude on the PDSCH. More... | |
bool | get_evm_meas () |
bool | is_started () |
Returns if the CasFrameProcessor is started or not. More... | |
Private Attributes | |
const libconfig::Config & | _cfg |
srsran::rlc & | _rlc |
Phy & | _phy |
RestHandler & | _rest |
cf_t * | _signal_buffer_rx [SRSRAN_MAX_PORTS] = {} |
uint32_t | _signal_buffer_max_samples = 0 |
srsran_softbuffer_rx_t | _softbuffer |
uint8_t * | _data [SRSRAN_MAX_CODEWORDS] |
srsran_ue_dl_t | _ue_dl = {} |
srsran_ue_dl_cfg_t | _ue_dl_cfg = {} |
srsran_dl_sf_cfg_t | _sf_cfg = {} |
srsran_cell_t | _cell |
std::mutex | _mutex |
unsigned | _rx_channels |
bool | _started = 0 |
Frame processor for CAS subframes.
Handles the complete processing chain for a CAS subframe: calls FFT and channel estimation, decodes PCFICH and PDCCH and gets DCI(s), decodes PDSCH and passes received PDUs to RLC.
Definition at line 37 of file CasFrameProcessor.h.
|
inline |
Default constructor.
cfg | Config singleton reference |
phy | PHY reference |
rlc | RLC reference |
rest | RESTful API handler reference |
Definition at line 47 of file CasFrameProcessor.h.
|
virtual |
auto CasFrameProcessor::ce_values | ( | ) |
Get the CE values (time domain) for displaying the spectrum of the received signal.
Definition at line 163 of file CasFrameProcessor.cpp.
|
inline |
|
inline |
Definition at line 161 of file CasFrameProcessor.h.
|
inline |
Definition at line 155 of file CasFrameProcessor.h.
|
inline |
Definition at line 167 of file CasFrameProcessor.h.
|
inline |
Definition at line 131 of file CasFrameProcessor.h.
|
inline |
Definition at line 125 of file CasFrameProcessor.h.
|
inline |
Definition at line 137 of file CasFrameProcessor.h.
|
inline |
Definition at line 143 of file CasFrameProcessor.h.
|
inline |
Get a handle of the signal buffer to store samples for processing in.
Definition at line 84 of file CasFrameProcessor.h.
|
inline |
Definition at line 149 of file CasFrameProcessor.h.
auto CasFrameProcessor::init | ( | ) |
Initialize signal- and softbuffers, init all underlying components.
Must be called once before the first call to process().
Definition at line 24 of file CasFrameProcessor.cpp.
|
inline |
Returns if the CasFrameProcessor is started or not.
Definition at line 172 of file CasFrameProcessor.h.
|
inline |
Definition at line 98 of file CasFrameProcessor.h.
auto CasFrameProcessor::pdsch_data | ( | ) |
Get the constellation diagram data (I/Q data of the subcarriers after CE)
Definition at line 173 of file CasFrameProcessor.cpp.
auto CasFrameProcessor::process | ( | uint32_t | tti | ) |
Process the sample data in the signal buffer.
Data must already be present in the buffer obtained through the handle returnd by rx_buffer()
tti | TTI of the subframe the data belongs to |
Definition at line 91 of file CasFrameProcessor.cpp.
|
inline |
void CasFrameProcessor::set_cell | ( | srsran_cell_t | cell | ) |
Set the parameters for the cell (Nof PRB, etc).
cell | The cell we're camping on |
Definition at line 84 of file CasFrameProcessor.cpp.
|
inline |
Enables the estimation of the carrier frequency offset.
Definition at line 160 of file CasFrameProcessor.h.
|
inline |
Set the method to estimate the channel estimates of the complete resource grid from the reference symbols.
Definition at line 154 of file CasFrameProcessor.h.
|
inline |
Enables the computation of the error vector magnitude on the PDSCH.
Definition at line 166 of file CasFrameProcessor.h.
|
inline |
|
inline |
Set the filter order used to filter the channel estimates.
Definition at line 124 of file CasFrameProcessor.h.
|
inline |
|
inline |
Set the noise estimation algorithm used in the channel estimation stage.
Definition at line 142 of file CasFrameProcessor.h.
|
inline |
Enables the estimation os synchronization error.
Definition at line 148 of file CasFrameProcessor.h.
|
inline |
Unlock the processor.
Definition at line 96 of file CasFrameProcessor.h.
|
private |
Definition at line 190 of file CasFrameProcessor.h.
|
private |
Definition at line 175 of file CasFrameProcessor.h.
|
private |
Definition at line 184 of file CasFrameProcessor.h.
|
private |
Definition at line 191 of file CasFrameProcessor.h.
|
private |
Definition at line 177 of file CasFrameProcessor.h.
|
private |
Definition at line 178 of file CasFrameProcessor.h.
|
private |
Definition at line 176 of file CasFrameProcessor.h.
|
private |
Definition at line 192 of file CasFrameProcessor.h.
|
private |
Definition at line 188 of file CasFrameProcessor.h.
|
private |
Definition at line 181 of file CasFrameProcessor.h.
|
private |
Definition at line 180 of file CasFrameProcessor.h.
|
private |
Definition at line 183 of file CasFrameProcessor.h.
|
private |
Definition at line 194 of file CasFrameProcessor.h.
|
private |
Definition at line 186 of file CasFrameProcessor.h.
|
private |
Definition at line 187 of file CasFrameProcessor.h.