aboutsummaryrefslogtreecommitdiff
path: root/cli/mmcli-modem-location.c
AgeCommit message (Collapse)Author
2023-12-11iface-location: allow enabling without SIMRaphaël Jakse
When the modem is in a failed state because of a SIM-related error, like a missing SIM, or if the modem is SIM-locked, allow the Location interface to initialize and be enabled anyway. This allows someone without a SIM to use the GPS, which does not particularly require a phone subscription. It also allows someone with a SIM to use the GPS even if the SIM is still locked. This patch was reworked, while keeping the original idea, by: Aleksander Morgado <aleksander@aleksander.es> Fixes #183
2021-09-01cli, location: Fix multi-sentence NMEA message outputTeemu Ikonen
Multi-sentence NMEA messages were printed as is, that is with linebreaks, which made mmcli --location-get output look broken. Split NMEA sentences with linebreaks to separate output list items, so that they line up correctly.
2021-07-01cli,location: new '--location-monitor' actionAleksander Morgado
This action allows us to monitor location updates as signaled via the 'Location' property, only available if location signaling has been explicitly enabled (e.g. with --location-set-enable-signal)
2021-07-01cli,location: TAC is 3 bytes in 5GNRAleksander Morgado
TAC is 3 bytes for NG-RAN as specified in 3GPP TS 38.413 clause 9.3.3.10 and in 3GPP TS 24.501 clause 9.10.3.8. We'll always print it as 3 bytes in the cli output, as that's also backwards compatible with the original 2 byte TAC in LTE.
2021-05-17cli,location: use mm_location_3gpp_get_operator_code() in location outputTeijo Kinnunen
2020-03-21cli: context: add ':' to the section titlesAleksander Morgado
So that --help-all print all sections in the same way as the Help and Application option groups.
2020-01-31cli: fix warnings with -WshadowAleksander Morgado
mmcli-manager.c: In function ‘context_free’: mmcli-manager.c:167:24: error: declaration of ‘ctx’ shadows a global declaration [-Werror=shadow] 167 | context_free (Context *ctx) | ~~~~~~~~~^~~ mmcli-manager.c:51:17: note: shadowed declaration is here 51 | static Context *ctx; | ^~~ ...
2020-01-01cli,location: use new mm_location_gps_nmea_get_traces()Aleksander Morgado
2019-04-09location,agps: include support for MSB A-GPSAleksander Morgado
2019-04-09location,agps: explicitly specify that MSA A-GPS is implementedAleksander Morgado
The A-GPS based implementations we currently have assume MSA A-GPS, so rename the MMModemLocationSource enum value to reflect that.
2019-04-09cli,location: minor refactor to handle the location setup flagsAleksander Morgado
2018-11-26cli: allow multiple output format typesAleksander Morgado
In addition to the standard human-friendly output, we now allow a machine-friendly key-value pair output, much easier to parse and use by programs that look at the mmcli output. This new key-value pair output should be treated as API from now on, so third-party programs can assume the output is compatible from one release to another.
2018-11-26cli,location: remove redundant --location-get-XXX actionsAleksander Morgado
The --location-get action provides full location information from all sources, which is better than per-source actions, as those were anyway using the same API method to load location information as the global one.
2018-09-21mmcli,location: fix doubled variable declarationUlrich Ölmann
Remove the redundant declaration of which slipped into the code in commit 091bf4dbd811 ("api: support location assistance data"). Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
2018-09-12mmcli,location: print LAC/TAC/CID in hexAleksander Morgado
All these values are usually specified in hex, not in dec.
2018-09-12iface-modem-location: validate SUPL server addressAleksander Morgado
Devices will expect SUPL server given as either IP:PORT or FQDN:PORT, so just avoid saying we require a 'URL' because it's not true. We will use a new helper method to parse and validate user-provided SUPL server address.
2018-08-21api: support location assistance dataAleksander Morgado
Sometimes SUPL-server based A-GPS is not possible, e.g. if the module doesn't have Internet connectivity. In such cases, the modem may support injecting additional "assistance data" that may be downloaded from the Internet using external means (e.g. WiFi), in order to keep having a quick time to first fix. We now support using this location assistance data, with the following new API elements: * A new mask of supported assistance data types is provided in the SupportedAssistanceData property. * A new list of URLs from where the aassistance data may be downloaded is also provided in a new AssistanceDataServers property. * A new InjectAssistanceData() method is provided, to perform the data injection in the module once it's been downloaded to the host system.
2018-08-08api,location: give Tracking Area Code field in 3GPP location infoAleksander Morgado
The "location area code" field is given in GSM/UMTS networks exclusively. LTE networks use the concept of "tracking area code" instead. This patch updates the Location interface to Provide separate fields for LAC and TAC, instead of giving TAC values in the LAC field.
2015-12-19cli: validate SUPL server before showing itAleksander Morgado
2015-12-19cli: allow enabling/disabling location signaling via DBusAleksander Morgado
Not making them '--location-enable|disable-signal' because that's the pattern used to enable/disable location sources. Instead, use the '--location-set-*' pattern, as that is what we're already using for the other location setup update.
2015-12-19location: support updating the GPS refresh timeAleksander Morgado
The default setup uses a refresh time of 30s, which means that even if the GPS location updates are received at a higher frequency, the DBus interface will still expose at most one update every 30s. This patch includes a new "SetGpsRefreshTime()" method in the Location interface, which takes a single 'u' parameter, specifying the refresh rate to use, in seconds. This method also allows 0 being passed, which will make the implementation to publish the GPS location updates are soon as ModemManager detects them. Along with the new method, a "GpsRefreshTime" read-only property is exposed to specify the refresh time in effect. The new method and property will only be applicable if the device has GPS capabilities. https://bugs.freedesktop.org/show_bug.cgi?id=89924
2015-12-07license: mmcli is GPLv2+, not GPLv3+Aleksander Morgado
mmcli is GPLv2+; that's what --version has always said and that's what the README in ModemManager sources specifies: License. The ModemManager and mmcli binaries are both GPLv2+. The libmm-glib library is LGPLv2+.
2014-09-05cli,location: allow enabling/disabling A-GPSAleksander Morgado
2014-09-05cli,location: allow getting/setting SUPL server addressAleksander Morgado
2014-07-02location: new 'unmanaged' GPS setupAleksander Morgado
Standard GPS setup (raw/nmea) will both enable the GPS module and take full control of the GPS port. This prevents other processes from reading the NMEA traces from e.g. a tty. In order to handle this, a new 'unmanaged' GPS location source is introduced, which will just enable/disable the GPS module, without reading anything from the GPS port. Of course, both raw/nmea and unmanaged setups cannot be enabled at the same time.
2014-05-20cli: consistently use spaces for indentationBen Chan
2012-11-02cli: new actions to setup or gather CDMA BS location sourceAleksander Morgado
2012-10-04libmm-glib: remove the `libmm-common.h' headerAleksander Morgado
Both the ModemManager daemon and the mmcli will now include `libmm-glib.h' only. We also handle two new special `_LIBMM_INSIDE_MM' and `LIBMM_INSIDE_MMCLI' symbols, which if included before the `libmm-glib.h' library allow us to: * Don't include the libmm-glib high level API in the ModemManager daemon, as the object names would clash with those in the core. * Define some of the methods of helper objects to be included only if compiling ModemManager daemon or the mmcli.
2012-07-25cli: allow modifying default DBus timeout with `--timeout'Aleksander Morgado
By default 30s will be used for every operation.
2012-07-25cli: ensure modem is enabled when performing actionsAleksander Morgado
Don't rely on the lock status, as the modem may say it requires SIM PIN 2, but we're allowed to run most operations even with that unlock required.
2012-03-29mmcli: prefix all NMEA traces in order to get a pretty printAleksander Morgado
2012-03-29mmcli: new actions to request gps-specific or all available locationsAleksander Morgado
2012-03-29mmcli: allow multiple location source enabling/disabling commandsAleksander Morgado
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-29mmcli: new `--location-enable-gps' and `--location-disable-gps' actionsAleksander Morgado
2012-03-29mmcli: new `--location-status' to show supported and enabled location sourcesAleksander Morgado
2012-03-29location: rework to allow multiple location sourcesAleksander Morgado
Location sources can now be enabled or disabled by using the mask of sources given in Setup() (similar previous Enable()).
2012-03-26mmcli: abort certain operations if modem is unlockedAleksander Morgado
Do not try to perform feature/capability specific actions if we're still unlocked, as the modem didn't yet export the feature/capability specific interface. The only interfaces expected while modem is unlocked are the Modem and Simple interfaces, as well as the SIM interface in the SIM object, of course.
2012-03-16libmm-common: `MMLocation3gpp' won't be considered internal any moreAleksander Morgado
Renamed `MMCommonLocation3gpp' to `MMLocation3gpp', and removed the `MMModemLocation3gpp' provided in libmm-glib. We'll just use the original one from libmm-common always.
2012-03-15cli: ensure EOL is added at every error messageAleksander Morgado
2012-03-15cli: fail if requesting location actions and modem doesn't handle locationsAleksander Morgado
2012-03-15cli: include Location-related actionsAleksander Morgado