Commit Graph
1781 Commits
Author SHA1 Message Date
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
Aleksander Morgado 323df60ed9 libmm-common: `MMBearerIpConfig' won't be considered internal any more
Renamed `MMCommonBearerIpConfig' to `MMBearerIpConfig', and removed the
`MMBearerIpConfig' 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 ef9fb0bfac libmm-common: `MMSmsProperties' won't be considered internal any more
Renamed `MMCommonSmsProperties' to `MMSmsProperties', and removed the
`MMSmsProperties' 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 3ccc78e858 api: `UnlockRetries' will reply a list of per-lock retry counts
Equivalent to `PinRetryCount' in the previous API. We don't have an additional
property for the retry count of the current lock, as it really is duplicating
information.
2012-03-16 14:53:19 +01:00
Aleksander Morgado c66817622c broadband-modem: implement default facility locks status loading 2012-03-16 14:53:19 +01:00
Aleksander Morgado 491d8e03f9 iface-modem-3gpp: update facilities mask when SIM PIN lock enabling status changes 2012-03-16 14:53:19 +01:00
Aleksander Morgado a797d6d683 sim: signal when the pin lock enabling status changes 2012-03-16 14:53:18 +01:00
Aleksander Morgado eb87c2fe07 iface-modem-3gpp: load initial set of enabled facility locks 2012-03-16 14:53:18 +01:00
Aleksander Morgado 75a2b407bd modem-helpers: port facility lock related helpers to use `MMModemFacility' enums 2012-03-16 14:53:18 +01:00
Aleksander Morgado 8f200940ec tests: fix automake rule dependencies
We need to ensure all test programs are built.
2012-03-16 14:53:18 +01:00
Aleksander Morgado 64f49c0c72 iface-modem: the Command() method is only allowed when running in debug mode 2012-03-16 14:53:18 +01:00