Allocate the results instead of passing them back on the stack, which removes
the "can't complete in idle" restriction. Also always open the QCDM port
since we can't assume it will be open already at this point.
Instead of mixing the QCDM Novatel Snapshot code directly into the
access technology checking code, split it out with its own async
result. At the same time, make sure to open the QCDM port when
it's needed, instead of assuming its already open. Since it won't
always be.
The QCDM port commands are never cached, so remove the option from the command()
method. Will also simplify command caching afterwards as it will be an AT-only
thing.
We now have a single 'CurrentModes' property which contains both values in a
tuple with signature "(uu)".
Also, rename 'SetAllowedModes()' to 'SetCurrentModes()', and update the list of
arguments expected to have a single "(uu)" tuple.
The GetNetworkTime() response is defined to be an ISO8601 string, which
is in turn defined to be in local time. Make sure that's reflected in
the documentation, and append the timezone offset to UTC where we have
it.
Oddly, Icera devices return their time info in UTC with an offset to
the local timezone, so we have to jump through some hoops there to
convert the response to localtime based on the reported offset.
Some additional fixes by Aleksander Morgado <aleksander@lanedo.com>.
https://bugzilla.gnome.org/show_bug.cgi?id=697372
So do it during port probing. If we send this command early enough in the
first AT port being probed, it should flip the secondary ports to AT mode
before their port probing is finished.
https://bugzilla.gnome.org/show_bug.cgi?id=696696
We use the Icon ID here because a value of 1 *always* means not roaming,
while the other values don't appear to be consistent. For example,
an ERI value of "0" is supposed to mean roaming according to the
standards, but the Novatel devices appear to use 0 to mean home.
Since we're not sure, don't depend on the ERI value itself, just
depend on the Icon ID, where we know for sure that 1 means "home".
mm_get_int_from_str() does not allow anything in the string after the
number, eg "-91 asdfasdf" returns an error. So we have to chop off
anything after the number we're interested in.
Instead of letting the plugins specify a default storage to use, just look at
the supported ones and use the best one.
"MT is preferred over "ME" or "SM", as "MT=ME+SM"
There is no point in specifying a default 'mem1' memory storage, which is used
for reading/listing/deleting, as those are operations that need a specific
'mem1' set each time.
Also, there is no point in specifying separate default 'mem2' and 'mem3' memory
storages, specially because now we allow Sms.Store() to specify a storage.
So, we will now only have a 'default' memory storage, which is applicable for
both 'mem2' and 'mem3' (storing, sending from storage and deleting).
This is a port to git master of the following commit:
commit c21e29c50b5661308fb3b223c05f6942c06dc15d
Author: Dan Williams <dcbw@redhat.com>
Date: Fri Aug 24 13:31:04 2012 -0500
novatel: fix checking ERI for roaming/home decision
More fallout from b22b2d99db
which changed the return type of the qcdm_result_get_*() functions.
Different ports of the same modem may get handled by different drivers. We
therefore need to provide a list of drivers (new `Modem.Drivers' property with
signature 'as') instead of just one (removed `Modem.Driver' property with
signature 's').
$ sudo mmcli -m 0 | grep drivers
| drivers: 'qcserial, qmi_wwan'
Settings are given with the 'AT$NWRAT' arguments as follows:
1,1: 2G allowed
2,1: 3G allowed
0,2: 2G and 3G allowed, none preferred
1,2: 2G and 3G allowed, 2G preferred
2,2: 2G and 3G allowed, 3G preferred
The $NWBAND command seems to disturb the internal state of the modem
such that it is unlikely to connect to the network, and produces
widely varying error codes. We don't actively use this functionality,
it's just that setting "use all bands" is part of the normal
ModemManager simple-connect sequence. Remove it so it doesn't get
triggered.
Change-Id: I9b5914291a88a59015fb51906af6fd1c78f3952b