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 <[email protected]> Suggested-by: Oskari Lemmelä <[email protected]> Signed-off-by: Jan-Niklas Burfeind <[email protected]> --- 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); }
v2_testresult.json
Description: application/json
_______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
