RENEWLab  1.1.0
RENEW project
Receiver Class Reference

#include <receiver.h>

Collaboration diagram for Receiver:

Classes

struct  ReceiverContext
 

Public Member Functions

 Receiver (Config *config, moodycamel::ConcurrentQueue< Event_data > *in_queue, std::vector< moodycamel::ConcurrentQueue< Event_data > * > tx_queue, std::vector< moodycamel::ProducerToken * > tx_ptoks, std::vector< moodycamel::ConcurrentQueue< Event_data > * > cl_tx_queue, std::vector< moodycamel::ProducerToken * > cl_tx_ptoks)
 
 ~Receiver ()
 
std::vector< pthread_t > startRecvThreads (SampleBuffer *rx_buffer, size_t n_rx_threads, SampleBuffer *tx_buffer, unsigned in_core_id=0)
 
void completeRecvThreads (const std::vector< pthread_t > &recv_thread)
 
std::vector< pthread_t > startClientThreads (SampleBuffer *rx_buffer, SampleBuffer *tx_buffer, unsigned in_core_id=0)
 
void go ()
 
void loopRecv (int tid, int core_id, SampleBuffer *rx_buffer)
 
void baseTxBeacon (int radio_id, int cell, int frame_id, long long base_time)
 
int baseTxData (int radio_id, int cell, int frame_id, long long base_time)
 
void notifyPacket (NodeType node_type, int frame_id, int slot_id, int ant_id, int buff_size, int offset=0)
 
void clientTxRx (int tid)
 
void clientSyncTxRx (int tid, int core_id, SampleBuffer *rx_buffer)
 
int syncSearch (std::vector< std::complex< int16_t >> sync_buff, size_t sync_num_samps)
 
void initBuffers ()
 
void clientTxPilots (size_t user_id, long long base_time)
 
int clientTxData (int tid, int frame_id, long long base_time)
 

Static Public Member Functions

static void * loopRecv_launch (void *in_context)
 
static void * clientTxRx_launch (void *in_context)
 

Private Attributes

Configconfig_
 
ClientRadioSetclientRadioSet_
 
BaseRadioSetbase_radio_set_
 
size_t thread_num_
 
moodycamel::ConcurrentQueue< Event_data > * message_queue_
 
std::vector< moodycamel::ConcurrentQueue< Event_data > * > tx_queue_
 
std::vector< moodycamel::ProducerToken * > tx_ptoks_
 
std::vector< moodycamel::ConcurrentQueue< Event_data > * > cl_tx_queue_
 
std::vector< moodycamel::ProducerToken * > cl_tx_ptoks_
 
SampleBuffercl_tx_buffer_
 
SampleBufferbs_tx_buffer_
 
std::vector< void * > pilotbuffA
 
std::vector< void * > pilotbuffB
 
std::vector< void * > zeros
 
size_t txTimeDelta
 
size_t txFrameDelta
 

Constructor & Destructor Documentation

◆ Receiver()

Receiver::Receiver ( Config config,
moodycamel::ConcurrentQueue< Event_data > *  in_queue,
std::vector< moodycamel::ConcurrentQueue< Event_data > * >  tx_queue,
std::vector< moodycamel::ProducerToken * >  tx_ptoks,
std::vector< moodycamel::ConcurrentQueue< Event_data > * >  cl_tx_queue,
std::vector< moodycamel::ProducerToken * >  cl_tx_ptoks 
)
Here is the call graph for this function:

◆ ~Receiver()

Receiver::~Receiver ( )
Here is the call graph for this function:

Member Function Documentation

◆ baseTxBeacon()

void Receiver::baseTxBeacon ( int  radio_id,
int  cell,
int  frame_id,
long long  base_time 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ baseTxData()

int Receiver::baseTxData ( int  radio_id,
int  cell,
int  frame_id,
long long  base_time 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ clientSyncTxRx()

void Receiver::clientSyncTxRx ( int  tid,
int  core_id,
SampleBuffer rx_buffer 
)
Here is the call graph for this function:

◆ clientTxData()

int Receiver::clientTxData ( int  tid,
int  frame_id,
long long  base_time 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ clientTxPilots()

void Receiver::clientTxPilots ( size_t  user_id,
long long  base_time 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ clientTxRx()

void Receiver::clientTxRx ( int  tid)
Here is the call graph for this function:

◆ clientTxRx_launch()

void * Receiver::clientTxRx_launch ( void *  in_context)
static
Here is the caller graph for this function:

◆ completeRecvThreads()

void Receiver::completeRecvThreads ( const std::vector< pthread_t > &  recv_thread)

◆ go()

void Receiver::go ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ initBuffers()

void Receiver::initBuffers ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ loopRecv()

void Receiver::loopRecv ( int  tid,
int  core_id,
SampleBuffer rx_buffer 
)
Here is the call graph for this function:

◆ loopRecv_launch()

void * Receiver::loopRecv_launch ( void *  in_context)
static
Here is the caller graph for this function:

◆ notifyPacket()

void Receiver::notifyPacket ( NodeType  node_type,
int  frame_id,
int  slot_id,
int  ant_id,
int  buff_size,
int  offset = 0 
)
Here is the caller graph for this function:

◆ startClientThreads()

std::vector< pthread_t > Receiver::startClientThreads ( SampleBuffer rx_buffer,
SampleBuffer tx_buffer,
unsigned  in_core_id = 0 
)
Here is the call graph for this function:

◆ startRecvThreads()

std::vector< pthread_t > Receiver::startRecvThreads ( SampleBuffer rx_buffer,
size_t  n_rx_threads,
SampleBuffer tx_buffer,
unsigned  in_core_id = 0 
)
Here is the call graph for this function:

◆ syncSearch()

int Receiver::syncSearch ( std::vector< std::complex< int16_t >>  sync_buff,
size_t  sync_num_samps 
)
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ base_radio_set_

BaseRadioSet* Receiver::base_radio_set_
private

◆ bs_tx_buffer_

SampleBuffer* Receiver::bs_tx_buffer_
private

◆ cl_tx_buffer_

SampleBuffer* Receiver::cl_tx_buffer_
private

◆ cl_tx_ptoks_

std::vector<moodycamel::ProducerToken*> Receiver::cl_tx_ptoks_
private

◆ cl_tx_queue_

std::vector<moodycamel::ConcurrentQueue<Event_data>*> Receiver::cl_tx_queue_
private

◆ clientRadioSet_

ClientRadioSet* Receiver::clientRadioSet_
private

◆ config_

Config* Receiver::config_
private

◆ message_queue_

moodycamel::ConcurrentQueue<Event_data>* Receiver::message_queue_
private

◆ pilotbuffA

std::vector<void*> Receiver::pilotbuffA
private

◆ pilotbuffB

std::vector<void*> Receiver::pilotbuffB
private

◆ thread_num_

size_t Receiver::thread_num_
private

◆ tx_ptoks_

std::vector<moodycamel::ProducerToken*> Receiver::tx_ptoks_
private

◆ tx_queue_

std::vector<moodycamel::ConcurrentQueue<Event_data>*> Receiver::tx_queue_
private

◆ txFrameDelta

size_t Receiver::txFrameDelta
private

◆ txTimeDelta

size_t Receiver::txTimeDelta
private

◆ zeros

std::vector<void*> Receiver::zeros
private

The documentation for this class was generated from the following files: