On Mon, 2015-08-31 at 19:37 +0100, João M. S. Silva wrote: > Hi, > > I am using ModemManager to control an HSDPA modem: > > $ lsusb > Bus 001 Device 004: ID 12d1:1001 Huawei Technologies Co., Ltd. > E169/E620/E800 HSDPA Modem > > But now we are testing this device: SIM800L from SIMCom. > > This modem understands AT commands that we send through a terminal > program, like miniterm.py or so. > > My question is: how does ModemManager relate to AT commands? Is it a > wrapper for AT commands, i.e. in an higher abstraction layer?
Yes, or for MBIM or QMI or whatever. ModemManager exposes a higher-level D-Bus API and translates requests from that API into commands sent to the modem, regardless of what kind of command interface that modem has. > We cannot use ModemManager for this SIM800L module since it uses a > serial connection and not DBus, is this correct? Not quite correct. ModemManager does not use D-Bus to talk to the modem; it uses D-Bus to talk to client applications. To talk to the modem, MM uses the protocol that the modem supports (eg AT-over-serial, AT-over-WDM, MBIM, QMI, or QCDM-over-serial) to speak with the kernel driver, which then formats the data correctly for the modem itself. So your SIMCom device will have serial lines that a kernel driver knows how to control, and the kernel exposes a device node (like ttyACM0 or ttyUSB0 or cdc-wdm0), which is what ModemManager then uses to control the device based on what requests client applications make via MM's D-Bus API. The only caveat here is that many modems use proprietary AT commands for some of their functionality, and if there is no support in ModemManager for those commands some functions may not be available. MM has a SimTech/SimCom plugin already, but for other SimCom devices that appear to support different commands than the 800L. Dan _______________________________________________ ModemManager-devel mailing list ModemManager-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/modemmanager-devel