How other applications use the ports that occupied by MM
Bjørn Mork
bjorn at mork.no
Thu Mar 21 18:16:16 UTC 2019
"Bowden, Brendan" <bbowden at presidio.com> writes:
> We're looking at using the AT port to get a few status values that
> don't appear to be readily available from QMI. One we need in
> particular is device temperature (there's a hardware failure condition
> that manifests as a very high temperature value). Of course any hints
> on how to pull this via QMI instead would be helpful also.
Temperature sensors etc are mostly system (modem) dependent, and such
commands will therefore usually be vendor specific whether they are AT
or QMI.
I don't know what modem you have, or remember if I've mentioned this
here before? But in case it is of interest to anyone: You can read the
temperature sensor (one of them) on the Sierra Wireless EM/MC74xx using
the vendor specifc 0x5556 QMI_NAS request. It returns TLVs 0x01, 0x02
and 0x10. Or mine does, at least. The temperature is the first byte of
TLV 0x01.
The rest of that TLV is sort of documented here:
https://git.mork.no/wwan.git/tree/scripts/qmi.pl#n1302
if you can decipher my hackish perl code.
Note that that script is written mostly for my debugging any nothing
else... I also use it as a place to keep notes of random stuff I
discover here and there. The structure is therefore.... not there.
An example from the EM7455 in my laptop right now. AT command returns:
at!gstatus?
!GSTATUS:
Current Time: 4885 Temperature: 29
Reset Counter: 1 Mode: ONLINE
System mode: LTE PS state: Attached
LTE band: B3 LTE bw: 20 MHz
LTE Rx chan: 1450 LTE Tx chan: 19450
LTE CA state: NOT ASSIGNED
EMM state: Registered Normal Service
RRC state: RRC Idle
IMS reg state: No Srv
PCC RxM RSSI: -56 RSRP (dBm): -82
PCC RxD RSSI: -61 RSRP (dBm): -88
Tx Power: 0 TAC: 79E1 (31201)
RSRQ (dB): -6.8 Cell ID: 010CAA02 (17607170)
SINR (dB): 10.0
OK
and QMI returns:
>>>>>> QMUX:
>>>>>> length = 39
>>>>>> flags = 0x80
>>>>>> service = "nas"
>>>>>> client = 4
>>>>>> QMI:
>>>>>> flags = "response"
>>>>>> transaction = 1
>>>>>> tlv_length = 27
>>>>>> message = (0x5556)
>>>>>> TLV:
>>>>>> type = 0x02
>>>>>> length = 4
>>>>>> value = 00:00:00:00
>>>>>> TLV:
>>>>>> type = 0x10
>>>>>> length = 9
>>>>>> value = 03:05:AA:05:FA:4B:02:00:00
>>>>>> TLV:
>>>>>> type = 0x01
>>>>>> length = 5
>>>>>> value = 1D:05:09:00:00
As you can see: I get 0x1D (29) from QMI, same as from the AT command.
Bjørn
More information about the ModemManager-devel
mailing list