mirror of https://github.com/PentHertz/srsLTE.git
Make intra-frequency measurement period/length a parameter
This commit is contained in:
parent
e845339d54
commit
86d4ce52e0
|
@ -494,6 +494,8 @@ typedef struct {
|
|||
bool sic_pss_enabled;
|
||||
float rx_gain_offset;
|
||||
bool pdsch_csi_enabled;
|
||||
uint32_t intra_freq_meas_len_ms;
|
||||
uint32_t intra_freq_meas_period_ms;
|
||||
} phy_args_t;
|
||||
|
||||
|
||||
|
|
|
@ -233,8 +233,6 @@ private:
|
|||
void write(uint32_t tti, cf_t *data, uint32_t nsamples);
|
||||
private:
|
||||
void run_thread();
|
||||
const static int INTRA_FREQ_MEAS_LEN_MS = 20;
|
||||
const static int INTRA_FREQ_MEAS_PERIOD_MS = 200;
|
||||
const static int INTRA_FREQ_MEAS_PRIO = DEFAULT_PRIORITY + 5;
|
||||
|
||||
scell_recv scell;
|
||||
|
|
|
@ -203,6 +203,14 @@ void parse_args(all_args_t *args, int argc, char *argv[]) {
|
|||
bpo::value<string>(&args->expert.phy.equalizer_mode)->default_value("mmse"),
|
||||
"Equalizer mode")
|
||||
|
||||
("expert.intra_freq_meas_len_ms",
|
||||
bpo::value<uint32_t>(&args->expert.phy.intra_freq_meas_len_ms)->default_value(20),
|
||||
"Duration of the intra-frequency neighbour cell measurement in ms.")
|
||||
|
||||
("expert.intra_freq_meas_period_ms",
|
||||
bpo::value<uint32_t>(&args->expert.phy.intra_freq_meas_period_ms)->default_value(200),
|
||||
"Period of intra-frequency neighbour cell measurement in ms. Maximum as per 3GPP is 200 ms.")
|
||||
|
||||
("expert.cfo_is_doppler",
|
||||
bpo::value<bool>(&args->expert.phy.cfo_is_doppler)->default_value(false),
|
||||
"Assume detected CFO is doppler and correct the UL in the same direction. If disabled, the CFO is assumed"
|
||||
|
|
|
@ -1436,11 +1436,11 @@ void phch_recv::intra_measure::init(phch_common *common, rrc_interface_phy *rrc,
|
|||
receive_enabled = false;
|
||||
|
||||
// Start scell
|
||||
scell.init(log_h, common->args->sic_pss_enabled, INTRA_FREQ_MEAS_LEN_MS);
|
||||
scell.init(log_h, common->args->sic_pss_enabled, common->args->intra_freq_meas_len_ms);
|
||||
|
||||
search_buffer = (cf_t*) srslte_vec_malloc(INTRA_FREQ_MEAS_LEN_MS*SRSLTE_SF_LEN_PRB(SRSLTE_MAX_PRB)*sizeof(cf_t));
|
||||
search_buffer = (cf_t*) srslte_vec_malloc(common->args->intra_freq_meas_len_ms*SRSLTE_SF_LEN_PRB(SRSLTE_MAX_PRB)*sizeof(cf_t));
|
||||
|
||||
if (srslte_ringbuffer_init(&ring_buffer, sizeof(cf_t)*INTRA_FREQ_MEAS_LEN_MS*2*SRSLTE_SF_LEN_PRB(SRSLTE_MAX_PRB))) {
|
||||
if (srslte_ringbuffer_init(&ring_buffer, sizeof(cf_t)*common->args->intra_freq_meas_len_ms*2*SRSLTE_SF_LEN_PRB(SRSLTE_MAX_PRB))) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1510,7 +1510,7 @@ void phch_recv::intra_measure::rem_cell(int pci) {
|
|||
|
||||
void phch_recv::intra_measure::write(uint32_t tti, cf_t *data, uint32_t nsamples) {
|
||||
if (receive_enabled) {
|
||||
if ((tti%INTRA_FREQ_MEAS_PERIOD_MS) == 0) {
|
||||
if ((tti%common->args->intra_freq_meas_period_ms) == 0) {
|
||||
receiving = true;
|
||||
receive_cnt = 0;
|
||||
measure_tti = tti;
|
||||
|
@ -1522,7 +1522,7 @@ void phch_recv::intra_measure::write(uint32_t tti, cf_t *data, uint32_t nsamples
|
|||
receiving = false;
|
||||
} else {
|
||||
receive_cnt++;
|
||||
if (receive_cnt == INTRA_FREQ_MEAS_LEN_MS) {
|
||||
if (receive_cnt == common->args->intra_freq_meas_len_ms) {
|
||||
tti_sync.increase();
|
||||
receiving = false;
|
||||
}
|
||||
|
@ -1541,8 +1541,8 @@ void phch_recv::intra_measure::run_thread()
|
|||
if (running) {
|
||||
|
||||
// Read data from buffer and find cells in it
|
||||
srslte_ringbuffer_read(&ring_buffer, search_buffer, INTRA_FREQ_MEAS_LEN_MS*current_sflen*sizeof(cf_t));
|
||||
int found_cells = scell.find_cells(search_buffer, common->rx_gain_offset, primary_cell, INTRA_FREQ_MEAS_LEN_MS, info);
|
||||
srslte_ringbuffer_read(&ring_buffer, search_buffer, common->args->intra_freq_meas_len_ms*current_sflen*sizeof(cf_t));
|
||||
int found_cells = scell.find_cells(search_buffer, common->rx_gain_offset, primary_cell, common->args->intra_freq_meas_len_ms, info);
|
||||
receiving = false;
|
||||
|
||||
for (int i=0;i<found_cells;i++) {
|
||||
|
|
Loading…
Reference in New Issue