Agora
1.2.0
Agora project
|
Implementations of this class provide packet I/O for Agora. More...
#include <packet_txrx_client_radio.h>
Public Member Functions | |
PacketTxRxClientRadio (Config *const cfg, size_t core_offset, moodycamel::ConcurrentQueue< EventData > *event_notify_q, moodycamel::ConcurrentQueue< EventData > *tx_pending_q, moodycamel::ProducerToken **notify_producer_tokens, moodycamel::ProducerToken **tx_producer_tokens, Table< char > &rx_buffer, size_t packet_num_in_buffer, Table< size_t > &frame_start, char *tx_buffer) | |
~PacketTxRxClientRadio () final | |
bool | StartTxRx (Table< complex_float > &calib_dl_buffer, Table< complex_float > &calib_ul_buffer) final |
Start the network I/O threads. More... | |
Public Member Functions inherited from PacketTxRx | |
PacketTxRx (AgoraTxRx::TxRxTypes type, Config *const cfg, size_t core_offset, moodycamel::ConcurrentQueue< EventData > *event_notify_q, moodycamel::ConcurrentQueue< EventData > *tx_pending_q, moodycamel::ProducerToken **notify_producer_tokens, moodycamel::ProducerToken **tx_producer_tokens, Table< char > &rx_buffer, size_t packet_num_in_buffer, Table< size_t > &frame_start, char *tx_buffer) | |
virtual | ~PacketTxRx () |
size_t | AntNumToWorkerId (size_t ant_num) const |
Convert the antenna id to txrx worker id. More... | |
Private Member Functions | |
bool | CreateWorker (size_t tid, size_t interface_count, size_t interface_offset, size_t *rx_frame_start, std::vector< RxPacket > &rx_memory, std::byte *const tx_memory) final |
Private Attributes | |
std::unique_ptr< ClientRadioConfig > | radio_config_ |
Additional Inherited Members | |
Protected Member Functions inherited from PacketTxRx | |
bool | StopTxRx () |
void | NotifyWorkers () |
size_t | NumberTotalWorkers () const |
size_t | NumberTotalInterfaces () const |
const size_t & | InterfaceToWorker (size_t interface) const |
size_t | NumChannels () const |
Protected Attributes inherited from PacketTxRx | |
std::vector< std::unique_ptr< TxRxWorker > > | worker_threads_ |
Config *const | cfg_ |
const size_t | core_offset_ |
moodycamel::ConcurrentQueue< EventData > * | event_notify_q_ |
moodycamel::ConcurrentQueue< EventData > * | tx_pending_q_ |
moodycamel::ProducerToken ** | notify_producer_tokens_ |
moodycamel::ProducerToken ** | tx_producer_tokens_ |
std::mutex | mutex_ |
Owned by this class and shared with the workers. More... | |
std::condition_variable | cond_ |
std::atomic< bool > | proceed_ |
Implementations of this class provide packet I/O for Agora.
In the "Argos" mode, this class provides SoapySDR-based communication for Agora (running on the base station server or client) for communicating with real wireless hardware peers (antenna hubs for the server, UE devices for the client).
PacketTxRxClientRadio::PacketTxRxClientRadio | ( | Config *const | cfg, |
size_t | core_offset, | ||
moodycamel::ConcurrentQueue< EventData > * | event_notify_q, | ||
moodycamel::ConcurrentQueue< EventData > * | tx_pending_q, | ||
moodycamel::ProducerToken ** | notify_producer_tokens, | ||
moodycamel::ProducerToken ** | tx_producer_tokens, | ||
Table< char > & | rx_buffer, | ||
size_t | packet_num_in_buffer, | ||
Table< size_t > & | frame_start, | ||
char * | tx_buffer | ||
) |
|
final |
|
finalprivatevirtual |
|
finalvirtual |
Start the network I/O threads.
Can exit here because this list is ordered
Reimplemented from PacketTxRx.
|
private |