#include <txrx_worker_hw.h>
|
| TxRxWorkerHw (size_t core_offset, size_t tid, size_t interface_count, size_t interface_offset, Config *const config, size_t *rx_frame_start, moodycamel::ConcurrentQueue< EventData > *event_notify_q, moodycamel::ConcurrentQueue< EventData > *tx_pending_q, moodycamel::ProducerToken &tx_producer, moodycamel::ProducerToken ¬ify_producer, std::vector< RxPacket > &rx_memory, std::byte *const tx_memory, std::mutex &sync_mutex, std::condition_variable &sync_cond, std::atomic< bool > &can_proceed, RadioConfig &radio_config) |
|
| TxRxWorkerHw ()=delete |
|
| ~TxRxWorkerHw () final |
|
void | DoTxRx () final |
|
| TxRxWorker (size_t core_offset, size_t tid, size_t interface_count, size_t interface_offset, size_t channels_per_interface, Config *const config, size_t *rx_frame_start, moodycamel::ConcurrentQueue< EventData > *event_notify_q, moodycamel::ConcurrentQueue< EventData > *tx_pending_q, moodycamel::ProducerToken &tx_producer, moodycamel::ProducerToken ¬ify_producer, std::vector< RxPacket > &rx_memory, std::byte *const tx_memory, std::mutex &sync_mutex, std::condition_variable &sync_cond, std::atomic< bool > &can_proceed) |
|
| TxRxWorker ()=delete |
|
virtual | ~TxRxWorker () |
|
virtual void | Start () |
|
virtual void | Stop () |
|
size_t | Id () const |
|
bool | Started () const |
|
bool | Running () const |
|
|
size_t | DoTx (long long time0) |
|
std::vector< RxPacket * > | DoRx (size_t interface_id, size_t &global_frame_id, size_t &global_symbol_id) |
|
void | ScheduleTxInit (size_t frames_to_schedule, long long time0) |
|
void | TxDownlinkZeros (size_t frame_id, size_t radio_id, long long time0) |
|
void | TxReciprocityCalibPilots (size_t frame_id, size_t radio_id, long long time0) |
|
void | TxBeaconHw (size_t frame_id, size_t interface_id, long long time0) |
|
bool | IsTxSymbolNext (size_t radio_id, size_t current_symbol) |
|
Radio::TxFlags | GetTxFlags (size_t radio_id, size_t tx_symbol_id) |
|
long long int | GetHwTime () |
|
bool | IsRxSymbol (size_t interface, size_t symbol_id) |
|
void | InitRxStatus () |
|
void | ResetRxStatus (size_t interface, bool reuse_memory) |
|
TxRxWorkerRx::RxParameters | UpdateRxInterface (const TxRxWorkerRx::RxParameters &last_rx) |
| Returns the next symbol and interface. More...
|
|
void | PrintRxSymbolTiming (std::vector< TxRxWorkerRx::RxTimeTracker > &rx_times, size_t current_frame, size_t current_symbol, size_t next_symbol) |
|
◆ TxRxWorkerHw() [1/2]
TxRxWorkerHw::TxRxWorkerHw |
( |
size_t |
core_offset, |
|
|
size_t |
tid, |
|
|
size_t |
interface_count, |
|
|
size_t |
interface_offset, |
|
|
Config *const |
config, |
|
|
size_t * |
rx_frame_start, |
|
|
moodycamel::ConcurrentQueue< EventData > * |
event_notify_q, |
|
|
moodycamel::ConcurrentQueue< EventData > * |
tx_pending_q, |
|
|
moodycamel::ProducerToken & |
tx_producer, |
|
|
moodycamel::ProducerToken & |
notify_producer, |
|
|
std::vector< RxPacket > & |
rx_memory, |
|
|
std::byte *const |
tx_memory, |
|
|
std::mutex & |
sync_mutex, |
|
|
std::condition_variable & |
sync_cond, |
|
|
std::atomic< bool > & |
can_proceed, |
|
|
RadioConfig & |
radio_config |
|
) |
| |
◆ TxRxWorkerHw() [2/2]
TxRxWorkerHw::TxRxWorkerHw |
( |
| ) |
|
|
delete |
◆ ~TxRxWorkerHw()
TxRxWorkerHw::~TxRxWorkerHw |
( |
| ) |
|
|
finaldefault |
◆ DoRx()
std::vector< RxPacket * > TxRxWorkerHw::DoRx |
( |
size_t |
interface_id, |
|
|
size_t & |
global_frame_id, |
|
|
size_t & |
global_symbol_id |
|
) |
| |
|
private |
◆ DoTx()
size_t TxRxWorkerHw::DoTx |
( |
long long |
time0 | ) |
|
|
private |
◆ DoTxRx()
void TxRxWorkerHw::DoTxRx |
( |
| ) |
|
|
finalvirtual |
◆ GetHwTime()
long long int TxRxWorkerHw::GetHwTime |
( |
| ) |
|
|
private |
◆ GetTxFlags()
Radio::TxFlags TxRxWorkerHw::GetTxFlags |
( |
size_t |
radio_id, |
|
|
size_t |
tx_symbol_id |
|
) |
| |
|
private |
◆ InitRxStatus()
void TxRxWorkerHw::InitRxStatus |
( |
| ) |
|
|
private |
◆ IsRxSymbol()
bool TxRxWorkerHw::IsRxSymbol |
( |
size_t |
interface, |
|
|
size_t |
symbol_id |
|
) |
| |
|
private |
◆ IsTxSymbolNext()
bool TxRxWorkerHw::IsTxSymbolNext |
( |
size_t |
radio_id, |
|
|
size_t |
current_symbol |
|
) |
| |
|
private |
◆ PrintRxSymbolTiming()
void TxRxWorkerHw::PrintRxSymbolTiming |
( |
std::vector< TxRxWorkerRx::RxTimeTracker > & |
rx_times, |
|
|
size_t |
current_frame, |
|
|
size_t |
current_symbol, |
|
|
size_t |
next_symbol |
|
) |
| |
|
private |
◆ ResetRxStatus()
void TxRxWorkerHw::ResetRxStatus |
( |
size_t |
interface, |
|
|
bool |
reuse_memory |
|
) |
| |
|
private |
◆ ScheduleTxInit()
void TxRxWorkerHw::ScheduleTxInit |
( |
size_t |
frames_to_schedule, |
|
|
long long |
time0 |
|
) |
| |
|
private |
◆ TxBeaconHw()
void TxRxWorkerHw::TxBeaconHw |
( |
size_t |
frame_id, |
|
|
size_t |
interface_id, |
|
|
long long |
time0 |
|
) |
| |
|
private |
◆ TxDownlinkZeros()
void TxRxWorkerHw::TxDownlinkZeros |
( |
size_t |
frame_id, |
|
|
size_t |
radio_id, |
|
|
long long |
time0 |
|
) |
| |
|
private |
◆ TxReciprocityCalibPilots()
void TxRxWorkerHw::TxReciprocityCalibPilots |
( |
size_t |
frame_id, |
|
|
size_t |
radio_id, |
|
|
long long |
time0 |
|
) |
| |
|
private |
◆ UpdateRxInterface()
Returns the next symbol and interface.
- Todo:
- Need to add an infinate loop catcher
◆ first_symbol_
std::vector<bool> TxRxWorkerHw::first_symbol_ |
|
private |
◆ freq_ghz_
const double TxRxWorkerHw::freq_ghz_ |
|
private |
◆ program_start_ticks_
size_t TxRxWorkerHw::program_start_ticks_ |
|
private |
◆ radio_config_
◆ rx_status_
◆ zeros_
std::vector<std::complex<int16_t> > TxRxWorkerHw::zeros_ |
|
private |
The documentation for this class was generated from the following files: