[PATCH v2 2/2] command-nas: fix json output
Jan-Niklas Burfeind
git at aiyionpri.me
Mon Mar 7 06:38:41 PST 2022
Good afternoon Cezary and Oskari,
this commit is now tested as well and does output a json like this:
{
"intrafrequency_lte_info": {
"tracking_area_code": 14000,
"global_cell_id": 10498829,
"channel": 3350,
"band": 7,
"frequency": 2600,
"duplex": "FDD",
"serving_cell_id": 460,
"cells": [
{
"physical_cell_id": 460,
"rsrq": -9.900000,
"rsrp": -99.800000,
"rssi": -71.600000
},
{
"physical_cell_id": 17,
"rsrq": -14.100000,
"rsrp": -104.700000,
"rssi": -81.600000
},
{
"physical_cell_id": 445,
"rsrq": -14.400000,
"rsrp": -104.800000,
"rssi": -81.500000
},
{
"physical_cell_id": 43,
"rsrq": -19.100000,
"rsrp": -109.900000,
"rssi": -81.700000
}
]
}
}
Let me know if this does solve the problem, if one of you found time to
test it or if you have other broken json outputs for this subcommand.
Thanks so far
Jan-Niklas
On 3/7/22 13:25, Jan-Niklas Burfeind wrote:
> Disclaimer: This particular commit compiled, but has not been tested yet.
>
> On 3/7/22 13:14, Jan-Niklas Burfeind wrote:
>> Output the cells from --get-cell-location-info in an array "cells".
>>
>> Signed-off-by: Jan-Niklas Burfeind <git at aiyionpri.me>
>> ---
>> Hey Oskari,
>> I think you original author would be you?
>> Have you got any suggestions how to name the cells array, or whether
>> there's a cleaner way to fix the json output thats more how you
>> intended it to be in the first place?
>>
>> Thanks
>> Aiyion
>>
>> commands-nas.c | 6 +++++-
>> 1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/commands-nas.c b/commands-nas.c
>> index ff7a6c3..4b86304 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;
>> int i, j;
>> qmi_parse_nas_get_cell_location_info_response(msg, &res);
>> @@ -769,6 +769,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,6 +781,7 @@ 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) {
>> @@ -795,6 +797,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,6 +809,7 @@ 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)
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list