Commit Graph
1291 Commits
Author SHA1 Message Date
Aleksander Morgado 9eebb75ca3 iface-modem-messaging: let initialization and enabling sequences get cancelled 2012-03-16 14:53:24 +01:00
Aleksander Morgado 2c4a69b190 iface-modem-location: let initialization and enabling sequences get cancelled 2012-03-16 14:53:24 +01:00
Aleksander Morgado fea2ef0e5c iface-modem-cdma: let initialization and enabling sequences get cancelled 2012-03-16 14:53:24 +01:00
Aleksander Morgado 0d4b644572 iface-modem-3gpp: let initialization and enabling sequences get cancelled 2012-03-16 14:53:24 +01:00
Aleksander Morgado e140ff3c5f iface-modem: let initialization and enabling sequences get cancelled 2012-03-16 14:53:24 +01:00
Aleksander Morgado d27e40ae9a core: new `Initializing' state in the global modem state machine
We need to define a state to be used while the modem is being initialized, so
that we forbid any operation on the modem on already exported interfaces, while
there are interfaces pending to get exported.

This Initializing state will also cover the state between having the SIM
unlocked (which launches re-initialization) and being completely initialized.
2012-03-16 14:53:24 +01:00
Aleksander Morgado 6de2e3f72c sim: don't require the Modem object in the context
It's already easily available in self->priv->modem;
2012-03-16 14:53:24 +01:00
Aleksander Morgado 3a22128d9e iface-modem: don't leave locked state until re-initialization is complete 2012-03-16 14:53:24 +01:00
Aleksander Morgado be7f499aa6 broadband-modem: set cancellations in the initialization, enabling and disabling sequences 2012-03-16 14:53:23 +01:00
Aleksander Morgado 181f9c85f0 log: only include LOC and method name in debug logs if running with --debug
If the modem is started with --log-level=DEBUG, they will not be shown.
2012-03-16 14:53:23 +01:00
Aleksander Morgado cdd339f802 base-modem: implement new modem-wide cancellable, and rework AT commands
Instead of the `_in_port()' variants, we'll provide more generic
`_full()' methods. These should be used either if we want to send commands
to a specific port, or if we want to use a specific user-provided GCancellable.

In addition to this user-provided GCancellable, we keep the internal modem-wide
one.
2012-03-16 14:53:23 +01:00
Aleksander Morgado 215c278082 base-modem: new modem-wide cancellable, passed to every state machine 2012-03-16 14:53:23 +01:00
Aleksander Morgado 7bfc56c2a8 base-modem-at: set error if NULL port detected
Users of mm_base_modem_at_command_in_port() can now directly pass the result
of mm_base_modem_peek_port_primary() or mm_base_modem_peek_port_secondary(),
which may be NULL if no such port exists in the modem. So we'll gracefully
detect the NULL port and complete the async operation with an error.
2012-03-16 14:53:23 +01:00
Aleksander Morgado cc6d4a97fb base-modem: new port getters and peekers
* mm_base_modem_peek_port_* () will return either a port object (no new
reference), or NULL if none available.

You would usually peek() a port if you're going to use it just in the current
method, as there is no way to that reference to get invalid (we're single
threaded).

 * mm_base_modem_get_port_* () will return either NEW references to valid
port objects, or NULL if none available.

And, you would usually get() a port, whenever you want the port object to be
valid even out of the current method, for example when keeping it in the
context of an async operation.

Also, we need to consider that the primary AT port MAY BE NULL when you
peek() or get() it. This is due to the fact that we may be releasing ports
(due to device disconnection) in the middle of async operations.
2012-03-16 14:53:23 +01:00
Aleksander Morgado 48285dcfdf serial-port: forcing to close a port is an internal operation
Ports being forced to get closed will only happen when we get a HUP error
in the serial port (e.g. device got disconnected).
2012-03-16 14:53:23 +01:00
Aleksander Morgado 4f59a696fc serial-port: don't warn when trying to close a port which was forced to be closed 2012-03-16 14:53:23 +01:00
Aleksander Morgado 4bdfd25de1 base-modem: when getting best AT port, assume we may have lost specific ports
Don't assume that primary port is always set.
2012-03-16 14:53:23 +01:00
Aleksander Morgado c24012ef1b plugin-base: handle the case of expecting a single AT port
If we only expect a single AT port, we'll cancel all remaining AT port probings
in the other ports, as soon as we get the first one.
2012-03-16 14:53:22 +01:00
Aleksander Morgado dc58cce7c4 port-probe: allow cancelling all AT probing steps 2012-03-16 14:53:22 +01:00
Aleksander Morgado 9fbddcb8a9 plugin-base: new property to specify that only one single AT port is expected
Will allow us to cancel other AT probings as soon as the first AT port is
grabbed.
2012-03-16 14:53:22 +01:00
Aleksander Morgado 690777986b port-probe: refactor AT command handling
Make it use a GVariant in the response processor, as the AT command handling in
the MMBaseModem.
2012-03-16 14:53:22 +01:00
Aleksander Morgado 1e19273340 serial-parsers: new method to check if a given error was set by the parser 2012-03-16 14:53:22 +01:00
Aleksander Morgado ef2b1cf030 at-serial-port: allow cancelling the response timeout 2012-03-16 14:53:22 +01:00
Aleksander Morgado 5a485d74a2 qcdm-serial-port: allow cancelling the response timeout 2012-03-16 14:53:22 +01:00
Aleksander Morgado 9b38cd4f5c serial-port: allow cancelling the response timeout 2012-03-16 14:53:22 +01:00
Aleksander Morgado 64d83737fe serial-parsers: remove v0 and v1_e1 parsers, which are unused
Given that we now perform our own built-in echo removal in the v1 parser, we no
longer need the v1_e1 parser.

The v0 parser was also unused from long ago.
2012-03-16 14:53:22 +01:00
Aleksander Morgado 05e2ce862d port-probe: log the list of probing tasks to be run 2012-03-16 14:53:22 +01:00
Aleksander Morgado 66984e77cd port-probe: convert port probe flags to a private enum 2012-03-16 14:53:22 +01:00
Aleksander Morgado 1f250585dd modem-helpers: refactor and reorganize sources 2012-03-16 14:53:21 +01:00
Aleksander Morgado c824ee3106 broadband-modem: implement own numbers generic loading 2012-03-16 14:53:21 +01:00
Aleksander Morgado 51c28d0f79 modem-helpers: new +CNUM response parser and tests 2012-03-16 14:53:21 +01:00
Aleksander Morgado 4a52a19c41 tests,modem-helpers: cleanup tests
Properly order the tests in blocks, and ensure that the common data for
registration tests is not passed to other non-registration related tests.
2012-03-16 14:53:21 +01:00
Aleksander Morgado 4c38ab4864 test,modem-helpers: remove conditional compilation
We require already GLib 2.30
2012-03-16 14:53:21 +01:00
Aleksander Morgado 2dcff5590e iface-modem: setup loading of own numbers during the initialization phase 2012-03-16 14:53:21 +01:00
Aleksander Morgado 22113859c9 messaging: part index may be repeated in different storages 2012-03-16 14:53:21 +01:00
Aleksander Morgado 120e117c49 time: removed old interface sources 2012-03-16 14:53:21 +01:00
Aleksander Morgado a339546c45 iface-modem-time: setup generic unsolicited message handling
Modems may get notified via unsolicited messages (either AT or QMI or some
other thing), that the network time was updated. This setup allows subclasses
implementing the Time interface to setup/cleanup and enable/disable the
unsolicited messages, as well as notify about the network time updates.
2012-03-16 14:53:21 +01:00
Aleksander Morgado 5b01df5baa iface-modem-time: handle `GetNetworkTime' 2012-03-16 14:53:21 +01:00
Aleksander Morgado 10669881a5 iface-modem-time: only retry if MM_CORE_ERROR_RETRY was returned
We don't want to retry if the error is fatal in some other kind, e.g. a reply
parsing error or something.
2012-03-16 14:53:20 +01:00
Aleksander Morgado 6e75399629 iface-modem-time: load network timezone information
Following the same logic as in the original implementation, we try to load the
network timezone information only after being registered, and also with up to N
retries. The async operation in charge of the loading can be cancelled
gracefully, i.e. if the interface is disabled before we get ever registered.
2012-03-16 14:53:20 +01:00
Aleksander Morgado df4e713124 broadband-modem: implement the Time interface 2012-03-16 14:53:20 +01:00
Aleksander Morgado 16cf2a49f6 iface-modem-time: new interface to handle the Time DBus interface 2012-03-16 14:53:20 +01:00
Aleksander Morgado 52ff02323d plugin-manager: avoid race when port deferred until suggested and suggestion already there
It may happen that we launch the supports task in the port AFTER having received
the suggestion.
2012-03-16 14:53:20 +01:00
Aleksander Morgado f8f0969289 plugin-base: log also when starting to check support
So that we get logs when net ports are being checked for support, which won't be
probed.
2012-03-16 14:53:20 +01:00
Aleksander Morgado 9c5c072bab iface-modem: fix signal name 2012-03-16 14:53:20 +01:00
Aleksander Morgado 41fe01b217 sim: update unlock retry counts after PIN change/enable operations 2012-03-16 14:53:20 +01:00
Aleksander Morgado cd63df938f libmm-common: `MMSimpleStatus' won't be considered internal any more
Renamed `MMCommonSimpleProperties' to `MMSimpleStatus', and removed the
`MMSimpleStatusProperties' provided in libmm-glib. We'll just use the original
one from libmm-common always.
2012-03-16 14:53:20 +01:00
Aleksander Morgado bb352d5da3 libmm-common: `MMLocation3gpp' won't be considered internal any more
Renamed `MMCommonLocation3gpp' to `MMLocation3gpp', and removed the
`MMModemLocation3gpp' provided in libmm-glib. We'll just use the original one
from libmm-common always.
2012-03-16 14:53:19 +01:00
Aleksander Morgado 1385eb394f libmm-common: `MMSimpleConnectProperties' won't be considered internal any more
Renamed `MMCommonConnectProperties' to `MMSimpleConnectProperties', and removed
the `MMModemSimpleConnectProperties' provided in libmm-glib. We'll just use the
original one from libmm-common always.
2012-03-16 14:53:19 +01:00
Aleksander Morgado d306bb082f libmm-common: `MMBearerProperties' won't be considered internal any more
Renamed `MMCommonBearerProperties' to `MMBearerProperties', and removed the
`MMBearerProperties' provided in libmm-glib. We'll just use the original one
from libmm-common always.
2012-03-16 14:53:19 +01:00