SRSUE: Automatic DL-HARQ Reset for every TTI and Generate PUCCH baseband signal

This commit is contained in:
Xavier Arteaga 2021-02-10 19:37:43 +01:00 committed by Xavier Arteaga
parent 2d9e964147
commit 9faa2d5fcd
2 changed files with 19 additions and 5 deletions

View File

@ -166,21 +166,31 @@ int srslte_ue_ul_nr_encode_pucch(srslte_ue_ul_nr_t* q,
// Actual PUCCH encoding
switch (resource->format) {
case SRSLTE_PUCCH_NR_FORMAT_0:
return ue_ul_nr_encode_pucch_format0(q, resource, uci_data);
if (ue_ul_nr_encode_pucch_format0(q, resource, uci_data) < SRSLTE_SUCCESS) {
return SRSLTE_ERROR;
}
case SRSLTE_PUCCH_NR_FORMAT_1:
return ue_ul_nr_encode_pucch_format1(q, slot_cfg, cfg, resource, uci_data);
if (ue_ul_nr_encode_pucch_format1(q, slot_cfg, cfg, resource, uci_data) < SRSLTE_SUCCESS) {
return SRSLTE_ERROR;
}
case SRSLTE_PUCCH_NR_FORMAT_2:
case SRSLTE_PUCCH_NR_FORMAT_3:
case SRSLTE_PUCCH_NR_FORMAT_4:
return srslte_pucch_nr_format_2_3_4_encode(
&q->pucch, &q->carrier, cfg, slot_cfg, resource, &uci_data->cfg, &uci_data->value, q->sf_symbols[0]);
if (srslte_pucch_nr_format_2_3_4_encode(
&q->pucch, &q->carrier, cfg, slot_cfg, resource, &uci_data->cfg, &uci_data->value, q->sf_symbols[0]) <
SRSLTE_SUCCESS) {
return SRSLTE_ERROR;
}
case SRSLTE_PUCCH_NR_FORMAT_ERROR:
default:
ERROR("Invalid case");
break;
}
return SRSLTE_ERROR;
// Generate signal
srslte_ofdm_tx_sf(&q->ifft);
return SRSLTE_SUCCESS;
}
void srslte_ue_ul_nr_free(srslte_ue_ul_nr_t* q)

View File

@ -225,6 +225,10 @@ bool cc_worker::work_dl()
srslte::unique_byte_buffer_t data = srslte::make_byte_buffer();
data->N_bytes = pdsch_cfg.grant.tb[0].tbs / 8U;
// Get soft-buffer from MAC
// ...
srslte_softbuffer_rx_reset(&softbuffer_rx);
// Initialise PDSCH Result
std::array<srslte_pdsch_res_nr_t, SRSLTE_MAX_CODEWORDS> pdsch_res = {};
pdsch_res[0].payload = data->buffer;