Fixed issue rsrp=0 in neighbour cell measurements

master
Ismael Gomez 7 years ago
parent b54efc6d9f
commit 23e722f97a

@ -2539,6 +2539,8 @@ void rrc::rrc_meas::calculate_triggers(uint32_t tti)
} }
} }
for (std::map<uint32_t, meas_t>::iterator m = active.begin(); m != active.end(); ++m) { for (std::map<uint32_t, meas_t>::iterator m = active.begin(); m != active.end(); ++m) {
report_cfg_t *cfg = &reports_cfg[m->second.report_id]; report_cfg_t *cfg = &reports_cfg[m->second.report_id];
float hyst = 0.5*cfg->event.hysteresis; float hyst = 0.5*cfg->event.hysteresis;
@ -2563,13 +2565,19 @@ void rrc::rrc_meas::calculate_triggers(uint32_t tti)
enter_condition = Mp + hyst < range_to_value(cfg->trigger_quantity, cfg->event.event_a1.eutra.range); enter_condition = Mp + hyst < range_to_value(cfg->trigger_quantity, cfg->event.event_a1.eutra.range);
exit_condition = Mp - hyst > range_to_value(cfg->trigger_quantity, cfg->event.event_a1.eutra.range); exit_condition = Mp - hyst > range_to_value(cfg->trigger_quantity, cfg->event.event_a1.eutra.range);
} }
// check only if
gen_report |= process_event(&cfg->event, tti, enter_condition, exit_condition, gen_report |= process_event(&cfg->event, tti, enter_condition, exit_condition,
&m->second, &m->second.cell_values[serving_cell_idx]); &m->second, &pcell_measurement);
if (gen_report) {
log_h->info("Triggered by A1/A2 event\n");
}
// Rest are evaluated for every cell in frequency // Rest are evaluated for every cell in frequency
} else { } else {
meas_obj_t *obj = &objects[m->second.object_id]; meas_obj_t *obj = &objects[m->second.object_id];
for (std::map<uint32_t, meas_cell_t>::iterator cell = obj->cells.begin(); cell != obj->cells.end(); ++cell) { for (std::map<uint32_t, meas_cell_t>::iterator cell = obj->cells.begin(); cell != obj->cells.end(); ++cell) {
if (m->second.cell_values.count(cell->second.pci)) {
float Ofn = obj->q_offset; float Ofn = obj->q_offset;
float Ocn = cell->second.q_offset; float Ocn = cell->second.q_offset;
float Mn = m->second.cell_values[cell->second.pci].ms[cfg->trigger_quantity]; float Mn = m->second.cell_values[cell->second.pci].ms[cfg->trigger_quantity];
@ -2601,6 +2609,7 @@ void rrc::rrc_meas::calculate_triggers(uint32_t tti)
} }
} }
} }
}
if (gen_report) { if (gen_report) {
log_h->info("Generate report MeasId=%d, from event\n", m->first); log_h->info("Generate report MeasId=%d, from event\n", m->first);
generate_report(m->first); generate_report(m->first);

Loading…
Cancel
Save