RENEWLab
1.1.0
RENEW project
|
Go to the documentation of this file.
10 #ifndef DATARECEIVER_HEADER
11 #define DATARECEIVER_HEADER
13 #include <arpa/inet.h>
14 #include <netinet/in.h>
16 #include <sys/socket.h>
17 #include <sys/types.h>
30 #include "concurrentqueue.h"
36 : std::runtime_error(
"Receiver could not be setup correctly!") {}
38 : std::runtime_error(message) {}
52 Receiver(
Config* config, moodycamel::ConcurrentQueue<Event_data>* in_queue,
53 std::vector<moodycamel::ConcurrentQueue<Event_data>*> tx_queue,
54 std::vector<moodycamel::ProducerToken*> tx_ptoks,
55 std::vector<moodycamel::ConcurrentQueue<Event_data>*> cl_tx_queue,
56 std::vector<moodycamel::ProducerToken*> cl_tx_ptoks);
62 unsigned in_core_id = 0);
66 unsigned in_core_id = 0);
70 void baseTxBeacon(
int radio_id,
int cell,
int frame_id,
long long base_time);
71 int baseTxData(
int radio_id,
int cell,
int frame_id,
long long base_time);
73 int buff_size,
int offset = 0);
78 size_t sync_num_samps);
81 int clientTxData(
int tid,
int frame_id,
long long base_time);
91 std::vector<moodycamel::ConcurrentQueue<Event_data>*>
tx_queue_;
93 std::vector<moodycamel::ConcurrentQueue<Event_data>*>
cl_tx_queue_;
int syncSearch(std::vector< std::complex< int16_t >> sync_buff, size_t sync_num_samps)
Definition: receiver.cc:762
end offset
Definition: rl_ofdm_downlink_miso.m:309
SampleBuffer * cl_tx_buffer_
Definition: receiver.h:97
void clientTxRx(int tid)
Definition: receiver.cc:594
std::vector< void * > zeros
Definition: receiver.h:101
std::vector< void * > pilotbuffA
Definition: receiver.h:99
std::vector< void * > pilotbuffB
Definition: receiver.h:100
static void * clientTxRx_launch(void *in_context)
Definition: receiver.cc:580
void notifyPacket(NodeType node_type, int frame_id, int slot_id, int ant_id, int buff_size, int offset=0)
Definition: receiver.cc:279
~Receiver()
Definition: receiver.cc:79
std::vector< pthread_t > startRecvThreads(SampleBuffer *rx_buffer, size_t n_rx_threads, SampleBuffer *tx_buffer, unsigned in_core_id=0)
Definition: receiver.cc:151
std::vector< moodycamel::ProducerToken * > cl_tx_ptoks_
Definition: receiver.h:94
void clientSyncTxRx(int tid, int core_id, SampleBuffer *rx_buffer)
Definition: receiver.cc:780
Definition: receiver.h:41
moodycamel::ConcurrentQueue< Event_data > * message_queue_
Definition: receiver.h:90
size_t txTimeDelta
Definition: receiver.h:102
std::vector< moodycamel::ConcurrentQueue< Event_data > * > tx_queue_
Definition: receiver.h:91
std::vector< pthread_t > startClientThreads(SampleBuffer *rx_buffer, SampleBuffer *tx_buffer, unsigned in_core_id=0)
Definition: receiver.cc:120
void clientTxPilots(size_t user_id, long long base_time)
Definition: receiver.cc:686
int baseTxData(int radio_id, int cell, int frame_id, long long base_time)
Definition: receiver.cc:225
ClientRadioSet * clientRadioSet_
Definition: receiver.h:85
void go()
Definition: receiver.cc:187
void initBuffers()
Definition: receiver.cc:98
void baseTxBeacon(int radio_id, int cell, int frame_id, long long base_time)
Definition: receiver.cc:193
Definition: receiver.h:33
NodeType
Definition: macros.h:44
size_t tid
Definition: receiver.h:48
void completeRecvThreads(const std::vector< pthread_t > &recv_thread)
Definition: receiver.cc:180
void loopRecv(int tid, int core_id, SampleBuffer *rx_buffer)
Definition: receiver.cc:307
size_t core_id
Definition: receiver.h:47
size_t txFrameDelta
Definition: receiver.h:103
ReceiverException()
Definition: receiver.h:35
SampleBuffer * buffer
Definition: receiver.h:46
ReceiverException(const std::string &message)
Definition: receiver.h:37
Maybe you need to transpose bits_matrix before reshaping it to a vector
Definition: syms2bits.m:62
SampleBuffer * bs_tx_buffer_
Definition: receiver.h:98
Definition: BaseRadioSet.h:16
Definition: receiver.h:44
size_t thread_num_
Definition: receiver.h:88
Config * config_
Definition: receiver.h:84
Definition: ClientRadioSet.h:12
static void * loopRecv_launch(void *in_context)
Definition: receiver.cc:296
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)
Definition: receiver.cc:27
BaseRadioSet * base_radio_set_
Definition: receiver.h:86
std::vector< moodycamel::ProducerToken * > tx_ptoks_
Definition: receiver.h:92
int clientTxData(int tid, int frame_id, long long base_time)
Definition: receiver.cc:714
Receiver * ptr
Definition: receiver.h:45
std::vector< moodycamel::ConcurrentQueue< Event_data > * > cl_tx_queue_
Definition: receiver.h:93