Separated params class into abstract params_db and phy_params classes

This commit is contained in:
ismagom 2015-04-22 14:34:01 +01:00
parent c382f2cbba
commit 9c10861128
13 changed files with 215 additions and 87 deletions

View File

@ -28,7 +28,7 @@
#include "srslte/srslte.h"
#include "srslte/ue_itf/queue.h"
#include "srslte/ue_itf/sched_grant.h"
#include "srslte/ue_itf/params.h"
#include "srslte/ue_itf/phy_params.h"
#ifndef UEDLBUFFER_H
#define UEDLBUFFER_H
@ -61,7 +61,7 @@ namespace ue {
int buffer_id;
bool init_cell(srslte_cell_t cell, params *params_db);
bool init_cell(srslte_cell_t cell, phy_params *params_db);
void free_cell();
bool recv_ue_sync(srslte_ue_sync_t *ue_sync, srslte_timestamp_t *rx_time);
bool get_ul_grant(pdcch_ul_search_t mode, sched_grant *grant);
@ -69,7 +69,7 @@ namespace ue {
bool decode_ack(srslte::ue::sched_grant pusch_grant);
bool decode_data(sched_grant pdsch_grant, uint8_t *payload); // returns true or false for CRC OK/KO
private:
params *params_db;
phy_params *params_db;
srslte_cell_t cell;
srslte_ue_dl_t ue_dl;
srslte_phich_t phich;

View File

@ -0,0 +1,52 @@
/**
*
* \section COPYRIGHT
*
* Copyright 2013-2014 The srsLTE Developers. See the
* COPYRIGHT file at the top-level directory of this distribution.
*
* \section LICENSE
*
* This file is part of the srsLTE library.
*
* srsLTE is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version.
*
* srsLTE is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* A copy of the GNU Lesser General Public License can be found in
* the LICENSE file in the top-level directory of this distribution
* and at http://www.gnu.org/licenses/.
*
*/
#include "srslte/srslte.h"
#ifndef PARAMS_H
#define PARAMS_H
namespace srslte {
namespace ue {
class SRSLTE_API params_db
{
public:
params_db();
~params_db();
void init_db(uint32_t nof_params);
void free_db();
void set_param(uint32_t param_idx, int64_t value);
int64_t get_param(uint32_t param_idx);
private:
uint32_t nof_params;
int64_t *db;
};
}
}
#endif

View File

@ -30,7 +30,7 @@
#include "srslte/ue_itf/dl_buffer.h"
#include "srslte/ue_itf/ul_buffer.h"
#include "srslte/ue_itf/prach.h"
#include "srslte/ue_itf/params.h"
#include "srslte/ue_itf/phy_params.h"
#include "srslte/ue_itf/sched_grant.h"
#include "srslte/ue_itf/queue.h"
#include "srslte/common/radio.h"
@ -93,7 +93,7 @@ public:
bool status_is_idle();
bool status_is_rxtx();
void set_param(params::param_t param, int64_t value);
void set_param(phy_params::phy_param_t param, int64_t value);
uint32_t get_current_tti();
static uint32_t tti_to_SFN(uint32_t tti);
@ -123,7 +123,7 @@ private:
queue *ul_buffer_queue;
queue *dl_buffer_queue;
prach prach_buffer;
params params_db;
phy_params params_db;
pthread_t phy_thread;
float time_adv_sec;

View File

@ -26,15 +26,23 @@
*/
#include "srslte/srslte.h"
#include "srslte/ue_itf/params_db.h"
#ifndef PHYPARAMS_H
#define PHYPARAMS_H
#ifndef UEH
#define UEH
namespace srslte {
namespace ue {
class SRSLTE_API params
class SRSLTE_API phy_params : public params_db
{
public:
phy_params();
~phy_params();
typedef enum {
DL_FREQ = 0,
@ -77,15 +85,10 @@ namespace ue {
PRACH_FREQ_OFFSET,
NOF_PARAMS,
} param_t;
void set_param(param_t param, int64_t value);
int64_t get_param(param_t param);
} phy_param_t;
private:
int64_t params_db[NOF_PARAMS];
};
}
}
#endif
#endif

View File

@ -28,7 +28,7 @@
#include "srslte/srslte.h"
#include "srslte/common/radio.h"
#include "srslte/ue_itf/queue.h"
#include "srslte/ue_itf/params.h"
#include "srslte/ue_itf/phy_params.h"
#ifndef UEPRACH_H
#define UEPRACH_H
@ -38,7 +38,7 @@ namespace ue {
class SRSLTE_API prach {
public:
bool init_cell(srslte_cell_t cell, params *params_db);
bool init_cell(srslte_cell_t cell, phy_params *params_db);
void free_cell();
bool prepare_to_send(uint32_t preamble_idx);
bool is_ready_to_send(uint32_t current_tti);
@ -46,7 +46,7 @@ namespace ue {
bool send(srslte::radio* radio_handler, float cfo, srslte_timestamp_t rx_time);
private:
static const uint32_t tx_advance_sf = 1; // Number of subframes to advance transmission
params *params_db = NULL;
phy_params *params_db = NULL;
int preamble_idx;
bool initiated = false;
uint32_t len;

View File

@ -29,7 +29,7 @@
#include "srslte/common/radio.h"
#include "srslte/ue_itf/queue.h"
#include "srslte/ue_itf/sched_grant.h"
#include "srslte/ue_itf/params.h"
#include "srslte/ue_itf/phy_params.h"
#ifndef UEULBUFFER_H
#define UEULBUFFER_H
@ -44,7 +44,7 @@ namespace ue {
class SRSLTE_API ul_buffer : public queue::element {
public:
bool init_cell(srslte_cell_t cell, params *params_db);
bool init_cell(srslte_cell_t cell, phy_params *params_db);
void free_cell();
void set_tti(uint32_t tti);
void set_current_tx_nb(uint32_t current_tx_nb);
@ -59,7 +59,7 @@ namespace ue {
static const uint32_t tx_advance_sf = 1; // Number of subframes to advance transmission
private:
params *params_db;
phy_params *params_db;
srslte_cell_t cell;
srslte_ue_ul_t ue_ul;
bool cell_initiated;

View File

@ -33,13 +33,13 @@
#include "srslte/ue_itf/sched_grant.h"
#include "srslte/ue_itf/dl_buffer.h"
#include "srslte/ue_itf/phy.h"
#include "srslte/ue_itf/params.h"
#include "srslte/ue_itf/phy_params.h"
namespace srslte {
namespace ue {
bool dl_buffer::init_cell(srslte_cell_t cell_, params *params_db_)
bool dl_buffer::init_cell(srslte_cell_t cell_, phy_params *params_db_)
{
params_db = params_db_;
cell = cell_;
@ -103,7 +103,7 @@ bool dl_buffer::get_ul_grant(pdcch_ul_search_t mode, sched_grant *grant)
}
if (srslte_dci_msg_to_ra_ul(&dci_msg, cell.nof_prb,
params_db->get_param(params::PUSCH_HOPPING_OFFSET),
params_db->get_param(phy_params::PUSCH_HOPPING_OFFSET),
(srslte_ra_pusch_t*) grant->get_grant_ptr()))
{
return false;

View File

@ -0,0 +1,71 @@
/**
*
* \section COPYRIGHT
*
* Copyright 2013-2014 The srsLTE Developers. See the
* COPYRIGHT file at the top-level directory of this distribution.
*
* \section LICENSE
*
* This file is part of the srsLTE library.
*
* srsLTE is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version.
*
* srsLTE is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* A copy of the GNU Lesser General Public License can be found in
* the LICENSE file in the top-level directory of this distribution
* and at http://www.gnu.org/licenses/.
*
*/
#include <string.h>
#include <strings.h>
#include <pthread.h>
#include "srslte/srslte.h"
#include "srslte/ue_itf/params_db.h"
namespace srslte {
namespace ue {
params_db::params_db() {
db = NULL;
}
params_db::~params_db()
{
if (db) {
free(db);
}
}
void params_db::init_db(uint32_t nof_params_)
{
nof_params = nof_params_;
db = (int64_t*) malloc(sizeof(int64_t)*nof_params);
}
void params_db::set_param(uint32_t param_idx, int64_t value)
{
if (param_idx < nof_params) {
db[param_idx] = value;
}
}
int64_t params_db::get_param(uint32_t param_idx)
{
if (param_idx < nof_params) {
return db[param_idx];
} else {
return -1;
}
}
}
}

View File

@ -49,9 +49,9 @@ bool phy::init(srslte::radio* radio_handler_, srslte::ue::tti_sync* ttisync_)
dl_buffer_queue = new queue(6, sizeof(dl_buffer));
// Set default params
params_db.set_param(params::CELLSEARCH_TIMEOUT_PSS_NFRAMES, 100);
params_db.set_param(params::CELLSEARCH_TIMEOUT_PSS_CORRELATION_THRESHOLD, 160);
params_db.set_param(params::CELLSEARCH_TIMEOUT_MIB_NFRAMES, 100);
params_db.set_param(phy_params::CELLSEARCH_TIMEOUT_PSS_NFRAMES, 100);
params_db.set_param(phy_params::CELLSEARCH_TIMEOUT_PSS_CORRELATION_THRESHOLD, 160);
params_db.set_param(phy_params::CELLSEARCH_TIMEOUT_MIB_NFRAMES, 100);
pthread_attr_t attr;
struct sched_param param;
@ -104,7 +104,7 @@ void phy::set_timeadv(uint32_t ta_cmd) {
void phy::rar_ul_grant(uint32_t rba, uint32_t trunc_mcs, bool hopping_flag, sched_grant *grant)
{
uint32_t n_ho = params_db.get_param(params::PUSCH_HOPPING_OFFSET);
uint32_t n_ho = params_db.get_param(phy_params::PUSCH_HOPPING_OFFSET);
srslte_ra_pusch_t *ra_pusch = (srslte_ra_pusch_t*) grant->get_grant_ptr();
srslte_dci_rar_to_ra_ul(rba, trunc_mcs, hopping_flag, cell.nof_prb, ra_pusch);
srslte_ra_ul_alloc(&ra_pusch->prb_alloc, ra_pusch, n_ho, cell.nof_prb);
@ -113,8 +113,8 @@ void phy::rar_ul_grant(uint32_t rba, uint32_t trunc_mcs, bool hopping_flag, sche
}
}
void phy::set_param(params::param_t param, int64_t value) {
params_db.set_param(param, value);
void phy::set_param(phy_params::phy_param_t param, int64_t value) {
params_db.set_param((uint32_t) param, value);
}
@ -270,9 +270,9 @@ bool phy::decode_mib_N_id_2(int force_N_id_2, srslte_cell_t *cell_ptr, uint8_t b
return false;
}
srslte_ue_cellsearch_set_nof_frames_to_scan(&cs, params_db.get_param(params::CELLSEARCH_TIMEOUT_PSS_NFRAMES));
srslte_ue_cellsearch_set_nof_frames_to_scan(&cs, params_db.get_param(phy_params::CELLSEARCH_TIMEOUT_PSS_NFRAMES));
srslte_ue_cellsearch_set_threshold(&cs, (float)
params_db.get_param(params::CELLSEARCH_TIMEOUT_PSS_CORRELATION_THRESHOLD)/10);
params_db.get_param(phy_params::CELLSEARCH_TIMEOUT_PSS_CORRELATION_THRESHOLD)/10);
radio_handler->set_rx_srate(1920000.0);
radio_handler->start_rx();
@ -315,7 +315,7 @@ bool phy::decode_mib_N_id_2(int force_N_id_2, srslte_cell_t *cell_ptr, uint8_t b
uint32_t sfn, sfn_offset;
radio_handler->start_rx();
ret = srslte_ue_mib_sync_decode(&ue_mib_sync, params_db.get_param(params::CELLSEARCH_TIMEOUT_MIB_NFRAMES),
ret = srslte_ue_mib_sync_decode(&ue_mib_sync, params_db.get_param(phy_params::CELLSEARCH_TIMEOUT_MIB_NFRAMES),
bch_payload, &cell_ptr->nof_ports, &sfn_offset);
radio_handler->stop_rx();
srslte_ue_mib_sync_free(&ue_mib_sync);

View File

@ -30,18 +30,20 @@
#include <pthread.h>
#include "srslte/srslte.h"
#include "srslte/ue_itf/params.h"
#include "srslte/ue_itf/params_db.h"
#include "srslte/ue_itf/phy_params.h"
namespace srslte {
namespace ue {
void params::set_param(param_t param, int64_t value)
phy_params::phy_params()
{
params_db[param] = value;
init_db(NOF_PARAMS);
}
int64_t params::get_param(param_t param)
phy_params::~phy_params()
{
return params_db[param];
}
}
}

View File

@ -33,7 +33,7 @@
#include "srslte/cuhd/cuhd.h"
#include "srslte/ue_itf/prach.h"
#include "srslte/ue_itf/phy.h"
#include "srslte/ue_itf/params.h"
#include "srslte/ue_itf/phy_params.h"
namespace srslte {
namespace ue {
@ -55,16 +55,16 @@ void prach::free_cell()
}
}
bool prach::init_cell(srslte_cell_t cell_, params *params_db_)
bool prach::init_cell(srslte_cell_t cell_, phy_params *params_db_)
{
cell = cell_;
params_db = params_db_;
preamble_idx = -1;
if (srslte_prach_init(&prach, srslte_symbol_sz(cell.nof_prb),
srslte_prach_get_preamble_format(params_db->get_param(params::PRACH_CONFIG_INDEX)),
params_db->get_param(params::PRACH_ROOT_SEQ_IDX),
params_db->get_param(params::PRACH_HIGH_SPEED_FLAG)?true:false,
params_db->get_param(params::PRACH_ZC_CONFIG))) {
srslte_prach_get_preamble_format(params_db->get_param(phy_params::PRACH_CONFIG_INDEX)),
params_db->get_param(phy_params::PRACH_ROOT_SEQ_IDX),
params_db->get_param(phy_params::PRACH_HIGH_SPEED_FLAG)?true:false,
params_db->get_param(phy_params::PRACH_ZC_CONFIG))) {
return false;
}
@ -74,7 +74,7 @@ bool prach::init_cell(srslte_cell_t cell_, params *params_db_)
if(!buffer[i]) {
return false;
}
if(srslte_prach_gen(&prach, i, params_db->get_param(params::PRACH_FREQ_OFFSET), buffer[i])){
if(srslte_prach_gen(&prach, i, params_db->get_param(phy_params::PRACH_FREQ_OFFSET), buffer[i])){
return false;
}
}
@ -103,7 +103,7 @@ bool prach::is_ready_to_send(uint32_t current_tti_) {
uint32_t current_tti = (current_tti_ + tx_advance_sf)%10240;
// Get SFN and sf_idx from the PRACH configuration index
uint32_t config_idx = (uint32_t) params_db->get_param(params::PRACH_CONFIG_INDEX);
uint32_t config_idx = (uint32_t) params_db->get_param(phy_params::PRACH_CONFIG_INDEX);
srslte_prach_sfn_t prach_sfn = srslte_prach_get_sfn(config_idx);
if (prach_sfn == SRSLTE_PRACH_SFN_EVEN && ((current_tti/10)%2)==0 ||

View File

@ -33,12 +33,12 @@
#include "srslte/ue_itf/sched_grant.h"
#include "srslte/ue_itf/ul_buffer.h"
#include "srslte/ue_itf/phy.h"
#include "srslte/ue_itf/params.h"
#include "srslte/ue_itf/phy_params.h"
namespace srslte {
namespace ue {
bool ul_buffer::init_cell(srslte_cell_t cell_, params *params_db_) {
bool ul_buffer::init_cell(srslte_cell_t cell_, phy_params *params_db_) {
cell = cell_;
params_db = params_db_;
current_tx_nb = 0;
@ -102,45 +102,45 @@ bool ul_buffer::generate_data(sched_grant pusch_grant,
srslte_refsignal_dmrs_pusch_cfg_t dmrs_cfg;
bzero(&dmrs_cfg, sizeof(srslte_refsignal_dmrs_pusch_cfg_t));
dmrs_cfg.beta_pusch = (float) params_db->get_param(params::PUSCH_BETA)/10;
dmrs_cfg.group_hopping_en = params_db->get_param(params::PUSCH_RS_GROUP_HOPPING_EN);
dmrs_cfg.sequence_hopping_en = params_db->get_param(params::PUSCH_RS_SEQUENCE_HOPPING_EN);
dmrs_cfg.cyclic_shift = params_db->get_param(params::PUSCH_RS_CYCLIC_SHIFT);
dmrs_cfg.delta_ss = params_db->get_param(params::PUSCH_RS_GROUP_ASSIGNMENT);
dmrs_cfg.beta_pusch = (float) params_db->get_param(phy_params::PUSCH_BETA)/10;
dmrs_cfg.group_hopping_en = params_db->get_param(phy_params::PUSCH_RS_GROUP_HOPPING_EN);
dmrs_cfg.sequence_hopping_en = params_db->get_param(phy_params::PUSCH_RS_SEQUENCE_HOPPING_EN);
dmrs_cfg.cyclic_shift = params_db->get_param(phy_params::PUSCH_RS_CYCLIC_SHIFT);
dmrs_cfg.delta_ss = params_db->get_param(phy_params::PUSCH_RS_GROUP_ASSIGNMENT);
srslte_pusch_hopping_cfg_t pusch_hopping;
bzero(&pusch_hopping, sizeof(srslte_pusch_hopping_cfg_t));
pusch_hopping.n_sb = params_db->get_param(params::PUSCH_HOPPING_N_SB);
pusch_hopping.hop_mode = params_db->get_param(params::PUSCH_HOPPING_INTRA_SF) ?
pusch_hopping.n_sb = params_db->get_param(phy_params::PUSCH_HOPPING_N_SB);
pusch_hopping.hop_mode = params_db->get_param(phy_params::PUSCH_HOPPING_INTRA_SF) ?
pusch_hopping.SRSLTE_PUSCH_HOP_MODE_INTRA_SF :
pusch_hopping.SRSLTE_PUSCH_HOP_MODE_INTER_SF;
pusch_hopping.hopping_offset = params_db->get_param(params::PUSCH_HOPPING_OFFSET);
pusch_hopping.hopping_offset = params_db->get_param(phy_params::PUSCH_HOPPING_OFFSET);
pusch_hopping.current_tx_nb = pusch_grant.get_current_tx_nb();
srslte_pucch_cfg_t pucch_cfg;
bzero(&pucch_cfg, sizeof(srslte_pucch_cfg_t));
pucch_cfg.beta_pucch = (float) params_db->get_param(params::PUCCH_BETA)/10;
pucch_cfg.delta_pucch_shift = params_db->get_param(params::PUCCH_DELTA_SHIFT);
pucch_cfg.beta_pucch = (float) params_db->get_param(phy_params::PUCCH_BETA)/10;
pucch_cfg.delta_pucch_shift = params_db->get_param(phy_params::PUCCH_DELTA_SHIFT);
pucch_cfg.group_hopping_en = dmrs_cfg.group_hopping_en;
pucch_cfg.N_cs = params_db->get_param(params::PUCCH_CYCLIC_SHIFT);
pucch_cfg.n_rb_2 = params_db->get_param(params::PUCCH_N_RB_2);
pucch_cfg.N_cs = params_db->get_param(phy_params::PUCCH_CYCLIC_SHIFT);
pucch_cfg.n_rb_2 = params_db->get_param(phy_params::PUCCH_N_RB_2);
srslte_pucch_sched_t pucch_sched;
bzero(&pucch_sched, sizeof(srslte_pucch_sched_t));
pucch_sched.n_cce = last_n_cce;
pucch_sched.n_pucch_1[0] = params_db->get_param(params::PUCCH_N_PUCCH_1_0);
pucch_sched.n_pucch_1[1] = params_db->get_param(params::PUCCH_N_PUCCH_1_1);
pucch_sched.n_pucch_1[2] = params_db->get_param(params::PUCCH_N_PUCCH_1_2);
pucch_sched.n_pucch_1[3] = params_db->get_param(params::PUCCH_N_PUCCH_1_3);
pucch_sched.N_pucch_1 = params_db->get_param(params::PUCCH_N_PUCCH_1);
pucch_sched.n_pucch_2 = params_db->get_param(params::PUCCH_N_PUCCH_2);
pucch_sched.n_pucch_sr = params_db->get_param(params::PUCCH_N_PUCCH_SR);
pucch_sched.n_pucch_1[0] = params_db->get_param(phy_params::PUCCH_N_PUCCH_1_0);
pucch_sched.n_pucch_1[1] = params_db->get_param(phy_params::PUCCH_N_PUCCH_1_1);
pucch_sched.n_pucch_1[2] = params_db->get_param(phy_params::PUCCH_N_PUCCH_1_2);
pucch_sched.n_pucch_1[3] = params_db->get_param(phy_params::PUCCH_N_PUCCH_1_3);
pucch_sched.N_pucch_1 = params_db->get_param(phy_params::PUCCH_N_PUCCH_1);
pucch_sched.n_pucch_2 = params_db->get_param(phy_params::PUCCH_N_PUCCH_2);
pucch_sched.n_pucch_sr = params_db->get_param(phy_params::PUCCH_N_PUCCH_SR);
srslte_ue_ul_set_cfg(&ue_ul, &dmrs_cfg, &pusch_hopping, &pucch_cfg, &pucch_sched);
uci_data.I_offset_ack = params_db->get_param(params::UCI_I_OFFSET_ACK);
uci_data.I_offset_cqi = params_db->get_param(params::UCI_I_OFFSET_CQI);
uci_data.I_offset_ri = params_db->get_param(params::UCI_I_OFFSET_RI);
uci_data.I_offset_ack = params_db->get_param(phy_params::UCI_I_OFFSET_ACK);
uci_data.I_offset_cqi = params_db->get_param(phy_params::UCI_I_OFFSET_CQI);
uci_data.I_offset_ri = params_db->get_param(phy_params::UCI_I_OFFSET_RI);
int n = 0;
// Transmit on PUSCH if UL grant available, otherwise in PUCCH

View File

@ -204,23 +204,23 @@ uint32_t nof_rtx_connsetup = 0;
uint32_t rv_value[4] = {0, 2, 3, 1};
void config_phy() {
phy.set_param(srslte::ue::params::PRACH_CONFIG_INDEX, 0);
phy.set_param(srslte::ue::params::PRACH_FREQ_OFFSET, 0);
phy.set_param(srslte::ue::params::PRACH_HIGH_SPEED_FLAG, 0);
phy.set_param(srslte::ue::params::PRACH_ROOT_SEQ_IDX, 0);
phy.set_param(srslte::ue::params::PRACH_ZC_CONFIG, 1);
phy.set_param(srslte::ue::phy_params::PRACH_CONFIG_INDEX, 0);
phy.set_param(srslte::ue::phy_params::PRACH_FREQ_OFFSET, 0);
phy.set_param(srslte::ue::phy_params::PRACH_HIGH_SPEED_FLAG, 0);
phy.set_param(srslte::ue::phy_params::PRACH_ROOT_SEQ_IDX, 0);
phy.set_param(srslte::ue::phy_params::PRACH_ZC_CONFIG, 1);
phy.set_param(srslte::ue::params::PUSCH_BETA, 10);
phy.set_param(srslte::ue::params::PUSCH_RS_GROUP_HOPPING_EN, 0);
phy.set_param(srslte::ue::params::PUSCH_RS_SEQUENCE_HOPPING_EN, 0);
phy.set_param(srslte::ue::params::PUSCH_RS_CYCLIC_SHIFT, 0);
phy.set_param(srslte::ue::params::PUSCH_HOPPING_OFFSET, 0);
phy.set_param(srslte::ue::phy_params::PUSCH_BETA, 10);
phy.set_param(srslte::ue::phy_params::PUSCH_RS_GROUP_HOPPING_EN, 0);
phy.set_param(srslte::ue::phy_params::PUSCH_RS_SEQUENCE_HOPPING_EN, 0);
phy.set_param(srslte::ue::phy_params::PUSCH_RS_CYCLIC_SHIFT, 0);
phy.set_param(srslte::ue::phy_params::PUSCH_HOPPING_OFFSET, 0);
phy.set_param(srslte::ue::params::PUCCH_BETA, 10);
phy.set_param(srslte::ue::params::PUCCH_DELTA_SHIFT, 1);
phy.set_param(srslte::ue::params::PUCCH_CYCLIC_SHIFT, 0);
phy.set_param(srslte::ue::params::PUCCH_N_PUCCH_1, 0);
phy.set_param(srslte::ue::params::PUCCH_N_RB_2, 2);
phy.set_param(srslte::ue::phy_params::PUCCH_BETA, 10);
phy.set_param(srslte::ue::phy_params::PUCCH_DELTA_SHIFT, 1);
phy.set_param(srslte::ue::phy_params::PUCCH_CYCLIC_SHIFT, 0);
phy.set_param(srslte::ue::phy_params::PUCCH_N_PUCCH_1, 0);
phy.set_param(srslte::ue::phy_params::PUCCH_N_RB_2, 2);
}