mirror of https://github.com/PentHertz/srsLTE.git
fix nr stack activation
This commit is contained in:
parent
e6418b4b39
commit
86adbfceae
|
@ -37,8 +37,7 @@ class txrx final : public srslte::thread
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
txrx();
|
txrx();
|
||||||
bool init(stack_interface_phy_lte* stack_,
|
bool init(srslte::radio_interface_phy* radio_handler,
|
||||||
srslte::radio_interface_phy* radio_handler,
|
|
||||||
srslte::thread_pool* _workers_pool,
|
srslte::thread_pool* _workers_pool,
|
||||||
phy_common* worker_com,
|
phy_common* worker_com,
|
||||||
prach_worker_pool* prach_,
|
prach_worker_pool* prach_,
|
||||||
|
@ -49,7 +48,6 @@ public:
|
||||||
private:
|
private:
|
||||||
void run_thread() override;
|
void run_thread() override;
|
||||||
|
|
||||||
stack_interface_phy_lte* stack = nullptr;
|
|
||||||
srslte::radio_interface_phy* radio_h = nullptr;
|
srslte::radio_interface_phy* radio_h = nullptr;
|
||||||
srslte::log* log_h = nullptr;
|
srslte::log* log_h = nullptr;
|
||||||
srslte::thread_pool* workers_pool = nullptr;
|
srslte::thread_pool* workers_pool = nullptr;
|
||||||
|
|
|
@ -130,7 +130,7 @@ int phy::init(const phy_args_t& args,
|
||||||
prach.set_max_prach_offset_us(args.max_prach_offset_us);
|
prach.set_max_prach_offset_us(args.max_prach_offset_us);
|
||||||
|
|
||||||
// Warning this must be initialized after all workers have been added to the pool
|
// Warning this must be initialized after all workers have been added to the pool
|
||||||
tx_rx.init(stack_, radio, &workers_pool, &workers_common, &prach, log_vec.at(0).get(), SF_RECV_THREAD_PRIO);
|
tx_rx.init(radio, &workers_pool, &workers_common, &prach, log_vec.at(0).get(), SF_RECV_THREAD_PRIO);
|
||||||
|
|
||||||
initialized = true;
|
initialized = true;
|
||||||
|
|
||||||
|
|
|
@ -139,6 +139,9 @@ void phy_common::worker_end(void* tx_sem_id,
|
||||||
// Always transmit on single radio
|
// Always transmit on single radio
|
||||||
radio->tx(buffer, tx_time);
|
radio->tx(buffer, tx_time);
|
||||||
|
|
||||||
|
// Trigger MAC clock
|
||||||
|
stack->tti_clock();
|
||||||
|
|
||||||
// Allow next TTI to transmit
|
// Allow next TTI to transmit
|
||||||
semaphore.release();
|
semaphore.release();
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,15 +50,13 @@ txrx::txrx() : thread("TXRX")
|
||||||
/* Do nothing */
|
/* Do nothing */
|
||||||
}
|
}
|
||||||
|
|
||||||
bool txrx::init(stack_interface_phy_lte* stack_,
|
bool txrx::init(srslte::radio_interface_phy* radio_h_,
|
||||||
srslte::radio_interface_phy* radio_h_,
|
|
||||||
srslte::thread_pool* workers_pool_,
|
srslte::thread_pool* workers_pool_,
|
||||||
phy_common* worker_com_,
|
phy_common* worker_com_,
|
||||||
prach_worker_pool* prach_,
|
prach_worker_pool* prach_,
|
||||||
srslte::log* log_h_,
|
srslte::log* log_h_,
|
||||||
uint32_t prio_)
|
uint32_t prio_)
|
||||||
{
|
{
|
||||||
stack = stack_;
|
|
||||||
radio_h = radio_h_;
|
radio_h = radio_h_;
|
||||||
log_h = log_h_;
|
log_h = log_h_;
|
||||||
workers_pool = workers_pool_;
|
workers_pool = workers_pool_;
|
||||||
|
@ -163,10 +161,6 @@ void txrx::run_thread()
|
||||||
for (uint32_t cc = 0; cc < worker_com->get_nof_carriers(); cc++) {
|
for (uint32_t cc = 0; cc < worker_com->get_nof_carriers(); cc++) {
|
||||||
prach->new_tti(cc, tti, buffer.get(worker_com->get_rf_port(cc), 0, worker_com->get_nof_ports(0)));
|
prach->new_tti(cc, tti, buffer.get(worker_com->get_rf_port(cc), 0, worker_com->get_nof_ports(0)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Advance stack in time
|
|
||||||
stack->tti_clock();
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// wait_worker() only returns NULL if it's being closed. Quit now to avoid unnecessary loops here
|
// wait_worker() only returns NULL if it's being closed. Quit now to avoid unnecessary loops here
|
||||||
running = false;
|
running = false;
|
||||||
|
|
Loading…
Reference in New Issue