gnss: GNSS assistance support
The EG25-G modem supports GNSS assistance by uploading XTRA data to the modem.
- Add config option to enable/disable this feature
- Download GNSS assistance data using curl, reschedules when no network is available.
- Upload GNSS assistance data over serial
- Block concurrent uploads when
QGPSURC="xtradataexpire"
is detected when starting the eg25-manager. - Watch for
QGPSURC="xtradataexpire"
to re-upload fresh assistance data when current data is expired - Automatically restore GNSS engine state after uploading
- Fixed 'expected' AT command: if used multiple times, it takes 'OK' of the previous AT command to set a certain value instead of the reply of the query AT command
- Add a callback method to the AT command processing to make it possible to split off the GNSS engine stuff from the AT command stuff.
- GNSS is automatically enabled and disabled on-demand by GeoClue when using ModemManager, no need to do this through the eg25-manager anymore. Phosh as GeoClue agent can handle this since 0.10.1, including location permissions (#2 (closed)). If
gpsd
is used, AT commands are used to enable/disable the GNSS engine on-demand, this patch takes also into account this path by checking the GNSS engine as well with AT commands.
Fixes #2 (closed), issues#253 (closed)
Based upon the work of the OpenSUSE PinePhone devs: https://build.opensuse.org/package/view_file/devel:ARM:Factory:Contrib:PinePhone/pinephone-helpers/pp-agps.py
Edited by Dylan Van Assche