mirror of https://github.com/PentHertz/srsLTE.git
fixed issues in the parsing of sibs
This commit is contained in:
parent
840b9ce364
commit
be06f260db
|
@ -559,32 +559,56 @@ int mbsfn_area_info_list_parser::parse(Setting& root)
|
|||
|
||||
field_asn1_enum_str<mbsfn_area_info_r9_s::non_mbsfn_region_len_e_> fieldlen("non_mbsfn_region_length",
|
||||
&mbsfn_item->non_mbsfn_region_len);
|
||||
fieldlen.parse(root["mbsfn_area_info_list"]);
|
||||
if (fieldlen.parse(root["mbsfn_area_info_list"])) {
|
||||
fprintf(stderr, "Error parsing non_mbsfn_region_length\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
field_asn1_enum_str<mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_repeat_period_r9_e_> repeat(
|
||||
"mcch_repetition_period", &mbsfn_item->mcch_cfg_r9.mcch_repeat_period_r9);
|
||||
repeat.parse(root["mbsfn_area_info_list"]);
|
||||
if (repeat.parse(root["mbsfn_area_info_list"])) {
|
||||
fprintf(stderr, "Error parsing mcch_repetition_period\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
field_asn1_enum_str<mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_mod_period_r9_e_> mod(
|
||||
"mcch_modification_period", &mbsfn_item->mcch_cfg_r9.mcch_mod_period_r9);
|
||||
mod.parse(root["mbsfn_area_info_list"]);
|
||||
if (mod.parse(root["mbsfn_area_info_list"])) {
|
||||
fprintf(stderr, "Error parsing mcch_modification_period\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
field_asn1_enum_str<mbsfn_area_info_r9_s::mcch_cfg_r9_s_::sig_mcs_r9_e_> sig("signalling_mcs",
|
||||
&mbsfn_item->mcch_cfg_r9.sig_mcs_r9);
|
||||
sig.parse(root["mbsfn_area_info_list"]);
|
||||
if (sig.parse(root["mbsfn_area_info_list"])) {
|
||||
fprintf(stderr, "Error parsing signalling_mcs\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
parser::field<uint8_t> areaid("mbsfn_area_id", &mbsfn_item->mbsfn_area_id_r9);
|
||||
areaid.parse(root["mbsfn_area_info_list"]);
|
||||
if (areaid.parse(root["mbsfn_area_info_list"])) {
|
||||
fprintf(stderr, "Error parsing mbsfn_area_id\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
parser::field<uint8_t> notif_ind("notification_indicator", &mbsfn_item->notif_ind_r9);
|
||||
notif_ind.parse(root["mbsfn_area_info_list"]);
|
||||
if (notif_ind.parse(root["mbsfn_area_info_list"])) {
|
||||
fprintf(stderr, "Error parsing notification_indicator\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
parser::field<uint8_t> offset("mcch_offset", &mbsfn_item->mcch_cfg_r9.mcch_offset_r9);
|
||||
offset.parse(root["mbsfn_area_info_list"]);
|
||||
if (offset.parse(root["mbsfn_area_info_list"])) {
|
||||
fprintf(stderr, "Error parsing mcch_offset\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
field_asn1_bitstring_number<asn1::fixed_bitstring<6>, uint8_t> alloc_info("sf_alloc_info",
|
||||
&mbsfn_item->mcch_cfg_r9.sf_alloc_info_r9);
|
||||
alloc_info.parse(root["mbsfn_area_info_list"]);
|
||||
if (alloc_info.parse(root["mbsfn_area_info_list"])) {
|
||||
fprintf(stderr, "Error parsing mbsfn_area_info_list\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -475,7 +475,7 @@ public:
|
|||
NumType val;
|
||||
if (parser::lookupValue(root, name, &val)) {
|
||||
store_ptr->from_number(val);
|
||||
return true;
|
||||
return 0;
|
||||
} else {
|
||||
std::string str_val;
|
||||
if (parser::lookupValue(root, name, &str_val)) {
|
||||
|
@ -483,7 +483,7 @@ public:
|
|||
str_val.c_str());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return -1;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -739,7 +739,7 @@ bool rrc::si_acquire(uint32_t sib_index)
|
|||
bool found = false;
|
||||
for (uint32_t i = 0; i < sib1->sched_info_list.size() && !found; i++) {
|
||||
for (uint32_t j = 0; j < sib1->sched_info_list[i].sib_map_info.size() && !found; j++) {
|
||||
if (sib1->sched_info_list[i].sib_map_info[j].to_number() == sib_index - 2) {
|
||||
if (sib1->sched_info_list[i].sib_map_info[j].to_number() == sib_index + 1) {
|
||||
period = sib1->sched_info_list[i].si_periodicity.to_number();
|
||||
sched_index = i;
|
||||
found = true;
|
||||
|
|
Loading…
Reference in New Issue