blob: 27a2255d86b5bba6e33e2f441ba60ad00ddd6948 [file] [log] [blame]
/* Copyright (c) 2011-2015, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation, nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef LOC_SERVICE_02_H
#define LOC_SERVICE_02_H
/**
@file location_service_v02.h
@brief This is the public header file which defines the loc service Data structures.
This header file defines the types and structures that were defined in
loc. It contains the constant values defined, enums, structures,
messages, and service message IDs (in that order) Structures that were
defined in the IDL as messages contain mandatory elements, optional
elements, a combination of mandatory and optional elements (mandatory
always come before optionals in the structure), or nothing (null message)
An optional element in a message is preceded by a uint8_t value that must be
set to true if the element is going to be included. When decoding a received
message, the uint8_t values will be set to true or false by the decode
routine, and should be checked before accessing the values that they
correspond to.
Variable sized arrays are defined as static sized arrays with an unsigned
integer (32 bit) preceding it that must be set to the number of elements
in the array that are valid. For Example:
uint32_t test_opaque_len;
uint8_t test_opaque[16];
If only 4 elements are added to test_opaque[] then test_opaque_len must be
set to 4 before sending the message. When decoding, the _len value is set
by the decode routine and should be checked so that the correct number of
elements in the array will be accessed.
*/
/*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
*THIS IS AN AUTO GENERATED FILE. DO NOT ALTER IN ANY WAY
*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*/
/* This file was generated with Tool version 6.14.7
It was generated on: Tue Mar 22 2016 (Spin 0)
From IDL File: location_service_v02.idl */
/** @defgroup loc_qmi_consts Constant values defined in the IDL */
/** @defgroup loc_qmi_msg_ids Constant values for QMI message IDs */
/** @defgroup loc_qmi_enums Enumerated types used in QMI messages */
/** @defgroup loc_qmi_messages Structures sent as QMI messages */
/** @defgroup loc_qmi_aggregates Aggregate types used in QMI messages */
/** @defgroup loc_qmi_accessor Accessor for QMI service object */
/** @defgroup loc_qmi_version Constant values for versioning information */
#include <stdint.h>
#include "qmi_idl_lib.h"
#include "common_v01.h"
#ifdef __cplusplus
extern "C" {
#endif
/** @addtogroup loc_qmi_version
@{
*/
/** Major Version Number of the IDL used to generate this file */
#define LOC_V02_IDL_MAJOR_VERS 0x02
/** Revision Number of the IDL used to generate this file */
#define LOC_V02_IDL_MINOR_VERS 0x34
/** Major Version Number of the qmi_idl_compiler used to generate this file */
#define LOC_V02_IDL_TOOL_VERS 0x06
/** Maximum Defined Message ID */
#define LOC_V02_MAX_MESSAGE_ID 0x00A8
/**
@}
*/
/** @addtogroup loc_qmi_consts
@{
*/
/** Maximum string length for the Provider field in the application ID. */
#define QMI_LOC_MAX_APP_ID_PROVIDER_LENGTH_V02 24
/** Maximum string length for the Name field in the application ID. */
#define QMI_LOC_MAX_APP_ID_NAME_LENGTH_V02 32
/** Maximum string length for the Version field in the application ID. */
#define QMI_LOC_MAX_APP_ID_VERSION_LENGTH_V02 8
/** Maximum length of the list containing the SVs that were used to generate
a position report. */
#define QMI_LOC_MAX_SV_USED_LIST_LENGTH_V02 80
/** Maximum number of satellites in the satellite report. */
#define QMI_LOC_SV_INFO_LIST_MAX_SIZE_V02 80
/** Maximum NMEA string length. */
#define QMI_LOC_NMEA_STRING_MAX_LENGTH_V02 200
/** Maximum length of the requestor ID string. */
#define QMI_LOC_NI_MAX_REQUESTOR_ID_LENGTH_V02 200
/** Session ID byte length. */
#define QMI_LOC_NI_SUPL_SLP_SESSION_ID_BYTE_LENGTH_V02 4
/** Maximum client name length allowed. */
#define QMI_LOC_NI_MAX_CLIENT_NAME_LENGTH_V02 64
/** Maximum URL length accepted by the location engine. */
#define QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 255
/** IPv6 address length in bytes. */
#define QMI_LOC_IPV6_ADDR_LENGTH_V02 8
/** SUPL hash length. */
#define QMI_LOC_NI_SUPL_HASH_LENGTH_V02 8
/** Maximum client address length allowed. */
#define QMI_LOC_NI_MAX_EXT_CLIENT_ADDRESS_V02 20
/** Maximum codeword length allowed. */
#define QMI_LOC_NI_CODEWORD_MAX_LENGTH_V02 20
/** Maximum number of NTP Servers sent out with this event. */
#define QMI_LOC_MAX_NTP_SERVERS_V02 3
/** Maximum number of predicted orbits servers supported in the location
engine. */
#define QMI_LOC_MAX_PREDICTED_ORBITS_SERVERS_V02 3
/** Maximum length of the list, where each element of the list contains the
continuous range of Geofences that were breached at a given position. */
#define QMI_LOC_MAX_GEOFENCE_ID_CONTINUOUS_LIST_LENGTH_V02 80
/** Maximum length of the list that contains a discrete number Geofences that
were breached at a given position. */
#define QMI_LOC_MAX_GEOFENCE_ID_DISCRETE_LIST_LENGTH_V02 80
/** Maximum length that can be injected. */
#define QMI_LOC_MAX_GDT_PATH_LEN_V02 255
/** Maximum client information size in bytes. */
#define QMI_LOC_MAX_GTP_CL_INFO_LEN_V02 1500
/** Maximum mobile status data size in bytes. */
#define QMI_LOC_MAX_GTP_MSD_LEN_V02 4000
/** Maximum GNSS Measurement Engine Firmware Version String length. */
#define QMI_LOC_GNSS_ME_VERSION_STRING_MAX_LENGTH_V02 127
/** Maximum GNSS Measurement Engine Hosted Software Version String length. */
#define QMI_LOC_GNSS_HOSTED_SW_VERSION_STRING_MAX_LENGTH_V02 127
/** Maximum GNSS Measurement Engine Full Version String length. */
#define QMI_LOC_GNSS_SW_VERSION_STRING_MAX_LENGTH_V02 255
/** Maximum part length that can be injected. The client should
also look at the maxPartSize field in the predicted orbits injection
request indication and pick the minimum of the two. */
#define QMI_LOC_MAX_PREDICTED_ORBITS_PART_LEN_V02 1024
/** Maximum length of the delete SV information list */
#define QMI_LOC_DELETE_MAX_SV_INFO_LENGTH_V02 128
/** Maximum length of the Delete BDS SV Information list. */
#define QMI_LOC_DELETE_MAX_BDS_SV_INFO_LENGTH_V02 37
/** Maximum length of the Delete GAL SV Information list. */
#define QMI_LOC_DELETE_MAX_GAL_SV_INFO_LENGTH_V02 36
/** MAC address length in bytes. */
#define QMI_LOC_WIFI_MAC_ADDR_LENGTH_V02 6
/** Wi-Fi SSID string maximum length. */
#define QMI_LOC_MAX_WIFI_AP_SSID_STR_LENGTH_V02 32
/** Maximum number of APs that the sender can report. */
#define QMI_LOC_WIFI_MAX_REPORTED_APS_PER_MSG_V02 50
/** Maximum number of samples that can be injected in a TLV. */
#define QMI_LOC_SENSOR_DATA_MAX_SAMPLES_V02 50
/** Maximum APN string length allowed. */
#define QMI_LOC_MAX_APN_NAME_LENGTH_V02 100
/** Maximum APN profiles supported. */
#define QMI_LOC_MAX_APN_PROFILES_V02 6
/** Maximum length of the SUPL certificate. */
#define QMI_LOC_MAX_SUPL_CERT_LENGTH_V02 2000
/** Maximum number of motion states used by the Geofence engine. */
#define QMI_LOC_GEOFENCE_MAX_MOTION_STATES_V02 20
/** Maximum length of the network-initiated Geofence ID
list. */
#define QMI_LOC_MAX_NI_GEOFENCE_ID_LIST_LENGTH_V02 16
/** Maximum value of WDMA frequency for injection of WCDMA cell
information. */
#define QMI_LOC_MAX_WCDMA_FREQ_V02 16383
/** Maximum value of PSC for injection of WCDMA cell information. */
#define QMI_LOC_MAX_WCDMA_PSC_V02 511
/** Maximum value of TDSCDMA frequency for injection of TDSCDMA cell
information. */
#define QMI_LOC_MAX_TDSCDMA_FREQ_V02 16383
/** Maximum length of the injected network-initiated message. */
#define QMI_LOC_MAX_INJECTED_NETWORK_INITIATED_MESSAGE_LENGTH_V02 1024
/** Maximum number of entries returned from a batch in each indication. */
#define QMI_LOC_READ_FROM_BATCH_MAX_SIZE_V02 5
/** Maximum number of vehicle sensor samples that can be injected. */
#define QMI_LOC_VEHICLE_SENSOR_DATA_MAX_SAMPLES_V02 65
/** Maximum number of axes that can be provided in each sample. */
#define QMI_LOC_VEHICLE_SENSOR_DATA_MAX_AXES_V02 3
/** Maximum number of measurements from an odometer. */
#define QMI_LOC_VEHICLE_ODOMETRY_MAX_MEASUREMENTS_V02 3
#define QMI_LOC_MEAS_STATUS_DONT_USE_BITS_V02 0xFFC0000000000000
/** Maximum number of satellites in a measurement block for a given system. */
#define QMI_LOC_SV_MEAS_LIST_MAX_SIZE_V02 16
#define QMI_LOC_SV_POLY_VELOCITY_COEF_SIZE_V02 12
#define QMI_LOC_SV_POLY_XYZ_0_TH_ORDER_COEFF_SIZE_V02 3
#define QMI_LOC_SV_POLY_XYZ_N_TH_ORDER_COEFF_SIZE_V02 9
#define QMI_LOC_SV_POLY_SV_CLKBIAS_COEFF_SIZE_V02 4
/** IBeacon string maximum length. */
#define QMI_LOC_MAX_IBEACON_UUID_STR_LENGTH_V02 32
/** Wi-Fi area ID list length. */
#define QMI_LOC_WIFI_AREA_ID_LIST_LENGTH_V02 20
/** Cell ID list length. */
#define QMI_LOC_CELL_ID_LIST_LENGTH_V02 20
/** IBeacon list length. */
#define QMI_LOC_IBEACON_LIST_LENGTH_V02 20
/** Maximum length that can be injected. */
#define QMI_LOC_MAX_GTP_WWAN_CLIENT_DOWNLOADED_DATA_LEN_V02 512
/** Maximum length of OEM id. */
#define QMI_LOC_MAX_OEM_ID_LEN_V02 256
/** Maximum length of model id. */
#define QMI_LOC_MAX_MODEL_ID_LEN_V02 256
/** Maximum length that can be injected. */
#define QMI_LOC_MAX_GTP_RLI_LEN_V02 256
/** Maximum buffer length of the encrypted data blob for the Secure Get Available Position request. */
#define QMI_LOC_SECURE_GET_AVAILABLE_POS_REQUEST_ENCRYPTED_MAX_V02 256
/** Horizontal Uncertainty Circular
Altitude With Respect to Ellipsoid
Vertical Uncertainty
Horizontal Elliptical Uncertainty (Semi-Minor Axis)
Horizontal Elliptical Uncertainty (Semi-Major Axis)
Elliptical Horizontal Uncertainty Azimuth
Horizontal Confidence
Horizontal Elliptical Uncertainty Confidence
Horizontal Reliability
Horizontal Speed
Horizontal Speed Uncertainty
Altitude With Respect to Sea Level
Vertical Confidence
Vertical Reliability
Vertical Speed
Vertical Speed Uncertainty
Heading
Heading Uncertainty
Magnetic Deviation
Technology Used
Position Dilution of Precision
Horizontal Dilution of Precision
Vertical Dilution of Precision
GPS Week
GPS Time of Week MS
Time Source
Sensor Data Usage MASK
Position Data Aided by Sensor
SVs Used to Calculate the Fix */
#define QMI_LOC_SECURE_GET_AVAILABLE_POSITION_IND_ENCRYPTED_MAX_V02 1024
/** Maximum number of APs that can be injected in a TLV. */
#define QMI_LOC_APCACHE_DATA_MAX_SAMPLES_V02 80
/** Maximum part length that can be injected. The client should
also look at the maxPartSize field in the predicted orbits injection
request indication and pick the minimum of the two. */
#define QMI_LOC_MAX_XTRA_PART_LEN_V02 1024
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Response Message; Generic response definition. This message is used to tell
clients whether their message was accepted for further
processing or rejected. */
typedef struct {
/* Mandatory */
/* Result Code */
qmi_response_type_v01 resp;
}qmiLocGenRespMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Informs the service of the minor revision of the interface
definition that the control point implements. */
typedef struct {
/* Mandatory */
/* Revision */
uint32_t revision;
/**< Revision that the control point is using. */
}qmiLocInformClientRevisionReqMsgT_v02; /* Message */
/**
@}
*/
typedef uint64_t qmiLocEventRegMaskT_v02;
#define QMI_LOC_EVENT_MASK_POSITION_REPORT_V02 ((qmiLocEventRegMaskT_v02)0x00000001ull) /**< The control point must enable this mask to receive position report
event indications. */
#define QMI_LOC_EVENT_MASK_GNSS_SV_INFO_V02 ((qmiLocEventRegMaskT_v02)0x00000002ull) /**< The control point must enable this mask to receive satellite report
event indications. These reports are sent at a 1 Hz rate. */
#define QMI_LOC_EVENT_MASK_NMEA_V02 ((qmiLocEventRegMaskT_v02)0x00000004ull) /**< The control point must enable this mask to receive NMEA reports for
position and satellites in view. The report is at a 1 Hz rate. */
#define QMI_LOC_EVENT_MASK_NI_NOTIFY_VERIFY_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00000008ull) /**< The control point must enable this mask to receive NI Notify/Verify request
event indications. */
#define QMI_LOC_EVENT_MASK_INJECT_TIME_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00000010ull) /**< The control point must enable this mask to receive time injection request
event indications. */
#define QMI_LOC_EVENT_MASK_INJECT_PREDICTED_ORBITS_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00000020ull) /**< The control point must enable this mask to receive predicted orbits request
event indications. */
#define QMI_LOC_EVENT_MASK_INJECT_POSITION_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00000040ull) /**< The control point must enable this mask to receive position injection request
event indications. */
#define QMI_LOC_EVENT_MASK_ENGINE_STATE_V02 ((qmiLocEventRegMaskT_v02)0x00000080ull) /**< The control point must enable this mask to receive engine state report
event indications. */
#define QMI_LOC_EVENT_MASK_FIX_SESSION_STATE_V02 ((qmiLocEventRegMaskT_v02)0x00000100ull) /**< The control point must enable this mask to receive fix session status report
event indications. */
#define QMI_LOC_EVENT_MASK_WIFI_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00000200ull) /**< The control point must enable this mask to receive Wi-Fi position request
event indications. */
#define QMI_LOC_EVENT_MASK_SENSOR_STREAMING_READY_STATUS_V02 ((qmiLocEventRegMaskT_v02)0x00000400ull) /**< The control point must enable this mask to receive notifications from the
location engine indicating its readiness to accept data from the
sensors (accelerometer, gyroscope, etc.). */
#define QMI_LOC_EVENT_MASK_TIME_SYNC_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00000800ull) /**< The control point must enable this mask to receive time sync requests
from the GPS engine. Time sync enables the GPS engine to synchronize
its clock with the sensor processor's clock. */
#define QMI_LOC_EVENT_MASK_SET_SPI_STREAMING_REPORT_V02 ((qmiLocEventRegMaskT_v02)0x00001000ull) /**< The control point must enable this mask to receive Stationary Position
Indicator (SPI) streaming report indications. */
#define QMI_LOC_EVENT_MASK_LOCATION_SERVER_CONNECTION_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00002000ull) /**< The control point must enable this mask to receive location server
requests. These requests are generated when the service wishes to
establish a connection with a location server. */
#define QMI_LOC_EVENT_MASK_NI_GEOFENCE_NOTIFICATION_V02 ((qmiLocEventRegMaskT_v02)0x00004000ull) /**< The control point must enable this mask to receive notifications
related to network-initiated Geofences. These events notify the client
when a network-initiated Geofence is added, deleted, or edited. */
#define QMI_LOC_EVENT_MASK_GEOFENCE_GEN_ALERT_V02 ((qmiLocEventRegMaskT_v02)0x00008000ull) /**< The control point must enable this mask to receive Geofence alerts.
These alerts are generated to inform the client of the changes that may
affect a Geofence, e.g., if GPS is turned off or if the network is
unavailable. */
#define QMI_LOC_EVENT_MASK_GEOFENCE_BREACH_NOTIFICATION_V02 ((qmiLocEventRegMaskT_v02)0x00010000ull) /**< The control point must enable this mask to receive notifications when
a Geofence is breached. These events are generated when a UE enters
or leaves the perimeter of a Geofence. This breach report is for a single
Geofence . */
#define QMI_LOC_EVENT_MASK_PEDOMETER_CONTROL_V02 ((qmiLocEventRegMaskT_v02)0x00020000ull) /**< The control point must enable this mask to register for pedometer
control requests from the location engine. The location engine sends
this event to control the injection of pedometer reports. */
#define QMI_LOC_EVENT_MASK_MOTION_DATA_CONTROL_V02 ((qmiLocEventRegMaskT_v02)0x00040000ull) /**< The control point must enable this mask to register for motion data
control requests from the location engine. The location engine sends
this event to control the injection of motion data. */
#define QMI_LOC_EVENT_MASK_BATCH_FULL_NOTIFICATION_V02 ((qmiLocEventRegMaskT_v02)0x00080000ull) /**< The control point must enable this mask to receive notification when
a batch is full. The location engine sends this event to notify of Batch Full
for ongoing batching session. */
#define QMI_LOC_EVENT_MASK_LIVE_BATCHED_POSITION_REPORT_V02 ((qmiLocEventRegMaskT_v02)0x00100000ull) /**< The control point must enable this mask to receive position report
indications along with an ongoing batching session. The location engine sends
this event to notify the batched position report while a batching session
is ongoing. */
#define QMI_LOC_EVENT_MASK_INJECT_WIFI_AP_DATA_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00200000ull) /**< The control point must enable this mask to receive Wi-Fi AP data inject request
event indications. */
#define QMI_LOC_EVENT_MASK_GEOFENCE_BATCH_BREACH_NOTIFICATION_V02 ((qmiLocEventRegMaskT_v02)0x00400000ull) /**< The control point must enable this mask to receive notifications when
a Geofence is breached. These events are generated when a UE enters
or leaves the perimeter of a Geofence. This breach notification is for
multiple Geofences. Breaches from multiple Geofences are all batched and
sent in the same notification . */
#define QMI_LOC_EVENT_MASK_VEHICLE_DATA_READY_STATUS_V02 ((qmiLocEventRegMaskT_v02)0x00800000ull) /**< The control point must enable this mask to receive notifications from the
location engine indicating its readiness to accept vehicle data (vehicle
accelerometer, vehicle angular rate, vehicle odometry, etc.). */
#define QMI_LOC_EVENT_MASK_GNSS_MEASUREMENT_REPORT_V02 ((qmiLocEventRegMaskT_v02)0x01000000ull) /**< The control point must enable this mask to receive system clock and satellite
measurement report events (system clock, SV time, Doppler, etc.). Reports are
generated only for the GNSS satellite constellations that are enabled using
QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG. */
#define QMI_LOC_EVENT_MASK_GNSS_SV_POLYNOMIAL_REPORT_V02 ((qmiLocEventRegMaskT_v02)0x02000000ull) /**< The control point must enable this mask to receive satellite position
reports as polynomials. Reports are generated only for the GNSS satellite
constellations that are enabled using QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG. */
#define QMI_LOC_EVENT_MASK_GEOFENCE_PROXIMITY_NOTIFICATION_V02 ((qmiLocEventRegMaskT_v02)0x04000000ull) /**< The control point must enable this mask to receive notifications when a Geofence proximity is entered
and exited. The proximity of a Geofence may be due to different contexts. These contexts are identified
using the context ID in this indication. The context of a Geofence may contain Wi-Fi area ID lists, IBeacon lists,
Cell-ID list, and so forth. */
#define QMI_LOC_EVENT_MASK_GDT_UPLOAD_BEGIN_REQ_V02 ((qmiLocEventRegMaskT_v02)0x08000000ull) /**< The control point must enable this mask to receive Generic Data Transport (GDT)
session begin request event indications. */
#define QMI_LOC_EVENT_MASK_GDT_UPLOAD_END_REQ_V02 ((qmiLocEventRegMaskT_v02)0x10000000ull) /**< The control point must enable this mask to receive GDT
session end request event indications. */
#define QMI_LOC_EVENT_MASK_GEOFENCE_BATCH_DWELL_NOTIFICATION_V02 ((qmiLocEventRegMaskT_v02)0x20000000ull) /**< The control point must enable this mask to receive notifications when
a Geofence is dwelled. These events are generated when a UE enters
or leaves the perimeter of a Geofence and dwells inside or outside for a specified time.
This dwell notification is for multiple Geofences. Dwells from multiple Geofences are all batched and
sent in the same notification. */
#define QMI_LOC_EVENT_MASK_GET_TIME_ZONE_REQ_V02 ((qmiLocEventRegMaskT_v02)0x40000000ull) /**< The control point must enable this mask to receive requests for time zone information from
the service. These events are generated when there is a need for time zone information in the
service. */
#define QMI_LOC_EVENT_MASK_BATCHING_STATUS_V02 ((qmiLocEventRegMaskT_v02)0x80000000ull) /**< The control point must enable this mask to receive asynchronous events related
to batching. */
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to register for events from the
location subsystem. */
typedef struct {
/* Mandatory */
/* Event Registration Mask */
qmiLocEventRegMaskT_v02 eventRegMask;
/**< Specifies the events that the control point is interested in receiving.
Valid bitmasks:
- QMI_LOC_EVENT_MASK_POSITION_REPORT (0x00000001) -- The control point must enable this mask to receive position report
event indications.
- QMI_LOC_EVENT_MASK_GNSS_SV_INFO (0x00000002) -- The control point must enable this mask to receive satellite report
event indications. These reports are sent at a 1 Hz rate.
- QMI_LOC_EVENT_MASK_NMEA (0x00000004) -- The control point must enable this mask to receive NMEA reports for
position and satellites in view. The report is at a 1 Hz rate.
- QMI_LOC_EVENT_MASK_NI_NOTIFY_VERIFY_REQ (0x00000008) -- The control point must enable this mask to receive NI Notify/Verify request
event indications.
- QMI_LOC_EVENT_MASK_INJECT_TIME_REQ (0x00000010) -- The control point must enable this mask to receive time injection request
event indications.
- QMI_LOC_EVENT_MASK_INJECT_PREDICTED_ORBITS_REQ (0x00000020) -- The control point must enable this mask to receive predicted orbits request
event indications.
- QMI_LOC_EVENT_MASK_INJECT_POSITION_REQ (0x00000040) -- The control point must enable this mask to receive position injection request
event indications.
- QMI_LOC_EVENT_MASK_ENGINE_STATE (0x00000080) -- The control point must enable this mask to receive engine state report
event indications.
- QMI_LOC_EVENT_MASK_FIX_SESSION_STATE (0x00000100) -- The control point must enable this mask to receive fix session status report
event indications.
- QMI_LOC_EVENT_MASK_WIFI_REQ (0x00000200) -- The control point must enable this mask to receive Wi-Fi position request
event indications.
- QMI_LOC_EVENT_MASK_SENSOR_STREAMING_READY_STATUS (0x00000400) -- The control point must enable this mask to receive notifications from the
location engine indicating its readiness to accept data from the
sensors (accelerometer, gyroscope, etc.).
- QMI_LOC_EVENT_MASK_TIME_SYNC_REQ (0x00000800) -- The control point must enable this mask to receive time sync requests
from the GPS engine. Time sync enables the GPS engine to synchronize
its clock with the sensor processor's clock.
- QMI_LOC_EVENT_MASK_SET_SPI_STREAMING_REPORT (0x00001000) -- The control point must enable this mask to receive Stationary Position
Indicator (SPI) streaming report indications.
- QMI_LOC_EVENT_MASK_LOCATION_SERVER_CONNECTION_REQ (0x00002000) -- The control point must enable this mask to receive location server
requests. These requests are generated when the service wishes to
establish a connection with a location server.
- QMI_LOC_EVENT_MASK_NI_GEOFENCE_NOTIFICATION (0x00004000) -- The control point must enable this mask to receive notifications
related to network-initiated Geofences. These events notify the client
when a network-initiated Geofence is added, deleted, or edited.
- QMI_LOC_EVENT_MASK_GEOFENCE_GEN_ALERT (0x00008000) -- The control point must enable this mask to receive Geofence alerts.
These alerts are generated to inform the client of the changes that may
affect a Geofence, e.g., if GPS is turned off or if the network is
unavailable.
- QMI_LOC_EVENT_MASK_GEOFENCE_BREACH_NOTIFICATION (0x00010000) -- The control point must enable this mask to receive notifications when
a Geofence is breached. These events are generated when a UE enters
or leaves the perimeter of a Geofence. This breach report is for a single
Geofence .
- QMI_LOC_EVENT_MASK_PEDOMETER_CONTROL (0x00020000) -- The control point must enable this mask to register for pedometer
control requests from the location engine. The location engine sends
this event to control the injection of pedometer reports.
- QMI_LOC_EVENT_MASK_MOTION_DATA_CONTROL (0x00040000) -- The control point must enable this mask to register for motion data
control requests from the location engine. The location engine sends
this event to control the injection of motion data.
- QMI_LOC_EVENT_MASK_BATCH_FULL_NOTIFICATION (0x00080000) -- The control point must enable this mask to receive notification when
a batch is full. The location engine sends this event to notify of Batch Full
for ongoing batching session.
- QMI_LOC_EVENT_MASK_LIVE_BATCHED_POSITION_REPORT (0x00100000) -- The control point must enable this mask to receive position report
indications along with an ongoing batching session. The location engine sends
this event to notify the batched position report while a batching session
is ongoing.
- QMI_LOC_EVENT_MASK_INJECT_WIFI_AP_DATA_REQ (0x00200000) -- The control point must enable this mask to receive Wi-Fi AP data inject request
event indications.
- QMI_LOC_EVENT_MASK_GEOFENCE_BATCH_BREACH_NOTIFICATION (0x00400000) -- The control point must enable this mask to receive notifications when
a Geofence is breached. These events are generated when a UE enters
or leaves the perimeter of a Geofence. This breach notification is for
multiple Geofences. Breaches from multiple Geofences are all batched and
sent in the same notification .
- QMI_LOC_EVENT_MASK_VEHICLE_DATA_READY_STATUS (0x00800000) -- The control point must enable this mask to receive notifications from the
location engine indicating its readiness to accept vehicle data (vehicle
accelerometer, vehicle angular rate, vehicle odometry, etc.).
- QMI_LOC_EVENT_MASK_GNSS_MEASUREMENT_REPORT (0x01000000) -- The control point must enable this mask to receive system clock and satellite
measurement report events (system clock, SV time, Doppler, etc.). Reports are
generated only for the GNSS satellite constellations that are enabled using
QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG.
- QMI_LOC_EVENT_MASK_GNSS_SV_POLYNOMIAL_REPORT (0x02000000) -- The control point must enable this mask to receive satellite position
reports as polynomials. Reports are generated only for the GNSS satellite
constellations that are enabled using QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG.
- QMI_LOC_EVENT_MASK_GEOFENCE_PROXIMITY_NOTIFICATION (0x04000000) -- The control point must enable this mask to receive notifications when a Geofence proximity is entered
and exited. The proximity of a Geofence may be due to different contexts. These contexts are identified
using the context ID in this indication. The context of a Geofence may contain Wi-Fi area ID lists, IBeacon lists,
Cell-ID list, and so forth.
- QMI_LOC_EVENT_MASK_GDT_UPLOAD_BEGIN_REQ (0x08000000) -- The control point must enable this mask to receive Generic Data Transport (GDT)
session begin request event indications.
- QMI_LOC_EVENT_MASK_GDT_UPLOAD_END_REQ (0x10000000) -- The control point must enable this mask to receive GDT
session end request event indications.
- QMI_LOC_EVENT_MASK_GEOFENCE_BATCH_DWELL_NOTIFICATION (0x20000000) -- The control point must enable this mask to receive notifications when
a Geofence is dwelled. These events are generated when a UE enters
or leaves the perimeter of a Geofence and dwells inside or outside for a specified time.
This dwell notification is for multiple Geofences. Dwells from multiple Geofences are all batched and
sent in the same notification.
- QMI_LOC_EVENT_MASK_GET_TIME_ZONE_REQ (0x40000000) -- The control point must enable this mask to receive requests for time zone information from
the service. These events are generated when there is a need for time zone information in the
service.
- QMI_LOC_EVENT_MASK_BATCHING_STATUS (0x80000000) -- The control point must enable this mask to receive asynchronous events related
to batching.
Multiple events can be registered by ORing the individual masks and
sending them in this TLV. All unused bits in this mask must be set to 0.
*/
}qmiLocRegEventsReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCFIXRECURRENCEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_RECURRENCE_PERIODIC_V02 = 1, /**< Request periodic position fixes */
eQMI_LOC_RECURRENCE_SINGLE_V02 = 2, /**< Request a single position fix */
QMILOCFIXRECURRENCEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocFixRecurrenceEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCACCURACYLEVELENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_ACCURACY_LOW_V02 = 1, /**< Low accuracy */
eQMI_LOC_ACCURACY_MED_V02 = 2, /**< Medium accuracy */
eQMI_LOC_ACCURACY_HIGH_V02 = 3, /**< High accuracy */
QMILOCACCURACYLEVELENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocAccuracyLevelEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCINTERMEDIATEREPORTSTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_INTERMEDIATE_REPORTS_ON_V02 = 1, /**< Intermediate reports are turned on */
eQMI_LOC_INTERMEDIATE_REPORTS_OFF_V02 = 2, /**< Intermediate reports are turned off */
QMILOCINTERMEDIATEREPORTSTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocIntermediateReportStateEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCCONFIGINCLUDEALTITUDEASSUMEDINGNSSSVINFOENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_ALTITUDE_ASSUMED_IN_GNSS_SV_INFO_ENABLED_V02 = 1, /**< Enable Altitude Assumed information in GNSS SV Info Event. */
eQMI_LOC_ALTITUDE_ASSUMED_IN_GNSS_SV_INFO_DISABLED_V02 = 2, /**< Disable Altitude Assumed information in GNSS SV Info Event. */
QMILOCCONFIGINCLUDEALTITUDEASSUMEDINGNSSSVINFOENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocConfigIncludeAltitudeAssumedInGnssSvInfoEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
char applicationProvider[QMI_LOC_MAX_APP_ID_PROVIDER_LENGTH_V02 + 1];
/**< Application provider. */
char applicationName[QMI_LOC_MAX_APP_ID_NAME_LENGTH_V02 + 1];
/**< Application name. */
uint8_t applicationVersion_valid;
/**< Specifies whether the application version string contains
a valid value: \begin{itemize1}
\item 0x00 (FALSE) -- Application version string is invalid
\item 0x01 (TRUE) -- Application version string is valid
\vspace{-0.18in} \end{itemize1} */
char applicationVersion[QMI_LOC_MAX_APP_ID_VERSION_LENGTH_V02 + 1];
/**< Application version. */
}qmiLocApplicationIdStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to initiate a GPS session. */
typedef struct {
/* Mandatory */
/* Session ID */
uint8_t sessionId;
/**< ID of the session as identified by the control point. The session ID
is reported back in the position reports. The control point must
specify the same session ID in the QMI_LOC_STOP_REQ message. \n
- Range: 0 to 255
*/
/* Optional */
/* Recurrence Type */
uint8_t fixRecurrence_valid; /**< Must be set to true if fixRecurrence is being passed */
qmiLocFixRecurrenceEnumT_v02 fixRecurrence;
/**< Specifies the type of session in which the control point is interested.
If this TLV is not specified, recurrence defaults to SINGLE.
Valid values: \n
- eQMI_LOC_RECURRENCE_PERIODIC (1) -- Request periodic position fixes
- eQMI_LOC_RECURRENCE_SINGLE (2) -- Request a single position fix
*/
/* Optional */
/* Horizontal Accuracy */
uint8_t horizontalAccuracyLevel_valid; /**< Must be set to true if horizontalAccuracyLevel is being passed */
qmiLocAccuracyLevelEnumT_v02 horizontalAccuracyLevel;
/**< Specifies the horizontal accuracy level required by the control point.
If not specified, accuracy defaults to LOW.
Valid values: \n
- eQMI_LOC_ACCURACY_LOW (1) -- Low accuracy
- eQMI_LOC_ACCURACY_MED (2) -- Medium accuracy
- eQMI_LOC_ACCURACY_HIGH (3) -- High accuracy
*/
/* Optional */
/* Enable/Disable Intermediate Reports */
uint8_t intermediateReportState_valid; /**< Must be set to true if intermediateReportState is being passed */
qmiLocIntermediateReportStateEnumT_v02 intermediateReportState;
/**< Specifies if the control point is interested in receiving intermediate
reports. The control point must explicitly set this field to OFF if it
does not wish to receive intermediate position reports. Intermediate
position reports are generated at 1 Hz and are ON by default. If
intermediate reports are turned ON, the client receives position reports
even if the accuracy criteria are not met. The status in such a position
report is set to IN_PROGRESS in order for the control point to identify
intermediate reports.
Valid values: \n
- eQMI_LOC_INTERMEDIATE_REPORTS_ON (1) -- Intermediate reports are turned on
- eQMI_LOC_INTERMEDIATE_REPORTS_OFF (2) -- Intermediate reports are turned off
*/
/* Optional */
/* Minimum Interval Between Final Position Reports */
uint8_t minInterval_valid; /**< Must be set to true if minInterval is being passed */
uint32_t minInterval;
/**< Minimum time interval, specified by the control point, that must elapse between
final position reports. \n
- Units: Milliseconds \n
- Default: 1000 ms
*/
/* Optional */
/* ID of the Application that Sent this Request */
uint8_t applicationId_valid; /**< Must be set to true if applicationId is being passed */
qmiLocApplicationIdStructT_v02 applicationId;
/**< \n Application provider, name, and version.*/
/* Optional */
/* Configuration for Altitude Assumed Info in GNSS SV Info Event */
uint8_t configAltitudeAssumed_valid; /**< Must be set to true if configAltitudeAssumed is being passed */
qmiLocConfigIncludeAltitudeAssumedInGnssSvInfoEnumT_v02 configAltitudeAssumed;
/**< Specifies the configuration to include Altitude Assumed information in the GNSS SV Info Event.
When enabled, an additional GNSS SV Info event indication is sent to the control
point that also includes the altitude assumed information.
If not specified, the configuration defaults to ENABLED.
Valid values: \n
- eQMI_LOC_ALTITUDE_ASSUMED_IN_GNSS_SV_INFO_ENABLED (1) -- Enable Altitude Assumed information in GNSS SV Info Event.
- eQMI_LOC_ALTITUDE_ASSUMED_IN_GNSS_SV_INFO_DISABLED (2) -- Disable Altitude Assumed information in GNSS SV Info Event.
*/
/* Optional */
/* Minimum Interval Between Intermediate Position Reports */
uint8_t minIntermediatePositionReportInterval_valid; /**< Must be set to true if minIntermediatePositionReportInterval is being passed */
uint32_t minIntermediatePositionReportInterval;
/**< Minimum time interval for intermediate position reports, specified by the control point,
that, between the position reports elapsed time, must be longer than the interval time.
If this optional value is not set or set to the default value (0), the intermediate position
will be reported when it is ready. \n
- Units: Milliseconds \n
- Default: 0 ms
*/
/* Optional */
/* Maximum Wait Time to Get a Position Report */
uint8_t positionReportTimeout_valid; /**< Must be set to true if positionReportTimeout is being passed */
uint32_t positionReportTimeout;
/**< Maximum time to work on each fix, specified by the control point.
The GPS engine returns QMI_ERR_INTERNAL if a position cannot be obtained
within the positionReportTimeout value. \n
- Units: Milliseconds \n
- Default: 255*1000 ms \n
- Range: 1000 - 255*1000 ms
*/
/* Optional */
/* Share position report with other clients */
uint8_t sharePosition_valid; /**< Must be set to true if sharePosition is being passed */
uint8_t sharePosition;
/**< Allow to share the position report with the other QMI_LOC clients \n
\item 0x00(FALSE) Do not share the position report
\item 0x01(TRUE) Share the position report
If this optional TLV is not set, the GPS engine allows the position sharing.
\vspace{-0.18in} \end{itemize1}
*/
}qmiLocStartReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to stop a GPS session. */
typedef struct {
/* Mandatory */
/* Session ID */
uint8_t sessionId;
/**< ID of the session that was specified in the Start request
(QMI_LOC_START_REQ).\n
- Range: 0 to 255 */
}qmiLocStopReqMsgT_v02; /* Message */
/**
@}
*/
typedef uint32_t qmiLocPosTechMaskT_v02;
#define QMI_LOC_POS_TECH_MASK_SATELLITE_V02 ((qmiLocPosTechMaskT_v02)0x00000001) /**< Satellites were used to generate the fix */
#define QMI_LOC_POS_TECH_MASK_CELLID_V02 ((qmiLocPosTechMaskT_v02)0x00000002) /**< Cell towers were used to generate the fix */
#define QMI_LOC_POS_TECH_MASK_WIFI_V02 ((qmiLocPosTechMaskT_v02)0x00000004) /**< Wi-Fi access points were used to generate the fix */
#define QMI_LOC_POS_TECH_MASK_SENSORS_V02 ((qmiLocPosTechMaskT_v02)0x00000008) /**< Sensors were used to generate the fix */
#define QMI_LOC_POS_TECH_MASK_REFERENCE_LOCATION_V02 ((qmiLocPosTechMaskT_v02)0x00000010) /**< Reference Location was used to generate the fix */
#define QMI_LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION_V02 ((qmiLocPosTechMaskT_v02)0x00000020) /**< Coarse position injected into the location engine was used to
generate the fix */
#define QMI_LOC_POS_TECH_MASK_AFLT_V02 ((qmiLocPosTechMaskT_v02)0x00000040) /**< AFLT was used to generate the fix */
#define QMI_LOC_POS_TECH_MASK_HYBRID_V02 ((qmiLocPosTechMaskT_v02)0x00000080) /**< GNSS and network-provided measurements were used to
generate the fix */
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSESSIONSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SESS_STATUS_SUCCESS_V02 = 0, /**< Session was successful */
eQMI_LOC_SESS_STATUS_IN_PROGRESS_V02 = 1, /**< Session is still in progress; further position reports will be generated
until either the fix criteria specified by the client are met or the
client response timeout occurs */
eQMI_LOC_SESS_STATUS_GENERAL_FAILURE_V02 = 2, /**< Session failed */
eQMI_LOC_SESS_STATUS_TIMEOUT_V02 = 3, /**< Fix request failed because the session timed out */
eQMI_LOC_SESS_STATUS_USER_END_V02 = 4, /**< Fix request failed because the session was ended by the user */
eQMI_LOC_SESS_STATUS_BAD_PARAMETER_V02 = 5, /**< Fix request failed due to bad parameters in the request */
eQMI_LOC_SESS_STATUS_PHONE_OFFLINE_V02 = 6, /**< Fix request failed because the phone is offline */
eQMI_LOC_SESS_STATUS_ENGINE_LOCKED_V02 = 7, /**< Fix request failed because the engine is locked */
QMILOCSESSIONSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocSessionStatusEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint16_t gpsWeek;
/**< Current GPS week as calculated from midnight, Jan. 6, 1980. \n
- Units: Weeks */
uint32_t gpsTimeOfWeekMs;
/**< Amount of time into the current GPS week. \n
- Units: Milliseconds */
}qmiLocGPSTimeStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
float PDOP;
/**< Position dilution of precision.
\begin{itemize1}
\item Range: 1 (highest accuracy) to 50 (lowest accuracy)
\item PDOP = square root of (HDOP^2 + VDOP^2)
\vspace{-0.18in} \end{itemize1} */
float HDOP;
/**< Horizontal dilution of precision.
\begin{itemize1}
\item Range: 1 (highest accuracy) to 50 (lowest accuracy)
\vspace{-0.18in} \end{itemize1} */
float VDOP;
/**< Vertical dilution of precision.
\begin{itemize1}
\item Range: 1 (highest accuracy) to 50 (lowest accuracy)
\vspace{-0.18in} \end{itemize1} */
}qmiLocDOPStructT_v02; /* Type */
/**
@}
*/
typedef uint32_t qmiLocSensorUsageMaskT_v02;
#define QMI_LOC_SENSOR_MASK_USED_ACCEL_V02 ((qmiLocSensorUsageMaskT_v02)0x00000001) /**< Bitmask to specify whether an accelerometer was used. */
#define QMI_LOC_SENSOR_MASK_USED_GYRO_V02 ((qmiLocSensorUsageMaskT_v02)0x00000002) /**< Bitmask to specify whether a gyroscope was used. */
typedef uint32_t qmiLocSensorAidedMaskT_v02;
#define QMI_LOC_SENSOR_AIDED_MASK_HEADING_V02 ((qmiLocSensorAidedMaskT_v02)0x00000001) /**< Bitmask to specify whether a sensor was used to calculate heading. */
#define QMI_LOC_SENSOR_AIDED_MASK_SPEED_V02 ((qmiLocSensorAidedMaskT_v02)0x00000002) /**< Bitmask to specify whether a sensor was used to calculate speed. */
#define QMI_LOC_SENSOR_AIDED_MASK_POSITION_V02 ((qmiLocSensorAidedMaskT_v02)0x00000004) /**< Bitmask to specify whether a sensor was used to calculate position. */
#define QMI_LOC_SENSOR_AIDED_MASK_VELOCITY_V02 ((qmiLocSensorAidedMaskT_v02)0x00000008) /**< Bitmask to specify whether a sensor was used to calculate velocity. */
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocSensorUsageMaskT_v02 usageMask;
/**< Specifies which sensors were used in calculating the position in the
position report.
Valid bitmasks: \begin{itemize1}
\item 0x00000001 -- SENSOR_USED_ ACCEL
\item 0x00000002 -- SENSOR_USED_ GYRO
\vspace{-0.18in} \end{itemize1} */
qmiLocSensorAidedMaskT_v02 aidingIndicatorMask;
/**< Specifies which results were aided by sensors.
Valid bitmasks: \n
- 0x00000001 -- AIDED_HEADING \n
- 0x00000002 -- AIDED_SPEED \n
- 0x00000004 -- AIDED_POSITION \n
- 0x00000008 -- AIDED_VELOCITY */
}qmiLocSensorUsageIndicatorStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCTIMESOURCEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_TIME_SRC_INVALID_V02 = 0, /**< Invalid time. */
eQMI_LOC_TIME_SRC_NETWORK_TIME_TRANSFER_V02 = 1, /**< Time is set by the 1X system */
eQMI_LOC_TIME_SRC_NETWORK_TIME_TAGGING_V02 = 2, /**< Time is set by WCDMA/GSM time tagging (that is,
associating network time with GPS time) */
eQMI_LOC_TIME_SRC_EXTERNAL_INPUT_V02 = 3, /**< Time is set by an external injection */
eQMI_LOC_TIME_SRC_TOW_DECODE_V02 = 4, /**< Time is set after decoding over-the-air GPS navigation data
from one GPS satellite */
eQMI_LOC_TIME_SRC_TOW_CONFIRMED_V02 = 5, /**< Time is set after decoding over-the-air GPS navigation data
from multiple satellites */
eQMI_LOC_TIME_SRC_TOW_AND_WEEK_CONFIRMED_V02 = 6, /**< Both time of the week and the GPS week number are known */
eQMI_LOC_TIME_SRC_NAV_SOLUTION_V02 = 7, /**< Time is set by the position engine after the fix is obtained */
eQMI_LOC_TIME_SRC_SOLVE_FOR_TIME_V02 = 8, /**< Time is set by the position engine after performing SFT;
this is done when the clock time uncertainty is large */
eQMI_LOC_TIME_SRC_GLO_TOW_DECODE_V02 = 9, /**< Time is set after decoding GLO satellites */
eQMI_LOC_TIME_SRC_TIME_TRANSFORM_V02 = 10, /**< Time is set after transforming the GPS to GLO time */
eQMI_LOC_TIME_SRC_WCDMA_SLEEP_TIME_TAGGING_V02 = 11, /**< Time is set by the sleep time tag provided by the WCDMA network */
eQMI_LOC_TIME_SRC_GSM_SLEEP_TIME_TAGGING_V02 = 12, /**< Time is set by the sleep time tag provided by the GSM network */
eQMI_LOC_TIME_SRC_UNKNOWN_V02 = 13, /**< Source of the time is unknown */
eQMI_LOC_TIME_SRC_SYSTEM_TIMETICK_V02 = 14, /**< Time is derived from the system clock (better known as the slow clock);
GNSS time is maintained irrespective of the GNSS receiver state */
eQMI_LOC_TIME_SRC_QZSS_TOW_DECODE_V02 = 15, /**< Time is set after decoding QZSS satellites */
eQMI_LOC_TIME_SRC_BDS_TOW_DECODE_V02 = 16, /**< Time is set after decoding BDS satellites */
eQMI_LOC_TIME_SRC_GAL_TOW_DECODE_V02 = 17, /**< Time is set after decoding GAL satellites */
QMILOCTIMESOURCEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocTimeSourceEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCRELIABILITYENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_RELIABILITY_NOT_SET_V02 = 0, /**< Location reliability is not set */
eQMI_LOC_RELIABILITY_VERY_LOW_V02 = 1, /**< Location reliability is very low; use it at your own risk */
eQMI_LOC_RELIABILITY_LOW_V02 = 2, /**< Location reliability is low; little or no cross-checking is possible */
eQMI_LOC_RELIABILITY_MEDIUM_V02 = 3, /**< Location reliability is medium; limited cross-check passed */
eQMI_LOC_RELIABILITY_HIGH_V02 = 4, /**< Location reliability is high; strong cross-check passed */
QMILOCRELIABILITYENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocReliabilityEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sends the position report to the control point. */
typedef struct {
/* Mandatory */
/* Session Status */
qmiLocSessionStatusEnumT_v02 sessionStatus;
/**< Session status.
Valid values: \n
- eQMI_LOC_SESS_STATUS_SUCCESS (0) -- Session was successful
- eQMI_LOC_SESS_STATUS_IN_PROGRESS (1) -- Session is still in progress; further position reports will be generated
until either the fix criteria specified by the client are met or the
client response timeout occurs
- eQMI_LOC_SESS_STATUS_GENERAL_FAILURE (2) -- Session failed
- eQMI_LOC_SESS_STATUS_TIMEOUT (3) -- Fix request failed because the session timed out
- eQMI_LOC_SESS_STATUS_USER_END (4) -- Fix request failed because the session was ended by the user
- eQMI_LOC_SESS_STATUS_BAD_PARAMETER (5) -- Fix request failed due to bad parameters in the request
- eQMI_LOC_SESS_STATUS_PHONE_OFFLINE (6) -- Fix request failed because the phone is offline
- eQMI_LOC_SESS_STATUS_ENGINE_LOCKED (7) -- Fix request failed because the engine is locked
*/
/* Mandatory */
/* Session ID */
uint8_t sessionId;
/**< ID of the session that was specified in the Start request
QMI_LOC_START_REQ. \n
- Range: 0 to 255 */
/* Optional */
/* Latitude */
uint8_t latitude_valid; /**< Must be set to true if latitude is being passed */
double latitude;
/**< Latitude (specified in WGS84 datum).
\begin{itemize1}
\item Type: Floating point
\item Units: Degrees
\item Range: -90.0 to 90.0 \begin{itemize1}
\item Positive values indicate northern latitude
\item Negative values indicate southern latitude
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
/* Optional */
/* Longitude */
uint8_t longitude_valid; /**< Must be set to true if longitude is being passed */
double longitude;
/**< Longitude (specified in WGS84 datum).
\begin{itemize1}
\item Type: Floating point
\item Units: Degrees
\item Range: -180.0 to 180.0 \begin{itemize1}
\item Positive values indicate eastern longitude
\item Negative values indicate western longitude
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
/* Optional */
/* Circular Horizontal Position Uncertainty */
uint8_t horUncCircular_valid; /**< Must be set to true if horUncCircular is being passed */
float horUncCircular;
/**< Horizontal position uncertainty (circular).\n
- Units: Meters */
/* Optional */
/* Horizontal Elliptical Uncertainty (Semi-Minor Axis) */
uint8_t horUncEllipseSemiMinor_valid; /**< Must be set to true if horUncEllipseSemiMinor is being passed */
float horUncEllipseSemiMinor;
/**< Semi-minor axis of horizontal elliptical uncertainty.\n
- Units: Meters */
/* Optional */
/* Horizontal Elliptical Uncertainty (Semi-Major Axis) */
uint8_t horUncEllipseSemiMajor_valid; /**< Must be set to true if horUncEllipseSemiMajor is being passed */
float horUncEllipseSemiMajor;
/**< Semi-major axis of horizontal elliptical uncertainty.\n
- Units: Meters */
/* Optional */
/* Elliptical Horizontal Uncertainty Azimuth */
uint8_t horUncEllipseOrientAzimuth_valid; /**< Must be set to true if horUncEllipseOrientAzimuth is being passed */
float horUncEllipseOrientAzimuth;
/**< Elliptical horizontal uncertainty azimuth of orientation.\n
- Units: Decimal degrees \n
- Range: 0 to 180 */
/* Optional */
/* Horizontal Confidence */
uint8_t horConfidence_valid; /**< Must be set to true if horConfidence is being passed */
uint8_t horConfidence;
/**< Horizontal uncertainty confidence.
If both elliptical and horizontal uncertainties are specified in this message,
the confidence corresponds to the elliptical uncertainty. \n
- Units: Percent \n
- Range: 0 to 99 */
/* Optional */
/* Horizontal Reliability */
uint8_t horReliability_valid; /**< Must be set to true if horReliability is being passed */
qmiLocReliabilityEnumT_v02 horReliability;
/**< Specifies the reliability of the horizontal position.
Valid values: \n
- eQMI_LOC_RELIABILITY_NOT_SET (0) -- Location reliability is not set
- eQMI_LOC_RELIABILITY_VERY_LOW (1) -- Location reliability is very low; use it at your own risk
- eQMI_LOC_RELIABILITY_LOW (2) -- Location reliability is low; little or no cross-checking is possible
- eQMI_LOC_RELIABILITY_MEDIUM (3) -- Location reliability is medium; limited cross-check passed
- eQMI_LOC_RELIABILITY_HIGH (4) -- Location reliability is high; strong cross-check passed
*/
/* Optional */
/* Horizontal Speed */
uint8_t speedHorizontal_valid; /**< Must be set to true if speedHorizontal is being passed */
float speedHorizontal;
/**< Horizontal speed.\n
- Units: Meters/second */
/* Optional */
/* Speed Uncertainty */
uint8_t speedUnc_valid; /**< Must be set to true if speedUnc is being passed */
float speedUnc;
/**< 3-D Speed uncertainty.\n
- Units: Meters/second */
/* Optional */
/* Altitude With Respect to Ellipsoid */
uint8_t altitudeWrtEllipsoid_valid; /**< Must be set to true if altitudeWrtEllipsoid is being passed */
float altitudeWrtEllipsoid;
/**< Altitude with respect to the WGS84 ellipsoid.\n
- Units: Meters \n
- Range: -500 to 15883 */
/* Optional */
/* Altitude With Respect to Sea Level */
uint8_t altitudeWrtMeanSeaLevel_valid; /**< Must be set to true if altitudeWrtMeanSeaLevel is being passed */
float altitudeWrtMeanSeaLevel;
/**< Altitude with respect to mean sea level.\n
- Units: Meters */
/* Optional */
/* Vertical Uncertainty */
uint8_t vertUnc_valid; /**< Must be set to true if vertUnc is being passed */
float vertUnc;
/**< Vertical uncertainty.\n
- Units: Meters */
/* Optional */
/* Vertical Confidence */
uint8_t vertConfidence_valid; /**< Must be set to true if vertConfidence is being passed */
uint8_t vertConfidence;
/**< Vertical uncertainty confidence.\n
- Units: Percent \n
- Range: 0 to 99 */
/* Optional */
/* Vertical Reliability */
uint8_t vertReliability_valid; /**< Must be set to true if vertReliability is being passed */
qmiLocReliabilityEnumT_v02 vertReliability;
/**< Specifies the reliability of the vertical position.
Valid values: \n
- eQMI_LOC_RELIABILITY_NOT_SET (0) -- Location reliability is not set
- eQMI_LOC_RELIABILITY_VERY_LOW (1) -- Location reliability is very low; use it at your own risk
- eQMI_LOC_RELIABILITY_LOW (2) -- Location reliability is low; little or no cross-checking is possible
- eQMI_LOC_RELIABILITY_MEDIUM (3) -- Location reliability is medium; limited cross-check passed
- eQMI_LOC_RELIABILITY_HIGH (4) -- Location reliability is high; strong cross-check passed
*/
/* Optional */
/* Vertical Speed */
uint8_t speedVertical_valid; /**< Must be set to true if speedVertical is being passed */
float speedVertical;
/**< Vertical speed.\n
- Units: Meters/second */
/* Optional */
/* Heading */
uint8_t heading_valid; /**< Must be set to true if heading is being passed */
float heading;
/**< Heading.\n
- Units: Degrees \n
- Range: 0 to 359.999 */
/* Optional */
/* Heading Uncertainty */
uint8_t headingUnc_valid; /**< Must be set to true if headingUnc is being passed */
float headingUnc;
/**< Heading uncertainty.\n
- Units: Degrees \n
- Range: 0 to 359.999 */
/* Optional */
/* Magnetic Deviation */
uint8_t magneticDeviation_valid; /**< Must be set to true if magneticDeviation is being passed */
float magneticDeviation;
/**< Difference between the bearing to true north and the bearing shown
on a magnetic compass. The deviation is positive when the magnetic
north is east of true north. */
/* Optional */
/* Technology Used */
uint8_t technologyMask_valid; /**< Must be set to true if technologyMask is being passed */
qmiLocPosTechMaskT_v02 technologyMask;
/**< Technology used in computing this fix.
Valid bitmasks: \n
- QMI_LOC_POS_TECH_MASK_SATELLITE (0x00000001) -- Satellites were used to generate the fix
- QMI_LOC_POS_TECH_MASK_CELLID (0x00000002) -- Cell towers were used to generate the fix
- QMI_LOC_POS_TECH_MASK_WIFI (0x00000004) -- Wi-Fi access points were used to generate the fix
- QMI_LOC_POS_TECH_MASK_SENSORS (0x00000008) -- Sensors were used to generate the fix
- QMI_LOC_POS_TECH_MASK_REFERENCE_LOCATION (0x00000010) -- Reference Location was used to generate the fix
- QMI_LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION (0x00000020) -- Coarse position injected into the location engine was used to
generate the fix
- QMI_LOC_POS_TECH_MASK_AFLT (0x00000040) -- AFLT was used to generate the fix
- QMI_LOC_POS_TECH_MASK_HYBRID (0x00000080) -- GNSS and network-provided measurements were used to
generate the fix
*/
/* Optional */
/* Dilution of Precision */
uint8_t DOP_valid; /**< Must be set to true if DOP is being passed */
qmiLocDOPStructT_v02 DOP;
/**< \vspace{0.06in} \n Dilution of precision associated with this position. */
/* Optional */
/* UTC Timestamp */
uint8_t timestampUtc_valid; /**< Must be set to true if timestampUtc is being passed */
uint64_t timestampUtc;
/**< UTC timestamp. \n
- Units: Milliseconds since Jan. 1, 1970 */
/* Optional */
/* Leap Seconds */
uint8_t leapSeconds_valid; /**< Must be set to true if leapSeconds is being passed */
uint8_t leapSeconds;
/**< Leap second information. If leapSeconds is not available,
timestampUtc is calculated based on a hard-coded value
for leap seconds. \n
- Units: Seconds */
/* Optional */
/* GPS Time */
uint8_t gpsTime_valid; /**< Must be set to true if gpsTime is being passed */
qmiLocGPSTimeStructT_v02 gpsTime;
/**< \vspace{0.06in} \n The number of weeks since Jan. 5, 1980, and
milliseconds into the current week. */
/* Optional */
/* Time Uncertainty */
uint8_t timeUnc_valid; /**< Must be set to true if timeUnc is being passed */
float timeUnc;
/**< Time uncertainty. \n
- Units: Milliseconds */
/* Optional */
/* Time Source */
uint8_t timeSrc_valid; /**< Must be set to true if timeSrc is being passed */
qmiLocTimeSourceEnumT_v02 timeSrc;
/**< Time source. Valid values: \n
- eQMI_LOC_TIME_SRC_INVALID (0) -- Invalid time.
- eQMI_LOC_TIME_SRC_NETWORK_TIME_TRANSFER (1) -- Time is set by the 1X system
- eQMI_LOC_TIME_SRC_NETWORK_TIME_TAGGING (2) -- Time is set by WCDMA/GSM time tagging (that is,
associating network time with GPS time)
- eQMI_LOC_TIME_SRC_EXTERNAL_INPUT (3) -- Time is set by an external injection
- eQMI_LOC_TIME_SRC_TOW_DECODE (4) -- Time is set after decoding over-the-air GPS navigation data
from one GPS satellite
- eQMI_LOC_TIME_SRC_TOW_CONFIRMED (5) -- Time is set after decoding over-the-air GPS navigation data
from multiple satellites
- eQMI_LOC_TIME_SRC_TOW_AND_WEEK_CONFIRMED (6) -- Both time of the week and the GPS week number are known
- eQMI_LOC_TIME_SRC_NAV_SOLUTION (7) -- Time is set by the position engine after the fix is obtained
- eQMI_LOC_TIME_SRC_SOLVE_FOR_TIME (8) -- Time is set by the position engine after performing SFT;
this is done when the clock time uncertainty is large
- eQMI_LOC_TIME_SRC_GLO_TOW_DECODE (9) -- Time is set after decoding GLO satellites
- eQMI_LOC_TIME_SRC_TIME_TRANSFORM (10) -- Time is set after transforming the GPS to GLO time
- eQMI_LOC_TIME_SRC_WCDMA_SLEEP_TIME_TAGGING (11) -- Time is set by the sleep time tag provided by the WCDMA network
- eQMI_LOC_TIME_SRC_GSM_SLEEP_TIME_TAGGING (12) -- Time is set by the sleep time tag provided by the GSM network
- eQMI_LOC_TIME_SRC_UNKNOWN (13) -- Source of the time is unknown
- eQMI_LOC_TIME_SRC_SYSTEM_TIMETICK (14) -- Time is derived from the system clock (better known as the slow clock);
GNSS time is maintained irrespective of the GNSS receiver state
- eQMI_LOC_TIME_SRC_QZSS_TOW_DECODE (15) -- Time is set after decoding QZSS satellites
- eQMI_LOC_TIME_SRC_BDS_TOW_DECODE (16) -- Time is set after decoding BDS satellites
- eQMI_LOC_TIME_SRC_GAL_TOW_DECODE (17) -- Time is set after decoding GAL satellites */
/* Optional */
/* Sensor Data Usage */
uint8_t sensorDataUsage_valid; /**< Must be set to true if sensorDataUsage is being passed */
qmiLocSensorUsageIndicatorStructT_v02 sensorDataUsage;
/**< \vspace{0.06in} \n Indicates whether sensor data was used in computing the position in this
position report. */
/* Optional */
/* Fix Count for This Session */
uint8_t fixId_valid; /**< Must be set to true if fixId is being passed */
uint32_t fixId;
/**< Fix count for the session. Starts with 0 and increments by one
for each successive position report for a particular session. */
/* Optional */
/* SVs Used to Calculate the Fix */
uint8_t gnssSvUsedList_valid; /**< Must be set to true if gnssSvUsedList is being passed */
uint32_t gnssSvUsedList_len; /**< Must be set to # of elements in gnssSvUsedList */
uint16_t gnssSvUsedList[QMI_LOC_MAX_SV_USED_LIST_LENGTH_V02];
/**< Each entry in the list contains the SV ID of a satellite
used for calculating this position report. The following
information is associated with each SV ID: \n
Range: \n
- For GPS: 1 to 32 \n
- For GLONASS: 65 to 96 \n
- For QZSS: 193 to 197 \n
- For BDS: 201 to 237 \n
- For GAL: 301 to 336
*/
/* Optional */
/* Altitude Assumed */
uint8_t altitudeAssumed_valid; /**< Must be set to true if altitudeAssumed is being passed */
uint8_t altitudeAssumed;
/**< Indicates whether altitude is assumed or calculated: \begin{itemize1}
\item 0x00 (FALSE) -- Altitude is calculated
\item 0x01 (TRUE) -- Altitude is assumed; there may not be enough
satellites to determine the precise altitude
\vspace{-0.18in} \end{itemize1}*/
}qmiLocEventPositionReportIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSVSYSTEMENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SV_SYSTEM_GPS_V02 = 1, /**< GPS satellite */
eQMI_LOC_SV_SYSTEM_GALILEO_V02 = 2, /**< GALILEO satellite */
eQMI_LOC_SV_SYSTEM_SBAS_V02 = 3, /**< SBAS satellite */
eQMI_LOC_SV_SYSTEM_COMPASS_V02 = 4, /**< COMPASS satellite (Deprecated) */
eQMI_LOC_SV_SYSTEM_GLONASS_V02 = 5, /**< GLONASS satellite */
eQMI_LOC_SV_SYSTEM_BDS_V02 = 6, /**< BDS satellite */
eQMI_LOC_SV_SYSTEM_QZSS_V02 = 7, /**< QZSS satellite */
QMILOCSVSYSTEMENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocSvSystemEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSVSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SV_STATUS_IDLE_V02 = 1, /**< SV is not being actively processed */
eQMI_LOC_SV_STATUS_SEARCH_V02 = 2, /**< The system is searching for this SV */
eQMI_LOC_SV_STATUS_TRACK_V02 = 3, /**< SV is being tracked */
QMILOCSVSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocSvStatusEnumT_v02;
/**
@}
*/
typedef uint32_t qmiLocSvInfoValidMaskT_v02;
#define QMI_LOC_SV_INFO_MASK_VALID_SYSTEM_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000001) /**< System field is valid in SV information */
#define QMI_LOC_SV_INFO_MASK_VALID_GNSS_SVID_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000002) /**< gnssSvId field is valid in SV information */
#define QMI_LOC_SV_INFO_MASK_VALID_HEALTH_STATUS_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000004) /**< healthStatus field is valid in SV information */
#define QMI_LOC_SV_INFO_MASK_VALID_PROCESS_STATUS_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000008) /**< processStatus field is valid in SV information */
#define QMI_LOC_SV_INFO_MASK_VALID_SVINFO_MASK_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000010) /**< svInfoMask field is valid in SV information */
#define QMI_LOC_SV_INFO_MASK_VALID_ELEVATION_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000020) /**< Elevation field is valid in SV information */
#define QMI_LOC_SV_INFO_MASK_VALID_AZIMUTH_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000040) /**< Azimuth field is valid in SV information */
#define QMI_LOC_SV_INFO_MASK_VALID_SNR_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000080) /**< SNR field is valid in SV information */
typedef uint8_t qmiLocSvInfoMaskT_v02;
#define QMI_LOC_SVINFO_MASK_HAS_EPHEMERIS_V02 ((qmiLocSvInfoMaskT_v02)0x01) /**< Ephemeris is available for this SV */
#define QMI_LOC_SVINFO_MASK_HAS_ALMANAC_V02 ((qmiLocSvInfoMaskT_v02)0x02) /**< Almanac is available for this SV */
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocSvInfoValidMaskT_v02 validMask;
/**< Bitmask indicating which of the fields in this TLV are valid.
Valid bitmasks: \begin{itemize1}
\item 0x00000001 -- VALID_SYSTEM
\item 0x00000002 -- VALID_GNSS_SVID
\item 0x00000004 -- VALID_HEALTH_ STATUS
\item 0x00000008 -- VALID_PROCESS_ STATUS
\item 0x00000010 -- VALID_SVINFO_ MASK
\item 0x00000020 -- VALID_ELEVATION
\item 0x00000040 -- VALID_AZIMUTH
\item 0x00000080 -- VALID_SNR
\vspace{-0.18in} \end{itemize1} */
qmiLocSvSystemEnumT_v02 system;
/**< Indicates to which constellation this SV belongs.
Valid values: \n
- eQMI_LOC_SV_SYSTEM_GPS (1) -- GPS satellite
- eQMI_LOC_SV_SYSTEM_GALILEO (2) -- GALILEO satellite
- eQMI_LOC_SV_SYSTEM_SBAS (3) -- SBAS satellite
- eQMI_LOC_SV_SYSTEM_COMPASS (4) -- COMPASS satellite (Deprecated)
- eQMI_LOC_SV_SYSTEM_GLONASS (5) -- GLONASS satellite
- eQMI_LOC_SV_SYSTEM_BDS (6) -- BDS satellite
- eQMI_LOC_SV_SYSTEM_QZSS (7) -- QZSS satellite
*/
uint16_t gnssSvId;
/**< GNSS SV ID.
\begin{itemize1}
\item Range: \begin{itemize1}
\item For GPS: 1 to 32
\item For GLONASS: 1 to 32
\item For SBAS: 120 to 158 and 183 to 187
\item For QZSS: 193 to 197
\item For BDS: 201 to 237
\item For GAL: 301 to 336
\end{itemize1} \end{itemize1}
The GPS and GLONASS SVs can be disambiguated using the system field. */
uint8_t healthStatus;
/**< Health status.
\begin{itemize1}
\item Range: 0 to 1; 0 = unhealthy, \n 1 = healthy
\vspace{-0.18in} \end{itemize1}*/
qmiLocSvStatusEnumT_v02 svStatus;
/**< SV processing status.
Valid values: \n
- eQMI_LOC_SV_STATUS_IDLE (1) -- SV is not being actively processed
- eQMI_LOC_SV_STATUS_SEARCH (2) -- The system is searching for this SV
- eQMI_LOC_SV_STATUS_TRACK (3) -- SV is being tracked
*/
qmiLocSvInfoMaskT_v02 svInfoMask;
/**< Indicates whether almanac and ephemeris information is available. \n
Valid bitmasks:
- 0x01 -- SVINFO_HAS_EPHEMERIS \n
- 0x02 -- SVINFO_HAS_ALMANAC
*/
float elevation;
/**< SV elevation angle.\n
- Units: Degrees \n
- Range: 0 to 90 */
float azimuth;
/**< SV azimuth angle.\n
- Units: Degrees \n
- Range: 0 to 360 */
float snr;
/**< SV signal-to-noise ratio. \n
- Units: dB-Hz */
}qmiLocSvInfoStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sends a satellite report to the control point. */
typedef struct {
/* Mandatory */
/* Altitude Assumed */
uint8_t altitudeAssumed;
/**< Indicates whether altitude is assumed or calculated: \begin{itemize1}
\item 0x00 (FALSE) -- Valid altitude is calculated
\item 0x01 (TRUE) -- Valid altitude is assumed; there may not be
enough satellites to determine precise altitude
\vspace{-0.18in} \end{itemize1}*/
/* Optional */
/* Satellite Info */
uint8_t svList_valid; /**< Must be set to true if svList is being passed */
uint32_t svList_len; /**< Must be set to # of elements in svList */
qmiLocSvInfoStructT_v02 svList[QMI_LOC_SV_INFO_LIST_MAX_SIZE_V02];
/**< \vspace{0.06in} \n SV information list. */
}qmiLocEventGnssSvInfoIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sends NMEA sentences to the control point */
typedef struct {
/* Mandatory */
/* NMEA String */
char nmea[QMI_LOC_NMEA_STRING_MAX_LENGTH_V02 + 1];
/**< NMEA string.
\begin{itemize1}
\item Type: NULL-terminated string
\item Maximum string length (including NULL terminator): 201
\vspace{-0.18in} \end{itemize1}*/
}qmiLocEventNmeaIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCNINOTIFYVERIFYENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_NI_USER_NO_NOTIFY_NO_VERIFY_V02 = 1, /**< No notification and no verification required */
eQMI_LOC_NI_USER_NOTIFY_ONLY_V02 = 2, /**< Notify only; no verification required */
eQMI_LOC_NI_USER_NOTIFY_VERIFY_ALLOW_NO_RESP_V02 = 3, /**< Notify and verify, but no response required. */
eQMI_LOC_NI_USER_NOTIFY_VERIFY_NOT_ALLOW_NO_RESP_V02 = 4, /**< Notify and verify, and require a response */
eQMI_LOC_NI_USER_NOTIFY_VERIFY_PRIVACY_OVERRIDE_V02 = 5, /**< Notify and verify; privacy override */
QMILOCNINOTIFYVERIFYENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocNiNotifyVerifyEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCNIVXPOSMODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_NI_VX_MS_ASSISTED_ONLY_V02 = 1, /**< MS-assisted only allowed */
eQMI_LOC_NI_VX_MS_BASED_ONLY_V02 = 2, /**< MS-based only allowed */
eQMI_LOC_NI_VX_MS_ASSISTED_PREFERRED_MS_BASED_ALLOWED_V02 = 3, /**< MS-assisted preferred, but MS-based allowed */
eQMI_LOC_NI_VX_MS_BASED_PREFERRED_MS_ASSISTED_ALLOWED_V02 = 4, /**< MS-based preferred, but MS-assisted allowed */
QMILOCNIVXPOSMODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocNiVxPosModeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCNIVXREQUESTORIDENCODINGSCHEMEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_NI_VX_OCTET_V02 = 0, /**< Encoding is Octet */
eQMI_LOC_NI_VX_EXN_PROTOCOL_MSG_V02 = 1, /**< Encoding is EXN protocol message */
eQMI_LOC_NI_VX_ASCII_V02 = 2, /**< Encoding is ASCII */
eQMI_LOC_NI_VX_IA5_V02 = 3, /**< Encoding is IA5 */
eQMI_LOC_NI_VX_UNICODE_V02 = 4, /**< Encoding is Unicode */
eQMI_LOC_NI_VX_SHIFT_JIS_V02 = 5, /**< Encoding is Shift JIS */
eQMI_LOC_NI_VX_KOREAN_V02 = 6, /**< Encoding is Korean */
eQMI_LOC_NI_VX_LATIN_HEBREW_V02 = 7, /**< Encoding is Latin Hebrew */
eQMI_LOC_NI_VX_LATIN_V02 = 8, /**< Encoding is Latin */
eQMI_LOC_NI_VX_GSM_V02 = 9, /**< Encoding is GSM */
QMILOCNIVXREQUESTORIDENCODINGSCHEMEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocNiVxRequestorIdEncodingSchemeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint8_t posQosIncl;
/**< Indicates whether quality of service is included:\n
- 0x01 (TRUE) -- QoS is included \n
- 0x00 (FALSE) -- QoS is not included */
uint8_t posQos;
/**< Position QoS timeout. \n
- Units: Seconds \n
- Range: 0 to 255 */
uint32_t numFixes;
/**< Number of fixes allowed. */
uint32_t timeBetweenFixes;
/**< Time between fixes. \n
- Units: Seconds */
qmiLocNiVxPosModeEnumT_v02 posMode;
/**< Position mode.
Valid values:
- eQMI_LOC_NI_VX_MS_ASSISTED_ONLY (1) -- MS-assisted only allowed
- eQMI_LOC_NI_VX_MS_BASED_ONLY (2) -- MS-based only allowed
- eQMI_LOC_NI_VX_MS_ASSISTED_PREFERRED_MS_BASED_ALLOWED (3) -- MS-assisted preferred, but MS-based allowed
- eQMI_LOC_NI_VX_MS_BASED_PREFERRED_MS_ASSISTED_ALLOWED (4) -- MS-based preferred, but MS-assisted allowed
*/
qmiLocNiVxRequestorIdEncodingSchemeEnumT_v02 encodingScheme;
/**< VX encoding scheme.
Valid values:
- eQMI_LOC_NI_VX_OCTET (0) -- Encoding is Octet
- eQMI_LOC_NI_VX_EXN_PROTOCOL_MSG (1) -- Encoding is EXN protocol message
- eQMI_LOC_NI_VX_ASCII (2) -- Encoding is ASCII
- eQMI_LOC_NI_VX_IA5 (3) -- Encoding is IA5
- eQMI_LOC_NI_VX_UNICODE (4) -- Encoding is Unicode
- eQMI_LOC_NI_VX_SHIFT_JIS (5) -- Encoding is Shift JIS
- eQMI_LOC_NI_VX_KOREAN (6) -- Encoding is Korean
- eQMI_LOC_NI_VX_LATIN_HEBREW (7) -- Encoding is Latin Hebrew
- eQMI_LOC_NI_VX_LATIN (8) -- Encoding is Latin
- eQMI_LOC_NI_VX_GSM (9) -- Encoding is GSM
*/
uint32_t requestorId_len; /**< Must be set to # of elements in requestorId */
uint8_t requestorId[QMI_LOC_NI_MAX_REQUESTOR_ID_LENGTH_V02];
/**< Requestor ID. \n
- Type: Array of bytes \n
- Maximum array length: 200
*/
uint16_t userRespTimerInSeconds;
/**< Time to wait for the user to respond. \n
- Units: Seconds */
}qmiLocNiVxNotifyVerifyStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCNISUPLPOSMETHODENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETASSISTED_V02 = 1, /**< Set assisted */
eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETBASED_V02 = 2, /**< Set based */
eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETASSISTED_PREF_V02 = 3, /**< Set assisted preferred */
eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETBASED_PREF_V02 = 4, /**< Set based preferred */
eQMI_LOC_NI_SUPL_POSMETHOD_AUTONOMOUS_GPS_V02 = 5, /**< Standalone GPS */
eQMI_LOC_NI_SUPL_POSMETHOD_AFLT_V02 = 6, /**< Advanced forward link trilateration */
eQMI_LOC_NI_SUPL_POSMETHOD_ECID_V02 = 7, /**< Exclusive chip ID */
eQMI_LOC_NI_SUPL_POSMETHOD_EOTD_V02 = 8, /**< Enhnaced observed time difference */
eQMI_LOC_NI_SUPL_POSMETHOD_OTDOA_V02 = 9, /**< Observed time delay of arrival */
eQMI_LOC_NI_SUPL_POSMETHOD_NO_POSITION_V02 = 10, /**< No position */
QMILOCNISUPLPOSMETHODENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocNiSuplPosMethodEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCNIDATACODINGSCHEMEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_NI_SS_GERMAN_V02 = 12, /**< Language is German */
eQMI_LOC_NI_SS_ENGLISH_V02 = 13, /**< Language is English */
eQMI_LOC_NI_SS_ITALIAN_V02 = 14, /**< Language is Italian */
eQMI_LOC_NI_SS_FRENCH_V02 = 15, /**< Language is French */
eQMI_LOC_NI_SS_SPANISH_V02 = 16, /**< Language is Spanish */
eQMI_LOC_NI_SS_DUTCH_V02 = 17, /**< Language is Dutch */
eQMI_LOC_NI_SS_SWEDISH_V02 = 18, /**< Language is Swedish */
eQMI_LOC_NI_SS_DANISH_V02 = 19, /**< Language is Danish */
eQMI_LOC_NI_SS_PORTUGUESE_V02 = 20, /**< Language is Portuguese */
eQMI_LOC_NI_SS_FINNISH_V02 = 21, /**< Language is Finnish */
eQMI_LOC_NI_SS_NORWEGIAN_V02 = 22, /**< Language is Norwegian */
eQMI_LOC_NI_SS_GREEK_V02 = 23, /**< Language is Greek */
eQMI_LOC_NI_SS_TURKISH_V02 = 24, /**< Language is Turkish */
eQMI_LOC_NI_SS_HUNGARIAN_V02 = 25, /**< Language is Hungarian */
eQMI_LOC_NI_SS_POLISH_V02 = 26, /**< Language is Polish */
eQMI_LOC_NI_SS_LANGUAGE_UNSPEC_V02 = 27, /**< Language is unspecified */
eQMI_LOC_NI_SUPL_UTF8_V02 = 28, /**< Encoding is UTF 8 */
eQMI_LOC_NI_SUPL_UCS2_V02 = 29, /**< Encoding is UCS 2 */
eQMI_LOC_NI_SUPL_GSM_DEFAULT_V02 = 30, /**< Encoding is GSM default */
QMILOCNIDATACODINGSCHEMEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocNiDataCodingSchemeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCNISUPLFORMATENUMTYPE_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_NI_SUPL_FORMAT_LOGICAL_NAME_V02 = 0, /**< SUPL logical name format */
eQMI_LOC_NI_SUPL_FORMAT_EMAIL_ADDRESS_V02 = 1, /**< SUPL email address format */
eQMI_LOC_NI_SUPL_FORMAT_MSISDN_V02 = 2, /**< SUPL MS-ISDN format */
eQMI_LOC_NI_SUPL_FORMAT_URL_V02 = 3, /**< SUPL URL format */
eQMI_LOC_NI_SUPL_FORMAT_SIP_URL_V02 = 4, /**< SUPL SIP URL format */
eQMI_LOC_NI_SUPL_FORMAT_MIN_V02 = 5, /**< SUPL MIN format */
eQMI_LOC_NI_SUPL_FORMAT_MDN_V02 = 6, /**< SUPL MDN format */
eQMI_LOC_NI_SUPL_FORMAT_IMSPUBLIC_IDENTITY_V02 = 7, /**< SUPL IMS public identity */
eQMI_LOC_NI_SUPL_FORMAT_OSS_UNKNOWN_V02 = 2147483647, /**< SUPL unknown format */
QMILOCNISUPLFORMATENUMTYPE_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocNiSuplFormatEnumType_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocNiSuplFormatEnumType_v02 formatType;
/**< Format of the formatted string.
Valid values: \n
- eQMI_LOC_NI_SUPL_FORMAT_LOGICAL_NAME (0) -- SUPL logical name format
- eQMI_LOC_NI_SUPL_FORMAT_EMAIL_ADDRESS (1) -- SUPL email address format
- eQMI_LOC_NI_SUPL_FORMAT_MSISDN (2) -- SUPL MS-ISDN format
- eQMI_LOC_NI_SUPL_FORMAT_URL (3) -- SUPL URL format
- eQMI_LOC_NI_SUPL_FORMAT_SIP_URL (4) -- SUPL SIP URL format
- eQMI_LOC_NI_SUPL_FORMAT_MIN (5) -- SUPL MIN format
- eQMI_LOC_NI_SUPL_FORMAT_MDN (6) -- SUPL MDN format
- eQMI_LOC_NI_SUPL_FORMAT_IMSPUBLIC_IDENTITY (7) -- SUPL IMS public identity
- eQMI_LOC_NI_SUPL_FORMAT_OSS_UNKNOWN (2147483647) -- SUPL unknown format
*/
uint32_t formattedString_len; /**< Must be set to # of elements in formattedString */
uint8_t formattedString[QMI_LOC_NI_MAX_CLIENT_NAME_LENGTH_V02];
/**< Formatted string. \n
- Type: Byte array \n
- Maximum string length: 64
*/
}qmiLocNiSuplFormattedStringStructT_v02; /* Type */
/**
@}
*/
typedef uint8_t qmiLocSuplQopValidMaskT_v02;
#define QMI_LOC_NI_SUPL_MASK_QOP_HORZ_ACC_VALID_V02 ((qmiLocSuplQopValidMaskT_v02)0x01) /**< Horizontal accuracy is valid in the Quality of Position (QoP) */
#define QMI_LOC_NI_SUPL_MASK_QOP_VER_ACC_VALID_V02 ((qmiLocSuplQopValidMaskT_v02)0x02) /**< Vertical accuracy is valid in the QoP */
#define QMI_LOC_NI_SUPL_MASK_QOP_MAXAGE_VALID_V02 ((qmiLocSuplQopValidMaskT_v02)0x04) /**< Vertical accuracy is valid in the QoP */
#define QMI_LOC_NI_SUPL_MASK_QOP_DELAY_VALID_V02 ((qmiLocSuplQopValidMaskT_v02)0x08) /**< Vertical accuracy is valid in the QoP */
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocSuplQopValidMaskT_v02 validMask;
/**< Bit field indicating which fields are valid in this value.
Valid bitmasks: \n
- 0x01 -- QOP_HORZ_ACC_VALID \n
- 0x02 -- QOP_VER_ACC_VALID \n
- 0x04 -- QOP_MAXAGE_VALID \n
- 0x08 -- QOP_DELAY_VALID*/
uint8_t horizontalAccuracy;
/**< Horizontal accuracy. \n
- Units: Meters */
uint8_t verticalAccuracy;
/**< Vertical accuracy. \n
- Units: Meters */
uint16_t maxLocAge;
/**< Maximum age of the location if the engine sends a previously
computed position. \n
- Units: Seconds */
uint8_t delay;
/**< Delay the server is willing to tolerate for the fix. \n
- Units: Seconds */
}qmiLocNiSuplQopStructT_v02; /* Type */
/**
@}
*/
typedef uint8_t qmiLocServerAddrTypeMaskT_v02;
#define QMI_LOC_SERVER_ADDR_TYPE_IPV4_MASK_V02 ((qmiLocServerAddrTypeMaskT_v02)0x01) /**< IPv4 server address type */
#define QMI_LOC_SERVER_ADDR_TYPE_IPV6_MASK_V02 ((qmiLocServerAddrTypeMaskT_v02)0x02) /**< IPv6 server address type */
#define QMI_LOC_SERVER_ADDR_TYPE_URL_MASK_V02 ((qmiLocServerAddrTypeMaskT_v02)0x04) /**< URL server address type */
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint32_t addr;
/**< IPv4 address. */
uint16_t port;
/**< IPv4 port. */
}qmiLocIpV4AddrStructType_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint16_t addr[QMI_LOC_IPV6_ADDR_LENGTH_V02];
/**< IPv6 address. \n
- Type: Array of unsigned integers \n
- Maximum length of the array: 8 */
uint32_t port;
/**< IPv6 port. */
}qmiLocIpV6AddrStructType_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocServerAddrTypeMaskT_v02 suplServerAddrTypeMask;
/**< Mask specifying the valid fields in this value.
Valid bitmasks: \n
- 0x01 -- IPv4 \n
- 0x02 -- IPv6 \n
- 0x04 -- URL
*/
qmiLocIpV4AddrStructType_v02 ipv4Addr;
/**< IPv4 address and port. */
qmiLocIpV6AddrStructType_v02 ipv6Addr;
/**< IPv6 address and port. */
char urlAddr[QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 + 1];
/**< URL.
\begin{itemize1}
\item Type: NULL-terminated string
\item Maximum string length (including NULL terminator): 256
\vspace{-0.18in} \end{itemize1}
*/
}qmiLocNiSuplServerInfoStructT_v02; /* Type */
/**
@}
*/
typedef uint32_t qmiLocNiSuplNotifyVerifyValidMaskT_v02;
#define QMI_LOC_SUPL_SERVER_INFO_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000001) /**< Mask to denote that the server information
is present in an NI SUPL Notify/Verify request event. This mask is set in
the valid_flags field of a Notify/Verify structure. */
#define QMI_LOC_SUPL_SESSION_ID_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000002) /**< Mask to denote that the SUPL session ID
is present in an NI SUPL Notify/Verify request event.
This mask is set in the valid_flags field of a
Notify/Verify structure. */
#define QMI_LOC_SUPL_HASH_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000004) /**< Mask to denote that the SUPL hash is present
in an NI Notify/Verify request event.
This mask is set in the valid_flags field of a
Notify/Verify structure. */
#define QMI_LOC_SUPL_POS_METHOD_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000008) /**< Mask to denote that the position method is present
in an NI SUPL Notify/Verify request event.
This mask is set in the valid_flags field of a
Notify/Verify structure. */
#define QMI_LOC_SUPL_DATA_CODING_SCHEME_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000010) /**< Mask to denote that the data coding scheme
is present in an NI SUPL Notify/Verify request event.
This mask is set in the valid_flags field of a
Notify/Verify structure. */
#define QMI_LOC_SUPL_REQUESTOR_ID_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000020) /**< Mask to denote that the requestor ID
is present in an NI Notify/Verify request event.
This mask is set in the valid_flags field of a
Notify/Verify structure. */
#define QMI_LOC_SUPL_CLIENT_NAME_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000040) /**< Mask to denote that the requestor ID
is present in an NI Notify/Verify request event.
This mask is set in the valid_flags field of a
Notify/Verify structure. */
#define QMI_LOC_SUPL_QOP_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000080) /**< Mask to denote that the quality of position
is present in an NI Notify/Verify request event.
This mask is set in the valid_flags field of a
Notify/Verify structure. */
#define QMI_LOC_SUPL_USER_RESP_TIMER_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000100) /**< Mask to denote that the user response timer
is present in an NI Notify/Verify request event.
This mask is set in the valid_flags field of a
Notify/Verify structure. */
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocNiSuplNotifyVerifyValidMaskT_v02 valid_flags;
/**< Indicates which of the following fields are present in this value.
Valid bitmasks: \begin{itemize1}
\item 0x00000001 -- SUPL_SERVER_INFO
\item 0x00000002 -- SUPL_SESSION_ID
\item 0x00000004 -- SUPL_HASH
\item 0x00000008 -- SUPL_POS_METHOD
\item 0x00000010 -- SUPL_DATA_ CODING_SCHEME
\item 0x00000020 -- SUPL_REQUESTOR_ ID
\item 0x00000040 -- SUPL_CLIENT_ NAME
\item 0x00000080 -- SUPL_QOP
\item 0x00000100 -- SUPL_USER_RESP_ TIMER
\vspace{-0.18in} \end{itemize1}
*/
qmiLocNiSuplServerInfoStructT_v02 suplServerInfo;
/**< SUPL server information. */
uint8_t suplSessionId[QMI_LOC_NI_SUPL_SLP_SESSION_ID_BYTE_LENGTH_V02];
/**< SUPL session ID. \n
- Type: Array of unsigned integers \n
- Maximum length of the array: 4 */
uint8_t suplHash[QMI_LOC_NI_SUPL_HASH_LENGTH_V02];
/**< Hash for SUPL_INIT; used to validate that the message was not
corrupted. \n
- Type: Array of unsigned integers \n
- Length of the array: 8 */
qmiLocNiSuplPosMethodEnumT_v02 posMethod;
/**< GPS mode to be used for the fix.
Valid values:
- eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETASSISTED (1) -- Set assisted
- eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETBASED (2) -- Set based
- eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETASSISTED_PREF (3) -- Set assisted preferred
- eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETBASED_PREF (4) -- Set based preferred
- eQMI_LOC_NI_SUPL_POSMETHOD_AUTONOMOUS_GPS (5) -- Standalone GPS
- eQMI_LOC_NI_SUPL_POSMETHOD_AFLT (6) -- Advanced forward link trilateration
- eQMI_LOC_NI_SUPL_POSMETHOD_ECID (7) -- Exclusive chip ID
- eQMI_LOC_NI_SUPL_POSMETHOD_EOTD (8) -- Enhnaced observed time difference
- eQMI_LOC_NI_SUPL_POSMETHOD_OTDOA (9) -- Observed time delay of arrival
- eQMI_LOC_NI_SUPL_POSMETHOD_NO_POSITION (10) -- No position
*/
qmiLocNiDataCodingSchemeEnumT_v02 dataCodingScheme;
/**< Data coding scheme applies to both the requestor ID and the client
name.
Valid values: \n
- eQMI_LOC_NI_SS_GERMAN (12) -- Language is German
- eQMI_LOC_NI_SS_ENGLISH (13) -- Language is English
- eQMI_LOC_NI_SS_ITALIAN (14) -- Language is Italian
- eQMI_LOC_NI_SS_FRENCH (15) -- Language is French
- eQMI_LOC_NI_SS_SPANISH (16) -- Language is Spanish
- eQMI_LOC_NI_SS_DUTCH (17) -- Language is Dutch
- eQMI_LOC_NI_SS_SWEDISH (18) -- Language is Swedish
- eQMI_LOC_NI_SS_DANISH (19) -- Language is Danish
- eQMI_LOC_NI_SS_PORTUGUESE (20) -- Language is Portuguese
- eQMI_LOC_NI_SS_FINNISH (21) -- Language is Finnish
- eQMI_LOC_NI_SS_NORWEGIAN (22) -- Language is Norwegian
- eQMI_LOC_NI_SS_GREEK (23) -- Language is Greek
- eQMI_LOC_NI_SS_TURKISH (24) -- Language is Turkish
- eQMI_LOC_NI_SS_HUNGARIAN (25) -- Language is Hungarian
- eQMI_LOC_NI_SS_POLISH (26) -- Language is Polish
- eQMI_LOC_NI_SS_LANGUAGE_UNSPEC (27) -- Language is unspecified
- eQMI_LOC_NI_SUPL_UTF8 (28) -- Encoding is UTF 8
- eQMI_LOC_NI_SUPL_UCS2 (29) -- Encoding is UCS 2
- eQMI_LOC_NI_SUPL_GSM_DEFAULT (30) -- Encoding is GSM default
*/
qmiLocNiSuplFormattedStringStructT_v02 requestorId;
/**< Requestor ID. The encoding scheme for requestor_id is specified in
the dataCodingScheme field. */
qmiLocNiSuplFormattedStringStructT_v02 clientName;
/**< Client name. The encoding scheme for client_name is specified in
the dataCodingScheme field. */
qmiLocNiSuplQopStructT_v02 suplQop;
/**< SUPL QoP. */
uint16_t userResponseTimer;
/**< Time to wait for the user to respond. \n
- Units: Seconds*/
}qmiLocNiSuplNotifyVerifyStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCNILOCATIONTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_NI_LOCATIONTYPE_CURRENT_LOCATION_V02 = 1, /**< Current location */
eQMI_LOC_NI_LOCATIONTYPE_CURRENT_OR_LAST_KNOWN_LOCATION_V02 = 2, /**< Last known location; may be the current location */
eQMI_LOC_NI_LOCATIONTYPE_INITIAL_LOCATION_V02 = 3, /**< Initial location */
QMILOCNILOCATIONTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocNiLocationTypeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocNiDataCodingSchemeEnumT_v02 dataCodingScheme;
/**< Identifies the coding scheme of the coded string.
Valid values: \n
- eQMI_LOC_NI_SS_GERMAN (12) -- Language is German
- eQMI_LOC_NI_SS_ENGLISH (13) -- Language is English
- eQMI_LOC_NI_SS_ITALIAN (14) -- Language is Italian
- eQMI_LOC_NI_SS_FRENCH (15) -- Language is French
- eQMI_LOC_NI_SS_SPANISH (16) -- Language is Spanish
- eQMI_LOC_NI_SS_DUTCH (17) -- Language is Dutch
- eQMI_LOC_NI_SS_SWEDISH (18) -- Language is Swedish
- eQMI_LOC_NI_SS_DANISH (19) -- Language is Danish
- eQMI_LOC_NI_SS_PORTUGUESE (20) -- Language is Portuguese
- eQMI_LOC_NI_SS_FINNISH (21) -- Language is Finnish
- eQMI_LOC_NI_SS_NORWEGIAN (22) -- Language is Norwegian
- eQMI_LOC_NI_SS_GREEK (23) -- Language is Greek
- eQMI_LOC_NI_SS_TURKISH (24) -- Language is Turkish
- eQMI_LOC_NI_SS_HUNGARIAN (25) -- Language is Hungarian
- eQMI_LOC_NI_SS_POLISH (26) -- Language is Polish
- eQMI_LOC_NI_SS_LANGUAGE_UNSPEC (27) -- Language is unspecified
- eQMI_LOC_NI_SUPL_UTF8 (28) -- Encoding is UTF 8
- eQMI_LOC_NI_SUPL_UCS2 (29) -- Encoding is UCS 2
- eQMI_LOC_NI_SUPL_GSM_DEFAULT (30) -- Encoding is GSM default
*/
uint32_t codedString_len; /**< Must be set to # of elements in codedString */
uint8_t codedString[QMI_LOC_NI_CODEWORD_MAX_LENGTH_V02];
/**< Coded string. \n
- Type: Array of bytes \n
- Maximum string length: 20 */
}qmiLocNiUmtsCpCodedStringStructT_v02; /* Type */
/**
@}
*/
typedef uint16_t qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02;
#define QMI_LOC_UMTS_CP_INVOKE_ID_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0001) /**< Mask to denote that the invoke ID
is present in an NI Notify/Verify request event.
This mask is set in the valid flags field of a
Notify/Verify structure. */
#define QMI_LOC_UMTS_CP_DATA_CODING_SCHEME_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0002) /**< Mask to denote that the data coding scheme
is present in an NI Notify/Verify request event.
This mask is set in the valid flags field of a
Notify/Verify structure. */
#define QMI_LOC_UMTS_CP_NOTIFICATION_TEXT_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0004) /**< Mask to denote that the notification text
is present in an NI Notify/Verify request event.
This mask is set in the valid flags field of a
Notify/Verify structure. */
#define QMI_LOC_UMTS_CP_CLIENT_ADDRESS_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0008) /**< Mask to denote that the client address
is present in an NI Notify/Verify request event.
This mask is set in the valid flags field of a
Notify/Verify structure. */
#define QMI_LOC_UMTS_CP_LOCATION_TYPE_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0010) /**< Mask to denote that the location type
is present in an NI Notify/Verify request event.
This mask is set in the valid flags field of a
Notify/Verify structure. */
#define QMI_LOC_UMTS_CP_REQUESTOR_ID_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0020) /**< Mask to denote that the requestor ID
is present in an NI Notify/Verify request event.
This mask is set in the valid flags field of a
Notify/Verify structure. */
#define QMI_LOC_UMTS_CP_CODEWORD_STRING_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0040) /**< Mask to denote that the code word string
is present in an NI Notify/Verify request event.
This mask is set in the valid flags field of a
Notify/Verify structure. */
#define QMI_LOC_UMTS_CP_SERVICE_TYPE_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0080) /**< Mask to denote that the service type
is present in an NI Notify/Verify request event.
This mask is set in the valid flags field of a
Notify/Verify structure. */
#define QMI_LOC_UMTS_CP_USER_RESP_TIMER_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0100) /**< Mask to denote that the user response timer
is present in an NI Notify/Verify request event.
This mask is set in the valid flags field of a
Notify/Verify structure. */
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02 valid_flags;
/**< Fields that are valid in this value.
Valid bitmasks: \begin{itemize1}
\item 0x0001 -- INVOKE_ID_MASK
\item 0x0002 -- DATA_CODING_ SCHEME_MASK
\item 0x0004 -- NOTIFICATION_TEXT_ MASK
\item 0x0008 -- CLIENT_ADDRESS_ MASK
\item 0x0010 -- LOCATION_TYPE_ MASK
\item 0x0020 -- REQUESTOR_ID_MASK
\item 0x0040 -- CODEWORD_STRING_ MASK
\item 0x0080 -- SERVICE_TYPE_MASK
\item 0x0100 -- USER_RESP_TIMER_ MASK
\vspace{-0.18in} \end{itemize1}
*/
uint8_t invokeId;
/**< Supplementary Services invoke ID. */
qmiLocNiDataCodingSchemeEnumT_v02 dataCodingScheme;
/**< Type of data encoding scheme for the text.
Applies to both the notification text and the client address.
Valid values: \n
- eQMI_LOC_NI_SS_GERMAN (12) -- Language is German
- eQMI_LOC_NI_SS_ENGLISH (13) -- Language is English
- eQMI_LOC_NI_SS_ITALIAN (14) -- Language is Italian
- eQMI_LOC_NI_SS_FRENCH (15) -- Language is French
- eQMI_LOC_NI_SS_SPANISH (16) -- Language is Spanish
- eQMI_LOC_NI_SS_DUTCH (17) -- Language is Dutch
- eQMI_LOC_NI_SS_SWEDISH (18) -- Language is Swedish
- eQMI_LOC_NI_SS_DANISH (19) -- Language is Danish
- eQMI_LOC_NI_SS_PORTUGUESE (20) -- Language is Portuguese
- eQMI_LOC_NI_SS_FINNISH (21) -- Language is Finnish
- eQMI_LOC_NI_SS_NORWEGIAN (22) -- Language is Norwegian
- eQMI_LOC_NI_SS_GREEK (23) -- Language is Greek
- eQMI_LOC_NI_SS_TURKISH (24) -- Language is Turkish
- eQMI_LOC_NI_SS_HUNGARIAN (25) -- Language is Hungarian
- eQMI_LOC_NI_SS_POLISH (26) -- Language is Polish
- eQMI_LOC_NI_SS_LANGUAGE_UNSPEC (27) -- Language is unspecified
- eQMI_LOC_NI_SUPL_UTF8 (28) -- Encoding is UTF 8
- eQMI_LOC_NI_SUPL_UCS2 (29) -- Encoding is UCS 2
- eQMI_LOC_NI_SUPL_GSM_DEFAULT (30) -- Encoding is GSM default
*/
uint32_t notificationText_len; /**< Must be set to # of elements in notificationText */
uint8_t notificationText[QMI_LOC_NI_MAX_CLIENT_NAME_LENGTH_V02];
/**< Notification text; the encoding method is specified in
dataCodingScheme. \n
- Type: Array of bytes \n
- Maximum array length: 64 */
uint32_t clientAddress_len; /**< Must be set to # of elements in clientAddress */
uint8_t clientAddress[QMI_LOC_NI_MAX_EXT_CLIENT_ADDRESS_V02];
/**< Client address; the encoding method is specified in
dataCodingScheme. \n
- Maximum array length: 20 */
qmiLocNiLocationTypeEnumT_v02 locationType;
/**< Location type.
Valid values: \n
- eQMI_LOC_NI_LOCATIONTYPE_CURRENT_LOCATION (1) -- Current location
- eQMI_LOC_NI_LOCATIONTYPE_CURRENT_OR_LAST_KNOWN_LOCATION (2) -- Last known location; may be the current location
- eQMI_LOC_NI_LOCATIONTYPE_INITIAL_LOCATION (3) -- Initial location
*/
qmiLocNiUmtsCpCodedStringStructT_v02 requestorId;
/**< Requestor ID; the encoding method is specified in the
qmiLocNiUmtsCpCodedStringStructT.dataCodingScheme field. */
qmiLocNiUmtsCpCodedStringStructT_v02 codewordString;
/**< Codeword string; the encoding method is specified in the
qmiLocNiUmtsCpCodedStringStructT.dataCodingScheme field. */
uint8_t lcsServiceTypeId;
/**< Service type ID. */
uint16_t userResponseTimer;
/**< Time to wait for the user to respond. \n
- Units: Seconds */
}qmiLocNiUmtsCpNotifyVerifyStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCNISERVICEINTERACTIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_NI_SERVICE_INTERACTION_ONGOING_NI_INCOMING_MO_V02 = 1, /**< Service interaction between ongoing NI and incoming MO sessions. */
QMILOCNISERVICEINTERACTIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocNiServiceInteractionEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocNiVxNotifyVerifyStructT_v02 niVxReq;
/**< Ongoing NI session request; this information is currently not filled. */
qmiLocNiServiceInteractionEnumT_v02 serviceInteractionType;
/**< Service interaction type specified in qmiLocNiServiceInteractionEnumT.
Valid values: \n
- eQMI_LOC_NI_SERVICE_INTERACTION_ONGOING_NI_INCOMING_MO (1) -- Service interaction between ongoing NI and incoming MO sessions.
*/
}qmiLocNiVxServiceInteractionStructT_v02; /* Type */
/**
@}
*/
typedef uint16_t qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02;
#define QMI_LOC_SUPL_VER_2_EXT_MASK_SUPPORTED_NETWORK_WLAN_V02 ((qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02)0x0001) /**< Denotes that WLAN measurements are allowed as part of location ID
and multiple location IDs in the SUPL_POS_INIT message. */
#define QMI_LOC_SUPL_VER_2_EXT_MASK_SUPPORTED_NETWORK_GSM_V02 ((qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02)0x0002) /**< Denotes that GSM measurements are allowed as part of location ID
and multiple location ID in the SUPL_POS_INIT message. */
#define QMI_LOC_SUPL_VER_2_EXT_MASK_SUPPORTED_NETWORK_WCDMA_V02 ((qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02)0x0004) /**< Denotes that WCDMA measurements are allowed as part of location ID
and multiple location ID in the SUPL_POS_INIT message. */
#define QMI_LOC_SUPL_VER_2_EXT_MASK_SUPPORTED_NETWORK_CDMA_V02 ((qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02)0x0008) /**< Denotes that CDMA measurements are allowed as part of location ID
and multiple location ID in the SUPL_POS_INIT message. */
#define QMI_LOC_SUPL_VER_2_EXT_MASK_SUPPORTED_NETWORK_HRDP_V02 ((qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02)0x0010) /**< Denotes that HRDP measurements are allowed as part of location ID
and multiple location ID in the SUPL_POS_INIT message. */
#define QMI_LOC_SUPL_VER_2_EXT_MASK_SUPPORTED_NETWORK_UMB_V02 ((qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02)0x0020) /**< Denotes that UMB measurements are allowed as part of location ID
and multiple location ID in the SUPL_POS_INIT message. */
#define QMI_LOC_SUPL_VER_2_EXT_MASK_SUPPORTED_NETWORK_LTE_V02 ((qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02)0x0040) /**< Denotes that LTE measurements are allowed as part of location ID
and multiple location ID in the SUPL_POS_INIT message. */
#define QMI_LOC_SUPL_VER_2_EXT_MASK_SUPPORTED_NETWORK_WIMAX_V02 ((qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02)0x0080) /**< Denotes that WIMAX measurements are allowed as part of location ID
and multiple location ID in the SUPL_POS_INIT message. */
#define QMI_LOC_SUPL_VER_2_EXT_MASK_SUPPORTED_NETWORK_HISTORIC_V02 ((qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02)0x0100) /**< Denotes that historical information is allowed as part of
multiple location ID in the SUPL_POS_INIT message. */
#define QMI_LOC_SUPL_VER_2_EXT_MASK_SUPPORTED_NETWORK_NONSVRV_V02 ((qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02)0x0200) /**< Denotes that information about nonserving cells is allowed
as part of multiple location ID in the SUPL_POS_INIT message. */
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCNISUPLVER2EXTTRIGGERTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_SINGLE_SHOT_V02 = -1, /**< SUPL INIT message indicates a request for a single shot
triggered session */
eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_PERIODIC_V02 = 0, /**< SUPL INIT message indicates a request for a periodic
triggered session */
eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_AREA_EVENT_V02 = 1, /**< SUPL INIT message indicates a request for an area event
triggered session */
QMILOCNISUPLVER2EXTTRIGGERTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocNiSuplVer2ExtTriggerTypeEnumT_v02;
/**
@}
*/
typedef uint16_t qmiLocNiSuplVer2ExtGnssTypeMaskT_v02;
#define QMI_LOC_SUPL_VER_2_EXT_MASK_GNSS_GPS_V02 ((qmiLocNiSuplVer2ExtGnssTypeMaskT_v02)0x0001) /**< GPS is allowed to be used as the positioning technology */
#define QMI_LOC_SUPL_VER_2_EXT_MASK_GNSS_GLONASS_V02 ((qmiLocNiSuplVer2ExtGnssTypeMaskT_v02)0x0002) /**< GLONASS is allowed to be used as the positioning technology */
#define QMI_LOC_SUPL_VER_2_EXT_MASK_GNSS_GALILEO_V02 ((qmiLocNiSuplVer2ExtGnssTypeMaskT_v02)0x0004) /**< Galileo is allowed to be used as the positioning technology */
#define QMI_LOC_SUPL_VER_2_EXT_MASK_GNSS_SBAS_V02 ((qmiLocNiSuplVer2ExtGnssTypeMaskT_v02)0x0008) /**< SBAS is allowed to be used as the positioning technology */
#define QMI_LOC_SUPL_VER_2_EXT_MASK_GNSS_QZSS_V02 ((qmiLocNiSuplVer2ExtGnssTypeMaskT_v02)0x0010) /**< QZSS is allowed to be used as the positioning technology */
#define QMI_LOC_SUPL_VER_2_EXT_MASK_GNSS_MODERN_GPS_V02 ((qmiLocNiSuplVer2ExtGnssTypeMaskT_v02)0x0020) /**< Modern GPS is allowed to be used as the positioning technology */
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02 supportedNetworksMask;
/**< Specifies which type of network measurements are allowed to be sent as
part of the Location ID or Multiple Location IDs parameter in the
SUPL_POS_INIT message (refer to 3GPP \hyperref[TS 03.32]{TS 03.32}).
Valid bitmasks: \begin{itemize1}
\item 0x0001 -- SUPPORTED_NETWORK_ WLAN
\item 0x0002 -- SUPPORTED_NETWORK_ GSM
\item 0x0004 -- SUPPORTED_NETWORK_ WCDMA
\item 0x0008 -- SUPPORTED_NETWORK_ CDMA
\item 0x0010 -- SUPPORTED_NETWORK_ HRDP
\item 0x0020 -- SUPPORTED_NETWORK_ UMB
\item 0x0040 -- SUPPORTED_NETWORK_ LTE
\item 0x0080 -- SUPPORTED_NETWORK_ WIMAX
\item 0x0100 -- SUPPORTED_NETWORK_ HISTORIC
\item 0x0200 -- SUPPORTED_NETWORK_ NONSVRV
\vspace{-0.18in} \end{itemize1}
*/
qmiLocNiSuplVer2ExtTriggerTypeEnumT_v02 triggerType;
/**< Specifies the type of session trigger requested in the
SUPL_POS_INIT message (refer to 3GPP \hyperref[TS 03.32]{TS 03.32}).
Valid values: \n
- eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_SINGLE_SHOT (-1) -- SUPL INIT message indicates a request for a single shot
triggered session
- eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_PERIODIC (0) -- SUPL INIT message indicates a request for a periodic
triggered session
- eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_AREA_EVENT (1) -- SUPL INIT message indicates a request for an area event
triggered session
*/
qmiLocNiSuplVer2ExtGnssTypeMaskT_v02 gnssType;
/**< Specifies which GNSS technologies are allowed as positioning
technologies.
Valid bitmasks: \n
- 0x0001 -- GNSS_GPS \n
- 0x0002 -- GNSS_GLONASS \n
- 0x0004 -- GNSS_GALILEO \n
- 0x0008 -- GNSS_SBAS \n
- 0x0010 -- GNSS_QZSS \n
- 0x0020 -- GNSS_MODERN_GPS
*/
}qmiLocNiSuplVer2ExtStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
char eslpUrl[QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 + 1];
/**< ESLP URL. \n
Maximum length: 255 bytes */
}qmiLocEmergencyNotificationStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Indicates an NI Notify/Verify request to the control point. */
typedef struct {
/* Mandatory */
/* Notification Type */
qmiLocNiNotifyVerifyEnumT_v02 notificationType;
/**< Type of notification/verification performed.
Valid values: \n
- eQMI_LOC_NI_USER_NO_NOTIFY_NO_VERIFY (1) -- No notification and no verification required
- eQMI_LOC_NI_USER_NOTIFY_ONLY (2) -- Notify only; no verification required
- eQMI_LOC_NI_USER_NOTIFY_VERIFY_ALLOW_NO_RESP (3) -- Notify and verify, but no response required.
- eQMI_LOC_NI_USER_NOTIFY_VERIFY_NOT_ALLOW_NO_RESP (4) -- Notify and verify, and require a response
- eQMI_LOC_NI_USER_NOTIFY_VERIFY_PRIVACY_OVERRIDE (5) -- Notify and verify; privacy override
*/
/* Optional */
/* Network Initiated Vx Request */
uint8_t NiVxInd_valid; /**< Must be set to true if NiVxInd is being passed */
qmiLocNiVxNotifyVerifyStructT_v02 NiVxInd;
/**< \vspace{0.06in} \n Optional NI Vx request payload. */
/* Optional */
/* Network Initiated SUPL Request */
uint8_t NiSuplInd_valid; /**< Must be set to true if NiSuplInd is being passed */
qmiLocNiSuplNotifyVerifyStructT_v02 NiSuplInd;
/**< \vspace{0.06in} \n Optional NI SUPL request payload. */
/* Optional */
/* Network Initiated UMTS Control Plane Request */
uint8_t NiUmtsCpInd_valid; /**< Must be set to true if NiUmtsCpInd is being passed */
qmiLocNiUmtsCpNotifyVerifyStructT_v02 NiUmtsCpInd;
/**< \vspace{0.06in} \n Optional NI UMTS-CP request payload. */
/* Optional */
/* Network Initiated Service Interaction Request */
uint8_t NiVxServiceInteractionInd_valid; /**< Must be set to true if NiVxServiceInteractionInd is being passed */
qmiLocNiVxServiceInteractionStructT_v02 NiVxServiceInteractionInd;
/**< \vspace{0.06in} \n Optional NI service interaction payload. */
/* Optional */
/* Network Initiated SUPL Version 2 Extension */
uint8_t NiSuplVer2ExtInd_valid; /**< Must be set to true if NiSuplVer2ExtInd is being passed */
qmiLocNiSuplVer2ExtStructT_v02 NiSuplVer2ExtInd;
/**< \vspace{0.06in} \n Optional NI SUPL Version 2 Extension payload. When present,
this payload is to be used in conjunction with the SUPL
indication payload. */
/* Optional */
/* SUPL Emergency Notification */
uint8_t suplEmergencyNotification_valid; /**< Must be set to true if suplEmergencyNotification is being passed */
qmiLocEmergencyNotificationStructT_v02 suplEmergencyNotification;
/**< \vspace{0.06in} \n This specifies that the corresponding NI notification is an
emergency notification. Emergency notification
can be given even without an Emergency SUPL Location Platform (ESLP)
address. */
}qmiLocEventNiNotifyVerifyReqIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
char serverUrl[QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 + 1];
/**< Assistance server URL.
\begin{itemize1}
\item Type: NULL-terminated string
\item Maximum string length (including NULL terminator): 256
\vspace{-0.18in} \end{itemize1} */
}qmiLocAssistanceServerUrlStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint32_t delayThreshold;
/**< The time server is to be skipped if a one-way delay to the server
exceeds this threshold. \n
- Units: Milliseconds */
uint32_t timeServerList_len; /**< Must be set to # of elements in timeServerList */
qmiLocAssistanceServerUrlStructT_v02 timeServerList[QMI_LOC_MAX_NTP_SERVERS_V02];
/**< List of Time Server URL's that are recommended by the service for time
information, the list is ordered, the client is to use the first
server specified in the list as the primary URL to fetch NTP time,
the second one as secondary, and so on. \n
- Maximum server list items: 3 */
}qmiLocTimeServerListStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Requests the control point to inject time information. */
typedef struct {
/* Optional */
/* Time Server Info */
uint8_t timeServerInfo_valid; /**< Must be set to true if timeServerInfo is being passed */
qmiLocTimeServerListStructT_v02 timeServerInfo;
/**< \vspace{0.06in} \n Contains information about the time servers recommended by the
location service for NTP time. */
}qmiLocEventInjectTimeReqIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint32_t maxFileSizeInBytes;
/**< Maximum allowable predicted orbits file size (in bytes). */
uint32_t maxPartSize;
/**< Maximum allowable predicted orbits file chunk size (in bytes). */
}qmiLocPredictedOrbitsAllowedSizesStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint32_t serverList_len; /**< Must be set to # of elements in serverList */
qmiLocAssistanceServerUrlStructT_v02 serverList[QMI_LOC_MAX_PREDICTED_ORBITS_SERVERS_V02];
/**< List of predicted orbits URLs. The list is ordered, so the client
must use the first server specified in the list as the primary URL
from which to download predicted orbits data, the second one as
secondary, and so on. \n
- Maximum number of servers that can be specified: 3 */
}qmiLocPredictedOrbitsServerListStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Requests the control point to inject predicted orbits data. */
typedef struct {
/* Mandatory */
/* Allowed Sizes */
qmiLocPredictedOrbitsAllowedSizesStructT_v02 allowedSizes;
/**< \vspace{0.06in} \n Maximum part and file size allowed to be injected in the engine. */
/* Optional */
/* Server List */
uint8_t serverList_valid; /**< Must be set to true if serverList is being passed */
qmiLocPredictedOrbitsServerListStructT_v02 serverList;
/**< \vspace{0.06in} \n List of servers that can be used by the client to download
predicted orbits data. */
}qmiLocEventInjectPredictedOrbitsReqIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Requests the control point to inject a position. */
typedef struct {
/* Mandatory */
/* Latitude */
double latitude;
/**< Latitude (specified in WGS84 datum).
\begin{itemize1}
\item Type: Floating point
\item Units: Degrees
\item Range: -90.0 to 90.0 \begin{itemize1}
\item Positive values indicate northern latitude
\item Negative values indicate southern latitude
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
/* Mandatory */
/* Longitude */
double longitude;
/**< Longitude (specified in WGS84 datum).
\begin{itemize1}
\item Type: Floating point
\item Units: Degrees
\item Range: -180.0 to 180.0 \begin{itemize1}
\item Positive values indicate eastern longitude
\item Negative values indicate western longitude
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
/* Mandatory */
/* Circular Horizontal Uncertainty */
float horUncCircular;
/**< Horizontal position uncertainty (circular).\n
- Units: Meters */
/* Mandatory */
/* UTC Timestamp */
uint64_t timestampUtc;
/**< UTC timestamp.
\begin{itemize1}
\item Units: Milliseconds since Jan. 1, 1970
\vspace{-0.18in} \end{itemize1} */
}qmiLocEventInjectPositionReqIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCENGINESTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_ENGINE_STATE_ON_V02 = 1, /**< Location engine is on */
eQMI_LOC_ENGINE_STATE_OFF_V02 = 2, /**< Location engine is off */
QMILOCENGINESTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocEngineStateEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sends the engine state to the control point. */
typedef struct {
/* Mandatory */
/* Engine State */
qmiLocEngineStateEnumT_v02 engineState;
/**< Location engine state.
Valid values: \n
- eQMI_LOC_ENGINE_STATE_ON (1) -- Location engine is on
- eQMI_LOC_ENGINE_STATE_OFF (2) -- Location engine is off
*/
}qmiLocEventEngineStateIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCFIXSESSIONSTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_FIX_SESSION_STARTED_V02 = 1, /**< Location fix session has started */
eQMI_LOC_FIX_SESSION_FINISHED_V02 = 2, /**< Location fix session has ended */
QMILOCFIXSESSIONSTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocFixSessionStateEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sends the fix session state to the control point. */
typedef struct {
/* Mandatory */
/* Session State */
qmiLocFixSessionStateEnumT_v02 sessionState;
/**< LOC fix session state.
Valid values: \n
- eQMI_LOC_FIX_SESSION_STARTED (1) -- Location fix session has started
- eQMI_LOC_FIX_SESSION_FINISHED (2) -- Location fix session has ended
*/
/* Optional */
/* Session ID */
uint8_t sessionId_valid; /**< Must be set to true if sessionId is being passed */
uint8_t sessionId;
/**< ID of the session that was specified in the Start request.
This may not be specified for a fix session corresponding to
a network-initiated request. \n
- Range: 0 to 255 */
}qmiLocEventFixSessionStateIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCWIFIREQUESTENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_WIFI_START_PERIODIC_HI_FREQ_FIXES_V02 = 0, /**< Start periodic fixes with high frequency */
eQMI_LOC_WIFI_START_PERIODIC_KEEP_WARM_V02 = 1, /**< Keep warm for low frequency fixes without data downloads */
eQMI_LOC_WIFI_STOP_PERIODIC_FIXES_V02 = 2, /**< Stop periodic fixes request */
QMILOCWIFIREQUESTENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocWifiRequestEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sends a Wi-Fi request to the control point. */
typedef struct {
/* Mandatory */
/* Request Type */
qmiLocWifiRequestEnumT_v02 requestType;
/**< Request type.
Valid values: \n
- eQMI_LOC_WIFI_START_PERIODIC_HI_FREQ_FIXES (0) -- Start periodic fixes with high frequency
- eQMI_LOC_WIFI_START_PERIODIC_KEEP_WARM (1) -- Keep warm for low frequency fixes without data downloads
- eQMI_LOC_WIFI_STOP_PERIODIC_FIXES (2) -- Stop periodic fixes request
*/
/* Optional */
/* Time Between Fixes */
uint8_t tbfInMs_valid; /**< Must be set to true if tbfInMs is being passed */
uint16_t tbfInMs;
/**< Time between fixes for a periodic request.\n
- Units: Milliseconds */
}qmiLocEventWifiReqIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint16_t samplesPerBatch;
/**< Specifies the number of samples per batch the GNSS location engine is to
receive. The sensor sampling frequency can be computed as follows: \vspace{-0.06in} \n
samplingFrequency = samplesPerBatch * batchesPerSecond \vspace{-0.06in} \n
samplesPerBatch must be a nonzero positive value.
*/
uint16_t batchesPerSecond;
/**< Number of sensor-data batches the GNSS location engine is to receive
per second. The rate is specified in an integral number of batches per
second (Hz). \vspace{-0.06in} \n
batchesPerSecond must be a nonzero positive value.
*/
}qmiLocSensorControlConfigSamplingSpecStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint8_t injectEnable;
/**< Indicates whether the GNSS location engine is ready to accept data from this
sensor.
Valid values: \begin{itemize1}
\item 0x01 (TRUE) -- GNSS location engine is ready to accept sensor
data
\item 0x00 (FALSE) -- GNSS location engine is not ready to accept
sensor data
\vspace{-0.18in} \end{itemize1}
*/
qmiLocSensorControlConfigSamplingSpecStructT_v02 dataFrequency;
/**< Rate at which the GNSS engine would like the sensor to be sampled. \n
The rate is specified in integral number of samples per second (Hz)\n
and batches per second.
*/
}qmiLocSensorReadyStatusStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Notifies the control point if the GNSS location engine is
ready to accept sensor data. */
typedef struct {
/* Optional */
/* Accelerometer Accept Ready */
uint8_t accelReady_valid; /**< Must be set to true if accelReady is being passed */
qmiLocSensorReadyStatusStructT_v02 accelReady;
/**< \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
to accept accelerometer sensor data.
*/
/* Optional */
/* Gyroscope Accept Ready */
uint8_t gyroReady_valid; /**< Must be set to true if gyroReady is being passed */
qmiLocSensorReadyStatusStructT_v02 gyroReady;
/**< \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
to accept gyroscope sensor data.
*/
/* Optional */
/* Accelerometer Temperature Accept Ready */
uint8_t accelTemperatureReady_valid; /**< Must be set to true if accelTemperatureReady is being passed */
qmiLocSensorReadyStatusStructT_v02 accelTemperatureReady;
/**< \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
to accept accelerometer temperature data.
*/
/* Optional */
/* Gyroscope Temperature Accept Ready */
uint8_t gyroTemperatureReady_valid; /**< Must be set to true if gyroTemperatureReady is being passed */
qmiLocSensorReadyStatusStructT_v02 gyroTemperatureReady;
/**< \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
to accept gyroscope temperature data.
*/
/* Optional */
/* Calibrated Magnetometer Accept Ready */
uint8_t calibratedMagReady_valid; /**< Must be set to true if calibratedMagReady is being passed */
qmiLocSensorReadyStatusStructT_v02 calibratedMagReady;
/**< \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
to accept calibrated magnetometer data.
*/
/* Optional */
/* Uncalibrated Magnetometer Accept Ready */
uint8_t uncalibratedMagReady_valid; /**< Must be set to true if uncalibratedMagReady is being passed */
qmiLocSensorReadyStatusStructT_v02 uncalibratedMagReady;
/**< \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
to accept uncalibrated magnetometer data.
*/
}qmiLocEventSensorStreamingReadyStatusIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Notifies the control point to inject time synchronization
data. */
typedef struct {
/* Mandatory */
/* Opaque Time Sync Reference Counter */
uint32_t refCounter;
/**< This TLV is sent to registered control points. It is sent by
the location engine when it needs to synchronize location engine and
control point (sensor processor) times.
This TLV must be echoed back in the Time Sync Inject request. */
}qmiLocEventTimeSyncReqIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Requests the control point to enable Stationary Position
Indicator (SPI) streaming reports. */
typedef struct {
/* Mandatory */
/* Enable/Disable SPI Requests */
uint8_t enable;
/**< Indicates whether the client is to start or stop sending an SPI status stream.
\begin{itemize1}
\item 0x01 (TRUE) -- Client is to start sending an SPI status stream
\item 0x00 (FALSE) -- Client is to stop sending an SPI status stream
\vspace{-0.18in} \end{itemize1}*/
}qmiLocEventSetSpiStreamingReportIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCWWANTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_WWAN_TYPE_INTERNET_V02 = 0, /**< Bring up the WWAN type used for an Internet connection */
eQMI_LOC_WWAN_TYPE_AGNSS_V02 = 1, /**< Bring up the WWAN type used for AGNSS connections */
eQMI_LOC_WWAN_TYPE_AGNSS_EMERGENCY_V02 = 2, /**< Bring up the WWAN type used for AGNSS Emergency connections */
QMILOCWWANTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocWWANTypeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSERVERREQUESTENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SERVER_REQUEST_OPEN_V02 = 1, /**< Open a connection to the location server */
eQMI_LOC_SERVER_REQUEST_CLOSE_V02 = 2, /**< Close a connection to the location server */
QMILOCSERVERREQUESTENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocServerRequestEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Requests the client to open or close a connection
to the assisted GPS location server. */
typedef struct {
/* Mandatory */
/* Connection Handle */
uint32_t connHandle;
/**< Identifies a connection across Open and Close request events. */
/* Mandatory */
/* Request Type */
qmiLocServerRequestEnumT_v02 requestType;
/**< Open or close a connection to the location server.
Valid values: \n
- eQMI_LOC_SERVER_REQUEST_OPEN (1) -- Open a connection to the location server
- eQMI_LOC_SERVER_REQUEST_CLOSE (2) -- Close a connection to the location server
*/
/* Mandatory */
/* WWAN Type */
qmiLocWWANTypeEnumT_v02 wwanType;
/**< Identifies the WWAN type for this request.
Valid values: \n
- eQMI_LOC_WWAN_TYPE_INTERNET (0) -- Bring up the WWAN type used for an Internet connection
- eQMI_LOC_WWAN_TYPE_AGNSS (1) -- Bring up the WWAN type used for AGNSS connections
- eQMI_LOC_WWAN_TYPE_AGNSS_EMERGENCY (2) -- Bring up the WWAN type used for AGNSS Emergency connections
*/
}qmiLocEventLocationServerConnectionReqIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCNIGEOFENCEOPERATIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_NI_GEOFENCE_ADDED_V02 = 1, /**< An NI Geofence was added */
eQMI_LOC_NI_GEOFENCE_DELETED_V02 = 2, /**< An NI Geofence was deleted */
eQMI_LOC_NI_GEOFENCE_EDITED_V02 = 3, /**< An NI Geofence was edited; the control point can query the
Geofence to find the its current state */
QMILOCNIGEOFENCEOPERATIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocNiGeofenceOperationEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Informs the control point about
network-initiated Geofences. */
typedef struct {
/* Mandatory */
/* Geofence ID */
uint32_t geofenceId;
/**< ID of the Geofence for which this
notification was generated. */
/* Mandatory */
/* Operation Type */
qmiLocNiGeofenceOperationEnumT_v02 operationType;
/**< Operation for which this notification was generated.
Valid values: \n
- eQMI_LOC_NI_GEOFENCE_ADDED (1) -- An NI Geofence was added
- eQMI_LOC_NI_GEOFENCE_DELETED (2) -- An NI Geofence was deleted
- eQMI_LOC_NI_GEOFENCE_EDITED (3) -- An NI Geofence was edited; the control point can query the
Geofence to find the its current state
*/
}qmiLocEventNiGeofenceNotificationIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGEOFENCEGENALERTENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GEOFENCE_GEN_ALERT_GNSS_UNAVAILABLE_V02 = 1, /**< GNSS is unavailable and GNSS position fixes
cannot be used to monitor Geofences */
eQMI_LOC_GEOFENCE_GEN_ALERT_GNSS_AVAILABLE_V02 = 2, /**< GNSS is now available and GNSS postion fixes can
be used to monitor Geofences */
eQMI_LOC_GEOFENCE_GEN_ALERT_OOS_V02 = 3, /**< The engine is out of service and no cell ID coverage
information is available */
eQMI_LOC_GEOFENCE_GEN_ALERT_TIME_INVALID_V02 = 4, /**< The engine has an invalid time */
QMILOCGEOFENCEGENALERTENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGeofenceGenAlertEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Notifies the control point of the
Geofence status. */
typedef struct {
/* Mandatory */
/* Geofence General Alert */
qmiLocGeofenceGenAlertEnumT_v02 geofenceAlert;
/**< Specifies the Geofence general alert type.
Valid values: \n
- eQMI_LOC_GEOFENCE_GEN_ALERT_GNSS_UNAVAILABLE (1) -- GNSS is unavailable and GNSS position fixes
cannot be used to monitor Geofences
- eQMI_LOC_GEOFENCE_GEN_ALERT_GNSS_AVAILABLE (2) -- GNSS is now available and GNSS postion fixes can
be used to monitor Geofences
- eQMI_LOC_GEOFENCE_GEN_ALERT_OOS (3) -- The engine is out of service and no cell ID coverage
information is available
- eQMI_LOC_GEOFENCE_GEN_ALERT_TIME_INVALID (4) -- The engine has an invalid time
*/
}qmiLocEventGeofenceGenAlertIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGEOFENCEBREACHTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GEOFENCE_BREACH_TYPE_ENTERING_V02 = 1, /**< Denotes that a client entered the Geofence */
eQMI_LOC_GEOFENCE_BREACH_TYPE_LEAVING_V02 = 2, /**< Denotes that a client left the Geofence */
QMILOCGEOFENCEBREACHTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGeofenceBreachTypeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
/* UTC Timestamp */
uint64_t timestampUtc;
/**< UTC timestamp.
\begin{itemize1}
\item Units: Milliseconds since Jan. 1, 1970
\vspace{-0.18in} \end{itemize1} */
/* Latitude */
double latitude;
/**< Latitude (specified in WGS84 datum).
\begin{itemize1}
\item Type: Floating point
\item Units: Degrees
\item Range: -90.0 to 90.0 \begin{itemize1}
\item Positive values indicate northern latitude
\item Negative values indicate southern latitude
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
/* Longitude */
double longitude;
/**< Longitude (specified in WGS84 datum).
\begin{itemize1}
\item Type: Floating point
\item Units: Degrees
\item Range: -180.0 to 180.0 \begin{itemize1}
\item Positive values indicate eastern longitude
\item Negative values indicate western longitude
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
/* Horizontal Elliptical Uncertainty (Semi-Minor Axis) */
float horUncEllipseSemiMinor;
/**< Semi-minor axis of horizontal elliptical uncertainty.\n
- Units: Meters */
/* Horizontal Elliptical Uncertainty (Semi-Major Axis) */
float horUncEllipseSemiMajor;
/**< Semi-major axis of horizontal elliptical uncertainty.\n
- Units: Meters */
/* Elliptical Horizontal Uncertainty Azimuth */
float horUncEllipseOrientAzimuth;
/**< Elliptical horizontal uncertainty azimuth of orientation.\n
- Units: Decimal degrees \n
- Range: 0 to 180 */
/* Horizontal Speed validity bit */
uint8_t speedHorizontal_valid;
/**< Indicates whether the Horizontal speed field contains valid
information.
\begin{itemize1}
\item 0x01 (TRUE) -- Horizontal speed is valid
\item 0x00 (FALSE) -- Horizontal speed is invalid
and is to be ignored
\vspace{-0.18in} \end{itemize1} */
/* Horizontal Speed */
float speedHorizontal;
/**< Horizontal speed.\n
- Units: Meters/second */
/* Altitude validity bit */
uint8_t altitudeWrtEllipsoid_valid;
/**< Indicates whether the altitude field contains valid
information.
\begin{itemize1}
\item 0x01 (TRUE) -- Altitude field is valid
\item 0x00 (FALSE) -- Altitude field is invalid
and is to be ignored
\vspace{-0.18in} \end{itemize1}
*/
/* Altitude With Respect to Ellipsoid */
float altitudeWrtEllipsoid;
/**< Altitude with respect to the WGS84 ellipsoid.\n
- Units: Meters \n
- Range: -500 to 15883 */
/* Vertical Uncertainty validity bit */
uint8_t vertUnc_valid;
/**< Indicates whether the Vertical Uncertainty field contains valid
information.
\begin{itemize1}
\item 0x01 (TRUE) -- Vertical Uncertainty field is valid
\item 0x00 (FALSE) -- Vertical Uncertainty field is invalid
and is to be ignored
\vspace{-0.18in} \end{itemize1} */
/* Vertical Uncertainty */
float vertUnc;
/**< Vertical uncertainty.\n
- Units: Meters */
/* Vertical Speed validity bit */
uint8_t speedVertical_valid;
/**< Indicates whether the Vertical Speed field contains valid
information.
\begin{itemize1}
\item 0x01 (TRUE) -- Vertical Speed field is valid
\item 0x00 (FALSE) -- Vertical Speed field is invalid
and is to be ignored
\vspace{-0.18in} \end{itemize1} */
/* Vertical Speed */
float speedVertical;
/**< Vertical speed.\n
- Units: Meters/second */
/* heading validity bit */
uint8_t heading_valid;
/**< Indicates whether the Heading field contains valid
information.
\begin{itemize1}
\item 0x01 (TRUE) -- Heading field is valid
\item 0x00 (FALSE) -- Heading field is invalid
and is to be ignored
\vspace{-0.18in} \end{itemize1} */
/* Heading */
float heading;
/**< Heading.\n
- Units: Degrees \n
- Range: 0 to 359.999 */
}qmiLocGeofencePositionStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGEOFENCECONFIDENCEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GEOFENCE_CONFIDENCE_LOW_V02 = 0x01, /**< Geofence engine indicates a breach with
low confidence; this setting results in lower
power usage, and it can impact the yield because
incorrect breach events may be sent */
eQMI_LOC_GEOFENCE_CONFIDENCE_MED_V02 = 0x02, /**< (Default) Geofence engine indicates a breach with
medium confidence */
eQMI_LOC_GEOFENCE_CONFIDENCE_HIGH_V02 = 0x03, /**< Geofence engine indicates a breach with
high confidence; this setting results in higher
power usage */
QMILOCGEOFENCECONFIDENCEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGeofenceConfidenceEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Notifies the control point of
a Geofence breach event. */
typedef struct {
/* Mandatory */
/* Geofence ID */
uint32_t geofenceId;
/**< ID of the Geofence for which this
notification was generated. */
/* Mandatory */
/* Geofence Breach Type */
qmiLocGeofenceBreachTypeEnumT_v02 breachType;
/**< The type of breach that generated this event.
Valid values: \n
- eQMI_LOC_GEOFENCE_BREACH_TYPE_ENTERING (1) -- Denotes that a client entered the Geofence
- eQMI_LOC_GEOFENCE_BREACH_TYPE_LEAVING (2) -- Denotes that a client left the Geofence
*/
/* Optional */
/* Geofence Position */
uint8_t geofencePosition_valid; /**< Must be set to true if geofencePosition is being passed */
qmiLocGeofencePositionStructT_v02 geofencePosition;
/**< \vspace{0.06in} \n Position of the client when it breached the Geofence.
This TLV is included if the client configures the
Geofence to report position. The position is reported
at the same confidence level that was specified in the
Add Circular Geofence request. */
/* Optional */
/* Geofence Breach Confidence */
uint8_t breachConfidence_valid; /**< Must be set to true if breachConfidence is being passed */
qmiLocGeofenceConfidenceEnumT_v02 breachConfidence;
/**< \vspace{0.06in} \n
Given a breach event, the confidence determines the probability
that the breach happened at the Geofence boundary.
Valid values: \n
- eQMI_LOC_GEOFENCE_CONFIDENCE_LOW (0x01) -- Geofence engine indicates a breach with
low confidence; this setting results in lower
power usage, and it can impact the yield because
incorrect breach events may be sent
- eQMI_LOC_GEOFENCE_CONFIDENCE_MED (0x02) -- (Default) Geofence engine indicates a breach with
medium confidence
- eQMI_LOC_GEOFENCE_CONFIDENCE_HIGH (0x03) -- Geofence engine indicates a breach with
high confidence; this setting results in higher
power usage
*/
}qmiLocEventGeofenceBreachIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Recommends how pedometer reports are to be
sent to the location engine. */
typedef struct {
/* Mandatory */
/* Request Pedometer Data */
uint8_t requestPedometerData;
/**< Indicates whether the GNSS location engine is requesting the client to
send pedometer data.
\begin{itemize1}
\item 0x01 (TRUE) -- GNSS location engine is requesting
pedometer data
\item 0x00 (FALSE) -- GNSS location engine is not requesting
pedometer data
\vspace{-0.18in} \end{itemize1}
*/
/* Optional */
/* Reset Step Count */
uint8_t resetStepCount_valid; /**< Must be set to true if resetStepCount is being passed */
uint8_t resetStepCount;
/**< Indicates whether the location engine is to reset the step count.
\begin{itemize1}
\item 0x01 (TRUE) -- Pedometer step count is to be reset
\item 0x00 (FALSE) -- Pedometer step count is not to be reset
\vspace{-0.18in} \end{itemize1} */
/* Optional */
/* Step Count Threshold */
uint8_t stepCountThreshold_valid; /**< Must be set to true if stepCountThreshold is being passed */
uint32_t stepCountThreshold;
/**< Specifies the number of steps to be sampled in a pedometer report,
as recommended by the the location engine. If the threshold is set to 0,
the location engine wants a pedometer report at every step event.
*/
}qmiLocEventPedometerControlIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Recommends how motion data reports are to be
sent to the location engine. */
typedef struct {
/* Mandatory */
/* Request Motion Data */
uint8_t requestMotionData;
/**< Indicates whether the GNSS location engine is requesting
the client to send motion data.
\begin{itemize1}
\item 0x01 (TRUE) -- GNSS location engine is requesting
motion data
\item 0x00 (FALSE) -- GNSS location engine is not requesting
motion data
\vspace{-0.18in} \end{itemize1}
*/
}qmiLocEventMotionDataControlIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
/* Low Geofence ID */
uint32_t idLow;
/**< Contains the starting ID of the Geofence in the range of the continuous
range of Geofences that were breached at the same position. */
/* High Geofence ID */
uint32_t idHigh;
/**< Contains the ending ID of the Geofence in the range of the continuous
range of Geofences that were breached at the same position. */
}qmiLocGeofenceIdContinuousStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Notifies the control point of a Geofence breach event by
batching all the Geofences that were breached. */
typedef struct {
/* Mandatory */
/* Geofence Breach Type */
qmiLocGeofenceBreachTypeEnumT_v02 breachType;
/**< Type of breach that generated this event.
Valid values: \n
- eQMI_LOC_GEOFENCE_BREACH_TYPE_ENTERING (1) -- Denotes that a client entered the Geofence
- eQMI_LOC_GEOFENCE_BREACH_TYPE_LEAVING (2) -- Denotes that a client left the Geofence
*/
/* Optional */
/* Geofence ID Continuous */
uint8_t geofenceIdContinuousList_valid; /**< Must be set to true if geofenceIdContinuousList is being passed */
uint32_t geofenceIdContinuousList_len; /**< Must be set to # of elements in geofenceIdContinuousList */
qmiLocGeofenceIdContinuousStructT_v02 geofenceIdContinuousList[QMI_LOC_MAX_GEOFENCE_ID_CONTINUOUS_LIST_LENGTH_V02];
/**< \vspace{0.06in} \n Each entry in the list contains the continuous range of Geofence IDs that were breached
at the same position. This list does not overlap with the discrete Geofence ID list. */
/* Optional */
/* Geofence ID Discrete */
uint8_t geofenceIdDiscreteList_valid; /**< Must be set to true if geofenceIdDiscreteList is being passed */
uint32_t geofenceIdDiscreteList_len; /**< Must be set to # of elements in geofenceIdDiscreteList */
uint32_t geofenceIdDiscreteList[QMI_LOC_MAX_GEOFENCE_ID_DISCRETE_LIST_LENGTH_V02];
/**< This list contains the Geofence IDs that were breached at the same position.
This list does not overlap with the continuous Geofence ID list. */
/* Optional */
/* Geofence Position */
uint8_t geofencePosition_valid; /**< Must be set to true if geofencePosition is being passed */
qmiLocGeofencePositionStructT_v02 geofencePosition;
/**< \vspace{0.06in} \n Position of the client when it breached the Geofence.
This TLV is included if the client configures the
Geofence to report its position. The position is reported
at the same confidence level that was specified in the
Add Circular Geofence request. */
/* Optional */
/* Geofence Breach Confidence */
uint8_t breachConfidence_valid; /**< Must be set to true if breachConfidence is being passed */
qmiLocGeofenceConfidenceEnumT_v02 breachConfidence;
/**< \vspace{0.06in} \n
Given a breach event, the confidence determines the probability
that the breach happened at the Geofence boundary.
Valid values: \n
- eQMI_LOC_GEOFENCE_CONFIDENCE_LOW (0x01) -- Geofence engine indicates a breach with
low confidence; this setting results in lower
power usage, and it can impact the yield because
incorrect breach events may be sent
- eQMI_LOC_GEOFENCE_CONFIDENCE_MED (0x02) -- (Default) Geofence engine indicates a breach with
medium confidence
- eQMI_LOC_GEOFENCE_CONFIDENCE_HIGH (0x03) -- Geofence engine indicates a breach with
high confidence; this setting results in higher
power usage
*/
/* Optional */
/* Heading Uncertainty */
uint8_t headingUnc_valid; /**< Must be set to true if headingUnc is being passed */
float headingUnc;
/**< Heading uncertainty.\n
- Units: Degrees \n
- Range: 0 to 359.999 */
/* Optional */
/* Vertical Uncertainty */
uint8_t vertUnc_valid; /**< Must be set to true if vertUnc is being passed */
float vertUnc;
/**< Vertical uncertainty.\n
- Units: Meters */
/* Optional */
/* Speed Uncertainty */
uint8_t speedUnc_valid; /**< Must be set to true if speedUnc is being passed */
float speedUnc;
/**< 3-D speed uncertainty.\n
- Units: Meters/second */
/* Optional */
/* Horizontal Confidence */
uint8_t horConfidence_valid; /**< Must be set to true if horConfidence is being passed */
uint8_t horConfidence;
/**< Horizontal uncertainty confidence.\n
- Units: Percent \n
- Range: 0 to 99 */
/* Optional */
/* Vertical Confidence */
uint8_t vertConfidence_valid; /**< Must be set to true if vertConfidence is being passed */
uint8_t vertConfidence;
/**< Vertical uncertainty confidence.\n
- Units: Percent \n
- Range: 0 to 99 */
/* Optional */
/* Dilution of Precision */
uint8_t DOP_valid; /**< Must be set to true if DOP is being passed */
qmiLocDOPStructT_v02 DOP;
/**< \vspace{0.06in} \n Dilution of precision associated with this position. */
/* Optional */
/* SVs Used to Calculate the Fix */
uint8_t gnssSvUsedList_valid; /**< Must be set to true if gnssSvUsedList is being passed */
uint32_t gnssSvUsedList_len; /**< Must be set to # of elements in gnssSvUsedList */
uint16_t gnssSvUsedList[QMI_LOC_MAX_SV_USED_LIST_LENGTH_V02];
/**< Each entry in the list contains the SV ID of a satellite
used for calculating this position report. The following
information is associated with each SV ID: \n
Range: \n
- For GPS: 1 to 32 \n
- For GLONASS: 65 to 96 \n
- For SBAS: 120 to 158 and 183 to 187 \n
- For QZSS: 193 to 197 \n
- For BDS: 201 to 237 \n
- For GAL: 301 to 336
*/
}qmiLocEventGeofenceBatchedBreachIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGEOFENCEPROXIMITYTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GEOFENCE_PROXIMITY_TYPE_IN_V02 = 1, /**< Denotes that a client is in proximity of the Geofence \n */
eQMI_LOC_GEOFENCE_PROXIMITY_TYPE_OUT_V02 = 2, /**< Denotes that a client is out of proximity of the Geofence */
QMILOCGEOFENCEPROXIMITYTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGeofenceProximityTypeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Notifies the control point of a Geofence proximity event. */
typedef struct {
/* Mandatory */
/* Geofence Breach Type */
qmiLocGeofenceProximityTypeEnumT_v02 proximityType;
/**< Valid values: \n
- eQMI_LOC_GEOFENCE_PROXIMITY_TYPE_IN (1) -- Denotes that a client is in proximity of the Geofence \n
- eQMI_LOC_GEOFENCE_PROXIMITY_TYPE_OUT (2) -- Denotes that a client is out of proximity of the Geofence
*/
/* Mandatory */
/* Geofence ID */
uint32_t geofenceId;
/**< Identifier of the Geofence that is in proximity to the handset.
*/
/* Optional */
/* Geofence Context ID */
uint8_t contextId_valid; /**< Must be set to true if contextId is being passed */
uint32_t contextId;
/**< Identifier for the context of the Geofence to which the handset is in proximity.
A single Geofence may be associated with different contexts.
*/
}qmiLocEventGeofenceProximityIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGEOFENCEDWELLTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GEOFENCE_DWELL_TYPE_INSIDE_V02 = 1, /**< Denotes that a client dwelled inside the Geofence */
eQMI_LOC_GEOFENCE_DWELL_TYPE_OUTSIDE_V02 = 2, /**< Denotes that a client dwelled outside the Geofence */
QMILOCGEOFENCEDWELLTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGeofenceDwellTypeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Notifies the control point of a Geofence dwell event by
batching all the Geofences that were dwelled in. */
typedef struct {
/* Mandatory */
/* Geofence Dwell Type */
qmiLocGeofenceDwellTypeEnumT_v02 dwellType;
/**< Type of dwell event generated.
Valid values: \n
- eQMI_LOC_GEOFENCE_DWELL_TYPE_INSIDE (1) -- Denotes that a client dwelled inside the Geofence
- eQMI_LOC_GEOFENCE_DWELL_TYPE_OUTSIDE (2) -- Denotes that a client dwelled outside the Geofence
*/
/* Optional */
/* Geofence ID Continuous */
uint8_t geofenceIdContinuousList_valid; /**< Must be set to true if geofenceIdContinuousList is being passed */
uint32_t geofenceIdContinuousList_len; /**< Must be set to # of elements in geofenceIdContinuousList */
qmiLocGeofenceIdContinuousStructT_v02 geofenceIdContinuousList[QMI_LOC_MAX_GEOFENCE_ID_CONTINUOUS_LIST_LENGTH_V02];
/**< Each entry in the list contains the continuous range of Geofence IDs in which a client dwelled.
This list does not overlap with the discrete Geofence ID list. */
/* Optional */
/* Geofence ID Discrete */
uint8_t geofenceIdDiscreteList_valid; /**< Must be set to true if geofenceIdDiscreteList is being passed */
uint32_t geofenceIdDiscreteList_len; /**< Must be set to # of elements in geofenceIdDiscreteList */
uint32_t geofenceIdDiscreteList[QMI_LOC_MAX_GEOFENCE_ID_DISCRETE_LIST_LENGTH_V02];
/**< This list contains the Geofence IDs in which a client dwelled.
This list does not overlap with the continuous Geofence ID list. */
/* Optional */
/* Geofence Position */
uint8_t geofencePosition_valid; /**< Must be set to true if geofencePosition is being passed */
qmiLocGeofencePositionStructT_v02 geofencePosition;
/**< \n The latest position calculated by the Geofence engine when
the dwell notification is sent. */
/* Optional */
/* Heading Uncertainty */
uint8_t headingUnc_valid; /**< Must be set to true if headingUnc is being passed */
float headingUnc;
/**< Heading uncertainty.\n
- Units: Degrees \n
- Range: 0 to 359.999 */
/* Optional */
/* Vertical Uncertainty */
uint8_t vertUnc_valid; /**< Must be set to true if vertUnc is being passed */
float vertUnc;
/**< Vertical uncertainty.\n
- Units: Meters */
/* Optional */
/* Speed Uncertainty */
uint8_t speedUnc_valid; /**< Must be set to true if speedUnc is being passed */
float speedUnc;
/**< 3-D speed uncertainty.\n
- Units: Meters/second */
/* Optional */
/* Horizontal Confidence */
uint8_t horConfidence_valid; /**< Must be set to true if horConfidence is being passed */
uint8_t horConfidence;
/**< Horizontal uncertainty confidence.\n
- Units: Percent \n
- Range: 0 to 99 */
/* Optional */
/* Vertical Confidence */
uint8_t vertConfidence_valid; /**< Must be set to true if vertConfidence is being passed */
uint8_t vertConfidence;
/**< Vertical uncertainty confidence.\n
- Units: Percent \n
- Range: 0 to 99 */
/* Optional */
/* Dilution of Precision */
uint8_t DOP_valid; /**< Must be set to true if DOP is being passed */
qmiLocDOPStructT_v02 DOP;
/**< \vspace{0.06in} \n Dilution of precision associated with this position. */
/* Optional */
/* SVs Used to Calculate the Fix */
uint8_t gnssSvUsedList_valid; /**< Must be set to true if gnssSvUsedList is being passed */
uint32_t gnssSvUsedList_len; /**< Must be set to # of elements in gnssSvUsedList */
uint16_t gnssSvUsedList[QMI_LOC_MAX_SV_USED_LIST_LENGTH_V02];
/**< Each entry in the list contains the SV ID of a satellite
used for calculating this position report. The following
information is associated with each SV ID: \n
Range: \n
- For GPS: 1 to 32 \n
- For GLONASS: 65 to 96 \n
- For SBAS: 120 to 158 and 183 to 187 \n
- For QZSS: 193 to 197 \n
- For BDS: 201 to 237 \n
- For GAL: 301 to 336
*/
}qmiLocEventGeofenceBatchedDwellIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGDTSERVICEIDENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GDT_SERVICE_WWAN_V02 = 1, /**< GDT service for WWAN UL */
eQMI_LOC_GDT_SERVICE_WWAN_DL_V02 = 2, /**< GDT service for WWAN DL */
QMILOCGDTSERVICEIDENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGdtServiceIdEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGDTACCESSSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GDT_ACCESS_ALLOWED_V02 = 1, /**< GDT access to the service is allowed */
eQMI_LOC_GDT_ACCESS_FAILED_V02 = 2, /**< Any type of GDT access error */
eQMI_LOC_GDT_ACCESS_NOT_ALLOWED_V02 = 3, /**< GDT access to the service is not allowed */
QMILOCGDTACCESSSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGdtAccessStatusEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Requests the control point to transfer data. */
typedef struct {
/* Mandatory */
/* GDT Service ID */
qmiLocGdtServiceIdEnumT_v02 serviceId;
/**< Values: \n
- eQMI_LOC_GDT_SERVICE_WWAN (1) -- GDT service for WWAN UL
- eQMI_LOC_GDT_SERVICE_WWAN_DL (2) -- GDT service for WWAN DL */
/* Mandatory */
/* Session ID */
uint32_t sessionId;
/**< Session ID. */
/* Mandatory */
/* Data */
uint32_t filePath_len; /**< Must be set to # of elements in filePath */
char filePath[QMI_LOC_MAX_GDT_PATH_LEN_V02];
/**< File path to the data. \n
- Type: Array of bytes \n
- Maximum length of the array: 255
*/
}qmiLocEventGdtUploadBeginStatusReqIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGDTENDSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GDT_SUCCESS_V02 = 1, /**< The sent data was accepted */
eQMI_LOC_GDT_FAILED_V02 = 2, /**< The sent data was not accepted */
eQMI_LOC_GDT_INVALID_V02 = 3, /**< General error in the received data */
QMILOCGDTENDSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGdtEndStatusEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Requests the control point to report the status of the
transfered data. */
typedef struct {
/* Mandatory */
/* GDT Service ID */
qmiLocGdtServiceIdEnumT_v02 serviceId;
/**< Values: \n
- eQMI_LOC_GDT_SERVICE_WWAN (1) -- GDT service for WWAN UL
- eQMI_LOC_GDT_SERVICE_WWAN_DL (2) -- GDT service for WWAN DL */
/* Mandatory */
/* Session ID */
uint32_t sessionId;
/* Mandatory */
/* GDT End Status */
qmiLocGdtEndStatusEnumT_v02 endStatus;
/**< Values: \n
- eQMI_LOC_GDT_SUCCESS (1) -- The sent data was accepted
- eQMI_LOC_GDT_FAILED (2) -- The sent data was not accepted
- eQMI_LOC_GDT_INVALID (3) -- General error in the received data */
}qmiLocEventGdtUploadEndReqIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Requests the control point to transfer data. */
typedef struct {
/* Mandatory */
/* GDT Service ID */
qmiLocGdtServiceIdEnumT_v02 serviceId;
/**< Values: \n
- eQMI_LOC_GDT_SERVICE_WWAN (1) -- GDT service for WWAN UL
- eQMI_LOC_GDT_SERVICE_WWAN_DL (2) -- GDT service for WWAN DL */
/* Mandatory */
/* Session ID */
uint32_t sessionId;
/**< Session ID. */
/* Mandatory */
/* Interval After Which AP Must Respond to MP */
uint32_t respTimeoutInterval;
/**< Interval after which the AP must respond to the MP, in seconds. */
/* Mandatory */
/* Encoded GTP Client Information */
uint32_t clientInfo_len; /**< Must be set to # of elements in clientInfo */
uint8_t clientInfo[QMI_LOC_MAX_GTP_CL_INFO_LEN_V02];
/**< GTP client information encoded in asn.1 format. \n
- Type: Array of bytes \n
- Maximum length of the array: 1500
*/
/* Mandatory */
/* Encoded Mobile Status Data */
uint32_t mobileStatusData_len; /**< Must be set to # of elements in mobileStatusData */
uint8_t mobileStatusData[QMI_LOC_MAX_GTP_MSD_LEN_V02];
/**< Mobile status data encoded in asn.1 format. \n
- Type: Array of bytes \n
- Maximum length of the array: 4000
*/
/* Mandatory */
/* Data Filepath */
uint32_t filePath_len; /**< Must be set to # of elements in filePath */
char filePath[QMI_LOC_MAX_GDT_PATH_LEN_V02];
/**< File path to the position data expected by the MP. \n
- Type: Array of bytes \n
- Maximum length of the array: 255
*/
/* Optional */
/* Power Budget Info */
uint8_t powerBudgetInfo_valid; /**< Must be set to true if powerBudgetInfo is being passed */
uint32_t powerBudgetInfo;
/**< Power budget information. */
/* Optional */
/* Power Budget Allowance */
uint8_t powerBudgetAllowance_valid; /**< Must be set to true if powerBudgetAllowance is being passed */
uint32_t powerBudgetAllowance;
/**< Power budget allowance. */
}qmiLocEventGdtDownloadBeginReqIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGDTRECEIVESTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GTP_RCV_STATUS_CONTINUE_V02 = 1, /**< Indicates that the AP is to continue sending more partitions to the MP */
eQMI_LOC_GTP_RCV_STATUS_DONE_V02 = 2, /**< Indicates that the AP is to stop sending partitions to the MP */
QMILOCGDTRECEIVESTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGdtReceiveStatusEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Notifies the control point after consuming the current data transfer. */
typedef struct {
/* Mandatory */
/* GDT Service ID */
qmiLocGdtServiceIdEnumT_v02 serviceId;
/**< Values: \n
- eQMI_LOC_GDT_SERVICE_WWAN (1) -- GDT service for WWAN UL
- eQMI_LOC_GDT_SERVICE_WWAN_DL (2) -- GDT service for WWAN DL */
/* Mandatory */
/* Session ID */
uint32_t sessionId;
/**< Session ID. */
/* Mandatory */
/* GDT Receive Status */
qmiLocGdtReceiveStatusEnumT_v02 status;
/**< Status indicating the continuation or termination of sending to the AP.
Valid values: \n
- eQMI_LOC_GTP_RCV_STATUS_CONTINUE (1) -- Indicates that the AP is to continue sending more partitions to the MP
- eQMI_LOC_GTP_RCV_STATUS_DONE (2) -- Indicates that the AP is to stop sending partitions to the MP
*/
}qmiLocEventGdtReceiveDoneIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SUCCESS_V02 = 0, /**< Request was completed successfully \n */
eQMI_LOC_GENERAL_FAILURE_V02 = 1, /**< Request failed because of a general failure \n */
eQMI_LOC_UNSUPPORTED_V02 = 2, /**< Request failed because it is not supported \n */
eQMI_LOC_INVALID_PARAMETER_V02 = 3, /**< Request failed because it contained invalid parameters \n */
eQMI_LOC_ENGINE_BUSY_V02 = 4, /**< Request failed because the engine is busy \n */
eQMI_LOC_PHONE_OFFLINE_V02 = 5, /**< Request failed because the phone is offline \n */
eQMI_LOC_TIMEOUT_V02 = 6, /**< Request failed because it timed out \n */
eQMI_LOC_CONFIG_NOT_SUPPORTED_V02 = 7, /**< Request failed because an undefined configuration was requested \n */
eQMI_LOC_INSUFFICIENT_MEMORY_V02 = 8, /**< Request failed because the engine could not allocate sufficient memory for the request \n */
eQMI_LOC_MAX_GEOFENCE_PROGRAMMED_V02 = 9, /**< Request failed because the maximum number of Geofences are already programmed \n */
eQMI_LOC_XTRA_VERSION_CHECK_FAILURE_V02 = 10, /**< Location service failed because of an XTRA version-based file format check failure */
QMILOCSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocStatusEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Notifies the control point of the end of a download session. */
typedef struct {
/* Mandatory */
/* GDT Service ID */
qmiLocGdtServiceIdEnumT_v02 serviceId;
/**< Values: \n
- eQMI_LOC_GDT_SERVICE_WWAN (1) -- GDT service for WWAN UL
- eQMI_LOC_GDT_SERVICE_WWAN_DL (2) -- GDT service for WWAN DL */
/* Mandatory */
/* Session ID */
uint32_t sessionId;
/**< Session ID. */
/* Mandatory */
/* GDT Download End Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the download session.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocEventGdtDownloadEndReqIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Client can query the service revision using this message. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocGetServiceRevisionReqMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Client can query the service revision using this message. */
typedef struct {
/* Mandatory */
/* Get Revision Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Revision request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Mandatory */
/* Interface Definition Minor Revision */
uint32_t revision;
/**< Revision of the service. This is the minor revision of the interface that
the service implements. Minor revision updates of the service are always
backward compatible. */
/* Optional */
/* GNSS Measurement Engine Firmware Version String */
uint8_t gnssMeFWVerString_valid; /**< Must be set to true if gnssMeFWVerString is being passed */
char gnssMeFWVerString[QMI_LOC_GNSS_ME_VERSION_STRING_MAX_LENGTH_V02 + 1];
/**< Version of the GNSS measurement engine software running under the LOC API.
\begin{itemize1}
\item Type: NULL-terminated string
\item Maximum string length (including NULL terminator): 128
\vspace{0.1in} \end{itemize1}
\textbf{Note:} This string is only provided on platforms that have
a measurement engine that supports this version string. On all other
platforms, this optional TLV is not provided. */
/* Optional */
/* GNSS Hosted Software Version String */
uint8_t gnssHostSWVerString_valid; /**< Must be set to true if gnssHostSWVerString is being passed */
char gnssHostSWVerString[QMI_LOC_GNSS_HOSTED_SW_VERSION_STRING_MAX_LENGTH_V02 + 1];
/**< Version of the GNSS hosted software running under the LOC API.
\begin{itemize1}
\item Type: NULL-terminated string
\item Maximum string length (including NULL terminator): 128
\vspace{0.1in}\end{itemize1}
\textbf{Note:} This string is only provided on hosted architectures
(measurement and position engine running on different processors) that
support this version string. On all other platforms, this optional TLV
is not provided. */
/* Optional */
/* GNSS Software Version String */
uint8_t gnssSWVerString_valid; /**< Must be set to true if gnssSWVerString is being passed */
char gnssSWVerString[QMI_LOC_GNSS_SW_VERSION_STRING_MAX_LENGTH_V02 + 1];
/**< Aggregate version of the GNSS software.
\begin{itemize1}
\item Type: NULL-terminated string
\item Maximum string length (including NULL terminator): 256
\vspace{-0.18in} \end{itemize1} */
}qmiLocGetServiceRevisionIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Gets the fix criteria from the location engine. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocGetFixCriteriaReqMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Gets the fix criteria from the location engine. */
typedef struct {
/* Mandatory */
/* Get Fix Criteria Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Fix Criteria request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Horizontal Accuracy */
uint8_t horizontalAccuracyLevel_valid; /**< Must be set to true if horizontalAccuracyLevel is being passed */
qmiLocAccuracyLevelEnumT_v02 horizontalAccuracyLevel;
/**< Horizontal accuracy level.
Valid values: \n
- eQMI_LOC_ACCURACY_LOW (1) -- Low accuracy
- eQMI_LOC_ACCURACY_MED (2) -- Medium accuracy
- eQMI_LOC_ACCURACY_HIGH (3) -- High accuracy
*/
/* Optional */
/* Enable/Disable Intermediate Fixes */
uint8_t intermediateReportState_valid; /**< Must be set to true if intermediateReportState is being passed */
qmiLocIntermediateReportStateEnumT_v02 intermediateReportState;
/**< Intermediate Report state (ON, OFF).\n
The client must explicitly set this field to OFF to stop receiving
intermediate position reports. Intermediate position reports are
generated at 1 Hz and are ON by default. If intermediate reports
are turned ON, the client receives position reports even if the
accuracy criteria is not met. The status in the position report is
set to IN_PROGRESS for intermediate reports.
Valid values: \n
- eQMI_LOC_INTERMEDIATE_REPORTS_ON (1) -- Intermediate reports are turned on
- eQMI_LOC_INTERMEDIATE_REPORTS_OFF (2) -- Intermediate reports are turned off
*/
/* Optional */
/* Minimum Interval Between Fixes */
uint8_t minInterval_valid; /**< Must be set to true if minInterval is being passed */
uint32_t minInterval;
/**< Time that must elapse before alerting the client. \n
- Units: Milliseconds */
/* Optional */
/* ID of the Application that Sent the Position Request */
uint8_t applicationId_valid; /**< Must be set to true if applicationId is being passed */
qmiLocApplicationIdStructT_v02 applicationId;
/**< \vspace{0.06in} \n Application provider, name, and version.*/
/* Optional */
/* Configuration for Altitude Assumed Info in GNSS SV Info Event */
uint8_t configAltitudeAssumed_valid; /**< Must be set to true if configAltitudeAssumed is being passed */
qmiLocConfigIncludeAltitudeAssumedInGnssSvInfoEnumT_v02 configAltitudeAssumed;
/**< Specifies the configuration to include Altitude Assumed information in the GNSS SV Info Event.
When enabled, an additional GNSS SV Info event indication is sent to the control
point that also includes the altitude assumed information.
If not specified, the configuration defaults to ENABLED.
Valid values: \n
- eQMI_LOC_ALTITUDE_ASSUMED_IN_GNSS_SV_INFO_ENABLED (1) -- Enable Altitude Assumed information in GNSS SV Info Event.
- eQMI_LOC_ALTITUDE_ASSUMED_IN_GNSS_SV_INFO_DISABLED (2) -- Disable Altitude Assumed information in GNSS SV Info Event.
*/
/* Optional */
/* Minimum Interval Between Intermediate Position Reports */
uint8_t minIntermediatePositionReportInterval_valid; /**< Must be set to true if minIntermediatePositionReportInterval is being passed */
uint32_t minIntermediatePositionReportInterval;
/**< Minimum time interval for intermediate position reports, specified by the control point,
that, between the position reports elapsed time, must be longer than the interval time.
If this optional value is not set or set to the default value (0), the intermediate position
will be reported when it is ready. \n
- Units: Milliseconds \n
- Default: 0 ms
*/
/* Optional */
/* Maximum Wait Time to Get a Position Report */
uint8_t positionReportTimeout_valid; /**< Must be set to true if positionReportTimeout is being passed */
uint32_t positionReportTimeout;
/**< Maximum time to work on each fix, specified by the control point.
The GPS engine returns QMI_ERR_INTERNAL if a position cannot be obtained
within the positionReportTimeout value. \n
- Units: Milliseconds \n
- Default: 255*1000 ms \n
- Range: 1000 - 255*1000 ms
*/
/* Optional */
/* Share position report with other clients */
uint8_t sharePosition_valid; /**< Must be set to true if sharePosition is being passed */
uint8_t sharePosition;
/**< Allow to share the position report with the other QMI_LOC clients \n
\item 0x00(FALSE) Do not share the position report
\item 0x01(TRUE) Share the position report
\vspace{-0.18in} \end{itemize1}
*/
}qmiLocGetFixCriteriaIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCNIUSERRESPENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_NI_LCS_NOTIFY_VERIFY_ACCEPT_V02 = 1, /**< User accepted the Notify/Verify request */
eQMI_LOC_NI_LCS_NOTIFY_VERIFY_DENY_V02 = 2, /**< User denied the Notify/Verify request */
eQMI_LOC_NI_LCS_NOTIFY_VERIFY_NORESP_V02 = 3, /**< User did not respond to the Notify/Verify request */
QMILOCNIUSERRESPENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocNiUserRespEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Sends the NI user response back to the engine; success or
failure is reported in a separate indication. */
typedef struct {
/* Mandatory */
/* User Response */
qmiLocNiUserRespEnumT_v02 userResp;
/**< User accepted or denied.
Valid values: \n
- eQMI_LOC_NI_LCS_NOTIFY_VERIFY_ACCEPT (1) -- User accepted the Notify/Verify request
- eQMI_LOC_NI_LCS_NOTIFY_VERIFY_DENY (2) -- User denied the Notify/Verify request
- eQMI_LOC_NI_LCS_NOTIFY_VERIFY_NORESP (3) -- User did not respond to the Notify/Verify request
*/
/* Mandatory */
/* Notification Type */
qmiLocNiNotifyVerifyEnumT_v02 notificationType;
/**< Type of notification/verification performed.
Valid values: \n
- eQMI_LOC_NI_USER_NO_NOTIFY_NO_VERIFY (1) -- No notification and no verification required
- eQMI_LOC_NI_USER_NOTIFY_ONLY (2) -- Notify only; no verification required
- eQMI_LOC_NI_USER_NOTIFY_VERIFY_ALLOW_NO_RESP (3) -- Notify and verify, but no response required.
- eQMI_LOC_NI_USER_NOTIFY_VERIFY_NOT_ALLOW_NO_RESP (4) -- Notify and verify, and require a response
- eQMI_LOC_NI_USER_NOTIFY_VERIFY_PRIVACY_OVERRIDE (5) -- Notify and verify; privacy override
*/
/* Optional */
/* Network Initiated Vx Request */
uint8_t NiVxPayload_valid; /**< Must be set to true if NiVxPayload is being passed */
qmiLocNiVxNotifyVerifyStructT_v02 NiVxPayload;
/**< \vspace{0.06in} \n Optional NI VX request payload. */
/* Optional */
/* Network Initiated SUPL Request */
uint8_t NiSuplPayload_valid; /**< Must be set to true if NiSuplPayload is being passed */
qmiLocNiSuplNotifyVerifyStructT_v02 NiSuplPayload;
/**< \vspace{0.06in} \n Optional NI SUPL request payload. */
/* Optional */
/* Network Initiated UMTS Control Plane Request */
uint8_t NiUmtsCpPayload_valid; /**< Must be set to true if NiUmtsCpPayload is being passed */
qmiLocNiUmtsCpNotifyVerifyStructT_v02 NiUmtsCpPayload;
/**< \vspace{0.06in} \n Optional NI UMTS-CP request payload. */
/* Optional */
/* Network Initiated Service Interaction Request */
uint8_t NiVxServiceInteractionPayload_valid; /**< Must be set to true if NiVxServiceInteractionPayload is being passed */
qmiLocNiVxServiceInteractionStructT_v02 NiVxServiceInteractionPayload;
/**< \vspace{0.06in} \n Optional NI service interaction payload. */
/* Optional */
/* Network Initiated SUPL Version 2 Extension */
uint8_t NiSuplVer2ExtPayload_valid; /**< Must be set to true if NiSuplVer2ExtPayload is being passed */
qmiLocNiSuplVer2ExtStructT_v02 NiSuplVer2ExtPayload;
/**< \vspace{0.06in} \n Optional SUPL Version 2 Extension payload. */
/* Optional */
/* SUPL Emergency Notification */
uint8_t suplEmergencyNotification_valid; /**< Must be set to true if suplEmergencyNotification is being passed */
qmiLocEmergencyNotificationStructT_v02 suplEmergencyNotification;
/**< \vspace{0.06in} \n SUPL emergency notification payload. Emergency notification
can be given even without an ESLP address */
}qmiLocNiUserRespReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sends the NI user response back to the engine; success or
failure is reported in a separate indication. */
typedef struct {
/* Mandatory */
/* NI User Response Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the NI User Response request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocNiUserRespIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCPREDICTEDORBITSDATAFORMATENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_PREDICTED_ORBITS_XTRA_V02 = 0, /**< Default is QCOM-XTRA format. */
QMILOCPREDICTEDORBITSDATAFORMATENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocPredictedOrbitsDataFormatEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Injects predicted orbits data. */
typedef struct {
/* Mandatory */
/* Total Size */
uint32_t totalSize;
/**< Total size of the predicted orbits data to be injected. \n
- Units: Bytes */
/* Mandatory */
/* Total Parts */
uint16_t totalParts;
/**< Total number of parts into which the predicted orbits data is
divided. */
/* Mandatory */
/* Part Number */
uint16_t partNum;
/**< Number of the current predicted orbits data part; starts at 1. */
/* Mandatory */
/* Data */
uint32_t partData_len; /**< Must be set to # of elements in partData */
char partData[QMI_LOC_MAX_PREDICTED_ORBITS_PART_LEN_V02];
/**< Predicted orbits data. \n
- Type: Array of bytes \n
- Maximum length of the array: 1024
*/
/* Optional */
/* Format Type */
uint8_t formatType_valid; /**< Must be set to true if formatType is being passed */
qmiLocPredictedOrbitsDataFormatEnumT_v02 formatType;
/**< Predicted orbits data format. \n
Valid values: \n
- eQMI_LOC_PREDICTED_ORBITS_XTRA (0) -- Default is QCOM-XTRA format.
*/
}qmiLocInjectPredictedOrbitsDataReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Injects predicted orbits data. */
typedef struct {
/* Mandatory */
/* Data Injection Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Data Injection request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Part Number */
uint8_t partNum_valid; /**< Must be set to true if partNum is being passed */
uint16_t partNum;
/**< Number of the predicted orbits data part for which this indication
is sent; starts at 1. */
}qmiLocInjectPredictedOrbitsDataIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Gets the predicted orbits data source. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocGetPredictedOrbitsDataSourceReqMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Gets the predicted orbits data source. */
typedef struct {
/* Mandatory */
/* Predicted Orbits Data Source Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the query request for a predicted orbits data source.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Allowed Sizes */
uint8_t allowedSizes_valid; /**< Must be set to true if allowedSizes is being passed */
qmiLocPredictedOrbitsAllowedSizesStructT_v02 allowedSizes;
/**< \n Maximum part and file size allowed to be injected in the engine. */
/* Optional */
/* Server List */
uint8_t serverList_valid; /**< Must be set to true if serverList is being passed */
qmiLocPredictedOrbitsServerListStructT_v02 serverList;
/**< \n List of servers that can be used by the client to download
predicted orbits data. */
}qmiLocGetPredictedOrbitsDataSourceIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Gets the predicted orbits data validity. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocGetPredictedOrbitsDataValidityReqMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint64_t startTimeInUTC;
/**< Predicted orbits data is valid starting from this time. \n
- Units: Seconds (since Jan. 1, 1970)
*/
uint16_t durationHours;
/**< Duration from the start time for which the data is valid.\n
- Units: Hours
*/
}qmiLocPredictedOrbitsDataValidityStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Gets the predicted orbits data validity. */
typedef struct {
/* Mandatory */
/* Predicted Orbits Data Validity Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the query request for predicted orbits data validity.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Validity Info */
uint8_t validityInfo_valid; /**< Must be set to true if validityInfo is being passed */
qmiLocPredictedOrbitsDataValidityStructT_v02 validityInfo;
}qmiLocGetPredictedOrbitsDataValidityIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Injects UTC time in the location engine. */
typedef struct {
/* Mandatory */
/* UTC Time */
uint64_t timeUtc;
/**< UTC time since Jan. 1, 1970.\n
- Units: Milliseconds */
/* Mandatory */
/* Time Uncertainty */
uint32_t timeUnc;
/**< Time uncertainty.\n
- Units: Milliseconds */
}qmiLocInjectUtcTimeReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Injects UTC time in the location engine. */
typedef struct {
/* Mandatory */
/* UTC Time Injection Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the UTC Time Injection request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocInjectUtcTimeIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCALTSRCENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_ALT_SRC_UNKNOWN_V02 = 0, /**< Source is unknown */
eQMI_LOC_ALT_SRC_GPS_V02 = 1, /**< GPS is the source */
eQMI_LOC_ALT_SRC_CELL_ID_V02 = 2, /**< Cell ID provided the source */
eQMI_LOC_ALT_SRC_ENHANCED_CELL_ID_V02 = 3, /**< Source is enhanced cell ID */
eQMI_LOC_ALT_SRC_WIFI_V02 = 4, /**< Wi-Fi is the source */
eQMI_LOC_ALT_SRC_TERRESTRIAL_V02 = 5, /**< Terrestrial source */
eQMI_LOC_ALT_SRC_TERRESTRIAL_HYBRID_V02 = 6, /**< Hybrid terrestrial source */
eQMI_LOC_ALT_SRC_ALTITUDE_DATABASE_V02 = 7, /**< Altitude database is the source */
eQMI_LOC_ALT_SRC_BAROMETRIC_ALTIMETER_V02 = 8, /**< Barometric altimeter is the source */
eQMI_LOC_ALT_SRC_OTHER_V02 = 9, /**< Other sources */
QMILOCALTSRCENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocAltSrcEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCALTSRCLINKAGEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_ALT_SRC_LINKAGE_NOT_SPECIFIED_V02 = 0, /**< Not specified */
eQMI_LOC_ALT_SRC_LINKAGE_FULLY_INTERDEPENDENT_V02 = 1, /**< Fully interdependent */
eQMI_LOC_ALT_SRC_LINKAGE_DEPENDS_ON_LAT_LONG_V02 = 2, /**< Depends on latitude and longitude */
eQMI_LOC_ALT_SRC_LINKAGE_FULLY_INDEPENDENT_V02 = 3, /**< Fully independent */
QMILOCALTSRCLINKAGEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocAltSrcLinkageEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCALTSRCUNCERTAINTYCOVERAGEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_ALT_UNCERTAINTY_NOT_SPECIFIED_V02 = 0, /**< Not specified */
eQMI_LOC_ALT_UNCERTAINTY_POINT_V02 = 1, /**< Altitude uncertainty is valid at the injected horizontal
position coordinates only */
eQMI_LOC_ALT_UNCERTAINTY_FULL_V02 = 2, /**< Altitude uncertainty applies to the position of the device
regardless of horizontal position (within the horizontal
uncertainty region, if provided) */
QMILOCALTSRCUNCERTAINTYCOVERAGEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocAltSrcUncertaintyCoverageEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocAltSrcEnumT_v02 source;
/**< Specifies the source of the altitude.
Valid values: \n
- eQMI_LOC_ALT_SRC_UNKNOWN (0) -- Source is unknown
- eQMI_LOC_ALT_SRC_GPS (1) -- GPS is the source
- eQMI_LOC_ALT_SRC_CELL_ID (2) -- Cell ID provided the source
- eQMI_LOC_ALT_SRC_ENHANCED_CELL_ID (3) -- Source is enhanced cell ID
- eQMI_LOC_ALT_SRC_WIFI (4) -- Wi-Fi is the source
- eQMI_LOC_ALT_SRC_TERRESTRIAL (5) -- Terrestrial source
- eQMI_LOC_ALT_SRC_TERRESTRIAL_HYBRID (6) -- Hybrid terrestrial source
- eQMI_LOC_ALT_SRC_ALTITUDE_DATABASE (7) -- Altitude database is the source
- eQMI_LOC_ALT_SRC_BAROMETRIC_ALTIMETER (8) -- Barometric altimeter is the source
- eQMI_LOC_ALT_SRC_OTHER (9) -- Other sources
*/
qmiLocAltSrcLinkageEnumT_v02 linkage;
/**< Specifies the dependency between the horizontal and
altitude position components.
Valid values: \n
- eQMI_LOC_ALT_SRC_LINKAGE_NOT_SPECIFIED (0) -- Not specified
- eQMI_LOC_ALT_SRC_LINKAGE_FULLY_INTERDEPENDENT (1) -- Fully interdependent
- eQMI_LOC_ALT_SRC_LINKAGE_DEPENDS_ON_LAT_LONG (2) -- Depends on latitude and longitude
- eQMI_LOC_ALT_SRC_LINKAGE_FULLY_INDEPENDENT (3) -- Fully independent
*/
qmiLocAltSrcUncertaintyCoverageEnumT_v02 coverage;
/**< Specifies the region of uncertainty.
Valid values: \n
- eQMI_LOC_ALT_UNCERTAINTY_NOT_SPECIFIED (0) -- Not specified
- eQMI_LOC_ALT_UNCERTAINTY_POINT (1) -- Altitude uncertainty is valid at the injected horizontal
position coordinates only
- eQMI_LOC_ALT_UNCERTAINTY_FULL (2) -- Altitude uncertainty applies to the position of the device
regardless of horizontal position (within the horizontal
uncertainty region, if provided)
*/
}qmiLocAltitudeSrcInfoStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCPOSITIONSRCENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_POSITION_SRC_GNSS_V02 = 0, /**< Position source is GNSS */
eQMI_LOC_POSITION_SRC_CELLID_V02 = 1, /**< Position source is Cell ID */
eQMI_LOC_POSITION_SRC_ENH_CELLID_V02 = 2, /**< Position source is Enhanced Cell ID */
eQMI_LOC_POSITION_SRC_WIFI_V02 = 3, /**< Position source is Wi-Fi */
eQMI_LOC_POSITION_SRC_TERRESTRIAL_V02 = 4, /**< Position source is Terrestrial */
eQMI_LOC_POSITION_SRC_GNSS_TERRESTRIAL_HYBRID_V02 = 5, /**< Position source is GNSS Terrestrial Hybrid */
eQMI_LOC_POSITION_SRC_OTHER_V02 = 6, /**< Other sources */
QMILOCPOSITIONSRCENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocPositionSrcEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Injects a position to the location engine. */
typedef struct {
/* Optional */
/* Latitude */
uint8_t latitude_valid; /**< Must be set to true if latitude is being passed */
double latitude;
/**< Latitude (specified in WGS84 datum).
\begin{itemize1}
\item Type: Floating point
\item Units: Degrees
\item Range: -90.0 to 90.0 \begin{itemize1}
\item Positive values indicate northern latitude
\item Negative values indicate southern latitude
\vspace{-0.18in} \end{itemize1} \end{itemize1}
*/
/* Optional */
/* Longitude */
uint8_t longitude_valid; /**< Must be set to true if longitude is being passed */
double longitude;
/**< Longitude (specified in WGS84 datum).
\begin{itemize1}
\item Type: Floating point
\item Units: Degrees
\item Range: -180.0 to 180.0 \begin{itemize1}
\item Positive values indicate eastern longitude
\item Negative values indicate western longitude
\vspace{-0.18in} \end{itemize1} \end{itemize1}
*/
/* Optional */
/* Circular Horizontal Uncertainty */
uint8_t horUncCircular_valid; /**< Must be set to true if horUncCircular is being passed */
float horUncCircular;
/**< Horizontal position uncertainty (circular).\n
- Units: Meters */
/* Optional */
/* Horizontal Confidence */
uint8_t horConfidence_valid; /**< Must be set to true if horConfidence is being passed */
uint8_t horConfidence;
/**< Horizontal confidence, as defined by ETSI TS 101 109 (3GPP \hyperref[TS 03.32]{TS 03.32).
\begin{itemize1}
\item Units: Percent (1 to 99)
\item 0, 101 to 255 -- invalid value
\item If 100 is received, reinterpret to 99
\end{itemize1}
This field must be specified together with horizontal uncertainty.
If not specified when horUncCircular is set, the default value is 50. */
/* Optional */
/* Horizontal Reliability */
uint8_t horReliability_valid; /**< Must be set to true if horReliability is being passed */
qmiLocReliabilityEnumT_v02 horReliability;
/**< Specifies the reliability of the horizontal position.
Valid values: \n
- eQMI_LOC_RELIABILITY_NOT_SET (0) -- Location reliability is not set
- eQMI_LOC_RELIABILITY_VERY_LOW (1) -- Location reliability is very low; use it at your own risk
- eQMI_LOC_RELIABILITY_LOW (2) -- Location reliability is low; little or no cross-checking is possible
- eQMI_LOC_RELIABILITY_MEDIUM (3) -- Location reliability is medium; limited cross-check passed
- eQMI_LOC_RELIABILITY_HIGH (4) -- Location reliability is high; strong cross-check passed
*/
/* Optional */
/* Altitude With Respect to Ellipsoid */
uint8_t altitudeWrtEllipsoid_valid; /**< Must be set to true if altitudeWrtEllipsoid is being passed */
float altitudeWrtEllipsoid;
/**< Altitude with respect to the WGS84 ellipsoid.
\begin{itemize1}
\item Units: Meters \begin{itemize1}
\item Positive = height
\item Negative = depth
\vspace{-0.18in} \end{itemize1} \end{itemize1}*/
/* Optional */
/* Altitude With Respect to Sea Level */
uint8_t altitudeWrtMeanSeaLevel_valid; /**< Must be set to true if altitudeWrtMeanSeaLevel is being passed */
float altitudeWrtMeanSeaLevel;
/**< Altitude with respect to mean sea level.\n
- Units: Meters */
/* Optional */
/* Vertical Uncertainty */
uint8_t vertUnc_valid; /**< Must be set to true if vertUnc is being passed */
float vertUnc;
/**< Vertical uncertainty. This is mandatory if either altitudeWrtEllipsoid
or altitudeWrtMeanSeaLevel is specified.\n
- Units: Meters */
/* Optional */
/* Vertical Confidence */
uint8_t vertConfidence_valid; /**< Must be set to true if vertConfidence is being passed */
uint8_t vertConfidence;
/**< Vertical confidence, as defined by ETSI TS 101 109 (3GPP \hyperref[TS 03.32]{TS 03.32}).
\begin{itemize1}
\item Units: Percent (0-99)
\item 0 -- invalid value
\item 100 to 256 -- not used
\item If 100 is received, reinterpret to 99
\end{itemize1}
This field must be specified together with the vertical uncertainty.
If not specified, the default value will be 50. */
/* Optional */
/* Vertical Reliability */
uint8_t vertReliability_valid; /**< Must be set to true if vertReliability is being passed */
qmiLocReliabilityEnumT_v02 vertReliability;
/**< Specifies the reliability of the vertical position.
Valid values: \n
- eQMI_LOC_RELIABILITY_NOT_SET (0) -- Location reliability is not set
- eQMI_LOC_RELIABILITY_VERY_LOW (1) -- Location reliability is very low; use it at your own risk
- eQMI_LOC_RELIABILITY_LOW (2) -- Location reliability is low; little or no cross-checking is possible
- eQMI_LOC_RELIABILITY_MEDIUM (3) -- Location reliability is medium; limited cross-check passed
- eQMI_LOC_RELIABILITY_HIGH (4) -- Location reliability is high; strong cross-check passed
*/
/* Optional */
/* Altitude Source Info */
uint8_t altSourceInfo_valid; /**< Must be set to true if altSourceInfo is being passed */
qmiLocAltitudeSrcInfoStructT_v02 altSourceInfo;
/**< \vspace{0.06in} \n Specifies information regarding the altitude source. */
/* Optional */
/* UTC Timestamp */
uint8_t timestampUtc_valid; /**< Must be set to true if timestampUtc is being passed */
uint64_t timestampUtc;
/**< UTC timestamp. \n
- Units: Milliseconds (since Jan. 1, 1970) */
/* Optional */
/* Position Age */
uint8_t timestampAge_valid; /**< Must be set to true if timestampAge is being passed */
int32_t timestampAge;
/**< Position age, which is an estimate of how long ago this fix was made. \n
- Units: Milliseconds */
/* Optional */
/* Position Source */
uint8_t positionSrc_valid; /**< Must be set to true if positionSrc is being passed */
qmiLocPositionSrcEnumT_v02 positionSrc;
/**< Source from which this position was obtained.
Valid values: \n
- eQMI_LOC_POSITION_SRC_GNSS (0) -- Position source is GNSS
- eQMI_LOC_POSITION_SRC_CELLID (1) -- Position source is Cell ID
- eQMI_LOC_POSITION_SRC_ENH_CELLID (2) -- Position source is Enhanced Cell ID
- eQMI_LOC_POSITION_SRC_WIFI (3) -- Position source is Wi-Fi
- eQMI_LOC_POSITION_SRC_TERRESTRIAL (4) -- Position source is Terrestrial
- eQMI_LOC_POSITION_SRC_GNSS_TERRESTRIAL_HYBRID (5) -- Position source is GNSS Terrestrial Hybrid
- eQMI_LOC_POSITION_SRC_OTHER (6) -- Other sources
If altitude is specified and the altitude source is not specified, the engine
assumes that the altitude was obtained using the specified position source. \n
If both altitude and altitude source are specified, the engine assumes
that only latitude and longitude were obtained using the specified position
source.
*/
/* Optional */
/* Raw Circular Horizontal Uncertainty */
uint8_t rawHorUncCircular_valid; /**< Must be set to true if rawHorUncCircular is being passed */
float rawHorUncCircular;
/**< Horizontal position uncertainty (circular) without any optimization.\n
- Units: Meters */
/* Optional */
/* Raw Horizontal Confidence */
uint8_t rawHorConfidence_valid; /**< Must be set to true if rawHorConfidence is being passed */
uint8_t rawHorConfidence;
/**< Horizontal confidence associated with raw horizontal uncertainty,
as defined by ETSI TS 101 109 (3GPP \hyperref[TS 03.32]{TS 03.32}).
\begin{itemize1}
\item Units: Percent (1 to 99)
\item 0, 101 to 255 -- invalid value
\item If 100 is received, reinterpret to 99
\end{itemize1}
This field must be specified together with raw horizontal uncertainty.
If not specified when rawHorUncCircular is set, the default value is 50. */
}qmiLocInjectPositionReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Injects a position to the location engine. */
typedef struct {
/* Mandatory */
/* UTC Position Injection Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the UTC Position Injection request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocInjectPositionIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCLOCKENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_LOCK_NONE_V02 = 1, /**< Do not lock any position sessions */
eQMI_LOC_LOCK_MI_V02 = 2, /**< Lock mobile-initiated position sessions */
eQMI_LOC_LOCK_MT_V02 = 3, /**< Lock mobile-terminated position sessions */
eQMI_LOC_LOCK_ALL_V02 = 4, /**< Lock all position sessions */
QMILOCLOCKENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocLockEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Sets the location engine lock. */
typedef struct {
/* Mandatory */
/* Lock Type */
qmiLocLockEnumT_v02 lockType;
/**< Type of lock.
Valid values: \n
- eQMI_LOC_LOCK_NONE (1) -- Do not lock any position sessions
- eQMI_LOC_LOCK_MI (2) -- Lock mobile-initiated position sessions
- eQMI_LOC_LOCK_MT (3) -- Lock mobile-terminated position sessions
- eQMI_LOC_LOCK_ALL (4) -- Lock all position sessions
*/
}qmiLocSetEngineLockReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sets the location engine lock. */
typedef struct {
/* Mandatory */
/* Set Engine Lock Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set Engine Lock request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocSetEngineLockIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Gets the location engine lock. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocGetEngineLockReqMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Gets the location engine lock. */
typedef struct {
/* Mandatory */
/* Get Engine Lock Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Engine Lock request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Lock Type */
uint8_t lockType_valid; /**< Must be set to true if lockType is being passed */
qmiLocLockEnumT_v02 lockType;
/**< Type of lock.
Valid values: \n
- eQMI_LOC_LOCK_NONE (1) -- Do not lock any position sessions
- eQMI_LOC_LOCK_MI (2) -- Lock mobile-initiated position sessions
- eQMI_LOC_LOCK_MT (3) -- Lock mobile-terminated position sessions
- eQMI_LOC_LOCK_ALL (4) -- Lock all position sessions
*/
}qmiLocGetEngineLockIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Sets the SBAS configuration. */
typedef struct {
/* Mandatory */
/* SBAS Config */
uint8_t sbasConfig;
/**< Indicates whether SBAS configuration is enabled.
\begin{itemize1}
\item 0x01 (TRUE) -- SBAS configuration is enabled
\item 0x00 (FALSE) -- SBAS configuration is disabled
\vspace{-0.18in} \end{itemize1}*/
}qmiLocSetSbasConfigReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sets the SBAS configuration. */
typedef struct {
/* Mandatory */
/* Set SBAS Config Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set SBAS Configuration request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocSetSbasConfigIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Gets the SBAS configuration from the location engine. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocGetSbasConfigReqMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Gets the SBAS configuration from the location engine. */
typedef struct {
/* Mandatory */
/* Get SBAS Config Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get SBAS Configuration request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* SBAS Config */
uint8_t sbasConfig_valid; /**< Must be set to true if sbasConfig is being passed */
uint8_t sbasConfig;
/**< Indicates whether SBAS configuration is enabled.
\begin{itemize1}
\item 0x01 (TRUE) -- SBAS configuration is enabled
\item 0x00 (FALSE) -- SBAS configuration is disabled
\vspace{-0.18in} \end{itemize1}*/
}qmiLocGetSbasConfigIndMsgT_v02; /* Message */
/**
@}
*/
typedef uint32_t qmiLocNmeaSentenceMaskT_v02;
#define QMI_LOC_NMEA_MASK_GGA_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000001) /**< Enable GGA type */
#define QMI_LOC_NMEA_MASK_RMC_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000002) /**< Enable RMC type */
#define QMI_LOC_NMEA_MASK_GSV_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000004) /**< Enable GSV type */
#define QMI_LOC_NMEA_MASK_GSA_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000008) /**< Enable GSA type */
#define QMI_LOC_NMEA_MASK_VTG_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000010) /**< Enable VTG type */
#define QMI_LOC_NMEA_MASK_PQXFI_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000020) /**< Enable PQXFI type */
#define QMI_LOC_NMEA_MASK_PSTIS_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000040) /**< Enable PSTIS type */
#define QMI_LOC_NMEA_MASK_GLGSV_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000080) /**< Enable GLGSV type */
#define QMI_LOC_NMEA_MASK_GNGSA_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000100) /**< Enable GNGSA type */
#define QMI_LOC_NMEA_MASK_GNGNS_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000200) /**< Enable GNGNS type */
#define QMI_LOC_NMEA_MASK_GARMC_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000400) /**< Enable GARMC type */
#define QMI_LOC_NMEA_MASK_GAGSV_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000800) /**< Enable GAGSV type */
#define QMI_LOC_NMEA_MASK_GAGSA_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00001000) /**< Enable GAGSA type */
#define QMI_LOC_NMEA_MASK_GAVTG_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00002000) /**< Enable GAVTG type */
#define QMI_LOC_NMEA_MASK_GAGGA_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00004000) /**< Enable GAGGA type */
#define QMI_LOC_NMEA_MASK_PQGSA_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00008000) /**< Enable PQGSA type */
#define QMI_LOC_NMEA_MASK_PQGSV_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00010000) /**< Enable PQGSV type */
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Sets the NMEA types. */
typedef struct {
/* Mandatory */
/* NMEA Sentence Types */
qmiLocNmeaSentenceMaskT_v02 nmeaSentenceType;
/**< Bitmasks of NMEA types to enable.
Valid bitmasks: \n
- QMI_LOC_NMEA_MASK_GGA (0x00000001) -- Enable GGA type
- QMI_LOC_NMEA_MASK_RMC (0x00000002) -- Enable RMC type
- QMI_LOC_NMEA_MASK_GSV (0x00000004) -- Enable GSV type
- QMI_LOC_NMEA_MASK_GSA (0x00000008) -- Enable GSA type
- QMI_LOC_NMEA_MASK_VTG (0x00000010) -- Enable VTG type
- QMI_LOC_NMEA_MASK_PQXFI (0x00000020) -- Enable PQXFI type
- QMI_LOC_NMEA_MASK_PSTIS (0x00000040) -- Enable PSTIS type
- QMI_LOC_NMEA_MASK_GLGSV (0x00000080) -- Enable GLGSV type
- QMI_LOC_NMEA_MASK_GNGSA (0x00000100) -- Enable GNGSA type
- QMI_LOC_NMEA_MASK_GNGNS (0x00000200) -- Enable GNGNS type
- QMI_LOC_NMEA_MASK_GARMC (0x00000400) -- Enable GARMC type
- QMI_LOC_NMEA_MASK_GAGSV (0x00000800) -- Enable GAGSV type
- QMI_LOC_NMEA_MASK_GAGSA (0x00001000) -- Enable GAGSA type
- QMI_LOC_NMEA_MASK_GAVTG (0x00002000) -- Enable GAVTG type
- QMI_LOC_NMEA_MASK_GAGGA (0x00004000) -- Enable GAGGA type
- QMI_LOC_NMEA_MASK_PQGSA (0x00008000) -- Enable PQGSA type
- QMI_LOC_NMEA_MASK_PQGSV (0x00010000) -- Enable PQGSV type
*/
}qmiLocSetNmeaTypesReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sets the NMEA types. */
typedef struct {
/* Mandatory */
/* Set NMEA Types Status */
qmiLocStatusEnumT_v02 status;
/**< Status of Set NMEA Types request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocSetNmeaTypesIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Gets the NMEA types from the location engine. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocGetNmeaTypesReqMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Gets the NMEA types from the location engine. */
typedef struct {
/* Mandatory */
/* Get NMEA Types Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get NMEA Types request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* NMEA Sentence Types */
uint8_t nmeaSentenceType_valid; /**< Must be set to true if nmeaSentenceType is being passed */
qmiLocNmeaSentenceMaskT_v02 nmeaSentenceType;
/**< NMEA types to enable.
Valid bitmasks: \n
- QMI_LOC_NMEA_MASK_GGA (0x00000001) -- Enable GGA type
- QMI_LOC_NMEA_MASK_RMC (0x00000002) -- Enable RMC type
- QMI_LOC_NMEA_MASK_GSV (0x00000004) -- Enable GSV type
- QMI_LOC_NMEA_MASK_GSA (0x00000008) -- Enable GSA type
- QMI_LOC_NMEA_MASK_VTG (0x00000010) -- Enable VTG type
- QMI_LOC_NMEA_MASK_PQXFI (0x00000020) -- Enable PQXFI type
- QMI_LOC_NMEA_MASK_PSTIS (0x00000040) -- Enable PSTIS type
- QMI_LOC_NMEA_MASK_GLGSV (0x00000080) -- Enable GLGSV type
- QMI_LOC_NMEA_MASK_GNGSA (0x00000100) -- Enable GNGSA type
- QMI_LOC_NMEA_MASK_GNGNS (0x00000200) -- Enable GNGNS type
- QMI_LOC_NMEA_MASK_GARMC (0x00000400) -- Enable GARMC type
- QMI_LOC_NMEA_MASK_GAGSV (0x00000800) -- Enable GAGSV type
- QMI_LOC_NMEA_MASK_GAGSA (0x00001000) -- Enable GAGSA type
- QMI_LOC_NMEA_MASK_GAVTG (0x00002000) -- Enable GAVTG type
- QMI_LOC_NMEA_MASK_GAGGA (0x00004000) -- Enable GAGGA type
- QMI_LOC_NMEA_MASK_PQGSA (0x00008000) -- Enable PQGSA type
- QMI_LOC_NMEA_MASK_PQGSV (0x00010000) -- Enable PQGSV type
*/
}qmiLocGetNmeaTypesIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Enables/disables Low Power Mode (LPM) configuration. */
typedef struct {
/* Mandatory */
/* Enable Low Power Mode */
uint8_t lowPowerMode;
/**< Indicates whether to enable Low Power mode:\n
- 0x01 (TRUE) -- Enable LPM \n
- 0x00 (FALSE) -- Disable LPM */
}qmiLocSetLowPowerModeReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Enables/disables Low Power Mode (LPM) configuration. */
typedef struct {
/* Mandatory */
/* Set LPM Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set Low Power Mode request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocSetLowPowerModeIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Gets the LPM status from the location engine. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocGetLowPowerModeReqMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Gets the LPM status from the location engine. */
typedef struct {
/* Mandatory */
/* Get LPM Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get LPM request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Enable/Disable LPM */
uint8_t lowPowerMode_valid; /**< Must be set to true if lowPowerMode is being passed */
uint8_t lowPowerMode;
/**< Indicates whether to enable Low Power mode:\n
- 0x01 (TRUE) -- Enable LPM \n
- 0x00 (FALSE) -- Disable LPM */
}qmiLocGetLowPowerModeIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSERVERTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SERVER_TYPE_CDMA_PDE_V02 = 1, /**< Server type is CDMA PDE */
eQMI_LOC_SERVER_TYPE_CDMA_MPC_V02 = 2, /**< Server type is CDMA MPC */
eQMI_LOC_SERVER_TYPE_UMTS_SLP_V02 = 3, /**< Server type is UMTS SLP */
eQMI_LOC_SERVER_TYPE_CUSTOM_PDE_V02 = 4, /**< Server type is custom PDE */
QMILOCSERVERTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocServerTypeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Specifies the A-GPS server type and address. */
typedef struct {
/* Mandatory */
/* Server Type */
qmiLocServerTypeEnumT_v02 serverType;
/**< Type of server.
Valid values: \n
- eQMI_LOC_SERVER_TYPE_CDMA_PDE (1) -- Server type is CDMA PDE
- eQMI_LOC_SERVER_TYPE_CDMA_MPC (2) -- Server type is CDMA MPC
- eQMI_LOC_SERVER_TYPE_UMTS_SLP (3) -- Server type is UMTS SLP
- eQMI_LOC_SERVER_TYPE_CUSTOM_PDE (4) -- Server type is custom PDE
*/
/* Optional */
/* IPv4 Address */
uint8_t ipv4Addr_valid; /**< Must be set to true if ipv4Addr is being passed */
qmiLocIpV4AddrStructType_v02 ipv4Addr;
/**< \vspace{0.06in} \n IPv4 address and port. */
/* Optional */
/* IPv6 Address */
uint8_t ipv6Addr_valid; /**< Must be set to true if ipv6Addr is being passed */
qmiLocIpV6AddrStructType_v02 ipv6Addr;
/**< \vspace{0.06in} \n IPv6 address and port. */
/* Optional */
/* Uniform Resource Locator */
uint8_t urlAddr_valid; /**< Must be set to true if urlAddr is being passed */
char urlAddr[QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 + 1];
/**< URL address.
\begin{itemize1}
\item Type: NULL-terminated string
\item Maximum string length (including NULL terminator): 256
\vspace{-0.18in} \end{itemize1}
*/
}qmiLocSetServerReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Specifies the A-GPS server type and address. */
typedef struct {
/* Mandatory */
/* Set Server Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set Server request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocSetServerIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Gets the location server from the location engine. */
typedef struct {
/* Mandatory */
/* Server Type */
qmiLocServerTypeEnumT_v02 serverType;
/**< Type of server.
Valid values: \n
- eQMI_LOC_SERVER_TYPE_CDMA_PDE (1) -- Server type is CDMA PDE
- eQMI_LOC_SERVER_TYPE_CDMA_MPC (2) -- Server type is CDMA MPC
- eQMI_LOC_SERVER_TYPE_UMTS_SLP (3) -- Server type is UMTS SLP
- eQMI_LOC_SERVER_TYPE_CUSTOM_PDE (4) -- Server type is custom PDE
*/
/* Optional */
/* Server Address Type */
uint8_t serverAddrTypeMask_valid; /**< Must be set to true if serverAddrTypeMask is being passed */
qmiLocServerAddrTypeMaskT_v02 serverAddrTypeMask;
/**< Type of address the client wants. If unspecified, the
indication will contain all the types of addresses
it has for the specified server type.
Valid bitmasks: \n
- 0x01 -- IPv4 \n
- 0x02 -- IPv6 \n
- 0x04 -- URL
*/
}qmiLocGetServerReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Gets the location server from the location engine. */
typedef struct {
/* Mandatory */
/* Get Server Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Server request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Mandatory */
/* Server Type */
qmiLocServerTypeEnumT_v02 serverType;
/**< Type of server.
Valid values: \n
- eQMI_LOC_SERVER_TYPE_CDMA_PDE (1) -- Server type is CDMA PDE
- eQMI_LOC_SERVER_TYPE_CDMA_MPC (2) -- Server type is CDMA MPC
- eQMI_LOC_SERVER_TYPE_UMTS_SLP (3) -- Server type is UMTS SLP
- eQMI_LOC_SERVER_TYPE_CUSTOM_PDE (4) -- Server type is custom PDE
*/
/* Optional */
/* IPv4 Address */
uint8_t ipv4Addr_valid; /**< Must be set to true if ipv4Addr is being passed */
qmiLocIpV4AddrStructType_v02 ipv4Addr;
/**< \vspace{0.06in} \n IPv4 address and port. */
/* Optional */
/* IPv6 Address */
uint8_t ipv6Addr_valid; /**< Must be set to true if ipv6Addr is being passed */
qmiLocIpV6AddrStructType_v02 ipv6Addr;
/**< \vspace{0.06in} \n IPv6 address and port. */
/* Optional */
/* Uniform Resource Locator */
uint8_t urlAddr_valid; /**< Must be set to true if urlAddr is being passed */
char urlAddr[QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 + 1];
/**< URL.
\begin{itemize1}
\item Type: NULL-terminated string
\item Maximum string length (including NULL terminator): 256
\vspace{-0.18in} \end{itemize1}
*/
}qmiLocGetServerIndMsgT_v02; /* Message */
/**
@}
*/
typedef uint64_t qmiLocDeleteGnssDataMaskT_v02;
#define QMI_LOC_MASK_DELETE_GPS_SVDIR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000001ull) /**< Mask to delete GPS SVDIR */
#define QMI_LOC_MASK_DELETE_GPS_SVSTEER_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000002ull) /**< Mask to delete GPS SVSTEER */
#define QMI_LOC_MASK_DELETE_GPS_TIME_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000004ull) /**< Mask to delete GPS time */
#define QMI_LOC_MASK_DELETE_GPS_ALM_CORR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000008ull) /**< Mask to delete almanac correlation */
#define QMI_LOC_MASK_DELETE_GLO_SVDIR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000010ull) /**< Mask to delete GLONASS SVDIR */
#define QMI_LOC_MASK_DELETE_GLO_SVSTEER_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000020ull) /**< Mask to delete GLONASS SVSTEER */
#define QMI_LOC_MASK_DELETE_GLO_TIME_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000040ull) /**< Mask to delete GLONASS time */
#define QMI_LOC_MASK_DELETE_GLO_ALM_CORR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000080ull) /**< Mask to delete GLONASS almanac correlation */
#define QMI_LOC_MASK_DELETE_SBAS_SVDIR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000100ull) /**< Mask to delete SBAS SVDIR */
#define QMI_LOC_MASK_DELETE_SBAS_SVSTEER_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000200ull) /**< Mask to delete SBAS SVSTEER */
#define QMI_LOC_MASK_DELETE_POSITION_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000400ull) /**< Mask to delete position estimate */
#define QMI_LOC_MASK_DELETE_TIME_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000800ull) /**< Mask to delete time estimate */
#define QMI_LOC_MASK_DELETE_IONO_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00001000ull) /**< Mask to delete IONO */
#define QMI_LOC_MASK_DELETE_UTC_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00002000ull) /**< Mask to delete UTC estimate */
#define QMI_LOC_MASK_DELETE_HEALTH_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00004000ull) /**< Mask to delete SV health record */
#define QMI_LOC_MASK_DELETE_SADATA_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00008000ull) /**< Mask to delete SADATA */
#define QMI_LOC_MASK_DELETE_RTI_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00010000ull) /**< Mask to delete RTI */
#define QMI_LOC_MASK_DELETE_SV_NO_EXIST_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00020000ull) /**< Mask to delete SV_NO_EXIST */
#define QMI_LOC_MASK_DELETE_FREQ_BIAS_EST_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00040000ull) /**< Mask to delete frequency bias estimate */
#define QMI_LOC_MASK_DELETE_BDS_SVDIR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00080000ull) /**< Mask to delete BDS SVDIR */
#define QMI_LOC_MASK_DELETE_BDS_SVSTEER_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00100000ull) /**< Mask to delete BDS SVSTEER */
#define QMI_LOC_MASK_DELETE_BDS_TIME_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00200000ull) /**< Mask to delete BDS time */
#define QMI_LOC_MASK_DELETE_BDS_ALM_CORR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00400000ull) /**< Mask to delete BDS almanac correlation */
#define QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_GPS_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00800000ull) /**< Mask to delete GNSS SV blacklist GPS */
#define QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_GLO_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x01000000ull) /**< Mask to delete GNSS SV blacklist GLO */
#define QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_BDS_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x02000000ull) /**< Mask to delete GNSS SV blacklist BDS */
#define QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_GAL_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x04000000ull) /**< Mask to delete GNSS SV blacklist GAL */
#define QMI_LOC_MASK_DELETE_GAL_SVDIR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x08000000ull) /**< Mask to delete GAL SVDIR */
#define QMI_LOC_MASK_DELETE_GAL_SVSTEER_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x10000000ull) /**< Mask to delete GAL SVSTEER */
#define QMI_LOC_MASK_DELETE_GAL_TIME_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x20000000ull) /**< Mask to delete GAL time */
#define QMI_LOC_MASK_DELETE_GAL_ALM_CORR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x40000000ull) /**< Mask to delete GAL almanac correlation */
typedef uint32_t qmiLocDeleteCelldbDataMaskT_v02;
#define QMI_LOC_MASK_DELETE_CELLDB_POS_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000001) /**< Mask to delete cell database position */
#define QMI_LOC_MASK_DELETE_CELLDB_LATEST_GPS_POS_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000002) /**< Mask to delete cell database latest GPS position */
#define QMI_LOC_MASK_DELETE_CELLDB_OTA_POS_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000004) /**< Mask to delete cell database OTA position */
#define QMI_LOC_MASK_DELETE_CELLDB_EXT_REF_POS_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000008) /**< Mask to delete cell database external reference position */
#define QMI_LOC_MASK_DELETE_CELLDB_TIMETAG_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000010) /**< Mask to delete cell database time tag */
#define QMI_LOC_MASK_DELETE_CELLDB_CELLID_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000020) /**< Mask to delete cell database cell ID */
#define QMI_LOC_MASK_DELETE_CELLDB_CACHED_CELLID_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000040) /**< Mask to delete cell database cached cell ID */
#define QMI_LOC_MASK_DELETE_CELLDB_LAST_SRV_CELL_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000080) /**< Mask to delete cell database last service cell */
#define QMI_LOC_MASK_DELETE_CELLDB_CUR_SRV_CELL_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000100) /**< Mask to delete cell database current service cell */
#define QMI_LOC_MASK_DELETE_CELLDB_NEIGHBOR_INFO_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000200) /**< Mask to delete cell database neighbor information */
typedef uint32_t qmiLocDeleteClockInfoMaskT_v02;
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_TIME_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000001) /**< Mask to delete time estimate from clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_FREQ_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000002) /**< Mask to delete frequency estimate from clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_WEEK_NUMBER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000004) /**< Mask to delete week number from clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_RTC_TIME_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000008) /**< Mask to delete RTC time from clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_TIME_TRANSFER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000010) /**< Mask to delete time transfer from clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_GPSTIME_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000020) /**< Mask to delete GPS time estimate from clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_GLOTIME_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000040) /**< Mask to delete GLONASS time estimate from clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_GLODAY_NUMBER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000080) /**< Mask to delete GLONASS day number from clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_GLO4YEAR_NUMBER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000100) /**< Mask to delete GLONASS four year number from clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_GLO_RF_GRP_DELAY_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000200) /**< Mask to delete GLONASS RF GRP delay from clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_DISABLE_TT_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000400) /**< Mask to delete disable TT from clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_GG_LEAPSEC_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000800) /**< Mask to delete a BDS time estimate from the clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_GG_GGTB_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00001000) /**< Mask to delete a BDS time estimate from the clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_BDSTIME_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00002000) /**< Mask to delete a BDS time estimate from the clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_GB_GBTB_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00004000) /**< Mask to delete Glonass-to-BDS time bias-related information from the
clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_BG_BGTB_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00008000) /**< Mask to delete BDS-to-GLONASS time bias-related information from the
clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_BDSWEEK_NUMBER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00010000) /**< Mask to delete the BDS week number from the clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_BDS_RF_GRP_DELAY_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00020000) /**< Mask to delete the BDS RF GRP delay from the clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTIME_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00040000) /**< Mask to delete a GAL time estimate from the clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTOGPS_TB_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00080000) /**< Mask to delete GAL-to-GPS time bias-related information from the
clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTOGLO_TB_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00100000) /**< Mask to delete GAL-to-GLO time bias-related information from the
clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTOBDS_TB_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00200000) /**< Mask to delete GAL-to-BDS time bias-related information from the
clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_GALWEEK_NUMBER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00800000) /**< Mask to delete the GAL week number from the clock information */
#define QMI_LOC_MASK_DELETE_CLOCK_INFO_GAL_RF_GRP_DELAY_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x01000000) /**< Mask to delete the GAL RF GRP delay from the clock information */
typedef uint8_t qmiLocDeleteSvInfoMaskT_v02;
#define QMI_LOC_MASK_DELETE_EPHEMERIS_V02 ((qmiLocDeleteSvInfoMaskT_v02)0x01) /**< Delete ephemeris for the satellite */
#define QMI_LOC_MASK_DELETE_ALMANAC_V02 ((qmiLocDeleteSvInfoMaskT_v02)0x02) /**< Delete almanac for the satellite */
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint16_t gnssSvId;
/**< SV ID of the satellite whose data is to be deleted.
\begin{itemize1}
\item Range: \begin{itemize1}
\item For GPS: 1 to 32
\item For SBAS: 33 to 64
\item For GLONASS: 65 to 96
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
qmiLocSvSystemEnumT_v02 system;
/**< Indicates to which constellation this SV belongs.
Valid values: \n
- eQMI_LOC_SV_SYSTEM_GPS (1) -- GPS satellite
- eQMI_LOC_SV_SYSTEM_GALILEO (2) -- GALILEO satellite
- eQMI_LOC_SV_SYSTEM_SBAS (3) -- SBAS satellite
- eQMI_LOC_SV_SYSTEM_COMPASS (4) -- COMPASS satellite (Deprecated)
- eQMI_LOC_SV_SYSTEM_GLONASS (5) -- GLONASS satellite
- eQMI_LOC_SV_SYSTEM_BDS (6) -- BDS satellite
- eQMI_LOC_SV_SYSTEM_QZSS (7) -- QZSS satellite
*/
qmiLocDeleteSvInfoMaskT_v02 deleteSvInfoMask;
/**< Indicates whether the ephemeris or almanac for a satellite
is to be deleted. \n
Valid values: \n
- QMI_LOC_MASK_DELETE_EPHEMERIS (0x01) -- Delete ephemeris for the satellite
- QMI_LOC_MASK_DELETE_ALMANAC (0x02) -- Delete almanac for the satellite
*/
}qmiLocDeleteSvInfoStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint16_t gnssSvId;
/**< SV ID of the satellite whose data is to be deleted. \n
Range for BDS: 201 to 237 */
qmiLocDeleteSvInfoMaskT_v02 deleteSvInfoMask;
/**< Indicates if the ephemeris or almanac for a satellite
is to be deleted. \n
Valid values: \n
- QMI_LOC_MASK_DELETE_EPHEMERIS (0x01) -- Delete ephemeris for the satellite
- QMI_LOC_MASK_DELETE_ALMANAC (0x02) -- Delete almanac for the satellite
*/
}qmiLocDeleteBDSSvInfoStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint16_t gnssSvId;
/**< SV ID of the satellite whose data is to be deleted. \n
Range for GAL: 301 to 336 */
qmiLocDeleteSvInfoMaskT_v02 deleteSvInfoMask;
/**< Indicates if the ephemeris or almanac for a satellite
is to be deleted. \n
Valid values: \n
- QMI_LOC_MASK_DELETE_EPHEMERIS (0x01) -- Delete ephemeris for the satellite
- QMI_LOC_MASK_DELETE_ALMANAC (0x02) -- Delete almanac for the satellite
*/
}qmiLocDeleteGALSvInfoStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; This command is used to delete the location engine
assistance data. */
typedef struct {
/* Mandatory */
/* Delete All */
uint8_t deleteAllFlag;
/**< Indicates whether all assistance data is to be deleted.
Valid values: \begin{itemize1}
\item 0x01 (TRUE) -- All assistance data is to be deleted; if
this flag is set, all the other information
contained in the optional fields for this
message are ignored
\item 0x00 (FALSE) -- The optional fields in the message are to be
used to determine which data is to be deleted
\vspace{-0.18in} \end{itemize1} */
/* Optional */
/* Delete SV Info */
uint8_t deleteSvInfoList_valid; /**< Must be set to true if deleteSvInfoList is being passed */
uint32_t deleteSvInfoList_len; /**< Must be set to # of elements in deleteSvInfoList */
qmiLocDeleteSvInfoStructT_v02 deleteSvInfoList[QMI_LOC_DELETE_MAX_SV_INFO_LENGTH_V02];
/**< \vspace{0.06in} \n List of satellites for which the assistance data is to be deleted.
*/
/* Optional */
/* Delete GNSS Data */
uint8_t deleteGnssDataMask_valid; /**< Must be set to true if deleteGnssDataMask is being passed */
qmiLocDeleteGnssDataMaskT_v02 deleteGnssDataMask;
/**< Mask for the GNSS data that is to be deleted.
Valid values: \n
- QMI_LOC_MASK_DELETE_GPS_SVDIR (0x00000001) -- Mask to delete GPS SVDIR
- QMI_LOC_MASK_DELETE_GPS_SVSTEER (0x00000002) -- Mask to delete GPS SVSTEER
- QMI_LOC_MASK_DELETE_GPS_TIME (0x00000004) -- Mask to delete GPS time
- QMI_LOC_MASK_DELETE_GPS_ALM_CORR (0x00000008) -- Mask to delete almanac correlation
- QMI_LOC_MASK_DELETE_GLO_SVDIR (0x00000010) -- Mask to delete GLONASS SVDIR
- QMI_LOC_MASK_DELETE_GLO_SVSTEER (0x00000020) -- Mask to delete GLONASS SVSTEER
- QMI_LOC_MASK_DELETE_GLO_TIME (0x00000040) -- Mask to delete GLONASS time
- QMI_LOC_MASK_DELETE_GLO_ALM_CORR (0x00000080) -- Mask to delete GLONASS almanac correlation
- QMI_LOC_MASK_DELETE_SBAS_SVDIR (0x00000100) -- Mask to delete SBAS SVDIR
- QMI_LOC_MASK_DELETE_SBAS_SVSTEER (0x00000200) -- Mask to delete SBAS SVSTEER
- QMI_LOC_MASK_DELETE_POSITION (0x00000400) -- Mask to delete position estimate
- QMI_LOC_MASK_DELETE_TIME (0x00000800) -- Mask to delete time estimate
- QMI_LOC_MASK_DELETE_IONO (0x00001000) -- Mask to delete IONO
- QMI_LOC_MASK_DELETE_UTC (0x00002000) -- Mask to delete UTC estimate
- QMI_LOC_MASK_DELETE_HEALTH (0x00004000) -- Mask to delete SV health record
- QMI_LOC_MASK_DELETE_SADATA (0x00008000) -- Mask to delete SADATA
- QMI_LOC_MASK_DELETE_RTI (0x00010000) -- Mask to delete RTI
- QMI_LOC_MASK_DELETE_SV_NO_EXIST (0x00020000) -- Mask to delete SV_NO_EXIST
- QMI_LOC_MASK_DELETE_FREQ_BIAS_EST (0x00040000) -- Mask to delete frequency bias estimate
- QMI_LOC_MASK_DELETE_BDS_SVDIR (0x00080000) -- Mask to delete BDS SVDIR
- QMI_LOC_MASK_DELETE_BDS_SVSTEER (0x00100000) -- Mask to delete BDS SVSTEER
- QMI_LOC_MASK_DELETE_BDS_TIME (0x00200000) -- Mask to delete BDS time
- QMI_LOC_MASK_DELETE_BDS_ALM_CORR (0x00400000) -- Mask to delete BDS almanac correlation
- QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_GPS (0x00800000) -- Mask to delete GNSS SV blacklist GPS
- QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_GLO (0x01000000) -- Mask to delete GNSS SV blacklist GLO
- QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_BDS (0x02000000) -- Mask to delete GNSS SV blacklist BDS
- QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_GAL (0x04000000) -- Mask to delete GNSS SV blacklist GAL
- QMI_LOC_MASK_DELETE_GAL_SVDIR (0x08000000) -- Mask to delete GAL SVDIR
- QMI_LOC_MASK_DELETE_GAL_SVSTEER (0x10000000) -- Mask to delete GAL SVSTEER
- QMI_LOC_MASK_DELETE_GAL_TIME (0x20000000) -- Mask to delete GAL time
- QMI_LOC_MASK_DELETE_GAL_ALM_CORR (0x40000000) -- Mask to delete GAL almanac correlation
*/
/* Optional */
/* Delete Cell Database */
uint8_t deleteCellDbDataMask_valid; /**< Must be set to true if deleteCellDbDataMask is being passed */
qmiLocDeleteCelldbDataMaskT_v02 deleteCellDbDataMask;
/**< Mask for the cell database assistance data that is to be deleted.
Valid values: \begin{itemize1}
\item 0x00000001 -- DELETE_CELLDB_ POS
\item 0x00000002 -- DELETE_CELLDB_ LATEST_GPS_POS
\item 0x00000004 -- DELETE_CELLDB_ OTA_POS
\item 0x00000008 -- DELETE_CELLDB_ EXT_REF_POS
\item 0x00000010 -- DELETE_CELLDB_ TIMETAG
\item 0x00000020 -- DELETE_CELLDB_ CELLID
\item 0x00000040 -- DELETE_CELLDB_ CACHED_CELLID
\item 0x00000080 -- DELETE_CELLDB_ LAST_SRV_CELL
\item 0x00000100 -- DELETE_CELLDB_ CUR_SRV_CELL
\item 0x00000200 -- DELETE_CELLDB_ NEIGHBOR_INFO
\vspace{-0.18in} \end{itemize1}
*/
/* Optional */
/* Delete Clock Info */
uint8_t deleteClockInfoMask_valid; /**< Must be set to true if deleteClockInfoMask is being passed */
qmiLocDeleteClockInfoMaskT_v02 deleteClockInfoMask;
/**< Mask for the clock information assistance data that is to be deleted.
Valid bitmasks: \n
- QMI_LOC_MASK_DELETE_CLOCK_INFO_TIME_EST (0x00000001) -- Mask to delete time estimate from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_FREQ_EST (0x00000002) -- Mask to delete frequency estimate from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_WEEK_NUMBER (0x00000004) -- Mask to delete week number from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_RTC_TIME (0x00000008) -- Mask to delete RTC time from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_TIME_TRANSFER (0x00000010) -- Mask to delete time transfer from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GPSTIME_EST (0x00000020) -- Mask to delete GPS time estimate from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GLOTIME_EST (0x00000040) -- Mask to delete GLONASS time estimate from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GLODAY_NUMBER (0x00000080) -- Mask to delete GLONASS day number from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GLO4YEAR_NUMBER (0x00000100) -- Mask to delete GLONASS four year number from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GLO_RF_GRP_DELAY (0x00000200) -- Mask to delete GLONASS RF GRP delay from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_DISABLE_TT (0x00000400) -- Mask to delete disable TT from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GG_LEAPSEC (0x00000800) -- Mask to delete a BDS time estimate from the clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GG_GGTB (0x00001000) -- Mask to delete a BDS time estimate from the clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_BDSTIME_EST (0x00002000) -- Mask to delete a BDS time estimate from the clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GB_GBTB (0x00004000) -- Mask to delete Glonass-to-BDS time bias-related information from the
clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_BG_BGTB (0x00008000) -- Mask to delete BDS-to-GLONASS time bias-related information from the
clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_BDSWEEK_NUMBER (0x00010000) -- Mask to delete the BDS week number from the clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_BDS_RF_GRP_DELAY (0x00020000) -- Mask to delete the BDS RF GRP delay from the clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTIME_EST (0x00040000) -- Mask to delete a GAL time estimate from the clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTOGPS_TB (0x00080000) -- Mask to delete GAL-to-GPS time bias-related information from the
clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTOGLO_TB (0x00100000) -- Mask to delete GAL-to-GLO time bias-related information from the
clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTOBDS_TB (0x00200000) -- Mask to delete GAL-to-BDS time bias-related information from the
clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GALWEEK_NUMBER (0x00800000) -- Mask to delete the GAL week number from the clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GAL_RF_GRP_DELAY (0x01000000) -- Mask to delete the GAL RF GRP delay from the clock information
*/
/* Optional */
/* Delete BDS SV Info */
uint8_t deleteBdsSvInfoList_valid; /**< Must be set to true if deleteBdsSvInfoList is being passed */
uint32_t deleteBdsSvInfoList_len; /**< Must be set to # of elements in deleteBdsSvInfoList */
qmiLocDeleteBDSSvInfoStructT_v02 deleteBdsSvInfoList[QMI_LOC_DELETE_MAX_BDS_SV_INFO_LENGTH_V02];
/**< \vspace{0.06in} \n List of BDS satellites for which the assistance data is to be deleted.
*/
/* Optional */
/* Delete GAL SV Info */
uint8_t deleteGalSvInfoList_valid; /**< Must be set to true if deleteGalSvInfoList is being passed */
uint32_t deleteGalSvInfoList_len; /**< Must be set to # of elements in deleteGalSvInfoList */
qmiLocDeleteGALSvInfoStructT_v02 deleteGalSvInfoList[QMI_LOC_DELETE_MAX_GAL_SV_INFO_LENGTH_V02];
/**< \vspace{0.06in} \n List of GAL satellites for which the assistance data is to be deleted.
*/
}qmiLocDeleteAssistDataReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; This command is used to delete the location engine
assistance data. */
typedef struct {
/* Mandatory */
/* Delete Assist Data Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Delete Assist Data request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocDeleteAssistDataIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Enables/disables XTRA-T session control. */
typedef struct {
/* Mandatory */
/* Enable XTRA-T */
uint8_t xtraTSessionControl;
/**< Indicates whether to enable XTRA-T:\n
- 0x01 (TRUE) -- Enable XTRA-T \n
- 0x00 (FALSE) -- Disable XTRA-T */
}qmiLocSetXtraTSessionControlReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Enables/disables XTRA-T session control. */
typedef struct {
/* Mandatory */
/* Set XTRA-T Session Control Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set XTRA-T Session Control request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocSetXtraTSessionControlIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Gets the XTRA-T session control value from the location
engine. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocGetXtraTSessionControlReqMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Gets the XTRA-T session control value from the location
engine. */
typedef struct {
/* Mandatory */
/* Get XTRA-T Session Control Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get XTRA-T Session Control request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Enable/Disable XTRA-T */
uint8_t xtraTSessionControl_valid; /**< Must be set to true if xtraTSessionControl is being passed */
uint8_t xtraTSessionControl;
/**< Indicates whether to enable XTRA-T:\n
- 0x01 (TRUE) -- Enable XTRA-T \n
- 0x00 (FALSE) -- Disable XTRA-T */
}qmiLocGetXtraTSessionControlIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint32_t wifiPositionTime;
/**< Common counter (typically, the number of milliseconds since bootup).
This field is only to be provided if the modem and host processors are
synchronized. */
}qmiLocWifiFixTimeStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCWIFIFIXERRORCODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_WIFI_FIX_ERROR_SUCCESS_V02 = 0, /**< Wi-Fi fix is successful. */
eQMI_LOC_WIFI_FIX_ERROR_WIFI_NOT_AVAILABLE_V02 = 1, /**< Wi-Fi fix failed because Wi-Fi is not available on the device. */
eQMI_LOC_WIFI_FIX_ERROR_NO_AP_FOUND_V02 = 2, /**< Wi-Fi fix failed because no access points were found. */
eQMI_LOC_WIFI_FIX_ERROR_UNAUTHORIZED_V02 = 3, /**< Wi-Fi fix failed because the server denied access due to bad authorization
code. */
eQMI_LOC_WIFI_FIX_ERROR_SERVER_UNAVAILABLE_V02 = 4, /**< Wi-Fi fix failed because the Wi-Fi server was unavailable. */
eQMI_LOC_WIFI_FIX_ERROR_LOCATION_CANNOT_BE_DETERMINED_V02 = 5, /**< Wi-Fi fix failed even though APs were found and the server could be reached.
This may be because the APs found are not in the database. */
eQMI_LOC_WIFI_FIX_ERROR_UNKNOWN_V02 = 6, /**< Wi-Fi fix failed, but the cause could not be determined. */
QMILOCWIFIFIXERRORCODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocWifiFixErrorCodeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
double lat;
/**< Wi-Fi position latitude. \n
- Type: Floating point \n
- Units: Degrees */
double lon;
/**< Wi-Fi position longitude. \n
- Type: Floating point \n
- Units: Degrees */
uint16_t hepe;
/**< Wi-Fi position HEPE.\n
- Units: Meters */
uint8_t numApsUsed;
/**< Number of Access Points (AP) used to generate a fix. */
qmiLocWifiFixErrorCodeEnumT_v02 fixErrorCode;
/**< Wi-Fi position error code; set to 0 if the fix succeeds. This position
is only used by a module if the value is 0. If there was a failure,
the error code provided by the Wi-Fi positioning system can be provided
here.
Valid values: \n
- eQMI_LOC_WIFI_FIX_ERROR_SUCCESS (0) -- Wi-Fi fix is successful.
- eQMI_LOC_WIFI_FIX_ERROR_WIFI_NOT_AVAILABLE (1) -- Wi-Fi fix failed because Wi-Fi is not available on the device.
- eQMI_LOC_WIFI_FIX_ERROR_NO_AP_FOUND (2) -- Wi-Fi fix failed because no access points were found.
- eQMI_LOC_WIFI_FIX_ERROR_UNAUTHORIZED (3) -- Wi-Fi fix failed because the server denied access due to bad authorization
code.
- eQMI_LOC_WIFI_FIX_ERROR_SERVER_UNAVAILABLE (4) -- Wi-Fi fix failed because the Wi-Fi server was unavailable.
- eQMI_LOC_WIFI_FIX_ERROR_LOCATION_CANNOT_BE_DETERMINED (5) -- Wi-Fi fix failed even though APs were found and the server could be reached.
This may be because the APs found are not in the database.
- eQMI_LOC_WIFI_FIX_ERROR_UNKNOWN (6) -- Wi-Fi fix failed, but the cause could not be determined.
*/
}qmiLocWifiFixPosStructT_v02; /* Type */
/**
@}
*/
typedef uint8_t qmiLocWifiApQualifierMaskT_v02;
#define QMI_LOC_WIFI_AP_QUALIFIER_BEING_USED_V02 ((qmiLocWifiApQualifierMaskT_v02)0x01) /**< Access point is being used by the WPS. */
#define QMI_LOC_WIFI_AP_QUALIFIER_HIDDEN_SSID_V02 ((qmiLocWifiApQualifierMaskT_v02)0x02) /**< AP does not broadcast SSID. */
#define QMI_LOC_WIFI_AP_QUALIFIER_PRIVATE_V02 ((qmiLocWifiApQualifierMaskT_v02)0x04) /**< AP has encryption turned on. */
#define QMI_LOC_WIFI_AP_QUALIFIER_INFRASTRUCTURE_MODE_V02 ((qmiLocWifiApQualifierMaskT_v02)0x08) /**< AP is in infrastructure mode and not in ad-hoc/unknown mode. */
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint8_t macAddr[QMI_LOC_WIFI_MAC_ADDR_LENGTH_V02];
/**< Associated MAC address of the AP. \n
- Type: Array of unsigned integers \n
- Address length: 6
*/
int32_t rssi;
/**< Receive signal strength indicator.\n
- Units: dBm (offset with +100 dB) */
uint16_t channel;
/**< Wi-Fi channel on which a beacon was received. */
qmiLocWifiApQualifierMaskT_v02 apQualifier;
/**< A bitmask of Boolean qualifiers for APs.
All unused bits in this mask must be set to 0.
Valid values: \n
- 0x01 -- BEING_USED \n
- 0x02 -- HIDDEN_SSID \n
- 0x04 -- PRIVATE \n
- 0x08 -- INFRASTRUCTURE_MODE
*/
}qmiLocWifiApInfoStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
char ssid[QMI_LOC_MAX_WIFI_AP_SSID_STR_LENGTH_V02 + 1];
/**< NULL-terminated SSID string of the Wi-Fi AP. Its maximum length according to the ASCII standard is 32 octets. */
}qmiLocWifiApSsidStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Injects the Wi-Fi position. */
typedef struct {
/* Optional */
/* Wi-Fi Fix Time */
uint8_t wifiFixTime_valid; /**< Must be set to true if wifiFixTime is being passed */
qmiLocWifiFixTimeStructT_v02 wifiFixTime;
/**< \vspace{0.06in} \n Time of Wi-Fi position fix. */
/* Optional */
/* Wi-Fi Position */
uint8_t wifiFixPosition_valid; /**< Must be set to true if wifiFixPosition is being passed */
qmiLocWifiFixPosStructT_v02 wifiFixPosition;
/**< \vspace{0.06in} \n Wi-Fi position fix. */
/* Optional */
/* Wi-Fi Access Point Information */
uint8_t apInfo_valid; /**< Must be set to true if apInfo is being passed */
uint32_t apInfo_len; /**< Must be set to # of elements in apInfo */
qmiLocWifiApInfoStructT_v02 apInfo[QMI_LOC_WIFI_MAX_REPORTED_APS_PER_MSG_V02];
/**< \vspace{0.06in} \n AP scan list.
SSID of the Wi-Fi AP.
The ordering of the Wi-Fi AP SSID list should matchthe Wi-Fi AP MAC address list if both are provided,
that is, the first element of the Wi-Fi AP SSID list must be the SSID of the AP whose MAC
address is in the first element in the Wi-Fi AP Info MAC Address, and so on. */
/* Optional */
/* Horizontal Reliability */
uint8_t horizontalReliability_valid; /**< Must be set to true if horizontalReliability is being passed */
qmiLocReliabilityEnumT_v02 horizontalReliability;
/**< Specifies the reliability of the horizontal position.
Valid values: \n
- eQMI_LOC_RELIABILITY_NOT_SET (0) -- Location reliability is not set
- eQMI_LOC_RELIABILITY_VERY_LOW (1) -- Location reliability is very low; use it at your own risk
- eQMI_LOC_RELIABILITY_LOW (2) -- Location reliability is low; little or no cross-checking is possible
- eQMI_LOC_RELIABILITY_MEDIUM (3) -- Location reliability is medium; limited cross-check passed
- eQMI_LOC_RELIABILITY_HIGH (4) -- Location reliability is high; strong cross-check passed
*/
/* Optional */
/* Raw HEPE */
uint8_t rawHepe_valid; /**< Must be set to true if rawHepe is being passed */
uint16_t rawHepe;
/**< Wi-Fi position raw HEPE, which has no optimization.\n
- Units: Meters */
/* Optional */
/* Wi-Fi AP SSID String */
uint8_t wifiApSsidInfo_valid; /**< Must be set to true if wifiApSsidInfo is being passed */
uint32_t wifiApSsidInfo_len; /**< Must be set to # of elements in wifiApSsidInfo */
qmiLocWifiApSsidStructT_v02 wifiApSsidInfo[QMI_LOC_WIFI_MAX_REPORTED_APS_PER_MSG_V02];
/**< \vspace{0.04in} \n
The ordering of the Wi-Fi AP SSID list should match the Wi-Fi AP MAC address list if both are provided,
that is, the first element of the Wi-Fi AP SSID list must be the SSID of the AP whose MAC
address is in the first element in the Wi-Fi AP Info MAC address, and so on.*/
}qmiLocInjectWifiPositionReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Injects the Wi-Fi position. */
typedef struct {
/* Mandatory */
/* Inject Wi-Fi Position Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Inject Wi-Fi Position request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocInjectWifiPositionIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCWIFISTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_WIFI_STATUS_AVAILABLE_V02 = 1, /**< Wi-Fi is available */
eQMI_LOC_WIFI_STATUS_UNAVAILABLE_V02 = 2, /**< Wi-Fi is not available */
QMILOCWIFISTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocWifiStatusEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Notifies the location engine of the Wi-Fi status. */
typedef struct {
/* Mandatory */
/* Availablility of Wi-Fi */
qmiLocWifiStatusEnumT_v02 wifiStatus;
/**< Wi-Fi status information.
Valid values: \n
- eQMI_LOC_WIFI_STATUS_AVAILABLE (1) -- Wi-Fi is available
- eQMI_LOC_WIFI_STATUS_UNAVAILABLE (2) -- Wi-Fi is not available
*/
}qmiLocNotifyWifiStatusReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Notifies the location engine of the Wi-Fi status. */
typedef struct {
/* Mandatory */
/* Status of Notify Wi-Fi Status Request */
qmiLocStatusEnumT_v02 status;
/**< Status of the Notify Wi-Fi Status request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocNotifyWifiStatusIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Gets the mask of the events for which a client has
registered. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocGetRegisteredEventsReqMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Gets the mask of the events for which a client has
registered. */
typedef struct {
/* Mandatory */
/* Get Registered Events Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Registered Events request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Event Registration Mask */
uint8_t eventRegMask_valid; /**< Must be set to true if eventRegMask is being passed */
qmiLocEventRegMaskT_v02 eventRegMask;
/**< Event registration mask.
Valid bitmasks: \n
- QMI_LOC_EVENT_MASK_POSITION_REPORT (0x00000001) -- The control point must enable this mask to receive position report
event indications.
- QMI_LOC_EVENT_MASK_GNSS_SV_INFO (0x00000002) -- The control point must enable this mask to receive satellite report
event indications. These reports are sent at a 1 Hz rate.
- QMI_LOC_EVENT_MASK_NMEA (0x00000004) -- The control point must enable this mask to receive NMEA reports for
position and satellites in view. The report is at a 1 Hz rate.
- QMI_LOC_EVENT_MASK_NI_NOTIFY_VERIFY_REQ (0x00000008) -- The control point must enable this mask to receive NI Notify/Verify request
event indications.
- QMI_LOC_EVENT_MASK_INJECT_TIME_REQ (0x00000010) -- The control point must enable this mask to receive time injection request
event indications.
- QMI_LOC_EVENT_MASK_INJECT_PREDICTED_ORBITS_REQ (0x00000020) -- The control point must enable this mask to receive predicted orbits request
event indications.
- QMI_LOC_EVENT_MASK_INJECT_POSITION_REQ (0x00000040) -- The control point must enable this mask to receive position injection request
event indications.
- QMI_LOC_EVENT_MASK_ENGINE_STATE (0x00000080) -- The control point must enable this mask to receive engine state report
event indications.
- QMI_LOC_EVENT_MASK_FIX_SESSION_STATE (0x00000100) -- The control point must enable this mask to receive fix session status report
event indications.
- QMI_LOC_EVENT_MASK_WIFI_REQ (0x00000200) -- The control point must enable this mask to receive Wi-Fi position request
event indications.
- QMI_LOC_EVENT_MASK_SENSOR_STREAMING_READY_STATUS (0x00000400) -- The control point must enable this mask to receive notifications from the
location engine indicating its readiness to accept data from the
sensors (accelerometer, gyroscope, etc.).
- QMI_LOC_EVENT_MASK_TIME_SYNC_REQ (0x00000800) -- The control point must enable this mask to receive time sync requests
from the GPS engine. Time sync enables the GPS engine to synchronize
its clock with the sensor processor's clock.
- QMI_LOC_EVENT_MASK_SET_SPI_STREAMING_REPORT (0x00001000) -- The control point must enable this mask to receive Stationary Position
Indicator (SPI) streaming report indications.
- QMI_LOC_EVENT_MASK_LOCATION_SERVER_CONNECTION_REQ (0x00002000) -- The control point must enable this mask to receive location server
requests. These requests are generated when the service wishes to
establish a connection with a location server.
- QMI_LOC_EVENT_MASK_NI_GEOFENCE_NOTIFICATION (0x00004000) -- The control point must enable this mask to receive notifications
related to network-initiated Geofences. These events notify the client
when a network-initiated Geofence is added, deleted, or edited.
- QMI_LOC_EVENT_MASK_GEOFENCE_GEN_ALERT (0x00008000) -- The control point must enable this mask to receive Geofence alerts.
These alerts are generated to inform the client of the changes that may
affect a Geofence, e.g., if GPS is turned off or if the network is
unavailable.
- QMI_LOC_EVENT_MASK_GEOFENCE_BREACH_NOTIFICATION (0x00010000) -- The control point must enable this mask to receive notifications when
a Geofence is breached. These events are generated when a UE enters
or leaves the perimeter of a Geofence. This breach report is for a single
Geofence .
- QMI_LOC_EVENT_MASK_PEDOMETER_CONTROL (0x00020000) -- The control point must enable this mask to register for pedometer
control requests from the location engine. The location engine sends
this event to control the injection of pedometer reports.
- QMI_LOC_EVENT_MASK_MOTION_DATA_CONTROL (0x00040000) -- The control point must enable this mask to register for motion data
control requests from the location engine. The location engine sends
this event to control the injection of motion data.
- QMI_LOC_EVENT_MASK_BATCH_FULL_NOTIFICATION (0x00080000) -- The control point must enable this mask to receive notification when
a batch is full. The location engine sends this event to notify of Batch Full
for ongoing batching session.
- QMI_LOC_EVENT_MASK_LIVE_BATCHED_POSITION_REPORT (0x00100000) -- The control point must enable this mask to receive position report
indications along with an ongoing batching session. The location engine sends
this event to notify the batched position report while a batching session
is ongoing.
- QMI_LOC_EVENT_MASK_INJECT_WIFI_AP_DATA_REQ (0x00200000) -- The control point must enable this mask to receive Wi-Fi AP data inject request
event indications.
- QMI_LOC_EVENT_MASK_GEOFENCE_BATCH_BREACH_NOTIFICATION (0x00400000) -- The control point must enable this mask to receive notifications when
a Geofence is breached. These events are generated when a UE enters
or leaves the perimeter of a Geofence. This breach notification is for
multiple Geofences. Breaches from multiple Geofences are all batched and
sent in the same notification .
- QMI_LOC_EVENT_MASK_VEHICLE_DATA_READY_STATUS (0x00800000) -- The control point must enable this mask to receive notifications from the
location engine indicating its readiness to accept vehicle data (vehicle
accelerometer, vehicle angular rate, vehicle odometry, etc.).
- QMI_LOC_EVENT_MASK_GNSS_MEASUREMENT_REPORT (0x01000000) -- The control point must enable this mask to receive system clock and satellite
measurement report events (system clock, SV time, Doppler, etc.). Reports are
generated only for the GNSS satellite constellations that are enabled using
QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG.
- QMI_LOC_EVENT_MASK_GNSS_SV_POLYNOMIAL_REPORT (0x02000000) -- The control point must enable this mask to receive satellite position
reports as polynomials. Reports are generated only for the GNSS satellite
constellations that are enabled using QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG.
- QMI_LOC_EVENT_MASK_GEOFENCE_PROXIMITY_NOTIFICATION (0x04000000) -- The control point must enable this mask to receive notifications when a Geofence proximity is entered
and exited. The proximity of a Geofence may be due to different contexts. These contexts are identified
using the context ID in this indication. The context of a Geofence may contain Wi-Fi area ID lists, IBeacon lists,
Cell-ID list, and so forth.
- QMI_LOC_EVENT_MASK_GDT_UPLOAD_BEGIN_REQ (0x08000000) -- The control point must enable this mask to receive Generic Data Transport (GDT)
session begin request event indications.
- QMI_LOC_EVENT_MASK_GDT_UPLOAD_END_REQ (0x10000000) -- The control point must enable this mask to receive GDT
session end request event indications.
- QMI_LOC_EVENT_MASK_GEOFENCE_BATCH_DWELL_NOTIFICATION (0x20000000) -- The control point must enable this mask to receive notifications when
a Geofence is dwelled. These events are generated when a UE enters
or leaves the perimeter of a Geofence and dwells inside or outside for a specified time.
This dwell notification is for multiple Geofences. Dwells from multiple Geofences are all batched and
sent in the same notification.
- QMI_LOC_EVENT_MASK_GET_TIME_ZONE_REQ (0x40000000) -- The control point must enable this mask to receive requests for time zone information from
the service. These events are generated when there is a need for time zone information in the
service.
- QMI_LOC_EVENT_MASK_BATCHING_STATUS (0x80000000) -- The control point must enable this mask to receive asynchronous events related
to batching.
*/
}qmiLocGetRegisteredEventsIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCOPERATIONMODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_OPER_MODE_DEFAULT_V02 = 1, /**< Use the default engine mode */
eQMI_LOC_OPER_MODE_MSB_V02 = 2, /**< Use the MS-based mode */
eQMI_LOC_OPER_MODE_MSA_V02 = 3, /**< Use the MS-assisted mode */
eQMI_LOC_OPER_MODE_STANDALONE_V02 = 4, /**< Use Standalone mode */
eQMI_LOC_OPER_MODE_CELL_ID_V02 = 5, /**< Use cell ID; this mode is only valid for GSM/UMTS networks */
eQMI_LOC_OPER_MODE_WWAN_V02 = 6, /**< Use WWAN measurements to calculate the position; if this mode is
set, AFLT will be used for 1X networks and OTDOA will be used
for LTE networks */
QMILOCOPERATIONMODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocOperationModeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Tells the engine to use the specified operation mode while
making the position fixes. */
typedef struct {
/* Mandatory */
/* Operation Mode */
qmiLocOperationModeEnumT_v02 operationMode;
/**< Preferred operation mode.
Valid values: \n
- eQMI_LOC_OPER_MODE_DEFAULT (1) -- Use the default engine mode
- eQMI_LOC_OPER_MODE_MSB (2) -- Use the MS-based mode
- eQMI_LOC_OPER_MODE_MSA (3) -- Use the MS-assisted mode
- eQMI_LOC_OPER_MODE_STANDALONE (4) -- Use Standalone mode
- eQMI_LOC_OPER_MODE_CELL_ID (5) -- Use cell ID; this mode is only valid for GSM/UMTS networks
- eQMI_LOC_OPER_MODE_WWAN (6) -- Use WWAN measurements to calculate the position; if this mode is
set, AFLT will be used for 1X networks and OTDOA will be used
for LTE networks
*/
/* Optional */
/* Minimum Interval Between Position Reports */
uint8_t minInterval_valid; /**< Must be set to true if minInterval is being passed */
uint32_t minInterval;
/**< Minimum time interval, specified by the control point, that must elapse between
position reports. \n
- Units: milliseconds \n
- Default: 1000 ms
*/
}qmiLocSetOperationModeReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Tells the engine to use the specified operation mode while
making the position fixes. */
typedef struct {
/* Mandatory */
/* Set Operation Mode Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set Operation Mode request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocSetOperationModeIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Gets the current operation mode from the engine. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocGetOperationModeReqMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Gets the current operation mode from the engine. */
typedef struct {
/* Mandatory */
/* Get Operation Mode Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Operation Mode request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Operation Mode */
uint8_t operationMode_valid; /**< Must be set to true if operationMode is being passed */
qmiLocOperationModeEnumT_v02 operationMode;
/**< Current operation mode.
Valid values: \n
- eQMI_LOC_OPER_MODE_DEFAULT (1) -- Use the default engine mode
- eQMI_LOC_OPER_MODE_MSB (2) -- Use the MS-based mode
- eQMI_LOC_OPER_MODE_MSA (3) -- Use the MS-assisted mode
- eQMI_LOC_OPER_MODE_STANDALONE (4) -- Use Standalone mode
- eQMI_LOC_OPER_MODE_CELL_ID (5) -- Use cell ID; this mode is only valid for GSM/UMTS networks
- eQMI_LOC_OPER_MODE_WWAN (6) -- Use WWAN measurements to calculate the position; if this mode is
set, AFLT will be used for 1X networks and OTDOA will be used
for LTE networks
*/
}qmiLocGetOperationModeIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to set the SPI status, which
indicates whether the device is stationary. */
typedef struct {
/* Mandatory */
/* Stationary Status */
uint8_t stationary;
/**< Indicates whether the device is stationary:
\begin{itemize1}
\item 0x00 (FALSE) -- Device is not stationary
\item 0x01 (TRUE) -- Device is stationary
\vspace{-0.18in} \end{itemize1}*/
/* Optional */
/* Confidence */
uint8_t confidenceStationary_valid; /**< Must be set to true if confidenceStationary is being passed */
uint8_t confidenceStationary;
/**< Confidence in the Stationary state expressed as a percentage.\n
- Range: 0 to 100 */
}qmiLocSetSpiStatusReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to set the SPI status, which
indicates whether the device is stationary. */
typedef struct {
/* Mandatory */
/* Status of SPI Status Request */
qmiLocStatusEnumT_v02 status;
/**< Status of the SPI Status request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocSetSpiStatusIndMsgT_v02; /* Message */
/**
@}
*/
typedef uint8_t qmiLocSensorDataFlagMaskT_v02;
#define QMI_LOC_SENSOR_DATA_FLAG_SIGN_REVERSAL_V02 ((qmiLocSensorDataFlagMaskT_v02)0x01) /**< Bitmask to specify that a sign reversal is required while interpreting
the sensor data; only applies to the accelerometer samples */
#define QMI_LOC_SENSOR_DATA_FLAG_SENSOR_TIME_IS_MODEM_TIME_V02 ((qmiLocSensorDataFlagMaskT_v02)0x02) /**< Bitmask to specify that the sensor time stamp is the same as the modem
time stamp */
#define QMI_LOC_SENSOR_DATA_FLAG_CALIBRATED_DATA_V02 ((qmiLocSensorDataFlagMaskT_v02)0x04) /**< Bitmask to specify that the injected sensor data is calibrated */
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSENSORDATATIMESOURCEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED_V02 = 0, /**< Sensor time source is unspecified */
eQMI_LOC_SENSOR_TIME_SOURCE_COMMON_V02 = 1, /**< Time source is common between the sensors and
the location engine */
QMILOCSENSORDATATIMESOURCEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocSensorDataTimeSourceEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint16_t timeOffset;
/**< Sample time offset. This time offset must be
relative to the timestamp of the first sensor data sample.\n
- Units: Milliseconds */
float xAxis;
/**< Sensor x-axis sample. \n
- Units Accelerometer: Meters/seconds^2 \n
- Units Gyroscope: Radians/second \n
- Units Magnetometer: microTesla */
float yAxis;
/**< Sensor y-axis sample. \n
- Units Accelerometer: Meters/seconds^2 \n
- Units Gyroscope: Radians/second \n
- Units Magnetometer: microTesla */
float zAxis;
/**< Sensor z-axis sample. \n
- Units Accelerometer: Meters/seconds^2 ) \n
- Units Gyroscope: Radians/second \n
- Units Magnetometer: microTesla */
}qmiLoc3AxisSensorSampleStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint32_t timeOfFirstSample;
/**< Denotes a full 32-bit timestamp of the first (oldest) sample in this
message.The timestamp is in the time reference scale that is
used by the sensor time source.\n
- Units: Milliseconds */
qmiLocSensorDataFlagMaskT_v02 flags;
/**< Flags to indicate any deviation from the default measurement
assumptions. All unused bits in this field must be set to 0.
Valid bitmasks:
- QMI_LOC_SENSOR_DATA_FLAG_SIGN_REVERSAL (0x01) -- Bitmask to specify that a sign reversal is required while interpreting
the sensor data; only applies to the accelerometer samples
- QMI_LOC_SENSOR_DATA_FLAG_SENSOR_TIME_IS_MODEM_TIME (0x02) -- Bitmask to specify that the sensor time stamp is the same as the modem
time stamp
- QMI_LOC_SENSOR_DATA_FLAG_CALIBRATED_DATA (0x04) -- Bitmask to specify that the injected sensor data is calibrated */
uint32_t sensorData_len; /**< Must be set to # of elements in sensorData */
qmiLoc3AxisSensorSampleStructT_v02 sensorData[QMI_LOC_SENSOR_DATA_MAX_SAMPLES_V02];
/**< Variable length array to specify sensor samples. \n
- Maximum length of the array: 50 */
}qmiLoc3AxisSensorSampleListStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint16_t timeOffset;
/**< Sample time offset. This time offset must be
relative to the timestamp of the first sensor sample.\n
- Units: Milliseconds */
float temperature;
/**< Sensor temperature. \n
- Type: Floating point \n
- Units: Degrees Celsius \n
- Range: -50 to +100.00 */
}qmiLocSensorTemperatureSampleStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocSensorDataTimeSourceEnumT_v02 timeSource;
/**< Denotes the time source of the sensor data. Location service will use
this field to identify the time reference used in the
sensor data timestamps.
Valid values: \n
- eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED (0) -- Sensor time source is unspecified
- eQMI_LOC_SENSOR_TIME_SOURCE_COMMON (1) -- Time source is common between the sensors and
the location engine
*/
uint32_t timeOfFirstSample;
/**< Denotes a full 32-bit timestamp of the first (oldest) sample in this
message. The timestamp is in the time reference scale that is
used by the sensor time source.\n
- Units: Milliseconds */
uint32_t temperatureData_len; /**< Must be set to # of elements in temperatureData */
qmiLocSensorTemperatureSampleStructT_v02 temperatureData[QMI_LOC_SENSOR_DATA_MAX_SAMPLES_V02];
/**< Variable length array to specify sensor temperature samples. \n
- Maximum length of the array: 50 */
}qmiLocSensorTemperatureSampleListStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to inject sensor data into the
GNSS location engine. */
typedef struct {
/* Optional */
/* Opaque Identifier */
uint8_t opaqueIdentifier_valid; /**< Must be set to true if opaqueIdentifier is being passed */
uint32_t opaqueIdentifier;
/**< An opaque identifier that is sent in by the client that will be echoed
in the indication so the client can relate the indication to the
request. */
/* Optional */
/* 3-Axis Accelerometer Data */
uint8_t threeAxisAccelData_valid; /**< Must be set to true if threeAxisAccelData is being passed */
qmiLoc3AxisSensorSampleListStructT_v02 threeAxisAccelData;
/**< \vspace{0.06in} \n Accelerometer sensor samples. */
/* Optional */
/* 3-Axis Gyroscope Data */
uint8_t threeAxisGyroData_valid; /**< Must be set to true if threeAxisGyroData is being passed */
qmiLoc3AxisSensorSampleListStructT_v02 threeAxisGyroData;
/**< \vspace{0.06in} \n Gyroscope sensor samples. */
/* Optional */
/* 3-Axis Accelerometer Data Time Source */
uint8_t threeAxisAccelDataTimeSource_valid; /**< Must be set to true if threeAxisAccelDataTimeSource is being passed */
qmiLocSensorDataTimeSourceEnumT_v02 threeAxisAccelDataTimeSource;
/**< Time source for the 3-axis accelerometer data. The location service uses
this field to identify the time reference used in the accelerometer data
timestamps. If not specified, the location service assumes that the
time source for the accelereometer data is unknown. \n
Values: \n
- eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED (0) -- Sensor time source is unspecified
- eQMI_LOC_SENSOR_TIME_SOURCE_COMMON (1) -- Time source is common between the sensors and
the location engine
*/
/* Optional */
/* 3-Axis Gyroscope Data Time Source */
uint8_t threeAxisGyroDataTimeSource_valid; /**< Must be set to true if threeAxisGyroDataTimeSource is being passed */
qmiLocSensorDataTimeSourceEnumT_v02 threeAxisGyroDataTimeSource;
/**< Time source for the 3-axis gyroscope data. The location service uses
this field to identify the time reference used in the gyroscope data
timestamps. If not specified, the location service assumes that the
time source for the gyroscope data is unknown. \n
Values: \n
- eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED (0) -- Sensor time source is unspecified
- eQMI_LOC_SENSOR_TIME_SOURCE_COMMON (1) -- Time source is common between the sensors and
the location engine
*/
/* Optional */
/* Accelerometer Temperature Data */
uint8_t accelTemperatureData_valid; /**< Must be set to true if accelTemperatureData is being passed */
qmiLocSensorTemperatureSampleListStructT_v02 accelTemperatureData;
/**< \vspace{0.06in} \nAccelerometer temperature samples. This data is optional and does not
have to be included in the message along with accelerometer data. */
/* Optional */
/* Gyroscope Temperature Data */
uint8_t gyroTemperatureData_valid; /**< Must be set to true if gyroTemperatureData is being passed */
qmiLocSensorTemperatureSampleListStructT_v02 gyroTemperatureData;
/**< \vspace{0.06in} \n Gyroscope temperature samples. This data is optional and does not
have to be included in the message along with gyroscope data. */
/* Optional */
/* 3-Axis Magnetometer Data */
uint8_t threeAxisMagData_valid; /**< Must be set to true if threeAxisMagData is being passed */
qmiLoc3AxisSensorSampleListStructT_v02 threeAxisMagData;
/**< \vspace{0.06in} \n Magnetometer sensor samples. */
/* Optional */
/* 3-Axis Magnetometer Data Time Source */
uint8_t threeAxisMagDataTimeSource_valid; /**< Must be set to true if threeAxisMagDataTimeSource is being passed */
qmiLocSensorDataTimeSourceEnumT_v02 threeAxisMagDataTimeSource;
/**< Time source for the 3-axis magnetometer data. The location service uses
this field to identify the time reference used in the magnetometer data
timestamps. If not specified, the location service assumes that the
time source for the magnetometer data is unknown. \n
Values: \n
- eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED (0) -- Sensor time source is unspecified
- eQMI_LOC_SENSOR_TIME_SOURCE_COMMON (1) -- Time source is common between the sensors and
the location engine
*/
}qmiLocInjectSensorDataReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to inject sensor data into the
GNSS location engine. */
typedef struct {
/* Mandatory */
/* Inject Sensor Data Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Inject Sensor Data request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Opaque Identifier */
uint8_t opaqueIdentifier_valid; /**< Must be set to true if opaqueIdentifier is being passed */
uint32_t opaqueIdentifier;
/**< Opaque identifier that was sent in by the client echoed
so the client can relate the indication to the request. */
/* Optional */
/* Accelerometer Samples Accepted */
uint8_t threeAxisAccelSamplesAccepted_valid; /**< Must be set to true if threeAxisAccelSamplesAccepted is being passed */
uint8_t threeAxisAccelSamplesAccepted;
/**< Lets the client know how many 3-axis accelerometer samples
were accepted. This field is present only if the accelerometer
samples were sent in the request. */
/* Optional */
/* Gyroscope Samples Accepted */
uint8_t threeAxisGyroSamplesAccepted_valid; /**< Must be set to true if threeAxisGyroSamplesAccepted is being passed */
uint8_t threeAxisGyroSamplesAccepted;
/**< Lets the client know how many 3-axis gyroscope samples were
accepted. This field is present only if the gyroscope
samples were sent in the request. */
/* Optional */
/* Accelerometer Temperature Samples Accepted */
uint8_t accelTemperatureSamplesAccepted_valid; /**< Must be set to true if accelTemperatureSamplesAccepted is being passed */
uint8_t accelTemperatureSamplesAccepted;
/**< Lets the client know how many accelerometer temperature
samples were accepted. This field is present only if the accelerometer
temperature samples were sent in the request. */
/* Optional */
/* Gyroscope Temperature Samples Accepted */
uint8_t gyroTemperatureSamplesAccepted_valid; /**< Must be set to true if gyroTemperatureSamplesAccepted is being passed */
uint8_t gyroTemperatureSamplesAccepted;
/**< Lets the client know how many gyroscope temperature samples
were accepted. This field is present only if the gyroscope
temperature samples were sent in the request. */
/* Optional */
/* Magnetometer Samples Accepted */
uint8_t threeAxisMagSamplesAccepted_valid; /**< Must be set to true if threeAxisMagSamplesAccepted is being passed */
uint8_t threeAxisMagSamplesAccepted;
/**< Lets the client know how many 3-axis magnetometer samples
were accepted. This field is present only if the magnetometer
samples were sent in the request. */
}qmiLocInjectSensorDataIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to inject time sync data. */
typedef struct {
/* Mandatory */
/* Reference Time Sync Counter */
uint32_t refCounter;
/**< Must be set to the value that was sent to the control point when the
GNSS location engine requested time sync injection. */
/* Mandatory */
/* Sensor Receive Time */
uint32_t sensorProcRxTime;
/**< Value of the sensor time when the control point received the
Time Sync Inject request from the GNSS location engine.
Must be monotonically increasing, jitter @latexonly $\leq$ @endlatexonly 1
millisecond, never stopping until the process is rebooted.\n
- Units: Milliseconds */
/* Mandatory */
/* Sensor Transmit Time */
uint32_t sensorProcTxTime;
/**< Value of the sensor time when the control point injects this message
for use by the GNSS location engine.
Must be monotonically increasing, jitter @latexonly $\leq$ @endlatexonly 1
millisecond, never stopping until the process is rebooted.\n
- Units: Milliseconds */
}qmiLocInjectTimeSyncDataReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to inject time sync data. */
typedef struct {
/* Mandatory */
/* Inject Time Sync Data Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Inject Time Sync Data request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocInjectTimeSyncDataIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCCRADLEMOUNTSTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_CRADLE_STATE_NOT_MOUNTED_V02 = 0, /**< Device is mounted on the cradle */
eQMI_LOC_CRADLE_STATE_MOUNTED_V02 = 1, /**< Device is not mounted on the cradle */
eQMI_LOC_CRADLE_STATE_UNKNOWN_V02 = 2, /**< Unknown cradle mount state */
QMILOCCRADLEMOUNTSTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocCradleMountStateEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to get the current
cradle mount configuration. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocGetCradleMountConfigReqMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to get the current
cradle mount configuration. */
typedef struct {
/* Mandatory */
/* Get Cradle Mount Config Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Cradle Mount Configuration request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Cradle Mount State */
uint8_t cradleMountState_valid; /**< Must be set to true if cradleMountState is being passed */
qmiLocCradleMountStateEnumT_v02 cradleMountState;
/**< Cradle Mount state set by the control point.
Valid values: \n
- eQMI_LOC_CRADLE_STATE_NOT_MOUNTED (0) -- Device is mounted on the cradle
- eQMI_LOC_CRADLE_STATE_MOUNTED (1) -- Device is not mounted on the cradle
- eQMI_LOC_CRADLE_STATE_UNKNOWN (2) -- Unknown cradle mount state
*/
/* Optional */
/* Cradle Mount Confidence */
uint8_t confidenceCradleMountState_valid; /**< Must be set to true if confidenceCradleMountState is being passed */
uint8_t confidenceCradleMountState;
/**< Confidence of the Cradle Mount state expressed as a percentage.\n
- Range: 0 to 100 */
}qmiLocGetCradleMountConfigIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to set the current
cradle mount configuration. */
typedef struct {
/* Mandatory */
/* Cradle Mount State */
qmiLocCradleMountStateEnumT_v02 cradleMountState;
/**< Cradle Mount state set by the control point.
Valid values: \n
- eQMI_LOC_CRADLE_STATE_NOT_MOUNTED (0) -- Device is mounted on the cradle
- eQMI_LOC_CRADLE_STATE_MOUNTED (1) -- Device is not mounted on the cradle
- eQMI_LOC_CRADLE_STATE_UNKNOWN (2) -- Unknown cradle mount state
*/
/* Optional */
/* Cradle Mount Confidence */
uint8_t confidenceCradleMountState_valid; /**< Must be set to true if confidenceCradleMountState is being passed */
uint8_t confidenceCradleMountState;
/**< Confidence in the Cradle Mount state expressed as a percentage.\n
- Range: 0 to 100 */
}qmiLocSetCradleMountConfigReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to set the current
cradle mount configuration. */
typedef struct {
/* Mandatory */
/* Set Cradle Mount Config Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set Cradle Mount Configuration request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocSetCradleMountConfigIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCEXTERNALPOWERCONFIGENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_EXTERNAL_POWER_NOT_CONNECTED_V02 = 0, /**< Device is not connected to an external power source */
eQMI_LOC_EXTERNAL_POWER_CONNECTED_V02 = 1, /**< Device is connected to an external power source */
eQMI_LOC_EXTERNAL_POWER_UNKNOWN_V02 = 2, /**< Unknown external power state */
QMILOCEXTERNALPOWERCONFIGENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocExternalPowerConfigEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to get the current
external power configuration. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocGetExternalPowerConfigReqMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to get the current
external power configuration. */
typedef struct {
/* Mandatory */
/* Get Ext Power Config Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get External Power Configuration request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* External Power State */
uint8_t externalPowerState_valid; /**< Must be set to true if externalPowerState is being passed */
qmiLocExternalPowerConfigEnumT_v02 externalPowerState;
/**< Power state; injected by the control point.
Valid values: \n
- eQMI_LOC_EXTERNAL_POWER_NOT_CONNECTED (0) -- Device is not connected to an external power source
- eQMI_LOC_EXTERNAL_POWER_CONNECTED (1) -- Device is connected to an external power source
- eQMI_LOC_EXTERNAL_POWER_UNKNOWN (2) -- Unknown external power state
*/
}qmiLocGetExternalPowerConfigIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to set the current
external power configuration. */
typedef struct {
/* Mandatory */
/* External Power State */
qmiLocExternalPowerConfigEnumT_v02 externalPowerState;
/**< Power state; injected by the control point.
Valid values: \n
- eQMI_LOC_EXTERNAL_POWER_NOT_CONNECTED (0) -- Device is not connected to an external power source
- eQMI_LOC_EXTERNAL_POWER_CONNECTED (1) -- Device is connected to an external power source
- eQMI_LOC_EXTERNAL_POWER_UNKNOWN (2) -- Unknown external power state
*/
}qmiLocSetExternalPowerConfigReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to set the current
external power configuration. */
typedef struct {
/* Mandatory */
/* Set Ext Power Config Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set External Power Configuration request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocSetExternalPowerConfigIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSERVERPDNENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV4_V02 = 0x01, /**< IPv4 PDN type */
eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV6_V02 = 0x02, /**< IPv6 PDN type */
eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV4V6_V02 = 0x03, /**< IPv4v6 PDN type */
eQMI_LOC_APN_PROFILE_PDN_TYPE_PPP_V02 = 0x04, /**< PPP PDN type */
QMILOCSERVERPDNENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocServerPDNEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocServerPDNEnumT_v02 pdnType;
/**< PDN type of the APN profile.
Valid values: \n
- eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV4 (0x01) -- IPv4 PDN type
- eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV6 (0x02) -- IPv6 PDN type
- eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV4V6 (0x03) -- IPv4v6 PDN type
- eQMI_LOC_APN_PROFILE_PDN_TYPE_PPP (0x04) -- PPP PDN type
*/
char apnName[QMI_LOC_MAX_APN_NAME_LENGTH_V02 + 1];
/**< APN name.
\begin{itemize1}
\item Type: NULL-terminated string
\item Maximum string length (including NULL terminator): 101
\vspace{-0.18in} \end{itemize1}
*/
}qmiLocApnProfilesStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSERVERREQSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SERVER_REQ_STATUS_SUCCESS_V02 = 1, /**< Location server request was successful */
eQMI_LOC_SERVER_REQ_STATUS_FAILURE_V02 = 2, /**< Location server request failed */
QMILOCSERVERREQSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocServerReqStatusEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to inform the service about the
status of the location server connection request that the
service may have sent via the
QMI_LOC_EVENT_LOCATION_SERVER_CONNECTION_REQ_IND event. */
typedef struct {
/* Mandatory */
/* Connection Handle */
uint32_t connHandle;
/**< Connection handle that the service specified in the
Location Server Connection request event. */
/* Mandatory */
/* Request Type */
qmiLocServerRequestEnumT_v02 requestType;
/**< Type of connection request service that was specified in the
Location Server Connection Request event.
Valid values: \n
- eQMI_LOC_SERVER_REQUEST_OPEN (1) -- Open a connection to the location server
- eQMI_LOC_SERVER_REQUEST_CLOSE (2) -- Close a connection to the location server
*/
/* Mandatory */
/* Connection Status */
qmiLocServerReqStatusEnumT_v02 statusType;
/**< Status of the Connection request.
Valid values: \n
- eQMI_LOC_SERVER_REQ_STATUS_SUCCESS (1) -- Location server request was successful
- eQMI_LOC_SERVER_REQ_STATUS_FAILURE (2) -- Location server request failed
*/
/* Optional */
/* APN Profile */
uint8_t apnProfile_valid; /**< Must be set to true if apnProfile is being passed */
qmiLocApnProfilesStructT_v02 apnProfile;
/**< \vspace{0.06in} \n Access Point Name (APN) profile information is present only when
requestType is OPEN and statusType is SUCCESS. */
}qmiLocInformLocationServerConnStatusReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to inform the service about the
status of the location server connection request that the
service may have sent via the
QMI_LOC_EVENT_LOCATION_SERVER_CONNECTION_REQ_IND event. */
typedef struct {
/* Mandatory */
/* Status of Inform Loc Server Conn Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Inform Location Server Connection Status request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocInformLocationServerConnStatusIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCVXVERSIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_VX_VERSION_V1_ONLY_V02 = 1, /**< V1 VX version */
eQMI_LOC_VX_VERSION_V2_ONLY_V02 = 2, /**< V2 VX version */
QMILOCVXVERSIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocVxVersionEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSUPLVERSIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SUPL_VERSION_1_0_V02 = 1, /**< SUPL version 1.0 */
eQMI_LOC_SUPL_VERSION_2_0_V02 = 2, /**< SUPL version 2.0 */
QMILOCSUPLVERSIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocSuplVersionEnumT_v02;
/**
@}
*/
typedef uint32_t qmiLocLppConfigMaskT_v02;
#define QMI_LOC_LPP_CONFIG_ENABLE_USER_PLANE_V02 ((qmiLocLppConfigMaskT_v02)0x00000001) /**< Enable user plane configuration for LTE Positioning Profile (LPP) */
#define QMI_LOC_LPP_CONFIG_ENABLE_CONTROL_PLANE_V02 ((qmiLocLppConfigMaskT_v02)0x00000002) /**< Enable control plane configuration for LPP */
typedef uint32_t qmiLocAssistedGlonassProtocolMaskT_v02;
#define QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRC_CP_V02 ((qmiLocAssistedGlonassProtocolMaskT_v02)0x00000001) /**< Assisted GLONASS is supported over RRC in the control plane */
#define QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRLP_UP_V02 ((qmiLocAssistedGlonassProtocolMaskT_v02)0x00000002) /**< Assisted GLONASS is supported over RRLP in the user plane */
#define QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_UP_V02 ((qmiLocAssistedGlonassProtocolMaskT_v02)0x00000004) /**< Assisted GLONASS is supported over LPP in the user plane;
QMI_LOC_LPP_CONFIG_ENABLE_USER_PLANE must be set
in the LPP configuration for this to take effect */
#define QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_CP_V02 ((qmiLocAssistedGlonassProtocolMaskT_v02)0x00000008) /**< Assisted GLONASS is supported over LPP in the control plane;
QMI_LOC_LPP_CONFIG_ENABLE_CONTROL_PLANE must be set
in the LPP configuration for this to take effect */
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSUPLHASHALGOENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SUPL_HASH_ALGO_SHA1_V02 = 0, /**< SHA-1 hash algorithm for SUPL version 2.0 or later */
eQMI_LOC_SUPL_HASH_ALGO_SHA256_V02 = 1, /**< SHA-256 hash algorithm for SUPL version 2.0 or later */
QMILOCSUPLHASHALGOENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocSuplHashAlgoEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSUPLTLSVERSIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SUPL_TLS_VERSION_1_0_V02 = 0, /**< SUPL TLS version 1.0 */
eQMI_LOC_SUPL_TLS_VERSION_1_1_V02 = 1, /**< SUPL TLS version 1.1 */
QMILOCSUPLTLSVERSIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocSuplTlsVersionEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCEMERGENCYPROTOCOLENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_CP_V02 = 0, /**< Use Control Plane Protocol during an emergency while on WCDMA */
eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_UP_V02 = 1, /**< Use SUPL 2.0 emergency services during an emergency while on WCDMA */
QMILOCEMERGENCYPROTOCOLENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocEmergencyProtocolEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to configure parameters stored
in the nonvolatile memory. */
typedef struct {
/* Optional */
/* SUPL Security */
uint8_t suplSecurity_valid; /**< Must be set to true if suplSecurity is being passed */
uint8_t suplSecurity;
/**< Indicates whether SUPL security is enabled.
\begin{itemize1}
\item 0x01 (TRUE) -- SUPL security is enabled
\item 0x00 (FALSE) -- SUPL security is disabled
\vspace{-0.18in} \end{itemize1} */
/* Optional */
/* VX Version */
uint8_t vxVersion_valid; /**< Must be set to true if vxVersion is being passed */
qmiLocVxVersionEnumT_v02 vxVersion;
/**< VX version.
Valid values: \n
- eQMI_LOC_VX_VERSION_V1_ONLY (1) -- V1 VX version
- eQMI_LOC_VX_VERSION_V2_ONLY (2) -- V2 VX version
*/
/* Optional */
/* SUPL Version */
uint8_t suplVersion_valid; /**< Must be set to true if suplVersion is being passed */
qmiLocSuplVersionEnumT_v02 suplVersion;
/**< SUPL version.
Valid values: \n
- eQMI_LOC_SUPL_VERSION_1_0 (1) -- SUPL version 1.0
- eQMI_LOC_SUPL_VERSION_2_0 (2) -- SUPL version 2.0
*/
/* Optional */
/* LPP Configuration */
uint8_t lppConfig_valid; /**< Must be set to true if lppConfig is being passed */
qmiLocLppConfigMaskT_v02 lppConfig;
/**< LTE Positioning Profile (LPP) configuration.
Valid bitmasks: \begin{itemize1}
\item 0x00000001 -- LPP_CONFIG_ ENABLE_USER_PLANE
\item 0x00000002 -- LPP_CONFIG_ ENABLE_CONTROL_PLANE
\vspace{-0.18in} \end{itemize1}
*/
/* Optional */
/* Assisted GLONASS Protocol Mask */
uint8_t assistedGlonassProtocolMask_valid; /**< Must be set to true if assistedGlonassProtocolMask is being passed */
qmiLocAssistedGlonassProtocolMaskT_v02 assistedGlonassProtocolMask;
/**< Configures the protocols that the location service supports
for assisted GLONASS.
Valid bitmasks: \n
- QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRC_CP (0x00000001) -- Assisted GLONASS is supported over RRC in the control plane
- QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRLP_UP (0x00000002) -- Assisted GLONASS is supported over RRLP in the user plane
- QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_UP (0x00000004) -- Assisted GLONASS is supported over LPP in the user plane;
QMI_LOC_LPP_CONFIG_ENABLE_USER_PLANE must be set
in the LPP configuration for this to take effect
- QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_CP (0x00000008) -- Assisted GLONASS is supported over LPP in the control plane;
QMI_LOC_LPP_CONFIG_ENABLE_CONTROL_PLANE must be set
in the LPP configuration for this to take effect
*/
/* Optional */
/* SUPL Hash Algorithm */
uint8_t suplHashAlgo_valid; /**< Must be set to true if suplHashAlgo is being passed */
qmiLocSuplHashAlgoEnumT_v02 suplHashAlgo;
/**< SUPL hash algorithm to be used.
Valid values: \n
- eQMI_LOC_SUPL_HASH_ALGO_SHA1 (0) -- SHA-1 hash algorithm for SUPL version 2.0 or later
- eQMI_LOC_SUPL_HASH_ALGO_SHA256 (1) -- SHA-256 hash algorithm for SUPL version 2.0 or later
*/
/* Optional */
/* SUPL TLS Version */
uint8_t suplTlsVersion_valid; /**< Must be set to true if suplTlsVersion is being passed */
qmiLocSuplTlsVersionEnumT_v02 suplTlsVersion;
/**< SUPL Transport Layer Security (TLS) version. This configuration is only
applicable to SUPL 2.0 or later, as SUPL 1.0 always uses TLS version 1.0.
Valid values: \n
- eQMI_LOC_SUPL_TLS_VERSION_1_0 (0) -- SUPL TLS version 1.0
- eQMI_LOC_SUPL_TLS_VERSION_1_1 (1) -- SUPL TLS version 1.1
*/
/* Optional */
/* Emergency Protocol */
uint8_t emergencyProtocol_valid; /**< Must be set to true if emergencyProtocol is being passed */
qmiLocEmergencyProtocolEnumT_v02 emergencyProtocol;
/**< Configures the protocol to be used during an emergency. \n
\textbf{Note:} Currently, this can only be selected on WCDMA. For GSM
and 1X, the UE only allows a control plane NI trigger for positioning.
For LTE, the UE allows either a SUPL or a control plane NI trigger.
Valid values: \n
- eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_CP (0) -- Use Control Plane Protocol during an emergency while on WCDMA
- eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_UP (1) -- Use SUPL 2.0 emergency services during an emergency while on WCDMA
*/
/* Optional */
/* Wi-Fi Scan Injection Timeout Period */
uint8_t wifiScanInjectTimeout_valid; /**< Must be set to true if wifiScanInjectTimeout is being passed */
uint8_t wifiScanInjectTimeout;
/**< Configures the timeout duration that the service waits for scan results
injection from the control point after the event notification is sent. \n
\textbf{Note:} The timeout value is in seconds. \n
Values: \n
0 to 10 seconds \n
The minimum value (0 seconds) is the default. At this value, the service
disables sending the Wi-Fi scan injection notification and ignores any
scan results injection request.
*/
}qmiLocSetProtocolConfigParametersReqMsgT_v02; /* Message */
/**
@}
*/
typedef uint64_t qmiLocProtocolConfigParamMaskT_v02;
#define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_SECURITY_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000001ull) /**< Mask for the SUPL security configuration parameter */
#define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_VX_VERSION_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000002ull) /**< Mask for the VX version configuration parameter */
#define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_VERSION_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000004ull) /**< Mask for the SUPL version configuration parameter */
#define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_LPP_CONFIG_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000008ull) /**< Mask for the LPP configuration parameter */
#define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_ASSISTED_GLONASS_PROTOCOL_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000010ull) /**< Mask for the assisted GLONASS configuration parameter */
#define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_HASH_ALGO_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000020ull) /**< Mask for the SUPL hash algorithm configuration parameter */
#define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_TLS_VERSION_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000040ull) /**< Mask for the SUPL TLS version configuration parameter */
#define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_EMERGENCY_PROTOCOL_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000080ull) /**< Mask for the emergency protocol configuration parameter */
#define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_WIFI_SCAN_INJECT_TIMEOUT_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000100ull) /**< Mask for the Wi-Fi scan injection timeout configuration parameter */
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to configure parameters stored
in the nonvolatile memory. */
typedef struct {
/* Mandatory */
/* Set Config Params Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set Configuration Parameters request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Failed Parameters */
uint8_t failedProtocolConfigParamMask_valid; /**< Must be set to true if failedProtocolConfigParamMask is being passed */
qmiLocProtocolConfigParamMaskT_v02 failedProtocolConfigParamMask;
/**< Identifies parameters that were not set successfully. This field
is sent only if the status is not SUCCESS.
Valid bitmasks: \n
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_SECURITY (0x0000000000000001) -- Mask for the SUPL security configuration parameter
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_VX_VERSION (0x0000000000000002) -- Mask for the VX version configuration parameter
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_VERSION (0x0000000000000004) -- Mask for the SUPL version configuration parameter
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_LPP_CONFIG (0x0000000000000008) -- Mask for the LPP configuration parameter
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_ASSISTED_GLONASS_PROTOCOL (0x0000000000000010) -- Mask for the assisted GLONASS configuration parameter
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_HASH_ALGO (0x0000000000000020) -- Mask for the SUPL hash algorithm configuration parameter
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_TLS_VERSION (0x0000000000000040) -- Mask for the SUPL TLS version configuration parameter
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_EMERGENCY_PROTOCOL (0x0000000000000080) -- Mask for the emergency protocol configuration parameter
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_WIFI_SCAN_INJECT_TIMEOUT (0x0000000000000100) -- Mask for the Wi-Fi scan injection timeout configuration parameter
*/
}qmiLocSetProtocolConfigParametersIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to get the configuration
parameters stored in the nonvolatile memory. */
typedef struct {
/* Mandatory */
/* Config Parameters */
qmiLocProtocolConfigParamMaskT_v02 getProtocolConfigParamMask;
/**< Mask denoting the configuration parameters to be retrieved.
Valid bitmasks: \n
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_SECURITY (0x0000000000000001) -- Mask for the SUPL security configuration parameter
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_VX_VERSION (0x0000000000000002) -- Mask for the VX version configuration parameter
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_VERSION (0x0000000000000004) -- Mask for the SUPL version configuration parameter
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_LPP_CONFIG (0x0000000000000008) -- Mask for the LPP configuration parameter
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_ASSISTED_GLONASS_PROTOCOL (0x0000000000000010) -- Mask for the assisted GLONASS configuration parameter
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_HASH_ALGO (0x0000000000000020) -- Mask for the SUPL hash algorithm configuration parameter
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_TLS_VERSION (0x0000000000000040) -- Mask for the SUPL TLS version configuration parameter
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_EMERGENCY_PROTOCOL (0x0000000000000080) -- Mask for the emergency protocol configuration parameter
- QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_WIFI_SCAN_INJECT_TIMEOUT (0x0000000000000100) -- Mask for the Wi-Fi scan injection timeout configuration parameter
*/
}qmiLocGetProtocolConfigParametersReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to get the configuration
parameters stored in the nonvolatile memory. */
typedef struct {
/* Mandatory */
/* Get Config Params Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Configuration Parameters request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* SUPL Security */
uint8_t suplSecurity_valid; /**< Must be set to true if suplSecurity is being passed */
uint8_t suplSecurity;
/**< Indicates whether SUPL security is enabled.
\begin{itemize1}
\item 0x01 (TRUE) -- SUPL security is enabled
\item 0x00 (FALSE) -- SUPL security is disabled
\vspace{-0.18in} \end{itemize1}*/
/* Optional */
/* VX Version */
uint8_t vxVersion_valid; /**< Must be set to true if vxVersion is being passed */
qmiLocVxVersionEnumT_v02 vxVersion;
/**< VX version.
Valid values: \n
- eQMI_LOC_VX_VERSION_V1_ONLY (1) -- V1 VX version
- eQMI_LOC_VX_VERSION_V2_ONLY (2) -- V2 VX version
*/
/* Optional */
/* SUPL Version */
uint8_t suplVersion_valid; /**< Must be set to true if suplVersion is being passed */
qmiLocSuplVersionEnumT_v02 suplVersion;
/**< SUPL version.
Valid values: \n
- eQMI_LOC_SUPL_VERSION_1_0 (1) -- SUPL version 1.0
- eQMI_LOC_SUPL_VERSION_2_0 (2) -- SUPL version 2.0
*/
/* Optional */
/* LPP Configuration */
uint8_t lppConfig_valid; /**< Must be set to true if lppConfig is being passed */
qmiLocLppConfigMaskT_v02 lppConfig;
/**< LTE Positioning Profile (LPP) configuration.
Valid bitmasks: \begin{itemize1}
\item 0x00000001 -- LPP_CONFIG_ ENABLE_USER_PLANE
\item 0x00000002 -- LPP_CONFIG_ ENABLE_CONTROL_PLANE
\vspace{-0.18in} \end{itemize1}
*/
/* Optional */
/* Assisted GLONASS Protocol Mask */
uint8_t assistedGlonassProtocolMask_valid; /**< Must be set to true if assistedGlonassProtocolMask is being passed */
qmiLocAssistedGlonassProtocolMaskT_v02 assistedGlonassProtocolMask;
/**< Assisted GLONASS Protocol mask.
Valid bitmasks: \n
- QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRC_CP (0x00000001) -- Assisted GLONASS is supported over RRC in the control plane
- QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRLP_UP (0x00000002) -- Assisted GLONASS is supported over RRLP in the user plane
- QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_UP (0x00000004) -- Assisted GLONASS is supported over LPP in the user plane;
QMI_LOC_LPP_CONFIG_ENABLE_USER_PLANE must be set
in the LPP configuration for this to take effect
- QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_CP (0x00000008) -- Assisted GLONASS is supported over LPP in the control plane;
QMI_LOC_LPP_CONFIG_ENABLE_CONTROL_PLANE must be set
in the LPP configuration for this to take effect
*/
/* Optional */
/* SUPL Hash Algorithm */
uint8_t suplHashAlgo_valid; /**< Must be set to true if suplHashAlgo is being passed */
qmiLocSuplHashAlgoEnumT_v02 suplHashAlgo;
/**< SUPL hash algorithm to be used.
Valid values: \n
- eQMI_LOC_SUPL_HASH_ALGO_SHA1 (0) -- SHA-1 hash algorithm for SUPL version 2.0 or later
- eQMI_LOC_SUPL_HASH_ALGO_SHA256 (1) -- SHA-256 hash algorithm for SUPL version 2.0 or later
*/
/* Optional */
/* SUPL TLS Version */
uint8_t suplTlsVersion_valid; /**< Must be set to true if suplTlsVersion is being passed */
qmiLocSuplTlsVersionEnumT_v02 suplTlsVersion;
/**< SUPL TLS version. This configuration is only
applicable to SUPL 2.0 or later, as SUPL 1.0 always uses TLS version 1.0.
Valid values: \n
- eQMI_LOC_SUPL_TLS_VERSION_1_0 (0) -- SUPL TLS version 1.0
- eQMI_LOC_SUPL_TLS_VERSION_1_1 (1) -- SUPL TLS version 1.1
*/
/* Optional */
/* Emergency Protocol */
uint8_t emergencyProtocol_valid; /**< Must be set to true if emergencyProtocol is being passed */
qmiLocEmergencyProtocolEnumT_v02 emergencyProtocol;
/**< Protocol to be used during emergency.
Valid values: \n
- eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_CP (0) -- Use Control Plane Protocol during an emergency while on WCDMA
- eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_UP (1) -- Use SUPL 2.0 emergency services during an emergency while on WCDMA
*/
/* Optional */
/* Wi-Fi Scan Injection Timeout Period */
uint8_t wifiScanInjectTimeout_valid; /**< Must be set to true if wifiScanInjectTimeout is being passed */
uint8_t wifiScanInjectTimeout;
/**< Timeout duration that the service waits for a scan results
injection from the control point after the event notification is sent. \n
Values: \n
0 to 10 seconds
*/
}qmiLocGetProtocolConfigParametersIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSENSORSCONTROLCONFIGSENSORUSEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_ENABLE_V02 = 0, /**< Sensors data should be requested whenever a position request is
received. If sensor data are injected, the positioning engine
attempts to improve the heading and positioning performance using sensors.
This is the default.
*/
eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_DISABLE_V02 = 1, /**< Inertial sensors are not to be used to aid heading and position
improvement. */
QMILOCSENSORSCONTROLCONFIGSENSORUSEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocSensorsControlConfigSensorUseEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSENSORSCONTROLCONFIGSENSORPROVIDERENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_SSC_V02 = 0, /**< Sensors data provider is Snapdragon Sensor Core (SSC);
this is the default
*/
eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_NATIVE_V02 = 1, /**< Sensors data provider is on the host processor */
QMILOCSENSORSCONTROLCONFIGSENSORPROVIDERENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocSensorsControlConfigSensorProviderEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Sets the sensor control configuration. */
typedef struct {
/* Optional */
/* Sensors Usage */
uint8_t sensorsUsage_valid; /**< Must be set to true if sensorsUsage is being passed */
qmiLocSensorsControlConfigSensorUseEnumT_v02 sensorsUsage;
/**< Controls how sensors are used to aid heading and positioning
performance.
Valid values: \n
- eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_ENABLE (0) -- Sensors data should be requested whenever a position request is
received. If sensor data are injected, the positioning engine
attempts to improve the heading and positioning performance using sensors.
This is the default.
- eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_DISABLE (1) -- Inertial sensors are not to be used to aid heading and position
improvement.
*/
/* Optional */
/* Sensors Provider */
uint8_t sensorProvider_valid; /**< Must be set to true if sensorProvider is being passed */
qmiLocSensorsControlConfigSensorProviderEnumT_v02 sensorProvider;
/**< Controls which sensors data provider is to be used.
Valid values: \n
- eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_SSC (0) -- Sensors data provider is Snapdragon Sensor Core (SSC);
this is the default
- eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_NATIVE (1) -- Sensors data provider is on the host processor
*/
}qmiLocSetSensorControlConfigReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sets the sensor control configuration. */
typedef struct {
/* Mandatory */
/* Set Sensor Control Config Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set Sensor Control Configuration request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocSetSensorControlConfigIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Retrieves the current sensor control configuration. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocGetSensorControlConfigReqMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Retrieves the current sensor control configuration. */
typedef struct {
/* Mandatory */
/* Get Sensor Control Config Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Sensors Control Configuration request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Sensors Usage */
uint8_t sensorsUsage_valid; /**< Must be set to true if sensorsUsage is being passed */
qmiLocSensorsControlConfigSensorUseEnumT_v02 sensorsUsage;
/**< Controls how sensors are used to aid the heading and positioning
performance.
Valid values: \n
- eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_ENABLE (0) -- Sensors data should be requested whenever a position request is
received. If sensor data are injected, the positioning engine
attempts to improve the heading and positioning performance using sensors.
This is the default.
- eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_DISABLE (1) -- Inertial sensors are not to be used to aid heading and position
improvement.
*/
/* Optional */
/* Sensors Provider */
uint8_t sensorProvider_valid; /**< Must be set to true if sensorProvider is being passed */
qmiLocSensorsControlConfigSensorProviderEnumT_v02 sensorProvider;
/**< Controls which sensors data provider to be used.
Valid values: \n
- eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_SSC (0) -- Sensors data provider is Snapdragon Sensor Core (SSC);
this is the default
- eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_NATIVE (1) -- Sensors data provider is on the host processor
*/
}qmiLocGetSensorControlConfigIndMsgT_v02; /* Message */
/**
@}
*/
typedef uint32_t qmiLocSensorPropertiesMaskT_v02;
#define QMI_LOC_SENSOR_PROPERTIES_MASK_GYRO_BIAS_VARIANCE_RANDOM_WALK_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000001) /**< Denotes the gyro bias variance random walk parameter */
#define QMI_LOC_SENSOR_PROPERTIES_MASK_VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000002) /**< Denotes the velocity random walk spectral density parameter */
#define QMI_LOC_SENSOR_PROPERTIES_MASK_ACCELERATION_RANDOM_WALK_SPECTRAL_DENSITY_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000004) /**< Denotes the acceleration random walk spectral density parameter */
#define QMI_LOC_SENSOR_PROPERTIES_MASK_ANGLE_RANDOM_WALK_SPECTRAL_DENSITY_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000008) /**< Denotes the angle random walk spectral density parameter */
#define QMI_LOC_SENSOR_PROPERTIES_MASK_RATE_RANDOM_WALK_SPECTRAL_DENSITY_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000010) /**< Denotes the rate random walk spectral density parameter */
#define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_DATA_USE_CONTROL_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000020) /**< Denotes the vehicle data use control parameter */
#define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_VELOCITY_RWSD_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000040) /**< Denotes the vehicle velocity random walk spectral density */
#define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ACCEL_RWSD_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000080) /**< Denotes the vehicle accelerometer random walk spectral density */
#define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGLE_RWSD_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000100) /**< Denotes the vehicle angle random walk spectral density */
#define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGULAR_RATE_RWSD_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000200) /**< Denotes the vehicle angular rate random walk spectral density */
#define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_SCALE_RWSD_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000400) /**< Denotes the vehicle odometry scale random walk spectral density */
#define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_VARIANCE_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000800) /**< Denotes the vehicle odometry variance */
typedef uint64_t qmiLocVehicleDataUseControlMaskT_v02;
#define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_X_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000001ull) /**< Enable use of X-axis vehicle acceleration sensor data */
#define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Y_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000002ull) /**< Enable use of Y-axis vehicle acceleration sensor data */
#define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Z_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000004ull) /**< Enable use of Z-axis vehicle acceleration sensor data */
#define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_X_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000010ull) /**< Enable use of X-axis vehicle gyroscope data */
#define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Y_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000020ull) /**< Enable use of Y-axis vehicle gyroscope data */
#define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Z_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000040ull) /**< Enable use of Z-axis vehicle gyroscope data */
#define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ODOMETRY_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000100ull) /**< Enable use of odometry data */
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Sets the properties specific to the type of sensor used.
The control point must set sensor properties before they can be
used to aid in heading and positioning performance improvement.
*/
typedef struct {
/* Optional */
/* Gyro Bias Random Walk Variance */
uint8_t gyroBiasVarianceRandomWalk_valid; /**< Must be set to true if gyroBiasVarianceRandomWalk is being passed */
float gyroBiasVarianceRandomWalk;
/**< Specifies the gyro bias random walk variance parameter as a positive
floating-point value. This value has internal default value 1.0e-5 radian^2/second^4.
The gyro bias variance random walk parameter is derived from either the
sensors data sheet or a sensors conformance test. \n
- Units: Radians^2/seconds^4
*/
/* Optional */
/* Velocity Random Walk Spectral Density */
uint8_t velocityRandomWalkSpectralDensity_valid; /**< Must be set to true if velocityRandomWalkSpectralDensity is being passed */
float velocityRandomWalkSpectralDensity;
/**< Specifies the velocity random walk spectral density parameter as a positive
floating-point value. This value does not have any internal defaults.
The velocity random walk spectral density parameter is derived from either the
sensors data sheet or a sensors conformance test. \n
- Units: Meters/seconds^2/Hertz^0.5
*/
/* Optional */
/* Acceleration Random Walk Spectral Density */
uint8_t accelerationRandomWalkSpectralDensity_valid; /**< Must be set to true if accelerationRandomWalkSpectralDensity is being passed */
float accelerationRandomWalkSpectralDensity;
/**< Specifies the acceleration random walk spectral density parameter as a positive
floating-point value. This value does not have any internal defaults.
The acceleration random walk spectral density parameter is derived from either the
sensors data sheet or a sensors conformance test. \n
- Units: Meters/seconds^3/Hertz^0.5
*/
/* Optional */
/* Angle Random Walk Spectral Density */
uint8_t angleRandomWalkSpectralDensity_valid; /**< Must be set to true if angleRandomWalkSpectralDensity is being passed */
float angleRandomWalkSpectralDensity;
/**< Specifies the angle random walk spectral density parameter as a positive
floating-point value. This value does not have any internal defaults.
The angle random walk spectral density parameter is derived from either the
sensors data sheet or a sensors conformance test. \n
- Units: Radians/seconds/Hertz^0.5
*/
/* Optional */
/* Rate Random Walk Spectral Density */
uint8_t rateRandomWalkSpectralDensity_valid; /**< Must be set to true if rateRandomWalkSpectralDensity is being passed */
float rateRandomWalkSpectralDensity;
/**< Specifies the rate random walk spectral density parameter as a positive
floating-point value. This value does not have any internal defaults.
The rate random walk spectral density parameter is derived from either the
sensors data sheet or a sensors conformance test. \n
- Units: Radians/seconds^2/Hertz^0.5
*/
/* Optional */
/* Vehicle Data Use Control */
uint8_t vehicleDataUse_valid; /**< Must be set to true if vehicleDataUse is being passed */
qmiLocVehicleDataUseControlMaskT_v02 vehicleDataUse;
/**< Identifies which portions of the vehicle data to use in location
estimation (information provided by the message
QMI_LOC_INJECT_VEHICLE_SENSOR_DATA). Valid bitmasks: \n
- QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_X_AXIS (0x0000000000000001) -- Enable use of X-axis vehicle acceleration sensor data
- QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Y_AXIS (0x0000000000000002) -- Enable use of Y-axis vehicle acceleration sensor data
- QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Z_AXIS (0x0000000000000004) -- Enable use of Z-axis vehicle acceleration sensor data
- QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_X_AXIS (0x0000000000000010) -- Enable use of X-axis vehicle gyroscope data
- QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Y_AXIS (0x0000000000000020) -- Enable use of Y-axis vehicle gyroscope data
- QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Z_AXIS (0x0000000000000040) -- Enable use of Z-axis vehicle gyroscope data
- QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ODOMETRY (0x0000000000000100) -- Enable use of odometry data
\b Note: All other bits are reserved for future use and are to be set to 0. */
/* Optional */
/* Vehicle Velocity Random Walk Spectral Density */
uint8_t vehicleVelocityRandomWalkSpectralDensity_valid; /**< Must be set to true if vehicleVelocityRandomWalkSpectralDensity is being passed */
float vehicleVelocityRandomWalkSpectralDensity;
/**< Vehicle velocity random walk spectral density. \n
- Type: 32-bit float \n
- Units: Meters/seconds^2/Hz^0.5 \n
- Valid values: Positive values \n
- Default: None
*/
/* Optional */
/* Vehicle Acceleration Random Walk Spectral Density */
uint8_t vehicleAccelRandomWalkSpectralDensity_valid; /**< Must be set to true if vehicleAccelRandomWalkSpectralDensity is being passed */
float vehicleAccelRandomWalkSpectralDensity;
/**< Vehicle accelerometer random walk spectral density. \n
- Type: 32-bit float \n
- Units: Meters/seconds^3/Hz^0.5 \n
- Valid values: Positive values \n
- Default: None
*/
/* Optional */
/* Vehicle Angle Random Walk Spectral Density */
uint8_t vehicleAngleRandomWalkSpectralDensity_valid; /**< Must be set to true if vehicleAngleRandomWalkSpectralDensity is being passed */
float vehicleAngleRandomWalkSpectralDensity;
/**< Vehicle angle random walk spectral density. \n
- Type: 32-bit float \n
- Units: Radians/seconds/Hz^0.5 \n
- Valid values: Positive values \n
- Default: None
*/
/* Optional */
/* Vehicle Angular Rate Random Walk Spectral Density */
uint8_t vehicleAngularRateRandomWalkSpectralDensity_valid; /**< Must be set to true if vehicleAngularRateRandomWalkSpectralDensity is being passed */
float vehicleAngularRateRandomWalkSpectralDensity;
/**< Vehicle angular rate random walk spectral density. \n
- Type: 32-bit float \n
- Units: Radians/seconds^2/Hz^0.5 \n
- Valid values: Positive values \n
- Default: None
*/
/* Optional */
/* Vehicle Odometry Scale Factor Random Walk Spectral Density */
uint8_t vehicleOdometryScaleFactorRandomWalkSpectralDensity_valid; /**< Must be set to true if vehicleOdometryScaleFactorRandomWalkSpectralDensity is being passed */
float vehicleOdometryScaleFactorRandomWalkSpectralDensity;
/**< Vehicle odometry scale factor random walk spectral density. \n
- Type: 32-bit float \n
- Units: (1/seconds)/Hz^0.5 \n
- Range: Approximately 0.0001 to 0.001 \n
- Default: 0.001 (actual calibration recommended)
*/
/* Optional */
/* Vehicle Odometry Variance */
uint8_t vehicleOdometryVariance_valid; /**< Must be set to true if vehicleOdometryVariance is being passed */
float vehicleOdometryVariance;
/**< Vehicle odometry variance of each odometry sample
(coarseness of measurement). \n
- Type: 32-bit float \n
- Units: Meters^2 \n
- Valid values: Positive values \n
- Default: None
*/
}qmiLocSetSensorPropertiesReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sets the properties specific to the type of sensor used.
The control point must set sensor properties before they can be
used to aid in heading and positioning performance improvement.
*/
typedef struct {
/* Mandatory */
/* Set Sensor Properties Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set Sensor Properties request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
/* Optional */
/* Failed Set Sensor Properties */
uint8_t failedSensorPropertiesMask_valid; /**< Must be set to true if failedSensorPropertiesMask is being passed */
qmiLocSensorPropertiesMaskT_v02 failedSensorPropertiesMask;
/**< This field is sent only if the status is not SUCCESS.
Identifies the parameters that were not set successfully.
Valid bitmasks:
- QMI_LOC_SENSOR_PROPERTIES_MASK_GYRO_BIAS_VARIANCE_RANDOM_WALK (0x00000001) -- Denotes the gyro bias variance random walk parameter
- QMI_LOC_SENSOR_PROPERTIES_MASK_VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY (0x00000002) -- Denotes the velocity random walk spectral density parameter
- QMI_LOC_SENSOR_PROPERTIES_MASK_ACCELERATION_RANDOM_WALK_SPECTRAL_DENSITY (0x00000004) -- Denotes the acceleration random walk spectral density parameter
- QMI_LOC_SENSOR_PROPERTIES_MASK_ANGLE_RANDOM_WALK_SPECTRAL_DENSITY (0x00000008) -- Denotes the angle random walk spectral density parameter
- QMI_LOC_SENSOR_PROPERTIES_MASK_RATE_RANDOM_WALK_SPECTRAL_DENSITY (0x00000010) -- Denotes the rate random walk spectral density parameter
- QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_DATA_USE_CONTROL (0x00000020) -- Denotes the vehicle data use control parameter
- QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_VELOCITY_RWSD (0x00000040) -- Denotes the vehicle velocity random walk spectral density
- QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ACCEL_RWSD (0x00000080) -- Denotes the vehicle accelerometer random walk spectral density
- QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGLE_RWSD (0x00000100) -- Denotes the vehicle angle random walk spectral density
- QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGULAR_RATE_RWSD (0x00000200) -- Denotes the vehicle angular rate random walk spectral density
- QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_SCALE_RWSD (0x00000400) -- Denotes the vehicle odometry scale random walk spectral density
- QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_VARIANCE (0x00000800) -- Denotes the vehicle odometry variance
\vspace{-0.18in} \end{itemize1}
*/
}qmiLocSetSensorPropertiesIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Retrieves the current sensor properties. */
typedef struct {
/* Mandatory */
/* Sensor Properties Config Parameters */
qmiLocSensorPropertiesMaskT_v02 getSensorPropertiesMask;
/**< Mask denoting the sensor properties parameters to be retrieved.
Valid bitmasks:
- QMI_LOC_SENSOR_PROPERTIES_MASK_GYRO_BIAS_VARIANCE_RANDOM_WALK (0x00000001) -- Denotes the gyro bias variance random walk parameter
- QMI_LOC_SENSOR_PROPERTIES_MASK_VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY (0x00000002) -- Denotes the velocity random walk spectral density parameter
- QMI_LOC_SENSOR_PROPERTIES_MASK_ACCELERATION_RANDOM_WALK_SPECTRAL_DENSITY (0x00000004) -- Denotes the acceleration random walk spectral density parameter
- QMI_LOC_SENSOR_PROPERTIES_MASK_ANGLE_RANDOM_WALK_SPECTRAL_DENSITY (0x00000008) -- Denotes the angle random walk spectral density parameter
- QMI_LOC_SENSOR_PROPERTIES_MASK_RATE_RANDOM_WALK_SPECTRAL_DENSITY (0x00000010) -- Denotes the rate random walk spectral density parameter
- QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_DATA_USE_CONTROL (0x00000020) -- Denotes the vehicle data use control parameter
- QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_VELOCITY_RWSD (0x00000040) -- Denotes the vehicle velocity random walk spectral density
- QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ACCEL_RWSD (0x00000080) -- Denotes the vehicle accelerometer random walk spectral density
- QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGLE_RWSD (0x00000100) -- Denotes the vehicle angle random walk spectral density
- QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGULAR_RATE_RWSD (0x00000200) -- Denotes the vehicle angular rate random walk spectral density
- QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_SCALE_RWSD (0x00000400) -- Denotes the vehicle odometry scale random walk spectral density
- QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_VARIANCE (0x00000800) -- Denotes the vehicle odometry variance
*/
}qmiLocGetSensorPropertiesReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Retrieves the current sensor properties. */
typedef struct {
/* Mandatory */
/* Get Sensor Properties Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Sensors Properties request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Gyro Bias Random Walk Variance */
uint8_t gyroBiasVarianceRandomWalk_valid; /**< Must be set to true if gyroBiasVarianceRandomWalk is being passed */
float gyroBiasVarianceRandomWalk;
/**< Specifies the gyro bias random walk variance parameter as a positive
floating-point value. This value has internal default value 1.0e-5 radian^2/second^4.
The gyro bias variance random walk parameter is derived from either the
sensors data sheet or a sensors conformance test. \n
- Units: Radians^2/seconds^4
*/
/* Optional */
/* Velocity Random Walk Spectral Density */
uint8_t velocityRandomWalkSpectralDensity_valid; /**< Must be set to true if velocityRandomWalkSpectralDensity is being passed */
float velocityRandomWalkSpectralDensity;
/**< Specifies the velocity random walk spectral density parameter as a positive
floating-point value. This value does not have any internal defaults.
The velocity random walk spectral density parameter is derived from either the
sensors data sheet or a sensors conformance test. \n
- Units: Meters/seconds^2/Hertz^0.5
*/
/* Optional */
/* Acceleration Random Walk Spectral Density */
uint8_t accelerationRandomWalkSpectralDensity_valid; /**< Must be set to true if accelerationRandomWalkSpectralDensity is being passed */
float accelerationRandomWalkSpectralDensity;
/**< Specifies the acceleration random walk spectral density parameter as a positive
floating-point value. This value does not have any internal defaults.
The acceleration random walk spectral density parameter is derived from either the
sensors data sheet or a sensors conformance test. \n
- Units: Meters/seconds^3/Hertz^0.5
*/
/* Optional */
/* Angle Random Walk Spectral Density */
uint8_t angleRandomWalkSpectralDensity_valid; /**< Must be set to true if angleRandomWalkSpectralDensity is being passed */
float angleRandomWalkSpectralDensity;
/**< Specifies the angle random walk spectral density parameter as a positive
floating-point value. This value does not have any internal defaults.
The angle random walk spectral density parameter is derived from either the
sensors data sheet or a sensors conformance test. \n
- Units: Radians/seconds/Hertz^0.5
*/
/* Optional */
/* Rate Random Walk Spectral Density */
uint8_t rateRandomWalkSpectralDensity_valid; /**< Must be set to true if rateRandomWalkSpectralDensity is being passed */
float rateRandomWalkSpectralDensity;
/**< Specifies the rate random walk spectral density parameter as a positive
floating-point value. This value does not have any internal defaults.
The rate random walk spectral density parameter is derived from either the
sensors data sheet or a sensors conformance test. \n
- Units: Radians/seconds^2/Hertz^0.5
*/
/* Optional */
/* Vehicle Data Use Control */
uint8_t vehicleDataUse_valid; /**< Must be set to true if vehicleDataUse is being passed */
qmiLocVehicleDataUseControlMaskT_v02 vehicleDataUse;
/**< Identifies which portions of the vehicle data to use in location
estimation (information provided by message
QMI_LOC_INJECT_VEHICLE_SENSOR_DATA). Valid bitmasks: \n
- QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_X_AXIS (0x0000000000000001) -- Enable use of X-axis vehicle acceleration sensor data
- QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Y_AXIS (0x0000000000000002) -- Enable use of Y-axis vehicle acceleration sensor data
- QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Z_AXIS (0x0000000000000004) -- Enable use of Z-axis vehicle acceleration sensor data
- QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_X_AXIS (0x0000000000000010) -- Enable use of X-axis vehicle gyroscope data
- QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Y_AXIS (0x0000000000000020) -- Enable use of Y-axis vehicle gyroscope data
- QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Z_AXIS (0x0000000000000040) -- Enable use of Z-axis vehicle gyroscope data
- QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ODOMETRY (0x0000000000000100) -- Enable use of odometry data
@note1 All other bits are reserved for future use and are to be set to 0. */
/* Optional */
/* Vehicle Velocity Random Walk Spectral Density */
uint8_t vehicleVelocityRandomWalkSpectralDensity_valid; /**< Must be set to true if vehicleVelocityRandomWalkSpectralDensity is being passed */
float vehicleVelocityRandomWalkSpectralDensity;
/**< Vehicle velocity random walk spectral density. \n
- Type: 32-bit float \n
- Units: Meters/seconds^2/Hz^0.5 \n
- Valid values: Positive values \n
- Default: None
*/
/* Optional */
/* Vehicle Acceleration Random Walk Spectral Density */
uint8_t vehicleAccelRandomWalkSpectralDensity_valid; /**< Must be set to true if vehicleAccelRandomWalkSpectralDensity is being passed */
float vehicleAccelRandomWalkSpectralDensity;
/**< Vehicle accelerometer random walk spectral density. \n
- Type: 32-bit float \n
- Units: Meters/seconds^3/Hz^0.5 \n
- Valid values: Positive values \n
- Default: None
*/
/* Optional */
/* Vehicle Angle Random Walk Spectral Density */
uint8_t vehicleAngleRandomWalkSpectralDensity_valid; /**< Must be set to true if vehicleAngleRandomWalkSpectralDensity is being passed */
float vehicleAngleRandomWalkSpectralDensity;
/**< Vehicle angle random walk spectral density. \n
- Type: 32-bit float \n
- Units: Radians/seconds/Hz^0.5 \n
- Valid values: Positive values \n
- Default: None
*/
/* Optional */
/* Vehicle Angular Rate Random Walk Spectral Density */
uint8_t vehicleAngularRateRandomWalkSpectralDensity_valid; /**< Must be set to true if vehicleAngularRateRandomWalkSpectralDensity is being passed */
float vehicleAngularRateRandomWalkSpectralDensity;
/**< Vehicle angular rate random walk spectral density. \n
- Type: 32-bit float \n
- Units: Radians/seconds^2/Hz^0.5 \n
- Valid values: Positive values \n
- Default: None
*/
/* Optional */
/* Vehicle Odometry Scale Factor Random Walk Spectral Density */
uint8_t vehicleOdometryScaleFactorRandomWalkSpectralDensity_valid; /**< Must be set to true if vehicleOdometryScaleFactorRandomWalkSpectralDensity is being passed */
float vehicleOdometryScaleFactorRandomWalkSpectralDensity;
/**< Vehicle odometry scale factor random walk spectral density. \n
- Type: 32-bit float \n
- Units: (1/seconds)/Hz^0.5 \n
- Range: Approximately 0.0001 to 0.001 \n
- Default: 0.001 (actual calibration recommended)
*/
/* Optional */
/* Vehicle Odometry Variance */
uint8_t vehicleOdometryVariance_valid; /**< Must be set to true if vehicleOdometryVariance is being passed */
float vehicleOdometryVariance;
/**< Vehicle odometry variance of each odometry sample
(coarseness of measurement). \n
- Type: 32-bit float \n
- Units: Meters^2 \n
- Valid values: Positive values \n
- Default: None
*/
}qmiLocGetSensorPropertiesIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSENSORPERFORMANCECONTROLMODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_AUTO_V02 = 0, /**< Sensors usage is to be determined by the GNSS location engine.
This mode can optimize power consumption and give a
power-balanced positioning and heading enhancement using
inertial sensors */
eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_FORCED_V02 = 1, /**< Sensors usage is to be forced ON.
This mode can be requested by the control point when
power consumption is not a restriction to the use of
inertial sensors. */
QMILOCSENSORPERFORMANCECONTROLMODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocSensorPerformanceControlModeEnumT_v02;
/**
@}
*/
typedef uint32_t qmiLocSensorAlgorithmMaskT_v02;
#define QMI_LOC_SENSOR_ALGORITHM_MASK_DISABLE_INS_POSITIONING_FILTER_V02 ((qmiLocSensorAlgorithmMaskT_v02)0x00000001) /**< Inertial sensors are not to be used in Accelerometer-integrated fashion with
GNSS. They can still be used for aiding in heading improvements. */
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Provides fine-grained control of sensor based positioning
performance. */
typedef struct {
/* Optional */
/* Sensor Performance Control Mode */
uint8_t performanceControlMode_valid; /**< Must be set to true if performanceControlMode is being passed */
qmiLocSensorPerformanceControlModeEnumT_v02 performanceControlMode;
/**< Controls when sensors data is requested during GNSS fix processing.
This field is relevant only when sensors have been enabled using the
sensors control configuration.
Valid values: \n
- eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_AUTO (0) -- Sensors usage is to be determined by the GNSS location engine.
This mode can optimize power consumption and give a
power-balanced positioning and heading enhancement using
inertial sensors
- eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_FORCED (1) -- Sensors usage is to be forced ON.
This mode can be requested by the control point when
power consumption is not a restriction to the use of
inertial sensors.
*/
/* Optional */
/* Accelerometer Sampling Specification */
uint8_t accelSamplingSpec_valid; /**< Must be set to true if accelSamplingSpec is being passed */
qmiLocSensorControlConfigSamplingSpecStructT_v02 accelSamplingSpec;
/**< \vspace{0.06in} \n Sets the nominal rate at which the GNSS location
engine is to request acceleration data to be used by the low data rate
filter. The sensor data rate is specified in terms of the nominal number
of samples per batch and the number of batches per second.
However, the final control of the actual requested rate resides with
the Sensors Manager Module/GNSS location engine. \n
Default: 10 Hz sampling rate and 2 Hz batching rate.
*/
/* Optional */
/* Gyroscope Sampling Specification */
uint8_t gyroSamplingSpec_valid; /**< Must be set to true if gyroSamplingSpec is being passed */
qmiLocSensorControlConfigSamplingSpecStructT_v02 gyroSamplingSpec;
/**< \vspace{0.06in} \n Sets the nominal rate at which the GNSS location
engine is to request gyro data to be used by the high data rate filter.
The sensor data rate is specified in terms of the nominal number of
samples per batch and the number of batches per second.
However, the final control of the actual requested rate resides with
the Sensors Manager Module/GNSS location engine. \n
Default: 10 Hz sampling rate and 2 Hz batching rate.
*/
/* Optional */
/* Algorithm Configuration */
uint8_t algorithmConfig_valid; /**< Must be set to true if algorithmConfig is being passed */
qmiLocSensorAlgorithmMaskT_v02 algorithmConfig;
/**< Sets which sensor algorithms are to be used when processing sensor data.
Valid bitmasks: \begin{itemize1}
\item 0x00000001 -- DISABLE_INS_ POSITIONING_FILTER
\vspace{-0.18in} \end{itemize1}
*/
/* Optional */
/* High Data Rate Filter Accelerometer Sampling Specification */
uint8_t accelSamplingSpecHigh_valid; /**< Must be set to true if accelSamplingSpecHigh is being passed */
qmiLocSensorControlConfigSamplingSpecStructT_v02 accelSamplingSpecHigh;
/**< \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
acceleration data to be used by the high data rate filter. The sensor
data rate is specified in terms of the nominal number of samples per
batch and the number of batches per second.
However, the final control of the actual requested rate resides with
the Sensors Manager Module/GNSS location engine. \n
Default: 100 Hz sampling rate and 4 Hz batching rate.
*/
/* Optional */
/* High Data Rate Filter Gyroscope Sampling Specification */
uint8_t gyroSamplingSpecHigh_valid; /**< Must be set to true if gyroSamplingSpecHigh is being passed */
qmiLocSensorControlConfigSamplingSpecStructT_v02 gyroSamplingSpecHigh;
/**< \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
gyro data to be used by the high data rate filter. The sensor data rate
is specified in terms of the nominal number of samples per batch and the
number of batches per second.
However, the final control of the actual requested rate resides with
the Sensors Manager Module/GNSS location engine. \n
Default: 100 Hz sampling rate and 4 Hz batching rate.
*/
}qmiLocSetSensorPerformanceControlConfigReqMsgT_v02; /* Message */
/**
@}
*/
typedef uint32_t qmiLocSensorPerformanceControlConfigFailureMaskT_v02;
#define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_PERFORMANCE_MODE_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000001) /**< Failed to set the performance mode */
#define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_ACCEL_SAMPLING_SPEC_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000002) /**< Failed to set the accelerometer sampling specification */
#define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_GYRO_SAMPLING_SPEC_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000004) /**< Failed to set the gyroscope sampling specification */
#define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_ALGORITHM_CONFIG_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000008) /**< Failed to set the algorithm configuration */
#define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_ACCEL_SAMPLING_SPEC_HIGH_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000010) /**< Failed to set the accelerometer sampling specification */
#define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_GYRO_SAMPLING_SPEC_HIGH_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000020) /**< Failed to set the gyroscope sampling specification */
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Provides fine-grained control of sensor based positioning
performance. */
typedef struct {
/* Mandatory */
/* Set Sensor Perf Control Config Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set Sensor Performance Control Configuration request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Failed Configuration */
uint8_t failedConfiguration_valid; /**< Must be set to true if failedConfiguration is being passed */
qmiLocSensorPerformanceControlConfigFailureMaskT_v02 failedConfiguration;
/**< Identifies parameters that were not configured successfully. This field
is sent only if the status is not a success.
Valid bitmasks: \begin{itemize1}
\item 0x00000001 -- PERFORMANCE_ MODE
\item 0x00000002 -- ACCEL_SAMPLING_ SPEC
\item 0x00000004 -- GYRO_SAMPLING_ SPEC
\item 0x00000008 -- ALGORITHM_ CONFIG
\item 0x00000010 -- ACCEL_SAMPLING_ SPEC_HIGH
\item 0x00000020 -- GYRO_SAMPLING_ SPEC_HIGH
\vspace{-0.18in} \end{itemize1}
*/
}qmiLocSetSensorPerformanceControlConfigIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Retrieves the current sensor performance control
configuration. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocGetSensorPerformanceControlConfigReqMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Retrieves the current sensor performance control
configuration. */
typedef struct {
/* Mandatory */
/* Get Sensor Perf Control Config Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Sensor Performance Control Configuration request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Performance Control Mode */
uint8_t performanceControlMode_valid; /**< Must be set to true if performanceControlMode is being passed */
qmiLocSensorPerformanceControlModeEnumT_v02 performanceControlMode;
/**< Controls when sensor data is requested during GNSS fix processing.
This field is relevant only when sensors have been enabled using the
sensor control configuration.
Valid values: \n
- eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_AUTO (0) -- Sensors usage is to be determined by the GNSS location engine.
This mode can optimize power consumption and give a
power-balanced positioning and heading enhancement using
inertial sensors
- eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_FORCED (1) -- Sensors usage is to be forced ON.
This mode can be requested by the control point when
power consumption is not a restriction to the use of
inertial sensors.
*/
/* Optional */
/* Accelerometer Sampling Specification */
uint8_t accelSamplingSpec_valid; /**< Must be set to true if accelSamplingSpec is being passed */
qmiLocSensorControlConfigSamplingSpecStructT_v02 accelSamplingSpec;
/**< \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
acceleration data to be used by the high data rate filter. The sensor
data rate is specified in terms of the nominal number of samples per
batch and the number of batches per second.
However, the final control of the actual requested rate resides with
the Sensors Manager Module/GNSS location engine. \n
Default: 10 Hz sampling rate and 2 Hz batching rate.
*/
/* Optional */
/* Gyroscope Sampling Specification */
uint8_t gyroSamplingSpec_valid; /**< Must be set to true if gyroSamplingSpec is being passed */
qmiLocSensorControlConfigSamplingSpecStructT_v02 gyroSamplingSpec;
/**< \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
gyro data to be used by the high data rate filter. The sensor data
rate is specified in terms of the nominal number of samples per batch
and the number of batches per second.
However, the final control of the actual requested rate resides with
the Sensors Manager Module/GNSS location engine. \n
Default: 10 Hz sampling rate and 2 Hz batching rate.
*/
/* Optional */
/* Algorithm Configuration */
uint8_t algorithmConfig_valid; /**< Must be set to true if algorithmConfig is being passed */
qmiLocSensorAlgorithmMaskT_v02 algorithmConfig;
/**< Informs which sensor algorithms are currently set.
Valid bitmasks: \begin{itemize1}
\item 0x00000001 -- DISABLE_INS_ POSITIONING_FILTER
\vspace{-0.18in} \end{itemize1}
*/
/* Optional */
/* High Data Rate Filter Accelerometer Sampling Specification */
uint8_t accelSamplingSpecHigh_valid; /**< Must be set to true if accelSamplingSpecHigh is being passed */
qmiLocSensorControlConfigSamplingSpecStructT_v02 accelSamplingSpecHigh;
/**< \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
acceleration data to be used by the high data rate filter. The sensor
data rate is specified in terms of the nominal number of samples per
batch and the number of batches per second.
However, the final control of the actual requested rate resides with
the Sensors Manager Module/GNSS location engine. \n
Default: 100 Hz sampling rate and 4 Hz batching rate.
*/
/* Optional */
/* High Data Rate Filter Gyroscope Sampling Specification */
uint8_t gyroSamplingSpecHigh_valid; /**< Must be set to true if gyroSamplingSpecHigh is being passed */
qmiLocSensorControlConfigSamplingSpecStructT_v02 gyroSamplingSpecHigh;
/**< \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
gyro data to be used by the high data rate filter. The sensor data rate
is specified in terms of the nominal number of samples per batch and the
number of batches per second.
However, the final control of the actual requested rate resides with
the Sensors Manager Module/GNSS location engine. \n
Default: 100 Hz sampling rate and 4 Hz batching rate.
*/
}qmiLocGetSensorPerformanceControlConfigIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Injects a SUPL certificate to be used in AGNSS sessions. */
typedef struct {
/* Mandatory */
/* SUPL Certificate ID */
uint8_t suplCertId;
/**< Certificate ID of the SUPL certificate. \n
- Units: Bytes \n
- Range: 0 to 9 */
/* Mandatory */
/* SUPL Certificate Data */
uint32_t suplCertData_len; /**< Must be set to # of elements in suplCertData */
uint8_t suplCertData[QMI_LOC_MAX_SUPL_CERT_LENGTH_V02];
/**< SUPL certificate contents. \n
- Type: Array of bytes \n
- Maximum certificate size: 2000 bytes */
}qmiLocInjectSuplCertificateReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Injects a SUPL certificate to be used in AGNSS sessions. */
typedef struct {
/* Mandatory */
/* SUPL Certificate Injection Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Inject SUPL Certificate request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocInjectSuplCertificateIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Deletes a SUPL certificate. */
typedef struct {
/* Optional */
/* SUPL Certificate ID */
uint8_t suplCertId_valid; /**< Must be set to true if suplCertId is being passed */
uint8_t suplCertId;
/**< Certificate ID of the SUPL certificate to be deleted. \n
- Units: Bytes \n
- Range: 0 to 9 \n
If suplCertId is not specified,
all SUPL certificates are deleted. */
}qmiLocDeleteSuplCertificateReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Deletes a SUPL certificate. */
typedef struct {
/* Mandatory */
/* SUPL Certificate Deletion Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Delete SUPL Certificate request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocDeleteSuplCertificateIndMsgT_v02; /* Message */
/**
@}
*/
typedef uint32_t qmiLocPositionEngineConfigParamMaskT_v02;
#define QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_INJECTED_POSITION_CONTROL_V02 ((qmiLocPositionEngineConfigParamMaskT_v02)0x00000001) /**< Denotes whether the position engine uses the
injected position in a direct position calculation. */
#define QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_FILTER_SV_USAGE_V02 ((qmiLocPositionEngineConfigParamMaskT_v02)0x00000002) /**< Denotes whether the position engine filters the
SV usage in the fix. */
#define QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_STORE_ASSIST_DATA_V02 ((qmiLocPositionEngineConfigParamMaskT_v02)0x00000004) /**< Denotes whether the position engine stores assistance data
in persistent memory. */
#define QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_ENABLE_FASTER_TTFF_V02 ((qmiLocPositionEngineConfigParamMaskT_v02)0x00000008) /**< Denotes whether the position engine stays on to optimize
the TTFF for the subsequent position fix. */
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to configure position engine
functionality. */
typedef struct {
/* Optional */
/* Injected Position Control */
uint8_t injectedPositionControl_valid; /**< Must be set to true if injectedPositionControl is being passed */
uint8_t injectedPositionControl;
/**< Controls how the injected position is used in the position engine.
Valid values: \begin{itemize1}
\item 0x01 (TRUE) -- Use the injected position in a direct position
calculation
\item 0x00 (FALSE) -- Do not use the injected position in a direct
position calculation
\end{itemize1}
The default value is TRUE.
*/
/* Optional */
/* Filter SV Usage */
uint8_t filterSvUsage_valid; /**< Must be set to true if filterSvUsage is being passed */
uint8_t filterSvUsage;
/**< Controls whether SV usage is filtered in a position fix.
Valid values: \begin{itemize1}
\item 0x01 (TRUE) -- Filter the usage of SVs in the fix
\item 0x00 (FALSE) -- Do not filter the usage of SVs in the fix
\end{itemize1}
The default value is FALSE.
*/
/* Optional */
/* Store Assist Data */
uint8_t storeAssistData_valid; /**< Must be set to true if storeAssistData is being passed */
uint8_t storeAssistData;
/**< Controls whether assistance data is to be stored in
persistent memory.
Valid values: \begin{itemize1}
\item 0x01 (TRUE) -- Store assistance data in persistent memory
\item 0x00 (FALSE) -- Do not store assistance data in persistent memory
\end{itemize1}
The default value is TRUE.
*/
/* Optional */
/* Enable Faster TTFF */
uint8_t enableFasterTTFF_valid; /**< Must be set to true if enableFasterTTFF is being passed */
uint8_t enableFasterTTFF;
/**< Allows the receiver to stay on after a position session in order to
collect information that will help reduce the Time To First Fix (TTFF)
when the next position request is made. The receiver will stay
on only if the engine determines that it needs to collect some
information. The receiver will stay on for the duration needed to
collect the information.
If enabled, the clients may see a delay in receiving the Engine Off
event after the position session ends.
Valid values: \begin{itemize1}
\item 0x01 (TRUE) -- Allow the engine to stay on for reduced TTFF
\item 0x00 (FALSE) -- Do not allow the engine to stay on for reduced
TTFF
\end{itemize1}
The default value is TRUE.*/
}qmiLocSetPositionEngineConfigParametersReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to configure position engine
functionality. */
typedef struct {
/* Mandatory */
/* Set Position Engine Configuration Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set Configuration Parameters request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Failed Parameters */
uint8_t failedPositionEngineConfigParamMask_valid; /**< Must be set to true if failedPositionEngineConfigParamMask is being passed */
qmiLocPositionEngineConfigParamMaskT_v02 failedPositionEngineConfigParamMask;
/**< Identifies the parameters that were not set successfully.
This field is sent only if the status is other than SUCCESS.
Valid bitmasks:\n
- QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_INJECTED_POSITION_CONTROL (0x00000001) -- Denotes whether the position engine uses the
injected position in a direct position calculation.
- QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_FILTER_SV_USAGE (0x00000002) -- Denotes whether the position engine filters the
SV usage in the fix.
- QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_STORE_ASSIST_DATA (0x00000004) -- Denotes whether the position engine stores assistance data
in persistent memory.
- QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_ENABLE_FASTER_TTFF (0x00000008) -- Denotes whether the position engine stays on to optimize
the TTFF for the subsequent position fix.
*/
}qmiLocSetPositionEngineConfigParametersIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to get the position engine
configuration parameters. */
typedef struct {
/* Mandatory */
/* Config Parameters */
qmiLocPositionEngineConfigParamMaskT_v02 getPositionEngineConfigParamMask;
/**< Mask denoting the configuration parameters to be retrieved.
Valid bitmasks:
- QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_INJECTED_POSITION_CONTROL (0x00000001) -- Denotes whether the position engine uses the
injected position in a direct position calculation.
- QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_FILTER_SV_USAGE (0x00000002) -- Denotes whether the position engine filters the
SV usage in the fix.
- QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_STORE_ASSIST_DATA (0x00000004) -- Denotes whether the position engine stores assistance data
in persistent memory.
- QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_ENABLE_FASTER_TTFF (0x00000008) -- Denotes whether the position engine stays on to optimize
the TTFF for the subsequent position fix.
*/
}qmiLocGetPositionEngineConfigParametersReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to get the position engine
configuration parameters. */
typedef struct {
/* Mandatory */
/* Get Position Engine Configuration Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Configuration Parameters request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Injected Position Control */
uint8_t injectedPositionControl_valid; /**< Must be set to true if injectedPositionControl is being passed */
uint8_t injectedPositionControl;
/**< Specifies whether the injected position is used for a direct calculation
in the position engine.
Valid values: \begin{itemize1}
\item 0x01 (TRUE) -- The injected position is used in a direct
position calculation
\item 0x00 (FALSE) -- The injected position is not used in a direct
position calculation
\end{itemize1}
The default value is TRUE.
*/
/* Optional */
/* Filter SV Usage */
uint8_t filterSvUsage_valid; /**< Must be set to true if filterSvUsage is being passed */
uint8_t filterSvUsage;
/**< Specifies whether SV usage is filtered in a position fix.
Valid values: \begin{itemize1}
\item 0x01 (TRUE) -- SV usage is filtered in the fix
\item 0x00 (FALSE) -- SV usage is not filtered in the fix
\end{itemize1}
The default value is FALSE.
*/
/* Optional */
/* Store Assist Data */
uint8_t storeAssistData_valid; /**< Must be set to true if storeAssistData is being passed */
uint8_t storeAssistData;
/**< Specifies whether assistance data is stored in persistent memory.
Valid values: \begin{itemize1}
\item 0x01 (TRUE) -- Assistance data is stored in persistent memory
\item 0x00 (FALSE) -- Assistance data is not stored in persistent
memory
\end{itemize1}
The default value is TRUE.
*/
/* Optional */
/* Enable Faster TTFF */
uint8_t enableFasterTTFF_valid; /**< Must be set to true if enableFasterTTFF is being passed */
uint8_t enableFasterTTFF;
/**< Allows the receiver to stay on after a position session in order to
collect information that will help reduce the TTFF
when the next position request is made. The receiver will stay
on only if the engine determines that it needs to collect some
information. The receiver will stay on for the duration needed to
collect the information.
If enabled, the clients may see a delay in receiving the Engine Off
event after the position session ends.
Valid values: \begin{itemize1}
\item 0x01 (TRUE) -- Allow the engine to stay on for reduced TTFF
\item 0x00 (FALSE) -- Do not allow the engine to stay on for reduced
TTFF
\end{itemize1}
The default value is TRUE.*/
}qmiLocGetPositionEngineConfigParametersIndMsgT_v02; /* Message */
/**
@}
*/
typedef uint8_t qmiLocGeofenceBreachMaskT_v02;
#define QMI_LOC_GEOFENCE_BREACH_ENTERING_MASK_V02 ((qmiLocGeofenceBreachMaskT_v02)0x01) /**< If this mask is set, a breach event is reported
when the Geofence is entered */
#define QMI_LOC_GEOFENCE_BREACH_LEAVING_MASK_V02 ((qmiLocGeofenceBreachMaskT_v02)0x02) /**< If this mask is set, a breach event is reported
when the Geofence is exited */
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGEOFENCERESPONSIVENESSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GEOFENCE_RESPONSIVENESS_LOW_V02 = 0x01, /**< The Geofence is monitored for a breach at a
low rate of 15 minutes. The gap between the actual breach and
the time it is reported is higher. This
setting results in lower power usage. */
eQMI_LOC_GEOFENCE_RESPONSIVENESS_MED_V02 = 0x02, /**< The Geofence is monitored for a breach at a
medium rate of 2 minutes. This is the default setting. */
eQMI_LOC_GEOFENCE_RESPONSIVENESS_HIGH_V02 = 0x03, /**< The Geofence is monitored for a breach at a
high rate of 10 seconds. The gap between the actual breach and
the time it is reported is low. This results
in higher power usage. */
eQMI_LOC_GEOFENCE_RESPONSIVENESS_ULTRA_HIGH_V02 = 0x04, /**< The Geofence is monitored for a breach at a
very high rate of 1 second. The gap between the actual breach and
the time it is reported is very low. This results
in very high power usage. This setting must be avoided whenever
possible because of the drastic power implications. */
eQMI_LOC_GEOFENCE_RESPONSIVENESS_CUSTOM_V02 = 0x05, /**< The Geofence is monitored for a breach at a
user defined rate. The gap between the actual breach and
the time it is reported depends on the user setting. The power implication
is inversely proportional to the responsiveness value set by the user.
The higher the responsiveness value, the lower the power implications, and vice-versa. */
QMILOCGEOFENCERESPONSIVENESSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGeofenceResponsivenessEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
double latitude;
/**< Latitude of the center of the Geofence.*/
double longitude;
/**< Longitude of the center of the Geofence.*/
uint32_t radius;
/**< Radius of the circular Geofence in meters. */
}qmiLocCircularGeofenceArgsStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGEOFENCEPOSITIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GEOFENCE_POSITION_INSIDE_V02 = 0x01, /**< Position is inside a Geofence */
eQMI_LOC_GEOFENCE_POSITION_OUTSIDE_V02 = 0x02, /**< Position is outside a Geofence */
QMILOCGEOFENCEPOSITIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGeofencePositionEnumT_v02;
/**
@}
*/
typedef uint8_t qmiLocGeofenceDwellTypeMaskT_v02;
#define QMI_LOC_GEOFENCE_DWELL_TYPE_INSIDE_MASK_V02 ((qmiLocGeofenceDwellTypeMaskT_v02)0x01) /**< If this mask is set, a dwell event is reported
when a user dwells inside the Geofence for a specified time */
#define QMI_LOC_GEOFENCE_DWELL_TYPE_OUTSIDE_MASK_V02 ((qmiLocGeofenceDwellTypeMaskT_v02)0x02) /**< If this mask is set, a dwell event is reported
when a user dwells outside the Geofence for a specified time */
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to add a circular Geofence. */
typedef struct {
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Identifies the transaction. The transaction ID
is returned in the Add Circular Geofence
indication. */
/* Mandatory */
/* Circular Geofence Arguments */
qmiLocCircularGeofenceArgsStructT_v02 circularGeofenceArgs;
/* Mandatory */
/* Breach Event Mask */
qmiLocGeofenceBreachMaskT_v02 breachMask;
/**< Specifies the breach events in which the client is interested.
Valid values: \begin{itemize1}
\item 0x01 -- GEOFENCE_BREACH_ ENTERING_MASK
\item 0x02 -- GEOFENCE_BREACH_ LEAVING_MASK
\vspace{-0.18in} \end{itemize1} */
/* Mandatory */
/* Include Position in Breach Event */
uint8_t includePosition;
/**< Specifies whether the Geofence engine is to include the position
in a breach event.
Valid values: \begin{itemize1}
\item 0x01 (TRUE) -- Position will be reported with the breach event
\item 0x00 (FALSE) -- Position will not be reported with the breach
event
\vspace{-0.18in} \end{itemize1} */
/* Optional */
/* Responsiveness */
uint8_t responsiveness_valid; /**< Must be set to true if responsiveness is being passed */
qmiLocGeofenceResponsivenessEnumT_v02 responsiveness;
/**< Specifies the rate of detection for a Geofence breach.
This may impact the time lag between the actual breach event and
when it is reported. This parameter has power implications
and is to be fine-tuned to optimize power savings.
Valid values: \n
- eQMI_LOC_GEOFENCE_RESPONSIVENESS_LOW (0x01) -- The Geofence is monitored for a breach at a
low rate of 15 minutes. The gap between the actual breach and
the time it is reported is higher. This
setting results in lower power usage.
- eQMI_LOC_GEOFENCE_RESPONSIVENESS_MED (0x02) -- The Geofence is monitored for a breach at a
medium rate of 2 minutes. This is the default setting.
- eQMI_LOC_GEOFENCE_RESPONSIVENESS_HIGH (0x03) -- The Geofence is monitored for a breach at a
high rate of 10 seconds. The gap between the actual breach and
the time it is reported is low. This results
in higher power usage.
- eQMI_LOC_GEOFENCE_RESPONSIVENESS_ULTRA_HIGH (0x04) -- The Geofence is monitored for a breach at a
very high rate of 1 second. The gap between the actual breach and
the time it is reported is very low. This results
in very high power usage. This setting must be avoided whenever
possible because of the drastic power implications.
- eQMI_LOC_GEOFENCE_RESPONSIVENESS_CUSTOM (0x05) -- The Geofence is monitored for a breach at a
user defined rate. The gap between the actual breach and
the time it is reported depends on the user setting. The power implication
is inversely proportional to the responsiveness value set by the user.
The higher the responsiveness value, the lower the power implications, and vice-versa.
*/
/* Optional */
/* Confidence */
uint8_t confidence_valid; /**< Must be set to true if confidence is being passed */
qmiLocGeofenceConfidenceEnumT_v02 confidence;
/**< Given a breach event, the confidence determines the probability
that the breach happened at the Geofence boundary.
This parameter has power implications and
is to be fine-tuned to optimize power savings.
Valid values: \n
- eQMI_LOC_GEOFENCE_CONFIDENCE_LOW (0x01) -- Geofence engine indicates a breach with
low confidence; this setting results in lower
power usage, and it can impact the yield because
incorrect breach events may be sent
- eQMI_LOC_GEOFENCE_CONFIDENCE_MED (0x02) -- (Default) Geofence engine indicates a breach with
medium confidence
- eQMI_LOC_GEOFENCE_CONFIDENCE_HIGH (0x03) -- Geofence engine indicates a breach with
high confidence; this setting results in higher
power usage
*/
/* Optional */
/* Custom Responsiveness Value */
uint8_t customResponsivenessValue_valid; /**< Must be set to true if customResponsivenessValue is being passed */
uint32_t customResponsivenessValue;
/**< Specifies in seconds the user-defined rate of detection for a Geofence breach.
This may impact the time lag between the actual breach event and
when it is reported. The gap between the actual breach and
the time it is reported depends on the user setting. The power implication
is inversely proportional to the responsiveness value set by the user.
The higher the responsiveness value, the lower the power implications, and vice-versa.
If this field is set, the responsiveness is always treated
as eQMI_LOC_GEOFENCE_ RESPONSIVENESS_CUSTOM.
The minimum value supported in this field is 1 second, and the maximum value is 65535 seconds.
An error is returned if an attempt is made to set this to an unsupported value.
If this field is set, the responsiveness is always treated
as eQMI_LOC_GEOFENCE_ RESPONSIVENESS_CUSTOM, which means that the other responsiveness
types, such as eQMI_LOC_GEOFENCE _RESPONSIVENESS_LOW, eQMI_LOC_GEOFENCE_ RESPONSIVENESS_MEDIUM,
eQMI_LOC_GEOFENCE_ RESPONSIVENESS_HIGH, and eQMI_LOC_GEOFENCE_ RESPONSIVENESS_ULTRA_HIGH are all
disregarded.
If this field is not set, the responsiveness will be treated as
eQMI_LOC_GEOFENCE_ RESPONSIVENESS_LOW, eQMI_LOC_GEOFENCE_RESPONSIVENESS_MEDIUM,
eQMI_LOC_GEOFENCE_RESPONSIVENESS_HIGH, or eQMI_LOC_GEOFENCE_RESPONSIVENESS_ULTRA_HIGH.
*/
/* Optional */
/* Dwell Time of Geofence */
uint8_t dwellTime_valid; /**< Must be set to true if dwellTime is being passed */
uint32_t dwellTime;
/**< Dwell time is the time in seconds a user spends in the Geofence before a dwell
event is sent.
*/
/* Optional */
/* Geofence Dwell Type */
uint8_t dwellTypeMask_valid; /**< Must be set to true if dwellTypeMask is being passed */
qmiLocGeofenceDwellTypeMaskT_v02 dwellTypeMask;
/**< Type of dwell event in which the user is interested .
Valid values: \n
- QMI_LOC_GEOFENCE_DWELL_TYPE_INSIDE_MASK (0x01) -- If this mask is set, a dwell event is reported
when a user dwells inside the Geofence for a specified time
- QMI_LOC_GEOFENCE_DWELL_TYPE_OUTSIDE_MASK (0x02) -- If this mask is set, a dwell event is reported
when a user dwells outside the Geofence for a specified time
*/
}qmiLocAddCircularGeofenceReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to add a circular Geofence. */
typedef struct {
/* Mandatory */
/* Add Circular Geofence Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Add Circular Geofence request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Transaction ID */
uint8_t transactionId_valid; /**< Must be set to true if transactionId is being passed */
uint32_t transactionId;
/**< Transaction ID that was specified in the Add Circular
Geofence request. This parameter will always be present
if the status field is set to SUCCESS. */
/* Optional */
/* Geofence ID */
uint8_t geofenceId_valid; /**< Must be set to true if geofenceId is being passed */
uint32_t geofenceId;
/**< Geofence identifier allocated by the engine.
The client must include this identifier in all transactions
pertaining to this Geofence. */
}qmiLocAddCircularGeofenceIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to delete a Geofence. */
typedef struct {
/* Mandatory */
/* Geofence ID */
uint32_t geofenceId;
/**< Identifier for the Geofence that is to be deleted. */
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Identifies the transaction. The transaction ID
is returned in the Delete Geofence
indication. */
}qmiLocDeleteGeofenceReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to delete a Geofence. */
typedef struct {
/* Mandatory */
/* Delete Geofence Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Delete Geofence request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Geofence ID */
uint8_t geofenceId_valid; /**< Must be set to true if geofenceId is being passed */
uint32_t geofenceId;
/**< Identifier for the Geofence that was deleted. */
/* Optional */
/* Transaction ID */
uint8_t transactionId_valid; /**< Must be set to true if transactionId is being passed */
uint32_t transactionId;
/**< Transaction ID that was specified in the Delete
Geofence request. This parameter will always be present
if the status field is set to SUCCESS. */
}qmiLocDeleteGeofenceIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGEOFENCEORIGINENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GEOFENCE_ORIGIN_NETWORK_V02 = 1, /**< Geofence was initiated by a network-initiated client */
eQMI_LOC_GEOFENCE_ORIGIN_DEVICE_V02 = 2, /**< Geofence was initiated by the device */
QMILOCGEOFENCEORIGINENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGeofenceOriginEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGEOFENCESTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GEOFENCE_STATE_ACTIVE_V02 = 1, /**< Geofence is being actively monitored */
eQMI_LOC_GEOFENCE_STATE_SUSPEND_V02 = 2, /**< Geofence monitoring is suspended */
QMILOCGEOFENCESTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGeofenceStateEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to query a Geofence. */
typedef struct {
/* Mandatory */
/* Geofence ID */
uint32_t geofenceId;
/**< Identifier for the Geofence that is to be queried. */
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Identifies the transaction. The transaction ID
is returned with the Query Geofence
indication. */
}qmiLocQueryGeofenceReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to query a Geofence. */
typedef struct {
/* Mandatory */
/* Query Geofence Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Query Geofence request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Geofence ID */
uint8_t geofenceId_valid; /**< Must be set to true if geofenceId is being passed */
uint32_t geofenceId;
/**< Identifier for the Geofence that was queried. */
/* Optional */
/* Transaction ID */
uint8_t transactionId_valid; /**< Must be set to true if transactionId is being passed */
uint32_t transactionId;
/**< Transaction ID that was specified in the Query
Geofence request. This parameter will always be present
if the status field is set to SUCCESS. */
/* Optional */
/* Geofence Origin */
uint8_t geofenceOrigin_valid; /**< Must be set to true if geofenceOrigin is being passed */
qmiLocGeofenceOriginEnumT_v02 geofenceOrigin;
/**< Originator of the Geofence.
Valid values: \n
- eQMI_LOC_GEOFENCE_ORIGIN_NETWORK (1) -- Geofence was initiated by a network-initiated client
- eQMI_LOC_GEOFENCE_ORIGIN_DEVICE (2) -- Geofence was initiated by the device
*/
/* Optional */
/* Position with Respect to Geofence */
uint8_t posWrtGeofence_valid; /**< Must be set to true if posWrtGeofence is being passed */
qmiLocGeofencePositionEnumT_v02 posWrtGeofence;
/**< Indicates if the client is currently inside or outside
the Geofence.
Valid values: \n
- eQMI_LOC_GEOFENCE_POSITION_INSIDE (0x01) -- Position is inside a Geofence
- eQMI_LOC_GEOFENCE_POSITION_OUTSIDE (0x02) -- Position is outside a Geofence
*/
/* Optional */
/* Circular Geofence Parameters */
uint8_t circularGeofenceArgs_valid; /**< Must be set to true if circularGeofenceArgs is being passed */
qmiLocCircularGeofenceArgsStructT_v02 circularGeofenceArgs;
/* Optional */
/* Geofence State */
uint8_t geofenceState_valid; /**< Must be set to true if geofenceState is being passed */
qmiLocGeofenceStateEnumT_v02 geofenceState;
/**< Specifies whether the Geofence is to be actively monitored.
Valid values: \n
- eQMI_LOC_GEOFENCE_STATE_ACTIVE (1) -- Geofence is being actively monitored
- eQMI_LOC_GEOFENCE_STATE_SUSPEND (2) -- Geofence monitoring is suspended
*/
}qmiLocQueryGeofenceIndMsgT_v02; /* Message */
/**
@}
*/
typedef uint32_t qmiLocMotionDetectionSourceMaskT_v02;
#define QMI_LOC_MOTION_DETECTION_SOURCE_SENSORS_V02 ((qmiLocMotionDetectionSourceMaskT_v02)0x00000001) /**< Sensors are used for motion detection */
#define QMI_LOC_MOTION_DETECTION_SOURCE_WIFI_V02 ((qmiLocMotionDetectionSourceMaskT_v02)0x00000002) /**< Wi-Fi is used for motion detection */
#define QMI_LOC_MOTION_DETECTION_SOURCE_WWAN_V02 ((qmiLocMotionDetectionSourceMaskT_v02)0x00000004) /**< Wireless WAN is used for motion detection */
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGEOFENCEMOTIONSTATESENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GEOFENCE_MOTION_STATE_STATIONARY_V02 = 0, /**< Motion state Stationary -- Handset is completely stationary */
eQMI_LOC_GEOFENCE_MOTION_STATE_FIDDLE_V02 = 1, /**< Motion state Fiddle -- Handset is not in motion but is being "fiddled" with */
eQMI_LOC_GEOFENCE_MOTION_STATE_WALK_V02 = 2, /**< Motion state Walk -- User is walking with the handset */
eQMI_LOC_GEOFENCE_MOTION_STATE_RUN_V02 = 3, /**< Motion state Run -- User is running with the handset */
eQMI_LOC_GEOFENCE_MOTION_STATE_DRIVE_V02 = 4, /**< Motion state Drive -- User is driving with the handset */
QMILOCGEOFENCEMOTIONSTATESENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGeofenceMotionStatesEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocGeofenceMotionStatesEnumT_v02 motionState;
/**< Motion state for which information is being configured. */
float motionStateSpeed;
/**< Motion state speed in milliseconds.
These are positive floating values.
The state speed must be configured carefully. Very low speed
configuration for a state may result in missing Geofence
breaches in some scenarios.
Typical motion state speeds: \n
- Stationary speed -- 0 meters/sec
- Fiddle speed -- 0 meters/sec \n
- Walk speed -- 3 meters/sec \n
- Run speed -- 8 meters/sec \n
- Drive speed -- 56 meters/sec
*/
}qmiLocGeofenceMotionStateConfigStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to set the Geofence engine configuration. */
typedef struct {
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Identifies the transaction. The transaction ID
is returned with the Set Geofence Configuration
indication. */
/* Optional */
/* GNSS Unavailable Indication Timeout */
uint8_t gnssUnavailableIndicationTimeout_valid; /**< Must be set to true if gnssUnavailableIndicationTimeout is being passed */
uint32_t gnssUnavailableIndicationTimeout;
/**< In a bad GNSS environment, this is the timeout after which the Geofence
engine sends out a GNSS Unavailable indication. The GNSS Unavailable
indication is sent under the following conditions: \begin{itemize1}
\item If gnssUnavailableIndicationTimeout is less than
gnssPositionSessionTimeout, the GNSS
Unavailable timeout indication is sent after
gnssPositionSessionTimeout expires
\item If gnssPositionSessionTimeout is less than
gnssUnavailableIndicationTimeout, the
GNSS Unavailable timeout indication is sent after
gnssUnavailableIndicationTimeout expires
\vspace{-0.18in} \end{itemize1} */
/* Optional */
/* Max Geofences */
uint8_t maxGeofences_valid; /**< Must be set to true if maxGeofences is being passed */
uint32_t maxGeofences;
/**< Identifies the maximum number of Geofences that can be supported by
the Geofence engine. If this number is less than the currently deployed
Geofences, this command fails.
If the command succeeds, the engine supports the maximum number of
Geofences requested, provided there is enough memory to support that
many Geofences. Increasing this value to a very large number in a
constrained memory environment might affect other modules negatively.
This value is determined by phone manufacturers. The default value
is 200. */
/* Optional */
/* Enable Motion Detection Sources */
uint8_t enableMotionDetectionSources_valid; /**< Must be set to true if enableMotionDetectionSources is being passed */
qmiLocMotionDetectionSourceMaskT_v02 enableMotionDetectionSources;
/**< Identifies the sources that can be enabled for motion detection by
the Geofence engine. The sources of motion detection that are enabled
by the Geofence engine are dependent on the platform.
These sources can only be set once at boot time and they are not expected to be changed after that.
Any attempt to set the value of the motion detection sources at runtime results in an undefined behavior.
Valid values: \n
- QMI_LOC_MOTION_DETECTION_SOURCE_SENSORS (0x00000001) -- Sensors are used for motion detection
- QMI_LOC_MOTION_DETECTION_SOURCE_WIFI (0x00000002) -- Wi-Fi is used for motion detection
- QMI_LOC_MOTION_DETECTION_SOURCE_WWAN (0x00000004) -- Wireless WAN is used for motion detection */
/* Optional */
/* Enable Coarse Position Injection Usage */
uint8_t enableCpiUsage_valid; /**< Must be set to true if enableCpiUsage is being passed */
uint8_t enableCpiUsage;
/**< Indicates whether external Coarse Position Injection (CPI) is used
by the Geofence engine.
\begin{itemize1}
\item 0x01 (TRUE) -- CPI is enabled (default)
\item 0x00 (FALSE) -- CPI is disabled
\vspace{-0.18in} \end{itemize1}*/
/* Optional */
/* GNSS Position QOS Session Timeout */
uint8_t gnssPositionSessionTimeout_valid; /**< Must be set to true if gnssPositionSessionTimeout is being passed */
uint32_t gnssPositionSessionTimeout;
/**< Identifies the session timeout value (in seconds) for requesting a
position in a bad GNSS environment.
Valid values: \begin{itemize1}
\item If the gnssUnavailableIndicationTimeout value is less than
gnssPositionSessionTimeout, in a bad GNSS environment, the GNSS
Unavailable timeout indication is sent after
gnssPositionSessionTimeout expires.
\item If gnssPositionSessionTimeout is less than gnssUnavailableIndicationTimeout,
in a bad GNSS environment, the GNSS Unavailable timeout indication
is sent after gnssUnavailableIndicationTimeout expires. \vspace{-0.18in} \end{itemize1}
*/
/* Optional */
/* GNSS Position Maximum Position Uncertainity Acceptable */
uint8_t gnssPositionMaxPuncAcceptable_valid; /**< Must be set to true if gnssPositionMaxPuncAcceptable is being passed */
uint32_t gnssPositionMaxPuncAcceptable;
/**< GNSS maximum position uncertainity in meters acceptable by
the Geofence engine.
Valid values: \n
- All positive values
*/
/* Optional */
/* Medium Responsiveness Value */
uint8_t mediumResponsivenessValue_valid; /**< Must be set to true if mediumResponsivenessValue is being passed */
uint32_t mediumResponsivenessValue;
/**< Medium responsiveness value in seconds that the Geofence engine
uses for all medium responsiveness Geofences in the Geofence engine.
Valid values: \begin{itemize1}
\item Positive values (in seconds)
\item If the value is configured for less than 30 sec, the value is
set at 30 sec
\item If the value is configured for more than 600 sec, the value is
set at 600 sec
\item Default -- The Geofence engine uses 120 sec as the medium
responsiveness value
\end{itemize1}
If the medium responsiveness value is changed, the responsiveness
of the existing medium responsiveness Geofence does not change until the next
position fix, which is based on the previous medium responsiveness
setting.
*/
/* Optional */
/* Challenging GNSS Environment Minimum CPI Wait Interval */
uint8_t chalGnssEnvMinCpiWaitInterval_valid; /**< Must be set to true if chalGnssEnvMinCpiWaitInterval is being passed */
uint32_t chalGnssEnvMinCpiWaitInterval;
/**< Number of seconds that the Geofence engine is to wait between
CPI requests in challenging a GNSS environment.
Valid values: \n
- Positive values (in seconds)
*/
/* Optional */
/* Geofence Motion State Information */
uint8_t motionStateInfo_valid; /**< Must be set to true if motionStateInfo is being passed */
uint32_t motionStateInfo_len; /**< Must be set to # of elements in motionStateInfo */
qmiLocGeofenceMotionStateConfigStructT_v02 motionStateInfo[QMI_LOC_GEOFENCE_MAX_MOTION_STATES_V02];
/**< \vspace{4pt} \n Motion state informatino (e.g., motion state speed) that the
Geofence engine is to use.
*/
}qmiLocSetGeofenceEngineConfigReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to set the Geofence engine configuration. */
typedef struct {
/* Mandatory */
/* Set Geofence Engine Configuration Status. */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set Geofence Engine Configuration request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
/* Optional */
/* Transaction ID */
uint8_t transactionId_valid; /**< Must be set to true if transactionId is being passed */
uint32_t transactionId;
/**< Transaction ID that was specified in the Set Geofence Configuration
request. This parameter is always present if the status
field is set to SUCCESS. */
}qmiLocSetGeofenceEngineConfigIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to get the Geofence engine configuration. */
typedef struct {
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Identifies the transaction. The transaction ID
is returned with the Get Geofence Engine Configuration
indication. */
}qmiLocGetGeofenceEngineConfigReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to get the Geofence engine configuration. */
typedef struct {
/* Mandatory */
/* Get Geofence Engine Configuration Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Geofence Engine Configuration request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
/* Optional */
/* Transaction ID */
uint8_t transactionId_valid; /**< Must be set to true if transactionId is being passed */
uint32_t transactionId;
/**< Transaction ID that was specified in the Get Geofence Engine Configuration
request. This parameter is always present
if the status field is set to SUCCESS. */
/* Optional */
/* GPS Unavailable Indication Timeout */
uint8_t gnssUnavailableIndicationTimeout_valid; /**< Must be set to true if gnssUnavailableIndicationTimeout is being passed */
uint32_t gnssUnavailableIndicationTimeout;
/**< In a bad GNSS environment, the timeout after which the Geofence engine
sends out a GNSS unavailable indication. */
/* Optional */
/* Max Geofences */
uint8_t maxGeofences_valid; /**< Must be set to true if maxGeofences is being passed */
uint32_t maxGeofences;
/**< Identifies the maximum number of Geofences that are currently supported
in the Geofence engine. */
/* Optional */
/* Enabled Motion Detection Sources */
uint8_t enabledMotionDetectionSources_valid; /**< Must be set to true if enabledMotionDetectionSources is being passed */
qmiLocMotionDetectionSourceMaskT_v02 enabledMotionDetectionSources;
/**< Identifies the sources that are currently enabled for motion detection
by the Geofence engine.
Valid values: \n
- QMI_LOC_MOTION_DETECTION_SOURCE_SENSORS (0x00000001) -- Sensors are used for motion detection
- QMI_LOC_MOTION_DETECTION_SOURCE_WIFI (0x00000002) -- Wi-Fi is used for motion detection
- QMI_LOC_MOTION_DETECTION_SOURCE_WWAN (0x00000004) -- Wireless WAN is used for motion detection */
/* Optional */
/* Enabled for CPI Position Injection Usage */
uint8_t enabledCpiUsage_valid; /**< Must be set to true if enabledCpiUsage is being passed */
uint8_t enabledCpiUsage;
/**< Indicates whether CPI usage is enabled.
\begin{itemize1}
\item 0x01 (TRUE) -- CPI usage is enabled
\item 0x00 (FALSE) -- CPI usage is disabled
\vspace{-0.18in} \end{itemize1}*/
}qmiLocGetGeofenceEngineConfigIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to edit a Geofence. */
typedef struct {
/* Mandatory */
/* Geofence ID */
uint32_t geofenceId;
/**< Identifier for the Geofence to be edited. */
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Transaction ID that was specified in the Edit Geofence
request. This parameter will always be present if the
status field is set to SUCCESS.
*/
/* Optional */
/* Geofence State */
uint8_t geofenceState_valid; /**< Must be set to true if geofenceState is being passed */
qmiLocGeofenceStateEnumT_v02 geofenceState;
/**< Specifies whether the Geofence is to be actively monitored.
Valid values: \n
- eQMI_LOC_GEOFENCE_STATE_ACTIVE (1) -- Geofence is being actively monitored
- eQMI_LOC_GEOFENCE_STATE_SUSPEND (2) -- Geofence monitoring is suspended
*/
/* Optional */
/* Breach Event Mask */
uint8_t breachMask_valid; /**< Must be set to true if breachMask is being passed */
qmiLocGeofenceBreachMaskT_v02 breachMask;
/**< Specifies the breach events in which the client is interested.
Valid values: \begin{itemize1}
\item 0x01 -- GEOFENCE_BREACH_ ENTERING_MASK
\item 0x02 -- GEOFENCE_BREACH_ LEAVING_MASK
\vspace{-0.18in} \end{itemize1} */
/* Optional */
/* Responsiveness */
uint8_t responsiveness_valid; /**< Must be set to true if responsiveness is being passed */
qmiLocGeofenceResponsivenessEnumT_v02 responsiveness;
/**< Specifies the rate of detection for a Geofence breach.
This may impact the time lag between the actual breach event and
when it is reported. This parameter has power implications
and is to be fine-tuned to optimize power savings.
Valid values: \n
- eQMI_LOC_GEOFENCE_RESPONSIVENESS_LOW (0x01) -- The Geofence is monitored for a breach at a
low rate of 15 minutes. The gap between the actual breach and
the time it is reported is higher. This
setting results in lower power usage.
- eQMI_LOC_GEOFENCE_RESPONSIVENESS_MED (0x02) -- The Geofence is monitored for a breach at a
medium rate of 2 minutes. This is the default setting.
- eQMI_LOC_GEOFENCE_RESPONSIVENESS_HIGH (0x03) -- The Geofence is monitored for a breach at a
high rate of 10 seconds. The gap between the actual breach and
the time it is reported is low. This results
in higher power usage.
- eQMI_LOC_GEOFENCE_RESPONSIVENESS_ULTRA_HIGH (0x04) -- The Geofence is monitored for a breach at a
very high rate of 1 second. The gap between the actual breach and
the time it is reported is very low. This results
in very high power usage. This setting must be avoided whenever
possible because of the drastic power implications.
- eQMI_LOC_GEOFENCE_RESPONSIVENESS_CUSTOM (0x05) -- The Geofence is monitored for a breach at a
user defined rate. The gap between the actual breach and
the time it is reported depends on the user setting. The power implication
is inversely proportional to the responsiveness value set by the user.
The higher the responsiveness value, the lower the power implications, and vice-versa.
*/
}qmiLocEditGeofenceReqMsgT_v02; /* Message */
/**
@}
*/
typedef uint32_t qmiLocGeofenceConfigParamMaskT_v02;
#define QMI_LOC_GEOFENCE_PARAM_MASK_GEOFENCE_STATE_V02 ((qmiLocGeofenceConfigParamMaskT_v02)0x00000001) /**< Mask for the Geofence state parameter. */
#define QMI_LOC_GEOFENCE_PARAM_MASK_BREACH_MASK_V02 ((qmiLocGeofenceConfigParamMaskT_v02)0x00000002) /**< Mask for Geofence breach mask parameter. */
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to edit a Geofence. */
typedef struct {
/* Mandatory */
/* Edit Geofence Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Edit Geofence request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
/* Optional */
/* Geofence ID */
uint8_t geofenceId_valid; /**< Must be set to true if geofenceId is being passed */
uint32_t geofenceId;
/**< Identifier for the Geofence that was edited. */
/* Optional */
/* Transaction ID */
uint8_t transactionId_valid; /**< Must be set to true if transactionId is being passed */
uint32_t transactionId;
/**< Identifies the transaction. The transaction ID
is specified in the Edit Geofence request. */
/* Optional */
/* Failed Parameters */
uint8_t failedParams_valid; /**< Must be set to true if failedParams is being passed */
qmiLocGeofenceConfigParamMaskT_v02 failedParams;
/**< Specified only when the status is not set to SUCCESS. If
the mask corresponding to a field is set, it indicates that
the Geofence parameter could not be edited.
Valid values: \begin{itemize1}
\item 0x00000001 -- GEOFENCE_PARAM_ MASK_GEOFENCE_STATE
\item 0x00000002 -- GEOFENCE_PARAM_ MASK_BREACH_MASK
\vspace{-0.18in} \end{itemize1} */
}qmiLocEditGeofenceIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Requests the control point to get time zone information. */
typedef struct {
/* Mandatory */
/* Get Time Zone Info Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Time Zone Info request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
}qmiLocEventGetTimeZoneReqIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint64_t dstOffset;
/**< Offset for Daylight Savings Time in seconds. This is zero if the time zone is not in Daylight Savings
Time during the specified UTC timestamp. */
uint64_t rawOffset;
/**< Offset from UTC (in seconds) for the current location. This does not take daylight savings into account. */
}qmiLocTimeZoneStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to inject time zone information. */
typedef struct {
/* Mandatory */
/* UTC Time */
uint64_t timeUtc;
/**< UTC time since Jan. 1, 1970.\n
- Units: Milliseconds */
/* Mandatory */
/* Time Zone Information */
qmiLocTimeZoneStructT_v02 timeZone;
}qmiLocInjectTimeZoneInfoReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to inject time zone information. */
typedef struct {
/* Mandatory */
/* Inject Time Zone Info Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the inject time zone information.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
}qmiLocInjectTimeZoneInfoIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to get the best available
position estimate from the location engine. */
typedef struct {
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Identifies the transaction. The transaction ID
is returned in the Get Best Available Position indication. */
}qmiLocGetBestAvailablePositionReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to get the best available
position estimate from the location engine. */
typedef struct {
/* Mandatory */
/* Get Best Available Position Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Best Available Position request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
/* Optional */
/* Transaction ID */
uint8_t transactionId_valid; /**< Must be set to true if transactionId is being passed */
uint32_t transactionId;
/**< Transaction ID that was specified in the Get Best
Available Position request. This parameter will
always be present if the status field is set to
SUCCESS. */
/* Optional */
/* Latitude */
uint8_t latitude_valid; /**< Must be set to true if latitude is being passed */
double latitude;
/**< Latitude (specified in WGS84 datum).
\begin{itemize1}
\item Type: Floating point
\item Units: Degrees
\item Range: -90.0 to 90.0 \begin{itemize1}
\item Positive values indicate northern latitude
\item Negative values indicate southern latitude
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
/* Optional */
/* Longitude */
uint8_t longitude_valid; /**< Must be set to true if longitude is being passed */
double longitude;
/**< Longitude (specified in WGS84 datum).
\begin{itemize1}
\item Type: Floating point
\item Units: Degrees
\item Range: -180.0 to 180.0 \begin{itemize1}
\item Positive values indicate eastern longitude
\item Negative values indicate western longitude
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
/* Optional */
/* Circular Horizontal Position Uncertainty */
uint8_t horUncCircular_valid; /**< Must be set to true if horUncCircular is being passed */
float horUncCircular;
/**< Horizontal position uncertainty (circular).\n
- Units: Meters */
/* Optional */
/* Altitude With Respect to Ellipsoid */
uint8_t altitudeWrtEllipsoid_valid; /**< Must be set to true if altitudeWrtEllipsoid is being passed */
float altitudeWrtEllipsoid;
/**< Altitude with respect to the WGS84 ellipsoid.\n
- Units: Meters \n
- Range: -500 to 15883 */
/* Optional */
/* Vertical Uncertainty */
uint8_t vertUnc_valid; /**< Must be set to true if vertUnc is being passed */
float vertUnc;
/**< Vertical uncertainty.\n
- Units: Meters */
/* Optional */
/* UTC Timestamp */
uint8_t timestampUtc_valid; /**< Must be set to true if timestampUtc is being passed */
uint64_t timestampUtc;
/**< UTC timestamp.
\begin{itemize1}
\item Units: Milliseconds since Jan. 1, 1970
\vspace{-0.18in} \end{itemize1} */
/* Optional */
/* Time Uncertainty */
uint8_t timeUnc_valid; /**< Must be set to true if timeUnc is being passed */
float timeUnc;
/**< Time uncertainty. \n
- Units: Milliseconds */
/* Optional */
/* Horizontal Elliptical Uncertainty Semi-Minor Axis */
uint8_t horUncEllipseSemiMinor_valid; /**< Must be set to true if horUncEllipseSemiMinor is being passed */
float horUncEllipseSemiMinor;
/**< Semi-minor axis of horizontal elliptical uncertainty. \n
- Units: Meters */
/* Optional */
/* Horizontal Elliptical Uncertainty Semi-Major Axis */
uint8_t horUncEllipseSemiMajor_valid; /**< Must be set to true if horUncEllipseSemiMajor is being passed */
float horUncEllipseSemiMajor;
/**< Semi-major axis of horizontal elliptical uncertainty. \n
- Units: Meters */
/* Optional */
/* Horizontal Elliptical Uncertainty Azimuth */
uint8_t horUncEllipseOrientAzimuth_valid; /**< Must be set to true if horUncEllipseOrientAzimuth is being passed */
float horUncEllipseOrientAzimuth;
/**< Elliptical horizontal uncertainty azimuth of orientation. \n
- Units: Decimal degrees \n
- Range: 0 to 180 */
/* Optional */
/* Horizontal Circular Confidence */
uint8_t horCircularConfidence_valid; /**< Must be set to true if horCircularConfidence is being passed */
uint8_t horCircularConfidence;
/**< Horizontal circular uncertainty confidence. \n
- Units: Percent \n
- Range: 0 to 99 */
/* Optional */
/* Horizontal Elliptical Confidence */
uint8_t horEllipticalConfidence_valid; /**< Must be set to true if horEllipticalConfidence is being passed */
uint8_t horEllipticalConfidence;
/**< Horizontal elliptical uncertainty confidence. \n
- Units: Percent \n
- Range: 0 to 99 */
/* Optional */
/* Horizontal Reliability */
uint8_t horReliability_valid; /**< Must be set to true if horReliability is being passed */
qmiLocReliabilityEnumT_v02 horReliability;
/**< Specifies the reliability of the horizontal position.
Valid values: \n
- eQMI_LOC_RELIABILITY_NOT_SET (0) -- Location reliability is not set
- eQMI_LOC_RELIABILITY_VERY_LOW (1) -- Location reliability is very low; use it at your own risk
- eQMI_LOC_RELIABILITY_LOW (2) -- Location reliability is low; little or no cross-checking is possible
- eQMI_LOC_RELIABILITY_MEDIUM (3) -- Location reliability is medium; limited cross-check passed
- eQMI_LOC_RELIABILITY_HIGH (4) -- Location reliability is high; strong cross-check passed
*/
/* Optional */
/* Horizontal Speed */
uint8_t horSpeed_valid; /**< Must be set to true if horSpeed is being passed */
float horSpeed;
/**< Horizontal speed. \n
- Units: Meters/second */
/* Optional */
/* Horizontal Speed Uncertainty */
uint8_t horSpeedUnc_valid; /**< Must be set to true if horSpeedUnc is being passed */
float horSpeedUnc;
/**< Horizontal speed uncertainty. \n
- Units: Meters/second */
/* Optional */
/* Altitude With Respect to Sea Level */
uint8_t altitudeWrtMeanSeaLevel_valid; /**< Must be set to true if altitudeWrtMeanSeaLevel is being passed */
float altitudeWrtMeanSeaLevel;
/**< Altitude with respect to mean sea level. \n
- Units: Meters */
/* Optional */
/* Vertical Confidence */
uint8_t vertConfidence_valid; /**< Must be set to true if vertConfidence is being passed */
uint8_t vertConfidence;
/**< Vertical uncertainty confidence. \n
- Units: Percent \n
- Range: 0 to 99 */
/* Optional */
/* Vertical Reliability */
uint8_t vertReliability_valid; /**< Must be set to true if vertReliability is being passed */
qmiLocReliabilityEnumT_v02 vertReliability;
/**< Specifies the reliability of the vertical position.
Valid values: \n
- eQMI_LOC_RELIABILITY_NOT_SET (0) -- Location reliability is not set
- eQMI_LOC_RELIABILITY_VERY_LOW (1) -- Location reliability is very low; use it at your own risk
- eQMI_LOC_RELIABILITY_LOW (2) -- Location reliability is low; little or no cross-checking is possible
- eQMI_LOC_RELIABILITY_MEDIUM (3) -- Location reliability is medium; limited cross-check passed
- eQMI_LOC_RELIABILITY_HIGH (4) -- Location reliability is high; strong cross-check passed
*/
/* Optional */
/* Vertical Speed */
uint8_t vertSpeed_valid; /**< Must be set to true if vertSpeed is being passed */
float vertSpeed;
/**< Vertical speed. \n
- Units: Meters/second */
/* Optional */
/* Vertical Speed Uncertainty */
uint8_t vertSpeedUnc_valid; /**< Must be set to true if vertSpeedUnc is being passed */
float vertSpeedUnc;
/**< Vertical speed uncertainty. \n
- Units: Meters/second */
/* Optional */
/* Heading */
uint8_t heading_valid; /**< Must be set to true if heading is being passed */
float heading;
/**< Heading. \n
- Units: Degrees \n
- Range: 0 to 359.999 */
/* Optional */
/* Heading Uncertainty */
uint8_t headingUnc_valid; /**< Must be set to true if headingUnc is being passed */
float headingUnc;
/**< Heading uncertainty. \n
- Type: Floating point \n
- Range: 0 to 359.999 */
/* Optional */
/* Magnetic Deviation */
uint8_t magneticDeviation_valid; /**< Must be set to true if magneticDeviation is being passed */
float magneticDeviation;
/**< Difference between the bearing to true north and the bearing shown
on a magnetic compass. The deviation is positive when the magnetic
north is east of true north. */
/* Optional */
/* Technology Used Mask */
uint8_t technologyMask_valid; /**< Must be set to true if technologyMask is being passed */
qmiLocPosTechMaskT_v02 technologyMask;
/**< Technology used in computing this fix.
Valid bitmasks: \n
- QMI_LOC_POS_TECH_MASK_SATELLITE (0x00000001) -- Satellites were used to generate the fix
- QMI_LOC_POS_TECH_MASK_CELLID (0x00000002) -- Cell towers were used to generate the fix
- QMI_LOC_POS_TECH_MASK_WIFI (0x00000004) -- Wi-Fi access points were used to generate the fix
- QMI_LOC_POS_TECH_MASK_SENSORS (0x00000008) -- Sensors were used to generate the fix
- QMI_LOC_POS_TECH_MASK_REFERENCE_LOCATION (0x00000010) -- Reference Location was used to generate the fix
- QMI_LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION (0x00000020) -- Coarse position injected into the location engine was used to
generate the fix
- QMI_LOC_POS_TECH_MASK_AFLT (0x00000040) -- AFLT was used to generate the fix
- QMI_LOC_POS_TECH_MASK_HYBRID (0x00000080) -- GNSS and network-provided measurements were used to
generate the fix
*/
/* Optional */
/* Dilution of Precision */
uint8_t DOP_valid; /**< Must be set to true if DOP is being passed */
qmiLocDOPStructT_v02 DOP;
/* Optional */
/* GPS Time */
uint8_t gpsTime_valid; /**< Must be set to true if gpsTime is being passed */
qmiLocGPSTimeStructT_v02 gpsTime;
/* Optional */
/* Time Source */
uint8_t timeSrc_valid; /**< Must be set to true if timeSrc is being passed */
qmiLocTimeSourceEnumT_v02 timeSrc;
/**< Time source.
Valid values: \n
- eQMI_LOC_TIME_SRC_INVALID (0) -- Invalid time.
- eQMI_LOC_TIME_SRC_NETWORK_TIME_TRANSFER (1) -- Time is set by the 1X system
- eQMI_LOC_TIME_SRC_NETWORK_TIME_TAGGING (2) -- Time is set by WCDMA/GSM time tagging (that is,
associating network time with GPS time)
- eQMI_LOC_TIME_SRC_EXTERNAL_INPUT (3) -- Time is set by an external injection
- eQMI_LOC_TIME_SRC_TOW_DECODE (4) -- Time is set after decoding over-the-air GPS navigation data
from one GPS satellite
- eQMI_LOC_TIME_SRC_TOW_CONFIRMED (5) -- Time is set after decoding over-the-air GPS navigation data
from multiple satellites
- eQMI_LOC_TIME_SRC_TOW_AND_WEEK_CONFIRMED (6) -- Both time of the week and the GPS week number are known
- eQMI_LOC_TIME_SRC_NAV_SOLUTION (7) -- Time is set by the position engine after the fix is obtained
- eQMI_LOC_TIME_SRC_SOLVE_FOR_TIME (8) -- Time is set by the position engine after performing SFT;
this is done when the clock time uncertainty is large
- eQMI_LOC_TIME_SRC_GLO_TOW_DECODE (9) -- Time is set after decoding GLO satellites
- eQMI_LOC_TIME_SRC_TIME_TRANSFORM (10) -- Time is set after transforming the GPS to GLO time
- eQMI_LOC_TIME_SRC_WCDMA_SLEEP_TIME_TAGGING (11) -- Time is set by the sleep time tag provided by the WCDMA network
- eQMI_LOC_TIME_SRC_GSM_SLEEP_TIME_TAGGING (12) -- Time is set by the sleep time tag provided by the GSM network
- eQMI_LOC_TIME_SRC_UNKNOWN (13) -- Source of the time is unknown
- eQMI_LOC_TIME_SRC_SYSTEM_TIMETICK (14) -- Time is derived from the system clock (better known as the slow clock);
GNSS time is maintained irrespective of the GNSS receiver state
- eQMI_LOC_TIME_SRC_QZSS_TOW_DECODE (15) -- Time is set after decoding QZSS satellites
- eQMI_LOC_TIME_SRC_BDS_TOW_DECODE (16) -- Time is set after decoding BDS satellites
- eQMI_LOC_TIME_SRC_GAL_TOW_DECODE (17) -- Time is set after decoding GAL satellites
*/
/* Optional */
/* Sensor Data Usage */
uint8_t sensorDataUsage_valid; /**< Must be set to true if sensorDataUsage is being passed */
qmiLocSensorUsageIndicatorStructT_v02 sensorDataUsage;
/* Optional */
/* SVs Used to Calculate the Fix */
uint8_t gnssSvUsedList_valid; /**< Must be set to true if gnssSvUsedList is being passed */
uint32_t gnssSvUsedList_len; /**< Must be set to # of elements in gnssSvUsedList */
uint16_t gnssSvUsedList[QMI_LOC_MAX_SV_USED_LIST_LENGTH_V02];
/**< Each entry in the list contains the SV ID of a satellite
used for calculating this position report. The following
information is associated with each SV ID: \n
Range: \n
- For GPS: 1 to 32 \n
- For GLONASS: 65 to 96 \n
- For SBAS: 120 to 158 and 183 to 187 \n
- For QZSS: 193 to 197 \n
- For BDS: 201 to 237 \n
- For GAL: 301 to 336
*/
}qmiLocGetBestAvailablePositionIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCMOTIONSTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_MOTION_STATE_UNKNOWN_V02 = 0, /**< Device state is not known */
eQMI_LOC_MOTION_STATE_STATIONARY_V02 = 1, /**< Device state is Stationary */
eQMI_LOC_MOTION_STATE_IN_MOTION_V02 = 2, /**< Device state is In Motion */
QMILOCMOTIONSTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocMotionStateEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCMOTIONMODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_MOTION_MODE_UNKNOWN_V02 = 0, /**< Device movement is not known */
eQMI_LOC_MOTION_MODE_STATIONARY_V02 = 1, /**< Device is not moving */
eQMI_LOC_MOTION_MODE_PEDESTRIAN_UNKNOWN_V02 = 200, /**< Device movement is in Pedestrian mode; nothing else is known about the movement */
eQMI_LOC_MOTION_MODE_PEDESTRIAN_WALKING_V02 = 201, /**< Device movement is in pedestrian Walking mode */
eQMI_LOC_MOTION_MODE_PEDESTRIAN_RUNNING_V02 = 202, /**< Device movement is in pedestrian Running mode */
eQMI_LOC_MOTION_MODE_VEHICLE_UNKNOWN_V02 = 300, /**< Device movement is in Vehicular mode; nothing else is known about the movement */
QMILOCMOTIONMODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocMotionModeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocMotionStateEnumT_v02 motion_state;
/**< Current motion state of the user.
Valid values: \n
- eQMI_LOC_MOTION_STATE_UNKNOWN (0) -- Device state is not known
- eQMI_LOC_MOTION_STATE_STATIONARY (1) -- Device state is Stationary
- eQMI_LOC_MOTION_STATE_IN_MOTION (2) -- Device state is In Motion
*/
qmiLocMotionModeEnumT_v02 motion_mode;
/**< Modes of user motion.
Valid values: \n
- eQMI_LOC_MOTION_MODE_UNKNOWN (0) -- Device movement is not known
- eQMI_LOC_MOTION_MODE_STATIONARY (1) -- Device is not moving
- eQMI_LOC_MOTION_MODE_PEDESTRIAN_UNKNOWN (200) -- Device movement is in Pedestrian mode; nothing else is known about the movement
- eQMI_LOC_MOTION_MODE_PEDESTRIAN_WALKING (201) -- Device movement is in pedestrian Walking mode
- eQMI_LOC_MOTION_MODE_PEDESTRIAN_RUNNING (202) -- Device movement is in pedestrian Running mode
- eQMI_LOC_MOTION_MODE_VEHICLE_UNKNOWN (300) -- Device movement is in Vehicular mode; nothing else is known about the movement
*/
float probability_of_state;
/**< Probability that the device is actually undergoing the motion state
specified by the combination of the values of motion_state, motion_mode,
and motion_sub_mode. \vspace{0.1in}
This value is a floating point number in the range of 0 to 100, in
units of percent probability. Any value greater than 99.9999 is
applied as 99.9999. \vspace{0.1in}
It is recommended that if a particular combination of motion_state and
motion_mode cannot be determined with more than 50 percent confidence,
that a more general statement of user motion be made.
For example, if the mode of In-Motion + Pedestrian-Running can only be
determined with 50 percent probability, and the simpler statement of In-Motion
can be determined with 90 percent probability, it is recommended that this field
be used to simply state In-Motion with 90 percent probability. \vspace{0.1in}
If the motion_state is not known, the value in this field is not used.
*/
uint16_t age;
/**< Age of the motion data in milliseconds at the time of injection.
*/
uint16_t timeout;
/**< If the age of the motion data input exceeds the timeout value, the data
will no longer be used. The timeout value is in units of milliseconds.
Values in the range of 0 to 10000 are accepted. If 65535 is provided,
the motion data input is applied until the next input is
received. \n
If the determination of motion data is an instantaneous observation
and no notice is guaranteed to be given via the QMI on a change in the
state of the motion data, it is recommended that this field be set to 0. \vspace{0.1in}
If the determination of motion data is continuously monitored
external to the QMI and an update is always applied to the QMI upon any
change in state, a value of 65535 is used for this field.
Note that in this case, if a certain mode is set and is not later
unset (e.g., by sending in the request message with a user motion
state of Unknown), the value is applied indefinitely.
*/
}qmiLocMotionDataStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Injects motion data for MSM GPS service use. */
typedef struct {
/* Mandatory */
/* Motion Data */
qmiLocMotionDataStructT_v02 motion_data;
}qmiLocInjectMotionDataReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Injects motion data for MSM GPS service use. */
typedef struct {
/* Mandatory */
/* Inject Motion Data Request Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Inject Motion Data request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocInjectMotionDataIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to retrieve the list of network
initiated Geofence IDs. */
typedef struct {
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Identifies the transaction. The same transaction ID
will be returned in the Get NI Geofence ID List indication. */
}qmiLocGetNiGeofenceIdListReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to retrieve the list of network
initiated Geofence IDs. */
typedef struct {
/* Mandatory */
/* Get NI Geofence ID List Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get NI Geofence ID List request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
/* Optional */
/* Transaction ID */
uint8_t transactionId_valid; /**< Must be set to true if transactionId is being passed */
uint32_t transactionId;
/**< Transaction ID that was specified in the Get NI
Geofence ID List request. */
/* Optional */
/* NI Geofence ID List */
uint8_t niGeofenceIdList_valid; /**< Must be set to true if niGeofenceIdList is being passed */
uint32_t niGeofenceIdList_len; /**< Must be set to # of elements in niGeofenceIdList */
uint32_t niGeofenceIdList[QMI_LOC_MAX_NI_GEOFENCE_ID_LIST_LENGTH_V02];
/**< List containing the NI Geofence IDs.
- Type: Array of unsigned 32-bit integers \n
- Maximum NI Geofence ID List length: 16 */
}qmiLocGetNiGeofenceIdListIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint32_t MCC;
/**< GSM mobile country code. Refer to ITU-T E.212 \hyperref[ITU-T E.212]{ITU-T E.212}. */
uint32_t MNC;
/**< GSM mobile network code. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
uint32_t LAC;
/**< GSM location area code. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
uint32_t CID;
/**< GSM cell identification. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
}qmiLocGSMCellIdStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Injects GSM cell information into the location
engine. */
typedef struct {
/* Mandatory */
/* GSM Cell ID */
qmiLocGSMCellIdStructT_v02 gsmCellId;
/**< \vspace{0.06in} \n Identifies the GSM cell on which the device is currently camped. */
/* Mandatory */
/* Roaming Status */
uint8_t roamingStatus;
/**< Indicates whether the device is roaming.
\begin{itemize1}
\item 0x01 (TRUE) -- Device is roaming
\item 0x00 (FALSE) -- Device is not roaming
\vspace{-0.18in} \end{itemize1}*/
/* Optional */
/* Timing Advance */
uint8_t timingAdvance_valid; /**< Must be set to true if timingAdvance is being passed */
uint32_t timingAdvance;
/**< Round trip delay between the MS and the BS, in units of 3.69 microseconds.
Refer to 3GPP \hyperref[TS 05.10]{TS 05.10} and \hyperref[TS 45.010]{TS 45.010}. */
}qmiLocInjectGSMCellInfoReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Injects GSM cell information into the location
engine. */
typedef struct {
/* Mandatory */
/* Inject GSM Cell Info Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Inject GSM Cell Info request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
}qmiLocInjectGSMCellInfoIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCROAMINGSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_PHONE_NOT_ROAMING_V02 = 1, /**< Modem is camped on a home network */
eQMI_LOC_PHONE_ROAMING_V02 = 2, /**< Modem is camped on a roaming network */
QMILOCROAMINGSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocRoamingStatusEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint32_t mcc;
/**< WCDMA mobile country code. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
uint32_t mnc;
/**< WCDMA mobile network code. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
uint32_t cid;
/**< WCDMA cell identity. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
}qmiLocWCDMACellIdStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Injects WCDMA cell information into the location
engine. */
typedef struct {
/* Mandatory */
/* WCDMA Cell ID */
qmiLocWCDMACellIdStructT_v02 wcdmaCellId;
/**< \n Identifies the WCDMA cell on which the device is currently camped. */
/* Mandatory */
/* Roaming Status */
qmiLocRoamingStatusEnumT_v02 roamingStatus;
/**< Indicates whether the device is roaming.
Valid values: \n
- eQMI_LOC_PHONE_NOT_ROAMING (1) -- Modem is camped on a home network
- eQMI_LOC_PHONE_ROAMING (2) -- Modem is camped on a roaming network
*/
/* Optional */
/* Cell Frequency */
uint8_t freq_valid; /**< Must be set to true if freq is being passed */
uint32_t freq;
/**< Frequency information of the serving cell. \n
Valid range: 0 to 16383 \n
Refer to 3GPP \hyperref[TS 25.331]{TS 25.331}. */
/* Optional */
/* Primary Scrambling Code */
uint8_t psc_valid; /**< Must be set to true if psc is being passed */
uint32_t psc;
/**< Primary scrambling code of the serving cell. \n
Valid range: 0 to 511 \n
Refer to 3GPP \hyperref[TS 25.331]{TS 25.331}. */
}qmiLocInjectWCDMACellInfoReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Injects WCDMA cell information into the location
engine. */
typedef struct {
/* Mandatory */
/* Inject WCDMA Cell Info Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Inject WCDMA Cell Info request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
}qmiLocInjectWCDMACellInfoIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint32_t mcc;
/**< TDSCDMA mobile country code. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
uint32_t mnc;
/**< TDSCDMA mobile network code. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
uint32_t cid;
/**< TDSCDMA cell identity. Refer to 3GPP \hyperref[TS 25.331]{TS 25.331}. */
uint32_t lac;
/**< TDSCDMA location area code. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
}qmiLocTDSCDMACellIdStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Injects TDSCDMA cell information into the location
engine. */
typedef struct {
/* Mandatory */
/* TDSCDMA Cell ID */
qmiLocTDSCDMACellIdStructT_v02 tdscdmaCellId;
/**< \n Identifies the TDSCDMA cell on which the device is currently camped. */
/* Mandatory */
/* Roaming Status */
qmiLocRoamingStatusEnumT_v02 roamingStatus;
/**< Indicates whether the device is roaming.
Valid values: \n
- eQMI_LOC_PHONE_NOT_ROAMING (1) -- Modem is camped on a home network
- eQMI_LOC_PHONE_ROAMING (2) -- Modem is camped on a roaming network
*/
/* Optional */
/* Cell Frequency */
uint8_t freq_valid; /**< Must be set to true if freq is being passed */
uint32_t freq;
/**< Frequency information of the serving cell. \n
Valid range: 0 to 16383 \n
Refer to 3GPP \hyperref[TS 25.331]{TS 25.331}. */
}qmiLocInjectTDSCDMACellInfoReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Injects TDSCDMA cell information into the location
engine. */
typedef struct {
/* Mandatory */
/* Inject TDSCDMA Cell Info Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Inject TDSCDMA Cell Info request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
}qmiLocInjectTDSCDMACellInfoIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Injects the phone's subscriber ID into the location engine. */
typedef struct {
/* Optional */
/* Preferred IMSI */
uint8_t preferredIMSI_valid; /**< Must be set to true if preferredIMSI is being passed */
uint64_t preferredIMSI;
/**< IMSI number of the preferred RAT. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}.*/
/* Optional */
/* Preferred MSISDN */
uint8_t preferredMSISDN_valid; /**< Must be set to true if preferredMSISDN is being passed */
uint64_t preferredMSISDN;
/**< MSISDN number of the preferred RAT. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}.*/
}qmiLocInjectSubscriberIDReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Injects the phone's subscriber ID into the location engine. */
typedef struct {
/* Mandatory */
/* Inject Subscriber ID Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Inject Subscriber ID request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
}qmiLocInjectSubscriberIDIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCINJECTEDNETWORKINITIATEDMESSAGETYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_INJECTED_NETWORK_INITIATED_MESSAGE_TYPE_SUPL_V02 = 0, /**< SUPL network-initiated message is being injected. */
QMILOCINJECTEDNETWORKINITIATEDMESSAGETYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocInjectedNetworkInitiatedMessageTypeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Injects a network-initiated message into the location
engine. */
typedef struct {
/* Mandatory */
/* Injected Network Initiated Message Type */
qmiLocInjectedNetworkInitiatedMessageTypeEnumT_v02 injectedNIMessageType;
/**< Type of the network-initiated message being injected.
Valid values: \n
- eQMI_LOC_INJECTED_NETWORK_INITIATED_MESSAGE_TYPE_SUPL (0) -- SUPL network-initiated message is being injected. */
/* Mandatory */
/* Injected Network Initiated Message */
uint32_t injectedNIMessage_len; /**< Must be set to # of elements in injectedNIMessage */
uint8_t injectedNIMessage[QMI_LOC_MAX_INJECTED_NETWORK_INITIATED_MESSAGE_LENGTH_V02];
/**< Network-initiated message body.
If the inject NI message type is TYPE_SUPL, the message contains
a SUPL INIT message as defined in OMA-TS-ULP-V2_\hyperref[0-20110527-C]{0-20110527-C}. */
}qmiLocInjectNetworkInitiatedMessageReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Injects a network-initiated message into the location
engine. */
typedef struct {
/* Mandatory */
/* Inject Network Initiated Message Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Inject Network Initiated Message request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
}qmiLocInjectNetworkInitiatedMessageIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Notifies the location engine that the device is out of
service. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocWWANOutOfServiceNotificationReqMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Notifies the location engine that the device is out of
service. */
typedef struct {
/* Mandatory */
/* Notify WWAN Out of Service Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Notify WWAN Out of Service request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocWWANOutOfServiceNotificationIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to inject pedometer data
into the location engine. */
typedef struct {
/* Mandatory */
/* Time Source */
qmiLocSensorDataTimeSourceEnumT_v02 timeSource;
/**< Time source for the pedometer. The location service uses
this field to identify the time reference used in the
pedometer data time stamp.
Valid values: \n
- eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED (0) -- Sensor time source is unspecified
- eQMI_LOC_SENSOR_TIME_SOURCE_COMMON (1) -- Time source is common between the sensors and
the location engine
*/
/* Mandatory */
/* Pedometer Report Timestamp */
uint32_t timestamp;
/**< Time stamp of the last step event in this report, that is, the time stamp
of the step event that caused this report to be generated.
The time stamp is in the time reference scale that is
used by the pedometer time source. \n
- Units: Milliseconds */
/* Mandatory */
/* Time Interval */
uint32_t timeInterval;
/**< Time interval during which the step count was calculated. Subtracting
timeInterval from the timestamp field yields the time when
the step detection for the first step in this report started. \n
- Units: Milliseconds */
/* Mandatory */
/* Step Count */
uint32_t stepCount;
/**< Number of steps counted during the time interval. */
/* Optional */
/* Step Confidence */
uint8_t stepConfidence_valid; /**< Must be set to true if stepConfidence is being passed */
uint8_t stepConfidence;
/**< Confidence associated with the step. This field is only applicable
for a single step report, that is, if the step count is one. \n
- Range: 0 to 100 \n
\textbf{Note:} The report is ignored if confidence is 0. */
/* Optional */
/* Step Count Uncertainty */
uint8_t stepCountUncertainty_valid; /**< Must be set to true if stepCountUncertainty is being passed */
float stepCountUncertainty;
/**< Uncertainty (in steps) associated with the step count. */
/* Optional */
/* Step Rate */
uint8_t stepRate_valid; /**< Must be set to true if stepRate is being passed */
float stepRate;
/**< Current estimate for the rate of steps per second. \n
- Units: steps/second \n
- Range: >= 0.0 */
}qmiLocPedometerReportReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to inject pedometer data
into the location engine. */
typedef struct {
/* Mandatory */
/* Status of Pedometer Report Request */
qmiLocStatusEnumT_v02 status;
/**< Status of the Pedometer Report request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocPedometerReportIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to get the batching size. */
typedef struct {
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Identifies the transaction. The transaction ID is returned in the Get
Batch Size indication. */
/* Mandatory */
/* Requested Batch Size */
uint32_t batchSize;
/**< Request the service with the number of location fixes to be batched. */
}qmiLocGetBatchSizeReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to get the batching size. */
typedef struct {
/* Mandatory */
/* Get Batch Size Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Batch Size request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Transaction ID that was specified in the Get Batch
Size request.
*/
/* Mandatory */
/* Batch Size Supported */
uint32_t batchSize;
/**< Number of location fixes that the service is able to batch.
The batch size value is returned as 0 in the case of a failure status.
*/
}qmiLocGetBatchSizeIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to initiate a batching session. */
typedef struct {
/* Optional */
/* Minimum Interval Between Position Reports */
uint8_t minInterval_valid; /**< Must be set to true if minInterval is being passed */
uint32_t minInterval;
/**< Minimum time interval, specified by the control point, that must elapse between
position reports. \n
- Units: milliseconds \n
- Default: 60000 ms
*/
/* Optional */
/* Horizontal Accuracy Level */
uint8_t horizontalAccuracyLevel_valid; /**< Must be set to true if horizontalAccuracyLevel is being passed */
qmiLocAccuracyLevelEnumT_v02 horizontalAccuracyLevel;
/**< Specifies the horizontal accuracy level required by the control point.
If not specified, accuracy defaults to LOW.
Valid values: \n
- eQMI_LOC_ACCURACY_LOW (1) -- Low accuracy
- eQMI_LOC_ACCURACY_MED (2) -- Medium accuracy
- eQMI_LOC_ACCURACY_HIGH (3) -- High accuracy
*/
/* Optional */
/* Fix Session Timeout Period */
uint8_t fixSessionTimeout_valid; /**< Must be set to true if fixSessionTimeout is being passed */
uint32_t fixSessionTimeout;
/**< Configures the fix session timeout duration. \n
- Units: Milliseconds \n
- Default: 20,000 ms
*/
/* Optional */
/* Minimum Distance */
uint8_t minDistance_valid; /**< Must be set to true if minDistance is being passed */
uint32_t minDistance;
/**< Specifies the minimum distance that should be traversed before a
position should be batched.
If no distance is specified, the positions are batched after
the minInterval period expires. If both minInterval and minDistance are
specified, the position are batched only after minInterval has
expired AND minDistance has been traversed. \n
- Units: Meters
*/
/* Optional */
/* Batch All Positions */
uint8_t batchAllPos_valid; /**< Must be set to true if batchAllPos is being passed */
uint8_t batchAllPos;
/**< Values: \n
- TRUE -- All positions that are available must be batched. For example,
if any other type of positioning is active (such as 1 Hz tracking), all
positions computed for that use case are also batched. This may
result in the BATCH_FULL indication getting generated earlier. \n
- FALSE -- Only positions that meet the time and/or distance criteria are batched
(default).
*/
/* Optional */
/* Request ID */
uint8_t requestId_valid; /**< Must be set to true if requestId is being passed */
uint32_t requestId;
/**< Identifies the request. A batching client can start multiple batching
requests with different batching parameters,
however, positions corresponding to all requests from the same client are
batched in the same buffer. A request ID value of 0 is considered invalid. \n
Valid Values 0x01 - 0xFFFFFFFF
*/
}qmiLocStartBatchingReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to initiate a batching session. */
typedef struct {
/* Mandatory */
/* Start Batching Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Start Batching request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Request ID */
uint8_t requestId_valid; /**< Must be set to true if requestId is being passed */
uint32_t requestId;
/**< Identifies the request. A batching client can start multiple batching
requests with different batching parameters, however, positions
corresponding to all requests from the same client are
batched in the same buffer. \n
Valid Values 0x01 - 0xFFFFFFFF
*/
}qmiLocStartBatchingIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used to notify the control point that the batched buffer is full. */
typedef struct {
/* Mandatory */
/* Number of Entries in the Batch During Full Event */
uint32_t batchCount;
/**< Number of entries in the batch during a full event.
*/
}qmiLocEventBatchFullIndMsgT_v02; /* Message */
/**
@}
*/
typedef uint64_t qmiLocBatchedReportValidFieldsMaskT_v02;
#define QMI_LOC_BATCHED_REPORT_MASK_VALID_LATITUDE_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000001ull) /**< Latitude field is valid for this fix */
#define QMI_LOC_BATCHED_REPORT_MASK_VALID_LONGITUDE_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000002ull) /**< Longitude field is valid for this fix */
#define QMI_LOC_BATCHED_REPORT_MASK_VALID_HOR_CIR_UNC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000004ull) /**< Horizontal circular uncertainty field is valid for this fix */
#define QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_HOR_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000008ull) /**< Horizontal speed field is valid for this fix */
#define QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_UNC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000010ull) /**< Speed uncertainty field is valid for this fix */
#define QMI_LOC_BATCHED_REPORT_MASK_VALID_ALT_WRT_ELP_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000020ull) /**< Altitude with respect to ellipsoid field is valid for this fix */
#define QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_VER_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000040ull) /**< Vertical speed field is valid for this fix */
#define QMI_LOC_BATCHED_REPORT_MASK_VALID_HEADING_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000080ull) /**< Heading field is valid for this fix */
#define QMI_LOC_BATCHED_REPORT_MASK_VALID_HEADING_UNC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000100ull) /**< Heading uncertainty field is valid for this fix */
#define QMI_LOC_BATCHED_REPORT_MASK_VALID_TECH_MASK_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000200ull) /**< Technology source mask field is valid for this fix */
#define QMI_LOC_BATCHED_REPORT_MASK_VALID_TIMESTAMP_UTC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000400ull) /**< UTC timestamp field is valid for this fix */
#define QMI_LOC_BATCHED_REPORT_MASK_VALID_TIME_UNC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000800ull) /**< Time uncertainty field is valid for this fix */
#define QMI_LOC_BATCHED_REPORT_MASK_VALID_MAGNETIC_DEV_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00001000ull) /**< Magnetic deviation field is valid for this fix */
#define QMI_LOC_BATCHED_REPORT_MASK_VALID_VERT_UNC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00002000ull) /**< Vertical uncertainty field is valid for this fix */
#define QMI_LOC_BATCHED_REPORT_MASK_VALID_HOR_CONF_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00004000ull) /**< Horizontal confidence field is valid for this fix */
#define QMI_LOC_BATCHED_REPORT_MASK_VALID_TIMESTAMP_GPS_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00008000ull) /**< GPS timestamp field is valid for this fix */
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint32_t fixId;
/**< Fix count for the session. The count starts at 0 and increments by one for
each successive batched position report for a particular session. */
qmiLocBatchedReportValidFieldsMaskT_v02 validFields;
/**< Mask of all valid fields for this fix.
Valid bitmasks: \n
- QMI_LOC_BATCHED_REPORT_MASK_VALID_LATITUDE (0x00000001) -- Latitude field is valid for this fix
- QMI_LOC_BATCHED_REPORT_MASK_VALID_LONGITUDE (0x00000002) -- Longitude field is valid for this fix
- QMI_LOC_BATCHED_REPORT_MASK_VALID_HOR_CIR_UNC (0x00000004) -- Horizontal circular uncertainty field is valid for this fix
- QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_HOR (0x00000008) -- Horizontal speed field is valid for this fix
- QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_UNC (0x00000010) -- Speed uncertainty field is valid for this fix
- QMI_LOC_BATCHED_REPORT_MASK_VALID_ALT_WRT_ELP (0x00000020) -- Altitude with respect to ellipsoid field is valid for this fix
- QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_VER (0x00000040) -- Vertical speed field is valid for this fix
- QMI_LOC_BATCHED_REPORT_MASK_VALID_HEADING (0x00000080) -- Heading field is valid for this fix
- QMI_LOC_BATCHED_REPORT_MASK_VALID_HEADING_UNC (0x00000100) -- Heading uncertainty field is valid for this fix
- QMI_LOC_BATCHED_REPORT_MASK_VALID_TECH_MASK (0x00000200) -- Technology source mask field is valid for this fix
- QMI_LOC_BATCHED_REPORT_MASK_VALID_TIMESTAMP_UTC (0x00000400) -- UTC timestamp field is valid for this fix
- QMI_LOC_BATCHED_REPORT_MASK_VALID_TIME_UNC (0x00000800) -- Time uncertainty field is valid for this fix
- QMI_LOC_BATCHED_REPORT_MASK_VALID_MAGNETIC_DEV (0x00001000) -- Magnetic deviation field is valid for this fix
- QMI_LOC_BATCHED_REPORT_MASK_VALID_VERT_UNC (0x00002000) -- Vertical uncertainty field is valid for this fix
- QMI_LOC_BATCHED_REPORT_MASK_VALID_HOR_CONF (0x00004000) -- Horizontal confidence field is valid for this fix
- QMI_LOC_BATCHED_REPORT_MASK_VALID_TIMESTAMP_GPS (0x00008000) -- GPS timestamp field is valid for this fix
*/
double latitude;
/**< Latitude (specified in WGS84 datum).
\begin{itemize1}
\item Type: Floating point
\item Units: Degrees
\item Range: -90.0 to 90.0 \begin{itemize1}
\item Positive values indicate northern latitude
\item Negative values indicate southern latitude
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
double longitude;
/**< Longitude (specified in WGS84 datum).
\begin{itemize1}
\item Type: Floating point
\item Units: Degrees
\item Range: -180.0 to 180.0 \begin{itemize1}
\item Positive values indicate eastern longitude
\item Negative values indicate western longitude
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
float horUncCircular;
/**< Horizontal position uncertainty (circular).\n
- Units: Meters */
float speedHorizontal;
/**< Horizontal speed.\n
- Units: Meters/second */
float speedUnc;
/**< 3-D Speed uncertainty.\n
- Units: Meters/second */
float altitudeWrtEllipsoid;
/**< Altitude with respect to the WGS84 ellipsoid.\n
- Units: Meters \n
- Range: -500 to 15883 */
float speedVertical;
/**< Vertical speed.\n
- Units: Meters/second */
float heading;
/**< Heading.\n
- Units: Degrees \n
- Range: 0 to 359.999 */
float headingUnc;
/**< Heading uncertainty.\n
- Units: Degrees \n
- Range: 0 to 359.999 */
qmiLocPosTechMaskT_v02 technologyMask;
/**< Technology used in computing this fix.
Valid bitmasks: \n
- QMI_LOC_POS_TECH_MASK_SATELLITE (0x00000001) -- Satellites were used to generate the fix
- QMI_LOC_POS_TECH_MASK_CELLID (0x00000002) -- Cell towers were used to generate the fix
- QMI_LOC_POS_TECH_MASK_WIFI (0x00000004) -- Wi-Fi access points were used to generate the fix
- QMI_LOC_POS_TECH_MASK_SENSORS (0x00000008) -- Sensors were used to generate the fix
- QMI_LOC_POS_TECH_MASK_REFERENCE_LOCATION (0x00000010) -- Reference Location was used to generate the fix
- QMI_LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION (0x00000020) -- Coarse position injected into the location engine was used to
generate the fix
- QMI_LOC_POS_TECH_MASK_AFLT (0x00000040) -- AFLT was used to generate the fix
- QMI_LOC_POS_TECH_MASK_HYBRID (0x00000080) -- GNSS and network-provided measurements were used to
generate the fix
*/
uint64_t timestampUtc;
/**< UTC timestamp. \n
- Units: Milliseconds since Jan. 1, 1970 */
float timeUnc;
/**< Time uncertainty. \n
- Units: Milliseconds */
float magneticDeviation;
/**< Difference between the bearing to true north and the bearing shown
on a magnetic compass. The deviation is positive when the magnetic
north is east of true north. */
float vertUnc;
/**< Vertical uncertainty.\n
- Units: Meters */
uint8_t horConfidence;
/**< Horizontal confidence.
- Units: Percent
- Range: 0 to 99 */
qmiLocGPSTimeStructT_v02 gpsTime;
/**< Number of weeks since Jan. 5, 1980, and milliseconds into the current week. */
}qmiLocBatchedReportStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used to notify the control point with the live batched
position report. */
typedef struct {
/* Mandatory */
/* Batched Position Report */
qmiLocBatchedReportStructT_v02 liveBatchedReport;
/**< \n Live position report that is also batched. */
}qmiLocEventLiveBatchedPositionReportIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to retrieve fixes from the batch. */
typedef struct {
/* Mandatory */
/* Number of Fix Entries to be Retrieved from the Batch */
uint32_t numberOfEntries;
/**< Number of fix entries to be retrieved from the batch. \n
Maximum limit -- QMI_LOC_READ_FROM_BATCH_MAX_SIZE.
*/
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Identifies the transaction. The transaction ID is returned in the Read
from Batch indication. */
}qmiLocReadFromBatchReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to retrieve fixes from the batch. */
typedef struct {
/* Mandatory */
/* Read from Batch Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Read from Batch request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Transaction ID that was specified in the Read from Batch
request.
*/
/* Optional */
/* Number of Fix Entries Returned from the Batch */
uint8_t numberOfEntries_valid; /**< Must be set to true if numberOfEntries is being passed */
uint32_t numberOfEntries;
/**< Number of fix entries returned from the batch. */
/* Optional */
/* List of Batched Position Reports Returned */
uint8_t batchedReportList_valid; /**< Must be set to true if batchedReportList is being passed */
uint32_t batchedReportList_len; /**< Must be set to # of elements in batchedReportList */
qmiLocBatchedReportStructT_v02 batchedReportList[QMI_LOC_READ_FROM_BATCH_MAX_SIZE_V02];
/**< \n List of fix reports returned from the batch. */
}qmiLocReadFromBatchIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to stop an ongoing batching session. */
typedef struct {
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Transaction ID of the request. */
/* Optional */
/* Request ID */
uint8_t requestId_valid; /**< Must be set to true if requestId is being passed */
uint32_t requestId;
/**< Identifies the batching request that must be stopped.
A batching client can start multiple batching requests. \n
Valid Values 0x01 - 0xFFFFFFFF
*/
}qmiLocStopBatchingReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to stop an ongoing batching session. */
typedef struct {
/* Mandatory */
/* Stop Batching Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Stop Batching request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Transaction ID that was specified in the Stop Batching request.
*/
/* Optional */
/* Request ID */
uint8_t requestId_valid; /**< Must be set to true if requestId is being passed */
uint32_t requestId;
/**< Identifies the batching request that was stopped.
A batching client can start multiple batching requests. \n
Valid Values 0x01 - 0xFFFFFFFF
*/
}qmiLocStopBatchingIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to release the batching buffer. */
typedef struct {
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Identifies the transaction. */
}qmiLocReleaseBatchReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to release the batching buffer. */
typedef struct {
/* Mandatory */
/* Release Batch Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Release Batch request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Transaction ID that was specified in the Release Batch request.
*/
}qmiLocReleaseBatchIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Requests the control point to inject Wi-Fi AP data. */
typedef struct {
/* This element is a placeholder to prevent the declaration of
an empty struct. DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
char __placeholder;
}qmiLocEventInjectWifiApDataReqIndMsgT_v02;
/* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCWIFIAPDATADEVICETYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_WIFI_AP_DATA_DEVICE_TYPE_WLAN_802_11_A_V02 = 0, /**< Wi-Fi AP device is 802.11a. */
eQMI_LOC_WIFI_AP_DATA_DEVICE_TYPE_WLAN_802_11_B_V02 = 1, /**< Wi-Fi AP device is 802.11b. */
eQMI_LOC_WIFI_AP_DATA_DEVICE_TYPE_WLAN_802_11_G_V02 = 2, /**< Wi-Fi AP device is 802.11g. */
QMILOCWIFIAPDATADEVICETYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocWifiApDataDeviceTypeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCWIFIAPDATARTDUNITTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_WIFI_AP_DATA_RTD_UNIT_MICROSEC_V02 = 0, /**< Wi-Fi AP data Round-trip Delay (RTD) is in microseconds. */
eQMI_LOC_WIFI_AP_DATA_RTD_UNIT_HUNDREDS_OF_NANOSEC_V02 = 1, /**< Wi-Fi AP data RTD is in hundreds of nanoseconds. */
eQMI_LOC_WIFI_AP_DATA_RTD_UNIT_TENS_OF_NANOSEC_V02 = 2, /**< Wi-Fi AP data RTD is in tens of nanoseconds. */
eQMI_LOC_WIFI_AP_DATA_RTD_UNIT_NANOSEC_V02 = 3, /**< Wi-Fi AP data RTD is in nanoseconds. */
eQMI_LOC_WIFI_AP_DATA_RTD_UNIT_TENTH_OF_NANOSEC_V02 = 4, /**< Wi-Fi AP data RTD is in tenths of nanoseconds. */
QMILOCWIFIAPDATARTDUNITTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocWifiApDataRtdUnitTypeEnumT_v02;
/**
@}
*/
typedef uint32_t qmiLocWifiApDataMaskT_v02;
#define QMI_LOC_WIFI_APDATA_MASK_AP_TRANSMIT_POWER_V02 ((qmiLocWifiApDataMaskT_v02)0x00000001) /**< AP transmit power is valid */
#define QMI_LOC_WIFI_APDATA_MASK_AP_ANTENNA_GAIN_V02 ((qmiLocWifiApDataMaskT_v02)0x00000002) /**< AP antenna gain is valid */
#define QMI_LOC_WIFI_APDATA_MASK_AP_SNR_V02 ((qmiLocWifiApDataMaskT_v02)0x00000004) /**< AP signal-to-noise ratio is valid */
#define QMI_LOC_WIFI_APDATA_MASK_AP_DEVICE_TYPE_V02 ((qmiLocWifiApDataMaskT_v02)0x00000008) /**< AP device type is valid */
#define QMI_LOC_WIFI_APDATA_MASK_AP_RSSI_V02 ((qmiLocWifiApDataMaskT_v02)0x00000010) /**< AP RSSI is valid */
#define QMI_LOC_WIFI_APDATA_MASK_AP_CHANNEL_V02 ((qmiLocWifiApDataMaskT_v02)0x00000020) /**< AP channel is valid */
#define QMI_LOC_WIFI_APDATA_MASK_AP_ROUNDTRIP_DELAY_V02 ((qmiLocWifiApDataMaskT_v02)0x00000040) /**< AP roundtrip delay is valid */
#define QMI_LOC_WIFI_APDATA_MASK_AP_ROUNDTRIP_DELAY_ACCURACY_V02 ((qmiLocWifiApDataMaskT_v02)0x00000080) /**< AP roundtrip delay accuracy is valid */
#define QMI_LOC_WIFI_APDATA_MASK_MOBILE_SNR_V02 ((qmiLocWifiApDataMaskT_v02)0x00000100) /**< Mobile signal-to-noise ratio is valid */
#define QMI_LOC_WIFI_APDATA_MASK_MOBILE_RSSI_V02 ((qmiLocWifiApDataMaskT_v02)0x00000200) /**< Mobile RSSI is valid */
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocWifiApDataMaskT_v02 wifiApDataMask;
/**< Specifies which Wi-Fi AP scan information types are being used.
Valid values: \n
- QMI_LOC_WIFI_APDATA_MASK_AP_TRANSMIT_POWER (0x00000001) -- AP transmit power is valid
- QMI_LOC_WIFI_APDATA_MASK_AP_ANTENNA_GAIN (0x00000002) -- AP antenna gain is valid
- QMI_LOC_WIFI_APDATA_MASK_AP_SNR (0x00000004) -- AP signal-to-noise ratio is valid
- QMI_LOC_WIFI_APDATA_MASK_AP_DEVICE_TYPE (0x00000008) -- AP device type is valid
- QMI_LOC_WIFI_APDATA_MASK_AP_RSSI (0x00000010) -- AP RSSI is valid
- QMI_LOC_WIFI_APDATA_MASK_AP_CHANNEL (0x00000020) -- AP channel is valid
- QMI_LOC_WIFI_APDATA_MASK_AP_ROUNDTRIP_DELAY (0x00000040) -- AP roundtrip delay is valid
- QMI_LOC_WIFI_APDATA_MASK_AP_ROUNDTRIP_DELAY_ACCURACY (0x00000080) -- AP roundtrip delay accuracy is valid
- QMI_LOC_WIFI_APDATA_MASK_MOBILE_SNR (0x00000100) -- Mobile signal-to-noise ratio is valid
- QMI_LOC_WIFI_APDATA_MASK_MOBILE_RSSI (0x00000200) -- Mobile RSSI is valid */
uint8_t macAddress[QMI_LOC_WIFI_MAC_ADDR_LENGTH_V02];
/**< MAC address. \n
Each address is of length QMI_LOC_WIFI_MAC_ADDR_LENGTH.
*/
int32_t apTransmitPower;
/**< AP transmit power in dBm. */
int32_t apAntennaGain;
/**< AP antenna gain in dBI. */
int32_t apSignalToNoise;
/**< AP SNR received at the mobile device. */
qmiLocWifiApDataDeviceTypeEnumT_v02 apDeviceType;
/**< List of AP device types. */
int32_t apRssi;
/**< AP signal strength indicator in dBm. */
uint16_t apChannel;
/**< AP Wi-Fi channel on which a beacon was received. */
uint32_t apRoundTripDelay;
/**< Round trip delay between the mobile device and the AP, in units of
apRoundTripDelayUnit. */
qmiLocWifiApDataRtdUnitTypeEnumT_v02 apRoundTripDelayUnit;
/**< Units of apRoundTripDelay and its accuracy; mandatory if apRoundTripDelay
is present. */
uint8_t apRoundTripDelayAccuracy;
/**< AP's accuracy of round trip delay apRoundTripDelay, in units of
apRoundTripDelayUnit. */
int32_t mobileSignalToNoise;
/**< Mobile SNR received at the AP. */
int32_t mobileRssi;
/**< Mobile signal strength at the AP. */
}qmiLocWifiApDataStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Injects Wi-Fi AP data. */
typedef struct {
/* Mandatory */
/* Wi-Fi AP Scan Data */
uint32_t wifiApInfo_len; /**< Must be set to # of elements in wifiApInfo */
qmiLocWifiApDataStructT_v02 wifiApInfo[QMI_LOC_WIFI_MAX_REPORTED_APS_PER_MSG_V02];
/**< \n List of Wi-Fi AP scan information entered by the control point. */
}qmiLocInjectWifiApDataReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Injects Wi-Fi AP data. */
typedef struct {
/* Mandatory */
/* Wi-Fi AP Scan Information Injection Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Inject Wi-Fi AP Scan Information request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
}qmiLocInjectWifiApDataIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCWIFIACCESSPOINTATTACHSTATESENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_WIFI_ACCESS_POINT_ATTACHED_V02 = 0, /**< Attached to an access point */
eQMI_LOC_WIFI_ACCESS_POINT_DETACHED_V02 = 1, /**< Detached from an access point */
eQMI_LOC_WIFI_ACCESS_POINT_HANDOVER_V02 = 2, /**< Handed over to another access point */
QMILOCWIFIACCESSPOINTATTACHSTATESENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocWifiAccessPointAttachStatesEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to inject the Wi-Fi attachment status. */
typedef struct {
/* Mandatory */
/* Attach State */
qmiLocWifiAccessPointAttachStatesEnumT_v02 attachState;
/**< Wi.Fi access point attach state.
Valid values: \n
- eQMI_LOC_WIFI_ACCESS_POINT_ATTACHED (0) -- Attached to an access point
- eQMI_LOC_WIFI_ACCESS_POINT_DETACHED (1) -- Detached from an access point
- eQMI_LOC_WIFI_ACCESS_POINT_HANDOVER (2) -- Handed over to another access point */
/* Optional */
/* Access Point MAC Address */
uint8_t accessPointMacAddress_valid; /**< Must be set to true if accessPointMacAddress is being passed */
uint8_t accessPointMacAddress[QMI_LOC_WIFI_MAC_ADDR_LENGTH_V02];
/**< MAC address of the access point to which the Wi-Fi is attached.
This must always be specified if the attach state is Handover.
*/
/* Optional */
/* Wi-Fi AP SSID String */
uint8_t wifiApSsid_valid; /**< Must be set to true if wifiApSsid is being passed */
char wifiApSsid[QMI_LOC_MAX_WIFI_AP_SSID_STR_LENGTH_V02 + 1];
/**< The NULL-terminated SSID of the Wi-Fi AP. Its maximum length according to the ASCII standard is 32 octets. */
}qmiLocNotifyWifiAttachmentStatusReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to inject the Wi-Fi attachment status. */
typedef struct {
/* Mandatory */
/* Status of Wi-Fi Attachment Status Request */
qmiLocStatusEnumT_v02 status;
/**< Status of Wi-Fi Attachment Status request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
}qmiLocNotifyWifiAttachmentStatusIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCWIFIENABLEDSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_WIFI_ENABLED_FALSE_V02 = 0, /**< Wi-Fi is disabled on the device */
eQMI_LOC_WIFI_ENABLED_TRUE_V02 = 1, /**< Wi-Fi is enabled on the device */
QMILOCWIFIENABLEDSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocWifiEnabledStatusEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to inject the Wi-Fi enabled status. */
typedef struct {
/* Mandatory */
/* Enabled Status */
qmiLocWifiEnabledStatusEnumT_v02 enabledStatus;
/**< Wi-Fi enabled status on the device.
Valid values: \n
- eQMI_LOC_WIFI_ENABLED_FALSE (0) -- Wi-Fi is disabled on the device
- eQMI_LOC_WIFI_ENABLED_TRUE (1) -- Wi-Fi is enabled on the device */
}qmiLocNotifyWifiEnabledStatusReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to inject the Wi-Fi enabled status. */
typedef struct {
/* Mandatory */
/* Status of Wi-Fi Enabled Status Request */
qmiLocStatusEnumT_v02 status;
/**< Status of the Wi-Fi Enabled Status request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
}qmiLocNotifyWifiEnabledStatusIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Notifies the control point whether the GNSS location engine is
ready to accept vehicle data. */
typedef struct {
/* Optional */
/* Vehicle Accelerometer Ready Status */
uint8_t vehicleAccelReadyStatus_valid; /**< Must be set to true if vehicleAccelReadyStatus is being passed */
uint8_t vehicleAccelReadyStatus;
/**< The location service uses this TLV to let a control point know when it is
ready or not ready to receive vehicle accelerometer data input.
Values: \n
- 0x00 -- Not ready \n
- 0x01 -- Ready */
/* Optional */
/* Vehicle Angular Rate Ready Status */
uint8_t vehicleAngularRateReadyStatus_valid; /**< Must be set to true if vehicleAngularRateReadyStatus is being passed */
uint8_t vehicleAngularRateReadyStatus;
/**< The location service uses this TLV to let a control point know when it is
ready or not ready to receive vehicle angular rate data input.
Values: \n
- 0x00 -- Not ready \n
- 0x01 -- Ready */
/* Optional */
/* Vehicle Odometry Ready Status */
uint8_t vehicleOdometryReadyStatus_valid; /**< Must be set to true if vehicleOdometryReadyStatus is being passed */
uint8_t vehicleOdometryReadyStatus;
/**< The location service uses this TLV to let a control point know when it is
ready or not ready to receive vehicle odometry data input.
Values: \n
- 0x00 -- Not ready \n
- 0x01 -- Ready*/
}qmiLocEventVehicleDataReadyIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint32_t timeOffset;
/**< Sample time offset. This time offset must be
relative to the vehicle sensor time of the first sample. \n
- Units: Microseconds \n
- Range: Up to over 4000 seconds */
uint32_t axisSample_len; /**< Must be set to # of elements in axisSample */
float axisSample[QMI_LOC_VEHICLE_SENSOR_DATA_MAX_AXES_V02];
/**< Sensor axis sample. \n
- Type: Floating point \n
- Units accelerometer: Meters/seconds^2 \n
- Units gyroscope: Radians/seconds \vspace{4pt}
Note: The axes samples must be in the following order: \n
1. X-Axis \n
2. Y-Axis \n
3. Z-Axis */
}qmiLocVehicleSensorSampleStructT_v02; /* Type */
/**
@}
*/
typedef uint8_t qmiLocAxesMaskT_v02;
#define QMI_LOC_MASK_X_AXIS_V02 ((qmiLocAxesMaskT_v02)0x01) /**< X-axis is valid */
#define QMI_LOC_MASK_Y_AXIS_V02 ((qmiLocAxesMaskT_v02)0x02) /**< Y-axis is valid */
#define QMI_LOC_MASK_Z_AXIS_V02 ((qmiLocAxesMaskT_v02)0x04) /**< Z-axis is valid */
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint32_t sampleTimeBase;
/**< Denotes a 32-bit time tag of the reference time from which
all samples in this message are offset. This time must
be the same as or (slightly) earlier than the first (oldest)
sample in this message. \n
- Units: Milliseconds \n
- Range: Approx. 4 million seconds, or almost 50 days between rollovers */
qmiLocAxesMaskT_v02 axesValidity;
/**< Identifies the axes that are valid for all sensor samples.
Valid values: \n
- QMI_LOC_MASK_X_AXIS (0x01) -- X-axis is valid
- QMI_LOC_MASK_Y_AXIS (0x02) -- Y-axis is valid
- QMI_LOC_MASK_Z_AXIS (0x04) -- Z-axis is valid */
uint32_t sensorData_len; /**< Must be set to # of elements in sensorData */
qmiLocVehicleSensorSampleStructT_v02 sensorData[QMI_LOC_VEHICLE_SENSOR_DATA_MAX_SAMPLES_V02];
}qmiLocVehicleSensorSampleListStructType_v02; /* Type */
/**
@}
*/
typedef uint32_t qmiLocVehicleOdometryMeasDeviationMaskType_v02;
#define QMI_LOC_MASK_VEHICLE_ODOMETRY_REVERSE_MOVEMENT_V02 ((qmiLocVehicleOdometryMeasDeviationMaskType_v02)0x00000001) /**< Odometry data in this message includes at least some data where
the vehicle may have been moving in the reverse direction; this
bit must be set if odometry data may be in reverse, and should
not be set if odometry data is all in the forward direction */
#define QMI_LOC_MASK_VEHICLE_ODOMETRY_AFFECTED_BY_ERRORS_V02 ((qmiLocVehicleOdometryMeasDeviationMaskType_v02)0x00000002) /**< Odometry data in this message includes at least some data affected
by a major error source affecting distance-travelled accuracy,
such as wheel slippage due to skidding, gravel, snow, or ice, as
detected by the vehicle, e.g., via an ABS or other system */
#define QMI_LOC_MASK_VEHICLE_ODOMETRY_ABSOLUTE_MEASUREMENT_V02 ((qmiLocVehicleOdometryMeasDeviationMaskType_v02)0x00000004) /**< Odometry data in this message is an absolute amount since the vehicle
began service, and is the same vehicle that is regularly used with
this device (so that the offset of this value, since the last time
this measurement was used by the location engine, can safely be used
as a likely correct estimate of distance travelled since last
use) */
typedef uint32_t qmiLocVehicleOdometryWheelFlagsMaskT_v02;
#define QMI_LOC_MASK_VEHICLE_ODOMETRY_LEFT_AND_RIGHT_AVERAGE_V02 ((qmiLocVehicleOdometryWheelFlagsMaskT_v02)0x00000001) /**< Average of left and right non-turning wheels */
#define QMI_LOC_MASK_VEHICLE_ODOMETRY_LEFT_V02 ((qmiLocVehicleOdometryWheelFlagsMaskT_v02)0x00000002) /**< Left side, non-turning wheel */
#define QMI_LOC_MASK_VEHICLE_ODOMETRY_RIGHT_V02 ((qmiLocVehicleOdometryWheelFlagsMaskT_v02)0x00000004) /**< Right side, non-turning wheel */
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint32_t timeOffset;
/**< Sample time offset. This time offset must be
relative to the sensor time of the first sample. \n
- Units: Microseconds \n
- Range: Up to over 4000 seconds */
uint32_t distanceTravelled_len; /**< Must be set to # of elements in distanceTravelled */
uint32_t distanceTravelled[QMI_LOC_VEHICLE_ODOMETRY_MAX_MEASUREMENTS_V02];
/**< Distance travelled (odometry) sample offset. \n
- Units of accumulated distance: Millimeters \n
- Range: Over 4000 kilometers
This measurement (with units in millimeters) is added to
the distance_travelled_base measurement (in meters) to
get the total distance travelled sample value.
Note: The order of measurements must be as follows: \n
1. Left and right average \n
2. Left \n
3. Right
*/
}qmiLocVehicleOdometrySampleStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint32_t sampleTimeBase;
/**< Denotes a 32-bit time tag of a reference time, from which
all samples in this message are offset. Note this time must
be the same or (slightly) earlier than the first (oldest)
sample in this message. \n
- Units: 1 millisecond \n
- Range: ~4 million seconds, or almost 50 days between rollovers */
qmiLocVehicleOdometryMeasDeviationMaskType_v02 flags;
/**< Flags to indicate any deviation from the default measurement
assumptions. Valid bitmasks: \n
- QMI_LOC_MASK_VEHICLE_ODOMETRY_REVERSE_MOVEMENT (0x00000001) -- Odometry data in this message includes at least some data where
the vehicle may have been moving in the reverse direction; this
bit must be set if odometry data may be in reverse, and should
not be set if odometry data is all in the forward direction
- QMI_LOC_MASK_VEHICLE_ODOMETRY_AFFECTED_BY_ERRORS (0x00000002) -- Odometry data in this message includes at least some data affected
by a major error source affecting distance-travelled accuracy,
such as wheel slippage due to skidding, gravel, snow, or ice, as
detected by the vehicle, e.g., via an ABS or other system
- QMI_LOC_MASK_VEHICLE_ODOMETRY_ABSOLUTE_MEASUREMENT (0x00000004) -- Odometry data in this message is an absolute amount since the vehicle
began service, and is the same vehicle that is regularly used with
this device (so that the offset of this value, since the last time
this measurement was used by the location engine, can safely be used
as a likely correct estimate of distance travelled since last
use) */
qmiLocVehicleOdometryWheelFlagsMaskT_v02 wheelFlags;
/**< Delineates for which wheels measurements are being provided
in the following samples, where one or more of the following
bits must be set, and data samples aligned with these axes must
appear in groups, in this order.
Valid bitmasks: \n
- QMI_LOC_MASK_VEHICLE_ODOMETRY_LEFT_AND_RIGHT_AVERAGE (0x00000001) -- Average of left and right non-turning wheels
- QMI_LOC_MASK_VEHICLE_ODOMETRY_LEFT (0x00000002) -- Left side, non-turning wheel
- QMI_LOC_MASK_VEHICLE_ODOMETRY_RIGHT (0x00000004) -- Right side, non-turning wheel */
uint32_t distanceTravelledBase;
/**< Distance traveled base. \n
- Units of accumulated distance: Meters \n
- Range: Over 4,000,0000 kilometers \vspace{0.06in} \n
Distance travelled (odometry) is to be reported in a continuously
accumulating way from device power up. It may be incremental distance
starting at 0, or another arbitrary point, from device power up, or the
absolute distance traveled by the vehicle
(and if so, set QMI_LOC_MASK_VEHICLE_ODOMETRY_ABSOLUTE_MEASUREMENT),
as long as it grows incrementally from device power up.
This distance_travelled_base is added to the distrance_travelled_offset
of each sample (below) to get the absolute distance of each sample
point.
Distance travelled errors are expected to be primarily due to the
scale factor, with some allowance for noise due to minor slippage
events (e.g., gravel.)
Major wheel slippage events that affect odometry
must be flagged -- see the flags field.
Note that other events, such as a vehicle travelling in reverse, may
also affect the available accuracy of this information, and notification
of those events must be provided -- see the flags field. */
uint32_t odometryData_len; /**< Must be set to # of elements in odometryData */
qmiLocVehicleOdometrySampleStructT_v02 odometryData[QMI_LOC_VEHICLE_SENSOR_DATA_MAX_SAMPLES_V02];
/**< Variable length array to specify the odometry samples.
Maximum length of the array is 50. */
}qmiLocVehicleOdometrySampleListStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Injects on-vehicle sensor data into the location engine. */
typedef struct {
/* Optional */
/* On-Vehicle Accelerometer Data */
uint8_t accelData_valid; /**< Must be set to true if accelData is being passed */
qmiLocVehicleSensorSampleListStructType_v02 accelData;
/**< \vspace{0.06in} \n Vehicle accelerometer sensor samples. */
/* Optional */
/* On-Vehicle Angular Rotation Data */
uint8_t angRotationData_valid; /**< Must be set to true if angRotationData is being passed */
qmiLocVehicleSensorSampleListStructType_v02 angRotationData;
/**< \vspace{0.06in} \n Vehicle angular rotation data sensor samples. */
/* Optional */
/* Odometry Data */
uint8_t odometryData_valid; /**< Must be set to true if odometryData is being passed */
qmiLocVehicleOdometrySampleListStructT_v02 odometryData;
/**< \vspace{0.06in} \n Odometer sensor samples. */
/* Optional */
/* External Time Sync Information */
uint8_t changeInTimeScales_valid; /**< Must be set to true if changeInTimeScales is being passed */
int32_t changeInTimeScales;
/**< This field is to be used in conjunction with an external
time-sync mechanism that is aligning the vehicle sensor time scale
with the on-device sensor time scale to ensure that updates in
that time offset do not appear as jumps in the relative sensor time
of the samples provided in this message. If there is no such sync
mechanism, e.g., if only the vehicle time is provided, this field
may be left at 0.
This field is defined as the change from the previously-sent QMI
message with similar TLVs 0x10, 0x11, or 0x12 in it, to this QMI
message in the amount that the sensor_time is ahead of an
external vehicle time. \n
- Units: Microseconds \n
- Range: Approximately -2100 seconds to + 2100 seconds, where
full-scale (minimum and maximum value) is interpreted
as equal to or greater than this value of an offset change
(unlikely to be reached in practice, unless there is a
startup, major resync, or some other rollover event). */
}qmiLocInjectVehicleSensorDataReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Injects on-vehicle sensor data into the location engine. */
typedef struct {
/* Mandatory */
/* Inject Vehicle Sensor Data Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Inject Vehicle Sensor Data request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
}qmiLocInjectVehicleSensorDataIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to get the first available WWAN
position from the location engine. */
typedef struct {
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Identifies the transaction. The transaction ID
is returned in the Get Available WWAN Position indication. */
}qmiLocGetAvailWwanPositionReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to get the first available WWAN
position from the location engine. */
typedef struct {
/* Mandatory */
/* Get Available WWAN Position Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Get Available WWAN Position request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
/* Optional */
/* Transaction ID */
uint8_t transactionId_valid; /**< Must be set to true if transactionId is being passed */
uint32_t transactionId;
/**< Transaction ID that was specified in the Get Available
WWAN Position request. This parameter will
always be present if the status field is set to
SUCCESS. */
/* Optional */
/* Latitude */
uint8_t latitude_valid; /**< Must be set to true if latitude is being passed */
double latitude;
/**< Latitude (specified in WGS84 datum).
\begin{itemize1}
\item Type: Floating point
\item Units: Degrees
\item Range: -90.0 to 90.0 \begin{itemize1}
\item Positive values indicate northern latitude
\item Negative values indicate southern latitude
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
/* Optional */
/* Longitude */
uint8_t longitude_valid; /**< Must be set to true if longitude is being passed */
double longitude;
/**< Longitude (specified in WGS84 datum).
\begin{itemize1}
\item Type: Floating point
\item Units: Degrees
\item Range: -180.0 to 180.0 \begin{itemize1}
\item Positive values indicate eastern longitude
\item Negative values indicate western longitude
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
/* Optional */
/* Circular Horizontal Position Uncertainty */
uint8_t horUncCircular_valid; /**< Must be set to true if horUncCircular is being passed */
float horUncCircular;
/**< Horizontal position uncertainty (circular).\n
- Units: Meters */
/* Optional */
/* Altitude With Respect to Ellipsoid */
uint8_t altitudeWrtEllipsoid_valid; /**< Must be set to true if altitudeWrtEllipsoid is being passed */
float altitudeWrtEllipsoid;
/**< Altitude with respect to the WGS84 ellipsoid.\n
- Units: Meters \n
- Range: -500 to 15883 */
/* Optional */
/* Vertical Uncertainty */
uint8_t vertUnc_valid; /**< Must be set to true if vertUnc is being passed */
float vertUnc;
/**< Vertical uncertainty.\n
- Units: Meters */
/* Optional */
/* UTC Timestamp */
uint8_t timestampUtc_valid; /**< Must be set to true if timestampUtc is being passed */
uint64_t timestampUtc;
/**< UTC timestamp. \n
- Units: Milliseconds since Jan. 1, 1970 */
/* Optional */
/* Time Uncertainty */
uint8_t timeUnc_valid; /**< Must be set to true if timeUnc is being passed */
float timeUnc;
/**< Time uncertainty. \n
- Units: Milliseconds */
/* Optional */
/* Horizontal Elliptical Uncertainty Semi-Minor Axis */
uint8_t horUncEllipseSemiMinor_valid; /**< Must be set to true if horUncEllipseSemiMinor is being passed */
float horUncEllipseSemiMinor;
/**< Semi-minor axis of horizontal elliptical uncertainty. \n
- Units: Meters */
/* Optional */
/* Horizontal Elliptical Uncertainty Semi-Major Axis */
uint8_t horUncEllipseSemiMajor_valid; /**< Must be set to true if horUncEllipseSemiMajor is being passed */
float horUncEllipseSemiMajor;
/**< Semi-major axis of horizontal elliptical uncertainty. \n
- Units: Meters */
/* Optional */
/* Horizontal Elliptical Uncertainty Azimuth */
uint8_t horUncEllipseOrientAzimuth_valid; /**< Must be set to true if horUncEllipseOrientAzimuth is being passed */
float horUncEllipseOrientAzimuth;
/**< Elliptical horizontal uncertainty azimuth of orientation. \n
- Units: Decimal degrees \n
- Range: 0 to 180 */
/* Optional */
/* Horizontal Circular Confidence */
uint8_t horCircularConfidence_valid; /**< Must be set to true if horCircularConfidence is being passed */
uint8_t horCircularConfidence;
/**< Horizontal circular uncertainty confidence. \n
- Units: Percent \n
- Range: 0 to 99 */
/* Optional */
/* Horizontal Elliptical Confidence */
uint8_t horEllipticalConfidence_valid; /**< Must be set to true if horEllipticalConfidence is being passed */
uint8_t horEllipticalConfidence;
/**< Horizontal elliptical uncertainty confidence. \n
- Units: Percent \n
- Range: 0 to 99 */
/* Optional */
/* Horizontal Reliability */
uint8_t horReliability_valid; /**< Must be set to true if horReliability is being passed */
qmiLocReliabilityEnumT_v02 horReliability;
/**< Specifies the reliability of the horizontal position.
Valid values: \n
- eQMI_LOC_RELIABILITY_NOT_SET (0) -- Location reliability is not set
- eQMI_LOC_RELIABILITY_VERY_LOW (1) -- Location reliability is very low; use it at your own risk
- eQMI_LOC_RELIABILITY_LOW (2) -- Location reliability is low; little or no cross-checking is possible
- eQMI_LOC_RELIABILITY_MEDIUM (3) -- Location reliability is medium; limited cross-check passed
- eQMI_LOC_RELIABILITY_HIGH (4) -- Location reliability is high; strong cross-check passed
*/
/* Optional */
/* Altitude With Respect to Sea Level */
uint8_t altitudeWrtMeanSeaLevel_valid; /**< Must be set to true if altitudeWrtMeanSeaLevel is being passed */
float altitudeWrtMeanSeaLevel;
/**< Altitude with respect to mean sea level. \n
- Units: Meters */
/* Optional */
/* Vertical Confidence */
uint8_t vertConfidence_valid; /**< Must be set to true if vertConfidence is being passed */
uint8_t vertConfidence;
/**< Vertical uncertainty confidence. \n
- Units: Percent \n
- Range: 0 to 99 */
/* Optional */
/* Vertical Reliability */
uint8_t vertReliability_valid; /**< Must be set to true if vertReliability is being passed */
qmiLocReliabilityEnumT_v02 vertReliability;
/**< Specifies the reliability of the vertical position.
Valid values: \n
- eQMI_LOC_RELIABILITY_NOT_SET (0) -- Location reliability is not set
- eQMI_LOC_RELIABILITY_VERY_LOW (1) -- Location reliability is very low; use it at your own risk
- eQMI_LOC_RELIABILITY_LOW (2) -- Location reliability is low; little or no cross-checking is possible
- eQMI_LOC_RELIABILITY_MEDIUM (3) -- Location reliability is medium; limited cross-check passed
- eQMI_LOC_RELIABILITY_HIGH (4) -- Location reliability is high; strong cross-check passed
*/
/* Optional */
/* GPS Time */
uint8_t gpsTime_valid; /**< Must be set to true if gpsTime is being passed */
qmiLocGPSTimeStructT_v02 gpsTime;
/* Optional */
/* Time Source */
uint8_t timeSrc_valid; /**< Must be set to true if timeSrc is being passed */
qmiLocTimeSourceEnumT_v02 timeSrc;
/**< Time source.
Valid values: \n
- eQMI_LOC_TIME_SRC_INVALID (0) -- Invalid time.
- eQMI_LOC_TIME_SRC_NETWORK_TIME_TRANSFER (1) -- Time is set by the 1X system
- eQMI_LOC_TIME_SRC_NETWORK_TIME_TAGGING (2) -- Time is set by WCDMA/GSM time tagging (that is,
associating network time with GPS time)
- eQMI_LOC_TIME_SRC_EXTERNAL_INPUT (3) -- Time is set by an external injection
- eQMI_LOC_TIME_SRC_TOW_DECODE (4) -- Time is set after decoding over-the-air GPS navigation data
from one GPS satellite
- eQMI_LOC_TIME_SRC_TOW_CONFIRMED (5) -- Time is set after decoding over-the-air GPS navigation data
from multiple satellites
- eQMI_LOC_TIME_SRC_TOW_AND_WEEK_CONFIRMED (6) -- Both time of the week and the GPS week number are known
- eQMI_LOC_TIME_SRC_NAV_SOLUTION (7) -- Time is set by the position engine after the fix is obtained
- eQMI_LOC_TIME_SRC_SOLVE_FOR_TIME (8) -- Time is set by the position engine after performing SFT;
this is done when the clock time uncertainty is large
- eQMI_LOC_TIME_SRC_GLO_TOW_DECODE (9) -- Time is set after decoding GLO satellites
- eQMI_LOC_TIME_SRC_TIME_TRANSFORM (10) -- Time is set after transforming the GPS to GLO time
- eQMI_LOC_TIME_SRC_WCDMA_SLEEP_TIME_TAGGING (11) -- Time is set by the sleep time tag provided by the WCDMA network
- eQMI_LOC_TIME_SRC_GSM_SLEEP_TIME_TAGGING (12) -- Time is set by the sleep time tag provided by the GSM network
- eQMI_LOC_TIME_SRC_UNKNOWN (13) -- Source of the time is unknown
- eQMI_LOC_TIME_SRC_SYSTEM_TIMETICK (14) -- Time is derived from the system clock (better known as the slow clock);
GNSS time is maintained irrespective of the GNSS receiver state
- eQMI_LOC_TIME_SRC_QZSS_TOW_DECODE (15) -- Time is set after decoding QZSS satellites
- eQMI_LOC_TIME_SRC_BDS_TOW_DECODE (16) -- Time is set after decoding BDS satellites
- eQMI_LOC_TIME_SRC_GAL_TOW_DECODE (17) -- Time is set after decoding GAL satellites
*/
}qmiLocGetAvailWwanPositionIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCPREMIUMSERVICEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_PREMIUM_SERVICE_GTP_CELL_V02 = 0, /**< Premium service -- Global terrestrial positioning for the cell */
eQMI_LOC_PREMIUM_SERVICE_SAP_V02 = 1, /**< Premium service -- Sensor-assisted positioning */
eQMI_LOC_PREMIUM_SERVICE_GTP_ENH_CELL_V02 = 2, /**< Premium service -- Global terrestrial positioning enhanced cell */
QMILOCPREMIUMSERVICEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocPremiumServiceEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCPREMIUMSERVICECFGENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_PREMIUM_SERVICE_DISABLED_V02 = 0, /**< Premium service disabled */
eQMI_LOC_PREMIUM_SERVICE_ENABLED_BASIC_V02 = 1, /**< Premium service enabled for basic */
eQMI_LOC_PREMIUM_SERVICE_ENABLED_PREMIUM_V02 = 2, /**< Premium service enabled for premium */
QMILOCPREMIUMSERVICECFGENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocPremiumServiceCfgEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to set the configuration */
typedef struct {
/* Mandatory */
/* Set Premium Service Type */
qmiLocPremiumServiceEnumT_v02 premiumServiceType;
/**< Specifies the premium service to configure.
Valid values: \n
- eQMI_LOC_PREMIUM_SERVICE_GTP_CELL (0) -- Premium service -- Global terrestrial positioning for the cell
- eQMI_LOC_PREMIUM_SERVICE_SAP (1) -- Premium service -- Sensor-assisted positioning
- eQMI_LOC_PREMIUM_SERVICE_GTP_ENH_CELL (2) -- Premium service -- Global terrestrial positioning enhanced cell
*/
/* Mandatory */
/* Set Premium Service Configuration */
qmiLocPremiumServiceCfgEnumT_v02 premiumServiceCfg;
/**< Specifies the premium service configuration mode.
Valid values: \n
- eQMI_LOC_PREMIUM_SERVICE_DISABLED (0) -- Premium service disabled
- eQMI_LOC_PREMIUM_SERVICE_ENABLED_BASIC (1) -- Premium service enabled for basic
- eQMI_LOC_PREMIUM_SERVICE_ENABLED_PREMIUM (2) -- Premium service enabled for premium
*/
}qmiLocSetPremiumServicesCfgReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to set the configuration */
typedef struct {
/* Mandatory */
/* Set Premium Service Configuration Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set Premium Services Configuration request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
}qmiLocSetPremiumServicesCfgIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCXTRAVERSIONCHECKENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_XTRA_VERSION_CHECK_DISABLE_V02 = 0, /**< XTRA file version check is not required */
eQMI_LOC_XTRA_VERSION_CHECK_AUTO_V02 = 1, /**< XTRA file version check is required; the Location service decides the 'expected version' based on the preprovisioned XTRA version configuration */
eQMI_LOC_XTRA_VERSION_CHECK_XTRA2_V02 = 2, /**< Check the XTRA file against XTRA2 format */
eQMI_LOC_XTRA_VERSION_CHECK_XTRA3_V02 = 3, /**< Check the XTRA file against XTRA3 format */
eQMI_LOC_XTRA_VERSION_CHECK_XTRA3_1_V02 = 4, /**< Check the XTRA file against XTRA3.1 format */
QMILOCXTRAVERSIONCHECKENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocXtraVersionCheckEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to enable or disable XTRA version
verification. */
typedef struct {
/* Mandatory */
/* Set XTRA Version Check Mode */
qmiLocXtraVersionCheckEnumT_v02 xtraVersionCheckMode;
/**< Specifies XTRA version check mode.
Valid values: \n
- eQMI_LOC_XTRA_VERSION_CHECK_DISABLE (0) -- XTRA file version check is not required
- eQMI_LOC_XTRA_VERSION_CHECK_AUTO (1) -- XTRA file version check is required; the Location service decides the 'expected version' based on the preprovisioned XTRA version configuration
- eQMI_LOC_XTRA_VERSION_CHECK_XTRA2 (2) -- Check the XTRA file against XTRA2 format
- eQMI_LOC_XTRA_VERSION_CHECK_XTRA3 (3) -- Check the XTRA file against XTRA3 format
- eQMI_LOC_XTRA_VERSION_CHECK_XTRA3_1 (4) -- Check the XTRA file against XTRA3.1 format
*/
}qmiLocSetXtraVersionCheckReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to enable or disable XTRA version
verification. */
typedef struct {
/* Mandatory */
/* Set XTRA Version Check Mode Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set XTRA version check request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
}qmiLocSetXtraVersionCheckIndMsgT_v02; /* Message */
/**
@}
*/
typedef uint64_t qmiLocGNSSConstellEnumT_v02;
#define eQMI_SYSTEM_GPS_V02 ((qmiLocGNSSConstellEnumT_v02)0x01ull) /**< Enable GPS \n */
#define eQMI_SYSTEM_GLO_V02 ((qmiLocGNSSConstellEnumT_v02)0x02ull) /**< Enable GLONASS \n */
#define eQMI_SYSTEM_BDS_V02 ((qmiLocGNSSConstellEnumT_v02)0x04ull) /**< Enable BDS \n */
#define eQMI_SYSTEM_GAL_V02 ((qmiLocGNSSConstellEnumT_v02)0x08ull) /**< Enable Galileo */
#define eQMI_SYSTEM_QZSS_V02 ((qmiLocGNSSConstellEnumT_v02)0x10ull) /**< Enable QZSS */
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Sets satellite constellations of interest for reporting. */
typedef struct {
/* Optional */
/* GNSS Measurement Report Constellation Control */
uint8_t measReportConfig_valid; /**< Must be set to true if measReportConfig is being passed */
qmiLocGNSSConstellEnumT_v02 measReportConfig;
/**< GNSS measurement report constellation control. \n
Valid values: \n
- eQMI_SYSTEM_GPS (0x01) -- Enable GPS \n
- eQMI_SYSTEM_GLO (0x02) -- Enable GLONASS \n
- eQMI_SYSTEM_BDS (0x04) -- Enable BDS \n
- eQMI_SYSTEM_GAL (0x08) -- Enable Galileo
- eQMI_SYSTEM_QZSS (0x10) -- Enable QZSS
*/
/* Optional */
/* SV Polynomial Report Constellation Control */
uint8_t svPolyReportConfig_valid; /**< Must be set to true if svPolyReportConfig is being passed */
qmiLocGNSSConstellEnumT_v02 svPolyReportConfig;
/**< SV polynomial report constellation control. \n
Valid values: \n
- eQMI_SYSTEM_GPS (0x01) -- Enable GPS \n
- eQMI_SYSTEM_GLO (0x02) -- Enable GLONASS \n
- eQMI_SYSTEM_BDS (0x04) -- Enable BDS \n
- eQMI_SYSTEM_GAL (0x08) -- Enable Galileo
- eQMI_SYSTEM_QZSS (0x10) -- Enable QZSS
*/
}qmiLocSetGNSSConstRepConfigReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sets satellite constellations of interest for reporting. */
typedef struct {
/* Mandatory */
/* Set GNSS Constellation Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the GNSS constellation.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocSetGNSSConstRepConfigIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSOURCEOFFREQENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_FREQ_SOURCE_INVALID_V02 = 0, /**< Source of the frequency is invalid */
eQMI_LOC_FREQ_SOURCE_EXTERNAL_V02 = 1, /**< Source of the frequency is from an external injection */
eQMI_LOC_FREQ_SOURCE_PE_CLK_REPORT_V02 = 2, /**< Source of the frequency is from the GNSS navigation engine */
eQMI_LOC_FREQ_SOURCE_UNKNOWN_V02 = 3, /**< Source of the frequency is unknown */
QMILOCSOURCEOFFREQENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocSourceofFreqEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
float clockDrift;
/**< Receiver clock drift. \n
- Units: Meters per second
*/
float clockDriftUnc;
/**< Receiver clock drift uncertainty. \n
- Units: Meters per second
*/
qmiLocSourceofFreqEnumT_v02 sourceOfFreq;
/**< Source of the clock frequency information.
Valid values: \n
- eQMI_LOC_FREQ_SOURCE_INVALID (0) -- Source of the frequency is invalid
- eQMI_LOC_FREQ_SOURCE_EXTERNAL (1) -- Source of the frequency is from an external injection
- eQMI_LOC_FREQ_SOURCE_PE_CLK_REPORT (2) -- Source of the frequency is from the GNSS navigation engine
- eQMI_LOC_FREQ_SOURCE_UNKNOWN (3) -- Source of the frequency is unknown
*/
}qmiLocRcvrClockFrequencyInfoStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint8_t leapSec;
/**< GPS time leap second delta to UTC time. \n
For nonzero values of leapSecUnc, leapSec must be treated as unknown. \n
- Units: Seconds
*/
uint8_t leapSecUnc;
/**< Uncertainty for the GPS leap second. \n
- Units: Seconds
*/
}qmiLocLeapSecondInfoStructT_v02; /* Type */
/**
@}
*/
typedef uint8_t qmiLocInterSystemBiasValidMaskT_v02;
#define QMI_LOC_SYS_TIME_BIAS_VALID_V02 ((qmiLocInterSystemBiasValidMaskT_v02)0x01) /**< System time bias is valid \n */
#define QMI_LOC_SYS_TIME_BIAS_UNC_VALID_V02 ((qmiLocInterSystemBiasValidMaskT_v02)0x02) /**< System time bias uncertainty is valid */
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocInterSystemBiasValidMaskT_v02 validMask;
/**< Fields that are valid. \n
Valid values: \n
- QMI_LOC_SYS_TIME_BIAS_VALID (0x01) -- System time bias is valid \n
- QMI_LOC_SYS_TIME_BIAS_UNC_VALID (0x02) -- System time bias uncertainty is valid \n
*/
float timeBias;
/**< System 1 to System 2 time bias. \n
- Units: Milliseconds
*/
float timeBiasUnc;
/**< System 1 to System 2 time bias uncertainty. \n
- Units: Milliseconds
*/
}qmiLocInterSystemBiasStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocSvSystemEnumT_v02 system;
/**< Specifies the satellite system constellation.
Valid values: \n
- eQMI_LOC_SV_SYSTEM_GPS (1) -- GPS satellite
- eQMI_LOC_SV_SYSTEM_GALILEO (2) -- GALILEO satellite
- eQMI_LOC_SV_SYSTEM_SBAS (3) -- SBAS satellite
- eQMI_LOC_SV_SYSTEM_COMPASS (4) -- COMPASS satellite (Deprecated)
- eQMI_LOC_SV_SYSTEM_GLONASS (5) -- GLONASS satellite
- eQMI_LOC_SV_SYSTEM_BDS (6) -- BDS satellite
- eQMI_LOC_SV_SYSTEM_QZSS (7) -- QZSS satellite
*/
uint16_t systemWeek;
/**< Current system week. \n
- For GPS: Calculated from midnight, Jan. 6, 1980 \n
- For BDS: Calculated from 00:00:00 on January 1, 2006 of Coordinated Universal Time (UTC) \n
- For GAL: Calculated from 00:00 UT on Sunday August 22, 1999 (midnight between August 21 and August 22) \n
If the week is unknown, set this value to 65535. \n
- Units: Weeks */
uint32_t systemMsec;
/**< Amount of time into the current week. \n
- Units: Milliseconds */
float systemClkTimeBias;
/**< System clock time bias (submilliseconds). \n
- Units: Milliseconds
(system time = systemMsec - systemClkTimeBias)
*/
float systemClkTimeUncMs;
/**< Single-sided maximum time bias uncertainty. \n
- Units: Milliseconds
*/
}qmiLocGnssTimeStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint8_t gloFourYear;
/**< GLONASS four year number from 1996. Refer to GLONASS ICD. \n
Applicable only for GLONASS and is to be ignored for other constellations. \n
If unknown, set this value to 255.
*/
uint16_t gloDays;
/**< GLONASS day number in four years. Refer to GLONASS ICD. \n
Applicable only for GLONASS and is to be ignored for other constellations. \n
If unknown, set this value to 65535.
*/
uint32_t gloMsec;
/**< GLONASS time of day in msec. Refer to GLONASS ICD. \n
- Units: Milliseconds
*/
float gloClkTimeBias;
/**< System clock time bias (submillisecond). \n
- Units: Milliseconds
(system time = systemMsec - systemClkTimeBias)
*/
float gloClkTimeUncMs;
/**< Single-sided maximum time bias uncertainty. \n
- Units: Milliseconds
*/
}qmiLocGloTimeStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint32_t refFCount;
/**< Receiver frame counter value at a reference tick. */
uint8_t systemRtc_valid;
/**< Validity indicator for the system RTC. */
uint64_t systemRtcMs;
/**< Platform system RTC value. \n
- Units: Milliseconds
*/
qmiLocTimeSourceEnumT_v02 sourceOfTime;
/**< Source of the time information.
Valid values: \n
- eQMI_LOC_TIME_SRC_INVALID (0) -- Invalid time.
- eQMI_LOC_TIME_SRC_NETWORK_TIME_TRANSFER (1) -- Time is set by the 1X system
- eQMI_LOC_TIME_SRC_NETWORK_TIME_TAGGING (2) -- Time is set by WCDMA/GSM time tagging (that is,
associating network time with GPS time)
- eQMI_LOC_TIME_SRC_EXTERNAL_INPUT (3) -- Time is set by an external injection
- eQMI_LOC_TIME_SRC_TOW_DECODE (4) -- Time is set after decoding over-the-air GPS navigation data
from one GPS satellite
- eQMI_LOC_TIME_SRC_TOW_CONFIRMED (5) -- Time is set after decoding over-the-air GPS navigation data
from multiple satellites
- eQMI_LOC_TIME_SRC_TOW_AND_WEEK_CONFIRMED (6) -- Both time of the week and the GPS week number are known
- eQMI_LOC_TIME_SRC_NAV_SOLUTION (7) -- Time is set by the position engine after the fix is obtained
- eQMI_LOC_TIME_SRC_SOLVE_FOR_TIME (8) -- Time is set by the position engine after performing SFT;
this is done when the clock time uncertainty is large
- eQMI_LOC_TIME_SRC_GLO_TOW_DECODE (9) -- Time is set after decoding GLO satellites
- eQMI_LOC_TIME_SRC_TIME_TRANSFORM (10) -- Time is set after transforming the GPS to GLO time
- eQMI_LOC_TIME_SRC_WCDMA_SLEEP_TIME_TAGGING (11) -- Time is set by the sleep time tag provided by the WCDMA network
- eQMI_LOC_TIME_SRC_GSM_SLEEP_TIME_TAGGING (12) -- Time is set by the sleep time tag provided by the GSM network
- eQMI_LOC_TIME_SRC_UNKNOWN (13) -- Source of the time is unknown
- eQMI_LOC_TIME_SRC_SYSTEM_TIMETICK (14) -- Time is derived from the system clock (better known as the slow clock);
GNSS time is maintained irrespective of the GNSS receiver state
- eQMI_LOC_TIME_SRC_QZSS_TOW_DECODE (15) -- Time is set after decoding QZSS satellites
- eQMI_LOC_TIME_SRC_BDS_TOW_DECODE (16) -- Time is set after decoding BDS satellites
- eQMI_LOC_TIME_SRC_GAL_TOW_DECODE (17) -- Time is set after decoding GAL satellites
*/
}qmiLocGnssTimeExtStructT_v02; /* Type */
/**
@}
*/
typedef uint64_t qmiLocSvMeasStatusValidMaskT_v02;
#define QMI_LOC_MASK_MEAS_STATUS_SM_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000001ull) /**< Satellite time in submilliseconds (code-phase) */
#define QMI_LOC_MASK_MEAS_STATUS_SB_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000002ull) /**< Satellite sub-bit time */
#define QMI_LOC_MASK_MEAS_STATUS_MS_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000004ull) /**< Satellite time in milliseconds */
#define QMI_LOC_MASK_MEAS_STATUS_BE_CONFIRM_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000008ull) /**< Signal bit edge is confirmed */
#define QMI_LOC_MASK_MEAS_STATUS_VEL_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000010ull) /**< Satellite Doppler is measured */
#define QMI_LOC_MASK_MEAS_STATUS_VEL_FINE_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000020ull) /**< Fine/coarse Doppler measurement indicator */
#define QMI_LOC_MASK_MEAS_STATUS_FROM_RNG_DIFF_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000200ull) /**< Range update from satellite differences */
#define QMI_LOC_MASK_MEAS_STATUS_FROM_VE_DIFF_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000400ull) /**< Doppler update from satellite differences */
typedef uint64_t qmiLocSvMeasStatusMaskT_v02;
#define QMI_LOC_MASK_MEAS_STATUS_SM_VALID_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000001ull) /**< Satellite time in submilliseconds (code phase) is known */
#define QMI_LOC_MASK_MEAS_STATUS_SB_VALID_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000002ull) /**< Satellite sub-bit time is known */
#define QMI_LOC_MASK_MEAS_STATUS_MS_VALID_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000004ull) /**< Satellite time in milliseconds is known */
#define QMI_LOC_MASK_MEAS_STATUS_BE_CONFIRM_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000008ull) /**< Signal bit edge is confirmed */
#define QMI_LOC_MASK_MEAS_STATUS_VELOCITY_VALID_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000010ull) /**< Satellite Doppler is measured */
#define QMI_LOC_MASK_MEAS_STATUS_VELOCITY_FINE_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000020ull) /**< TRUE: Fine Doppler is measured, FALSE: Coarse Doppler is measured */
#define QMI_LOC_MASK_MEAS_STATUS_FROM_RNG_DIFF_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000200ull) /**< Range update from satellite differences is measured */
#define QMI_LOC_MASK_MEAS_STATUS_FROM_VE_DIFF_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000400ull) /**< Doppler update from satellite differences is measured} */
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint32_t svTimeMs;
/**< Satellite time in milliseconds. \n
- For GPS, BDS, GAL, and QZSS -- Range is 0 thru (604800000-1) \n
- For GLONASS -- Range is 0 thru (86400000-1) \n
- Units: Milliseconds \vspace{4pt}
This is valid when the QMI_LOC_MEAS_ STATUS_MS_VALID bit is set
in the measurement status. \vspace{4pt}
@note All SV times in the current measurement block are
already propagated to a common reference time epoch.
*/
float svTimeSubMs;
/**< Satellite time in submilliseconds. \n
Total SV Time = svMs + svSubMs \n
- Units: Milliseconds
*/
float svTimeUncMs;
/**< Satellite time uncertainty. \n
- Units: Milliseconds
*/
float dopplerShift;
/**< Satellite Doppler. \n
- Units: Meters per second
*/
float dopplerShiftUnc;
/**< Satellite Doppler uncertainty. \n
- Units: Meters per second
*/
uint8_t dopplerAccel_valid;
/**< Validity for Doppler acceleration. */
float dopplerAccel;
/**< Satellite Doppler acceleration. \n
- Units: Hz/second
*/
}qmiLocSVTimeSpeedStructT_v02; /* Type */
/**
@}
*/
typedef uint16_t qmiLocMeasFieldsValidMaskT_v02;
#define QMI_LOC_SV_HEALTH_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x01) /**< SV health information is valid */
#define QMI_LOC_SV_MULTIPATH_EST_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x02) /**< Multipath estimate for SV is valid */
#define QMI_LOC_SV_FINE_SPEED_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x04) /**< Fine speed for SV is valid */
#define QMI_LOC_SV_FINE_SPEED_UNC_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x08) /**< Fine speed uncertainty for SV is valid */
#define QMI_LOC_SV_CARRIER_PHASE_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x10) /**< Carrier phase for SV is valid */
#define QMI_LOC_SV_SV_DIRECTION_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x20) /**< SV direction information for SV is valid */
#define QMI_LOC_SV_CYCLESLIP_COUNT_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x40) /**< Cycle slip count information is valid */
#define QMI_LOC_SV_LOSSOFLOCK_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x80) /**< Loss of lock information is valid */
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint16_t gnssSvId;
/**< GNSS SV ID.
\begin{itemize1}
\item Range: \begin{itemize1}
\item For GPS: 1 to 32
\item For GLONASS: 65 to 96. When slot-number to SV ID mapping is unknown, set as 255.
\item For QZSS: 193 to 197
\item For BDS: 201 to 237
\item For GAL: 301 to 336
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
uint8_t gloFrequency;
/**< GLONASS frequency number + 7. \n
Valid only for a GLONASS system and
is to be ignored for all other systems. \n
- Range: 1 to 14
*/
qmiLocSvStatusEnumT_v02 svStatus;
/**< Satellite search state.
Valid values: \n
- eQMI_LOC_SV_STATUS_IDLE (1) -- SV is not being actively processed
- eQMI_LOC_SV_STATUS_SEARCH (2) -- The system is searching for this SV
- eQMI_LOC_SV_STATUS_TRACK (3) -- SV is being tracked
*/
qmiLocMeasFieldsValidMaskT_v02 validMask;
/**< Validity mask (0 = Not valid; 1 = Valid). \n
- QMI_LOC_SV_HEALTH_VALID (0x01) -- SV health information is valid
- QMI_LOC_SV_MULTIPATH_EST_VALID (0x02) -- Multipath estimate for SV is valid
- QMI_LOC_SV_FINE_SPEED_VALID (0x04) -- Fine speed for SV is valid
- QMI_LOC_SV_FINE_SPEED_UNC_VALID (0x08) -- Fine speed uncertainty for SV is valid
- QMI_LOC_SV_CARRIER_PHASE_VALID (0x10) -- Carrier phase for SV is valid
- QMI_LOC_SV_SV_DIRECTION_VALID (0x20) -- SV direction information for SV is valid
- QMI_LOC_SV_CYCLESLIP_COUNT_VALID (0x40) -- Cycle slip count information is valid
- QMI_LOC_SV_LOSSOFLOCK_VALID (0x80) -- Loss of lock information is valid
*/
uint8_t healthStatus;
/**< Health status. \n
\begin{itemize1}
- Range: 0 to 1, where 0 = unhealthy, 1 = healthy
*/
qmiLocSvInfoMaskT_v02 svInfoMask;
/**< Indicates whether almanac and ephemeris information is available.
Valid values: \n
- QMI_LOC_SVINFO_MASK_HAS_EPHEMERIS (0x01) -- Ephemeris is available for this SV
- QMI_LOC_SVINFO_MASK_HAS_ALMANAC (0x02) -- Almanac is available for this SV
*/
qmiLocSvMeasStatusValidMaskT_v02 validMeasStatusMask;
/**< Validity mask for measurement status information. \n
A set bit in validMeasStatusMask indicates that the corresponding bit
in measurementStatus has valid status information: \n
Valid masks: \n
- QMI_LOC_MASK_MEAS_STATUS_SM_STAT_BIT_VALID (0x00000001) -- Satellite time in submilliseconds (code-phase)
- QMI_LOC_MASK_MEAS_STATUS_SB_STAT_BIT_VALID (0x00000002) -- Satellite sub-bit time
- QMI_LOC_MASK_MEAS_STATUS_MS_STAT_BIT_VALID (0x00000004) -- Satellite time in milliseconds
- QMI_LOC_MASK_MEAS_STATUS_BE_CONFIRM_STAT_BIT_VALID (0x00000008) -- Signal bit edge is confirmed
- QMI_LOC_MASK_MEAS_STATUS_VEL_STAT_BIT_VALID (0x00000010) -- Satellite Doppler is measured
- QMI_LOC_MASK_MEAS_STATUS_VEL_FINE_STAT_BIT_VALID (0x00000020) -- Fine/coarse Doppler measurement indicator
- QMI_LOC_MASK_MEAS_STATUS_FROM_RNG_DIFF_STAT_BIT_VALID (0x00000200) -- Range update from satellite differences
- QMI_LOC_MASK_MEAS_STATUS_FROM_VE_DIFF_STAT_BIT_VALID (0x00000400) -- Doppler update from satellite differences
\vspace{4pt}
Additionally, MSB 0xFFC0000000000000 bits indicate the validity of DONT_USE bits. \n
*/
qmiLocSvMeasStatusMaskT_v02 measurementStatus;
/**< Bitmask indicating the SV measurement status.
Valid bitmasks: \n
- QMI_LOC_MASK_MEAS_STATUS_SM_VALID (0x00000001) -- Satellite time in submilliseconds (code phase) is known
- QMI_LOC_MASK_MEAS_STATUS_SB_VALID (0x00000002) -- Satellite sub-bit time is known
- QMI_LOC_MASK_MEAS_STATUS_MS_VALID (0x00000004) -- Satellite time in milliseconds is known
- QMI_LOC_MASK_MEAS_STATUS_BE_CONFIRM (0x00000008) -- Signal bit edge is confirmed
- QMI_LOC_MASK_MEAS_STATUS_VELOCITY_VALID (0x00000010) -- Satellite Doppler is measured
- QMI_LOC_MASK_MEAS_STATUS_VELOCITY_FINE (0x00000020) -- TRUE: Fine Doppler is measured, FALSE: Coarse Doppler is measured
- QMI_LOC_MASK_MEAS_STATUS_FROM_RNG_DIFF (0x00000200) -- Range update from satellite differences is measured
- QMI_LOC_MASK_MEAS_STATUS_FROM_VE_DIFF (0x00000400) -- Doppler update from satellite differences is measured}
If any MSB bit in 0xFFC0000000000000 DONT_USE is set, the measurement
must not be used by the client.
*/
uint16_t CNo;
/**< Carrier to noise ratio. \n
- Units: dBHz \n
- Scale: 0.1
*/
uint16_t gloRfLoss;
/**< GLONASS RF loss reference to the antenna. \n
- Units: dB \n
- Scale: 0.1
*/
int32_t measLatency;
/**< Age of the measurement. A positive value means the measurement precedes the reference time. \n
- Units: Milliseconds
*/
qmiLocSVTimeSpeedStructT_v02 svTimeSpeed;
/**< SV time and speed information. */
uint8_t lossOfLock;
/**< Loss of signal lock indicator. \n
- 0: Signal is in continuous track \n
- 1: Signal is not in track
*/
float multipathEstimate;
/**< Estimate of multipath in a measurement. \n
- Units: Meters
*/
float fineSpeed;
/**< Carrier phase derived speed. \n
- Units: Meters per second
*/
float fineSpeedUnc;
/**< Carrier phase derived speed uncertainty. \n
- Units: Meters per second
*/
double carrierPhase;
/**< Carrier phase measurement (L1 cycles).
*/
uint8_t cycleSlipCount;
/**< Increments when a cycle slip is detected. */
float svAzimuth;
/**< Satellite azimuth. \n
- Units: Radians \n
- Range: 0 to 2*pi()
*/
float svElevation;
/**< Satellite elevation. \n
- Units: Radians \n
- Range: 0 to pi()/2
*/
}qmiLocSVMeasurementStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sends a satellite measurement report to the control point. */
typedef struct {
/* Mandatory */
/* Current Message Sequence Number */
uint8_t seqNum;
/**< Current message number. Used for segmentation/assembly of measurement reports. */
/* Mandatory */
/* Maximum Number of Messages to be Sent for Present Time Epoch */
uint8_t maxMessageNum;
/**< Maximum number of messages that are to be sent for the present time epoch. */
/* Mandatory */
/* Specifies Satellite System Constellation of This Report */
qmiLocSvSystemEnumT_v02 system;
/**< Specifies the satellite system constellation of this report.
Valid values: \n
- eQMI_LOC_SV_SYSTEM_GPS (1) -- GPS satellite
- eQMI_LOC_SV_SYSTEM_GALILEO (2) -- GALILEO satellite
- eQMI_LOC_SV_SYSTEM_SBAS (3) -- SBAS satellite
- eQMI_LOC_SV_SYSTEM_COMPASS (4) -- COMPASS satellite (Deprecated)
- eQMI_LOC_SV_SYSTEM_GLONASS (5) -- GLONASS satellite
- eQMI_LOC_SV_SYSTEM_BDS (6) -- BDS satellite
- eQMI_LOC_SV_SYSTEM_QZSS (7) -- QZSS satellite
*/
/* Optional */
/* GNSS Receiver Clock Frequency Information */
uint8_t rcvrClockFrequencyInfo_valid; /**< Must be set to true if rcvrClockFrequencyInfo is being passed */
qmiLocRcvrClockFrequencyInfoStructT_v02 rcvrClockFrequencyInfo;
/* Optional */
/* Leap Second Information */
uint8_t leapSecondInfo_valid; /**< Must be set to true if leapSecondInfo is being passed */
qmiLocLeapSecondInfoStructT_v02 leapSecondInfo;
/* Optional */
/* GPS to GLONASS Intersystem Time Bias */
uint8_t gpsGloInterSystemBias_valid; /**< Must be set to true if gpsGloInterSystemBias is being passed */
qmiLocInterSystemBiasStructT_v02 gpsGloInterSystemBias;
/**< \vspace{4pt} \n
This is reported if both GPS and GLONASS system
information reporting are enabled. \n
- System 1: GPS \n
- System 2: GLONASS
*/
/* Optional */
/* GPS to BDS Intersystem Time Bias */
uint8_t gpsBdsInterSystemBias_valid; /**< Must be set to true if gpsBdsInterSystemBias is being passed */
qmiLocInterSystemBiasStructT_v02 gpsBdsInterSystemBias;
/**< \vspace{4pt} \n
This is reported if both GPS and BDS system
information reporting are enabled. \n
- System 1: GPS \n
- System 2: BDS
*/
/* Optional */
/* GPS to GALILEO Intersystem Time Bias */
uint8_t gpsGalInterSystemBias_valid; /**< Must be set to true if gpsGalInterSystemBias is being passed */
qmiLocInterSystemBiasStructT_v02 gpsGalInterSystemBias;
/**< \vspace{4pt} \n
This is reported if both GPS and GALILEO system
information reporting are enabled. \n
- System 1: GPS \n
- System 2: GALILEO
*/
/* Optional */
/* BDS to GLONASS Intersystem Time Bias */
uint8_t bdsGloInterSystemBias_valid; /**< Must be set to true if bdsGloInterSystemBias is being passed */
qmiLocInterSystemBiasStructT_v02 bdsGloInterSystemBias;
/**< \vspace{4pt} \n
This is reported if both BDS and GLONASS system
information reporting are enabled. \n
- System 1: BDS \n
- System 2: GLONASS
*/
/* Optional */
/* GAL to GLONASS Intersystem Time Bias */
uint8_t galGloInterSystemBias_valid; /**< Must be set to true if galGloInterSystemBias is being passed */
qmiLocInterSystemBiasStructT_v02 galGloInterSystemBias;
/**< \vspace{4pt} \n
This is reported if both GAL and GLONASS system
information reporting are enabled. \n
- System 1: GAL \n
- System 2: GLONASS
*/
/* Optional */
/* GAL to BDS Intersystem Time Bias */
uint8_t galBdsInterSystemBias_valid; /**< Must be set to true if galBdsInterSystemBias is being passed */
qmiLocInterSystemBiasStructT_v02 galBdsInterSystemBias;
/**< \vspace{4pt} \n
This is reported if both GAL and BDS system
information reporting are enabled. \n
- System 1: GAL \n
- System 2: BDS
*/
/* Optional */
/* Satellite System Time Information for GPS, BDS, GAL Constellation */
uint8_t systemTime_valid; /**< Must be set to true if systemTime is being passed */
qmiLocGnssTimeStructT_v02 systemTime;
/* Optional */
/* GLONASS System Time Information */
uint8_t gloTime_valid; /**< Must be set to true if gloTime is being passed */
qmiLocGloTimeStructT_v02 gloTime;
/* Optional */
/* Extended Time Information */
uint8_t systemTimeExt_valid; /**< Must be set to true if systemTimeExt is being passed */
qmiLocGnssTimeExtStructT_v02 systemTimeExt;
/* Optional */
/* Satellite System Measurement Report for Enabled Constellation */
uint8_t svMeasurement_valid; /**< Must be set to true if svMeasurement is being passed */
uint32_t svMeasurement_len; /**< Must be set to # of elements in svMeasurement */
qmiLocSVMeasurementStructT_v02 svMeasurement[QMI_LOC_SV_MEAS_LIST_MAX_SIZE_V02];
/* Optional */
/* Extended Time Information - Cumulative number of clock resets */
uint8_t numClockResets_valid; /**< Must be set to true if numClockResets is being passed */
uint32_t numClockResets;
/**< Number of clock reset/discontinuities detected, affecting local HW counter value */
}qmiLocEventGnssSvMeasInfoIndMsgT_v02; /* Message */
/**
@}
*/
typedef uint16_t qmiLocSvPolyStatusMaskT_v02;
#define QMI_LOC_SV_POLY_SRC_ALM_CORR_V02 ((qmiLocSvPolyStatusMaskT_v02)0x01) /**< Polynomials based on XTRA */
#define QMI_LOC_SV_POLY_GLO_STR4_V02 ((qmiLocSvPolyStatusMaskT_v02)0x02) /**< GLONASS string 4 has been received */
typedef uint16_t qmiLocSvPolyStatusMaskValidityT_v02;
#define QMI_LOC_SV_POLY_SRC_ALM_CORR_VALID_V02 ((qmiLocSvPolyStatusMaskValidityT_v02)0x01) /**< Validity status for QMI_LOC_SV_POLY_SRC_ALM_CORR */
#define QMI_LOC_SV_POLY_GLO_STR4_VALID_V02 ((qmiLocSvPolyStatusMaskValidityT_v02)0x02) /**< Validity status for QMI_LOC_SV_POLY_GLO_STR4 */
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sends a satellite polynomial report to the control point. */
typedef struct {
/* Mandatory */
/* GNSS SV Polynomial Report */
uint16_t gnssSvId;
/**< GNSS SV ID. \begin{itemize1}
\item Range: \begin{itemize1}
\item For GPS: 1 to 32
\item For GLONASS: 65 to 96 (when the slot number to SV ID mapping is unknown, set to 255)
\item For SBAS: 120 to 158 and 183 to 187
\item For QZSS: 193 to 197
\item For BDS: 201 to 237
\item For GAL: 301 to 336
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
/* Mandatory */
/* Reference Time for Polynomial Calculations */
double T0;
/**< Reference time for polynomial calculations. \n
- GPS, QZSS: Seconds in the week \n
- GLO: Full seconds since Jan. 1, 1996 \n
- BDS: Full seconds since Jan. 1, 2006 \n
- GAL: Calculated from 00:00 UT on Sunday, August 22, 1999 (midnight between August 21 and August 22)
*/
/* Mandatory */
/* SV Polynomial Validity Status */
qmiLocSvPolyStatusMaskValidityT_v02 svPolyFlagValid;
/**< Validity mask for bits in svPolyFlags. A set bit in svPolyFlagValid indicates that a
corresponding bit in svPolyFlags has valid status information.
Valid bitmasks: \n
- QMI_LOC_SV_POLY_SRC_ALM_CORR_VALID (0x01) -- Validity status for QMI_LOC_SV_POLY_SRC_ALM_CORR
- QMI_LOC_SV_POLY_GLO_STR4_VALID (0x02) -- Validity status for QMI_LOC_SV_POLY_GLO_STR4 */
/* Mandatory */
/* SV Polynomial Report Status */
qmiLocSvPolyStatusMaskT_v02 svPolyFlags;
/**< Flags indicating the status of a polynomial report.
Valid bitmasks: \n
- QMI_LOC_SV_POLY_SRC_ALM_CORR (0x01) -- Polynomials based on XTRA
- QMI_LOC_SV_POLY_GLO_STR4 (0x02) -- GLONASS string 4 has been received */
/* Optional */
/* Polynomial Coefficient's 0th Term for X, Y, and Z Coordinates */
uint8_t polyCoeffXYZ0_valid; /**< Must be set to true if polyCoeffXYZ0 is being passed */
double polyCoeffXYZ0[QMI_LOC_SV_POLY_XYZ_0_TH_ORDER_COEFF_SIZE_V02];
/**< Polynomial coefficient's 0th term for X, Y, and Z coordinates (C0X, C0Y, C0Z). \n
- Units: Meters
*/
/* Optional */
/* Polynomial Coefficient's 1st, 2nd, and 3rd Terms for X, Y, and Z Coordinates */
uint8_t polyCoefXYZN_valid; /**< Must be set to true if polyCoefXYZN is being passed */
double polyCoefXYZN[QMI_LOC_SV_POLY_XYZ_N_TH_ORDER_COEFF_SIZE_V02];
/**< Polynomial coefficient's 1st, 2nd, and 3rd terms for X, Y, and Z coordinates (C1X, C2X,... C2Z, C3Z). \begin{itemize1}
\item Units: \begin{itemize1}
\item 1st term -- Meters/second
\item 2nd term -- Meters/second^2
\item 3rd term -- Meters/seconds^3 \vspace{-0.18in} \end{itemize1} end{itemize1}
*/
/* Optional */
/* Polynomial Coefficients for Satellite Clock Bias Correction */
uint8_t polyCoefClockBias_valid; /**< Must be set to true if polyCoefClockBias is being passed */
float polyCoefClockBias[QMI_LOC_SV_POLY_SV_CLKBIAS_COEFF_SIZE_V02];
/**< Polynomial coefficients for satellite clock bias correction (C0T, C1T, C2T, C3T). \begin{itemize1}
\item Units: \begin{itemize1}
\item 0th term -- Milliseconds/second
\item 1st term -- Milliseconds/second^2
\item 2nd term -- Milliseconds/second^3
\item 3rd term -- Milliseconds/second^4 \vspace{-0.18in} \end{itemize1} end{itemize1}
*/
/* Optional */
/* GLONASS Frequency Number */
uint8_t gloFrequency_valid; /**< Must be set to true if gloFrequency is being passed */
uint8_t gloFrequency;
/**< GLONASS frequency number + 7. \n
Valid only for GLONASS systems and
must be ignored for all other systems. \n
- Range: 1 to 14
*/
/* Optional */
/* Ephemeris Reference Time */
uint8_t IODE_valid; /**< Must be set to true if IODE is being passed */
uint16_t IODE;
/**< Ephemeris reference time. \n
- GPS -- Issue of data ephemeris used (unitless) \n
- GLONASS -- Tb 7-bit \n
- Galileo -- 10-bit
*/
/* Optional */
/* Enhanced Reference Time */
uint8_t enhancedIOD_valid; /**< Must be set to true if enhancedIOD is being passed */
uint32_t enhancedIOD;
/**< For BDS ephemeris, this is TOE.
*/
/* Optional */
/* SV Position Uncertainty */
uint8_t svPosUnc_valid; /**< Must be set to true if svPosUnc is being passed */
float svPosUnc;
/**< SV position uncertainty. \n
- Units: Meters
*/
/* Optional */
/* Iono Delay */
uint8_t ionoDelay_valid; /**< Must be set to true if ionoDelay is being passed */
float ionoDelay;
/**< Ionospheric delay at T0. \n
- Units: Meters
*/
/* Optional */
/* Iono Delay Rate */
uint8_t ionoDot_valid; /**< Must be set to true if ionoDot is being passed */
float ionoDot;
/**< Ionospheric delay rate. \n
- Units: Meters/second
*/
/* Optional */
/* SBAS Iono Delay */
uint8_t sbasIonoDelay_valid; /**< Must be set to true if sbasIonoDelay is being passed */
float sbasIonoDelay;
/**< SBAS ionospheric delay at T0. \n
- Units: Meters
*/
/* Optional */
/* SBAS Iono Delay Rate */
uint8_t sbasIonoDot_valid; /**< Must be set to true if sbasIonoDot is being passed */
float sbasIonoDot;
/**< SBAS ionospheric delay rate. \n
- Units: Meters/second
*/
/* Optional */
/* Tropospheric Delay */
uint8_t tropoDelay_valid; /**< Must be set to true if tropoDelay is being passed */
float tropoDelay;
/**< Tropospheric delay. \n
- Units: Meters
*/
/* Optional */
/* Satellite Elevation */
uint8_t elevation_valid; /**< Must be set to true if elevation is being passed */
float elevation;
/**< Satellite elevation at T0. \n
- Units: Radians
*/
/* Optional */
/* Satellite Elevation Rate */
uint8_t elevationDot_valid; /**< Must be set to true if elevationDot is being passed */
float elevationDot;
/**< Satellite elevation rate. \n
- Units: Radians/second
*/
/* Optional */
/* Satellite Elevation Uncertainty */
uint8_t elenationUnc_valid; /**< Must be set to true if elenationUnc is being passed */
float elenationUnc;
/**< SV elevation uncertainty. \n
- Units: Radians
*/
/* Optional */
/* Polynomial Coefficients for SV Velocity */
uint8_t velCoef_valid; /**< Must be set to true if velCoef is being passed */
double velCoef[QMI_LOC_SV_POLY_VELOCITY_COEF_SIZE_V02];
/**< Polynomial coefficients for SV velocity (C0X, C1X, C2X, C3X,... C2Z, C3Z). \begin{itemize1}
\item Units: \begin{itemize1}
\item 0th term -- Meters/second
\item 1st term -- Meters/second^2
\item 2nd term -- Meters/second^3
\item 3rd term -- Meters/second^4 \vspace{-0.18in} \end{itemize1} end{itemize1}
*/
}qmiLocEventGnssSvPolyIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint8_t wifiApMacAddress[QMI_LOC_WIFI_MAC_ADDR_LENGTH_V02];
/**< MAC address of the Wi-Fi AP. */
}qmiLocWifiApMacAddressStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
char uuid[QMI_LOC_MAX_IBEACON_UUID_STR_LENGTH_V02 + 1];
/**< NULL-terminated IBeacon identifier string; a 128-bit value. */
uint32_t majorNumber;
/**< IBeacon major number.*/
uint32_t minorNumber;
/**< IBeacon minor number.*/
}qmiLocIBeaconIdStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to inject the Geofence context. */
typedef struct {
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Identifies the transaction. The transaction ID
is returned in the Add Geofence Context indication. */
/* Optional */
/* Geofence ID */
uint8_t geofenceId_valid; /**< Must be set to true if geofenceId is being passed */
uint32_t geofenceId;
/**< Geofence identifier allocated by the engine. \n
If the Geofence ID is not provided, a Geofence is created with an Area ID
list only (e.g., Wi-Fi only list Geofence). \n
If the Geofence ID is provided, the added list is used as assistance data
to the existing Geofence. */
/* Optional */
/* Wi-Fi AP SSID String */
uint8_t wifiApSsidInfo_valid; /**< Must be set to true if wifiApSsidInfo is being passed */
uint32_t wifiApSsidInfo_len; /**< Must be set to # of elements in wifiApSsidInfo */
qmiLocWifiApSsidStructT_v02 wifiApSsidInfo[QMI_LOC_WIFI_AREA_ID_LIST_LENGTH_V02];
/**< \vspace{4pt} \n The ordering of the Wi-Fi AP SSID list should match the Wi-Fi AP MAC address
list when both are provided,
that is, the first element of the Wi-Fi AP SSID list must be the SSID of the AP whose MAC
address is in the first element in the Wi-Fi AP MAC address, etc. */
/* Optional */
/* Wi-Fi AP MAC Address List for the Geofence */
uint8_t wifiApMacAddressList_valid; /**< Must be set to true if wifiApMacAddressList is being passed */
uint32_t wifiApMacAddressList_len; /**< Must be set to # of elements in wifiApMacAddressList */
qmiLocWifiApMacAddressStructT_v02 wifiApMacAddressList[QMI_LOC_WIFI_AREA_ID_LIST_LENGTH_V02];
/**< The ordering of the Wi-Fi AP SSID list should match the Wi-Fi AP MAC address
list when both are provided,
that is, the first element of the Wi-Fi AP SSID list must be the SSID of the AP whose MAC
address is in the first element in the Wi-Fi AP MAC address, etc. */
/* Optional */
/* TDSCDMA Cell ID List for the Geofence */
uint8_t tdsCdmaCellIDList_valid; /**< Must be set to true if tdsCdmaCellIDList is being passed */
qmiLocTDSCDMACellIdStructT_v02 tdsCdmaCellIDList[QMI_LOC_CELL_ID_LIST_LENGTH_V02];
/**< \n Identifies the TDSCDMA cell on which the device is currently camped. */
/* Optional */
/* WCDMA Cell ID List for the Geofence */
uint8_t wcdmaCellIDList_valid; /**< Must be set to true if wcdmaCellIDList is being passed */
uint32_t wcdmaCellIDList_len; /**< Must be set to # of elements in wcdmaCellIDList */
qmiLocWCDMACellIdStructT_v02 wcdmaCellIDList[QMI_LOC_CELL_ID_LIST_LENGTH_V02];
/**< \vspace{4pt} \n Identifies the WCDMA cell on which the device is currently camped. */
/* Optional */
/* GSM Cell ID List for the Geofence */
uint8_t gsmCellIDList_valid; /**< Must be set to true if gsmCellIDList is being passed */
uint32_t gsmCellIDList_len; /**< Must be set to # of elements in gsmCellIDList */
qmiLocGSMCellIdStructT_v02 gsmCellIDList[QMI_LOC_CELL_ID_LIST_LENGTH_V02];
/**< \n Identifies the GSM cell on which the device is currently camped. */
/* Optional */
/* IBeacon List of the Geofence */
uint8_t iBeaconList_valid; /**< Must be set to true if iBeaconList is being passed */
uint32_t iBeaconList_len; /**< Must be set to # of elements in iBeaconList */
qmiLocIBeaconIdStructT_v02 iBeaconList[QMI_LOC_IBEACON_LIST_LENGTH_V02];
}qmiLocAddGeofenceContextReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to inject the Geofence context. */
typedef struct {
/* Mandatory */
/* Status of the Add Geofence Context Request */
qmiLocStatusEnumT_v02 status;
/**< Status of the Add Geofence Context request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Transaction ID */
uint8_t transactionId_valid; /**< Must be set to true if transactionId is being passed */
uint32_t transactionId;
/**< Transaction ID that was specified in the Add Geofence Context
request. This parameter is always present
if the status field is set to SUCCESS. */
/* Optional */
/* Geofence ID */
uint8_t geofenceId_valid; /**< Must be set to true if geofenceId is being passed */
uint32_t geofenceId;
/**< Geofence identifier allocated by the engine. \n
If the client specifies the Geofence ID during the Add Geofence Context request,
the same ID is returned. \n
If the client does not specify the Geofence ID during the Add Geofence Context request,
a new Geofence ID is created by the Geofence engine and returned. */
/* Optional */
/* Context ID */
uint8_t contextId_valid; /**< Must be set to true if contextId is being passed */
uint32_t contextId;
/**< Geofence context ID allocated by the engine.
The context ID is generated by the Geofence engine to identify the context
for a particular Geofence ID.
The same Geofence ID may be associated with multiple contexts. */
}qmiLocAddGeofenceContextIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to inject the Geofence engine context. */
typedef struct {
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Identifies the transaction. The transaction ID
is returned in the Set Geofence Engine Context indication. */
/* Optional */
/* UTC Timestamp of the Day */
uint8_t utcTimeOfDay_valid; /**< Must be set to true if utcTimeOfDay is being passed */
uint64_t utcTimeOfDay;
/**< The UTC time of the day. */
/* Optional */
/* Temperature of the Day in Fahrenheit */
uint8_t temperature_valid; /**< Must be set to true if temperature is being passed */
int32_t temperature;
/**< The temperature of the day in degrees Fahrenheit. */
}qmiLocSetGeofenceEngineContextReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to inject the Geofence engine context. */
typedef struct {
/* Mandatory */
/* Status of the Set Geofence Engine Context Request */
qmiLocStatusEnumT_v02 status;
/**< Status of the Set Geofence Engine Context request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Transaction ID */
uint8_t transactionId_valid; /**< Must be set to true if transactionId is being passed */
uint32_t transactionId;
/**< Transaction ID that was specified in the Set Geofence Engine Context
request. This parameter will always be present
if the status field is set to SUCCESS. */
}qmiLocSetGeofenceEngineContextIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to delete the Geofence context. */
typedef struct {
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Identifies the transaction. The transaction ID
is returned in the Delete Geofence Context indication. */
/* Mandatory */
/* Geofence ID */
uint32_t geofenceId;
/**< Identifies the Geofence whose context is to be deleted. */
/* Optional */
/* Context ID */
uint8_t contextId_valid; /**< Must be set to true if contextId is being passed */
uint32_t contextId;
/**< Identifies the context associated with the Geofence to be deleted.
If not specified, all contexts associated with this Geofence are deleted. */
}qmiLocDeleteGeofenceContextReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to delete the Geofence context. */
typedef struct {
/* Mandatory */
/* Status of the Delete Geofence Context Request */
qmiLocStatusEnumT_v02 status;
/**< Status of the Delete Geofence Context request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Transaction ID */
uint8_t transactionId_valid; /**< Must be set to true if transactionId is being passed */
uint32_t transactionId;
/**< Transaction ID that was specified in the Delete Geofence Context request.
This parameter will always be present
if the status field is set to SUCCESS. */
/* Optional */
/* Geofence ID */
uint8_t geofenceId_valid; /**< Must be set to true if geofenceId is being passed */
uint32_t geofenceId;
/**< Identifier for the Geofence whose context was deleted. */
/* Optional */
/* Context ID */
uint8_t contextId_valid; /**< Must be set to true if contextId is being passed */
uint32_t contextId;
/**< Identifier for the context of the Geofence that was deleted. */
}qmiLocDeleteGeofenceContextIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Injects Global Terrestrial Positioning (GTP) WWAN client downloaded data. */
typedef struct {
/* Mandatory */
/* Data */
uint32_t ClientDownloadedData_len; /**< Must be set to # of elements in ClientDownloadedData */
char ClientDownloadedData[QMI_LOC_MAX_GTP_WWAN_CLIENT_DOWNLOADED_DATA_LEN_V02];
/**< All GTP response client downloaded data, including WWAN, WLAN, common, etc. \n
- Type: Array of bytes \n
- Maximum length of the array: 512
*/
}qmiLocInjectGtpClientDownloadedDataReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Injects Global Terrestrial Positioning (GTP) WWAN client downloaded data. */
typedef struct {
/* Mandatory */
/* GTP Client Downloaded Data Injection Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the GTP client downloaded data injection.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocInjectGtpClientDownloadedDataIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Sends a GDT upload begin response to GDT MP. */
typedef struct {
/* Mandatory */
/* GDT Service ID */
qmiLocGdtServiceIdEnumT_v02 serviceId;
/**< Values: \n
- eQMI_LOC_GDT_SERVICE_WWAN (1) -- GDT service for WWAN UL
- eQMI_LOC_GDT_SERVICE_WWAN_DL (2) -- GDT service for WWAN DL */
/* Mandatory */
/* Session ID */
uint32_t sessionId;
/**< Session ID. */
/* Mandatory */
/* Access Status to GDT */
qmiLocGdtAccessStatusEnumT_v02 gdtAccessStatus;
/**< GDT status information for this service ID.
Values: \n
- eQMI_LOC_GDT_ACCESS_ALLOWED (1) -- GDT access to the service is allowed
- eQMI_LOC_GDT_ACCESS_FAILED (2) -- Any type of GDT access error
- eQMI_LOC_GDT_ACCESS_NOT_ALLOWED (3) -- GDT access to the service is not allowed
*/
}qmiLocGdtUploadBeginStatusReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sends a GDT upload begin response to GDT MP. */
typedef struct {
/* Mandatory */
/* GDT Upload Begin Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the GDT begin request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocGdtUploadBeginStatusIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGDTENDACKENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GDT_ACK_SUCCESS_V02 = 1, /**< The sent data is accepeted */
eQMI_LOC_GDT_ACK_FAILED_V02 = 2, /**< The sent data was not accepted */
eQMI_LOC_GDT_ACK_INVALID_V02 = 3, /**< General error in the received data */
QMILOCGDTENDACKENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGdtEndAckEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Sends a GDT upload end response to GDT MP. */
typedef struct {
/* Mandatory */
/* GDT Service ID */
qmiLocGdtServiceIdEnumT_v02 serviceId;
/**< Values: \n
- eQMI_LOC_GDT_SERVICE_WWAN (1) -- GDT service for WWAN UL
- eQMI_LOC_GDT_SERVICE_WWAN_DL (2) -- GDT service for WWAN DL */
/* Mandatory */
/* Session ID */
uint32_t sessionId;
/**< Session ID. */
/* Mandatory */
/* Access Status to GDT */
qmiLocGdtEndAckEnumT_v02 gdtEndStatus;
/**< GDT end status information for this service ID.
Valid values: \n
- eQMI_LOC_GDT_ACK_SUCCESS (1) -- The sent data is accepeted
- eQMI_LOC_GDT_ACK_FAILED (2) -- The sent data was not accepted
- eQMI_LOC_GDT_ACK_INVALID (3) -- General error in the received data
*/
}qmiLocGdtUploadEndReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sends a GDT upload end response to GDT MP. */
typedef struct {
/* Mandatory */
/* UTC GDT Upload End Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the GDT upload end request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocGdtUploadEndIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGTPAPSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GTP_AP_STATUS_DB_READY_V02 = 1, /**< Indicates that the AP is initialized and ready to process MP download requests */
eQMI_LOC_GTP_AP_STATUS_DB_REFRESHED_V02 = 2, /**< Indicates that the AP has successfully refreshed partitions */
eQMI_LOC_GTP_AP_STATUS_DB_DELETED_V02 = 3, /**< Indicates that the AP has removed local partitions */
QMILOCGTPAPSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGtpApStatusEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Sends a Global Terrestrial Position (GTP) message to the MP
notifying the GTP MP of AP DB readiness. */
typedef struct {
/* Mandatory */
/* AP DB Status */
qmiLocGtpApStatusEnumT_v02 gtpApDbStatus;
/**< GTP AP DB status information.
Valid values: \n
- eQMI_LOC_GTP_AP_STATUS_DB_READY (1) -- Indicates that the AP is initialized and ready to process MP download requests
- eQMI_LOC_GTP_AP_STATUS_DB_REFRESHED (2) -- Indicates that the AP has successfully refreshed partitions
- eQMI_LOC_GTP_AP_STATUS_DB_DELETED (3) -- Indicates that the AP has removed local partitions
*/
/* Optional */
/* AP PCID (8 byte) */
uint8_t gtpApPcid64_valid; /**< Must be set to true if gtpApPcid64 is being passed */
uint64_t gtpApPcid64;
/**< AP pseudoclient ID. */
/* Optional */
/* OEM ID (non-NULL Terminated) */
uint8_t oemId_valid; /**< Must be set to true if oemId is being passed */
uint32_t oemId_len; /**< Must be set to # of elements in oemId */
char oemId[QMI_LOC_MAX_OEM_ID_LEN_V02];
/**< OEM ID. \n
- Type: character string \n
- Maximum length of the array: 256
*/
/* Optional */
/* Model ID (non-NULL Terminated) */
uint8_t modelId_valid; /**< Must be set to true if modelId is being passed */
uint32_t modelId_len; /**< Must be set to # of elements in modelId */
char modelId[QMI_LOC_MAX_MODEL_ID_LEN_V02];
/**< Model ID. \n
- Type: character string \n
- Maximum length of the array: 256
*/
}qmiLocGtpApStatusReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint8_t asnMajorVersion;
/**< ASN major version. */
uint8_t asnMinorVersion;
/**< ASN minor version. */
uint8_t asnPointVersion;
/**< ASN point version. */
}qmiLocGtpAsnVerStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sends a Global Terrestrial Position (GTP) message to the MP
notifying the GTP MP of AP DB readiness. */
typedef struct {
/* Mandatory */
/* GTP MP Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the GTP handshake.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Mandatory */
/* MP Client Software Version */
uint16_t clientSoftwareVersion;
/**< MP client software version. */
/* Mandatory */
/* MP ASN Version */
qmiLocGtpAsnVerStructT_v02 asnVersion;
}qmiLocGtpApStatusIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCGTPPROCESSSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_GTP_PROCESS_SUCCESS_FROM_LOCAL_V02 = 1, /**< DL processing is allowed using a local AP cache */
eQMI_LOC_GTP_PROCESS_SUCCESS_FROM_SERVER_V02 = 2, /**< DL processing is allowed using server access */
eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_AP_NOT_READY_V02 = 3, /**< DL processing is not allowed because the AP is not ready */
eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_AP_TIMEOUT_V02 = 4, /**< DL processing is not allowed because the AP cannot process within the given interval */
eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_NO_CONNECTIVITY_V02 = 5, /**< DL processing is not allowed because the AP has no connectivity */
eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_THROTTLED_V02 = 6, /**< DL processing is not allowed due to throttling */
eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_OTHER_V02 = 7, /**< DL processing is not allowed for any other reason */
eQMI_LOC_GTP_PROCESS_FAILED_UNSPECIFIED_V02 = 8, /**< DL processing failed for any other reason */
QMILOCGTPPROCESSSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocGtpProcessStatusEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Sends a GTP message to the MP notifying it of AP DB readiness. */
typedef struct {
/* Mandatory */
/* GDT Service ID */
qmiLocGdtServiceIdEnumT_v02 serviceId;
/**< Values: \n
- eQMI_LOC_GDT_SERVICE_WWAN (1) -- GDT service for WWAN UL
- eQMI_LOC_GDT_SERVICE_WWAN_DL (2) -- GDT service for WWAN DL */
/* Mandatory */
/* Session ID */
uint32_t sessionId;
/**< Session ID. */
/* Mandatory */
/* AP Process Status */
qmiLocGtpProcessStatusEnumT_v02 processingStatus;
/**< AP processing status information for this service ID.
Valid values: \n
- eQMI_LOC_GTP_PROCESS_SUCCESS_FROM_LOCAL (1) -- DL processing is allowed using a local AP cache
- eQMI_LOC_GTP_PROCESS_SUCCESS_FROM_SERVER (2) -- DL processing is allowed using server access
- eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_AP_NOT_READY (3) -- DL processing is not allowed because the AP is not ready
- eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_AP_TIMEOUT (4) -- DL processing is not allowed because the AP cannot process within the given interval
- eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_NO_CONNECTIVITY (5) -- DL processing is not allowed because the AP has no connectivity
- eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_THROTTLED (6) -- DL processing is not allowed due to throttling
- eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_OTHER (7) -- DL processing is not allowed for any other reason
- eQMI_LOC_GTP_PROCESS_FAILED_UNSPECIFIED (8) -- DL processing failed for any other reason
*/
/* Optional */
/* WWAN Download Flag */
uint8_t wwanDownloadFlag_valid; /**< Must be set to true if wwanDownloadFlag is being passed */
uint16_t wwanDownloadFlag;
/**< WWAN download flag. */
/* Optional */
/* Encoded Response Location Information */
uint8_t respLocInfo_valid; /**< Must be set to true if respLocInfo is being passed */
uint32_t respLocInfo_len; /**< Must be set to # of elements in respLocInfo */
uint8_t respLocInfo[QMI_LOC_MAX_GTP_RLI_LEN_V02];
/**< Response location information encoded in asn.1 format. \n
- Type: Array of bytes \n
- Maximum length of the array: 256
*/
}qmiLocGdtDownloadBeginStatusReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sends a GTP message to the MP notifying it of AP DB readiness. */
typedef struct {
/* Mandatory */
/* GDT Download Begin Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the GDT begin request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocGdtDownloadBeginStatusIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Sends a GTP message to the MP notifying it of data readiness. */
typedef struct {
/* Mandatory */
/* GDT Service ID */
qmiLocGdtServiceIdEnumT_v02 serviceId;
/**< Values: \n
- eQMI_LOC_GDT_SERVICE_WWAN (1) -- GDT service for WWAN UL
- eQMI_LOC_GDT_SERVICE_WWAN_DL (2) -- GDT service for WWAN DL */
/* Mandatory */
/* Session ID */
uint32_t sessionId;
/**< Session ID. */
/* Mandatory */
/* Processing Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the AP processing request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Mandatory */
/* Data File Path (non-NULL Terminated) */
uint32_t filePath_len; /**< Must be set to # of elements in filePath */
char filePath[QMI_LOC_MAX_GDT_PATH_LEN_V02];
/**< File path to the data. \n
- Type: Array of bytes \n
- Maximum length of the array: 255
*/
}qmiLocGdtDownloadReadyStatusReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Sends a GTP message to the MP notifying it of data readiness. */
typedef struct {
/* Mandatory */
/* GDT Ready Begin Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the GDT ready request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocGdtDownloadReadyStatusIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Acknowledges receipt of Receive Done to the GDT MP. */
typedef struct {
/* Mandatory */
/* GDT Service ID */
qmiLocGdtServiceIdEnumT_v02 serviceId;
/**< Values: \n
- eQMI_LOC_GDT_SERVICE_WWAN (1) -- GDT service for WWAN UL
- eQMI_LOC_GDT_SERVICE_WWAN_DL (2) -- GDT service for WWAN DL */
/* Mandatory */
/* Session ID */
uint32_t sessionId;
/**< Session ID. */
/* Mandatory */
/* QMI LOC Status */
qmiLocStatusEnumT_v02 status;
/**< Values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
}qmiLocGdtReceiveDoneStatusReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Acknowledges receipt of Receive Done to the GDT MP. */
typedef struct {
/* Mandatory */
/* GDT Receive Done Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Receive Done request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocGdtReceiveDoneStatusIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Acknowledges the receipt of download completion to the GDT MP. */
typedef struct {
/* Mandatory */
/* GDT Service ID */
qmiLocGdtServiceIdEnumT_v02 serviceId;
/**< Values: \n
- eQMI_LOC_GDT_SERVICE_WWAN (1) -- GDT service for WWAN UL
- eQMI_LOC_GDT_SERVICE_WWAN_DL (2) -- GDT service for WWAN DL */
/* Mandatory */
/* Session ID */
uint32_t sessionId;
/**< Session ID. */
/* Mandatory */
/* QMI LOC Status */
qmiLocStatusEnumT_v02 status;
/**< Values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
}qmiLocGdtDownloadEndStatusReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Acknowledges the receipt of download completion to the GDT MP. */
typedef struct {
/* Mandatory */
/* GDT Download End Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the GDT download end request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocGdtDownloadEndStatusIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCDBTUSAGEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_DBT_USAGE_NAVIGATION_V02 = 1, /**< Navigation usage type */
QMILOCDBTUSAGEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocDbtUsageEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCDBDISTANCETYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_DBT_DISTANCE_TYPE_STRAIGHT_LINE_V02 = 1, /**< Straight line distance between
location updates */
QMILOCDBDISTANCETYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocDbDistanceTypeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to initiate a Distance Based Tracking (DBT) session. */
typedef struct {
/* Mandatory */
/* Request ID */
uint8_t reqId;
/**< ID of the request as identified by the control point. The request ID
is reported back in the position reports. The control point must
specify the same request ID in the QMI_LOC_STOP_DBT_REQ message. \n
- Range: 0 to 255
*/
/* Mandatory */
/* Minimum Distance Between Position Reports */
uint32_t minDistance;
/**< Minimum distance, specified by the control point,
that must be traversed between position reports. \n
- Units: Meters
*/
/* Mandatory */
/* Type of Distance to be Tracked */
qmiLocDbDistanceTypeEnumT_v02 distanceType;
/**< Straight line distance or accumulated distance. \n
Valid values: \n
- eQMI_LOC_DBT_DISTANCE_TYPE_STRAIGHT_LINE (1) -- Straight line distance between
location updates
*/
/* Mandatory */
/* Need Origin Location */
uint8_t needOriginLocation;
/**< Indicates whether the control point wants the position
corresponding to the origin. \begin{itemize1}
\item 0x01 (TRUE) -- Control point is requesting origin
location
\item 0x00 (FALSE) -- Control point is not requesting origin
location
\vspace{-0.18in} \end{itemize1}
*/
/* Optional */
/* Maximum Latency Threshold for Position Reports */
uint8_t maxLatency_valid; /**< Must be set to true if maxLatency is being passed */
uint32_t maxLatency;
/**< Maximum time period, specified by the control point, after the minimum
distance criteria has been met within which a location update must
be provided. If not specified, an ideal value will be assumed by the
engine \n
- Units: seconds
*/
/* Optional */
/* Usage Type */
uint8_t usageType_valid; /**< Must be set to true if usageType is being passed */
qmiLocDbtUsageEnumT_v02 usageType;
/**< Specifies the type of usage by the control point. It refers specifically
to the use case category of the client. For example, a navigation client should
set this to QMI_LOC_USAGE_NAVIGATION for better performance in difficult
signal conditions, such as tunnels.
If not specified, the service uses default algorithms to provide an ideal
performance.
Valid values: \n
- eQMI_LOC_DBT_USAGE_NAVIGATION (1) -- Navigation usage type
*/
}qmiLocStartDbtReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to initiate a Distance Based Tracking (DBT) session. */
typedef struct {
/* Mandatory */
/* Start DBT Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Start DBT request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Request ID */
uint8_t reqId_valid; /**< Must be set to true if reqId is being passed */
uint8_t reqId;
/**< ID of the DBT start request for which this
indication was generated. */
}qmiLocStartDbtIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to stop a DBT session. */
typedef struct {
/* Mandatory */
/* Request ID */
uint8_t reqId;
/**< ID of the request that was specified in the Start DBT
request (QMI_LOC_START_DBT_REQ).\n
- Range: 0 to 255 */
}qmiLocStopDbtReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to stop a DBT session. */
typedef struct {
/* Mandatory */
/* Stop DBT Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Stop DBT request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Request ID */
uint8_t reqId_valid; /**< Must be set to true if reqId is being passed */
uint8_t reqId;
/**< ID of the DBT stop request for which this
indication was generated. */
}qmiLocStopDbtIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCDBTPOSITIONTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_DBT_POSITION_TYPE_ORIGIN_V02 = 1, /**< Position reported is at the origin */
eQMI_LOC_DBT_POSITION_TYPE_TRACKING_V02 = 2, /**< Position reported is a tracking type
where the origin location has already
been reported */
QMILOCDBTPOSITIONTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocDbtPositionTypeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
/* UTC Timestamp */
uint64_t timestampUtc;
/**< UTC timestamp. \n
- Units: Milliseconds since Jan. 1, 1970
*/
/* Latitude */
double latitude;
/**< Latitude (specified in WGS84 datum).
\begin{itemize1}
\item Type: Floating point
\item Units: Degrees
\item Range: -90.0 to 90.0 \begin{itemize1}
\item Positive values indicate northern latitude
\item Negative values indicate southern latitude
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
/* Longitude */
double longitude;
/**< Longitude (specified in WGS84 datum).
\begin{itemize1}
\item Type: Floating point
\item Units: Degrees
\item Range: -180.0 to 180.0 \begin{itemize1}
\item Positive values indicate eastern longitude
\item Negative values indicate western longitude
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
/* Horizontal Elliptical Uncertainty (Semi-Minor Axis) */
float horUncEllipseSemiMinor;
/**< Semi-minor axis of horizontal elliptical uncertainty.\n
- Units: Meters */
/* Horizontal Elliptical Uncertainty (Semi-Major Axis) */
float horUncEllipseSemiMajor;
/**< Semi-major axis of horizontal elliptical uncertainty.\n
- Units: Meters */
/* Elliptical Horizontal Uncertainty Azimuth */
float horUncEllipseOrientAzimuth;
/**< Elliptical horizontal uncertainty azimuth of orientation.\n
- Units: Decimal degrees \n
- Range: 0 to 180 */
/* Horizontal Speed Validity Bit */
uint8_t speedHorizontal_valid;
/**< Indicates whether the horizontal speed field contains valid
information. \n
- 0x01 (TRUE) -- Horizontal speed is valid \n
- 0x00 (FALSE) -- Horizontal speed is invalid
and is to be ignored \vspace{-0.18in}
*/
/* Horizontal Speed */
float speedHorizontal;
/**< Horizontal speed.\n
- Units: Meters/second */
/* Altitude Validity Bit */
uint8_t altitudeWrtEllipsoid_valid;
/**< Indicates whether the altitude field contains valid
information. \n
- 0x01 (TRUE) -- Altitude field is valid \n
- 0x00 (FALSE) -- Altitude field is invalid
and is to be ignored \vspace{-0.18in}
*/
/* Altitude With Respect to Ellipsoid */
float altitudeWrtEllipsoid;
/**< Altitude with respect to the WGS84 ellipsoid.\n
- Units: Meters \n
- Range: -500 to 15883 */
/* Vertical Uncertainty Validity Bit */
uint8_t vertUnc_valid;
/**< Indicates whether the vertical uncertainty field contains valid
information. \n
- 0x01 (TRUE) -- Vertical Uncertainty field is valid \n
- 0x00 (FALSE) -- Vertical Uncertainty field is invalid
and is to be ignored \vspace{-0.18in}
*/
/* Vertical Uncertainty */
float vertUnc;
/**< Vertical uncertainty.\n
- Units: Meters */
/* Vertical Speed Validity Bit */
uint8_t speedVertical_valid;
/**< Indicates whether the vertical speed field contains valid
information. \n
- 0x01 (TRUE) -- Vertical Speed field is valid \n
- 0x00 (FALSE) -- Vertical Speed field is invalid
and is to be ignored \vspace{-0.18in}
*/
/* Vertical Speed */
float speedVertical;
/**< Vertical speed.\n
- Units: Meters/second */
/* Heading Validity Bit */
uint8_t heading_valid;
/**< Indicates whether the heading field contains valid
information. \n
- 0x01 (TRUE) -- Heading field is valid \n
- 0x00 (FALSE) -- Heading field is invalid
and is to be ignored \vspace{-0.18in}
*/
/* Heading */
float heading;
/**< Heading.\n
- Units: Degrees \n
- Range: 0 to 359.999 */
}qmiLocDbtPositionStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Notifies the control point of
a DBT position report. */
typedef struct {
/* Mandatory */
/* Request ID */
uint8_t reqId;
/**< ID of the DBT request for which this
report was generated. */
/* Mandatory */
/* DBT Position */
qmiLocDbtPositionStructT_v02 dbtPosition;
/**< Position of the client when it has traversed the
specified distance.
*/
/* Mandatory */
/* DBT Position Type */
qmiLocDbtPositionTypeEnumT_v02 positionType;
/**< Specifies whether the position reported is at the
origin of the DBT session or during the tracking
duration of the session. Values: \n
- eQMI_LOC_DBT_POSITION_TYPE_ORIGIN (1) -- Position reported is at the origin
- eQMI_LOC_DBT_POSITION_TYPE_TRACKING (2) -- Position reported is a tracking type
where the origin location has already
been reported */
/* Optional */
/* Heading Uncertainty */
uint8_t headingUnc_valid; /**< Must be set to true if headingUnc is being passed */
float headingUnc;
/**< Heading uncertainty.\n
- Units: Degrees \n
- Range: 0 to 359.999 */
/* Optional */
/* Speed Uncertainty */
uint8_t speedUnc_valid; /**< Must be set to true if speedUnc is being passed */
float speedUnc;
/**< 3-D speed uncertainty.\n
- Units: Meters/second */
/* Optional */
/* Horizontal Confidence */
uint8_t horConfidence_valid; /**< Must be set to true if horConfidence is being passed */
uint8_t horConfidence;
/**< Horizontal uncertainty confidence.\n
- Units: Percent \n
- Range: 0 to 99 */
/* Optional */
/* Vertical Confidence */
uint8_t vertConfidence_valid; /**< Must be set to true if vertConfidence is being passed */
uint8_t vertConfidence;
/**< Vertical uncertainty confidence.\n
- Units: Percent \n
- Range: 0 to 99 */
/* Optional */
/* Dilution of Precision */
uint8_t DOP_valid; /**< Must be set to true if DOP is being passed */
qmiLocDOPStructT_v02 DOP;
/**< \vspace{0.06in} \n Dilution of precision associated with this position. */
/* Optional */
/* SVs Used to Calculate the Fix */
uint8_t gnssSvUsedList_valid; /**< Must be set to true if gnssSvUsedList is being passed */
uint32_t gnssSvUsedList_len; /**< Must be set to # of elements in gnssSvUsedList */
uint16_t gnssSvUsedList[QMI_LOC_MAX_SV_USED_LIST_LENGTH_V02];
/**< Each entry in the list contains the SV ID of a satellite
used for calculating this position report. The following
information is associated with each SV ID: \n
Range: \n
- For GPS: 1 to 32 \n
- For GLONASS: 65 to 96 \n
- For SBAS: 120 to 158 and 183 to 187 \n
- For QZSS: 193 to 197 \n
- For BDS: 201 to 237 \n
- For GAL: 301 to 336
*/
/* Optional */
/* Position Source */
uint8_t positionSrc_valid; /**< Must be set to true if positionSrc is being passed */
qmiLocPositionSrcEnumT_v02 positionSrc;
/**< Source from which this position was obtained.
Valid values: \n
- eQMI_LOC_POSITION_SRC_GNSS (0) -- Position source is GNSS
- eQMI_LOC_POSITION_SRC_CELLID (1) -- Position source is Cell ID
- eQMI_LOC_POSITION_SRC_ENH_CELLID (2) -- Position source is Enhanced Cell ID
- eQMI_LOC_POSITION_SRC_WIFI (3) -- Position source is Wi-Fi
- eQMI_LOC_POSITION_SRC_TERRESTRIAL (4) -- Position source is Terrestrial
- eQMI_LOC_POSITION_SRC_GNSS_TERRESTRIAL_HYBRID (5) -- Position source is GNSS Terrestrial Hybrid
- eQMI_LOC_POSITION_SRC_OTHER (6) -- Other sources
*/
}qmiLocEventDbtPositionReportIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCDBTSESSIONSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_DBT_UNABLE_TO_TRACK_V02 = 1, /**< Distance based tracking is unavailable and DBT fixes
cannot currently be obtained */
eQMI_LOC_DBT_ABLE_TO_TRACK_V02 = 2, /**< Distance based tracking is available and DBT fixes
can currently be obtained */
QMILOCDBTSESSIONSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocDbtSessionStatusEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Notifies the control point of the
DBT session status. */
typedef struct {
/* Mandatory */
/* DBT Session Status */
qmiLocDbtSessionStatusEnumT_v02 dbtSessionStatus;
/**< Specifies the DBT session status type.
Valid values: \n
- eQMI_LOC_DBT_UNABLE_TO_TRACK (1) -- Distance based tracking is unavailable and DBT fixes
cannot currently be obtained
- eQMI_LOC_DBT_ABLE_TO_TRACK (2) -- Distance based tracking is available and DBT fixes
can currently be obtained
*/
/* Optional */
/* Request ID */
uint8_t reqId_valid; /**< Must be set to true if reqId is being passed */
uint8_t reqId;
/**< ID of the DBT request for which this
status was generated. */
}qmiLocEventDbtSessionStatusIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCPOSITIONSOURCEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_POS_SRC_GNSS_V02 = 1, /**< Source of the position is GNSS */
QMILOCPOSITIONSOURCEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocPositionSourceEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCPOSITIONRPTPROPAGATIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_POS_REPORT_PROPAGATED_TO_CURRENT_UTC_V02 = 1, /**< Reported position is propagated to the current UTC */
QMILOCPOSITIONRPTPROPAGATIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocPositionRptPropagationEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSECURELOCDATAMODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SECURE_LOC_DATA_ENCRYPTED_V02 = 1, /**< Data in the indication is to be encrypted */
eQMI_LOC_SECURE_LOC_DATA_UNENCRYPTED_V02 = 2, /**< Data in the indication is to be unencrypted */
QMILOCSECURELOCDATAMODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocSecureLocDataModeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSECUREGETAVAILABLEPOSPARAMETERIDENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_PARAM_TRANSACTION_ID_V02 = 1, /**< Parameter ID for the Transaction ID field. Mandatory field.
Identifies the transaction. The transaction ID is returned in the
Secured Get Available Position indication. \n
- Parameter type: uint32
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_PARAM_NONCE_V02 = 2, /**< Parameter ID for the Nonce field. Optional field.
- Parameter type: uint64
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_PARAM_SOURCE_V02 = 3, /**< Parameter ID for the Position Source field. Optional field.
Specifies the source of the position in which the control point is interest.
If not included, the value defaults to GNSS. \n
- Parameter type: int32 \n
Parameter valid values: \n
- eQMI_LOC_POS_SRC_GNSS (1) -- Source of the position is GNSS
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_PARAM_REPORT_DATA_SECURITY_MODE_V02 = 4, /**< Secured position report data security mode. Optional field.
If this TLV is not sent, the position report is encrypted by default. \n
- Parameter type: int32 \n
Parameter valid values: \n
- eQMI_LOC_SECURE_LOC_DATA_ENCRYPTED (1) -- Position reports are encrypted
- eQMI_LOC_SECURE_LOC_DATA_UNENCRYPTED (2) -- Position reports are not encrypted
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_PARAM_REPORT_DATA_TIME_PROPAGATION_V02 = 5, /**< Secured position report data propagation. Optional field.
If this TLV is not sent, the position report is propagated to the current UTC time by default. \n
- Parameter type: int32 \n
Parameter valid values: \n
- eQMI_LOC_POS_REPORT_PROPAGATED_TO_CURRENT_UTC (1) -- Position reports are propagated to the current UTC. \n
*/
QMILOCSECUREGETAVAILABLEPOSPARAMETERIDENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocSecureGetAvailablePosParameterIDEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSECUREMESSAGEDATATYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SECURE_DATA_TYPE_BYTE_8_V02 = 1, /**< Data type: Byte (8 bits) */
eQMI_LOC_SECURE_DATA_TYPE_CHAR_8_V02 = 2, /**< Data type: Char (8 bits) */
eQMI_LOC_SECURE_DATA_TYPE_UNSIGNED_CHAR_8_V02 = 3, /**< Data type: Unsigned char (8 bits) */
eQMI_LOC_SECURE_DATA_TYPE_INT_8_V02 = 4, /**< Data type: Int (8 bits) */
eQMI_LOC_SECURE_DATA_TYPE_UNSIGNED_INT_8_V02 = 5, /**< Data type: Unsigned int (8 bits) */
eQMI_LOC_SECURE_DATA_TYPE_INT_16_V02 = 6, /**< Data type: Int (16 bits) */
eQMI_LOC_SECURE_DATA_TYPE_UNSIGNED_INT_16_V02 = 7, /**< Data type: Unsigned int (16 bits) */
eQMI_LOC_SECURE_DATA_TYPE_INT_32_V02 = 8, /**< Data type: Int (32 bits) */
eQMI_LOC_SECURE_DATA_TYPE_UNSIGNED_INT_32_V02 = 9, /**< Data type: Unsigned int (32 bits) */
eQMI_LOC_SECURE_DATA_TYPE_INT_64_V02 = 10, /**< Data type: Int (64 bits) */
eQMI_LOC_SECURE_DATA_TYPE_UNSIGNED_INT_64_V02 = 11, /**< Data type: Unsigned int (64 bits) */
eQMI_LOC_SECURE_DATA_TYPE_BOOL_8_V02 = 12, /**< Data type: Boolean (8 bits) */
eQMI_LOC_SECURE_DATA_TYPE_DOUBLE_64_V02 = 13, /**< Data type: Double (64 bits) */
eQMI_LOC_SECURE_DATA_TYPE_FLOAT_32_V02 = 14, /**< Data type: Float (32 bits) */
QMILOCSECUREMESSAGEDATATYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocSecureMessageDataTypeEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to get the available
position estimate from the location engine. */
typedef struct {
/* Mandatory */
/* Data Security Mode for Encoded Data Buffer */
qmiLocSecureLocDataModeEnumT_v02 secureLocDataMode;
/**< Data security mode for the encoded data buffer.
Valid values: \n
- eQMI_LOC_SECURE_LOC_DATA_ENCRYPTED (1) -- Data in the indication is to be encrypted
- eQMI_LOC_SECURE_LOC_DATA_UNENCRYPTED (2) -- Data in the indication is to be unencrypted
*/
/* Mandatory */
/* Encoded Data Buffer Containing Secure Get Available Position Request Parameters */
uint32_t qmilocSecureGetAvailablePositionRequestData_len; /**< Must be set to # of elements in qmilocSecureGetAvailablePositionRequestData */
uint8_t qmilocSecureGetAvailablePositionRequestData[QMI_LOC_SECURE_GET_AVAILABLE_POS_REQUEST_ENCRYPTED_MAX_V02];
/**< Encoded data buffer containing the secure Get Available Position Request parameters. */
}qmiLocSecureGetAvailablePositionReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCSECUREGETAVAILABLEPOSITIONINDPARAMIDENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_TRANSACTION_ID_V02 = 1, /**< Parameter ID for the Transaction ID field. Mandatory field.
Transaction ID that was specified in the Secured Get Available Position request.
This parameter is always present if the status field is set to SUCCESS. \n
- Parameter type: uint32
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_NONCE_V02 = 2, /**< Parameter ID for the Secure Session Nonce.
This echos back the Nonce received from the Secured Get Available Position Request.
Optional field. \n
- Parameter type: uint64
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_LATITUDE_V02 = 3, /**< Parameter ID for Latitude (specified in WGS84 datum). Optional field.
\begin{itemize1}
\item Parameter type: Floating point
\item Parameter units: Degrees
\item Parameter range: -90.0 to 90.0 \begin{itemize1}
\item Positive values indicate northern latitude
\item Negative values indicate southern latitude
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_LONGITUDE_V02 = 4, /**< Parameter ID for Longitude (specified in WGS84 datum). Optional field.
\begin{itemize1}
\item Parameter type: Floating point
\item Parameter units: Degrees
\item Parameter range: -180.0 to 180.0 \begin{itemize1}
\item Positive values indicate eastern longitude
\item Negative values indicate western longitude
\vspace{-0.18in} \end{itemize1} \end{itemize1} */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_HORIZ_UNC_CIRCULAR_V02 = 5, /**< Parameter ID for Circular Horizontal Uncertainty. Optional field. \n
- Parameter tnits: Meters \n
- Parameter type: Float */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_ALTITUDE_WRT_ELP_V02 = 6, /**< Parameter ID for altitude with respect to the WGS84 ellipsoid. Optional field. \n
- Parameter units: Meters \n
- Parameter range: -500 to 15883 \n
- Parameter type: Float */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_VERTICAL_UNC_V02 = 7, /**< Parameter ID for Vertical Uncertainty. Optional field.\n
- Parameter units: Meters \n
- Parameter type: Float */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_TIME_STAMP_UTC_V02 = 8, /**< Parameter ID for the UTC timestamp. Optional field.\n
- Parameter type: uint64 \n
- Parameter units: Milliseconds since Jan. 1, 1970
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_TIME_UNC_V02 = 9, /**< Parameter ID for time uncertainty. Optional field.\n
- Parameter type: Float \n
- Parameter units: Milliseconds */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_HORIZ_UNC_ELP_SEMIMINOR_V02 = 10, /**< Parameter ID for the Semi-Minor Axis of Horizontal Elliptical Uncertainty. Optional field.\n
- Parameter mnits: Meters \n
- Parameter type: Float */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_HORIZ_UNC_ELP_SEMIMAJOR_V02 = 11, /**< Parameter ID for the Semi-Major Axis of Horizontal Elliptical Uncertainty. Optional field.\n
- Parameter units: Meters \n
- Parameter type: Float */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_HORIZ_UNC_ELP_ORIENT_AZIMUTH_V02 = 12, /**< Parameter ID for the Elliptical Horizontal Uncertainty Azimuth of orientation. Optional field.\n
- Parameter units: Decimal degrees \n
- Parameter range: 0 to 180 \n
- Parameter type: Float */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_HORIZ_CONFIDENCE_V02 = 13, /**< Parameter ID for Horizontal uncertainty confidence. Optional field.\n
If both elliptical and horizontal uncertainties are specified in this message,
the confidence corresponds to the elliptical uncertainty. Optional field.\n
- Parameter units: Percent \n
- Parameter range: 0 to 99 \n
- Parameter type: uint8 */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_HORIZ_ELLIP_CONFIDENCE_V02 = 14, /**< Parameter ID for Horizontal Elliptical Uncertainty Confidence. Optional field.\n
If both elliptical and horizontal uncertainties are specified in this message,
the confidence corresponds to the elliptical uncertainty. Optional field.\n
- Parameter units: Percent \n
- Parameter range: 0 to 99 \n
- Parameter type: uint8 */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_HORIZ_RELIABILITY_V02 = 15, /**< Parameter ID for Specifies the reliability of the horizontal position. Optional field.
- Parameter Type: int32 \n
Parameter valid values: \n
- RELIABILITY_NOT_SET = 0 \n
- RELIABILITY_VERY_LOW = 1 \n
- RELIABILITY_LOW = 2 \n
- RELIABILITY_MEDIUM = 3 \n
- RELIABILITY_HIGH = 4
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_SPEED_HORIZ_V02 = 16, /**< Parameter ID for Horizontal Speed. Optional field.\n
- Parameter units: Meters/second \n
- Parameter type: Float */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_SPEED_HORIZ_UNC_V02 = 17, /**< Parameter ID for Horizontal Speed Uncertainty. Optional field.\n
- Parameter units: Meters/second \n
- Parameter type: Float */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_ALTITUDE_WRT_MSA_V02 = 18, /**< Parameter ID for Altitude with respect to mean sea level. Optional field.\n
- Parameter units: Meters \n
- Parameter type: Float */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_VERTICAL_CONF_V02 = 19, /**< Parameter ID for Vertical uncertainty confidence. Optional field.\n
- Parameter units: Percent \n
- Parameter range: 0 to 99 \n
- Parameter type: uint8 */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_VERT_RELIABILITY_V02 = 20, /**< Parameter ID for specifies the reliability of the vertical position. Optional field. \n
- Parameter type: int32 \n
Parameter valid values: \n
- RELIABILITY_NOT_SET = 0 \n
- RELIABILITY_VERY_LOW = 1 \n
- RELIABILITY_LOW = 2 \n
- RELIABILITY_MEDIUM = 3 \n
- RELIABILITY_HIGH = 4
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_SPEED_VERTICAL_V02 = 21, /**< Parameter ID for Vertical Speed. Optional field.\n
- Parameter units: Meters/second \n
- Parameter type: Float */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_SPEED_VERTICAL_UNC_V02 = 22, /**< Parameter ID for Vertical Speed Uncertainty. Optional field.\n
- Parameter units: Meters/second \n
- Parameter type: Float */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_HEADING_V02 = 23, /**< Parameter ID for Heading. Optional field.\n
- Parameter units: Degrees \n
- Parameter range: 0 to 359.999 \n
- Parameter type: Float */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_HEADING_UNC_V02 = 24, /**< Parameter ID for Heading Uncertainty. Optional field.\n
- Parameter units: Degrees \n
- Parameter range: 0 to 359.999 \n
- Parameter type: Float */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_MAGNETIC_DEVIATION_V02 = 25, /**< Parameter ID for Magnetic Deviation. Optional field.\n
Difference between the bearing to true north and the bearing shown
on a magnetic compass. The deviation is positive when the magnetic
north is east of true north.
- Parameter type: Float */
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_TECH_MASK_V02 = 26, /**< Parameter ID for Technology Used in computing this fix. Optional field.\n
- Parameter type: uint32 \n
Parameter valid bitmasks: \n
- QMI_LOC_POS_TECH_MASK_SATELLITE = 0x00000001,
- QMI_LOC_POS_TECH_MASK_CELLID = 0x00000002,
- QMI_LOC_POS_TECH_MASK_WIFI = 0x00000004,
- QMI_LOC_POS_TECH_MASK_SENSORS = 0x00000008,
- QMI_LOC_POS_TECH_MASK_REFERENCE_LOCATION = 0x00000010,
- QMI_LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION = 0x00000020,
- QMI_LOC_POS_TECH_MASK_AFLT = 0x00000040,
- QMI_LOC_POS_TECH_MASK_HYBRID = 0x00000080
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_PDOP_V02 = 27, /**< Parameter ID for Position Dilution of Precision associated with this position. Optional field.\n
- Parameter type: Float
- Parameter range: 1 (highest accuracy) to 50 (lowest accuracy)
- PDOP = square root of (HDOP^2 + VDOP^2)
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_HDOP_V02 = 28, /**< Parameter ID for Horizontal Dilution of Precision associated with this position. Optional field.\n
- Parameter type: Float
- Parameter range: 1 (highest accuracy) to 50 (lowest accuracy)
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_VDOP_V02 = 29, /**< Parameter ID for Vertical Dilution of Precision associated with this position. Optional field.\n
- Parameter type: Float
- Parameter range: 1 (highest accuracy) to 50 (lowest accuracy)
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_GPS_WEEK_V02 = 30, /**< Parameter ID for the current GPS Week, as calculated from midnight, Jan. 6, 1980. Optional field.\n
- Parameter type: uint16
- Parameter units: Weeks
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_GPS_TIMEOFWEEKMS_V02 = 31, /**< Parameter ID for amount of time into the current GPS Week. Optional field.\n
- Parameter type: uint32
- Parameter units: Milliseconds
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_TIME_SRC_V02 = 32, /**< Parameter ID for Time Source. Optional field.\n
- Parameter type: uint32 (enum qmiLocTimeSourceEnumT)
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_SENSOR_USAGE_MASK_V02 = 33, /**< Parameter ID that specifies which sensors were used in calculating the position in the
position report. Optional field.\n
- Parameter type: uint32 \n
Parameter valid bitmasks: \n
- 0x00000001 -- SENSOR_USED_ACCEL \n
- 0x00000002 -- SENSOR_USED_GYRO
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_AIDING_IND_MASK_V02 = 34, /**< Parameter ID that specifies which which results were aided by sensors. Optional field.\n
- Parameter type: uint32 \n
Parameter valid bitmasks: \n
- 0x00000001 -- AIDED_HEADING \n
- 0x00000002 -- AIDED_SPEED \n
- 0x00000004 -- AIDED_POSITION \n
- 0x00000008 -- AIDED_VELOCITY
*/
eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_SV_USED_V02 = 35, /**< Each entry in the list contains the SV ID of a satellite
used for calculating this position report. The following
information is associated with each SV ID. Optional field. \n
- Parameter type: uint16 \n
Parameter range: \n
- For GPS: 1 to 32 \n
- For SBAS: 33 to 64 \n
- For GLONASS: 65 to 96 \n
- For QZSS: 193 to 197 \n
- For BDS: 201 to 237
*/
QMILOCSECUREGETAVAILABLEPOSITIONINDPARAMIDENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocSecureGetAvailablePositionIndParamIDEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to get the available
position estimate from the location engine. */
typedef struct {
/* Mandatory */
/* Session Status */
qmiLocSessionStatusEnumT_v02 sessionStatus;
/**< Session status.
Valid values: \n
- eQMI_LOC_SESS_STATUS_SUCCESS (0) -- Session was successful
- eQMI_LOC_SESS_STATUS_IN_PROGRESS (1) -- Session is still in progress; further position reports will be generated
until either the fix criteria specified by the client are met or the
client response timeout occurs
- eQMI_LOC_SESS_STATUS_GENERAL_FAILURE (2) -- Session failed
- eQMI_LOC_SESS_STATUS_TIMEOUT (3) -- Fix request failed because the session timed out
- eQMI_LOC_SESS_STATUS_USER_END (4) -- Fix request failed because the session was ended by the user
- eQMI_LOC_SESS_STATUS_BAD_PARAMETER (5) -- Fix request failed due to bad parameters in the request
- eQMI_LOC_SESS_STATUS_PHONE_OFFLINE (6) -- Fix request failed because the phone is offline
- eQMI_LOC_SESS_STATUS_ENGINE_LOCKED (7) -- Fix request failed because the engine is locked
*/
/* Mandatory */
/* Data Security Mode for Encoded Data Buffer. */
qmiLocSecureLocDataModeEnumT_v02 secureLocDataMode;
/**< Data security mode for encoded data buffer.
Valid values: \n
- eQMI_LOC_SECURE_LOC_DATA_ENCRYPTED (1) -- Data in the indication is to be encrypted
- eQMI_LOC_SECURE_LOC_DATA_UNENCRYPTED (2) -- Data in the indication is to be unencrypted
*/
/* Optional */
/* Encoded Data Buffer Containing Secured Get Available Position Report Indication */
uint8_t qmilocSecureGetAvailablePositionInd_valid; /**< Must be set to true if qmilocSecureGetAvailablePositionInd is being passed */
uint32_t qmilocSecureGetAvailablePositionInd_len; /**< Must be set to # of elements in qmilocSecureGetAvailablePositionInd */
uint8_t qmilocSecureGetAvailablePositionInd[QMI_LOC_SECURE_GET_AVAILABLE_POSITION_IND_ENCRYPTED_MAX_V02];
/**< Encoded data buffer containing the secured Get Available Position Report indication.*/
}qmiLocSecureGetAvailablePositionIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint64_t macAddress;
/**< AP MAC address. */
float xLat;
/**< AP latitude. \n
- Units: degrees */
float yLon;
/**< AP longitude sensor y-axis sample. \n
- Units: degrees */
float mar;
/**< Maximum antenna range. \n
- Units: Meters */
}qmiLocApCacheStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to inject APs into the cache of
the low power Wi-Fi engine for fix computation. */
typedef struct {
/* Mandatory */
/* Version Number */
uint8_t versionNumber;
/**< AP cache protocol version number. */
/* Mandatory */
/* Part Number */
uint8_t partNumber;
/**< Multiple message part number; used for ordering AP information. */
/* Mandatory */
/* Total Parts */
uint8_t totalParts;
/**< Total number of parts or messages for a complete cache update. */
/* Mandatory */
/* AP Cache Data */
uint32_t apCacheData_len; /**< Must be set to # of elements in apCacheData */
qmiLocApCacheStructT_v02 apCacheData[QMI_LOC_APCACHE_DATA_MAX_SAMPLES_V02];
/**< \vspace{4pt} \n AP cache information. */
}qmiLocInjectApCacheDataReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to inject APs into the cache of
the low power Wi-Fi engine for fix computation. */
typedef struct {
/* Mandatory */
/* Set Inject APCACHE Data Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Inject AP Cache Data request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* AP Cache Size */
uint8_t apCacheSize_valid; /**< Must be set to true if apCacheSize is being passed */
uint32_t apCacheSize;
/**< Key performance indicator (KPI) for apCacheSize that measures the size
of the last AP cache used. This parameter is always present. */
/* Optional */
/* AP Do Not Cache Size */
uint8_t apDoNotCacheSize_valid; /**< Must be set to true if apDoNotCacheSize is being passed */
uint32_t apDoNotCacheSize;
/**< KPI for apDoNotCacheSize that measures the size of the last AP cache used.
This parameter is always present. */
/* Optional */
/* AP Cache Hits */
uint8_t apCacheHits_valid; /**< Must be set to true if apCacheHits is being passed */
uint32_t apCacheHits;
/**< KPI for apCacheHits that measures the number of hits to the
AP cache of the last cache content. */
/* Optional */
/* AP Do Not Cache Hits */
uint8_t apDoNotCacheHits_valid; /**< Must be set to true if apDoNotCacheHits is being passed */
uint32_t apDoNotCacheHits;
/**< KPI for apDoNotCacheHits that measures the number of hits to
apDoNotCache of the last cache content. */
/* Optional */
/* Unknown APs */
uint8_t unknownAps_valid; /**< Must be set to true if unknownAps is being passed */
uint32_t unknownAps;
/**< KPI for unknownAps that measures the number of unknown APs, those that are
not found in any cache content. */
/* Optional */
/* Async Scans */
uint8_t asyncScans_valid; /**< Must be set to true if asyncScans is being passed */
uint32_t asyncScans;
/**< KPI for asyncScans that measures the number of async scans
perceived since the last modem boot. */
/* Optional */
/* Async Fixes */
uint8_t asyncFixes_valid; /**< Must be set to true if asyncFixes is being passed */
uint32_t asyncFixes;
/**< KPI for asyncFixes that measures the number of async fixes
generated since the last modem boot. */
/* Optional */
/* Sync Scans */
uint8_t syncScans_valid; /**< Must be set to true if syncScans is being passed */
uint32_t syncScans;
/**< KPI for syncScans that measures the number of sync scans
perceived since the last modem boot. */
/* Optional */
/* Sync Fixes */
uint8_t syncFixes_valid; /**< Must be set to true if syncFixes is being passed */
uint32_t syncFixes;
/**< KPI for asyncFixes that measures the number of sync fixes
generated since the last modem boot. */
}qmiLocInjectApCacheDataIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
uint64_t macAddress;
/**< AP's MAC address. */
}qmiLocApDoNotCacheStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to inject blacked out APs into
the low power location engine. */
typedef struct {
/* Mandatory */
/* Version Number */
uint8_t versionNumber;
/**< AP cache protocol version number. */
/* Mandatory */
/* Part Number */
uint8_t partNumber;
/**< Multiple message part number, used to order AP information. */
/* Mandatory */
/* Total Parts */
uint8_t totalParts;
/**< Total number of parts or messages for a complete cache update. */
/* Mandatory */
/* No AP Cache Data */
uint32_t apDoNotCacheData_len; /**< Must be set to # of elements in apDoNotCacheData */
qmiLocApDoNotCacheStructT_v02 apDoNotCacheData[QMI_LOC_APCACHE_DATA_MAX_SAMPLES_V02];
/**< \n APDoNotCache information. */
}qmiLocInjectApDoNotCacheDataReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to inject blacked out APs into
the low power location engine. */
typedef struct {
/* Mandatory */
/* Set Inject APDONOTCACHE Data Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Inject APDONOTCACHE Data request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocInjectApDoNotCacheDataIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCBATCHINGSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_BATCH_POS_UNAVAILABLE_V02 = 1, /**< Service is unable to compute the positions for batching */
eQMI_LOC_BATCH_POS_AVAILABLE_V02 = 2, /**< Service is able to compute the positions for batching */
QMILOCBATCHINGSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocBatchingStatusEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Notifies the control point of the
batching status. */
typedef struct {
/* Mandatory */
/* Batching Status */
qmiLocBatchingStatusEnumT_v02 batchingStatus;
/**< Specifies the batching status.
Valid values: \n
- eQMI_LOC_BATCH_POS_UNAVAILABLE (1) -- Service is unable to compute the positions for batching
- eQMI_LOC_BATCH_POS_AVAILABLE (2) -- Service is able to compute the positions for batching
*/
}qmiLocEventBatchingStatusIndMsgT_v02; /* Message */
/**
@}
*/
/** Identifies the always-on service capabilities. */
typedef uint32_t qmiLocAonCapabilityMaskT_v02;
#define QMI_LOC_MASK_AON_AUTO_BATCHING_SUPPORTED_V02 ((qmiLocAonCapabilityMaskT_v02)0x00000001) /**< The service supports auto batching; the client can enable auto
batching by setting the distance parameter to 0 in the START_BATCHING request */
#define QMI_LOC_MASK_AON_DISTANCE_BASED_BATCHING_SUPPORTED_V02 ((qmiLocAonCapabilityMaskT_v02)0x00000002) /**< The service supports distance-based batching */
#define QMI_LOC_MASK_AON_TIME_BASED_BATCHING_SUPPORTED_V02 ((qmiLocAonCapabilityMaskT_v02)0x00000004) /**< The service supports time-based batching */
#define QMI_LOC_MASK_AON_DISTANCE_BASED_TRACKING_SUPPORTED_V02 ((qmiLocAonCapabilityMaskT_v02)0x00000008) /**< The service supports distance-based tracking */
#define QMI_LOC_MASK_AON_UPDATE_TBF_SUPPORTED_V02 ((qmiLocAonCapabilityMaskT_v02)0x00000010) /**< The service supports changing TBF dynamically */
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the clients to get always-on (AON) service settings.
*/
typedef struct {
/* Mandatory */
/* Transaction ID */
uint32_t transactionId;
/**< Identifies the transaction. The same transaction ID
is returned in the QUERY_AON_CONFIG indication. */
}qmiLocQueryAonConfigReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the clients to get always-on (AON) service settings.
*/
typedef struct {
/* Mandatory */
/* Always-On Config Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Query AON Config request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Transaction ID */
uint8_t transactionId_valid; /**< Must be set to true if transactionId is being passed */
uint32_t transactionId;
/**< Identifies the transaction. It is the same transaction
ID that was passed in the QUERY_AON_CONFIG request. */
/* Optional */
/* Always-On Capability */
uint8_t aonCapability_valid; /**< Must be set to true if aonCapability is being passed */
qmiLocAonCapabilityMaskT_v02 aonCapability;
/**< Always-on capabilities supported by the service. \n
Valid values: \n
- QMI_LOC_MASK_AON_AUTO_BATCHING_SUPPORTED (0x00000001) -- The service supports auto batching; the client can enable auto
batching by setting the distance parameter to 0 in the START_BATCHING request
- QMI_LOC_MASK_AON_DISTANCE_BASED_BATCHING_SUPPORTED (0x00000002) -- The service supports distance-based batching
- QMI_LOC_MASK_AON_TIME_BASED_BATCHING_SUPPORTED (0x00000004) -- The service supports time-based batching
- QMI_LOC_MASK_AON_DISTANCE_BASED_TRACKING_SUPPORTED (0x00000008) -- The service supports distance-based tracking
- QMI_LOC_MASK_AON_UPDATE_TBF_SUPPORTED (0x00000010) -- The service supports changing TBF dynamically */
}qmiLocQueryAonConfigIndMsgT_v02; /* Message */
/**
@}
*/
typedef uint32_t qmiLocDeleteCommonDataMaskT_v02;
#define QMI_LOC_DELETE_COMMON_MASK_POS_V02 ((qmiLocDeleteCommonDataMaskT_v02)0x00000001) /**< Position estimate; common for all GNSS types */
#define QMI_LOC_DELETE_COMMON_MASK_TIME_V02 ((qmiLocDeleteCommonDataMaskT_v02)0x00000002) /**< Reset all CLOCK_INFO mask */
#define QMI_LOC_DELETE_COMMON_MASK_UTC_V02 ((qmiLocDeleteCommonDataMaskT_v02)0x00000004) /**< UTC estimate */
#define QMI_LOC_DELETE_COMMON_MASK_RTI_V02 ((qmiLocDeleteCommonDataMaskT_v02)0x00000008) /**< RTI */
#define QMI_LOC_DELETE_COMMON_MASK_FREQ_BIAS_EST_V02 ((qmiLocDeleteCommonDataMaskT_v02)0x00000010) /**< Frequency bias estimate; common for all GNSS types */
typedef uint32_t qmiLocDeleteSatelliteDataMaskT_v02;
#define QMI_LOC_DELETE_DATA_MASK_EPHEMERIS_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000001) /**< Ephemeris */
#define QMI_LOC_DELETE_DATA_MASK_ALMANAC_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000002) /**< Almanac */
#define QMI_LOC_DELETE_DATA_MASK_SVHEALTH_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000004) /**< SV health */
#define QMI_LOC_DELETE_DATA_MASK_SVDIR_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000008) /**< SV direction */
#define QMI_LOC_DELETE_DATA_MASK_SVSTEER_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000010) /**< SV steer */
#define QMI_LOC_DELETE_DATA_MASK_ALM_CORR_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000020) /**< Almanac correction */
#define QMI_LOC_DELETE_DATA_MASK_BLACKLIST_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000040) /**< Blacklist SVs */
#define QMI_LOC_DELETE_DATA_MASK_SA_DATA_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000080) /**< Sensitivity assistance data */
#define QMI_LOC_DELETE_DATA_MASK_SV_NO_EXIST_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000100) /**< SV does not exist */
#define QMI_LOC_DELETE_DATA_MASK_IONO_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000200) /**< Ionosphere correction */
#define QMI_LOC_DELETE_DATA_MASK_TIME_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000400) /**< Reset satellite time */
typedef uint32_t qmiLocGNSSConstellMaskT_v02;
#define QMI_LOC_SYSTEM_GPS_V02 ((qmiLocGNSSConstellMaskT_v02)0x00000001)
#define QMI_LOC_SYSTEM_GLO_V02 ((qmiLocGNSSConstellMaskT_v02)0x00000002)
#define QMI_LOC_SYSTEM_BDS_V02 ((qmiLocGNSSConstellMaskT_v02)0x00000004)
#define QMI_LOC_SYSTEM_GAL_V02 ((qmiLocGNSSConstellMaskT_v02)0x00000008)
#define QMI_LOC_SYSTEM_QZSS_V02 ((qmiLocGNSSConstellMaskT_v02)0x00000010)
/** @addtogroup loc_qmi_aggregates
@{
*/
typedef struct {
qmiLocGNSSConstellMaskT_v02 system;
/**< Indicates which satellite system's data is to be deleted.
The control point can delete multiple systems at a time.
Valid values: \n
- QMI_LOC_SYSTEM_GPS (0x00000001) --
- QMI_LOC_SYSTEM_GLO (0x00000002) --
- QMI_LOC_SYSTEM_BDS (0x00000004) --
- QMI_LOC_SYSTEM_GAL (0x00000008) --
- QMI_LOC_SYSTEM_QZSS (0x00000010) --
*/
qmiLocDeleteSatelliteDataMaskT_v02 deleteSatelliteDataMask;
/**< Requested bitmask of data to be deleted for the specified satellite system. \n
Valid values: \n
- QMI_LOC_DELETE_DATA_MASK_EPHEMERIS (0x00000001) -- Ephemeris
- QMI_LOC_DELETE_DATA_MASK_ALMANAC (0x00000002) -- Almanac
- QMI_LOC_DELETE_DATA_MASK_SVHEALTH (0x00000004) -- SV health
- QMI_LOC_DELETE_DATA_MASK_SVDIR (0x00000008) -- SV direction
- QMI_LOC_DELETE_DATA_MASK_SVSTEER (0x00000010) -- SV steer
- QMI_LOC_DELETE_DATA_MASK_ALM_CORR (0x00000020) -- Almanac correction
- QMI_LOC_DELETE_DATA_MASK_BLACKLIST (0x00000040) -- Blacklist SVs
- QMI_LOC_DELETE_DATA_MASK_SA_DATA (0x00000080) -- Sensitivity assistance data
- QMI_LOC_DELETE_DATA_MASK_SV_NO_EXIST (0x00000100) -- SV does not exist
- QMI_LOC_DELETE_DATA_MASK_IONO (0x00000200) -- Ionosphere correction
- QMI_LOC_DELETE_DATA_MASK_TIME (0x00000400) -- Reset satellite time
*/
}qmiLocDeleteSatelliteDataStructT_v02; /* Type */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Deletes the location engine
service data from memory. */
typedef struct {
/* Mandatory */
/* Reset All */
uint8_t deleteAllFlag;
/**< Indicates whether all GNSS service data is to be deleted.
Values:
0x01 (TRUE) -- All constellations' service data is to be reset;
if this flag is set, all the other information
contained in the optional fields for this
message are ignored
0x00 (FALSE) -- The optional fields in the message are to be
used to determine which data is to be deleted
*/
/* Optional */
/* Requested Bitmask of Clock Info Data to be Deleted */
uint8_t deleteClockInfoMask_valid; /**< Must be set to true if deleteClockInfoMask is being passed */
qmiLocDeleteClockInfoMaskT_v02 deleteClockInfoMask;
/**< Mask for the clock information service data that is to be deleted.
If QMI_LOC_DELETE_DATA_MASK_TIME is set in deleteServiceDataMask,
deleteClockInfoMask will be ignored.
Valid values: \n
- QMI_LOC_MASK_DELETE_CLOCK_INFO_TIME_EST (0x00000001) -- Mask to delete time estimate from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_FREQ_EST (0x00000002) -- Mask to delete frequency estimate from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_WEEK_NUMBER (0x00000004) -- Mask to delete week number from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_RTC_TIME (0x00000008) -- Mask to delete RTC time from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_TIME_TRANSFER (0x00000010) -- Mask to delete time transfer from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GPSTIME_EST (0x00000020) -- Mask to delete GPS time estimate from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GLOTIME_EST (0x00000040) -- Mask to delete GLONASS time estimate from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GLODAY_NUMBER (0x00000080) -- Mask to delete GLONASS day number from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GLO4YEAR_NUMBER (0x00000100) -- Mask to delete GLONASS four year number from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GLO_RF_GRP_DELAY (0x00000200) -- Mask to delete GLONASS RF GRP delay from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_DISABLE_TT (0x00000400) -- Mask to delete disable TT from clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GG_LEAPSEC (0x00000800) -- Mask to delete a BDS time estimate from the clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GG_GGTB (0x00001000) -- Mask to delete a BDS time estimate from the clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_BDSTIME_EST (0x00002000) -- Mask to delete a BDS time estimate from the clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GB_GBTB (0x00004000) -- Mask to delete Glonass-to-BDS time bias-related information from the
clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_BG_BGTB (0x00008000) -- Mask to delete BDS-to-GLONASS time bias-related information from the
clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_BDSWEEK_NUMBER (0x00010000) -- Mask to delete the BDS week number from the clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_BDS_RF_GRP_DELAY (0x00020000) -- Mask to delete the BDS RF GRP delay from the clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTIME_EST (0x00040000) -- Mask to delete a GAL time estimate from the clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTOGPS_TB (0x00080000) -- Mask to delete GAL-to-GPS time bias-related information from the
clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTOGLO_TB (0x00100000) -- Mask to delete GAL-to-GLO time bias-related information from the
clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTOBDS_TB (0x00200000) -- Mask to delete GAL-to-BDS time bias-related information from the
clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GALWEEK_NUMBER (0x00800000) -- Mask to delete the GAL week number from the clock information
- QMI_LOC_MASK_DELETE_CLOCK_INFO_GAL_RF_GRP_DELAY (0x01000000) -- Mask to delete the GAL RF GRP delay from the clock information
*/
/* Optional */
/* Requested Bitmask of Cell DB Data to be Deleted */
uint8_t deleteCellDbDataMask_valid; /**< Must be set to true if deleteCellDbDataMask is being passed */
qmiLocDeleteCelldbDataMaskT_v02 deleteCellDbDataMask;
/**< Mask for the cell database service data that is to be deleted;
common for all GNSS types.
Valid values: \n
- QMI_LOC_MASK_DELETE_CELLDB_POS (0x00000001) -- Mask to delete cell database position
- QMI_LOC_MASK_DELETE_CELLDB_LATEST_GPS_POS (0x00000002) -- Mask to delete cell database latest GPS position
- QMI_LOC_MASK_DELETE_CELLDB_OTA_POS (0x00000004) -- Mask to delete cell database OTA position
- QMI_LOC_MASK_DELETE_CELLDB_EXT_REF_POS (0x00000008) -- Mask to delete cell database external reference position
- QMI_LOC_MASK_DELETE_CELLDB_TIMETAG (0x00000010) -- Mask to delete cell database time tag
- QMI_LOC_MASK_DELETE_CELLDB_CELLID (0x00000020) -- Mask to delete cell database cell ID
- QMI_LOC_MASK_DELETE_CELLDB_CACHED_CELLID (0x00000040) -- Mask to delete cell database cached cell ID
- QMI_LOC_MASK_DELETE_CELLDB_LAST_SRV_CELL (0x00000080) -- Mask to delete cell database last service cell
- QMI_LOC_MASK_DELETE_CELLDB_CUR_SRV_CELL (0x00000100) -- Mask to delete cell database current service cell
- QMI_LOC_MASK_DELETE_CELLDB_NEIGHBOR_INFO (0x00000200) -- Mask to delete cell database neighbor information
*/
/* Optional */
/* Requested Bitmask of Common Data to be Deleted */
uint8_t deleteCommonDataMask_valid; /**< Must be set to true if deleteCommonDataMask is being passed */
qmiLocDeleteCommonDataMaskT_v02 deleteCommonDataMask;
/**< Mask for the common service data that is to be deleted.
Valid values: \n
- QMI_LOC_DELETE_COMMON_MASK_POS (0x00000001) -- Position estimate; common for all GNSS types
- QMI_LOC_DELETE_COMMON_MASK_TIME (0x00000002) -- Reset all CLOCK_INFO mask
- QMI_LOC_DELETE_COMMON_MASK_UTC (0x00000004) -- UTC estimate
- QMI_LOC_DELETE_COMMON_MASK_RTI (0x00000008) -- RTI
- QMI_LOC_DELETE_COMMON_MASK_FREQ_BIAS_EST (0x00000010) -- Frequency bias estimate; common for all GNSS types
*/
/* Optional */
/* GNSS Service Data to be Deleted */
uint8_t deleteSatelliteData_valid; /**< Must be set to true if deleteSatelliteData is being passed */
qmiLocDeleteSatelliteDataStructT_v02 deleteSatelliteData;
/**< Request to delete the GNSS service data.*/
}qmiLocDeleteGNSSServiceDataReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Deletes the location engine
service data from memory. */
typedef struct {
/* Mandatory */
/* Delete GNSS Service Data Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Delete Assist Data request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
}qmiLocDeleteGNSSServiceDataIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_enums
@{
*/
typedef enum {
QMILOCXTRADATAFORMATENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum. Do not change or use*/
eQMI_LOC_XTRA_DATA_V02 = 0, /**< Default is QCOM-XTRA format. */
QMILOCXTRADATAFORMATENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum. Do not change or use*/
}qmiLocXtraDataFormatEnumT_v02;
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Injects XTRA data. */
typedef struct {
/* Mandatory */
/* Total Size */
uint32_t totalSize;
/**< Total size of the XTRA data to be injected. \n
- Units: Bytes */
/* Mandatory */
/* Total Parts */
uint16_t totalParts;
/**< Total number of parts into which the XTRA data is divided. */
/* Mandatory */
/* Part Number */
uint16_t partNum;
/**< Number of the current XTRA data part; starts at 1. */
/* Mandatory */
/* Data */
uint32_t partData_len; /**< Must be set to # of elements in partData */
uint8_t partData[QMI_LOC_MAX_XTRA_PART_LEN_V02];
/**< XTRA data. \n
- Type: Array of bytes \n
- Maximum length of the array: 1024
*/
/* Optional */
/* Format Type */
uint8_t formatType_valid; /**< Must be set to true if formatType is being passed */
qmiLocXtraDataFormatEnumT_v02 formatType;
/**< XTRA data format. \n
Valid values: \n
- eQMI_LOC_XTRA_DATA (0) -- Default is QCOM-XTRA format.
*/
}qmiLocInjectXtraDataReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Injects XTRA data. */
typedef struct {
/* Mandatory */
/* Data Injection Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the Data Injection request.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure
*/
/* Optional */
/* Part Number */
uint8_t partNum_valid; /**< Must be set to true if partNum is being passed */
uint16_t partNum;
/**< Number of the XTRA data part for which this indication
is sent; starts at 1. */
}qmiLocInjectXtraDataIndMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Request Message; Used by the control point to inject PCID which is used by XTRA service. */
typedef struct {
/* Mandatory */
/* XTRA PCID */
uint64_t xtraPcid;
/**< - Type: uint64 \n */
}qmiLocInjectXtraPcidReqMsgT_v02; /* Message */
/**
@}
*/
/** @addtogroup loc_qmi_messages
@{
*/
/** Indication Message; Used by the control point to inject PCID which is used by XTRA service. */
typedef struct {
/* Mandatory */
/* Inject XTRA PCID Status */
qmiLocStatusEnumT_v02 status;
/**< Status of the inject XTRA PCID.
Valid values: \n
- eQMI_LOC_SUCCESS (0) -- Request was completed successfully \n
- eQMI_LOC_GENERAL_FAILURE (1) -- Request failed because of a general failure \n
- eQMI_LOC_UNSUPPORTED (2) -- Request failed because it is not supported \n
- eQMI_LOC_INVALID_PARAMETER (3) -- Request failed because it contained invalid parameters \n
- eQMI_LOC_ENGINE_BUSY (4) -- Request failed because the engine is busy \n
- eQMI_LOC_PHONE_OFFLINE (5) -- Request failed because the phone is offline \n
- eQMI_LOC_TIMEOUT (6) -- Request failed because it timed out \n
- eQMI_LOC_CONFIG_NOT_SUPPORTED (7) -- Request failed because an undefined configuration was requested \n
- eQMI_LOC_INSUFFICIENT_MEMORY (8) -- Request failed because the engine could not allocate sufficient memory for the request \n
- eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) -- Request failed because the maximum number of Geofences are already programmed \n
- eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) -- Location service failed because of an XTRA version-based file format check failure */
}qmiLocInjectXtraPcidIndMsgT_v02; /* Message */
/**
@}
*/
/* Conditional compilation tags for message removal */
//#define REMOVE_QMI_LOC_ADD_CIRCULAR_GEOFENCE_V02
//#define REMOVE_QMI_LOC_ADD_GEOFENCE_CONTEXT_V02
//#define REMOVE_QMI_LOC_DELETE_ASSIST_DATA_V02
//#define REMOVE_QMI_LOC_DELETE_GEOFENCE_V02
//#define REMOVE_QMI_LOC_DELETE_GEOFENCE_CONTEXT_V02
//#define REMOVE_QMI_LOC_DELETE_GNSS_SERVICE_DATA_V02
//#define REMOVE_QMI_LOC_DELETE_SUPL_CERTIFICATE_V02
//#define REMOVE_QMI_LOC_EDIT_GEOFENCE_V02
//#define REMOVE_QMI_LOC_EVENT_BATCHING_STATUS_V02
//#define REMOVE_QMI_LOC_EVENT_BATCH_FULL_NOTIFICATION_V02
//#define REMOVE_QMI_LOC_EVENT_DBT_POSITION_REPORT_V02
//#define REMOVE_QMI_LOC_EVENT_DBT_SESSION_STATUS_V02
//#define REMOVE_QMI_LOC_EVENT_ENGINE_STATE_V02
//#define REMOVE_QMI_LOC_EVENT_FIX_SESSION_STATE_V02
//#define REMOVE_QMI_LOC_EVENT_GDT_DOWNLOAD_BEGIN_REQ_V02
//#define REMOVE_QMI_LOC_EVENT_GDT_DOWNLOAD_END_REQ_V02
//#define REMOVE_QMI_LOC_EVENT_GDT_RECEIVE_DONE_V02
//#define REMOVE_QMI_LOC_EVENT_GDT_UPLOAD_BEGIN_STATUS_REQ_V02
//#define REMOVE_QMI_LOC_EVENT_GDT_UPLOAD_END_REQ_V02
//#define REMOVE_QMI_LOC_EVENT_GEOFENCE_BATCHED_BREACH_NOTIFICATION_V02
//#define REMOVE_QMI_LOC_EVENT_GEOFENCE_BATCHED_DWELL_NOTIFICATION_V02
//#define REMOVE_QMI_LOC_EVENT_GEOFENCE_BREACH_NOTIFICATION_V02
//#define REMOVE_QMI_LOC_EVENT_GEOFENCE_GEN_ALERT_V02
//#define REMOVE_QMI_LOC_EVENT_GEOFENCE_PROXIMITY_NOTIFICATION_V02
//#define REMOVE_QMI_LOC_EVENT_GET_TIME_ZONE_INFO_V02
//#define REMOVE_QMI_LOC_EVENT_GNSS_MEASUREMENT_REPORT_IND_V02
//#define REMOVE_QMI_LOC_EVENT_GNSS_SV_INFO_V02
//#define REMOVE_QMI_LOC_EVENT_INJECT_POSITION_REQ_V02
//#define REMOVE_QMI_LOC_EVENT_INJECT_PREDICTED_ORBITS_REQ_V02
//#define REMOVE_QMI_LOC_EVENT_INJECT_TIME_REQ_V02
//#define REMOVE_QMI_LOC_EVENT_INJECT_WIFI_AP_DATA_REQ_V02
//#define REMOVE_QMI_LOC_EVENT_LIVE_BATCHED_POSITION_REPORT_V02
//#define REMOVE_QMI_LOC_EVENT_LOCATION_SERVER_CONNECTION_REQ_V02
//#define REMOVE_QMI_LOC_EVENT_MOTION_DATA_CONTROL_V02
//#define REMOVE_QMI_LOC_EVENT_NI_GEOFENCE_NOTIFICATION_V02
//#define REMOVE_QMI_LOC_EVENT_NI_NOTIFY_VERIFY_REQ_V02
//#define REMOVE_QMI_LOC_EVENT_NMEA_V02
//#define REMOVE_QMI_LOC_EVENT_PEDOMETER_CONTROL_V02
//#define REMOVE_QMI_LOC_EVENT_POSITION_REPORT_V02
//#define REMOVE_QMI_LOC_EVENT_SENSOR_STREAMING_READY_STATUS_V02
//#define REMOVE_QMI_LOC_EVENT_SET_SPI_STREAMING_REPORT_V02
//#define REMOVE_QMI_LOC_EVENT_SV_POLYNOMIAL_REPORT_IND_V02
//#define REMOVE_QMI_LOC_EVENT_TIME_SYNC_REQ_V02
//#define REMOVE_QMI_LOC_EVENT_VEHICLE_DATA_READY_STATUS_V02
//#define REMOVE_QMI_LOC_EVENT_WIFI_REQ_V02
//#define REMOVE_QMI_LOC_GDT_DOWNLOAD_BEGIN_STATUS_V02
//#define REMOVE_QMI_LOC_GDT_DOWNLOAD_END_STATUS_V02
//#define REMOVE_QMI_LOC_GDT_DOWNLOAD_READY_STATUS_V02
//#define REMOVE_QMI_LOC_GDT_RECEIVE_DONE_STATUS_V02
//#define REMOVE_QMI_LOC_GDT_UPLOAD_BEGIN_STATUS_V02
//#define REMOVE_QMI_LOC_GDT_UPLOAD_END_V02
//#define REMOVE_QMI_LOC_GET_AVAILABLE_WWAN_POSITION_V02
//#define REMOVE_QMI_LOC_GET_BATCH_SIZE_V02
//#define REMOVE_QMI_LOC_GET_BEST_AVAILABLE_POSITION_V02
//#define REMOVE_QMI_LOC_GET_CRADLE_MOUNT_CONFIG_V02
//#define REMOVE_QMI_LOC_GET_ENGINE_LOCK_V02
//#define REMOVE_QMI_LOC_GET_EXTERNAL_POWER_CONFIG_V02
//#define REMOVE_QMI_LOC_GET_FIX_CRITERIA_V02
//#define REMOVE_QMI_LOC_GET_GEOFENCE_ENGINE_CONFIG_V02
//#define REMOVE_QMI_LOC_GET_LOW_POWER_MODE_V02
//#define REMOVE_QMI_LOC_GET_NI_GEOFENCE_ID_LIST_V02
//#define REMOVE_QMI_LOC_GET_NMEA_TYPES_V02
//#define REMOVE_QMI_LOC_GET_OPERATION_MODE_V02
//#define REMOVE_QMI_LOC_GET_POSITION_ENGINE_CONFIG_PARAMETERS_V02
//#define REMOVE_QMI_LOC_GET_PREDICTED_ORBITS_DATA_SOURCE_V02
//#define REMOVE_QMI_LOC_GET_PREDICTED_ORBITS_DATA_VALIDITY_V02
//#define REMOVE_QMI_LOC_GET_PROTOCOL_CONFIG_PARAMETERS_V02
//#define REMOVE_QMI_LOC_GET_REGISTERED_EVENTS_V02
//#define REMOVE_QMI_LOC_GET_SBAS_CONFIG_V02
//#define REMOVE_QMI_LOC_GET_SENSOR_CONTROL_CONFIG_V02
//#define REMOVE_QMI_LOC_GET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_V02
//#define REMOVE_QMI_LOC_GET_SENSOR_PROPERTIES_V02
//#define REMOVE_QMI_LOC_GET_SERVER_V02
//#define REMOVE_QMI_LOC_GET_SERVICE_REVISION_V02
//#define REMOVE_QMI_LOC_GET_SUPPORTED_FIELDS_V02
//#define REMOVE_QMI_LOC_GET_SUPPORTED_MSGS_V02
//#define REMOVE_QMI_LOC_GET_XTRA_T_SESSION_CONTROL_V02
//#define REMOVE_QMI_LOC_GTP_AP_STATUS_V02
//#define REMOVE_QMI_LOC_INFORM_CLIENT_REVISION_V02
//#define REMOVE_QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_V02
//#define REMOVE_QMI_LOC_INFORM_NI_USER_RESPONSE_V02
//#define REMOVE_QMI_LOC_INJECT_APCACHE_DATA_V02
//#define REMOVE_QMI_LOC_INJECT_APDONOTCACHE_DATA_V02
//#define REMOVE_QMI_LOC_INJECT_GSM_CELL_INFO_V02
//#define REMOVE_QMI_LOC_INJECT_GTP_CLIENT_DOWNLOADED_DATA_V02
//#define REMOVE_QMI_LOC_INJECT_MOTION_DATA_V02
//#define REMOVE_QMI_LOC_INJECT_NETWORK_INITIATED_MESSAGE_V02
//#define REMOVE_QMI_LOC_INJECT_POSITION_V02
//#define REMOVE_QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_V02
//#define REMOVE_QMI_LOC_INJECT_SENSOR_DATA_V02
//#define REMOVE_QMI_LOC_INJECT_SUBSCRIBER_ID_V02
//#define REMOVE_QMI_LOC_INJECT_SUPL_CERTIFICATE_V02
//#define REMOVE_QMI_LOC_INJECT_TDSCDMA_CELL_INFO_V02
//#define REMOVE_QMI_LOC_INJECT_TIME_SYNC_DATA_V02
//#define REMOVE_QMI_LOC_INJECT_TIME_ZONE_INFO_V02
//#define REMOVE_QMI_LOC_INJECT_UTC_TIME_V02
//#define REMOVE_QMI_LOC_INJECT_VEHICLE_SENSOR_DATA_V02
//#define REMOVE_QMI_LOC_INJECT_WCDMA_CELL_INFO_V02
//#define REMOVE_QMI_LOC_INJECT_WIFI_AP_DATA_V02
//#define REMOVE_QMI_LOC_INJECT_WIFI_POSITION_V02
//#define REMOVE_QMI_LOC_INJECT_XTRA_DATA_V02
//#define REMOVE_QMI_LOC_INJECT_XTRA_PCID_V02
//#define REMOVE_QMI_LOC_NOTIFY_WIFI_ATTACHMENT_STATUS_V02
//#define REMOVE_QMI_LOC_NOTIFY_WIFI_ENABLED_STATUS_V02
//#define REMOVE_QMI_LOC_NOTIFY_WIFI_STATUS_V02
//#define REMOVE_QMI_LOC_PEDOMETER_REPORT_V02
//#define REMOVE_QMI_LOC_QUERY_AON_CONFIG_V02
//#define REMOVE_QMI_LOC_QUERY_GEOFENCE_V02
//#define REMOVE_QMI_LOC_READ_FROM_BATCH_V02
//#define REMOVE_QMI_LOC_REG_EVENTS_V02
//#define REMOVE_QMI_LOC_RELEASE_BATCH_V02
//#define REMOVE_QMI_LOC_SECURE_GET_AVAILABLE_POSITION_V02
//#define REMOVE_QMI_LOC_SET_CRADLE_MOUNT_CONFIG_V02
//#define REMOVE_QMI_LOC_SET_ENGINE_LOCK_V02
//#define REMOVE_QMI_LOC_SET_EXTERNAL_POWER_CONFIG_V02
//#define REMOVE_QMI_LOC_SET_GEOFENCE_ENGINE_CONFIG_V02
//#define REMOVE_QMI_LOC_SET_GEOFENCE_ENGINE_CONTEXT_V02
//#define REMOVE_QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG_V02
//#define REMOVE_QMI_LOC_SET_LOW_POWER_MODE_V02
//#define REMOVE_QMI_LOC_SET_NMEA_TYPES_V02
//#define REMOVE_QMI_LOC_SET_OPERATION_MODE_V02
//#define REMOVE_QMI_LOC_SET_POSITION_ENGINE_CONFIG_PARAMETERS_V02
//#define REMOVE_QMI_LOC_SET_PREMIUM_SERVICES_CONFIG_V02
//#define REMOVE_QMI_LOC_SET_PROTOCOL_CONFIG_PARAMETERS_V02
//#define REMOVE_QMI_LOC_SET_SBAS_CONFIG_V02
//#define REMOVE_QMI_LOC_SET_SENSOR_CONTROL_CONFIG_V02
//#define REMOVE_QMI_LOC_SET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_V02
//#define REMOVE_QMI_LOC_SET_SENSOR_PROPERTIES_V02
//#define REMOVE_QMI_LOC_SET_SERVER_V02
//#define REMOVE_QMI_LOC_SET_SPI_STATUS_V02
//#define REMOVE_QMI_LOC_SET_XTRA_T_SESSION_CONTROL_V02
//#define REMOVE_QMI_LOC_SET_XTRA_VERSION_CHECK_V02
//#define REMOVE_QMI_LOC_START_V02
//#define REMOVE_QMI_LOC_START_BATCHING_V02
//#define REMOVE_QMI_LOC_START_DBT_V02
//#define REMOVE_QMI_LOC_STOP_V02
//#define REMOVE_QMI_LOC_STOP_BATCHING_V02
//#define REMOVE_QMI_LOC_STOP_DBT_V02
//#define REMOVE_QMI_LOC_WWAN_OUT_OF_SERVICE_NOTIFICATION_V02
/*Service Message Definition*/
/** @addtogroup loc_qmi_msg_ids
@{
*/
#define QMI_LOC_GET_SUPPORTED_MSGS_REQ_V02 0x001E
#define QMI_LOC_GET_SUPPORTED_MSGS_RESP_V02 0x001E
#define QMI_LOC_GET_SUPPORTED_FIELDS_REQ_V02 0x001F
#define QMI_LOC_GET_SUPPORTED_FIELDS_RESP_V02 0x001F
#define QMI_LOC_INFORM_CLIENT_REVISION_REQ_V02 0x0020
#define QMI_LOC_INFORM_CLIENT_REVISION_RESP_V02 0x0020
#define QMI_LOC_REG_EVENTS_REQ_V02 0x0021
#define QMI_LOC_REG_EVENTS_RESP_V02 0x0021
#define QMI_LOC_START_REQ_V02 0x0022
#define QMI_LOC_START_RESP_V02 0x0022
#define QMI_LOC_STOP_REQ_V02 0x0023
#define QMI_LOC_STOP_RESP_V02 0x0023
#define QMI_LOC_EVENT_POSITION_REPORT_IND_V02 0x0024
#define QMI_LOC_EVENT_GNSS_SV_INFO_IND_V02 0x0025
#define QMI_LOC_EVENT_NMEA_IND_V02 0x0026
#define QMI_LOC_EVENT_NI_NOTIFY_VERIFY_REQ_IND_V02 0x0027
#define QMI_LOC_EVENT_INJECT_TIME_REQ_IND_V02 0x0028
#define QMI_LOC_EVENT_INJECT_PREDICTED_ORBITS_REQ_IND_V02 0x0029
#define QMI_LOC_EVENT_INJECT_POSITION_REQ_IND_V02 0x002A
#define QMI_LOC_EVENT_ENGINE_STATE_IND_V02 0x002B
#define QMI_LOC_EVENT_FIX_SESSION_STATE_IND_V02 0x002C
#define QMI_LOC_EVENT_WIFI_REQ_IND_V02 0x002D
#define QMI_LOC_EVENT_SENSOR_STREAMING_READY_STATUS_IND_V02 0x002E
#define QMI_LOC_EVENT_TIME_SYNC_REQ_IND_V02 0x002F
#define QMI_LOC_EVENT_SET_SPI_STREAMING_REPORT_IND_V02 0x0030
#define QMI_LOC_EVENT_LOCATION_SERVER_CONNECTION_REQ_IND_V02 0x0031
#define QMI_LOC_GET_SERVICE_REVISION_REQ_V02 0x0032
#define QMI_LOC_GET_SERVICE_REVISION_RESP_V02 0x0032
#define QMI_LOC_GET_SERVICE_REVISION_IND_V02 0x0032
#define QMI_LOC_GET_FIX_CRITERIA_REQ_V02 0x0033
#define QMI_LOC_GET_FIX_CRITERIA_RESP_V02 0x0033
#define QMI_LOC_GET_FIX_CRITERIA_IND_V02 0x0033
#define QMI_LOC_NI_USER_RESPONSE_REQ_V02 0x0034
#define QMI_LOC_NI_USER_RESPONSE_RESP_V02 0x0034
#define QMI_LOC_NI_USER_RESPONSE_IND_V02 0x0034
#define QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_REQ_V02 0x0035
#define QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_RESP_V02 0x0035
#define QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_IND_V02 0x0035
#define QMI_LOC_GET_PREDICTED_ORBITS_DATA_SOURCE_REQ_V02 0x0036
#define QMI_LOC_GET_PREDICTED_ORBITS_DATA_SOURCE_RESP_V02 0x0036
#define QMI_LOC_GET_PREDICTED_ORBITS_DATA_SOURCE_IND_V02 0x0036
#define QMI_LOC_GET_PREDICTED_ORBITS_DATA_VALIDITY_REQ_V02 0x0037
#define QMI_LOC_GET_PREDICTED_ORBITS_DATA_VALIDITY_RESP_V02 0x0037
#define QMI_LOC_GET_PREDICTED_ORBITS_DATA_VALIDITY_IND_V02 0x0037
#define QMI_LOC_INJECT_UTC_TIME_REQ_V02 0x0038
#define QMI_LOC_INJECT_UTC_TIME_RESP_V02 0x0038
#define QMI_LOC_INJECT_UTC_TIME_IND_V02 0x0038
#define QMI_LOC_INJECT_POSITION_REQ_V02 0x0039
#define QMI_LOC_INJECT_POSITION_RESP_V02 0x0039
#define QMI_LOC_INJECT_POSITION_IND_V02 0x0039
#define QMI_LOC_SET_ENGINE_LOCK_REQ_V02 0x003A
#define QMI_LOC_SET_ENGINE_LOCK_RESP_V02 0x003A
#define QMI_LOC_SET_ENGINE_LOCK_IND_V02 0x003A
#define QMI_LOC_GET_ENGINE_LOCK_REQ_V02 0x003B
#define QMI_LOC_GET_ENGINE_LOCK_RESP_V02 0x003B
#define QMI_LOC_GET_ENGINE_LOCK_IND_V02 0x003B
#define QMI_LOC_SET_SBAS_CONFIG_REQ_V02 0x003C
#define QMI_LOC_SET_SBAS_CONFIG_RESP_V02 0x003C
#define QMI_LOC_SET_SBAS_CONFIG_IND_V02 0x003C
#define QMI_LOC_GET_SBAS_CONFIG_REQ_V02 0x003D
#define QMI_LOC_GET_SBAS_CONFIG_RESP_V02 0x003D
#define QMI_LOC_GET_SBAS_CONFIG_IND_V02 0x003D
#define QMI_LOC_SET_NMEA_TYPES_REQ_V02 0x003E
#define QMI_LOC_SET_NMEA_TYPES_RESP_V02 0x003E
#define QMI_LOC_SET_NMEA_TYPES_IND_V02 0x003E
#define QMI_LOC_GET_NMEA_TYPES_REQ_V02 0x003F
#define QMI_LOC_GET_NMEA_TYPES_RESP_V02 0x003F
#define QMI_LOC_GET_NMEA_TYPES_IND_V02 0x003F
#define QMI_LOC_SET_LOW_POWER_MODE_REQ_V02 0x0040
#define QMI_LOC_SET_LOW_POWER_MODE_RESP_V02 0x0040
#define QMI_LOC_SET_LOW_POWER_MODE_IND_V02 0x0040
#define QMI_LOC_GET_LOW_POWER_MODE_REQ_V02 0x0041
#define QMI_LOC_GET_LOW_POWER_MODE_RESP_V02 0x0041
#define QMI_LOC_GET_LOW_POWER_MODE_IND_V02 0x0041
#define QMI_LOC_SET_SERVER_REQ_V02 0x0042
#define QMI_LOC_SET_SERVER_RESP_V02 0x0042
#define QMI_LOC_SET_SERVER_IND_V02 0x0042
#define QMI_LOC_GET_SERVER_REQ_V02 0x0043
#define QMI_LOC_GET_SERVER_RESP_V02 0x0043
#define QMI_LOC_GET_SERVER_IND_V02 0x0043
#define QMI_LOC_DELETE_ASSIST_DATA_REQ_V02 0x0044
#define QMI_LOC_DELETE_ASSIST_DATA_RESP_V02 0x0044
#define QMI_LOC_DELETE_ASSIST_DATA_IND_V02 0x0044
#define QMI_LOC_SET_XTRA_T_SESSION_CONTROL_REQ_V02 0x0045
#define QMI_LOC_SET_XTRA_T_SESSION_CONTROL_RESP_V02 0x0045
#define QMI_LOC_SET_XTRA_T_SESSION_CONTROL_IND_V02 0x0045
#define QMI_LOC_GET_XTRA_T_SESSION_CONTROL_REQ_V02 0x0046
#define QMI_LOC_GET_XTRA_T_SESSION_CONTROL_RESP_V02 0x0046
#define QMI_LOC_GET_XTRA_T_SESSION_CONTROL_IND_V02 0x0046
#define QMI_LOC_INJECT_WIFI_POSITION_REQ_V02 0x0047
#define QMI_LOC_INJECT_WIFI_POSITION_RESP_V02 0x0047
#define QMI_LOC_INJECT_WIFI_POSITION_IND_V02 0x0047
#define QMI_LOC_NOTIFY_WIFI_STATUS_REQ_V02 0x0048
#define QMI_LOC_NOTIFY_WIFI_STATUS_RESP_V02 0x0048
#define QMI_LOC_NOTIFY_WIFI_STATUS_IND_V02 0x0048
#define QMI_LOC_GET_REGISTERED_EVENTS_REQ_V02 0x0049
#define QMI_LOC_GET_REGISTERED_EVENTS_RESP_V02 0x0049
#define QMI_LOC_GET_REGISTERED_EVENTS_IND_V02 0x0049
#define QMI_LOC_SET_OPERATION_MODE_REQ_V02 0x004A
#define QMI_LOC_SET_OPERATION_MODE_RESP_V02 0x004A
#define QMI_LOC_SET_OPERATION_MODE_IND_V02 0x004A
#define QMI_LOC_GET_OPERATION_MODE_REQ_V02 0x004B
#define QMI_LOC_GET_OPERATION_MODE_RESP_V02 0x004B
#define QMI_LOC_GET_OPERATION_MODE_IND_V02 0x004B
#define QMI_LOC_SET_SPI_STATUS_REQ_V02 0x004C
#define QMI_LOC_SET_SPI_STATUS_RESP_V02 0x004C
#define QMI_LOC_SET_SPI_STATUS_IND_V02 0x004C
#define QMI_LOC_INJECT_SENSOR_DATA_REQ_V02 0x004D
#define QMI_LOC_INJECT_SENSOR_DATA_RESP_V02 0x004D
#define QMI_LOC_INJECT_SENSOR_DATA_IND_V02 0x004D
#define QMI_LOC_INJECT_TIME_SYNC_DATA_REQ_V02 0x004E
#define QMI_LOC_INJECT_TIME_SYNC_DATA_RESP_V02 0x004E
#define QMI_LOC_INJECT_TIME_SYNC_DATA_IND_V02 0x004E
#define QMI_LOC_SET_CRADLE_MOUNT_CONFIG_REQ_V02 0x004F
#define QMI_LOC_SET_CRADLE_MOUNT_CONFIG_RESP_V02 0x004F
#define QMI_LOC_SET_CRADLE_MOUNT_CONFIG_IND_V02 0x004F
#define QMI_LOC_GET_CRADLE_MOUNT_CONFIG_REQ_V02 0x0050
#define QMI_LOC_GET_CRADLE_MOUNT_CONFIG_RESP_V02 0x0050
#define QMI_LOC_GET_CRADLE_MOUNT_CONFIG_IND_V02 0x0050
#define QMI_LOC_SET_EXTERNAL_POWER_CONFIG_REQ_V02 0x0051
#define QMI_LOC_SET_EXTERNAL_POWER_CONFIG_RESP_V02 0x0051
#define QMI_LOC_SET_EXTERNAL_POWER_CONFIG_IND_V02 0x0051
#define QMI_LOC_GET_EXTERNAL_POWER_CONFIG_REQ_V02 0x0052
#define QMI_LOC_GET_EXTERNAL_POWER_CONFIG_RESP_V02 0x0052
#define QMI_LOC_GET_EXTERNAL_POWER_CONFIG_IND_V02 0x0052
#define QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_REQ_V02 0x0053
#define QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_RESP_V02 0x0053
#define QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_IND_V02 0x0053
#define QMI_LOC_SET_PROTOCOL_CONFIG_PARAMETERS_REQ_V02 0x0054
#define QMI_LOC_SET_PROTOCOL_CONFIG_PARAMETERS_RESP_V02 0x0054
#define QMI_LOC_SET_PROTOCOL_CONFIG_PARAMETERS_IND_V02 0x0054
#define QMI_LOC_GET_PROTOCOL_CONFIG_PARAMETERS_REQ_V02 0x0055
#define QMI_LOC_GET_PROTOCOL_CONFIG_PARAMETERS_RESP_V02 0x0055
#define QMI_LOC_GET_PROTOCOL_CONFIG_PARAMETERS_IND_V02 0x0055
#define QMI_LOC_SET_SENSOR_CONTROL_CONFIG_REQ_V02 0x0056
#define QMI_LOC_SET_SENSOR_CONTROL_CONFIG_RESP_V02 0x0056
#define QMI_LOC_SET_SENSOR_CONTROL_CONFIG_IND_V02 0x0056
#define QMI_LOC_GET_SENSOR_CONTROL_CONFIG_REQ_V02 0x0057
#define QMI_LOC_GET_SENSOR_CONTROL_CONFIG_RESP_V02 0x0057
#define QMI_LOC_GET_SENSOR_CONTROL_CONFIG_IND_V02 0x0057
#define QMI_LOC_SET_SENSOR_PROPERTIES_REQ_V02 0x0058
#define QMI_LOC_SET_SENSOR_PROPERTIES_RESP_V02 0x0058
#define QMI_LOC_SET_SENSOR_PROPERTIES_IND_V02 0x0058
#define QMI_LOC_GET_SENSOR_PROPERTIES_REQ_V02 0x0059
#define QMI_LOC_GET_SENSOR_PROPERTIES_RESP_V02 0x0059
#define QMI_LOC_GET_SENSOR_PROPERTIES_IND_V02 0x0059
#define QMI_LOC_SET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_REQ_V02 0x005A
#define QMI_LOC_SET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_RESP_V02 0x005A
#define QMI_LOC_SET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_IND_V02 0x005A
#define QMI_LOC_GET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_REQ_V02 0x005B
#define QMI_LOC_GET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_RESP_V02 0x005B
#define QMI_LOC_GET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_IND_V02 0x005B
#define QMI_LOC_INJECT_SUPL_CERTIFICATE_REQ_V02 0x005C
#define QMI_LOC_INJECT_SUPL_CERTIFICATE_RESP_V02 0x005C
#define QMI_LOC_INJECT_SUPL_CERTIFICATE_IND_V02 0x005C
#define QMI_LOC_DELETE_SUPL_CERTIFICATE_REQ_V02 0x005D
#define QMI_LOC_DELETE_SUPL_CERTIFICATE_RESP_V02 0x005D
#define QMI_LOC_DELETE_SUPL_CERTIFICATE_IND_V02 0x005D
#define QMI_LOC_SET_POSITION_ENGINE_CONFIG_PARAMETERS_REQ_V02 0x005E
#define QMI_LOC_SET_POSITION_ENGINE_CONFIG_PARAMETERS_RESP_V02 0x005E
#define QMI_LOC_SET_POSITION_ENGINE_CONFIG_PARAMETERS_IND_V02 0x005E
#define QMI_LOC_GET_POSITION_ENGINE_CONFIG_PARAMETERS_REQ_V02 0x005F
#define QMI_LOC_GET_POSITION_ENGINE_CONFIG_PARAMETERS_RESP_V02 0x005F
#define QMI_LOC_GET_POSITION_ENGINE_CONFIG_PARAMETERS_IND_V02 0x005F
#define QMI_LOC_EVENT_NI_GEOFENCE_NOTIFICATION_IND_V02 0x0060
#define QMI_LOC_EVENT_GEOFENCE_GEN_ALERT_IND_V02 0x0061
#define QMI_LOC_EVENT_GEOFENCE_BREACH_NOTIFICATION_IND_V02 0x0062
#define QMI_LOC_ADD_CIRCULAR_GEOFENCE_REQ_V02 0x0063
#define QMI_LOC_ADD_CIRCULAR_GEOFENCE_RESP_V02 0x0063
#define QMI_LOC_ADD_CIRCULAR_GEOFENCE_IND_V02 0x0063
#define QMI_LOC_DELETE_GEOFENCE_REQ_V02 0x0064
#define QMI_LOC_DELETE_GEOFENCE_RESP_V02 0x0064
#define QMI_LOC_DELETE_GEOFENCE_IND_V02 0x0064
#define QMI_LOC_QUERY_GEOFENCE_REQ_V02 0x0065
#define QMI_LOC_QUERY_GEOFENCE_RESP_V02 0x0065
#define QMI_LOC_QUERY_GEOFENCE_IND_V02 0x0065
#define QMI_LOC_EDIT_GEOFENCE_REQ_V02 0x0066
#define QMI_LOC_EDIT_GEOFENCE_RESP_V02 0x0066
#define QMI_LOC_EDIT_GEOFENCE_IND_V02 0x0066
#define QMI_LOC_GET_BEST_AVAILABLE_POSITION_REQ_V02 0x0067
#define QMI_LOC_GET_BEST_AVAILABLE_POSITION_RESP_V02 0x0067
#define QMI_LOC_GET_BEST_AVAILABLE_POSITION_IND_V02 0x0067
#define QMI_LOC_INJECT_MOTION_DATA_REQ_V02 0x0068
#define QMI_LOC_INJECT_MOTION_DATA_RESP_V02 0x0068
#define QMI_LOC_INJECT_MOTION_DATA_IND_V02 0x0068
#define QMI_LOC_GET_NI_GEOFENCE_ID_LIST_REQ_V02 0x0069
#define QMI_LOC_GET_NI_GEOFENCE_ID_LIST_RESP_V02 0x0069
#define QMI_LOC_GET_NI_GEOFENCE_ID_LIST_IND_V02 0x0069
#define QMI_LOC_INJECT_GSM_CELL_INFO_REQ_V02 0x006A
#define QMI_LOC_INJECT_GSM_CELL_INFO_RESP_V02 0x006A
#define QMI_LOC_INJECT_GSM_CELL_INFO_IND_V02 0x006A
#define QMI_LOC_INJECT_NETWORK_INITIATED_MESSAGE_REQ_V02 0x006B
#define QMI_LOC_INJECT_NETWORK_INITIATED_MESSAGE_RESP_V02 0x006B
#define QMI_LOC_INJECT_NETWORK_INITIATED_MESSAGE_IND_V02 0x006B
#define QMI_LOC_WWAN_OUT_OF_SERVICE_NOTIFICATION_REQ_V02 0x006C
#define QMI_LOC_WWAN_OUT_OF_SERVICE_NOTIFICATION_RESP_V02 0x006C
#define QMI_LOC_WWAN_OUT_OF_SERVICE_NOTIFICATION_IND_V02 0x006C
#define QMI_LOC_EVENT_PEDOMETER_CONTROL_IND_V02 0x006D
#define QMI_LOC_EVENT_MOTION_DATA_CONTROL_IND_V02 0x006E
#define QMI_LOC_PEDOMETER_REPORT_REQ_V02 0x006F
#define QMI_LOC_PEDOMETER_REPORT_RESP_V02 0x006F
#define QMI_LOC_PEDOMETER_REPORT_IND_V02 0x006F
#define QMI_LOC_INJECT_WCDMA_CELL_INFO_REQ_V02 0x0070
#define QMI_LOC_INJECT_WCDMA_CELL_INFO_RESP_V02 0x0070
#define QMI_LOC_INJECT_WCDMA_CELL_INFO_IND_V02 0x0070
#define QMI_LOC_INJECT_TDSCDMA_CELL_INFO_REQ_V02 0x0071
#define QMI_LOC_INJECT_TDSCDMA_CELL_INFO_RESP_V02 0x0071
#define QMI_LOC_INJECT_TDSCDMA_CELL_INFO_IND_V02 0x0071
#define QMI_LOC_INJECT_SUBSCRIBER_ID_REQ_V02 0x0072
#define QMI_LOC_INJECT_SUBSCRIBER_ID_RESP_V02 0x0072
#define QMI_LOC_INJECT_SUBSCRIBER_ID_IND_V02 0x0072
#define QMI_LOC_SET_GEOFENCE_ENGINE_CONFIG_REQ_V02 0x0073
#define QMI_LOC_SET_GEOFENCE_ENGINE_CONFIG_RESP_V02 0x0073
#define QMI_LOC_SET_GEOFENCE_ENGINE_CONFIG_IND_V02 0x0073
#define QMI_LOC_GET_GEOFENCE_ENGINE_CONFIG_REQ_V02 0x0074
#define QMI_LOC_GET_GEOFENCE_ENGINE_CONFIG_RESP_V02 0x0074
#define QMI_LOC_GET_GEOFENCE_ENGINE_CONFIG_IND_V02 0x0074
#define QMI_LOC_GET_BATCH_SIZE_REQ_V02 0x0075
#define QMI_LOC_GET_BATCH_SIZE_RESP_V02 0x0075
#define QMI_LOC_GET_BATCH_SIZE_IND_V02 0x0075
#define QMI_LOC_START_BATCHING_REQ_V02 0x0076
#define QMI_LOC_START_BATCHING_RESP_V02 0x0076
#define QMI_LOC_START_BATCHING_IND_V02 0x0076
#define QMI_LOC_EVENT_BATCH_FULL_NOTIFICATION_IND_V02 0x0077
#define QMI_LOC_EVENT_LIVE_BATCHED_POSITION_REPORT_IND_V02 0x0078
#define QMI_LOC_READ_FROM_BATCH_REQ_V02 0x0079
#define QMI_LOC_READ_FROM_BATCH_RESP_V02 0x0079
#define QMI_LOC_READ_FROM_BATCH_IND_V02 0x0079
#define QMI_LOC_STOP_BATCHING_REQ_V02 0x007A
#define QMI_LOC_STOP_BATCHING_RESP_V02 0x007A
#define QMI_LOC_STOP_BATCHING_IND_V02 0x007A
#define QMI_LOC_RELEASE_BATCH_REQ_V02 0x007B
#define QMI_LOC_RELEASE_BATCH_RESP_V02 0x007B
#define QMI_LOC_RELEASE_BATCH_IND_V02 0x007B
#define QMI_LOC_EVENT_INJECT_WIFI_AP_DATA_REQ_IND_V02 0x007C
#define QMI_LOC_INJECT_WIFI_AP_DATA_REQ_V02 0x007D
#define QMI_LOC_INJECT_WIFI_AP_DATA_RESP_V02 0x007D
#define QMI_LOC_INJECT_WIFI_AP_DATA_IND_V02 0x007D
#define QMI_LOC_NOTIFY_WIFI_ATTACHMENT_STATUS_REQ_V02 0x007E
#define QMI_LOC_NOTIFY_WIFI_ATTACHMENT_STATUS_RESP_V02 0x007E
#define QMI_LOC_NOTIFY_WIFI_ATTACHMENT_STATUS_IND_V02 0x007E
#define QMI_LOC_NOTIFY_WIFI_ENABLED_STATUS_REQ_V02 0x007F
#define QMI_LOC_NOTIFY_WIFI_ENABLED_STATUS_RESP_V02 0x007F
#define QMI_LOC_NOTIFY_WIFI_ENABLED_STATUS_IND_V02 0x007F
#define QMI_LOC_EVENT_GEOFENCE_BATCHED_BREACH_NOTIFICATION_IND_V02 0x0080
#define QMI_LOC_EVENT_VEHICLE_DATA_READY_STATUS_IND_V02 0x0081
#define QMI_LOC_INJECT_VEHICLE_SENSOR_DATA_REQ_V02 0x0082
#define QMI_LOC_INJECT_VEHICLE_SENSOR_DATA_RESP_V02 0x0082
#define QMI_LOC_INJECT_VEHICLE_SENSOR_DATA_IND_V02 0x0082
#define QMI_LOC_GET_AVAILABLE_WWAN_POSITION_REQ_V02 0x0083
#define QMI_LOC_GET_AVAILABLE_WWAN_POSITION_RESP_V02 0x0083
#define QMI_LOC_GET_AVAILABLE_WWAN_POSITION_IND_V02 0x0083
#define QMI_LOC_SET_PREMIUM_SERVICES_CONFIG_REQ_V02 0x0084
#define QMI_LOC_SET_PREMIUM_SERVICES_CONFIG_RESP_V02 0x0084
#define QMI_LOC_SET_PREMIUM_SERVICES_CONFIG_IND_V02 0x0084
#define QMI_LOC_SET_XTRA_VERSION_CHECK_REQ_V02 0x0085
#define QMI_LOC_SET_XTRA_VERSION_CHECK_RESP_V02 0x0085
#define QMI_LOC_SET_XTRA_VERSION_CHECK_IND_V02 0x0085
#define QMI_LOC_EVENT_GNSS_MEASUREMENT_REPORT_IND_V02 0x0086
#define QMI_LOC_EVENT_SV_POLYNOMIAL_REPORT_IND_V02 0x0087
#define QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG_V02 0x0088
#define QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG_RESP_V02 0x0088
#define QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG_IND_V02 0x0088
#define QMI_LOC_ADD_GEOFENCE_CONTEXT_REQ_V02 0x0089
#define QMI_LOC_ADD_GEOFENCE_CONTEXT_RESP_V02 0x0089
#define QMI_LOC_ADD_GEOFENCE_CONTEXT_IND_V02 0x0089
#define QMI_LOC_SET_GEOFENCE_ENGINE_CONTEXT_REQ_V02 0x008A
#define QMI_LOC_SET_GEOFENCE_ENGINE_CONTEXT_RESP_V02 0x008A
#define QMI_LOC_SET_GEOFENCE_ENGINE_CONTEXT_IND_V02 0x008A
#define QMI_LOC_DELETE_GEOFENCE_CONTEXT_REQ_V02 0x008B
#define QMI_LOC_DELETE_GEOFENCE_CONTEXT_RESP_V02 0x008B
#define QMI_LOC_DELETE_GEOFENCE_CONTEXT_IND_V02 0x008B
#define QMI_LOC_EVENT_GEOFENCE_PROXIMITY_NOTIFICATION_IND_V02 0x008C
#define QMI_LOC_INJECT_GTP_CLIENT_DOWNLOADED_DATA_REQ_V02 0x008D
#define QMI_LOC_INJECT_GTP_CLIENT_DOWNLOADED_DATA_RESP_V02 0x008D
#define QMI_LOC_INJECT_GTP_CLIENT_DOWNLOADED_DATA_IND_V02 0x008D
#define QMI_LOC_GDT_UPLOAD_BEGIN_STATUS_REQ_V02 0x008E
#define QMI_LOC_GDT_UPLOAD_BEGIN_STATUS_RESP_V02 0x008E
#define QMI_LOC_GDT_UPLOAD_BEGIN_STATUS_IND_V02 0x008E
#define QMI_LOC_GDT_UPLOAD_END_REQ_V02 0x008F
#define QMI_LOC_GDT_UPLOAD_END_RESP_V02 0x008F
#define QMI_LOC_GDT_UPLOAD_END_IND_V02 0x008F
#define QMI_LOC_EVENT_GDT_UPLOAD_BEGIN_STATUS_REQ_IND_V02 0x0090
#define QMI_LOC_EVENT_GDT_UPLOAD_END_REQ_IND_V02 0x0091
#define QMI_LOC_START_DBT_REQ_V02 0x0092
#define QMI_LOC_START_DBT_RESP_V02 0x0092
#define QMI_LOC_START_DBT_IND_V02 0x0092
#define QMI_LOC_EVENT_DBT_POSITION_REPORT_IND_V02 0x0093
#define QMI_LOC_EVENT_DBT_SESSION_STATUS_IND_V02 0x0094
#define QMI_LOC_STOP_DBT_REQ_V02 0x0095
#define QMI_LOC_STOP_DBT_RESP_V02 0x0095
#define QMI_LOC_STOP_DBT_IND_V02 0x0095
#define QMI_LOC_SECURE_GET_AVAILABLE_POSITION_REQ_V02 0x0096
#define QMI_LOC_SECURE_GET_AVAILABLE_POSITION_RESP_V02 0x0096
#define QMI_LOC_SECURE_GET_AVAILABLE_POSITION_IND_V02 0x0096
#define QMI_LOC_EVENT_GEOFENCE_BATCHED_DWELL_NOTIFICATION_IND_V02 0x0097
#define QMI_LOC_EVENT_GET_TIME_ZONE_INFO_IND_V02 0x0098
#define QMI_LOC_INJECT_TIME_ZONE_INFO_REQ_V02 0x0099
#define QMI_LOC_INJECT_TIME_ZONE_INFO_RESP_V02 0x0099
#define QMI_LOC_INJECT_TIME_ZONE_INFO_IND_V02 0x0099
#define QMI_LOC_INJECT_APCACHE_DATA_REQ_V02 0x009A
#define QMI_LOC_INJECT_APCACHE_DATA_RESP_V02 0x009A
#define QMI_LOC_INJECT_APCACHE_DATA_IND_V02 0x009A
#define QMI_LOC_INJECT_APDONOTCACHE_DATA_REQ_V02 0x009B
#define QMI_LOC_INJECT_APDONOTCACHE_DATA_RESP_V02 0x009B
#define QMI_LOC_INJECT_APDONOTCACHE_DATA_IND_V02 0x009B
#define QMI_LOC_EVENT_BATCHING_STATUS_IND_V02 0x009C
#define QMI_LOC_QUERY_AON_CONFIG_REQ_V02 0x009D
#define QMI_LOC_QUERY_AON_CONFIG_RESP_V02 0x009D
#define QMI_LOC_QUERY_AON_CONFIG_IND_V02 0x009D
#define QMI_LOC_GTP_AP_STATUS_REQ_V02 0x009E
#define QMI_LOC_GTP_AP_STATUS_RESP_V02 0x009E
#define QMI_LOC_GTP_AP_STATUS_IND_V02 0x009E
#define QMI_LOC_GDT_DOWNLOAD_BEGIN_STATUS_REQ_V02 0x009F
#define QMI_LOC_GDT_DOWNLOAD_BEGIN_STATUS_RESP_V02 0x009F
#define QMI_LOC_GDT_DOWNLOAD_BEGIN_STATUS_IND_V02 0x009F
#define QMI_LOC_GDT_DOWNLOAD_READY_STATUS_REQ_V02 0x00A0
#define QMI_LOC_GDT_DOWNLOAD_READY_STATUS_RESP_V02 0x00A0
#define QMI_LOC_GDT_DOWNLOAD_READY_STATUS_IND_V02 0x00A0
#define QMI_LOC_GDT_RECEIVE_DONE_STATUS_REQ_V02 0x00A1
#define QMI_LOC_GDT_RECEIVE_DONE_STATUS_RESP_V02 0x00A1
#define QMI_LOC_GDT_RECEIVE_DONE_STATUS_IND_V02 0x00A1
#define QMI_LOC_GDT_DOWNLOAD_END_STATUS_REQ_V02 0x00A2
#define QMI_LOC_GDT_DOWNLOAD_END_STATUS_RESP_V02 0x00A2
#define QMI_LOC_GDT_DOWNLOAD_END_STATUS_IND_V02 0x00A2
#define QMI_LOC_EVENT_GDT_DOWNLOAD_BEGIN_REQ_IND_V02 0x00A3
#define QMI_LOC_EVENT_GDT_RECEIVE_DONE_IND_V02 0x00A4
#define QMI_LOC_EVENT_GDT_DOWNLOAD_END_REQ_IND_V02 0x00A5
#define QMI_LOC_DELETE_GNSS_SERVICE_DATA_REQ_V02 0x00A6
#define QMI_LOC_DELETE_GNSS_SERVICE_DATA_RESP_V02 0x00A6
#define QMI_LOC_DELETE_GNSS_SERVICE_DATA_IND_V02 0x00A6
#define QMI_LOC_INJECT_XTRA_DATA_REQ_V02 0x00A7
#define QMI_LOC_INJECT_XTRA_DATA_RESP_V02 0x00A7
#define QMI_LOC_INJECT_XTRA_DATA_IND_V02 0x00A7
#define QMI_LOC_INJECT_XTRA_PCID_REQ_V02 0x00A8
#define QMI_LOC_INJECT_XTRA_PCID_RESP_V02 0x00A8
#define QMI_LOC_INJECT_XTRA_PCID_IND_V02 0x00A8
/**
@}
*/
/* Service Object Accessor */
/** @addtogroup wms_qmi_accessor
@{
*/
/** This function is used internally by the autogenerated code. Clients should use the
macro loc_get_service_object_v02( ) that takes in no arguments. */
qmi_idl_service_object_type loc_get_service_object_internal_v02
( int32_t idl_maj_version, int32_t idl_min_version, int32_t library_version );
/** This macro should be used to get the service object */
#define loc_get_service_object_v02( ) \
loc_get_service_object_internal_v02( \
LOC_V02_IDL_MAJOR_VERS, LOC_V02_IDL_MINOR_VERS, \
LOC_V02_IDL_TOOL_VERS )
/**
@}
*/
#ifdef __cplusplus
}
#endif
#endif