Hi You can break down LTE global-cell-id to enodeb_id and cell_id like this:
"intrafrequency_lte_info": { "tracking_area_code": 14000, "global_cell_id": 10498829, = "enodeb_id": 41011, "cell_id": 13, blobmsg_add_u32(&status, "enodeb_id",res.data.intrafrequency_lte_info_v2.global_cell_id/256); blobmsg_add_u32(&status, "cell_id",res.data.intrafrequency_lte_info_v2.global_cell_id%256); Same in nas_get_system_info and for UMTS global_cell_id you can break down to rnc_id and cell_id. blobmsg_add_u32(&status, "rnc_id",res.data.wcdma_system_info_v2.cid/65536); blobmsg_add_u32(&status, "cell_id",res.data.wcdma_system_info_v2.cid%65536); Henrik Den mån 14 mars 2022 kl 17:00 skrev Jan-Niklas Burfeind <g...@aiyionpri.me>: > > Hey everyone, > I attached the current output of my patched uqmi. > Please let me know if you think the arrays should be named differently > or if you spot an error. > > Thanks and have a nice day > Aiyion > > On 3/8/22 16:01, Jan-Niklas Burfeind wrote: > > Output the cells from --get-cell-location-info in an array "cells", > > "geran" entries as an array called alike, > > and wrap output for different "frequencies" as such. > > > > Reported-by: Cezary Jackiewicz <cezary.jackiew...@gmail.com> > > Suggested-by: Oskari Lemmelä <osk...@lemmela.net> > > Signed-off-by: Jan-Niklas Burfeind <g...@aiyionpri.me> > > --- > > Hey Oskari and Cezary, > > Please have a thorough look at this, as I do not have the matching > > equipment at hand to test all cases. > > Let me know if you rather would see `frequencies` become `channels` > > and if the `geran`-array does make sense. > > > > I just compiled this series without errors and will have a look at the > > LTE-related json-outputs. > > > > Thanks for your time > > Jan-Niklas > > > > commands-nas.c | 46 +++++++++++++++++++++++++++++++++++++--------- > > 1 file changed, 37 insertions(+), 9 deletions(-) > > > > diff --git a/commands-nas.c b/commands-nas.c > > index 275c53f..b99767f 100644 > > --- a/commands-nas.c > > +++ b/commands-nas.c > > @@ -708,7 +708,7 @@ static void > > cmd_nas_get_cell_location_info_cb(struct qmi_dev *qmi, struct qmi_request > > *req, struct qmi_msg *msg) > > { > > struct qmi_nas_get_cell_location_info_response res; > > - void *c, *t, *cell, *freq; > > + void *c, *t, *cell, *cells, *freq, *frequencies, *geran; > > int i, j; > > > > qmi_parse_nas_get_cell_location_info_response(msg, &res); > > @@ -724,6 +724,7 @@ cmd_nas_get_cell_location_info_cb(struct qmi_dev *qmi, > > struct qmi_request *req, > > > > res.data.umts_info_v2.primary_scrambling_code); > > blobmsg_add_u32(&status, "rscp", res.data.umts_info_v2.rscp); > > blobmsg_add_u32(&status, "ecio", res.data.umts_info_v2.ecio); > > + cells = blobmsg_open_array(&status, "cells"); > > for (j = 0; j < res.data.umts_info_v2.cell_n; j++) { > > cell = blobmsg_open_table(&status, NULL); > > blobmsg_add_u32(&status, "channel", > > @@ -734,6 +735,8 @@ cmd_nas_get_cell_location_info_cb(struct qmi_dev *qmi, > > struct qmi_request *req, > > blobmsg_add_u32(&status, "ecio", > > res.data.umts_info_v2.cell[j].ecio); > > blobmsg_close_table(&status, cell); > > } > > + blobmsg_close_array(&status, cells); > > + geran = blobmsg_open_array(&status, "geran"); > > for (j = 0; j < res.data.umts_info_v2.neighboring_geran_n; > > j++) { > > cell = blobmsg_open_table(&status, > > "neighboring_geran"); > > blobmsg_add_u32(&status, "channel", > > @@ -746,6 +749,7 @@ cmd_nas_get_cell_location_info_cb(struct qmi_dev *qmi, > > struct qmi_request *req, > > > > res.data.umts_info_v2.neighboring_geran[j].rssi); > > blobmsg_close_table(&status, cell); > > } > > + blobmsg_close_array(&status, geran); > > blobmsg_close_table(&status, c); > > } > > if (res.set.intrafrequency_lte_info_v2) { > > @@ -769,6 +773,7 @@ cmd_nas_get_cell_location_info_cb(struct qmi_dev *qmi, > > struct qmi_request *req, > > blobmsg_add_u32(&status, "s_intra_search_threshold", > > > > res.data.intrafrequency_lte_info_v2.s_intra_search_threshold); > > } > > + cells = blobmsg_open_array(&status, "cells"); > > for (i = 0; i < res.data.intrafrequency_lte_info_v2.cell_n; > > i++) { > > cell = blobmsg_open_table(&status, NULL); > > > > print_lte_info(res.data.intrafrequency_lte_info_v2.cell[i].physical_cell_id, > > @@ -780,11 +785,14 @@ cmd_nas_get_cell_location_info_cb(struct qmi_dev > > *qmi, struct qmi_request *req, > > > > res.data.intrafrequency_lte_info_v2.cell[i].cell_selection_rx_level); > > blobmsg_close_table(&status, cell); > > } > > + blobmsg_close_array(&status, cells); > > blobmsg_close_table(&status, c); > > } > > if (res.set.interfrequency_lte_info) { > > - if (res.data.interfrequency_lte_info.frequency_n > 0) > > + if (res.data.interfrequency_lte_info.frequency_n > 0) { > > c = blobmsg_open_table(&status, > > "interfrequency_lte_info"); > > + frequencies = blobmsg_open_array(&status, > > "frequencies"); > > + } > > for (i = 0; i < res.data.interfrequency_lte_info.frequency_n; > > i++) { > > freq = blobmsg_open_table(&status, NULL); > > blobmsg_add_u32(&status, "channel", > > @@ -795,6 +803,7 @@ cmd_nas_get_cell_location_info_cb(struct qmi_dev *qmi, > > struct qmi_request *req, > > > > res.data.interfrequency_lte_info.frequency[i].cell_selection_rx_level_high_threshold, > > > > res.data.interfrequency_lte_info.frequency[i].cell_selection_rx_level_low_threshold); > > } > > + cells = blobmsg_open_array(&status, "cells"); > > for (j = 0; j < > > res.data.interfrequency_lte_info.frequency[i].cell_n; j++) { > > cell = blobmsg_open_table(&status, NULL); > > > > print_lte_info(res.data.interfrequency_lte_info.frequency[i].cell[j].physical_cell_id, > > @@ -806,14 +815,19 @@ cmd_nas_get_cell_location_info_cb(struct qmi_dev > > *qmi, struct qmi_request *req, > > > > res.data.interfrequency_lte_info.frequency[i].cell[j].cell_selection_rx_level); > > blobmsg_close_table(&status, cell); > > } > > + blobmsg_close_array(&status, cells); > > blobmsg_close_table(&status, freq); > > } > > - if (res.data.interfrequency_lte_info.frequency_n > 0) > > + if (res.data.interfrequency_lte_info.frequency_n > 0) { > > + blobmsg_close_array(&status, frequencies); > > blobmsg_close_table(&status, c); > > + } > > } > > if (res.set.lte_info_neighboring_gsm) { > > - if (res.data.lte_info_neighboring_gsm.frequency_n > 0) > > + if (res.data.lte_info_neighboring_gsm.frequency_n > 0) { > > c = blobmsg_open_table(&status, > > "lte_info_neighboring_gsm"); > > + frequencies = blobmsg_open_array(&status, > > "frequencies"); > > + } > > for (i = 0; i < > > res.data.lte_info_neighboring_gsm.frequency_n; i++) { > > freq = blobmsg_open_table(&status, NULL); > > blobmsg_add_u32(&status, "ncc_permitted", > > @@ -823,6 +837,7 @@ cmd_nas_get_cell_location_info_cb(struct qmi_dev *qmi, > > struct qmi_request *req, > > > > res.data.lte_info_neighboring_gsm.frequency[i].cell_reselection_high_threshold, > > > > res.data.lte_info_neighboring_gsm.frequency[i].cell_reselection_low_threshold); > > } > > + cells = blobmsg_open_array(&status, "cells"); > > for (j = 0; j < > > res.data.lte_info_neighboring_gsm.frequency[i].cell_n; j++) { > > cell = blobmsg_open_table(&status, NULL); > > blobmsg_add_u32(&status, "channel", > > @@ -836,14 +851,19 @@ cmd_nas_get_cell_location_info_cb(struct qmi_dev > > *qmi, struct qmi_request *req, > > > > res.data.lte_info_neighboring_gsm.frequency[i].cell[j].cell_selection_rx_level); > > blobmsg_close_table(&status, cell); > > } > > + blobmsg_close_array(&status, cells); > > blobmsg_close_table(&status, freq); > > } > > - if (res.data.lte_info_neighboring_gsm.frequency_n > 0) > > + if (res.data.lte_info_neighboring_gsm.frequency_n > 0) { > > + blobmsg_close_array(&status, frequencies); > > blobmsg_close_table(&status, c); > > + } > > } > > if (res.set.lte_info_neighboring_wcdma) { > > - if (res.data.lte_info_neighboring_wcdma.frequency_n > 0) > > + if (res.data.lte_info_neighboring_wcdma.frequency_n > 0) { > > c = blobmsg_open_table(&status, > > "lte_info_neighboring_wcdma"); > > + frequencies = blobmsg_open_array(&status, > > "frequencies"); > > + } > > for (i = 0; i < > > res.data.lte_info_neighboring_wcdma.frequency_n; i++) { > > freq = blobmsg_open_table(&status, NULL); > > blobmsg_add_u32(&status, "channel", > > @@ -853,6 +873,7 @@ cmd_nas_get_cell_location_info_cb(struct qmi_dev *qmi, > > struct qmi_request *req, > > > > res.data.lte_info_neighboring_wcdma.frequency[i].cell_reselection_high_threshold, > > > > res.data.lte_info_neighboring_wcdma.frequency[i].cell_reselection_low_threshold); > > } > > + cells = blobmsg_open_array(&status, "cells"); > > for (j = 0; j < > > res.data.lte_info_neighboring_wcdma.frequency[i].cell_n; j++) { > > cell = blobmsg_open_table(&status, NULL); > > blobmsg_add_u32(&status, > > "primary_scrambling_code", > > @@ -866,14 +887,19 @@ cmd_nas_get_cell_location_info_cb(struct qmi_dev > > *qmi, struct qmi_request *req, > > > > res.data.lte_info_neighboring_wcdma.frequency[i].cell[j].cell_selection_rx_level); > > blobmsg_close_table(&status, cell); > > } > > + blobmsg_close_array(&status, cells); > > blobmsg_close_table(&status, freq); > > } > > - if (res.data.lte_info_neighboring_wcdma.frequency_n > 0) > > + if (res.data.lte_info_neighboring_wcdma.frequency_n > 0) { > > + blobmsg_close_array(&status, frequencies); > > blobmsg_close_table(&status, c); > > + } > > } > > if (res.set.umts_info_neighboring_lte) { > > - if (res.data.umts_info_neighboring_lte.frequency_n > 0) > > + if (res.data.umts_info_neighboring_lte.frequency_n > 0) { > > c = blobmsg_open_table(&status, > > "umts_info_neighboring_lte"); > > + frequencies = blobmsg_open_array(&status, > > "frequencies"); > > + } > > for (i = 0; i < > > res.data.umts_info_neighboring_lte.frequency_n; i++) { > > freq = blobmsg_open_table(&status, NULL); > > blobmsg_add_u32(&status, "channel", > > @@ -889,8 +915,10 @@ cmd_nas_get_cell_location_info_cb(struct qmi_dev *qmi, > > struct qmi_request *req, > > > > res.data.umts_info_neighboring_lte.frequency[i].cell_selection_rx_level); > > blobmsg_close_table(&status, freq); > > } > > - if (res.data.umts_info_neighboring_lte.frequency_n > 0) > > + if (res.data.umts_info_neighboring_lte.frequency_n > 0) { > > + blobmsg_close_array(&status, frequencies); > > blobmsg_close_table(&status, c); > > + } > > } > > blobmsg_close_table(&status, t); > > }_______________________________________________ > openwrt-devel mailing list > openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/mailman/listinfo/openwrt-devel _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel