Write README.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
ModemManager.
|
||||
The porblem ModemManager tries to solve is to provide a unified high level API
|
||||
for communicating with (mobile broadband) modems. While the basic commands are
|
||||
standardized, the more advanced operations (like signal quality monitoring
|
||||
while connected) varies a lot.
|
||||
|
||||
Using.
|
||||
ModemManager is a system daemon and is not meant to be used directly from
|
||||
the command line. However, since it provides DBus API, it is possible to use
|
||||
'dbus-send' command to control it from the terminal. There's an example
|
||||
program (tests/mm-test.py) that demonstrates the basic API usage.
|
||||
|
||||
Implementation.
|
||||
ModemManager is a DBus system bus activated service (meaning it's started
|
||||
automatically when a request arrives). It is written in C. The devices are
|
||||
queried from HAL and automatically updated based on hardware events. There's
|
||||
a GInterface (MMModem) that defines the modem interface and any device specific
|
||||
implementation must implement it. There are two generic MMModem implementations
|
||||
to support the basic operations (one for GSM, one for CDMA,) which are common
|
||||
for all cards.
|
||||
|
||||
Plugins.
|
||||
Plugins are loaded on startup, and must implement the MMPlugin interface. It
|
||||
consists of a couple of methods to which tell the daemon whether the plugin
|
||||
supports a HAL UDI and to create custom MMModem implementations. It most likely
|
||||
makes sense to derive custom modem implementations to one of the generic classes
|
||||
and just add (or override) operations which are not standard. There's a fully
|
||||
working plugin in the plugins/ directory for Huawei cards that can be used as
|
||||
an example for writing new plugins. Writing new plugins is highly encouraged!
|
||||
|
||||
API.
|
||||
The API is open for changes, so if you're writing a plugin and need to add or
|
||||
change some public method, feel free to suggest it!
|
||||
|
||||
Reference in New Issue
Block a user