Commit Graph

2083 Commits

Author SHA1 Message Date
Aleksander Morgado
a9c406e3c0 cinterion: new Cinterion-specific source directory 2012-03-16 14:28:13 +01:00
Aleksander Morgado
fdddafd1ca iridium: new Iridium-specific source directory 2012-03-16 14:28:13 +01:00
Aleksander Morgado
bf7d0c712f cinterion: implement frequency band setting 2012-03-16 14:28:13 +01:00
Aleksander Morgado
f6b6688cce broadband-modem: new method to convert from UTF-8 to the charset in the modem 2012-03-16 14:28:13 +01:00
Aleksander Morgado
3028126bd2 charsets: new UTF-8 to given charset converter
UCS-2 strings are always hex-converted.
2012-03-16 14:28:13 +01:00
Aleksander Morgado
6f1a4514da libmm-common: new bands array comparator 2012-03-16 14:28:13 +01:00
Aleksander Morgado
91416a3e3d cinterion: implement current band list loading 2012-03-16 14:28:13 +01:00
Aleksander Morgado
a0583a4687 broadband-modem: expose the current charset to UTF-8 converter
So that subclasses can also use it.
2012-03-16 14:28:13 +01:00
Aleksander Morgado
3595b33648 iface-modem: load current bands during modem enabling 2012-03-16 14:28:13 +01:00
Aleksander Morgado
09d2f062c7 api,dbus: rename AllowedBands' to just Bands'
ModemManager will load:
  1) The list of supported bands. Note that this doesn't mean that any possible
     combination of bands is supported, as modems may support only specific
     combinations, but at least gives a rough idea of what the modem is capable
     of handling.

  2) The list of CURRENT bands. There is no such "Allowed" bands, as we do with
     modes, modems will have a specific set of bands being currently used, which
     will be reported in the `Bands' property.

If the modem allows modifying the list of bands to use, this can be done with
the `SetBands()' method. If the modem doesn't support using a specific
combination of bands, this method will report an error.
2012-03-16 14:28:13 +01:00
Aleksander Morgado
76e52236a4 iridium: create a MMBearerIridium 2012-03-15 14:15:08 +01:00
Aleksander Morgado
6d8404a6ab iridium: implement custom SMS indication enabling 2012-03-15 14:15:08 +01:00
Aleksander Morgado
4e55b16f9a iridium: close and open the port during disconnection
The Iridium modem doesn't seem to like only the port flashing during the
disconnection, so we fully close and open again the port.
2012-03-15 14:15:08 +01:00
Aleksander Morgado
b14bf797f1 iridium: override generic initialization
We must send ATZ alone and once reply received, wait some time before sending
the next initialization commands. Otherwise, the next commands will receive
garbage as reply. The only way to handle this is to override the whole generic
initialization phase.
2012-03-15 14:15:08 +01:00
Aleksander Morgado
7e31470066 iridium: set bearer service type to 9600bps V.110 2012-03-15 14:15:07 +01:00
Aleksander Morgado
4492adae2e iridium: allow up to 200s to get a proper IP connection 2012-03-15 14:15:07 +01:00
Aleksander Morgado
447d8a230d iridium: new MMBearerIridium 2012-03-15 14:15:07 +01:00
Aleksander Morgado
022272f88c iridium: allow only up to 3 consecutive timeouts 2012-03-15 14:15:07 +01:00
Aleksander Morgado
060ca3ff49 iridium: set baudrate to 9600 bps
This will be set after flashing the port during modem enabling.
2012-03-15 14:15:07 +01:00
Aleksander Morgado
1357880686 iridium: only CS mode supported by the Iridium modems 2012-03-15 14:15:07 +01:00
Aleksander Morgado
b57d32acbe iridium: don't try to scan for networks
The Iridium network will be the only one reported in the scan results.
2012-03-15 14:15:07 +01:00
Aleksander Morgado
35f0b773ef iridium: implement specific operator name and code retrieval 2012-03-15 14:15:07 +01:00
Aleksander Morgado
1bcecc9e1d iridium: use +CSQF to get signal quality 2012-03-15 14:15:07 +01:00
Aleksander Morgado
50c5d69be6 iridium: use SM storage for mem1, mem2 and mem3 2012-03-15 14:15:07 +01:00
Aleksander Morgado
2a351a6910 iridium: don't try to load SIM identifier or operator info 2012-03-15 14:15:07 +01:00
Aleksander Morgado
789cf58ace iridium: setup RTS/CTS flow control 2012-03-15 14:15:07 +01:00
Aleksander Morgado
8456dae53d iridium: no need to power up/down the modem 2012-03-15 14:15:07 +01:00
Aleksander Morgado
64542961a3 iridium: start porting the Iridium plugin to the '06-api' codebase 2012-03-15 14:15:07 +01:00
Aleksander Morgado
c8f525ee47 api,header: added new Iridium capability 2012-03-15 14:15:07 +01:00
Aleksander Morgado
f72f68b311 broadband-modem: allow no whitespaces before CPIN? reply value 2012-03-15 14:15:06 +01:00
Aleksander Morgado
2a12322a80 modem-helpers: allow leading zeroes in CREG/CGREG responses 2012-03-15 14:15:06 +01:00
Aleksander Morgado
5589df8946 cinterion: implement custom SMS indication enabling 2012-03-15 14:15:06 +01:00
Aleksander Morgado
f0d516e556 broadband-modem: implement default enabling of SMS indications 2012-03-15 14:15:06 +01:00
Aleksander Morgado
3dd5ec64cc iface-modem-messaging: need to enable/disable SMS indications 2012-03-15 14:15:06 +01:00
Aleksander Morgado
5ee0f23efa cli: print the IP timeout value from the bearer 2012-03-15 14:15:06 +01:00
Aleksander Morgado
aa2ad5c319 libmm-glib: allow retrieving the IP timeout value from the bearer 2012-03-15 14:15:06 +01:00
Aleksander Morgado
7fdd08c02e api,dbus: new `IpTimeout' property in the Bearer interface
This IpTimeout property will be read by NetworkManager, and used as the time to
wait for pppd to establish the IP configuration (20s by default).
2012-03-15 14:15:06 +01:00
Aleksander Morgado
dc1df5bf2f iface-modem-simple: SIM-PIN2 locking does not prevent from connecting 2012-03-15 14:15:06 +01:00
Aleksander Morgado
c176117941 libmm-common: no need to check for end of string when looking for spaces 2012-03-15 14:15:06 +01:00
Aleksander Morgado
2234205570 libmm-common: allow empty strings passed to the key value parser 2012-03-15 14:15:06 +01:00
Aleksander Morgado
c89fd703bb sim: allow subclasses to specify they can't load property values 2012-03-15 14:15:06 +01:00
Nathan Williams
3c41ce5d8b api,dbus: new `Command' method in the API to send arbitrary AT commands
BUG=chromium-os:25348
TEST="mmcli -m 0 --command='E0'"
Change-Id: I320587560fde5780f9d5a4998e32364d36a71ed7
2012-03-15 14:15:06 +01:00
Aleksander Morgado
54c2daf937 plugin-base: filters for product ID/string also require vendor ID/string checks 2012-03-15 14:15:06 +01:00
Aleksander Morgado
1f3e67775c core: new private boxed types for string and uint16 pairs 2012-03-15 14:15:05 +01:00
Aleksander Morgado
85dc060c82 manager: print modem debug info as soon as it gets exported 2012-03-15 14:15:05 +01:00
Aleksander Morgado
26ac82f607 broadband-modem: minor indentation fixes 2012-03-15 14:15:05 +01:00
Aleksander Morgado
2000331f86 broadband-bearer: avoid double free
Don't free an error which is taken by the async result.
2012-03-15 14:15:05 +01:00
Aleksander Morgado
21a722b616 core: don't pass primary port to interface initializations
They will all get it themselves.
2012-03-15 14:15:05 +01:00
Aleksander Morgado
3de4a29963 broadband-modem: run setup of all ports as first step in initialization
This is run always once all ports grabbed and organized.
2012-03-15 14:15:05 +01:00
Aleksander Morgado
8b7b614105 core: rework port grabbing and organization
Make port roles more flexible.  We have modems that do PPP
on interfaces other than the primary interface, and that
wasn't possible with the old code.  So clean up all that
logic and move the port organization code into the core
so we can reduce code in the plugins.

In the new world order, the plugins say whether the port
is a QCDM port, an AT port, or ignored.  If it's an AT
port the plugins get to tag it as primary, secondary, or
PPP, or any combination of the 3.  This allows for modems
where PPP should really be done on the secondary port
(Huawei E220, Sierra devices) so that the primary port
stays open for command and status.

After all ports are grabbed by the generic classes, they get
"organized", which assigns various ports to the roles of
PRIMARY, SECONDARY, DATA, and QCDM based on specific rules
and hints that the plugin provided (which are expressed as
MMAtPortFlags).

The plugin code is responsible for determining the port
hints (ie MMAtPortFlags) at probe time, instead of having
a combination of the plugin and the modem class do the
job.  This simplifies things greatly for the plugins at
the expense of more complicated logic in the core.

This is the port of commit 96505d42ed62327101dcee7c2bf31177b0bb1c9f
to the 06-api branch.
2012-03-15 14:15:05 +01:00