Hi,

I am a developer working on a board with a Quectel Modem, and I am in charge of 
replacing our old abstraction layer with ModemManager to communicate with this 
modem.

I have been playing with ModemManager for a few days to be familiar with it. I 
have read the documentation and I have been reading also the source code to 
better understand how it works.   

However, a few fundamental questions remain for me, and I hope some people here 
may give me some clue.

First of all, when I list the modems found by MM, it returns not one, but two 
modems:

# mmcli -L
    /org/freedesktop/ModemManager1/Modem/1 [Quectel] SG520TM
    /org/freedesktop/ModemManager1/Modem/0 [Quectel] SG520TM

One of them is linked to tty USB port and communicates only with AT commands 
(ttyUSBx), the other one is linked to the PCIe port and communicates only with 
QMI (wwan0qmi0).
I do not have a wwan0at0 driver. The only way to have AT commands is through 
the ttyUSBx port.

It looks like I have two separate modems, whereas I have only one physical 
modem, connected to the board with two physical ports (usb & pcie).

The diagrams here suggest that MM can have single modems with more than one 
protocol, but on the same physical port:
https://modemmanager.org/docs/modemmanager/wwan-device-types/

Is it possible to have MM create only one modem using two different physical 
ports (ttyUSBx on USB & wwan0qmi0 on PCIe), in order to have AT & QMI 
simultaneously?

If not, does it mean that in order to have one modem with AT & QMI, I would 
need to have a working wwan0at0 driver?


My second question is about the cache handling. 
I could see that MM may use cached AT results, meaning that your plugin can 
have the result of an AT command without actually sending it (with the 
allow_cached parameter).
This is a great feature, and experience showed us that it improves dramatically 
your application latencies.

Are QMI or Dbus requests cached as well?

Regards,
Alex
-- 
 Sent with Tutanota, enjoy secure & ad-free emails. 

Reply via email to