Difference between modem query nas get-cell-location-info and modem query nas get-signal-info


#1

Hi all.
I am currently using the Sierra MC7455 for some experiments. I wanted to ask if somebody has any idea what is the difference between the modem query nas get-signal-info and the modem query nas get-cell-location-info commands in terms of RSRP and RSRQ and RSSI values. When I issue the command
modem query nas get-cell-location-info i get the following message back:
{‘Successfully got signal info’: ‘’, ‘LTE’: {‘RSSI’: ‘-63 dBm’, ‘RSRQ’: ‘-11 dB’, ‘RSRP’: ‘-91 dBm’, ‘SNR’: ‘12.0 dB’}}
But with the command modem query nas get-cell-location-info I get the following values from the serving cell:
‘Intrafrequency LTE Info’: {‘PLMN’: ‘27201’, ‘Cell [0]’: {‘RSSI’: ‘-66.5 dBm’, ‘RSRQ’: ‘-8.7 dB’, ‘RSRP’: ‘-94.1 dBm’, ‘Physical Cell ID’: ‘4’, ‘Cell Selection RX Level’: ‘27’}. Both of the measurements were taken almost at the same moment, and the modem is not moving, so I cannot explain myself where the different values come from. By looking at the 3gpp standards only the cell should provide the RSRQ and RSRP not the UE, so I assume both commands get the data from the ENode B. I also look at the source code of the libqmi Library and have seen that for the modem query nas get-signal-info command, the output is 8 and 16 bit : get_signal_info_ready (QmiClientNas *client,
GAsyncResult *res)
{
QmiMessageNasGetSignalInfoOutput *output;
GError *error = NULL;
gint8 rssi;
gint16 ecio;
QmiNasEvdoSinrLevel sinr_level;
gint32 io;
gint8 rsrq;
gint16 rsrp;
gint16 snr;
gint8 rscp;
And by looking at get cell location function, it looks like this:
for (i = 0; i < array->len; i++) {
QmiMessageNasGetCellLocationInfoOutputIntrafrequencyLteInfoCellElement *element;

        element = &g_array_index (array, QmiMessageNasGetCellLocationInfoOutputIntrafrequencyLteInfoCellElement, i);
        g_print ("\tCell [%u]:\n"
                 "\t\tPhysical Cell ID: '%" G_GUINT16_FORMAT"'\n"
                 "\t\tRSRQ: '%.1lf' dB\n"
                 "\t\tRSRP: '%.1lf' dBm\n"
                 "\t\tRSSI: '%.1lf' dBm\n",
                 i,
                 element->physical_cell_id,
                 (gdouble) element->rsrq * 0.1,
                 (gdouble) element->rsrp * 0.1,
                 (gdouble) element->rssi * 0.1);

Is this difference explainable with the way the two function fetch the data and then present it ?
I would be thankful if someone could help me with this.
Regards

Georgi