Just got an EM7565. So now I can reproduce this using the GobiNet driver (version S2.30N2.48) and the QMI SDK (version SLQS04.00.11). And as expected, the result is stil the same: The firmware is off-by-one in the band values returned by SLQSNASGetLTECPHYCaInfo().
For simplest possible testing, I just added this function to the Connection_Manager sample app:
static void CAtest()
{
nasGetLTECphyCa ca;
PhyCaAggPcellInfo *p;
ULONG res;
res = SLQSNASGetLTECPHYCaInfo(&ca);
p = &ca.sPhyCaAggPcellInfo;
if( eQCWWAN_ERR_NONE == res )
{
fprintf(stderr, "pci=%d, freq=%d, dl_bw_value=%d, iLTEbandValue=%d, TlvPresent=%d\n",
p->pci, p->freq, p->dl_bw_value, p->iLTEbandValue, p->TlvPresent);
}
}
Example outout from the EM7565 is:
pci=261, freq=3050, dl_bw_value=5, iLTEbandValue=127, TlvPresent=1
and according to the SDK docs, the band values are coded as:
..
126 - LTE E-UTRA Operating Band 7
127 - LTE E-UTRA Operating Band 8
128 - LTE E-UTRA Operating Band 9
..
so the result from the firmware is obviously bogus. Channel 3050 is corect, but this channel is in band 7.
Tor some reason, the AT commands still report correct values:
at!gstatus?
!GSTATUS:
Current Time: 6542 Temperature: 28
Reset Counter: 1 Mode: ONLINE
System mode: LTE PS state: Attached
LTE band: B7 LTE bw: 20 MHz
LTE Rx chan: 3050 LTE Tx chan: 21050
LTE SSC1 state:INACTIVE LTE SSC1 band: B3
LTE SSC1 bw : Unknown LTE SSC1 chan: 1450
LTE SSC2 state:NOT ASSIGNED
LTE SSC3 state:NOT ASSIGNED
LTE SSC4 state:NOT ASSIGNED
EMM state: Registered Normal Service
RRC state: RRC Connected
IMS reg state: No Srv
PCC RxM RSSI: -63 PCC RxM RSRP: -90
PCC RxD RSSI: -64 PCC RxD RSRP: -90
SCC1 RxM RSSI: -86 SCC1 RxM RSRP: -122
SCC1 RxD RSSI: -80 SCC1 RxD RSRP: -115
Tx Power: -- TAC: 78bf (30911)
RSRQ (dB): -6.5 Cell ID: 01058802 (17139714)
SINR (dB): 23.2
OK
at!lteinfo?
!LTEINFO:
Serving: EARFCN MCC MNC TAC CID Bd D U SNR PCI RSRQ RSRP RSSI RXLV
3050 242 01 30911 01058802 7 5 5 16 261 -6.6 -91.1 -64.4 --
IntraFreq: PCI RSRQ RSRP RSSI RXLV
261 -6.6 -91.1 -64.4 --
InterFreq: EARFCN ThresholdLow ThresholdHi Priority PCI RSRQ RSRP RSSI RXLV
1450 0 0 0 0 0.0 0.0 0.0 0
1450 0 0 0 0 0.0 0.0 0.0 0
1450 0 0 0 0 0.0 0.0 0.0 0
1450 0 0 0 0 0.0 0.0 0.0 0
1450 0 0 0 0 0.0 0.0 0.0 0
1450 0 0 0 0 0.0 0.0 0.0 0
1450 0 0 0 0 0.0 0.0 0.0 0
GSM: ThreshL ThreshH Prio NCC ARFCN 1900 valid BSIC RSSI RXLV
WCDMA: UARFCN ThreshL ThreshH Prio PSC RSCP ECN0 RXLV
CDMA 1x: Chan BC Offset Phase Str
CDMA HRPD: Chan BC Offset Phase Str
OK
ati
Manufacturer: Sierra Wireless, Incorporated
Model: EM7565
Revision: SWI9X50C_01.00.02.00 6ff48a jenkins 2017/09/29 05:54:26
MEID: 359260080xxxxx
IMEI: 359260080xxxxx5
IMEI SV: 2
FSN: UF7424865xxxxx
+GCAP: +CGSM
OK
BTW, there is an error in the docs of the PhyCaAggPcellInfo struct in the SDK: It doesn’t document the iLTEbandValue field, but instead docuemnts a ‘scell_state’ field which does not exist in this struct. Obvious copy-and-paste error when coyping the PhyCaAggScellInfo struct docs…