mirror of
https://gitlab.com/mobian1/eg25-manager.git
synced 2025-08-29 23:32:14 +02:00
gnss: add GNSS assistance support
Automatically fetch the GNSS assistance data from the Web to heavily reduce the time to acquire a GNSS lock by uploading the assistance data to the modem. This feature is optional and can be disabled in the configuration as people may prefer to not download the assistance data from the Quectel/Qualcomm servers. Also configure the GNSS engine to optimize the performance and power consumption.
This commit is contained in:
@@ -16,6 +16,32 @@
|
||||
|
||||
#include "toml.h"
|
||||
|
||||
typedef enum {
|
||||
EG25_GNSS_STEP_FIRST = 0,
|
||||
#ifdef HAVE_MMGLIB
|
||||
EG25_GNSS_STEP_MM_GNSS_DISABLE,
|
||||
#endif
|
||||
EG25_GNSS_STEP_AT_GNSS_DISABLE,
|
||||
EG25_GNSS_STEP_FETCH_ASSISTANCE_DATA,
|
||||
EG25_GNSS_STEP_INIT_UPLOAD,
|
||||
EG25_GNSS_STEP_UPLOAD,
|
||||
EG25_GNSS_STEP_FINISH_UPLOAD,
|
||||
#ifdef HAVE_MMGLIB
|
||||
EG25_GNSS_STEP_MM_GNSS_ENABLE,
|
||||
#endif
|
||||
EG25_GNSS_STEP_AT_QGPS_ENABLE,
|
||||
EG25_GNSS_STEP_LAST,
|
||||
} EG25GNSSStep;
|
||||
|
||||
typedef enum {
|
||||
EG25_GNSS_SOURCE_NONE = 0,
|
||||
EG25_GNSS_SOURCE_NMEA = 1 << 0,
|
||||
EG25_GNSS_SOURCE_RAW = 1 << 1,
|
||||
EG25_GNSS_SOURCE_UNMANAGED = 1 << 2,
|
||||
EG25_GNSS_SOURCE_QGPS = 1 << 3,
|
||||
} EG25GNSSSource;
|
||||
|
||||
|
||||
enum EG25State {
|
||||
EG25_STATE_INIT = 0,
|
||||
EG25_STATE_POWERED, // Power-on sequence has been executed, but the modem isn't on yet
|
||||
@@ -52,11 +78,19 @@ struct EG25Manager {
|
||||
enum EG25State modem_state;
|
||||
gchar *modem_usb_id;
|
||||
|
||||
gboolean gnss_assistance_enabled;
|
||||
EG25GNSSSource gnss_sources;
|
||||
EG25GNSSStep gnss_assistance_step;
|
||||
gint gnss_assistance_fd;
|
||||
gchar *gnss_assistance_url;
|
||||
gchar *gnss_assistance_file;
|
||||
|
||||
enum ModemIface modem_iface;
|
||||
guint mm_watch;
|
||||
#ifdef HAVE_MMGLIB
|
||||
MMManager *mm_manager;
|
||||
MMModem *mm_modem;
|
||||
MMModemLocation *mm_location;
|
||||
#endif
|
||||
guint ofono_watch;
|
||||
GDBOManager *ofono_manager;
|
||||
|
Reference in New Issue
Block a user