Hi Jan, The comments are below.
On 18.3.2022 13.33, Jan-Niklas Burfeind wrote: > Hello Henrik, > > I think changing the print_system_info function would require us to > change its signature, wouldn't it? > > The function is called with similar parameters from 2g,3g and 4g > pendants. As the calculation and target values differ we'd need to add > a uint for geneneration. > > If that info is already extractable from another parameter let me know. > Else I'd implement a modified print function this weekend, that meets > your reccomendation. > > Any suggestions on the other two commits? > > Jan-Niklas > > > On 3/16/22 22:00, Henrik Ginstmark wrote: >> 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, >> I was thinking about this, but since computing and terms vary between technologies, I didn’t implement it I also recommend leaving global_cell_id and only adding extra fields. For example, the public cellmapper.net uses these global cell IDs for different sectors. >> 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. >>>> These res.data.umts_info_v2.neighboring_geran_n are only GSM channels adjacent to UTMS. Perhaps the use of channels is a better term because frequencies can be a little misleading. frequency_bands would be more accurate than just frequencies. So I would use the term channels. I would replace geran with channels, too. >>>> 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 > > _______________________________________________ > 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