SRSUE: PHY does not compile NR interface

Fix
This commit is contained in:
Xavier Arteaga 2021-02-15 18:05:55 +01:00 committed by Xavier Arteaga
parent c1e6703054
commit 81748c7b1c
2 changed files with 32 additions and 18 deletions

View File

@ -66,7 +66,11 @@ private:
srslte::block_queue<std::function<void(void)> > cmd_queue; srslte::block_queue<std::function<void(void)> > cmd_queue;
}; };
class phy final : public ue_lte_phy_base, public ue_nr_phy_base, public srslte::thread class phy final : public ue_lte_phy_base,
#if HAVE_5GNR
public ue_nr_phy_base,
#endif // HAVE_5GNR
public srslte::thread
{ {
public: public:
explicit phy(srslog::sink& log_sink) : explicit phy(srslog::sink& log_sink) :
@ -80,7 +84,6 @@ public:
prach_buffer(logger_phy), prach_buffer(logger_phy),
thread("PHY") thread("PHY")
{} {}
bool set_config(const srslte::phy_cfg_nr_t& cfg) final;
~phy() final { stop(); } ~phy() final { stop(); }
@ -90,8 +93,6 @@ public:
// Init for LTE PHYs // Init for LTE PHYs
int init(const phy_args_t& args_, stack_interface_phy_lte* stack_, srslte::radio_interface_phy* radio_) final; int init(const phy_args_t& args_, stack_interface_phy_lte* stack_, srslte::radio_interface_phy* radio_) final;
int init(const phy_args_nr_t& args_, stack_interface_phy_nr* stack_, srslte::radio_interface_phy* radio_) final;
void stop() final; void stop() final;
void wait_initialize() final; void wait_initialize() final;
@ -173,10 +174,18 @@ public:
const static int DEFAULT_WORKERS = 4; const static int DEFAULT_WORKERS = 4;
std::string get_type() final { return "lte_soft"; } std::string get_type() final { return "lte_soft"; }
#ifdef HAVE_5GNR
int init(const phy_args_nr_t& args_, stack_interface_phy_nr* stack_, srslte::radio_interface_phy* radio_) final;
bool set_config(const srslte::phy_cfg_nr_t& cfg) final;
int set_ul_grant(std::array<uint8_t, SRSLTE_RAR_UL_GRANT_NBITS> packed_ul_grant) final; int set_ul_grant(std::array<uint8_t, SRSLTE_RAR_UL_GRANT_NBITS> packed_ul_grant) final;
void send_prach(uint32_t prach_occasion, uint32_t preamble_index, int preamble_received_target_power) final; void send_prach(const uint32_t prach_occasion,
const int preamble_index,
const float preamble_received_target_power,
const float ta_base_sec = 0.0f) final;
int tx_request(const tx_request_t& request) final; int tx_request(const tx_request_t& request) final;
void set_earfcn(std::vector<uint32_t> earfcns) final; void set_earfcn(std::vector<uint32_t> earfcns) final;
#endif // HAVE_5GNR
private: private:
void run_thread() final; void run_thread() final;

View File

@ -106,15 +106,6 @@ int phy::init(const phy_args_t& args_, stack_interface_phy_lte* stack_, srslte::
return SRSLTE_SUCCESS; return SRSLTE_SUCCESS;
} }
int phy::init(const phy_args_nr_t& args_, stack_interface_phy_nr* stack_, srslte::radio_interface_phy* radio_)
{
if (!nr_workers.init(args_, &common, stack_, log_sink, WORKERS_THREAD_PRIO)) {
return SRSLTE_ERROR;
}
return SRSLTE_SUCCESS;
}
int phy::init(const phy_args_t& args_) int phy::init(const phy_args_t& args_)
{ {
std::unique_lock<std::mutex> lock(config_mutex); std::unique_lock<std::mutex> lock(config_mutex);
@ -614,12 +605,25 @@ void phy::set_mch_period_stop(uint32_t stop)
common.set_mch_period_stop(stop); common.set_mch_period_stop(stop);
} }
#ifdef HAVE_5GNR
int phy::init(const phy_args_nr_t& args_, stack_interface_phy_nr* stack_, srslte::radio_interface_phy* radio_)
{
if (!nr_workers.init(args_, &common, stack_, log_sink, WORKERS_THREAD_PRIO)) {
return SRSLTE_ERROR;
}
return SRSLTE_SUCCESS;
}
int phy::set_ul_grant(std::array<uint8_t, SRSLTE_RAR_UL_GRANT_NBITS> packed_ul_grant) int phy::set_ul_grant(std::array<uint8_t, SRSLTE_RAR_UL_GRANT_NBITS> packed_ul_grant)
{ {
return nr_workers.set_ul_grant(packed_ul_grant); return nr_workers.set_ul_grant(packed_ul_grant);
} }
void phy::send_prach(uint32_t prach_occasion, uint32_t preamble_index, int preamble_received_target_power) void phy::send_prach(const uint32_t prach_occasion,
const int preamble_index,
const float preamble_received_target_power,
const float ta_base_sec)
{ {
nr_workers.send_prach(prach_occasion, preamble_index, preamble_received_target_power); nr_workers.send_prach(prach_occasion, preamble_index, preamble_received_target_power);
} }
@ -638,5 +642,6 @@ bool phy::set_config(const srslte::phy_cfg_nr_t& cfg)
{ {
return nr_workers.set_config(cfg); return nr_workers.set_config(cfg);
} }
#endif // HAVE_5GNR
} // namespace srsue } // namespace srsue