aboutsummaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorTambet Ingo <tambet@gmail.com>2008-07-31 15:43:25 +0300
committerTambet Ingo <tambet@gmail.com>2008-07-31 15:43:25 +0300
commitcf815d39523c2f52a964a074c35b872e97d54468 (patch)
tree48fbcc1a43e24e2b7e4a887e442e04ea4a13fe4b /README
parentc375992cc2c9a7a75f39c71aed776b214ed73d78 (diff)
Write README.
Diffstat (limited to 'README')
-rw-r--r--README33
1 files changed, 33 insertions, 0 deletions
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!