api: support location assistance data

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.
This commit is contained in:
Aleksander Morgado
2018-08-21 13:26:08 +00:00
committed by Dan Williams
parent 0798f32362
commit 091bf4dbd8
9 changed files with 596 additions and 14 deletions
@@ -31,6 +31,7 @@ MMModemCdmaRegistrationState
MMModemCdmaRmProtocol
MMModemContactsStorage
MMModemLocationSource
MMModemLocationAssistanceDataType
MMModemLock
MMModemMode
MMModemState
@@ -423,6 +423,7 @@ mm_modem_location_get_enabled
mm_modem_location_signals_location
mm_modem_location_dup_supl_server
mm_modem_location_get_supl_server
mm_modem_location_get_supported_assistance_data
mm_modem_location_get_gps_refresh_rate
<SUBSECTION Methods>
mm_modem_location_setup
@@ -431,6 +432,9 @@ mm_modem_location_setup_sync
mm_modem_location_set_supl_server
mm_modem_location_set_supl_server_finish
mm_modem_location_set_supl_server_sync
mm_modem_location_inject_assistance_data
mm_modem_location_inject_assistance_data_finish
mm_modem_location_inject_assistance_data_sync
mm_modem_location_set_gps_refresh_rate
mm_modem_location_set_gps_refresh_rate_finish
mm_modem_location_set_gps_refresh_rate_sync
@@ -1363,6 +1367,7 @@ mm_modem_cdma_registration_state_get_string
mm_modem_cdma_activation_state_get_string
mm_modem_cdma_rm_protocol_get_string
mm_modem_location_source_build_string_from_mask
mm_modem_location_assistance_data_type_build_string_from_mask
mm_modem_contacts_storage_get_string
mm_sms_pdu_type_get_string
mm_sms_state_get_string
@@ -1397,6 +1402,7 @@ mm_sms_validity_type_build_string_from_mask
mm_sms_cdma_teleservice_id_build_string_from_mask
mm_sms_cdma_service_category_build_string_from_mask
mm_modem_location_source_get_string
mm_modem_location_assistance_data_type_get_string
mm_modem_contacts_storage_build_string_from_mask
mm_bearer_ip_family_build_string_from_mask
mm_bearer_ip_method_build_string_from_mask
@@ -1438,6 +1444,7 @@ MM_TYPE_MODEM_CDMA_REGISTRATION_STATE
MM_TYPE_MODEM_CDMA_RM_PROTOCOL
MM_TYPE_MODEM_CONTACTS_STORAGE
MM_TYPE_MODEM_LOCATION_SOURCE
MM_TYPE_MODEM_LOCATION_ASSISTANCE_DATA_TYPE
MM_TYPE_MODEM_LOCK
MM_TYPE_MODEM_MODE
MM_TYPE_MODEM_STATE
@@ -1477,6 +1484,7 @@ mm_modem_cdma_registration_state_get_type
mm_modem_cdma_rm_protocol_get_type
mm_modem_contacts_storage_get_type
mm_modem_location_source_get_type
mm_modem_location_assistance_data_type_get_type
mm_modem_lock_get_type
mm_modem_mode_get_type
mm_modem_state_change_reason_get_type
@@ -2152,6 +2160,10 @@ mm_gdbus_modem_location_call_setup_sync
mm_gdbus_modem_location_call_set_supl_server
mm_gdbus_modem_location_call_set_supl_server_finish
mm_gdbus_modem_location_call_set_supl_server_sync
mm_gdbus_modem_location_call_inject_assistance_data
mm_gdbus_modem_location_call_inject_assistance_data_finish
mm_gdbus_modem_location_call_inject_assistance_data_sync
mm_gdbus_modem_location_get_supported_assistance_data
mm_gdbus_modem_location_call_set_gps_refresh_rate
mm_gdbus_modem_location_call_set_gps_refresh_rate_finish
mm_gdbus_modem_location_call_set_gps_refresh_rate_sync
@@ -2161,10 +2173,12 @@ mm_gdbus_modem_location_set_enabled
mm_gdbus_modem_location_set_location
mm_gdbus_modem_location_set_signals_location
mm_gdbus_modem_location_set_supl_server
mm_gdbus_modem_location_set_supported_assistance_data
mm_gdbus_modem_location_set_gps_refresh_rate
mm_gdbus_modem_location_complete_get_location
mm_gdbus_modem_location_complete_setup
mm_gdbus_modem_location_complete_set_supl_server
mm_gdbus_modem_location_complete_inject_assistance_data
mm_gdbus_modem_location_complete_set_gps_refresh_rate
mm_gdbus_modem_location_interface_info
mm_gdbus_modem_location_override_properties