Commit Graph
49 Commits
Author SHA1 Message Date
Aleksander Morgado 27e1d97aca port-probe: new cache of Port Probe results
Whenever a plugin has probed for some information in a given port, that data
should be available for any other plugin wanting it during its own probing
process. This new cache of Port Probe results allows to easily retrieve the
already probed information.
2012-03-15 14:14:20 +01:00
Aleksander Morgado 6816c2e61d port-probe: enable probing for AT support
We will initially probe for AT support in the port.
2012-03-15 14:14:20 +01:00
Aleksander Morgado d7238403c4 port-probe: new type to define commands used during probing
The new `MMPortProbeAtCommand' type defines what command will be sent to the
serial AT port, and also a response processor method to parse the string
returned by the port.

The response processor gets as input either the text reply string or an error,
and it should give as output either a GValue (type depends on the probing kind
being done) or a new error (which will force the whole probing process to be
aborted.
2012-03-15 14:14:20 +01:00
Aleksander Morgado 74145f5af7 port-probe: new MMPortProbe object 2012-03-15 14:14:20 +01:00
Aleksander Morgado 03655fcf9f plugin-manager: new MMPluginManager object 2012-03-15 14:14:19 +01:00
Aleksander Morgado 6b69605633 build: chain up new 0.6 API and link against libmm-common
Also removed the MMSerialError implementation from `src/mm-errors.[h|c]', as it
is now included in the new `include/ModemManager-errors.h' header file. All the
other enums and errors without clashing names will be ported afterwards to the
new base code.
2012-03-15 14:14:19 +01:00
Thomas Tuttle 7f12201494 time: implement MMModemTime boilerplate
Signed-off-by: Thomas Tuttle <ttuttle@chromium.org>
2012-01-25 15:54:28 -06:00
Aleksander Morgado 5f24703b12 build: mm-modem-gsm.h no longer exists 2011-10-17 09:39:43 +02:00
Thomas Tuttle 953701a6f8 modem: add firmware interface 2011-09-08 17:20:00 -04:00
Aleksander Morgado ea23851326 api: use common ModemManager.h for API, core and plugins 2011-08-19 22:54:48 +02:00
Nathan Williams e5faa242e9 sms: split SMS parsing out into a separate file
In preparation for adding tests.

Change-Id: If1ebd0fdd6e7470c21538042ab1735357649155c
2011-07-25 01:18:16 -05:00
Dan Williams 16039244bb core: rework logging
Make it more flexible, add logging to a file, and absolute and
relative timestamps.
2011-01-23 20:51:48 -06:00
Elly Jones 245818de33 Install xml files so they can be used by cromo (chromeos modem manager)
Amended: Install the files under their proper DBus names.

Review URL: http://codereview.chromium.org/1618004
(cherry picked from commit 89f7f05f1294485fa8b44cfdd3c9b0d924d45ac1)

Conflicts:

	Makefile.am

Change-Id: I65b2b0c1b5e579bb5b1d5d5b390c3be2ae49543c
2010-12-20 12:23:41 -05:00
Dan Williams d2ce75b57a core: separate PropertiesChanged signal XML
Which requires that we turn it into a GInterface that MMModemBase
can implement, because dbus-glib does not allow attaching more
than one introspection glue structure to an object at a time.

Also implement the standard D-Bus properties changed signal.
2010-12-17 16:27:55 -06:00
Dan Williams 592d71ff76 core: work around udev parallel startup race
Ignore devices that aren't completely configured by udev yet.  If
ModemManager is started in parallel with udev, explicitly requesting
devices may return devices for which not all udev rules have yet been
applied (a bug in udev/gudev).  Since we often need those rules to match
the device to a specific ModemManager driver, we need to ensure that all
rules have been processed before handling a device.

Do this by adding an item to the environment of each device that MM
might possibly be interested in, and ignoring devices that don't
have that.  When the device is fully processed by udev, MM will get
an 'add' event and the device will have all rules applied.
2010-12-08 17:04:59 -06:00
Guido Günther 3c13d9aec8 gsm: add preliminary USSD support (bgo #590798)
We currently convert to and from the modem's set charset and always pass
'15' as the data coding scheme. Passing the correct data coding scheme
as third argument to CUSD only upsets the network. This contradicts 3GPP
TS 23.038. Other tools like gsm-ussd handle it the same way.

Network responses that require further actions are not yet implemented.

(some fixes and cleanups by Dan Williams)
2010-11-05 14:50:50 -05:00
Dan Williams 6921a9f71d core: unconditionally enable the Location Services API
This required dbus-glib 0.86 or later, which was released 2010-03-24.
2010-11-05 14:03:44 -05:00
Dan Williams 1dae103484 build: create convenience serial library
For better unit testing.
2010-10-14 00:10:18 -05:00
Dan Williams b4d3ab014d build: use automake silent rules 2010-08-05 22:51:28 -05:00
Torgny Johansson 8873c0a7dc gsm: add GetOperatorID method
Returns the ID of the operator that issued the SIM card.

Cleanups and get_mnc_length_done() by me (dcbw).
2010-06-22 16:50:21 -07:00
Dan Williams 1864d8da07 core: add platform device support and whitelist 2010-04-29 12:17:56 -07:00
Dan Williams 44deca2c5a core: blacklist Gemplus smarcard reader (bgo #608022) 2010-04-09 19:38:22 -07:00
Dan Williams 387b64a92b core: allow blacklisting various devices (rh #544121) (bgo #608022) 2010-04-09 19:22:19 -07:00
Dan Williams 0d381e2f11 gsm: fix CSCS=? parsing and add testcases
Some devices (at least one Blackberry we know about) don't include
the () around the response.  Handle that and add testcases for it.
2010-04-09 13:50:45 -07:00
Dan Williams 2f1fbfb520 core: only enable location API for dbus-glib >= 0.86 2010-04-04 09:17:08 -07:00
Dan Williams bb62cfe07a core: add base location API implementation 2010-03-18 18:08:23 -07:00
Dan Williams 2a94d38edc core: move charset enum/string conversion to it's own file 2010-03-13 16:37:24 -08:00
Dan Williams ef749399fd build: fix distcheck error 2010-03-12 15:31:29 -08:00
Dan Williams f6c514897e Merge remote branch 'origin/master' into qcdm 2010-03-01 09:07:05 -08:00
Dan Williams 28d065c1f1 core: implement optional PolicyKit-based authentication 2010-02-27 12:51:13 -08:00
Dan Williams 3b6a58145f core: simply authentication request objects 2010-02-27 10:29:34 -08:00
Dan Williams 438a047935 core: add authorization providers and optional PolicyKit support
When the support is complete, use --with-polkit to enable
PolicyKit support.  It's not there yet, but this commit adds an
authorization provider framework which will be extended to allow
hooking into PolicyKit.
2010-02-26 18:01:55 -08:00
Dan Williams 7a0373afee qcdm: add serial port subclass skeleton 2010-02-23 11:41:40 -08:00
Dan Williams a8c7bba19e serial: refactor MMSerialPort into a base class and an AT-capable serial port
For QCDM devices we want most of what MMSerialPort does, but not
the AT command handling stuff since the commands and responses
aren't AT commands nor are they even strings.  So convert everything
that MMSerialPort does into a GByteArray, and let MMAtSerialPort
handle the conversion to strings when necessary.
2010-02-20 14:55:10 -08:00
Dan Williams 216e49f8d8 gsm: split out +COPS response parsing and add testcases 2010-01-05 14:29:19 -06:00
Dan Williams b94627572f core: implement a PropertiesChanged signal for the MMModem class
At the moment only the Enabled property is exported.
2009-12-22 16:58:23 -08:00
Dan Williams 2d194a5798 gsm: harmonize band/mode enums
Use the same enum for set/get of band and mode, as for exposing the
device's capabilities.
2009-08-05 13:03:59 -04:00
Dan Williams d5a43aa862 udev: modem port refactor; convert 'hso' to udev
Create a base MMPort class to handle both tty and net ports generically,
and move plugins over to that.  Also port the 'hso' plugin to udev.
2009-06-20 10:49:09 -04:00
Dan Williams 88bdb5d29a plugin: add a base class to handle modem tracking 2009-06-19 11:55:31 -04:00
Dan Williams 924814c101 udev: move device probing and detection to udev
Get rid of dependency on HAL, using libgudev instead.  Fix up the plugin API
to no longer use either HAL or udev defines, but let plugins use whatever
mechanism they want for getting more information out of the device given the
subsystem and device node name.

Modems are now defined as "master" devices which "own" a one or more ports.
A port could be a serial tty device or a network device or whatever.  The
plugin figures out whether it supports a given port or not and then assigns
it to a new or existing modem.  Modems now have a 'valid' property that
should be set to TRUE when the modem has enough ports to operate correctly.
For devices (ex. 'hso') that use a network device for data transfer, the
modem would need to grab at least one TTY and the network device associated
with that physical device to be 'valid'.

Also move the generic modem support code to a plugin like other modem plugins,
and change the I-support-this-device mechanism to return a number indicating
the level of support.  For example, the generic plugin would return a quite
low number if the device indicates via probing that it can do GSM or CDMA, but
a more specific plugin can indicate better support for the device, and thus
the more specific plugin would win control.
2009-06-18 14:25:30 -04:00
Tambet Ingo 45f32e7e09 Implement sending SMS messages.
Add a test program to use the newly added method.
2009-03-23 15:05:15 +02:00
Tambet Ingo 1215bd6a9d Rework unsolicited message handling.
Implement registration using unsolicited messages for generic GSM class (which
is disabled by default, HSO and Huawei plugins enable it).

Modify all GSM modem subclasses that used unsolicited messages to use the new
method.
2009-02-18 14:48:08 +02:00
Tambet Ingo 17b739c73d Implement simple interface. 2009-01-19 10:45:18 +02:00
Tambet Ingo f82b187c2b Move the string parser with regexp from huawei plugin to generic utility function.
It's useful for other modems too that need to strip unsolicited messages from
responses.
2008-10-24 16:20:22 +03:00
Tambet Ingo da3bbdc893 Add marshallers so that RegistrationInfo signal can be enabled. 2008-09-16 13:10:44 +03:00
Tambet Ingo ac4409e7ce Rewrite serial device communications.
Instead of vague "send something, wait something" the responses are now
analyzed by (overridable) parsers. Makes all the modem implementations much
easier since each caller knows without any code whether the call succeeded
or failed.

Another thing that makes modem code simpler (and the whole thing more robust),
is the queueing of sent commands. Each queued command has a command and a
callback which is quaranteed to get called, even if sending failed.

Define and implement error reporting.
2008-09-11 08:35:32 +03:00
Tambet Ingo 424f514b02 Implement the more granular GSM interfaces as agreed on NM mailing list.
Convert all exisiting code over to new DBus interfaces.
2008-08-29 11:43:36 +03:00
Tambet Ingo 149b41f220 Implement per modem type DBus interfaces.
A major code reorganization.
2008-08-21 09:11:17 +03:00
Tambet Ingo cc31458b18 Initial commit. 2008-07-31 09:43:00 +03:00