fix cell meas sorting issue

master
Francisco Paisana 5 years ago
parent d2dd30c8cb
commit 928459408e

@ -138,9 +138,8 @@ public:
const static int MAX_NEIGHBOUR_CELLS = 8; const static int MAX_NEIGHBOUR_CELLS = 8;
typedef std::unique_ptr<cell_t> unique_cell_t; typedef std::unique_ptr<cell_t> unique_cell_t;
bool add_neighbour_cell_unsorted(const rrc_interface_phy_lte::phy_meas_t& meas); bool add_neighbour_cell(const rrc_interface_phy_lte::phy_meas_t& meas);
bool add_neighbour_cell(unique_cell_t cell); bool add_neighbour_cell(unique_cell_t cell);
bool add_neighbour_cell_unsorted(unique_cell_t cell);
void rem_last_neighbour(); void rem_last_neighbour();
unique_cell_t remove_neighbour_cell(uint32_t earfcn, uint32_t pci); unique_cell_t remove_neighbour_cell(uint32_t earfcn, uint32_t pci);
void clean_neighbours(); void clean_neighbours();
@ -162,6 +161,8 @@ public:
iterator end() { return neighbour_cells.end(); } iterator end() { return neighbour_cells.end(); }
private: private:
bool add_neighbour_cell_unsorted(unique_cell_t cell);
srslte::log_ref log_h{"RRC"}; srslte::log_ref log_h{"RRC"};
unique_cell_t serving_cell; unique_cell_t serving_cell;

@ -385,7 +385,7 @@ void rrc::process_new_cell_meas(const std::vector<phy_meas_t>& meas)
c->set_cfo(m.cfo_hz); c->set_cfo(m.cfo_hz);
} else { } else {
// or just set initial value // or just set initial value
neighbour_added |= neighbour_cells.add_neighbour_cell_unsorted(m); neighbour_added |= neighbour_cells.add_neighbour_cell(m);
} }
if (m.earfcn == 0) { if (m.earfcn == 0) {

@ -167,7 +167,7 @@ const cell_t* cell_list::get_neighbour_cell_handle(uint32_t earfcn, uint32_t pci
} }
// If only neighbour PCI is provided, copy full cell from serving cell // If only neighbour PCI is provided, copy full cell from serving cell
bool cell_list::add_neighbour_cell_unsorted(const rrc_interface_phy_lte::phy_meas_t& meas) bool cell_list::add_neighbour_cell(const rrc_interface_phy_lte::phy_meas_t& meas)
{ {
phy_interface_rrc_lte::phy_cell_t phy_cell = {}; phy_interface_rrc_lte::phy_cell_t phy_cell = {};
phy_cell.earfcn = meas.earfcn; phy_cell.earfcn = meas.earfcn;
@ -176,7 +176,7 @@ bool cell_list::add_neighbour_cell_unsorted(const rrc_interface_phy_lte::phy_mea
c.get()->set_rsrp(meas.rsrp); c.get()->set_rsrp(meas.rsrp);
c.get()->set_rsrq(meas.rsrq); c.get()->set_rsrq(meas.rsrq);
c.get()->set_cfo(meas.cfo_hz); c.get()->set_cfo(meas.cfo_hz);
return add_neighbour_cell_unsorted(std::move(c)); return add_neighbour_cell(std::move(c));
} }
bool cell_list::add_neighbour_cell(unique_cell_t new_cell) bool cell_list::add_neighbour_cell(unique_cell_t new_cell)

Loading…
Cancel
Save