nas, qmicli: Added 5G signal info TLV's

Added 5G signal info and 5G signal info extended TLV's, which contain
RSRP, RSRQ and SNR when the 5G signal is active, if the signal
is not active the value -32768 is returned.

This has been tested with a Quectel RM500Q modem connected to a 5G
Amari callbox in 5G NSA mode, the values returned by the TLV's where
verified against the AT+ENG="servingcell" command.

    > qmicli -d /dev/cdc-wdm0 -p --nas-get-signal-info

    [/dev/cdc-wdm0] Successfully got signal info

    LTE:
            RSSI: '-47 dBm'
            RSRQ: '-5 dB'
            RSRP: '-70 dBm'
            SNR: '30.0 dB'

    5G:
            RSRP: '-75 dBm'
            SNR: '18.5 dB'
            RSRQ: '-11 dB'

    >mmcli -m 0 --command=+qeng=\"servingcell\"
    response: '+QENG: "servingcell","NOCONN"
    +QENG: "LTE","FDD",1,01,1A2D001,1,1575,3,3,3,1,-70,-9,-46,25,-
    +QENG:"NR5G-NSA",1,01,500,-75,180,-11'
diff --git a/AUTHORS b/AUTHORS
index c17ed70..0bd6001 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -44,3 +44,4 @@
   Yanko Kaneti
   Nick Black
   Thomas Tuttle
+  Walter Hagstrom
\ No newline at end of file
diff --git a/data/qmi-service-nas.json b/data/qmi-service-nas.json
index 60d7d28..b490a4d 100644
--- a/data/qmi-service-nas.json
+++ b/data/qmi-service-nas.json
@@ -3263,7 +3263,34 @@
                       "id"        : "0x15",
                       "type"      : "TLV",
                       "since"     : "1.0",
-                      "format"    : "gint8" } ] },
+                      "format"    : "gint8" } ,
+                    { "name"      : "TDMA Signal Strength Extended",
+                      "id"        : "0x16",
+                      "type"      : "TLV",
+                      "since"     : "1.28",
+                      "format"    : "sequence",
+                      "contents"  : [ { "name"   : "RSSI",
+                                        "format" : "gint32" },
+                                      { "name"   : "RSCP",
+                                        "format" : "gint32" },
+                                      { "name"   : "ECIO",
+                                        "format" : "gint32" },
+                                      { "name"   : "SINR",
+                                        "format" : "gint32" } ] },
+                    { "name"      : "5G Signal Strength",
+                      "id"        : "0x17",
+                      "type"      : "TLV",
+                      "since"     : "1.28",
+                      "format"    : "sequence",
+                      "contents"  : [ { "name"   : "RSRP",
+                                        "format" : "gint16" },
+                                      { "name"   : "SNR",
+                                        "format" : "gint16" } ] },
+                    { "name"      : "5G Signal Strength Extended",
+                      "id"        : "0x18",
+                      "type"      : "TLV",
+                      "since"     : "1.28",
+                      "format"    : "gint16" } ] },
 
   // *********************************************************************************
   {  "name"    : "Config Signal Info",
diff --git a/src/qmicli/qmicli-nas.c b/src/qmicli/qmicli-nas.c
index 7f5ba63..1797932 100644
--- a/src/qmicli/qmicli-nas.c
+++ b/src/qmicli/qmicli-nas.c
@@ -318,6 +318,11 @@
     gint16 rsrp;
     gint16 snr;
     gint8 rscp;
+    gint16 rsrq_5g;
+    gint32 rssi_tdma;
+    gint32 rscp_tdma;
+    gint32 ecio_tdma;
+    gint32 sinr_tdma;
 
     output = qmi_client_nas_get_signal_info_finish (client, res, &error);
     if (!output) {
@@ -421,6 +426,43 @@
                  rscp);
     }
 
+    /* TDMA extended */
+    if (qmi_message_nas_get_signal_info_output_get_tdma_signal_strength_extended (output,
+                                                                                  &rssi_tdma,
+                                                                                  &rscp_tdma,
+                                                                                  &ecio_tdma,
+                                                                                  &sinr_tdma,
+                                                                                  NULL)) {
+        g_print ("\tRSSI: '%d dB'\n"
+                 "\tRSCP: '%d dBm'\n"
+                 "\tECIO: '%d dBm'\n"
+                 "\tSINR: '%d dB'\n",
+                 rssi_tdma,
+                 rscp_tdma,
+                 ecio_tdma,
+                 sinr_tdma);
+    }
+
+    /* 5G, values of -32768 in EN-DC mode indicate the modem is not connected... */
+    if (qmi_message_nas_get_signal_info_output_get_5g_signal_strength (output,
+                                                                       &rsrp,
+                                                                       &snr,
+                                                                       NULL)) {
+        g_print ("5G:\n"
+                 "\tRSRP: '%d dBm'\n"
+                 "\tSNR: '%.1lf dB'\n",
+                 rsrp,
+                 (0.1) * ((gdouble)snr));
+    }
+
+    /* 5G extended... */
+    if (qmi_message_nas_get_signal_info_output_get_5g_signal_strength_extended (output,
+                                                                                &rsrq_5g,
+                                                                                NULL)) {
+        g_print ("\tRSRQ: '%d dB'\n",
+                 rsrq_5g);
+    }
+
     qmi_message_nas_get_signal_info_output_unref (output);
     operation_shutdown (TRUE);
 }