#include <ubuntu/visibility.h>
#include <stdint.h>
#include <stddef.h>
Go to the source code of this file.
|
typedef uint32_t | UHardwareGpsNiNotifyFlags |
|
typedef int | UHardwareGpsUserResponseType |
|
typedef int | UHardwareGpsNiEncodingType |
|
typedef uint16_t | UHardwareGpsAidingData |
|
typedef uint16_t | UHardwareGpsAGpsType |
|
typedef struct UHardwareGps_ * | UHardwareGps |
|
typedef void(* | UHardwareGpsLocationCallback) (UHardwareGpsLocation *location, void *context) |
|
typedef void(* | UHardwareGpsStatusCallback) (uint16_t status, void *context) |
|
typedef void(* | UHardwareGpsSvStatusCallback) (UHardwareGpsSvStatus *sv_info, void *context) |
|
typedef void(* | UHardwareGpsNmeaCallback) (int64_t timestamp, const char *nmea, int length, void *context) |
|
typedef void(* | UHardwareGpsSetCapabilities) (uint32_t capabilities, void *context) |
|
typedef void(* | UHardwareGpsRequestUtcTime) (void *context) |
|
typedef void(* | UHardwareGpsXtraDownloadRequest) (void *context) |
|
typedef void(* | UHardwareGpsAGpsStatusCallback) (UHardwareGpsAGpsStatus *status, void *context) |
|
typedef void(* | UHardwareGpsNiNotifyCallback) (UHardwareGpsNiNotification *notification, void *context) |
|
typedef void(* | UHardwareGpsAGpsRilRequestSetId) (uint32_t flags, void *context) |
|
typedef void(* | UHardwareGpsAGpsRilRequestRefLoc) (uint32_t flags, void *context) |
|
|
enum | {
U_HARDWARE_GPS_STATUS_NONE = 0,
U_HARDWARE_GPS_STATUS_SESSION_BEGIN = 1,
U_HARDWARE_GPS_STATUS_SESSION_END = 2,
U_HARDWARE_GPS_STATUS_ENGINE_ON = 3,
U_HARDWARE_GPS_STATUS_ENGINE_OFF = 4
} |
|
enum | {
U_HARDWARE_GPS_NI_RESPONSE_ACCEPT = 1,
U_HARDWARE_GPS_NI_RESPONSE_DENY = 2,
U_HARDWARE_GPS_NI_RESPONSE_NORESP = 3
} |
|
enum | {
U_HARDWARE_GPS_NI_TYPE_VOICE = 1,
U_HARDWARE_GPS_NI_TYPE_UMTS_SUPL = 2,
U_HARDWARE_GPS_NI_TYPE_UMTS_CTRL_PLANE = 3
} |
|
enum | {
U_HARDWARE_GPS_ENC_NONE = 0,
U_HARDWARE_GPS_ENC_SUPL_GSM_DEFAULT = 1,
U_HARDWARE_GPS_ENC_SUPL_UTF8 = 2,
U_HARDWARE_GPS_ENC_SUPL_UCS2 = 3,
U_HARDWARE_GPS_ENC_UNKNOWN = -1
} |
|
enum | {
U_HARDWARE_GPS_AGPS_TYPE_SUPL = 1,
U_HARDWARE_GPS_AGPS_TYPE_C2K = 2
} |
|
enum | {
U_HARDWARE_GPS_POSITION_MODE_STANDALONE = 0,
U_HARDWARE_GPS_POSITION_MODE_MS_BASED = 1,
U_HARDWARE_GPS_POSITION_MODE_MS_ASSISTED = 2
} |
|
enum | {
U_HARDWARE_GPS_POSITION_RECURRENCE_PERIODIC = 0,
U_HARDWARE_GPS_POSITION_RECURRENCE_SINGLE = 1
} |
|
enum | {
U_HARDWARE_GPS_REQUEST_AGPS_DATA_CONN = 1,
U_HARDWARE_GPS_RELEASE_AGPS_DATA_CONN = 2,
U_HARDWARE_GPS_AGPS_DATA_CONNECTED = 3,
U_HARDWARE_GPS_AGPS_DATA_CONN_DONE = 4,
U_HARDWARE_GPS_AGPS_DATA_CONN_FAILED = 5
} |
|
|
UBUNTU_DLL_PUBLIC UHardwareGps | u_hardware_gps_new (UHardwareGpsParams *params) |
|
UBUNTU_DLL_PUBLIC void | u_hardware_gps_delete (UHardwareGps handle) |
|
UBUNTU_DLL_PUBLIC bool | u_hardware_gps_start (UHardwareGps self) |
|
UBUNTU_DLL_PUBLIC bool | u_hardware_gps_stop (UHardwareGps self) |
|
UBUNTU_DLL_PUBLIC void | u_hardware_gps_inject_time (UHardwareGps self, int64_t time, int64_t time_reference, int uncertainty) |
| Injects a new reference time into the GPS chipset. More...
|
|
UBUNTU_DLL_PUBLIC void | u_hardware_gps_inject_location (UHardwareGps self, UHardwareGpsLocation location) |
| Injects a new reference location into the GPS chipset. More...
|
|
UBUNTU_DLL_PUBLIC void | u_hardware_gps_agps_set_reference_location (UHardwareGps self, UHardwareGpsAGpsRefLocation *location, size_t size_of_struct) |
| Informs the GPS chipset about wifi ap's or radio cells to be used in AGPS calls. More...
|
|
UBUNTU_DLL_PUBLIC void | u_hardware_gps_agps_notify_connection_is_open (UHardwareGps self, const char *apn) |
| Notifies the chipset that a data connection is availble. More...
|
|
UBUNTU_DLL_PUBLIC void | u_hardware_gps_agps_notify_connection_is_closed (UHardwareGps self) |
| Notifies the chipset that an AGPS data connection has been closed. More...
|
|
UBUNTU_DLL_PUBLIC void | u_hardware_gps_agps_notify_connection_not_available (UHardwareGps self) |
| Notifies the chipset that an AGPS data connection is not available. More...
|
|
UBUNTU_DLL_PUBLIC void | u_hardware_gps_agps_set_server_for_type (UHardwareGps self, UHardwareGpsAGpsType type, const char *hostname, uint16_t port) |
| Sets the hostname and port for the AGPS server. More...
|
|
UBUNTU_DLL_PUBLIC void | u_hardware_gps_delete_aiding_data (UHardwareGps self, UHardwareGpsAidingData flags) |
| Requests the chipset to delete the aiding data specified in flags. More...
|
|
UBUNTU_DLL_PUBLIC bool | u_hardware_gps_set_position_mode (UHardwareGps self, uint32_t mode, uint32_t recurrence, uint32_t min_interval, uint32_t preferred_accuracy, uint32_t preferred_time) |
| Sets the positioning mode of the chipset. More...
|
|
UBUNTU_DLL_PUBLIC void | u_hardware_gps_inject_xtra_data (UHardwareGps self, char *data, int length) |
|
◆ U_HARDWARE_GPS_AGPS_REF_LOCATION_TYPE_GSM_CELLID
#define U_HARDWARE_GPS_AGPS_REF_LOCATION_TYPE_GSM_CELLID 1 |
Known types for AGps reference locations. A GSM cell ID.
Definition at line 208 of file gps.h.
◆ U_HARDWARE_GPS_AGPS_REF_LOCATION_TYPE_UMTS_CELLID
#define U_HARDWARE_GPS_AGPS_REF_LOCATION_TYPE_UMTS_CELLID 2 |
A UMTS cell ID.
Definition at line 210 of file gps.h.
◆ U_HARDWARE_GPS_AGPS_REG_LOCATION_TYPE_MAC
#define U_HARDWARE_GPS_AGPS_REG_LOCATION_TYPE_MAC 3 |
The BSSID of a visible access point.
Definition at line 212 of file gps.h.
◆ U_HARDWARE_GPS_AGPS_TYPE_C2K
#define U_HARDWARE_GPS_AGPS_TYPE_C2K 2 |
◆ U_HARDWARE_GPS_AGPS_TYPE_SUPL
#define U_HARDWARE_GPS_AGPS_TYPE_SUPL 1 |
◆ U_HARDWARE_GPS_CAPABILITY_MSA
#define U_HARDWARE_GPS_CAPABILITY_MSA 0x0000004 |
GPS supports MS-Assisted AGPS mode
Definition at line 68 of file gps.h.
◆ U_HARDWARE_GPS_CAPABILITY_MSB
#define U_HARDWARE_GPS_CAPABILITY_MSB 0x0000002 |
GPS supports MS-Based AGPS mode
Definition at line 66 of file gps.h.
◆ U_HARDWARE_GPS_CAPABILITY_ON_DEMAND_TIME
#define U_HARDWARE_GPS_CAPABILITY_ON_DEMAND_TIME 0x0000010 |
GPS supports on demand time injection
Definition at line 72 of file gps.h.
◆ U_HARDWARE_GPS_CAPABILITY_SINGLE_SHOT
#define U_HARDWARE_GPS_CAPABILITY_SINGLE_SHOT 0x0000008 |
GPS supports single-shot fixes
Definition at line 70 of file gps.h.
◆ U_HARDWARE_GPS_DELETE_ALL
#define U_HARDWARE_GPS_DELETE_ALL 0xFFFF |
◆ U_HARDWARE_GPS_DELETE_ALMANAC
#define U_HARDWARE_GPS_DELETE_ALMANAC 0x0002 |
◆ U_HARDWARE_GPS_DELETE_CELLDB_INFO
#define U_HARDWARE_GPS_DELETE_CELLDB_INFO 0x8000 |
◆ U_HARDWARE_GPS_DELETE_EPHEMERIS
#define U_HARDWARE_GPS_DELETE_EPHEMERIS 0x0001 |
◆ U_HARDWARE_GPS_DELETE_HEALTH
#define U_HARDWARE_GPS_DELETE_HEALTH 0x0040 |
◆ U_HARDWARE_GPS_DELETE_IONO
#define U_HARDWARE_GPS_DELETE_IONO 0x0010 |
◆ U_HARDWARE_GPS_DELETE_POSITION
#define U_HARDWARE_GPS_DELETE_POSITION 0x0004 |
◆ U_HARDWARE_GPS_DELETE_RTI
#define U_HARDWARE_GPS_DELETE_RTI 0x0400 |
◆ U_HARDWARE_GPS_DELETE_SADATA
#define U_HARDWARE_GPS_DELETE_SADATA 0x0200 |
◆ U_HARDWARE_GPS_DELETE_SVDIR
#define U_HARDWARE_GPS_DELETE_SVDIR 0x0080 |
◆ U_HARDWARE_GPS_DELETE_SVSTEER
#define U_HARDWARE_GPS_DELETE_SVSTEER 0x0100 |
◆ U_HARDWARE_GPS_DELETE_TIME
#define U_HARDWARE_GPS_DELETE_TIME 0x0008 |
◆ U_HARDWARE_GPS_DELETE_UTC
#define U_HARDWARE_GPS_DELETE_UTC 0x0020 |
◆ U_HARDWARE_GPS_LOCATION_HAS_ACCURACY
#define U_HARDWARE_GPS_LOCATION_HAS_ACCURACY 0x0010 |
◆ U_HARDWARE_GPS_LOCATION_HAS_ALTITUDE
#define U_HARDWARE_GPS_LOCATION_HAS_ALTITUDE 0x0002 |
◆ U_HARDWARE_GPS_LOCATION_HAS_BEARING
#define U_HARDWARE_GPS_LOCATION_HAS_BEARING 0x0008 |
◆ U_HARDWARE_GPS_LOCATION_HAS_LAT_LONG
#define U_HARDWARE_GPS_LOCATION_HAS_LAT_LONG 0x0001 |
◆ U_HARDWARE_GPS_LOCATION_HAS_SPEED
#define U_HARDWARE_GPS_LOCATION_HAS_SPEED 0x0004 |
◆ U_HARDWARE_GPS_NI_LONG_STRING_MAXLEN
#define U_HARDWARE_GPS_NI_LONG_STRING_MAXLEN 2048 |
◆ U_HARDWARE_GPS_NI_NEED_NOTIFY
#define U_HARDWARE_GPS_NI_NEED_NOTIFY 0x0001 |
NI requires notification
Definition at line 80 of file gps.h.
◆ U_HARDWARE_GPS_NI_NEED_VERIFY
#define U_HARDWARE_GPS_NI_NEED_VERIFY 0x0002 |
NI requires verification
Definition at line 82 of file gps.h.
◆ U_HARDWARE_GPS_NI_PRIVACY_OVERRIDE
#define U_HARDWARE_GPS_NI_PRIVACY_OVERRIDE 0x0004 |
NI requires privacy override, no notification/minimal trace
Definition at line 84 of file gps.h.
◆ UHardwareGps
◆ UHardwareGpsAGpsRilRequestRefLoc
typedef void(* UHardwareGpsAGpsRilRequestRefLoc) (uint32_t flags, void *context) |
Callback invoked by the driver to request a reference location (typically cell ID).
Definition at line 438 of file gps.h.
◆ UHardwareGpsAGpsRilRequestSetId
typedef void(* UHardwareGpsAGpsRilRequestSetId) (uint32_t flags, void *context) |
Callback invoked by the driver to set the set id.
Definition at line 436 of file gps.h.
◆ UHardwareGpsAGpsStatusCallback
Callback with AGPS status information.
Definition at line 430 of file gps.h.
◆ UHardwareGpsAGpsType
AGPS type
Definition at line 202 of file gps.h.
◆ UHardwareGpsAidingData
Flags used to specify which aiding data to delete when calling delete_aiding_data().
Definition at line 185 of file gps.h.
◆ UHardwareGpsLocationCallback
◆ UHardwareGpsNiNotifyCallback
Callback with NI notification.
Definition at line 433 of file gps.h.
◆ UHardwareGpsNmeaCallback
typedef void(* UHardwareGpsNmeaCallback) (int64_t timestamp, const char *nmea, int length, void *context) |
◆ UHardwareGpsRequestUtcTime
typedef void(* UHardwareGpsRequestUtcTime) (void *context) |
◆ UHardwareGpsSetCapabilities
typedef void(* UHardwareGpsSetCapabilities) (uint32_t capabilities, void *context) |
◆ UHardwareGpsStatusCallback
typedef void(* UHardwareGpsStatusCallback) (uint16_t status, void *context) |
◆ UHardwareGpsSvStatusCallback
◆ UHardwareGpsXtraDownloadRequest
typedef void(* UHardwareGpsXtraDownloadRequest) (void *context) |
Callback to request the client to download XTRA data. The client should download XTRA data and inject it by calling inject_xtra_data().
Definition at line 427 of file gps.h.
◆ anonymous enum
Enumerator |
---|
U_HARDWARE_GPS_NI_RESPONSE_ACCEPT | |
U_HARDWARE_GPS_NI_RESPONSE_DENY | |
U_HARDWARE_GPS_NI_RESPONSE_NORESP | |
Definition at line 93 of file gps.h.
◆ anonymous enum
Enumerator |
---|
U_HARDWARE_GPS_NI_TYPE_VOICE | |
U_HARDWARE_GPS_NI_TYPE_UMTS_SUPL | |
U_HARDWARE_GPS_NI_TYPE_UMTS_CTRL_PLANE | |
Definition at line 100 of file gps.h.
◆ anonymous enum
Enumerator |
---|
U_HARDWARE_GPS_REQUEST_AGPS_DATA_CONN | GPS requests data connection for AGPS.
|
U_HARDWARE_GPS_RELEASE_AGPS_DATA_CONN | GPS releases the AGPS data connection.
|
U_HARDWARE_GPS_AGPS_DATA_CONNECTED | AGPS data connection initiated
|
U_HARDWARE_GPS_AGPS_DATA_CONN_DONE | AGPS data connection completed
|
U_HARDWARE_GPS_AGPS_DATA_CONN_FAILED | AGPS data connection failed
|
Definition at line 169 of file gps.h.
◆ u_hardware_gps_agps_notify_connection_is_closed()
Notifies the chipset that an AGPS data connection has been closed.
- Parameters
-
self | The instance to be notified. |
◆ u_hardware_gps_agps_notify_connection_is_open()
Notifies the chipset that a data connection is availble.
- Parameters
-
self | The instance to be notified. |
apn | Name of the apn to be used for SUPL. |
◆ u_hardware_gps_agps_notify_connection_not_available()
Notifies the chipset that an AGPS data connection is not available.
- Parameters
-
self | The instance to be notified. |
◆ u_hardware_gps_agps_set_reference_location()
Informs the GPS chipset about wifi ap's or radio cells to be used in AGPS calls.
- Parameters
-
self | The instance to inform. |
location | The reference location, that is a wifi ap or a radio cell. |
size_of_struct | The size of the reference location struct. |
◆ u_hardware_gps_agps_set_server_for_type()
Sets the hostname and port for the AGPS server.
- Parameters
-
self | The instance to be altered. |
type | Type of the server, one of U_HARDWARE_GPS_AGPS_TYPE_SUPL or U_HARDWARE_GPS_AGPS_TYPE_C2K. |
hostname | The hostname of the AGPS server. |
port | The post of the AGPS server. |
◆ u_hardware_gps_delete()
◆ u_hardware_gps_delete_aiding_data()
Requests the chipset to delete the aiding data specified in flags.
- Parameters
-
self | The instance to apply the change to. |
flags | Specifies the aiding data that should be deleted. |
◆ u_hardware_gps_inject_location()
Injects a new reference location into the GPS chipset.
- Parameters
-
self | The instance to apply the change to. |
location | New location to me injected. The structure must have the following details, any others are ignored:
- location: New coordinate, in [°].
- longitude: New coordinate, [°].
- accuracy: Accuracy estimate of the location, in [m].
|
◆ u_hardware_gps_inject_time()
Injects a new reference time into the GPS chipset.
- Parameters
-
time | NTP time, in milliseconds since Jan 1st 1970. |
time_reference | time from the internal clock at the moment that NTP time was taken. |
uncertainty | possible deviation in the time supplied (uncertainty) in milliseconds. |
◆ u_hardware_gps_inject_xtra_data()
◆ u_hardware_gps_new()
◆ u_hardware_gps_set_position_mode()
UBUNTU_DLL_PUBLIC bool u_hardware_gps_set_position_mode |
( |
UHardwareGps |
self, |
|
|
uint32_t |
mode, |
|
|
uint32_t |
recurrence, |
|
|
uint32_t |
min_interval, |
|
|
uint32_t |
preferred_accuracy, |
|
|
uint32_t |
preferred_time |
|
) |
| |
Sets the positioning mode of the chipset.
- Parameters
-
mode | One of the U_HARDWARE_GPS_POSITION_MODE_* values |
recurrence | One of the U_HARDWARE_GPS_POSITION_RECURRENCE_* values |
min_interval | represents the time between fixes in milliseconds. |
preferred_accuracy | The requested fix accuracy in meters. Can be zero. |
preferred_time | The requested time to first fix in milliseconds. Can be zero. |
◆ u_hardware_gps_start()
◆ u_hardware_gps_stop()