Commit Graph
100 Commits
Author SHA1 Message Date
Aleksander Morgado 6fa3f0b0d7 build: provide pkg-config files for ModemManager, libmm-common and libmm-glib 2012-05-24 09:59:53 +02:00
Aleksander Morgado e582a22db7 api: install common headers to ${prefix}/include/ModemManager
...instead of ${prefix}/include/mm
2012-05-24 09:59:53 +02:00
Aleksander Morgado 6bf277e794 libmm-glib: install missing headers 2012-05-24 09:59:52 +02:00
Aleksander Morgado 4ae13ef5d9 libmm-common: install missing header 2012-05-24 09:59:52 +02:00
Aleksander Morgado df1f21d17f sms: fix setting multipart specific properties
Don't make them construct-only, so that we can set them whenever needed.
2012-05-06 18:53:03 +02:00
Aleksander Morgado 8a47621a5c sms,tests: new test to check for multipart support in SMS parts 2012-05-06 18:48:59 +02:00
Aleksander Morgado 97baa44b04 novatel: report error if not properly disconnected
When we request to disconnect, and the disconnection status check fails, return
a proper error.
2012-05-06 17:12:36 +02:00
Aleksander Morgado b2d376696c novatel: minor coding style fixes 2012-05-06 17:12:36 +02:00
Aleksander Morgado caeeae2721 bearer: simplify handling of the bearer configuration
The base MMBearer object will receive the MMBearerProperties configuration,
which contains every generic and plugin-specific set up. Not every configuration
parameter will be used by every implementation (e.g. not every bearer needs
user/password).

The Bearer object will expose every configuration parameter received in its
`Properties' property in the interface, even if it's not really used.
2012-05-06 17:12:36 +02:00
Aleksander Morgado 1984c155ad wavecom: plugin fully ported 2012-05-06 15:34:13 +02:00
Aleksander Morgado 6c26e90610 wavecom: implement custom band setting 2012-05-06 15:34:13 +02:00
Aleksander Morgado 8b329c1012 wavecom: setup custom serial parser
AT+CPIN? replies come without trailing 'OK'; which we need to handle.
2012-05-06 15:34:13 +02:00
Aleksander Morgado 43d7f4f17a wavecom: implement custom current bands loading 2012-05-06 15:34:13 +02:00
Aleksander Morgado 513f5d5f20 wavecom: implement custom supported bands loading 2012-05-06 15:34:13 +02:00
Aleksander Morgado aeb38e0f30 wavecom: implement custom access technology loading 2012-05-06 15:34:13 +02:00
Aleksander Morgado 3885bb365d wavecom: implement setting allowed/preferred modes 2012-05-06 15:34:13 +02:00
Aleksander Morgado 1447dfee3c wavecom: implement loading of initial allowed/preferred modes 2012-05-06 15:34:13 +02:00
Aleksander Morgado 7bd2ba6973 wavecom: implement custom supported mode loading 2012-05-06 15:34:13 +02:00
Aleksander Morgado c3cc8f8410 wavecom: implement custom power up sequence 2012-05-06 15:34:13 +02:00
Aleksander Morgado 8ce1e26e1b wavecom: implement custom flow control handling 2012-05-06 15:34:13 +02:00
Aleksander Morgado 65b92dfba5 wavecom: implement custom power down sequence 2012-05-06 15:34:12 +02:00
Aleksander Morgado b7d423288a wavecom: start porting the Wavecom plugin 2012-05-06 15:34:12 +02:00
Aleksander Morgado c7d39e2c28 cinterion: simplify loop when loading 2G bands 2012-05-06 15:34:12 +02:00
Aleksander Morgado e8bc2f41e7 simtech: implement custom allowed/preferred mode setting 2012-04-14 16:04:18 +02:00
Aleksander Morgado b97890a012 simtech: plugin fully ported 2012-04-14 16:04:18 +02:00
Aleksander Morgado 9e89e88ce9 simtech: implement custom allowed/preferred mode loading 2012-04-14 16:04:18 +02:00
Aleksander Morgado c9214bd54f simtech: implement custom access technology loading 2012-04-14 16:04:17 +02:00
Aleksander Morgado 281cada39d simtech: implement custom unsolicited events enabling/disabling 2012-04-14 16:04:17 +02:00
Aleksander Morgado 1cea1e5bbe simtech: implement custom unsolicited events setup/cleanup 2012-04-14 16:04:17 +02:00
Aleksander Morgado 8cd4b29fde simtech: new `MMBroadbandModemSimtech' object 2012-04-14 16:04:17 +02:00
Aleksander Morgado ba7761f664 simtech: include udev rules 2012-04-14 16:04:17 +02:00
Aleksander Morgado 43be521ef6 build: split includes for plugin specific udev rules
Let each plugin block include its own udev rules, instead of having them all
together at the end of the Makefile.
2012-04-14 16:04:17 +02:00
Aleksander Morgado 7183216d9d simtech: start porting the SimTech plugin 2012-04-14 16:04:17 +02:00
Aleksander Morgado d379b9ea2a bearer: allow subclasses to report disconnection
The new `mm_bearer_report_disconnection()' allows subclasses to notify about
being disconnected, so that every layer of inheritance can chain its own code
to reset the connection status.

This commit partially disables the logic included in commit 981222. Now
subclasses (actually, no one) are not allowed to g_object_set() the
MM_BEARER_STATUS property.
2012-04-10 23:27:25 +02:00
Aleksander Morgado dac1021e4c cinterion: no need for custom supported modes loading 2012-04-10 18:28:33 +02:00
Aleksander Morgado 83afd3ddc9 iface-modem: new helpers to query supported modes 2012-04-10 18:28:33 +02:00
Aleksander Morgado e89a8a42a9 novatel: no need for custom supported modes loading 2012-04-10 18:28:33 +02:00
Aleksander Morgado bc0d9ddf5f broadband-modem: query supported networks to get a better supported modes value
If we base our supported modes default guessing only on capabilities listed by
AT+GCAP, we find that we don't know how to differenciate between 2G and 3G 3GPP
modems. So, if supported, we will try to query the list of supported networks
with AT+WS46=?, which explicitly tells us if the modem supports GERAN and/or
UTRAN and/or E-UTRAN. Note that plugins need to request this new behaviour by
setting the `MM_BROADBAND_MODEM_USE_WS46' property to TRUE when creating the
modem object.
2012-04-10 18:27:17 +02:00
Aleksander Morgado b49ddfe930 iface-modem: skip handling the CURRENT_CAPABILITIES property
It is an unnecessary complication, as long as we can keep the helpers in the interface.
2012-04-10 17:47:43 +02:00
Aleksander Morgado 9812225d93 bearer: always reset interface state when going into disconnected status
Custom bearer implementations in Plugins are allowed to g_object_set() the
MM_BEARER_STATUS property to DISCONNECTED in order to notify that the bearer got
disconnected. We need to always reset the interface state (remove IP config, set
connected=FALSE,...) also in that case.

Also consolidated in some helper private functions the way the bearer status is
updated.
2012-04-10 10:46:10 +02:00
Aleksander Morgado 8d4a549e61 TODO: GPS location implemented already 2012-04-02 15:39:48 +02:00
Aleksander Morgado f183a5d73d iridium: remove previous modem implementation 2012-03-31 14:56:54 +02:00
Aleksander Morgado c2a096f9a1 linktop: plugin fully ported 2012-03-31 14:54:27 +02:00
Aleksander Morgado cfeebcd63a manager: no need to remove modems in idle
There is no problem in getting the modem removed just after finishing the
disabling sequence.
2012-03-30 16:18:48 +02:00
Aleksander Morgado 3094e3f26b manager: try to get all modems disabled before while shutting down 2012-03-30 16:11:55 +02:00
Aleksander Morgado 8c84aea3f0 base-modem: disconnect internal cancellable handler while disposing 2012-03-30 16:11:14 +02:00
Aleksander Morgado b68461c417 base-modem: plug small leaks 2012-03-30 16:09:27 +02:00
Aleksander Morgado a416f6eaea docs: document MM_PLUGIN_BASE_ALLOWED_SINGLE_AT 2012-03-30 13:53:24 +02:00
Aleksander Morgado b03541b1fe plugin-base: don't setup udev client notifications 2012-03-30 13:47:00 +02:00
Aleksander Morgado 0372e73abd port-probe-cache: ensure we cleanup every possible leftover 2012-03-30 13:47:00 +02:00
Aleksander Morgado 94d46a4387 plugin-base: plug memleak 2012-03-30 13:47:00 +02:00
Aleksander Morgado 7518772d4b core: fatal errors in iface initializations force the modem into a FAILED state
Modems which end up being found unusable (e.g. no SIM, fatal SIM error, no
capabilities) will be exposed in DBus, but just with the Modem interface and
in a FAILED state which allows no actions.
2012-03-30 13:47:00 +02:00
Aleksander Morgado 3b366118b6 simple: need to wait to get fully initialized before trying to enable 2012-03-30 10:25:33 +02:00
Aleksander Morgado 374c028b16 broadband: reload operator and registration info only when enabling 3GPP location source 2012-03-30 08:20:38 +02:00
Aleksander Morgado 0d8cf160e5 broadband: ensure 3GPP location info gets updated when enabling the source
Whenever 3GPP location source gets enabled, we'll launch new registration status
checks (to get updated LAC/CI) and new operator code/name checks (to get updated
MCC/MNC).

Additional changes were needed in the HSO plugin, so that the specific location
gathering enabling implemented by the HSO modem chains up parent's one first.
2012-03-29 17:20:37 +02:00
Aleksander Morgado 3cea187a94 location: update the status before running enabling/disabling sequences
This will allow implementations of location source enabling to actually update
the location information during the enabling phase.
2012-03-29 17:17:52 +02:00
Aleksander Morgado 43bd3f95ae 3gpp: let operator name/code reloading be requested by implementations 2012-03-29 17:16:38 +02:00
Aleksander Morgado dc376bb725 3gpp: errors when reloading operator name/code will reset the values in the interface 2012-03-29 17:15:48 +02:00
Aleksander Morgado bb2f9b672c broadband-modem: remove unused variable 2012-03-29 16:10:07 +02:00
Aleksander Morgado b80fdfdaa8 iface-modem-location: plug memleak and reference count mismatch 2012-03-29 09:18:04 +02:00
Aleksander Morgado f1d4e0fb63 mmcli: prefix all NMEA traces in order to get a pretty print 2012-03-29 09:18:04 +02:00
Aleksander Morgado 422ed7b633 libmm-common,location-gps-nmea: ensure traces get separated with \r\n 2012-03-29 09:18:04 +02:00
Aleksander Morgado 4bc990ce76 mmcli: new actions to request gps-specific or all available locations 2012-03-29 09:18:04 +02:00
Aleksander Morgado 3dd0034560 libmm-glib: provide extended getters for location information objects
The user can now query for all location information with
`mm_modem_location_get_full()', or just for specific location sources with
`mm_modem_location_get_3gpp()', `mm_modem_location_get_gps_nmea()' or
`mm_modem_location_get_gps_raw()'.
2012-03-29 09:18:04 +02:00
Aleksander Morgado 3f7a6fe31b libmm-common,location-gps-raw: fix check looking for mandatory parameters 2012-03-29 09:18:04 +02:00
Aleksander Morgado 19d53751a2 libmm-common,location-gps-raw: don't build dictionary if mandatory parameters missing 2012-03-29 09:18:04 +02:00
Aleksander Morgado 9116a58eb6 mmcli: allow multiple location source enabling/disabling commands
For example, we do allow:
 mmcli -m 0 --enable-location-gps-nmea --disable-location-gps-raw

All the options get merged into a single Setup() call in the Location interface.
2012-03-29 09:18:04 +02:00
Aleksander Morgado ad8a40f8aa api,dbus: update the fields retrievable in the raw GPS location source
Currently just provide the time of measurement, latitude, longitude and
altitude.
2012-03-29 09:18:04 +02:00
Aleksander Morgado 2bf61649d8 libmm-common,tests: new unit tests for the numeric field parsers 2012-03-29 09:18:04 +02:00
Aleksander Morgado e00705c203 libmm-common,helpers: additional checks in the string to number converters
We won't allow NULL, empty, or strings with non-digits.
2012-03-29 09:18:04 +02:00
Aleksander Morgado 71e108fd64 hso: include support for the raw GPS location source 2012-03-29 09:18:04 +02:00
Aleksander Morgado 33e569bbab iface-modem-location: handle the raw GPS location source 2012-03-29 09:18:03 +02:00
Aleksander Morgado 423c4a9d67 libmm-common: new helper `MMModemLocationGpsRaw' object 2012-03-29 09:18:03 +02:00
Aleksander Morgado bf42082466 libmm-common: new helpers to parse doubles from strings or match infos 2012-03-29 09:18:03 +02:00
Aleksander Morgado ee8afd8034 libmm-common,location-gps-nmea: allow sequences of traces
Some traces, e.g. $GPGSV, are part of a sequence. For those traces, we'll try
to always keep the whole sequence around, not just the last received trace.
2012-03-29 09:18:03 +02:00
Aleksander Morgado 614a547316 hso: report received NMEA traces 2012-03-29 09:18:03 +02:00
Aleksander Morgado 53b500c11d iface-modem-location: handle the NMEA-based GPS location source 2012-03-29 09:18:03 +02:00
Aleksander Morgado 0012b71186 libmm-common: new helper `MMModemLocationGpsNmea' object 2012-03-29 09:18:03 +02:00
Aleksander Morgado 2072190691 hso: open/close the raw GPS port when we enable/disable GPS gathering 2012-03-29 09:17:53 +02:00
Aleksander Morgado 97f779df1e hso: ensure GPS is disabled when we initialize the modem 2012-03-29 09:17:53 +02:00
Aleksander Morgado 1cfab89719 base-modem: use new `MMGpsSerialPort' type for the raw GPS port 2012-03-29 09:17:53 +02:00
Aleksander Morgado a0b3663274 gps-serial-port: new type to handle read-only serial ports with GPS traces 2012-03-29 09:17:53 +02:00
Aleksander Morgado 2bd321489d mmcli: new --location-enable-gps' and --location-disable-gps' actions 2012-03-29 09:17:53 +02:00
Aleksander Morgado ab9363011a hso: enable/disable GPS location gathering 2012-03-29 09:17:53 +02:00
Aleksander Morgado 335ba97f48 hso: include custom location capabilities loading
Will check for GPS location sources.
2012-03-29 09:17:53 +02:00
Aleksander Morgado 6d50e5195f serial-port: forced close only to be done once 2012-03-29 09:17:53 +02:00
Aleksander Morgado a69b4d2451 mmcli: new `--location-status' to show supported and enabled location sources 2012-03-29 09:17:53 +02:00
Aleksander Morgado ceefa2c356 location: rework to allow multiple location sources
Location sources can now be enabled or disabled by using the mask of sources
given in Setup() (similar previous Enable()).
2012-03-29 09:17:53 +02:00
Aleksander Morgado 090e349209 hso: grab GPS-specific ports 2012-03-28 15:50:51 +02:00
Aleksander Morgado be633fd66b base-modem: handle GPS control and data ports
Plugin may specify GPS-specific port tyeps when requesting to grab the port.
These could either be an AT-based GPS control port, or the raw GPS serial port
which emits the NMEA traces.
2012-03-28 15:50:51 +02:00
Aleksander Morgado b19f97ae7d port: new `MM_PORT_TYPE_NET' for pure net devices
Net devices will be MMPorts of type MM_PORT_TYPE_NET.
2012-03-28 15:50:51 +02:00
Aleksander Morgado 3b481cf17f base-modem: no need for `port_grabbed()'
Subclasses can configure additional stuff in the ports just after all have been
organized, in the SETUP_PORTS initialization step in MMBroadbandModem.
2012-03-28 15:50:51 +02:00
Aleksander Morgado 8dfbf195c1 port: skip LAST enums in glib-mkenums processing 2012-03-28 15:50:51 +02:00
Aleksander Morgado 68421638f5 at-serial-port: new flag to define the GPS control port 2012-03-28 15:50:51 +02:00
Aleksander Morgado 79c93f4333 at-serial-port: define flags by shifting bits
Otherwise glib-mkenums doesn't take the enumeration as being flags.
2012-03-28 15:50:51 +02:00
Aleksander Morgado 62923f9086 serial-port: ensure we close the port when forcing to close it 2012-03-28 15:50:43 +02:00
Aleksander Morgado b8157228eb broadband-modem: plug memleak when uppercasing storage names 2012-03-28 15:50:43 +02:00
Aleksander Morgado 029cb2abe9 broadband-modem: plug memleak when building AT command 2012-03-28 15:50:43 +02:00
Aleksander Morgado f0b02ce321 hso: plug small memleak when building devfile
Why do we need the devfile anyway?
2012-03-28 15:50:43 +02:00
Aleksander Morgado b29eb54080 sim: plug memleak 2012-03-28 15:50:43 +02:00