Age | Commit message (Collapse) | Author |
|
|
|
Allow subclasses to override disconnect more cleanly so that
modem state gets handled correctly when the disconnect is complete.
Also fix up PDP Context ID handle (cid) so that subclasses can
get the previously-activated context ID when disconnecting, and let
the cid be an int since '0' is a valid context number.
For the generic devices, this also attempts to actually deactivate
the PDP context to ensure that the data session is terminated.
|
|
With the PIN changes, the primary port would already be closed
by the time the Novatel modem class was able to send the DMAT
command to enable the secondary ports. Just try again later.
|
|
|
|
Reg status returned here is cached reg status, so it's pointless to
set it here again.
|
|
Ensure we send out signals when anything changes.
|
|
When a modem sends both CREG and CGREG in the same response packet,
the parser was failing to correctly distinguish which response
was being parsed, since the string passed to g_regex_match() is
the whole response including both CREG + CGREG.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Loosely based on oFono, from Pablo Marti.
|
|
|
|
This seems to help with Huawei and ZTE devices which often
appeared to stop responding on either primary or secondary ports
at various times. We had this problem a long time ago, but it was
fixed then by always picking the right serial port via the USB
interface number (Huawei) or udev rules files (ZTE). Now that we're
using the second serial port more extensively the problem came
up again, so lets try to fix it for real.
|
|
For now...
|
|
|
|
Can't schedule the info completion until we're sure all the
requests have completed. They won't necessarily be completed
in the same order they were issued since some of the data the
requests pull from could be cached and thus we don't have to
wait in the queue to hit up the modem.
|
|
|
|
|
|
Using the USB product ID to direct certain modems to the generic
driver is wrong since even new modems like the E1550 are 0x1001
after the modeswitch. Instead, lets assume that most current modes
use the Huawei-specific AT command set.
|
|
As with allowed modes, make things clearer and simpler by giving
access technology it's own values.
|
|
Instead of trying to stuff everything into the mode bitfield it
turns out it's just easier, clearer, and simpler to use different
values for each of the following:
1) the device's supported access technologies and allowed modes
2) the device's current access technology
3) the device's allowed mode preference
Since none of the AccessTechnology or AllowedMode stuff has hit a
release yet, let's make sure we're doing it the right way early on.
|
|
|
|
Since the values they carry are bitfields, using the highest value
as the maximum isn't the right thing to do.
|
|
Only one mode is going to be stored here so it shouldn't be plural.
|
|
It's just easier this way. It makes little sense to allow
selecting mode combinations for anything other than
(HSDPA | HSUPA). Most radios don't allow fine-grained control
of the different technologies within each 2G or 3G class anyway
thus combinations like (GPRS | UMTS) are pointless since the
device wouldn't be able to use GPRS but not use EDGE.
|
|
AccessTechnology takes over half of what NetworkMode was supposed to
do, but we'll keep NetworkMode around for a while for compatibility
anyway. Create async updaters that subclasses can use to update
the access tech when they get unsolicited messages.
|
|
|
|
|
|
This adds split properties and functions for the allowed modes and the
current access technology used by the device when connected to the
mobile network.
|
|
|
|
MM hadn't implemented it yet, but Wader already implemented an earlier
version that didn't use a bitfield but an enum. Unfortunately the
network mode stuff doesn't allow for distinguishing between the device's
mode preference and the current access technology. So deprecate the
current network mode stuff in the API in preparation for improved API.
|
|
|
|
|
|
|
|
For registration updates and signal strength.
|
|
First, generically handle registration polling if the device does
not support unsolicited registration. Second, using the new
creg/cgreg parsing functions from mm-modem-helpers.c, handle
CREG=2 unsolicited registration replies to capture the GSM LAC/CI
for the location information API.
Because of these changes we can simplify the registration polling
during connection as well by using the common registration parsing
code and the cached registration state.
|
|
407abc65c6ccd802ce8456e5a63e68fab1c7d0a1
Got the logic wrong in that commit. Fix it. Network registration
should always be run since it handles polling for registration
state if needed before continuing.
|
|
Since D-Bus signals cannot by nature be restricted to authenticated
clients (unless using private D-Bus connections) we can handle the
security a bit differently here. Since the Enable() call can be
authenticated, we'll trust the client to say whether higher
security should be used by disallowing location update signals. This
does mean the client will have to poll for location updates, but at
least then clients requesting location information can be
authenticated.
|
|
|
|
NOT FINAL; need to discuss with Pablo and others and actually implement
it before declaring it final.
|
|
|
|
|
|
This is handled by the generic class before the modem is even exported
over D-Bus.
|
|
This is handled by the generic class before the modem is even exported
over D-Bus.
|
|
This is handled by the generic class before the modem is even exported
over D-Bus.
|
|
Since the modem states patch the delay for power-on wasn't honored
for Option devices. Fix that using the new power-on-done handler
and also fix the bug where if the modem was removed, the plugin
would crash because it wasn't handling the timeout removal.
Also remove the explicit PIN check since that's now handled by the
generic GSM code before the modem is even exported over DBus.
|
|
Since the modem states patch the delay for power-on wasn't honored
for Sierra devices. Fix that using the new power-on-done handler
and also fix the bug where if the modem was removed, the plugin
would crash because it wasn't handling the timeout removal.
Also remove the explicit PIN check since that's now handled by the
generic GSM code before the modem is even exported over DBus.
|