Re: [MM] API changes for 0.8

On Thu, 2013-05-30 at 14:40 +0200, Aleksander Morgado wrote:

We are reviewing the DBus interfaces in ModemManager before making a 0.8
release, and we've come up with several changes to the Modem interface
(see list below). Some of the changes are pretty useful, like being able
to know which are the allowed+preferred mode combinations supported by
the modem before actually trying to change them; or being able to switch
capabilities when supported.

The changes are available in the "aleksander/api-breaks" branch in git
master, please review/test them if you're already using the new
ModemManager. The plan is to get the branch merged to git master soon.


Changes to the 'Modem' interface

* MMBearerIpFamily is now flags instead of an enumeration.

* A new 'SupportedIpFamilies' property is given (signature "u"), showing
which are the IP types that we can use when requesting a connection. The
given value is a mask of MMBearerIpFamily flags.

Looks like the changes for QMI to support IPV4V6 didn't quite make it
into the api-changes branch?

        /* Assume IPv4 + IPv6 supported */
        g_simple_async_result_set_op_res_gpointer (


 * Renamed 'Bands' property to 'CurrentBands'.

 * Renamed 'SetBands()' method to 'SetCurrentBands()'.

 * Updated the 'SupportedModes' property to give a list of
allowed+preferred combinations, instead of just a mask with all allowed
ones. Signature changed from "u" to "a(uu)", where each item in the
array is a pair of MMModemMode values (first one mask of allowed modes,
second one a preferred mode). Modems supporting the change of
allowed+preferred modes will expose the combinations they actually
support. E.g.:

    $> sudo mmcli -m 0
      Modes    |      supported: 'allowed: 2g; preferred: none
               |                  allowed: 3g; preferred: none
               |                  allowed: 2g, 3g; preferred: none
               |                  allowed: 2g, 3g; preferred: 2g
               |                  allowed: 2g, 3g; preferred: 3g

 * Merged the 'AllowedModes' and 'PreferredMode' into a single
'CurrentModes' property, with signature "(uu)". The pair of integers has
the same logic as in 'SupportedModes', first one is mask of allowed
modes and second one is a preferred mode.

 * Renamed 'SetAllowedModes()' method to 'SetCurrentModes()', and
updated the argument list to have only one item with signature "(uu)"
(allowed mask + preferred). The allowed+preferred combination given must
be one of those listed in 'SupportedModes', otherwise the operation will

 * Renamed 'ModemCapabilities' property to 'SupportedCapabilities', and
also updated the signature from "u" to "au", where each item in the
array is a MMModemCapability mask. Modems supporting the change of
capabilities will expose the combinations they actually support. E.g.:
    $> sudo mmcli -m 0
      Hardware |   supported: 'gsm-umts
               |               cdma-evdo
               |               gsm-umts, cdma-evdo'
               |     current: 'gsm-umts'

 * New 'SetCurrentCapabilities()' method, which accepts a "u" specifying
the capability combinations wanted (of those listed in
'SupportedCapabilities'). Changing capabilities with this method will
force a device power-cycle (modem will disappear and probed again). This
method allows to e.g. switch the UML290 from CDMA/EVDO mode to GSM/UMTS
mode, as done with the 'uml290mode' program.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]