5G-MAG Reference Tools - MBMS Modem
|
Frame processor for MBSFN subframes. More...
#include <MbsfnFrameProcessor.h>
Public Member Functions | |
MbsfnFrameProcessor (const libconfig::Config &cfg, srsran::rlc &rlc, Phy &phy, srslog::basic_logger &log_h, RestHandler &rest, unsigned rx_channels) | |
Default constructor. More... | |
virtual | ~MbsfnFrameProcessor () |
Default destructor. More... | |
bool | init () |
Initialize signal- and softbuffers, init all underlying components. More... | |
int | 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, and lock this processor. More... | |
uint32_t | rx_buffer_size () |
Size of the signal buffer. More... | |
void | configure_mbsfn (uint8_t area_id, srsran_scs_t subcarrier_spacing) |
Set MBSFN parameters: area ID and subcarrier spacing. More... | |
bool | mbsfn_configured () |
Returns tru if MBSFN params have already been configured. More... | |
void | unlock () |
Unlock the processor. More... | |
void | lock () |
Lock the processor. More... | |
const std::vector< uint8_t > | mch_data () const |
Get the constellation diagram data (I/Q data of the subcarriers after CE) More... | |
float | cinr_db () |
Get the CINR estimate (in dB) More... | |
Private Attributes | |
const libconfig::Config & | _cfg |
srsran::rlc & | _rlc |
Phy & | _phy |
srsran_cell_t | _cell |
cf_t * | _signal_buffer_rx [SRSRAN_MAX_PORTS] = {} |
uint32_t | _signal_buffer_max_samples = 0 |
uint8_t | _payload_buffer [_payload_buffer_sz] |
srsran_softbuffer_rx_t | _softbuffer |
srsran_ue_dl_t | _ue_dl = {} |
srsran_ue_dl_cfg_t | _ue_dl_cfg = {} |
srsran_dl_sf_cfg_t | _sf_cfg = {} |
srsran_pmch_cfg_t | _pmch_cfg = {} |
uint8_t | _area_id = 1 |
bool | _mbsfn_configured = false |
srsran::mch_pdu | mch_mac_msg |
std::mutex | _mutex |
RestHandler & | _rest |
unsigned | _rx_channels |
bool | _allow_rrc_sn_across_periods = false |
Static Private Attributes | |
static const uint32_t | _payload_buffer_sz = SRSRAN_MAX_BUFFER_SIZE_BYTES |
static std::mutex | _sched_stop_mutex |
static std::map< uint8_t, uint16_t > | _sched_stops |
static std::mutex | _rlc_mutex |
static int | _current_mcs |
Frame processor for MBSFN subframes.
Handles the complete processing chain for a CAS subframe: calls FFT and channel estimation, decodes PDSCH and passes received PDUs to RLC.
Definition at line 39 of file MbsfnFrameProcessor.h.
|
inline |
Default constructor.
cfg | Config singleton reference |
phy | PHY reference |
rlc | RLC reference |
log_h | srsLTE log handle for the MCH MAC msg decoder |
rest | RESTful API handler reference |
Definition at line 50 of file MbsfnFrameProcessor.h.
|
virtual |
Default destructor.
Definition at line 73 of file MbsfnFrameProcessor.cpp.
|
inline |
void MbsfnFrameProcessor::configure_mbsfn | ( | uint8_t | area_id, |
srsran_scs_t | subcarrier_spacing | ||
) |
Set MBSFN parameters: area ID and subcarrier spacing.
Definition at line 246 of file MbsfnFrameProcessor.cpp.
|
inline |
Get a handle of the signal buffer to store samples for processing in, and lock this processor.
The processor unlocks itself after (failed or successful) frame processing in process(). If process() is not called by the application after calling this method, it must unlock the processor itself by calling unlock()
Definition at line 96 of file MbsfnFrameProcessor.h.
auto MbsfnFrameProcessor::init | ( | ) |
Initialize signal- and softbuffers, init all underlying components.
Must be called once before the first call to process().
Definition at line 28 of file MbsfnFrameProcessor.cpp.
|
inline |
Lock the processor.
Used when getting the BLER values.
Definition at line 125 of file MbsfnFrameProcessor.h.
|
inline |
Returns tru if MBSFN params have already been configured.
Definition at line 111 of file MbsfnFrameProcessor.h.
auto MbsfnFrameProcessor::mch_data | ( | ) | const |
Get the constellation diagram data (I/Q data of the subcarriers after CE)
Definition at line 256 of file MbsfnFrameProcessor.cpp.
auto MbsfnFrameProcessor::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 83 of file MbsfnFrameProcessor.cpp.
|
inline |
void MbsfnFrameProcessor::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 78 of file MbsfnFrameProcessor.cpp.
|
inline |
Unlock the processor.
Definition at line 118 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 166 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 156 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 142 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 138 of file MbsfnFrameProcessor.h.
|
staticprivate |
Definition at line 171 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 157 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 160 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 148 of file MbsfnFrameProcessor.h.
|
staticprivate |
Definition at line 147 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 140 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 154 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 162 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 139 of file MbsfnFrameProcessor.h.
|
staticprivate |
Definition at line 170 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 164 of file MbsfnFrameProcessor.h.
|
staticprivate |
Definition at line 167 of file MbsfnFrameProcessor.h.
|
staticprivate |
Definition at line 168 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 153 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 145 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 144 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 149 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 151 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 152 of file MbsfnFrameProcessor.h.
|
private |
Definition at line 159 of file MbsfnFrameProcessor.h.