From cf815d39523c2f52a964a074c35b872e97d54468 Mon Sep 17 00:00:00 2001 From: Tambet Ingo Date: Thu, 31 Jul 2008 15:43:25 +0300 Subject: Write README. --- README | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'README') diff --git a/README b/README index e69de29b..b260df4d 100644 --- a/README +++ b/README @@ -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! -- cgit v1.2.3-70-g09d2