• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Copyright (c) 2011-2015, The Linux Foundation. All rights reserved.
2  *
3  * Redistribution and use in source and binary forms, with or without
4  * modification, are permitted provided that the following conditions are
5  * met:
6  *     * Redistributions of source code must retain the above copyright
7  *       notice, this list of conditions and the following disclaimer.
8  *     * Redistributions in binary form must reproduce the above
9  *       copyright notice, this list of conditions and the following
10  *       disclaimer in the documentation and/or other materials provided
11  *       with the distribution.
12  *     * Neither the name of The Linux Foundation, nor the names of its
13  *       contributors may be used to endorse or promote products derived
14  *       from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
17  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
20  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28 #ifndef LOC_SERVICE_02_H
29 #define LOC_SERVICE_02_H
30 /**
31   @file location_service_v02.h
32 
33   @brief This is the public header file which defines the loc service Data structures.
34 
35   This header file defines the types and structures that were defined in
36   loc. It contains the constant values defined, enums, structures,
37   messages, and service message IDs (in that order) Structures that were
38   defined in the IDL as messages contain mandatory elements, optional
39   elements, a combination of mandatory and optional elements (mandatory
40   always come before optionals in the structure), or nothing (null message)
41 
42   An optional element in a message is preceded by a uint8_t value that must be
43   set to true if the element is going to be included. When decoding a received
44   message, the uint8_t values will be set to true or false by the decode
45   routine, and should be checked before accessing the values that they
46   correspond to.
47 
48   Variable sized arrays are defined as static sized arrays with an unsigned
49   integer (32 bit) preceding it that must be set to the number of elements
50   in the array that are valid. For Example:
51 
52   uint32_t test_opaque_len;
53   uint8_t test_opaque[16];
54 
55   If only 4 elements are added to test_opaque[] then test_opaque_len must be
56   set to 4 before sending the message.  When decoding, the _len value is set
57   by the decode routine and should be checked so that the correct number of
58   elements in the array will be accessed.
59 
60 */
61 /*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
62  *THIS IS AN AUTO GENERATED FILE. DO NOT ALTER IN ANY WAY
63  *====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*/
64 
65 /* This file was generated with Tool version 6.14.7
66    It was generated on: Tue Mar 22 2016 (Spin 0)
67    From IDL File: location_service_v02.idl */
68 
69 /** @defgroup loc_qmi_consts Constant values defined in the IDL */
70 /** @defgroup loc_qmi_msg_ids Constant values for QMI message IDs */
71 /** @defgroup loc_qmi_enums Enumerated types used in QMI messages */
72 /** @defgroup loc_qmi_messages Structures sent as QMI messages */
73 /** @defgroup loc_qmi_aggregates Aggregate types used in QMI messages */
74 /** @defgroup loc_qmi_accessor Accessor for QMI service object */
75 /** @defgroup loc_qmi_version Constant values for versioning information */
76 
77 #include <stdint.h>
78 #include "qmi_idl_lib.h"
79 #include "common_v01.h"
80 
81 
82 #ifdef __cplusplus
83 extern "C" {
84 #endif
85 
86 /** @addtogroup loc_qmi_version
87     @{
88   */
89 /** Major Version Number of the IDL used to generate this file */
90 #define LOC_V02_IDL_MAJOR_VERS 0x02
91 /** Revision Number of the IDL used to generate this file */
92 #define LOC_V02_IDL_MINOR_VERS 0x34
93 /** Major Version Number of the qmi_idl_compiler used to generate this file */
94 #define LOC_V02_IDL_TOOL_VERS 0x06
95 /** Maximum Defined Message ID */
96 #define LOC_V02_MAX_MESSAGE_ID 0x00A8
97 /**
98     @}
99   */
100 
101 
102 /** @addtogroup loc_qmi_consts
103     @{
104   */
105 
106 /**  Maximum string length for the Provider field in the application ID.  */
107 #define QMI_LOC_MAX_APP_ID_PROVIDER_LENGTH_V02 24
108 
109 /**  Maximum string length for the Name field in the application ID.  */
110 #define QMI_LOC_MAX_APP_ID_NAME_LENGTH_V02 32
111 
112 /**  Maximum string length for the Version field in the application ID.  */
113 #define QMI_LOC_MAX_APP_ID_VERSION_LENGTH_V02 8
114 
115 /**  Maximum length of the list containing the SVs that were used to generate
116      a position report.  */
117 #define QMI_LOC_MAX_SV_USED_LIST_LENGTH_V02 80
118 
119 /**  Maximum number of satellites in the satellite report.  */
120 #define QMI_LOC_SV_INFO_LIST_MAX_SIZE_V02 80
121 
122 /**  Maximum NMEA string length.  */
123 #define QMI_LOC_NMEA_STRING_MAX_LENGTH_V02 200
124 
125 /**  Maximum length of the requestor ID string.  */
126 #define QMI_LOC_NI_MAX_REQUESTOR_ID_LENGTH_V02 200
127 
128 /**  Session ID byte length.  */
129 #define QMI_LOC_NI_SUPL_SLP_SESSION_ID_BYTE_LENGTH_V02 4
130 
131 /**  Maximum client name length allowed.  */
132 #define QMI_LOC_NI_MAX_CLIENT_NAME_LENGTH_V02 64
133 
134 /**  Maximum URL length accepted by the location engine.  */
135 #define QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 255
136 
137 /**  IPv6 address length in bytes.  */
138 #define QMI_LOC_IPV6_ADDR_LENGTH_V02 8
139 
140 /**  SUPL hash length.  */
141 #define QMI_LOC_NI_SUPL_HASH_LENGTH_V02 8
142 
143 /**  Maximum client address length allowed.  */
144 #define QMI_LOC_NI_MAX_EXT_CLIENT_ADDRESS_V02 20
145 
146 /**  Maximum codeword length allowed.  */
147 #define QMI_LOC_NI_CODEWORD_MAX_LENGTH_V02 20
148 
149 /**  Maximum number of NTP Servers sent out with this event. */
150 #define QMI_LOC_MAX_NTP_SERVERS_V02 3
151 
152 /**  Maximum number of predicted orbits servers supported in the location
153      engine.  */
154 #define QMI_LOC_MAX_PREDICTED_ORBITS_SERVERS_V02 3
155 
156 /**  Maximum length of the list, where each element of the list contains the
157      continuous range of Geofences that were breached at a given position.  */
158 #define QMI_LOC_MAX_GEOFENCE_ID_CONTINUOUS_LIST_LENGTH_V02 80
159 
160 /**  Maximum length of the list that contains a discrete number Geofences that
161      were breached at a given position.  */
162 #define QMI_LOC_MAX_GEOFENCE_ID_DISCRETE_LIST_LENGTH_V02 80
163 
164 /**  Maximum length that can be injected.   */
165 #define QMI_LOC_MAX_GDT_PATH_LEN_V02 255
166 
167 /**  Maximum client information size in bytes.   */
168 #define QMI_LOC_MAX_GTP_CL_INFO_LEN_V02 1500
169 
170 /**  Maximum mobile status data size in bytes.   */
171 #define QMI_LOC_MAX_GTP_MSD_LEN_V02 4000
172 
173 /**  Maximum GNSS Measurement Engine Firmware Version String length.  */
174 #define QMI_LOC_GNSS_ME_VERSION_STRING_MAX_LENGTH_V02 127
175 
176 /**  Maximum GNSS Measurement Engine Hosted Software Version String length.  */
177 #define QMI_LOC_GNSS_HOSTED_SW_VERSION_STRING_MAX_LENGTH_V02 127
178 
179 /**  Maximum GNSS Measurement Engine Full Version String length.  */
180 #define QMI_LOC_GNSS_SW_VERSION_STRING_MAX_LENGTH_V02 255
181 
182 /**  Maximum part length that can be injected. The client should
183      also look at the maxPartSize field in the predicted orbits injection
184      request indication and pick the minimum of the two.  */
185 #define QMI_LOC_MAX_PREDICTED_ORBITS_PART_LEN_V02 1024
186 
187 /**  Maximum length of the delete SV information list  */
188 #define QMI_LOC_DELETE_MAX_SV_INFO_LENGTH_V02 128
189 
190 /**  Maximum length of the Delete BDS SV Information list.  */
191 #define QMI_LOC_DELETE_MAX_BDS_SV_INFO_LENGTH_V02 37
192 
193 /**  Maximum length of the Delete GAL SV Information list.  */
194 #define QMI_LOC_DELETE_MAX_GAL_SV_INFO_LENGTH_V02 36
195 
196 /**  MAC address length in bytes.  */
197 #define QMI_LOC_WIFI_MAC_ADDR_LENGTH_V02 6
198 
199 /**  Wi-Fi SSID string maximum length.   */
200 #define QMI_LOC_MAX_WIFI_AP_SSID_STR_LENGTH_V02 32
201 
202 /**  Maximum number of APs that the sender can report.  */
203 #define QMI_LOC_WIFI_MAX_REPORTED_APS_PER_MSG_V02 50
204 
205 /**  Maximum number of samples that can be injected in a TLV.  */
206 #define QMI_LOC_SENSOR_DATA_MAX_SAMPLES_V02 50
207 
208 /**  Maximum APN string length allowed.  */
209 #define QMI_LOC_MAX_APN_NAME_LENGTH_V02 100
210 
211 /**  Maximum APN profiles supported. */
212 #define QMI_LOC_MAX_APN_PROFILES_V02 6
213 
214 /**  Maximum length of the SUPL certificate. */
215 #define QMI_LOC_MAX_SUPL_CERT_LENGTH_V02 2000
216 
217 /**  Maximum number of motion states used by the Geofence engine.  */
218 #define QMI_LOC_GEOFENCE_MAX_MOTION_STATES_V02 20
219 
220 /**  Maximum length of the network-initiated Geofence ID
221      list.  */
222 #define QMI_LOC_MAX_NI_GEOFENCE_ID_LIST_LENGTH_V02 16
223 
224 /**  Maximum value of WDMA frequency for injection of WCDMA cell
225      information.  */
226 #define QMI_LOC_MAX_WCDMA_FREQ_V02 16383
227 
228 /**  Maximum value of PSC for injection of WCDMA cell information.  */
229 #define QMI_LOC_MAX_WCDMA_PSC_V02 511
230 
231 /**  Maximum value of TDSCDMA frequency for injection of TDSCDMA cell
232      information.  */
233 #define QMI_LOC_MAX_TDSCDMA_FREQ_V02 16383
234 
235 /**  Maximum length of the injected network-initiated message.  */
236 #define QMI_LOC_MAX_INJECTED_NETWORK_INITIATED_MESSAGE_LENGTH_V02 1024
237 
238 /**  Maximum number of entries returned from a batch in each indication.  */
239 #define QMI_LOC_READ_FROM_BATCH_MAX_SIZE_V02 5
240 
241 /**  Maximum number of vehicle sensor samples that can be injected.  */
242 #define QMI_LOC_VEHICLE_SENSOR_DATA_MAX_SAMPLES_V02 65
243 
244 /**  Maximum number of axes that can be provided in each sample.  */
245 #define QMI_LOC_VEHICLE_SENSOR_DATA_MAX_AXES_V02 3
246 
247 /**  Maximum number of measurements from an odometer.  */
248 #define QMI_LOC_VEHICLE_ODOMETRY_MAX_MEASUREMENTS_V02 3
249 #define QMI_LOC_MEAS_STATUS_DONT_USE_BITS_V02 0xFFC0000000000000
250 
251 /**  Maximum number of satellites in a measurement block for a given system.  */
252 #define QMI_LOC_SV_MEAS_LIST_MAX_SIZE_V02 16
253 #define QMI_LOC_SV_POLY_VELOCITY_COEF_SIZE_V02 12
254 #define QMI_LOC_SV_POLY_XYZ_0_TH_ORDER_COEFF_SIZE_V02 3
255 #define QMI_LOC_SV_POLY_XYZ_N_TH_ORDER_COEFF_SIZE_V02 9
256 #define QMI_LOC_SV_POLY_SV_CLKBIAS_COEFF_SIZE_V02 4
257 
258 /**  IBeacon string maximum length.   */
259 #define QMI_LOC_MAX_IBEACON_UUID_STR_LENGTH_V02 32
260 
261 /**  Wi-Fi area ID list length.  */
262 #define QMI_LOC_WIFI_AREA_ID_LIST_LENGTH_V02 20
263 
264 /**  Cell ID list length.   */
265 #define QMI_LOC_CELL_ID_LIST_LENGTH_V02 20
266 
267 /**   IBeacon list length.   */
268 #define QMI_LOC_IBEACON_LIST_LENGTH_V02 20
269 
270 /**  Maximum length that can be injected.   */
271 #define QMI_LOC_MAX_GTP_WWAN_CLIENT_DOWNLOADED_DATA_LEN_V02 512
272 
273 /**  Maximum length of OEM id.  */
274 #define QMI_LOC_MAX_OEM_ID_LEN_V02 256
275 
276 /**  Maximum length of model id.  */
277 #define QMI_LOC_MAX_MODEL_ID_LEN_V02 256
278 
279 /**  Maximum length that can be injected.   */
280 #define QMI_LOC_MAX_GTP_RLI_LEN_V02 256
281 
282 /**  Maximum buffer length of the encrypted data blob for the Secure Get Available Position request. */
283 #define QMI_LOC_SECURE_GET_AVAILABLE_POS_REQUEST_ENCRYPTED_MAX_V02 256
284 
285 /**  Horizontal Uncertainty Circular
286  Altitude With Respect to Ellipsoid
287  Vertical Uncertainty
288  Horizontal Elliptical Uncertainty (Semi-Minor Axis)
289  Horizontal Elliptical Uncertainty (Semi-Major Axis)
290  Elliptical Horizontal Uncertainty Azimuth
291  Horizontal Confidence
292  Horizontal Elliptical Uncertainty Confidence
293  Horizontal Reliability
294  Horizontal Speed
295  Horizontal Speed Uncertainty
296  Altitude With Respect to Sea Level
297  Vertical Confidence
298  Vertical Reliability
299  Vertical Speed
300  Vertical Speed Uncertainty
301  Heading
302  Heading Uncertainty
303  Magnetic Deviation
304  Technology Used
305  Position Dilution of Precision
306  Horizontal Dilution of Precision
307  Vertical Dilution of Precision
308  GPS Week
309  GPS Time of Week MS
310  Time Source
311  Sensor Data Usage MASK
312  Position Data Aided by Sensor
313  SVs Used to Calculate the Fix */
314 #define QMI_LOC_SECURE_GET_AVAILABLE_POSITION_IND_ENCRYPTED_MAX_V02 1024
315 
316 /**  Maximum number of APs that can be injected in a TLV.  */
317 #define QMI_LOC_APCACHE_DATA_MAX_SAMPLES_V02 80
318 
319 /**  Maximum part length that can be injected. The client should
320      also look at the maxPartSize field in the predicted orbits injection
321      request indication and pick the minimum of the two.  */
322 #define QMI_LOC_MAX_XTRA_PART_LEN_V02 1024
323 /**
324     @}
325   */
326 
327 /** @addtogroup loc_qmi_messages
328     @{
329   */
330 /** Response Message; Generic response definition. This message is used to tell
331                     clients whether their message was accepted for further
332                     processing or rejected. */
333 typedef struct {
334 
335   /* Mandatory */
336   /*  Result Code */
337   qmi_response_type_v01 resp;
338 }qmiLocGenRespMsgT_v02;  /* Message */
339 /**
340     @}
341   */
342 
343 /** @addtogroup loc_qmi_messages
344     @{
345   */
346 /** Request Message; Informs the service of the minor revision of the interface
347                     definition that the control point implements. */
348 typedef struct {
349 
350   /* Mandatory */
351   /*  Revision */
352   uint32_t revision;
353   /**<   Revision that the control point is using. */
354 }qmiLocInformClientRevisionReqMsgT_v02;  /* Message */
355 /**
356     @}
357   */
358 
359 typedef uint64_t qmiLocEventRegMaskT_v02;
360 #define QMI_LOC_EVENT_MASK_POSITION_REPORT_V02 ((qmiLocEventRegMaskT_v02)0x00000001ull) /**<  The control point must enable this mask to receive position report
361        event indications.  */
362 #define QMI_LOC_EVENT_MASK_GNSS_SV_INFO_V02 ((qmiLocEventRegMaskT_v02)0x00000002ull) /**<  The control point must enable this mask to receive satellite report
363        event indications. These reports are sent at a 1 Hz rate.  */
364 #define QMI_LOC_EVENT_MASK_NMEA_V02 ((qmiLocEventRegMaskT_v02)0x00000004ull) /**<  The control point must enable this mask to receive NMEA reports for
365        position and satellites in view. The report is at a 1 Hz rate.  */
366 #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
367        event indications.  */
368 #define QMI_LOC_EVENT_MASK_INJECT_TIME_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00000010ull) /**<  The control point must enable this mask to receive time injection request
369        event indications.  */
370 #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
371        event indications.  */
372 #define QMI_LOC_EVENT_MASK_INJECT_POSITION_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00000040ull) /**<  The control point must enable this mask to receive position injection request
373        event indications.  */
374 #define QMI_LOC_EVENT_MASK_ENGINE_STATE_V02 ((qmiLocEventRegMaskT_v02)0x00000080ull) /**<  The control point must enable this mask to receive engine state report
375        event indications.  */
376 #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
377        event indications.  */
378 #define QMI_LOC_EVENT_MASK_WIFI_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00000200ull) /**<  The control point must enable this mask to receive Wi-Fi position request
379        event indications.  */
380 #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
381        location engine indicating its readiness to accept data from the
382        sensors (accelerometer, gyroscope, etc.).  */
383 #define QMI_LOC_EVENT_MASK_TIME_SYNC_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00000800ull) /**<  The control point must enable this mask to receive time sync requests
384        from the GPS engine. Time sync enables the GPS engine to synchronize
385        its clock with the sensor processor's clock.  */
386 #define QMI_LOC_EVENT_MASK_SET_SPI_STREAMING_REPORT_V02 ((qmiLocEventRegMaskT_v02)0x00001000ull) /**<  The control point must enable this mask to receive Stationary Position
387        Indicator (SPI) streaming report indications.  */
388 #define QMI_LOC_EVENT_MASK_LOCATION_SERVER_CONNECTION_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00002000ull) /**<  The control point must enable this mask to receive location server
389        requests. These requests are generated when the service wishes to
390        establish a connection with a location server. */
391 #define QMI_LOC_EVENT_MASK_NI_GEOFENCE_NOTIFICATION_V02 ((qmiLocEventRegMaskT_v02)0x00004000ull) /**<  The control point must enable this mask to receive notifications
392        related to network-initiated Geofences. These events notify the client
393        when a network-initiated Geofence is added, deleted, or edited.  */
394 #define QMI_LOC_EVENT_MASK_GEOFENCE_GEN_ALERT_V02 ((qmiLocEventRegMaskT_v02)0x00008000ull) /**<  The control point must enable this mask to receive Geofence alerts.
395        These alerts are generated to inform the client of the changes that may
396        affect a Geofence, e.g., if GPS is turned off or if the network is
397        unavailable.  */
398 #define QMI_LOC_EVENT_MASK_GEOFENCE_BREACH_NOTIFICATION_V02 ((qmiLocEventRegMaskT_v02)0x00010000ull) /**<  The control point must enable this mask to receive notifications when
399        a Geofence is breached. These events are generated when a UE enters
400        or leaves the perimeter of a Geofence. This breach report is for a single
401        Geofence . */
402 #define QMI_LOC_EVENT_MASK_PEDOMETER_CONTROL_V02 ((qmiLocEventRegMaskT_v02)0x00020000ull) /**<  The control point must enable this mask to register for pedometer
403        control requests from the location engine. The location engine sends
404        this event to control the injection of pedometer reports.  */
405 #define QMI_LOC_EVENT_MASK_MOTION_DATA_CONTROL_V02 ((qmiLocEventRegMaskT_v02)0x00040000ull) /**<  The control point must enable this mask to register for motion data
406        control requests from the location engine. The location engine sends
407        this event to control the injection of motion data.  */
408 #define QMI_LOC_EVENT_MASK_BATCH_FULL_NOTIFICATION_V02 ((qmiLocEventRegMaskT_v02)0x00080000ull) /**<  The control point must enable this mask to receive notification when
409        a batch is full. The location engine sends this event to notify of Batch Full
410        for ongoing batching session.  */
411 #define QMI_LOC_EVENT_MASK_LIVE_BATCHED_POSITION_REPORT_V02 ((qmiLocEventRegMaskT_v02)0x00100000ull) /**<  The control point must enable this mask to receive position report
412        indications along with an ongoing batching session. The location engine sends
413        this event to notify the batched position report while a batching session
414        is ongoing.  */
415 #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
416        event indications.  */
417 #define QMI_LOC_EVENT_MASK_GEOFENCE_BATCH_BREACH_NOTIFICATION_V02 ((qmiLocEventRegMaskT_v02)0x00400000ull) /**<  The control point must enable this mask to receive notifications when
418        a Geofence is breached. These events are generated when a UE enters
419        or leaves the perimeter of a Geofence. This breach notification is for
420        multiple Geofences. Breaches from multiple Geofences are all batched and
421        sent in the same notification .    */
422 #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
423        location engine indicating its readiness to accept vehicle data (vehicle
424        accelerometer, vehicle angular rate, vehicle odometry, etc.). */
425 #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
426        measurement report events (system clock, SV time, Doppler, etc.). Reports are
427        generated only for the GNSS satellite constellations that are enabled using
428        QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG.   */
429 #define QMI_LOC_EVENT_MASK_GNSS_SV_POLYNOMIAL_REPORT_V02 ((qmiLocEventRegMaskT_v02)0x02000000ull) /**<  The control point must enable this mask to receive satellite position
430         reports as polynomials. Reports are generated only for the GNSS satellite
431         constellations that are enabled using QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG.  */
432 #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
433   and exited. The proximity of a Geofence may be due to different contexts. These contexts are identified
434   using the context ID in this indication. The context of a Geofence may contain Wi-Fi area ID lists, IBeacon lists,
435   Cell-ID list, and so forth.    */
436 #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)
437         session begin request event indications.  */
438 #define QMI_LOC_EVENT_MASK_GDT_UPLOAD_END_REQ_V02 ((qmiLocEventRegMaskT_v02)0x10000000ull) /**<  The control point must enable this mask to receive GDT
439         session end request event indications.  */
440 #define QMI_LOC_EVENT_MASK_GEOFENCE_BATCH_DWELL_NOTIFICATION_V02 ((qmiLocEventRegMaskT_v02)0x20000000ull) /**<  The control point must enable this mask to receive notifications when
441        a Geofence is dwelled. These events are generated when a UE enters
442        or leaves the perimeter of a Geofence and dwells inside or outside for a specified time.
443        This dwell notification is for multiple Geofences. Dwells from multiple Geofences are all batched and
444        sent in the same notification.  */
445 #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
446        the service. These events are generated when there is a need for time zone information in the
447        service.  */
448 #define QMI_LOC_EVENT_MASK_BATCHING_STATUS_V02 ((qmiLocEventRegMaskT_v02)0x80000000ull) /**<  The control point must enable this mask to receive asynchronous events related
449        to batching.  */
450 /** @addtogroup loc_qmi_messages
451     @{
452   */
453 /** Request Message; Used by the control point to register for events from the
454                     location subsystem. */
455 typedef struct {
456 
457   /* Mandatory */
458   /*  Event Registration Mask */
459   qmiLocEventRegMaskT_v02 eventRegMask;
460   /**<   Specifies the events that the control point is interested in receiving.
461  Valid bitmasks:
462       - QMI_LOC_EVENT_MASK_POSITION_REPORT (0x00000001) --  The control point must enable this mask to receive position report
463        event indications.
464       - QMI_LOC_EVENT_MASK_GNSS_SV_INFO (0x00000002) --  The control point must enable this mask to receive satellite report
465        event indications. These reports are sent at a 1 Hz rate.
466       - QMI_LOC_EVENT_MASK_NMEA (0x00000004) --  The control point must enable this mask to receive NMEA reports for
467        position and satellites in view. The report is at a 1 Hz rate.
468       - QMI_LOC_EVENT_MASK_NI_NOTIFY_VERIFY_REQ (0x00000008) --  The control point must enable this mask to receive NI Notify/Verify request
469        event indications.
470       - QMI_LOC_EVENT_MASK_INJECT_TIME_REQ (0x00000010) --  The control point must enable this mask to receive time injection request
471        event indications.
472       - QMI_LOC_EVENT_MASK_INJECT_PREDICTED_ORBITS_REQ (0x00000020) --  The control point must enable this mask to receive predicted orbits request
473        event indications.
474       - QMI_LOC_EVENT_MASK_INJECT_POSITION_REQ (0x00000040) --  The control point must enable this mask to receive position injection request
475        event indications.
476       - QMI_LOC_EVENT_MASK_ENGINE_STATE (0x00000080) --  The control point must enable this mask to receive engine state report
477        event indications.
478       - QMI_LOC_EVENT_MASK_FIX_SESSION_STATE (0x00000100) --  The control point must enable this mask to receive fix session status report
479        event indications.
480       - QMI_LOC_EVENT_MASK_WIFI_REQ (0x00000200) --  The control point must enable this mask to receive Wi-Fi position request
481        event indications.
482       - QMI_LOC_EVENT_MASK_SENSOR_STREAMING_READY_STATUS (0x00000400) --  The control point must enable this mask to receive notifications from the
483        location engine indicating its readiness to accept data from the
484        sensors (accelerometer, gyroscope, etc.).
485       - QMI_LOC_EVENT_MASK_TIME_SYNC_REQ (0x00000800) --  The control point must enable this mask to receive time sync requests
486        from the GPS engine. Time sync enables the GPS engine to synchronize
487        its clock with the sensor processor's clock.
488       - QMI_LOC_EVENT_MASK_SET_SPI_STREAMING_REPORT (0x00001000) --  The control point must enable this mask to receive Stationary Position
489        Indicator (SPI) streaming report indications.
490       - QMI_LOC_EVENT_MASK_LOCATION_SERVER_CONNECTION_REQ (0x00002000) --  The control point must enable this mask to receive location server
491        requests. These requests are generated when the service wishes to
492        establish a connection with a location server.
493       - QMI_LOC_EVENT_MASK_NI_GEOFENCE_NOTIFICATION (0x00004000) --  The control point must enable this mask to receive notifications
494        related to network-initiated Geofences. These events notify the client
495        when a network-initiated Geofence is added, deleted, or edited.
496       - QMI_LOC_EVENT_MASK_GEOFENCE_GEN_ALERT (0x00008000) --  The control point must enable this mask to receive Geofence alerts.
497        These alerts are generated to inform the client of the changes that may
498        affect a Geofence, e.g., if GPS is turned off or if the network is
499        unavailable.
500       - QMI_LOC_EVENT_MASK_GEOFENCE_BREACH_NOTIFICATION (0x00010000) --  The control point must enable this mask to receive notifications when
501        a Geofence is breached. These events are generated when a UE enters
502        or leaves the perimeter of a Geofence. This breach report is for a single
503        Geofence .
504       - QMI_LOC_EVENT_MASK_PEDOMETER_CONTROL (0x00020000) --  The control point must enable this mask to register for pedometer
505        control requests from the location engine. The location engine sends
506        this event to control the injection of pedometer reports.
507       - QMI_LOC_EVENT_MASK_MOTION_DATA_CONTROL (0x00040000) --  The control point must enable this mask to register for motion data
508        control requests from the location engine. The location engine sends
509        this event to control the injection of motion data.
510       - QMI_LOC_EVENT_MASK_BATCH_FULL_NOTIFICATION (0x00080000) --  The control point must enable this mask to receive notification when
511        a batch is full. The location engine sends this event to notify of Batch Full
512        for ongoing batching session.
513       - QMI_LOC_EVENT_MASK_LIVE_BATCHED_POSITION_REPORT (0x00100000) --  The control point must enable this mask to receive position report
514        indications along with an ongoing batching session. The location engine sends
515        this event to notify the batched position report while a batching session
516        is ongoing.
517       - 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
518        event indications.
519       - QMI_LOC_EVENT_MASK_GEOFENCE_BATCH_BREACH_NOTIFICATION (0x00400000) --  The control point must enable this mask to receive notifications when
520        a Geofence is breached. These events are generated when a UE enters
521        or leaves the perimeter of a Geofence. This breach notification is for
522        multiple Geofences. Breaches from multiple Geofences are all batched and
523        sent in the same notification .
524       - QMI_LOC_EVENT_MASK_VEHICLE_DATA_READY_STATUS (0x00800000) --  The control point must enable this mask to receive notifications from the
525        location engine indicating its readiness to accept vehicle data (vehicle
526        accelerometer, vehicle angular rate, vehicle odometry, etc.).
527       - QMI_LOC_EVENT_MASK_GNSS_MEASUREMENT_REPORT (0x01000000) --  The control point must enable this mask to receive system clock and satellite
528        measurement report events (system clock, SV time, Doppler, etc.). Reports are
529        generated only for the GNSS satellite constellations that are enabled using
530        QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG.
531       - QMI_LOC_EVENT_MASK_GNSS_SV_POLYNOMIAL_REPORT (0x02000000) --  The control point must enable this mask to receive satellite position
532         reports as polynomials. Reports are generated only for the GNSS satellite
533         constellations that are enabled using QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG.
534       - QMI_LOC_EVENT_MASK_GEOFENCE_PROXIMITY_NOTIFICATION (0x04000000) --  The control point must enable this mask to receive notifications when a Geofence proximity is entered
535   and exited. The proximity of a Geofence may be due to different contexts. These contexts are identified
536   using the context ID in this indication. The context of a Geofence may contain Wi-Fi area ID lists, IBeacon lists,
537   Cell-ID list, and so forth.
538       - QMI_LOC_EVENT_MASK_GDT_UPLOAD_BEGIN_REQ (0x08000000) --  The control point must enable this mask to receive Generic Data Transport (GDT)
539         session begin request event indications.
540       - QMI_LOC_EVENT_MASK_GDT_UPLOAD_END_REQ (0x10000000) --  The control point must enable this mask to receive GDT
541         session end request event indications.
542       - QMI_LOC_EVENT_MASK_GEOFENCE_BATCH_DWELL_NOTIFICATION (0x20000000) --  The control point must enable this mask to receive notifications when
543        a Geofence is dwelled. These events are generated when a UE enters
544        or leaves the perimeter of a Geofence and dwells inside or outside for a specified time.
545        This dwell notification is for multiple Geofences. Dwells from multiple Geofences are all batched and
546        sent in the same notification.
547       - QMI_LOC_EVENT_MASK_GET_TIME_ZONE_REQ (0x40000000) --  The control point must enable this mask to receive requests for time zone information from
548        the service. These events are generated when there is a need for time zone information in the
549        service.
550       - QMI_LOC_EVENT_MASK_BATCHING_STATUS (0x80000000) --  The control point must enable this mask to receive asynchronous events related
551        to batching.
552 
553  Multiple events can be registered by ORing the individual masks and
554  sending them in this TLV. All unused bits in this mask must be set to 0.
555  */
556 }qmiLocRegEventsReqMsgT_v02;  /* Message */
557 /**
558     @}
559   */
560 
561 /** @addtogroup loc_qmi_enums
562     @{
563   */
564 typedef enum {
565   QMILOCFIXRECURRENCEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
566   eQMI_LOC_RECURRENCE_PERIODIC_V02 = 1, /**<  Request periodic position fixes  */
567   eQMI_LOC_RECURRENCE_SINGLE_V02 = 2, /**<  Request a single position fix  */
568   QMILOCFIXRECURRENCEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
569 }qmiLocFixRecurrenceEnumT_v02;
570 /**
571     @}
572   */
573 
574 /** @addtogroup loc_qmi_enums
575     @{
576   */
577 typedef enum {
578   QMILOCACCURACYLEVELENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
579   eQMI_LOC_ACCURACY_LOW_V02 = 1, /**<  Low accuracy  */
580   eQMI_LOC_ACCURACY_MED_V02 = 2, /**<  Medium accuracy  */
581   eQMI_LOC_ACCURACY_HIGH_V02 = 3, /**<  High accuracy  */
582   QMILOCACCURACYLEVELENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
583 }qmiLocAccuracyLevelEnumT_v02;
584 /**
585     @}
586   */
587 
588 /** @addtogroup loc_qmi_enums
589     @{
590   */
591 typedef enum {
592   QMILOCINTERMEDIATEREPORTSTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
593   eQMI_LOC_INTERMEDIATE_REPORTS_ON_V02 = 1, /**<  Intermediate reports are turned on  */
594   eQMI_LOC_INTERMEDIATE_REPORTS_OFF_V02 = 2, /**<  Intermediate reports are turned off  */
595   QMILOCINTERMEDIATEREPORTSTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
596 }qmiLocIntermediateReportStateEnumT_v02;
597 /**
598     @}
599   */
600 
601 /** @addtogroup loc_qmi_enums
602     @{
603   */
604 typedef enum {
605   QMILOCCONFIGINCLUDEALTITUDEASSUMEDINGNSSSVINFOENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
606   eQMI_LOC_ALTITUDE_ASSUMED_IN_GNSS_SV_INFO_ENABLED_V02 = 1, /**<  Enable Altitude Assumed information in GNSS SV Info Event.  */
607   eQMI_LOC_ALTITUDE_ASSUMED_IN_GNSS_SV_INFO_DISABLED_V02 = 2, /**<  Disable Altitude Assumed information in GNSS SV Info Event.  */
608   QMILOCCONFIGINCLUDEALTITUDEASSUMEDINGNSSSVINFOENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
609 }qmiLocConfigIncludeAltitudeAssumedInGnssSvInfoEnumT_v02;
610 /**
611     @}
612   */
613 
614 /** @addtogroup loc_qmi_aggregates
615     @{
616   */
617 typedef struct {
618 
619   char applicationProvider[QMI_LOC_MAX_APP_ID_PROVIDER_LENGTH_V02 + 1];
620   /**<   Application provider. */
621 
622   char applicationName[QMI_LOC_MAX_APP_ID_NAME_LENGTH_V02 + 1];
623   /**<   Application name. */
624 
625   uint8_t applicationVersion_valid;
626   /**<   Specifies whether the application version string contains
627         a valid value: \begin{itemize1}
628        \item    0x00 (FALSE) -- Application version string is invalid
629        \item    0x01 (TRUE) -- Application version string is valid
630        \vspace{-0.18in} \end{itemize1} */
631 
632   char applicationVersion[QMI_LOC_MAX_APP_ID_VERSION_LENGTH_V02 + 1];
633   /**<   Application version. */
634 }qmiLocApplicationIdStructT_v02;  /* Type */
635 /**
636     @}
637   */
638 
639 /** @addtogroup loc_qmi_messages
640     @{
641   */
642 /** Request Message; Used by the control point to initiate a GPS session. */
643 typedef struct {
644 
645   /* Mandatory */
646   /*  Session ID */
647   uint8_t sessionId;
648   /**<   ID of the session as identified by the control point. The session ID
649        is reported back in the position reports. The control point must
650        specify the same session ID in the QMI_LOC_STOP_REQ message. \n
651        - Range: 0 to 255
652   */
653 
654   /* Optional */
655   /*  Recurrence Type */
656   uint8_t fixRecurrence_valid;  /**< Must be set to true if fixRecurrence is being passed */
657   qmiLocFixRecurrenceEnumT_v02 fixRecurrence;
658   /**<   Specifies the type of session in which the control point is interested.
659  If this TLV is not specified, recurrence defaults to SINGLE.
660 
661  Valid values: \n
662       - eQMI_LOC_RECURRENCE_PERIODIC (1) --  Request periodic position fixes
663       - eQMI_LOC_RECURRENCE_SINGLE (2) --  Request a single position fix
664  */
665 
666   /* Optional */
667   /*  Horizontal Accuracy */
668   uint8_t horizontalAccuracyLevel_valid;  /**< Must be set to true if horizontalAccuracyLevel is being passed */
669   qmiLocAccuracyLevelEnumT_v02 horizontalAccuracyLevel;
670   /**<   Specifies the horizontal accuracy level required by the control point.
671  If not specified, accuracy defaults to LOW.
672 
673  Valid values: \n
674       - eQMI_LOC_ACCURACY_LOW (1) --  Low accuracy
675       - eQMI_LOC_ACCURACY_MED (2) --  Medium accuracy
676       - eQMI_LOC_ACCURACY_HIGH (3) --  High accuracy
677  */
678 
679   /* Optional */
680   /*  Enable/Disable Intermediate Reports */
681   uint8_t intermediateReportState_valid;  /**< Must be set to true if intermediateReportState is being passed */
682   qmiLocIntermediateReportStateEnumT_v02 intermediateReportState;
683   /**<   Specifies if the control point is interested in receiving intermediate
684  reports. The control point must explicitly set this field to OFF if it
685  does not wish to receive intermediate position reports. Intermediate
686  position reports are generated at 1 Hz and are ON by default. If
687  intermediate reports are turned ON, the client receives position reports
688  even if the accuracy criteria are not met. The status in such a position
689  report is set to IN_PROGRESS in order for the control point to identify
690  intermediate reports.
691 
692  Valid values: \n
693       - eQMI_LOC_INTERMEDIATE_REPORTS_ON (1) --  Intermediate reports are turned on
694       - eQMI_LOC_INTERMEDIATE_REPORTS_OFF (2) --  Intermediate reports are turned off
695  */
696 
697   /* Optional */
698   /*  Minimum Interval Between Final Position Reports */
699   uint8_t minInterval_valid;  /**< Must be set to true if minInterval is being passed */
700   uint32_t minInterval;
701   /**<   Minimum time interval, specified by the control point, that must elapse between
702        final position reports. \n
703        - Units: Milliseconds \n
704        - Default: 1000 ms
705   */
706 
707   /* Optional */
708   /*  ID of the Application that Sent this Request */
709   uint8_t applicationId_valid;  /**< Must be set to true if applicationId is being passed */
710   qmiLocApplicationIdStructT_v02 applicationId;
711   /**<   \n Application provider, name, and version.*/
712 
713   /* Optional */
714   /*  Configuration for Altitude Assumed Info in GNSS SV Info Event */
715   uint8_t configAltitudeAssumed_valid;  /**< Must be set to true if configAltitudeAssumed is being passed */
716   qmiLocConfigIncludeAltitudeAssumedInGnssSvInfoEnumT_v02 configAltitudeAssumed;
717   /**<   Specifies the configuration to include Altitude Assumed information in the GNSS SV Info Event.
718  When enabled, an additional GNSS SV Info event indication is sent to the control
719  point that also includes the altitude assumed information.
720 
721  If not specified, the configuration defaults to ENABLED.
722 
723  Valid values: \n
724       - eQMI_LOC_ALTITUDE_ASSUMED_IN_GNSS_SV_INFO_ENABLED (1) --  Enable Altitude Assumed information in GNSS SV Info Event.
725       - eQMI_LOC_ALTITUDE_ASSUMED_IN_GNSS_SV_INFO_DISABLED (2) --  Disable Altitude Assumed information in GNSS SV Info Event.
726  */
727 
728   /* Optional */
729   /*  Minimum Interval Between Intermediate Position Reports */
730   uint8_t minIntermediatePositionReportInterval_valid;  /**< Must be set to true if minIntermediatePositionReportInterval is being passed */
731   uint32_t minIntermediatePositionReportInterval;
732   /**<   Minimum time interval for intermediate position reports, specified by the control point,
733        that, between the position reports elapsed time, must be longer than the interval time.
734        If this optional value is not set or set to the default value (0), the intermediate position
735        will be reported when it is ready. \n
736        - Units: Milliseconds \n
737        - Default: 0 ms
738   */
739 
740   /* Optional */
741   /*  Maximum Wait Time to Get a Position Report */
742   uint8_t positionReportTimeout_valid;  /**< Must be set to true if positionReportTimeout is being passed */
743   uint32_t positionReportTimeout;
744   /**<   Maximum time to work on each fix, specified by the control point.
745        The GPS engine returns QMI_ERR_INTERNAL if a position cannot be obtained
746        within the positionReportTimeout value. \n
747        - Units: Milliseconds \n
748        - Default: 255*1000 ms \n
749        - Range: 1000 - 255*1000 ms
750   */
751 
752   /* Optional */
753   /*  Share position report with other clients */
754   uint8_t sharePosition_valid;  /**< Must be set to true if sharePosition is being passed */
755   uint8_t sharePosition;
756   /**<   Allow to share the position report with the other QMI_LOC clients \n
757          \item    0x00(FALSE) Do not share the position report
758          \item    0x01(TRUE)  Share the position report
759     If this optional TLV is not set, the GPS engine allows the position sharing.
760         \vspace{-0.18in} \end{itemize1}
761   */
762 }qmiLocStartReqMsgT_v02;  /* Message */
763 /**
764     @}
765   */
766 
767 /** @addtogroup loc_qmi_messages
768     @{
769   */
770 /** Request Message; Used by the control point to stop a GPS session. */
771 typedef struct {
772 
773   /* Mandatory */
774   /*   Session ID */
775   uint8_t sessionId;
776   /**<   ID of the session that was specified in the Start request
777        (QMI_LOC_START_REQ).\n
778        - Range: 0 to 255 */
779 }qmiLocStopReqMsgT_v02;  /* Message */
780 /**
781     @}
782   */
783 
784 typedef uint32_t qmiLocPosTechMaskT_v02;
785 #define QMI_LOC_POS_TECH_MASK_SATELLITE_V02 ((qmiLocPosTechMaskT_v02)0x00000001) /**<  Satellites were used to generate the fix  */
786 #define QMI_LOC_POS_TECH_MASK_CELLID_V02 ((qmiLocPosTechMaskT_v02)0x00000002) /**<  Cell towers were used to generate the fix  */
787 #define QMI_LOC_POS_TECH_MASK_WIFI_V02 ((qmiLocPosTechMaskT_v02)0x00000004) /**<  Wi-Fi access points were used to generate the fix  */
788 #define QMI_LOC_POS_TECH_MASK_SENSORS_V02 ((qmiLocPosTechMaskT_v02)0x00000008) /**<  Sensors were used to generate the fix  */
789 #define QMI_LOC_POS_TECH_MASK_REFERENCE_LOCATION_V02 ((qmiLocPosTechMaskT_v02)0x00000010) /**<  Reference Location was used to generate the fix  */
790 #define QMI_LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION_V02 ((qmiLocPosTechMaskT_v02)0x00000020) /**<  Coarse position injected into the location engine was used to
791         generate the fix  */
792 #define QMI_LOC_POS_TECH_MASK_AFLT_V02 ((qmiLocPosTechMaskT_v02)0x00000040) /**<  AFLT was used to generate the fix  */
793 #define QMI_LOC_POS_TECH_MASK_HYBRID_V02 ((qmiLocPosTechMaskT_v02)0x00000080) /**<  GNSS and network-provided measurements were used to
794         generate the fix  */
795 /** @addtogroup loc_qmi_enums
796     @{
797   */
798 typedef enum {
799   QMILOCSESSIONSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
800   eQMI_LOC_SESS_STATUS_SUCCESS_V02 = 0, /**<  Session was successful  */
801   eQMI_LOC_SESS_STATUS_IN_PROGRESS_V02 = 1, /**<  Session is still in progress; further position reports will be generated
802        until either the fix criteria specified by the client are met or the
803        client response timeout occurs  */
804   eQMI_LOC_SESS_STATUS_GENERAL_FAILURE_V02 = 2, /**<  Session failed  */
805   eQMI_LOC_SESS_STATUS_TIMEOUT_V02 = 3, /**<  Fix request failed because the session timed out  */
806   eQMI_LOC_SESS_STATUS_USER_END_V02 = 4, /**<  Fix request failed because the session was ended by the user  */
807   eQMI_LOC_SESS_STATUS_BAD_PARAMETER_V02 = 5, /**<  Fix request failed due to bad parameters in the request  */
808   eQMI_LOC_SESS_STATUS_PHONE_OFFLINE_V02 = 6, /**<  Fix request failed because the phone is offline  */
809   eQMI_LOC_SESS_STATUS_ENGINE_LOCKED_V02 = 7, /**<  Fix request failed because the engine is locked  */
810   QMILOCSESSIONSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
811 }qmiLocSessionStatusEnumT_v02;
812 /**
813     @}
814   */
815 
816 /** @addtogroup loc_qmi_aggregates
817     @{
818   */
819 typedef struct {
820 
821   uint16_t gpsWeek;
822   /**<   Current GPS week as calculated from midnight, Jan. 6, 1980. \n
823        - Units: Weeks */
824 
825   uint32_t gpsTimeOfWeekMs;
826   /**<   Amount of time into the current GPS week. \n
827        - Units: Milliseconds */
828 }qmiLocGPSTimeStructT_v02;  /* Type */
829 /**
830     @}
831   */
832 
833 /** @addtogroup loc_qmi_aggregates
834     @{
835   */
836 typedef struct {
837 
838   float PDOP;
839   /**<   Position dilution of precision.
840        \begin{itemize1}
841        \item    Range: 1 (highest accuracy) to 50 (lowest accuracy)
842        \item    PDOP = square root of (HDOP^2 + VDOP^2)
843        \vspace{-0.18in} \end{itemize1} */
844 
845   float HDOP;
846   /**<   Horizontal dilution of precision.
847        \begin{itemize1}
848        \item    Range: 1 (highest accuracy) to 50 (lowest accuracy)
849        \vspace{-0.18in} \end{itemize1} */
850 
851   float VDOP;
852   /**<   Vertical dilution of precision.
853        \begin{itemize1}
854        \item    Range: 1 (highest accuracy) to 50 (lowest accuracy)
855        \vspace{-0.18in} \end{itemize1} */
856 }qmiLocDOPStructT_v02;  /* Type */
857 /**
858     @}
859   */
860 
861 typedef uint32_t qmiLocSensorUsageMaskT_v02;
862 #define QMI_LOC_SENSOR_MASK_USED_ACCEL_V02 ((qmiLocSensorUsageMaskT_v02)0x00000001) /**<  Bitmask to specify whether an accelerometer was used.  */
863 #define QMI_LOC_SENSOR_MASK_USED_GYRO_V02 ((qmiLocSensorUsageMaskT_v02)0x00000002) /**<  Bitmask to specify whether a gyroscope was used.  */
864 typedef uint32_t qmiLocSensorAidedMaskT_v02;
865 #define QMI_LOC_SENSOR_AIDED_MASK_HEADING_V02 ((qmiLocSensorAidedMaskT_v02)0x00000001) /**<  Bitmask to specify whether a sensor was used to calculate heading.  */
866 #define QMI_LOC_SENSOR_AIDED_MASK_SPEED_V02 ((qmiLocSensorAidedMaskT_v02)0x00000002) /**<  Bitmask to specify whether a sensor was used to calculate speed.  */
867 #define QMI_LOC_SENSOR_AIDED_MASK_POSITION_V02 ((qmiLocSensorAidedMaskT_v02)0x00000004) /**<  Bitmask to specify whether a sensor was used to calculate position.  */
868 #define QMI_LOC_SENSOR_AIDED_MASK_VELOCITY_V02 ((qmiLocSensorAidedMaskT_v02)0x00000008) /**<  Bitmask to specify whether a sensor was used to calculate velocity.  */
869 /** @addtogroup loc_qmi_aggregates
870     @{
871   */
872 typedef struct {
873 
874   qmiLocSensorUsageMaskT_v02 usageMask;
875   /**<   Specifies which sensors were used in calculating the position in the
876        position report.
877 
878        Valid bitmasks: \begin{itemize1}
879        \item    0x00000001 -- SENSOR_USED_ ACCEL
880        \item    0x00000002 -- SENSOR_USED_ GYRO
881        \vspace{-0.18in} \end{itemize1} */
882 
883   qmiLocSensorAidedMaskT_v02 aidingIndicatorMask;
884   /**<   Specifies which results were aided by sensors.
885 
886        Valid bitmasks: \n
887          - 0x00000001 -- AIDED_HEADING \n
888          - 0x00000002 -- AIDED_SPEED \n
889          - 0x00000004 -- AIDED_POSITION \n
890          - 0x00000008 -- AIDED_VELOCITY */
891 }qmiLocSensorUsageIndicatorStructT_v02;  /* Type */
892 /**
893     @}
894   */
895 
896 /** @addtogroup loc_qmi_enums
897     @{
898   */
899 typedef enum {
900   QMILOCTIMESOURCEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
901   eQMI_LOC_TIME_SRC_INVALID_V02 = 0, /**<  Invalid time.  */
902   eQMI_LOC_TIME_SRC_NETWORK_TIME_TRANSFER_V02 = 1, /**<  Time is set by the 1X system  */
903   eQMI_LOC_TIME_SRC_NETWORK_TIME_TAGGING_V02 = 2, /**<  Time is set by WCDMA/GSM time tagging (that is,
904        associating network time with GPS time)  */
905   eQMI_LOC_TIME_SRC_EXTERNAL_INPUT_V02 = 3, /**<  Time is set by an external injection  */
906   eQMI_LOC_TIME_SRC_TOW_DECODE_V02 = 4, /**<  Time is set after decoding over-the-air GPS navigation data
907        from one GPS satellite  */
908   eQMI_LOC_TIME_SRC_TOW_CONFIRMED_V02 = 5, /**<  Time is set after decoding over-the-air GPS navigation data
909        from multiple satellites  */
910   eQMI_LOC_TIME_SRC_TOW_AND_WEEK_CONFIRMED_V02 = 6, /**<  Both time of the week and the GPS week number are known  */
911   eQMI_LOC_TIME_SRC_NAV_SOLUTION_V02 = 7, /**<  Time is set by the position engine after the fix is obtained  */
912   eQMI_LOC_TIME_SRC_SOLVE_FOR_TIME_V02 = 8, /**<  Time is set by the position engine after performing SFT;
913        this is done when the clock time uncertainty is large  */
914   eQMI_LOC_TIME_SRC_GLO_TOW_DECODE_V02 = 9, /**<  Time is set after decoding GLO satellites  */
915   eQMI_LOC_TIME_SRC_TIME_TRANSFORM_V02 = 10, /**<  Time is set after transforming the GPS to GLO time  */
916   eQMI_LOC_TIME_SRC_WCDMA_SLEEP_TIME_TAGGING_V02 = 11, /**<  Time is set by the sleep time tag provided by the WCDMA network  */
917   eQMI_LOC_TIME_SRC_GSM_SLEEP_TIME_TAGGING_V02 = 12, /**<  Time is set by the sleep time tag provided by the GSM network  */
918   eQMI_LOC_TIME_SRC_UNKNOWN_V02 = 13, /**<  Source of the time is unknown  */
919   eQMI_LOC_TIME_SRC_SYSTEM_TIMETICK_V02 = 14, /**<  Time is derived from the system clock (better known as the slow clock);
920        GNSS time is maintained irrespective of the GNSS receiver state  */
921   eQMI_LOC_TIME_SRC_QZSS_TOW_DECODE_V02 = 15, /**<  Time is set after decoding QZSS satellites  */
922   eQMI_LOC_TIME_SRC_BDS_TOW_DECODE_V02 = 16, /**<  Time is set after decoding BDS satellites  */
923   eQMI_LOC_TIME_SRC_GAL_TOW_DECODE_V02 = 17, /**<  Time is set after decoding GAL satellites  */
924   QMILOCTIMESOURCEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
925 }qmiLocTimeSourceEnumT_v02;
926 /**
927     @}
928   */
929 
930 /** @addtogroup loc_qmi_enums
931     @{
932   */
933 typedef enum {
934   QMILOCRELIABILITYENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
935   eQMI_LOC_RELIABILITY_NOT_SET_V02 = 0, /**<  Location reliability is not set  */
936   eQMI_LOC_RELIABILITY_VERY_LOW_V02 = 1, /**<  Location reliability is very low; use it at your own risk  */
937   eQMI_LOC_RELIABILITY_LOW_V02 = 2, /**<  Location reliability is low; little or no cross-checking is possible  */
938   eQMI_LOC_RELIABILITY_MEDIUM_V02 = 3, /**<  Location reliability is medium; limited cross-check passed   */
939   eQMI_LOC_RELIABILITY_HIGH_V02 = 4, /**<  Location reliability is high; strong cross-check passed  */
940   QMILOCRELIABILITYENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
941 }qmiLocReliabilityEnumT_v02;
942 /**
943     @}
944   */
945 
946 /** @addtogroup loc_qmi_messages
947     @{
948   */
949 /** Indication Message; Sends the position report to the control point. */
950 typedef struct {
951 
952   /* Mandatory */
953   /*   Session Status */
954   qmiLocSessionStatusEnumT_v02 sessionStatus;
955   /**<   Session status.
956 
957  Valid values: \n
958       - eQMI_LOC_SESS_STATUS_SUCCESS (0) --  Session was successful
959       - eQMI_LOC_SESS_STATUS_IN_PROGRESS (1) --  Session is still in progress; further position reports will be generated
960        until either the fix criteria specified by the client are met or the
961        client response timeout occurs
962       - eQMI_LOC_SESS_STATUS_GENERAL_FAILURE (2) --  Session failed
963       - eQMI_LOC_SESS_STATUS_TIMEOUT (3) --  Fix request failed because the session timed out
964       - eQMI_LOC_SESS_STATUS_USER_END (4) --  Fix request failed because the session was ended by the user
965       - eQMI_LOC_SESS_STATUS_BAD_PARAMETER (5) --  Fix request failed due to bad parameters in the request
966       - eQMI_LOC_SESS_STATUS_PHONE_OFFLINE (6) --  Fix request failed because the phone is offline
967       - eQMI_LOC_SESS_STATUS_ENGINE_LOCKED (7) --  Fix request failed because the engine is locked
968  */
969 
970   /* Mandatory */
971   /*   Session ID */
972   uint8_t sessionId;
973   /**<    ID of the session that was specified in the Start request
974         QMI_LOC_START_REQ. \n
975         - Range: 0 to 255 */
976 
977   /* Optional */
978   /*  Latitude */
979   uint8_t latitude_valid;  /**< Must be set to true if latitude is being passed */
980   double latitude;
981   /**<   Latitude (specified in WGS84 datum).
982        \begin{itemize1}
983        \item    Type: Floating point
984        \item    Units: Degrees
985        \item    Range: -90.0 to 90.0   \begin{itemize1}
986          \item    Positive values indicate northern latitude
987          \item    Negative values indicate southern latitude
988        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
989 
990   /* Optional */
991   /*   Longitude */
992   uint8_t longitude_valid;  /**< Must be set to true if longitude is being passed */
993   double longitude;
994   /**<   Longitude (specified in WGS84 datum).
995        \begin{itemize1}
996        \item    Type: Floating point
997        \item    Units: Degrees
998        \item    Range: -180.0 to 180.0   \begin{itemize1}
999          \item    Positive values indicate eastern longitude
1000          \item    Negative values indicate western longitude
1001        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
1002 
1003   /* Optional */
1004   /*   Circular Horizontal Position Uncertainty */
1005   uint8_t horUncCircular_valid;  /**< Must be set to true if horUncCircular is being passed */
1006   float horUncCircular;
1007   /**<   Horizontal position uncertainty (circular).\n
1008        - Units: Meters */
1009 
1010   /* Optional */
1011   /*  Horizontal Elliptical Uncertainty (Semi-Minor Axis) */
1012   uint8_t horUncEllipseSemiMinor_valid;  /**< Must be set to true if horUncEllipseSemiMinor is being passed */
1013   float horUncEllipseSemiMinor;
1014   /**<   Semi-minor axis of horizontal elliptical uncertainty.\n
1015        - Units: Meters */
1016 
1017   /* Optional */
1018   /*  Horizontal Elliptical Uncertainty (Semi-Major Axis) */
1019   uint8_t horUncEllipseSemiMajor_valid;  /**< Must be set to true if horUncEllipseSemiMajor is being passed */
1020   float horUncEllipseSemiMajor;
1021   /**<   Semi-major axis of horizontal elliptical uncertainty.\n
1022        - Units: Meters */
1023 
1024   /* Optional */
1025   /*  Elliptical Horizontal Uncertainty Azimuth */
1026   uint8_t horUncEllipseOrientAzimuth_valid;  /**< Must be set to true if horUncEllipseOrientAzimuth is being passed */
1027   float horUncEllipseOrientAzimuth;
1028   /**<   Elliptical horizontal uncertainty azimuth of orientation.\n
1029        - Units: Decimal degrees \n
1030        - Range: 0 to 180 */
1031 
1032   /* Optional */
1033   /*  Horizontal Confidence */
1034   uint8_t horConfidence_valid;  /**< Must be set to true if horConfidence is being passed */
1035   uint8_t horConfidence;
1036   /**<   Horizontal uncertainty confidence.
1037        If both elliptical and horizontal uncertainties are specified in this message,
1038        the confidence corresponds to the elliptical uncertainty. \n
1039        - Units: Percent \n
1040        - Range: 0 to 99 */
1041 
1042   /* Optional */
1043   /*  Horizontal Reliability */
1044   uint8_t horReliability_valid;  /**< Must be set to true if horReliability is being passed */
1045   qmiLocReliabilityEnumT_v02 horReliability;
1046   /**<   Specifies the reliability of the horizontal position.
1047  Valid values: \n
1048       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
1049       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
1050       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
1051       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
1052       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
1053  */
1054 
1055   /* Optional */
1056   /*  Horizontal Speed */
1057   uint8_t speedHorizontal_valid;  /**< Must be set to true if speedHorizontal is being passed */
1058   float speedHorizontal;
1059   /**<   Horizontal speed.\n
1060        - Units: Meters/second */
1061 
1062   /* Optional */
1063   /*  Speed Uncertainty */
1064   uint8_t speedUnc_valid;  /**< Must be set to true if speedUnc is being passed */
1065   float speedUnc;
1066   /**<   3-D Speed uncertainty.\n
1067        - Units: Meters/second */
1068 
1069   /* Optional */
1070   /*  Altitude With Respect to Ellipsoid */
1071   uint8_t altitudeWrtEllipsoid_valid;  /**< Must be set to true if altitudeWrtEllipsoid is being passed */
1072   float altitudeWrtEllipsoid;
1073   /**<   Altitude with respect to the WGS84 ellipsoid.\n
1074        - Units: Meters \n
1075        - Range: -500 to 15883 */
1076 
1077   /* Optional */
1078   /*  Altitude With Respect to Sea Level */
1079   uint8_t altitudeWrtMeanSeaLevel_valid;  /**< Must be set to true if altitudeWrtMeanSeaLevel is being passed */
1080   float altitudeWrtMeanSeaLevel;
1081   /**<   Altitude with respect to mean sea level.\n
1082        - Units: Meters */
1083 
1084   /* Optional */
1085   /*  Vertical Uncertainty */
1086   uint8_t vertUnc_valid;  /**< Must be set to true if vertUnc is being passed */
1087   float vertUnc;
1088   /**<   Vertical uncertainty.\n
1089        - Units: Meters */
1090 
1091   /* Optional */
1092   /*  Vertical Confidence */
1093   uint8_t vertConfidence_valid;  /**< Must be set to true if vertConfidence is being passed */
1094   uint8_t vertConfidence;
1095   /**<   Vertical uncertainty confidence.\n
1096        - Units: Percent \n
1097        - Range: 0 to 99 */
1098 
1099   /* Optional */
1100   /*  Vertical Reliability */
1101   uint8_t vertReliability_valid;  /**< Must be set to true if vertReliability is being passed */
1102   qmiLocReliabilityEnumT_v02 vertReliability;
1103   /**<   Specifies the reliability of the vertical position.
1104  Valid values: \n
1105       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
1106       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
1107       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
1108       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
1109       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
1110  */
1111 
1112   /* Optional */
1113   /*  Vertical Speed */
1114   uint8_t speedVertical_valid;  /**< Must be set to true if speedVertical is being passed */
1115   float speedVertical;
1116   /**<   Vertical speed.\n
1117          - Units: Meters/second */
1118 
1119   /* Optional */
1120   /*  Heading */
1121   uint8_t heading_valid;  /**< Must be set to true if heading is being passed */
1122   float heading;
1123   /**<   Heading.\n
1124          - Units: Degrees \n
1125          - Range: 0 to 359.999  */
1126 
1127   /* Optional */
1128   /*  Heading Uncertainty */
1129   uint8_t headingUnc_valid;  /**< Must be set to true if headingUnc is being passed */
1130   float headingUnc;
1131   /**<   Heading uncertainty.\n
1132        - Units: Degrees \n
1133        - Range: 0 to 359.999 */
1134 
1135   /* Optional */
1136   /*  Magnetic Deviation */
1137   uint8_t magneticDeviation_valid;  /**< Must be set to true if magneticDeviation is being passed */
1138   float magneticDeviation;
1139   /**<   Difference between the bearing to true north and the bearing shown
1140       on a magnetic compass. The deviation is positive when the magnetic
1141       north is east of true north. */
1142 
1143   /* Optional */
1144   /*  Technology Used */
1145   uint8_t technologyMask_valid;  /**< Must be set to true if technologyMask is being passed */
1146   qmiLocPosTechMaskT_v02 technologyMask;
1147   /**<   Technology used in computing this fix.
1148  Valid bitmasks: \n
1149       - QMI_LOC_POS_TECH_MASK_SATELLITE (0x00000001) --  Satellites were used to generate the fix
1150       - QMI_LOC_POS_TECH_MASK_CELLID (0x00000002) --  Cell towers were used to generate the fix
1151       - QMI_LOC_POS_TECH_MASK_WIFI (0x00000004) --  Wi-Fi access points were used to generate the fix
1152       - QMI_LOC_POS_TECH_MASK_SENSORS (0x00000008) --  Sensors were used to generate the fix
1153       - QMI_LOC_POS_TECH_MASK_REFERENCE_LOCATION (0x00000010) --  Reference Location was used to generate the fix
1154       - QMI_LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION (0x00000020) --  Coarse position injected into the location engine was used to
1155         generate the fix
1156       - QMI_LOC_POS_TECH_MASK_AFLT (0x00000040) --  AFLT was used to generate the fix
1157       - QMI_LOC_POS_TECH_MASK_HYBRID (0x00000080) --  GNSS and network-provided measurements were used to
1158         generate the fix
1159  */
1160 
1161   /* Optional */
1162   /*  Dilution of Precision */
1163   uint8_t DOP_valid;  /**< Must be set to true if DOP is being passed */
1164   qmiLocDOPStructT_v02 DOP;
1165   /**<   \vspace{0.06in} \n Dilution of precision associated with this position. */
1166 
1167   /* Optional */
1168   /*  UTC Timestamp */
1169   uint8_t timestampUtc_valid;  /**< Must be set to true if timestampUtc is being passed */
1170   uint64_t timestampUtc;
1171   /**<   UTC timestamp. \n
1172        - Units: Milliseconds since Jan. 1, 1970 */
1173 
1174   /* Optional */
1175   /*  Leap Seconds */
1176   uint8_t leapSeconds_valid;  /**< Must be set to true if leapSeconds is being passed */
1177   uint8_t leapSeconds;
1178   /**<   Leap second information. If leapSeconds is not available,
1179          timestampUtc is calculated based on a hard-coded value
1180          for leap seconds. \n
1181          - Units: Seconds */
1182 
1183   /* Optional */
1184   /*  GPS Time */
1185   uint8_t gpsTime_valid;  /**< Must be set to true if gpsTime is being passed */
1186   qmiLocGPSTimeStructT_v02 gpsTime;
1187   /**<   \vspace{0.06in} \n The number of weeks since Jan. 5, 1980, and
1188        milliseconds into the current week. */
1189 
1190   /* Optional */
1191   /*  Time Uncertainty */
1192   uint8_t timeUnc_valid;  /**< Must be set to true if timeUnc is being passed */
1193   float timeUnc;
1194   /**<   Time uncertainty. \n
1195        - Units: Milliseconds */
1196 
1197   /* Optional */
1198   /*  Time Source */
1199   uint8_t timeSrc_valid;  /**< Must be set to true if timeSrc is being passed */
1200   qmiLocTimeSourceEnumT_v02 timeSrc;
1201   /**<   Time source. Valid values: \n
1202       - eQMI_LOC_TIME_SRC_INVALID (0) --  Invalid time.
1203       - eQMI_LOC_TIME_SRC_NETWORK_TIME_TRANSFER (1) --  Time is set by the 1X system
1204       - eQMI_LOC_TIME_SRC_NETWORK_TIME_TAGGING (2) --  Time is set by WCDMA/GSM time tagging (that is,
1205        associating network time with GPS time)
1206       - eQMI_LOC_TIME_SRC_EXTERNAL_INPUT (3) --  Time is set by an external injection
1207       - eQMI_LOC_TIME_SRC_TOW_DECODE (4) --  Time is set after decoding over-the-air GPS navigation data
1208        from one GPS satellite
1209       - eQMI_LOC_TIME_SRC_TOW_CONFIRMED (5) --  Time is set after decoding over-the-air GPS navigation data
1210        from multiple satellites
1211       - eQMI_LOC_TIME_SRC_TOW_AND_WEEK_CONFIRMED (6) --  Both time of the week and the GPS week number are known
1212       - eQMI_LOC_TIME_SRC_NAV_SOLUTION (7) --  Time is set by the position engine after the fix is obtained
1213       - eQMI_LOC_TIME_SRC_SOLVE_FOR_TIME (8) --  Time is set by the position engine after performing SFT;
1214        this is done when the clock time uncertainty is large
1215       - eQMI_LOC_TIME_SRC_GLO_TOW_DECODE (9) --  Time is set after decoding GLO satellites
1216       - eQMI_LOC_TIME_SRC_TIME_TRANSFORM (10) --  Time is set after transforming the GPS to GLO time
1217       - eQMI_LOC_TIME_SRC_WCDMA_SLEEP_TIME_TAGGING (11) --  Time is set by the sleep time tag provided by the WCDMA network
1218       - eQMI_LOC_TIME_SRC_GSM_SLEEP_TIME_TAGGING (12) --  Time is set by the sleep time tag provided by the GSM network
1219       - eQMI_LOC_TIME_SRC_UNKNOWN (13) --  Source of the time is unknown
1220       - eQMI_LOC_TIME_SRC_SYSTEM_TIMETICK (14) --  Time is derived from the system clock (better known as the slow clock);
1221        GNSS time is maintained irrespective of the GNSS receiver state
1222       - eQMI_LOC_TIME_SRC_QZSS_TOW_DECODE (15) --  Time is set after decoding QZSS satellites
1223       - eQMI_LOC_TIME_SRC_BDS_TOW_DECODE (16) --  Time is set after decoding BDS satellites
1224       - eQMI_LOC_TIME_SRC_GAL_TOW_DECODE (17) --  Time is set after decoding GAL satellites  */
1225 
1226   /* Optional */
1227   /*  Sensor Data Usage */
1228   uint8_t sensorDataUsage_valid;  /**< Must be set to true if sensorDataUsage is being passed */
1229   qmiLocSensorUsageIndicatorStructT_v02 sensorDataUsage;
1230   /**<   \vspace{0.06in} \n Indicates whether sensor data was used in computing the position in this
1231        position report. */
1232 
1233   /* Optional */
1234   /*  Fix Count for This Session */
1235   uint8_t fixId_valid;  /**< Must be set to true if fixId is being passed */
1236   uint32_t fixId;
1237   /**<   Fix count for the session. Starts with 0 and increments by one
1238        for each successive position report for a particular session. */
1239 
1240   /* Optional */
1241   /*  SVs Used to Calculate the Fix */
1242   uint8_t gnssSvUsedList_valid;  /**< Must be set to true if gnssSvUsedList is being passed */
1243   uint32_t gnssSvUsedList_len;  /**< Must be set to # of elements in gnssSvUsedList */
1244   uint16_t gnssSvUsedList[QMI_LOC_MAX_SV_USED_LIST_LENGTH_V02];
1245   /**<   Each entry in the list contains the SV ID of a satellite
1246       used for calculating this position report. The following
1247       information is associated with each SV ID: \n
1248       Range: \n
1249       - For GPS:     1 to 32 \n
1250       - For GLONASS: 65 to 96 \n
1251       - For QZSS:    193 to 197 \n
1252       - For BDS:     201 to 237 \n
1253       - For GAL:     301 to 336
1254       */
1255 
1256   /* Optional */
1257   /*  Altitude Assumed */
1258   uint8_t altitudeAssumed_valid;  /**< Must be set to true if altitudeAssumed is being passed */
1259   uint8_t altitudeAssumed;
1260   /**<   Indicates whether altitude is assumed or calculated: \begin{itemize1}
1261          \item    0x00 (FALSE) -- Altitude is calculated
1262          \item    0x01 (TRUE) -- Altitude is assumed; there may not be enough
1263                                  satellites to determine the precise altitude
1264         \vspace{-0.18in} \end{itemize1}*/
1265 }qmiLocEventPositionReportIndMsgT_v02;  /* Message */
1266 /**
1267     @}
1268   */
1269 
1270 /** @addtogroup loc_qmi_enums
1271     @{
1272   */
1273 typedef enum {
1274   QMILOCSVSYSTEMENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
1275   eQMI_LOC_SV_SYSTEM_GPS_V02 = 1, /**<  GPS satellite  */
1276   eQMI_LOC_SV_SYSTEM_GALILEO_V02 = 2, /**<  GALILEO satellite  */
1277   eQMI_LOC_SV_SYSTEM_SBAS_V02 = 3, /**<  SBAS satellite  */
1278   eQMI_LOC_SV_SYSTEM_COMPASS_V02 = 4, /**<  COMPASS satellite (Deprecated)  */
1279   eQMI_LOC_SV_SYSTEM_GLONASS_V02 = 5, /**<  GLONASS satellite  */
1280   eQMI_LOC_SV_SYSTEM_BDS_V02 = 6, /**<  BDS satellite  */
1281   eQMI_LOC_SV_SYSTEM_QZSS_V02 = 7, /**<  QZSS satellite  */
1282   QMILOCSVSYSTEMENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
1283 }qmiLocSvSystemEnumT_v02;
1284 /**
1285     @}
1286   */
1287 
1288 /** @addtogroup loc_qmi_enums
1289     @{
1290   */
1291 typedef enum {
1292   QMILOCSVSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
1293   eQMI_LOC_SV_STATUS_IDLE_V02 = 1, /**<  SV is not being actively processed  */
1294   eQMI_LOC_SV_STATUS_SEARCH_V02 = 2, /**<  The system is searching for this SV  */
1295   eQMI_LOC_SV_STATUS_TRACK_V02 = 3, /**<  SV is being tracked  */
1296   QMILOCSVSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
1297 }qmiLocSvStatusEnumT_v02;
1298 /**
1299     @}
1300   */
1301 
1302 typedef uint32_t qmiLocSvInfoValidMaskT_v02;
1303 #define QMI_LOC_SV_INFO_MASK_VALID_SYSTEM_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000001) /**<  System field is valid in SV information  */
1304 #define QMI_LOC_SV_INFO_MASK_VALID_GNSS_SVID_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000002) /**<  gnssSvId field is valid in SV information  */
1305 #define QMI_LOC_SV_INFO_MASK_VALID_HEALTH_STATUS_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000004) /**<  healthStatus field is valid in SV information  */
1306 #define QMI_LOC_SV_INFO_MASK_VALID_PROCESS_STATUS_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000008) /**<  processStatus field is valid in SV information  */
1307 #define QMI_LOC_SV_INFO_MASK_VALID_SVINFO_MASK_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000010) /**<  svInfoMask field is valid in SV information  */
1308 #define QMI_LOC_SV_INFO_MASK_VALID_ELEVATION_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000020) /**<  Elevation field is valid in SV information  */
1309 #define QMI_LOC_SV_INFO_MASK_VALID_AZIMUTH_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000040) /**<  Azimuth field is valid in SV information  */
1310 #define QMI_LOC_SV_INFO_MASK_VALID_SNR_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000080) /**<  SNR field is valid in SV information  */
1311 typedef uint8_t qmiLocSvInfoMaskT_v02;
1312 #define QMI_LOC_SVINFO_MASK_HAS_EPHEMERIS_V02 ((qmiLocSvInfoMaskT_v02)0x01) /**<  Ephemeris is available for this SV  */
1313 #define QMI_LOC_SVINFO_MASK_HAS_ALMANAC_V02 ((qmiLocSvInfoMaskT_v02)0x02) /**<  Almanac is available for this SV  */
1314 /** @addtogroup loc_qmi_aggregates
1315     @{
1316   */
1317 typedef struct {
1318 
1319   qmiLocSvInfoValidMaskT_v02 validMask;
1320   /**<   Bitmask indicating which of the fields in this TLV are valid.
1321 
1322          Valid bitmasks: \begin{itemize1}
1323          \item    0x00000001 -- VALID_SYSTEM
1324          \item    0x00000002 -- VALID_GNSS_SVID
1325          \item    0x00000004 -- VALID_HEALTH_ STATUS
1326          \item    0x00000008 -- VALID_PROCESS_ STATUS
1327          \item    0x00000010 -- VALID_SVINFO_ MASK
1328          \item    0x00000020 -- VALID_ELEVATION
1329          \item    0x00000040 -- VALID_AZIMUTH
1330          \item    0x00000080 -- VALID_SNR
1331          \vspace{-0.18in} \end{itemize1}  */
1332 
1333   qmiLocSvSystemEnumT_v02 system;
1334   /**<   Indicates to which constellation this SV belongs.
1335 
1336  Valid values: \n
1337       - eQMI_LOC_SV_SYSTEM_GPS (1) --  GPS satellite
1338       - eQMI_LOC_SV_SYSTEM_GALILEO (2) --  GALILEO satellite
1339       - eQMI_LOC_SV_SYSTEM_SBAS (3) --  SBAS satellite
1340       - eQMI_LOC_SV_SYSTEM_COMPASS (4) --  COMPASS satellite (Deprecated)
1341       - eQMI_LOC_SV_SYSTEM_GLONASS (5) --  GLONASS satellite
1342       - eQMI_LOC_SV_SYSTEM_BDS (6) --  BDS satellite
1343       - eQMI_LOC_SV_SYSTEM_QZSS (7) --  QZSS satellite
1344  */
1345 
1346   uint16_t gnssSvId;
1347   /**<   GNSS SV ID.
1348          \begin{itemize1}
1349          \item Range:  \begin{itemize1}
1350            \item For GPS:      1 to 32
1351            \item For GLONASS:  1 to 32
1352            \item For SBAS:     120 to 158 and 183 to 187
1353            \item For QZSS:     193 to 197
1354            \item For BDS:      201 to 237
1355            \item For GAL:      301 to 336
1356          \end{itemize1} \end{itemize1}
1357 
1358         The GPS and GLONASS SVs can be disambiguated using the system field. */
1359 
1360   uint8_t healthStatus;
1361   /**<   Health status.
1362          \begin{itemize1}
1363          \item    Range: 0 to 1; 0 = unhealthy, \n 1 = healthy
1364          \vspace{-0.18in} \end{itemize1}*/
1365 
1366   qmiLocSvStatusEnumT_v02 svStatus;
1367   /**<   SV processing status.
1368 
1369  Valid values: \n
1370       - eQMI_LOC_SV_STATUS_IDLE (1) --  SV is not being actively processed
1371       - eQMI_LOC_SV_STATUS_SEARCH (2) --  The system is searching for this SV
1372       - eQMI_LOC_SV_STATUS_TRACK (3) --  SV is being tracked
1373  */
1374 
1375   qmiLocSvInfoMaskT_v02 svInfoMask;
1376   /**<   Indicates whether almanac and ephemeris information is available. \n
1377          Valid bitmasks:
1378 
1379            - 0x01 -- SVINFO_HAS_EPHEMERIS \n
1380            - 0x02 -- SVINFO_HAS_ALMANAC
1381     */
1382 
1383   float elevation;
1384   /**<   SV elevation angle.\n
1385          - Units: Degrees \n
1386          - Range: 0 to 90 */
1387 
1388   float azimuth;
1389   /**<   SV azimuth angle.\n
1390          - Units: Degrees \n
1391          - Range: 0 to 360 */
1392 
1393   float snr;
1394   /**<   SV signal-to-noise ratio. \n
1395          - Units: dB-Hz */
1396 }qmiLocSvInfoStructT_v02;  /* Type */
1397 /**
1398     @}
1399   */
1400 
1401 /** @addtogroup loc_qmi_messages
1402     @{
1403   */
1404 /** Indication Message; Sends a satellite report to the control point. */
1405 typedef struct {
1406 
1407   /* Mandatory */
1408   /*  Altitude Assumed */
1409   uint8_t altitudeAssumed;
1410   /**<   Indicates whether altitude is assumed or calculated: \begin{itemize1}
1411          \item    0x00 (FALSE) -- Valid altitude is calculated
1412          \item    0x01 (TRUE) -- Valid altitude is assumed; there may not be
1413                                  enough satellites to determine precise altitude
1414           \vspace{-0.18in} \end{itemize1}*/
1415 
1416   /* Optional */
1417   /*  Satellite Info */
1418   uint8_t svList_valid;  /**< Must be set to true if svList is being passed */
1419   uint32_t svList_len;  /**< Must be set to # of elements in svList */
1420   qmiLocSvInfoStructT_v02 svList[QMI_LOC_SV_INFO_LIST_MAX_SIZE_V02];
1421   /**<   \vspace{0.06in} \n SV information list. */
1422 }qmiLocEventGnssSvInfoIndMsgT_v02;  /* Message */
1423 /**
1424     @}
1425   */
1426 
1427 /** @addtogroup loc_qmi_messages
1428     @{
1429   */
1430 /** Indication Message; Sends NMEA sentences to the control point */
1431 typedef struct {
1432 
1433   /* Mandatory */
1434   /*  NMEA String */
1435   char nmea[QMI_LOC_NMEA_STRING_MAX_LENGTH_V02 + 1];
1436   /**<   NMEA string.
1437        \begin{itemize1}
1438        \item    Type: NULL-terminated string
1439        \item    Maximum string length (including NULL terminator): 201
1440        \vspace{-0.18in} \end{itemize1}*/
1441 }qmiLocEventNmeaIndMsgT_v02;  /* Message */
1442 /**
1443     @}
1444   */
1445 
1446 /** @addtogroup loc_qmi_enums
1447     @{
1448   */
1449 typedef enum {
1450   QMILOCNINOTIFYVERIFYENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
1451   eQMI_LOC_NI_USER_NO_NOTIFY_NO_VERIFY_V02 = 1, /**<  No notification and no verification required  */
1452   eQMI_LOC_NI_USER_NOTIFY_ONLY_V02 = 2, /**<  Notify only; no verification required  */
1453   eQMI_LOC_NI_USER_NOTIFY_VERIFY_ALLOW_NO_RESP_V02 = 3, /**<  Notify and verify, but no response required.  */
1454   eQMI_LOC_NI_USER_NOTIFY_VERIFY_NOT_ALLOW_NO_RESP_V02 = 4, /**<  Notify and verify, and require a response  */
1455   eQMI_LOC_NI_USER_NOTIFY_VERIFY_PRIVACY_OVERRIDE_V02 = 5, /**<  Notify and verify; privacy override  */
1456   QMILOCNINOTIFYVERIFYENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
1457 }qmiLocNiNotifyVerifyEnumT_v02;
1458 /**
1459     @}
1460   */
1461 
1462 /** @addtogroup loc_qmi_enums
1463     @{
1464   */
1465 typedef enum {
1466   QMILOCNIVXPOSMODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
1467   eQMI_LOC_NI_VX_MS_ASSISTED_ONLY_V02 = 1, /**<  MS-assisted only allowed  */
1468   eQMI_LOC_NI_VX_MS_BASED_ONLY_V02 = 2, /**<  MS-based only allowed  */
1469   eQMI_LOC_NI_VX_MS_ASSISTED_PREFERRED_MS_BASED_ALLOWED_V02 = 3, /**<  MS-assisted preferred, but MS-based allowed  */
1470   eQMI_LOC_NI_VX_MS_BASED_PREFERRED_MS_ASSISTED_ALLOWED_V02 = 4, /**<  MS-based preferred, but MS-assisted allowed  */
1471   QMILOCNIVXPOSMODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
1472 }qmiLocNiVxPosModeEnumT_v02;
1473 /**
1474     @}
1475   */
1476 
1477 /** @addtogroup loc_qmi_enums
1478     @{
1479   */
1480 typedef enum {
1481   QMILOCNIVXREQUESTORIDENCODINGSCHEMEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
1482   eQMI_LOC_NI_VX_OCTET_V02 = 0, /**<  Encoding is Octet  */
1483   eQMI_LOC_NI_VX_EXN_PROTOCOL_MSG_V02 = 1, /**<  Encoding is EXN protocol message  */
1484   eQMI_LOC_NI_VX_ASCII_V02 = 2, /**<  Encoding is ASCII  */
1485   eQMI_LOC_NI_VX_IA5_V02 = 3, /**<  Encoding is IA5  */
1486   eQMI_LOC_NI_VX_UNICODE_V02 = 4, /**<  Encoding is Unicode  */
1487   eQMI_LOC_NI_VX_SHIFT_JIS_V02 = 5, /**<  Encoding is Shift JIS  */
1488   eQMI_LOC_NI_VX_KOREAN_V02 = 6, /**<  Encoding is Korean  */
1489   eQMI_LOC_NI_VX_LATIN_HEBREW_V02 = 7, /**<  Encoding is Latin Hebrew  */
1490   eQMI_LOC_NI_VX_LATIN_V02 = 8, /**<  Encoding is Latin  */
1491   eQMI_LOC_NI_VX_GSM_V02 = 9, /**<  Encoding is GSM  */
1492   QMILOCNIVXREQUESTORIDENCODINGSCHEMEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
1493 }qmiLocNiVxRequestorIdEncodingSchemeEnumT_v02;
1494 /**
1495     @}
1496   */
1497 
1498 /** @addtogroup loc_qmi_aggregates
1499     @{
1500   */
1501 typedef struct {
1502 
1503   uint8_t posQosIncl;
1504   /**<   Indicates whether quality of service is included:\n
1505          - 0x01 (TRUE) --  QoS is included \n
1506          - 0x00 (FALSE) -- QoS is not included */
1507 
1508   uint8_t posQos;
1509   /**<   Position QoS timeout. \n
1510          - Units: Seconds \n
1511          - Range: 0 to 255 */
1512 
1513   uint32_t numFixes;
1514   /**<   Number of fixes allowed. */
1515 
1516   uint32_t timeBetweenFixes;
1517   /**<   Time between fixes. \n
1518          - Units: Seconds */
1519 
1520   qmiLocNiVxPosModeEnumT_v02 posMode;
1521   /**<   Position mode.
1522  Valid values:
1523 
1524       - eQMI_LOC_NI_VX_MS_ASSISTED_ONLY (1) --  MS-assisted only allowed
1525       - eQMI_LOC_NI_VX_MS_BASED_ONLY (2) --  MS-based only allowed
1526       - eQMI_LOC_NI_VX_MS_ASSISTED_PREFERRED_MS_BASED_ALLOWED (3) --  MS-assisted preferred, but MS-based allowed
1527       - eQMI_LOC_NI_VX_MS_BASED_PREFERRED_MS_ASSISTED_ALLOWED (4) --  MS-based preferred, but MS-assisted allowed
1528  */
1529 
1530   qmiLocNiVxRequestorIdEncodingSchemeEnumT_v02 encodingScheme;
1531   /**<   VX encoding scheme.
1532 
1533  Valid values:
1534 
1535       - eQMI_LOC_NI_VX_OCTET (0) --  Encoding is Octet
1536       - eQMI_LOC_NI_VX_EXN_PROTOCOL_MSG (1) --  Encoding is EXN protocol message
1537       - eQMI_LOC_NI_VX_ASCII (2) --  Encoding is ASCII
1538       - eQMI_LOC_NI_VX_IA5 (3) --  Encoding is IA5
1539       - eQMI_LOC_NI_VX_UNICODE (4) --  Encoding is Unicode
1540       - eQMI_LOC_NI_VX_SHIFT_JIS (5) --  Encoding is Shift JIS
1541       - eQMI_LOC_NI_VX_KOREAN (6) --  Encoding is Korean
1542       - eQMI_LOC_NI_VX_LATIN_HEBREW (7) --  Encoding is Latin Hebrew
1543       - eQMI_LOC_NI_VX_LATIN (8) --  Encoding is Latin
1544       - eQMI_LOC_NI_VX_GSM (9) --  Encoding is GSM
1545  */
1546 
1547   uint32_t requestorId_len;  /**< Must be set to # of elements in requestorId */
1548   uint8_t requestorId[QMI_LOC_NI_MAX_REQUESTOR_ID_LENGTH_V02];
1549   /**<   Requestor ID. \n
1550        - Type:  Array of bytes \n
1551        - Maximum array length: 200
1552   */
1553 
1554   uint16_t userRespTimerInSeconds;
1555   /**<   Time to wait for the user to respond. \n
1556          - Units: Seconds */
1557 }qmiLocNiVxNotifyVerifyStructT_v02;  /* Type */
1558 /**
1559     @}
1560   */
1561 
1562 /** @addtogroup loc_qmi_enums
1563     @{
1564   */
1565 typedef enum {
1566   QMILOCNISUPLPOSMETHODENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
1567   eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETASSISTED_V02 = 1, /**<  Set assisted  */
1568   eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETBASED_V02 = 2, /**<  Set based  */
1569   eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETASSISTED_PREF_V02 = 3, /**<  Set assisted preferred  */
1570   eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETBASED_PREF_V02 = 4, /**<  Set based preferred  */
1571   eQMI_LOC_NI_SUPL_POSMETHOD_AUTONOMOUS_GPS_V02 = 5, /**<  Standalone GPS  */
1572   eQMI_LOC_NI_SUPL_POSMETHOD_AFLT_V02 = 6, /**<  Advanced forward link trilateration  */
1573   eQMI_LOC_NI_SUPL_POSMETHOD_ECID_V02 = 7, /**<  Exclusive chip ID  */
1574   eQMI_LOC_NI_SUPL_POSMETHOD_EOTD_V02 = 8, /**<  Enhnaced observed time difference  */
1575   eQMI_LOC_NI_SUPL_POSMETHOD_OTDOA_V02 = 9, /**<  Observed time delay of arrival  */
1576   eQMI_LOC_NI_SUPL_POSMETHOD_NO_POSITION_V02 = 10, /**<  No position  */
1577   QMILOCNISUPLPOSMETHODENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
1578 }qmiLocNiSuplPosMethodEnumT_v02;
1579 /**
1580     @}
1581   */
1582 
1583 /** @addtogroup loc_qmi_enums
1584     @{
1585   */
1586 typedef enum {
1587   QMILOCNIDATACODINGSCHEMEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
1588   eQMI_LOC_NI_SS_GERMAN_V02 = 12, /**<  Language is German  */
1589   eQMI_LOC_NI_SS_ENGLISH_V02 = 13, /**<  Language is English  */
1590   eQMI_LOC_NI_SS_ITALIAN_V02 = 14, /**<  Language is Italian  */
1591   eQMI_LOC_NI_SS_FRENCH_V02 = 15, /**<  Language is French  */
1592   eQMI_LOC_NI_SS_SPANISH_V02 = 16, /**<  Language is Spanish  */
1593   eQMI_LOC_NI_SS_DUTCH_V02 = 17, /**<  Language is Dutch  */
1594   eQMI_LOC_NI_SS_SWEDISH_V02 = 18, /**<  Language is Swedish  */
1595   eQMI_LOC_NI_SS_DANISH_V02 = 19, /**<  Language is Danish  */
1596   eQMI_LOC_NI_SS_PORTUGUESE_V02 = 20, /**<  Language is Portuguese  */
1597   eQMI_LOC_NI_SS_FINNISH_V02 = 21, /**<  Language is Finnish  */
1598   eQMI_LOC_NI_SS_NORWEGIAN_V02 = 22, /**<  Language is Norwegian  */
1599   eQMI_LOC_NI_SS_GREEK_V02 = 23, /**<  Language is Greek  */
1600   eQMI_LOC_NI_SS_TURKISH_V02 = 24, /**<  Language is Turkish  */
1601   eQMI_LOC_NI_SS_HUNGARIAN_V02 = 25, /**<  Language is Hungarian  */
1602   eQMI_LOC_NI_SS_POLISH_V02 = 26, /**<  Language is Polish  */
1603   eQMI_LOC_NI_SS_LANGUAGE_UNSPEC_V02 = 27, /**<  Language is unspecified  */
1604   eQMI_LOC_NI_SUPL_UTF8_V02 = 28, /**<  Encoding is UTF 8  */
1605   eQMI_LOC_NI_SUPL_UCS2_V02 = 29, /**<  Encoding is UCS 2  */
1606   eQMI_LOC_NI_SUPL_GSM_DEFAULT_V02 = 30, /**<  Encoding is GSM default  */
1607   QMILOCNIDATACODINGSCHEMEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
1608 }qmiLocNiDataCodingSchemeEnumT_v02;
1609 /**
1610     @}
1611   */
1612 
1613 /** @addtogroup loc_qmi_enums
1614     @{
1615   */
1616 typedef enum {
1617   QMILOCNISUPLFORMATENUMTYPE_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
1618   eQMI_LOC_NI_SUPL_FORMAT_LOGICAL_NAME_V02 = 0, /**<  SUPL logical name format  */
1619   eQMI_LOC_NI_SUPL_FORMAT_EMAIL_ADDRESS_V02 = 1, /**<  SUPL email address format  */
1620   eQMI_LOC_NI_SUPL_FORMAT_MSISDN_V02 = 2, /**<  SUPL MS-ISDN format  */
1621   eQMI_LOC_NI_SUPL_FORMAT_URL_V02 = 3, /**<  SUPL URL format  */
1622   eQMI_LOC_NI_SUPL_FORMAT_SIP_URL_V02 = 4, /**<  SUPL SIP URL format  */
1623   eQMI_LOC_NI_SUPL_FORMAT_MIN_V02 = 5, /**<  SUPL MIN format  */
1624   eQMI_LOC_NI_SUPL_FORMAT_MDN_V02 = 6, /**<  SUPL MDN format  */
1625   eQMI_LOC_NI_SUPL_FORMAT_IMSPUBLIC_IDENTITY_V02 = 7, /**<  SUPL IMS public identity  */
1626   eQMI_LOC_NI_SUPL_FORMAT_OSS_UNKNOWN_V02 = 2147483647, /**<  SUPL unknown format  */
1627   QMILOCNISUPLFORMATENUMTYPE_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
1628 }qmiLocNiSuplFormatEnumType_v02;
1629 /**
1630     @}
1631   */
1632 
1633 /** @addtogroup loc_qmi_aggregates
1634     @{
1635   */
1636 typedef struct {
1637 
1638   qmiLocNiSuplFormatEnumType_v02 formatType;
1639   /**<   Format of the formatted string.
1640 
1641  Valid values: \n
1642       - eQMI_LOC_NI_SUPL_FORMAT_LOGICAL_NAME (0) --  SUPL logical name format
1643       - eQMI_LOC_NI_SUPL_FORMAT_EMAIL_ADDRESS (1) --  SUPL email address format
1644       - eQMI_LOC_NI_SUPL_FORMAT_MSISDN (2) --  SUPL MS-ISDN format
1645       - eQMI_LOC_NI_SUPL_FORMAT_URL (3) --  SUPL URL format
1646       - eQMI_LOC_NI_SUPL_FORMAT_SIP_URL (4) --  SUPL SIP URL format
1647       - eQMI_LOC_NI_SUPL_FORMAT_MIN (5) --  SUPL MIN format
1648       - eQMI_LOC_NI_SUPL_FORMAT_MDN (6) --  SUPL MDN format
1649       - eQMI_LOC_NI_SUPL_FORMAT_IMSPUBLIC_IDENTITY (7) --  SUPL IMS public identity
1650       - eQMI_LOC_NI_SUPL_FORMAT_OSS_UNKNOWN (2147483647) --  SUPL unknown format
1651  */
1652 
1653   uint32_t formattedString_len;  /**< Must be set to # of elements in formattedString */
1654   uint8_t formattedString[QMI_LOC_NI_MAX_CLIENT_NAME_LENGTH_V02];
1655   /**<   Formatted string. \n
1656         - Type: Byte array \n
1657         - Maximum string length: 64
1658    */
1659 }qmiLocNiSuplFormattedStringStructT_v02;  /* Type */
1660 /**
1661     @}
1662   */
1663 
1664 typedef uint8_t qmiLocSuplQopValidMaskT_v02;
1665 #define QMI_LOC_NI_SUPL_MASK_QOP_HORZ_ACC_VALID_V02 ((qmiLocSuplQopValidMaskT_v02)0x01) /**<  Horizontal accuracy is valid in the Quality of Position (QoP)  */
1666 #define QMI_LOC_NI_SUPL_MASK_QOP_VER_ACC_VALID_V02 ((qmiLocSuplQopValidMaskT_v02)0x02) /**<  Vertical accuracy is valid in the QoP  */
1667 #define QMI_LOC_NI_SUPL_MASK_QOP_MAXAGE_VALID_V02 ((qmiLocSuplQopValidMaskT_v02)0x04) /**<  Vertical accuracy is valid in the QoP  */
1668 #define QMI_LOC_NI_SUPL_MASK_QOP_DELAY_VALID_V02 ((qmiLocSuplQopValidMaskT_v02)0x08) /**<  Vertical accuracy is valid in the QoP  */
1669 /** @addtogroup loc_qmi_aggregates
1670     @{
1671   */
1672 typedef struct {
1673 
1674   qmiLocSuplQopValidMaskT_v02 validMask;
1675   /**<   Bit field indicating which fields are valid in this value.
1676 
1677         Valid bitmasks: \n
1678           - 0x01 -- QOP_HORZ_ACC_VALID \n
1679           - 0x02 -- QOP_VER_ACC_VALID \n
1680           - 0x04 -- QOP_MAXAGE_VALID \n
1681           - 0x08 -- QOP_DELAY_VALID*/
1682 
1683   uint8_t horizontalAccuracy;
1684   /**<   Horizontal accuracy. \n
1685         - Units: Meters */
1686 
1687   uint8_t verticalAccuracy;
1688   /**<   Vertical accuracy. \n
1689         - Units: Meters */
1690 
1691   uint16_t maxLocAge;
1692   /**<   Maximum age of the location if the engine sends a previously
1693         computed position. \n
1694         - Units: Seconds */
1695 
1696   uint8_t delay;
1697   /**<   Delay the server is willing to tolerate for the fix. \n
1698         - Units: Seconds */
1699 }qmiLocNiSuplQopStructT_v02;  /* Type */
1700 /**
1701     @}
1702   */
1703 
1704 typedef uint8_t qmiLocServerAddrTypeMaskT_v02;
1705 #define QMI_LOC_SERVER_ADDR_TYPE_IPV4_MASK_V02 ((qmiLocServerAddrTypeMaskT_v02)0x01) /**<  IPv4 server address type  */
1706 #define QMI_LOC_SERVER_ADDR_TYPE_IPV6_MASK_V02 ((qmiLocServerAddrTypeMaskT_v02)0x02) /**<  IPv6 server address type  */
1707 #define QMI_LOC_SERVER_ADDR_TYPE_URL_MASK_V02 ((qmiLocServerAddrTypeMaskT_v02)0x04) /**<  URL server address type  */
1708 /** @addtogroup loc_qmi_aggregates
1709     @{
1710   */
1711 typedef struct {
1712 
1713   uint32_t addr;
1714   /**<   IPv4 address. */
1715 
1716   uint16_t port;
1717   /**<   IPv4 port. */
1718 }qmiLocIpV4AddrStructType_v02;  /* Type */
1719 /**
1720     @}
1721   */
1722 
1723 /** @addtogroup loc_qmi_aggregates
1724     @{
1725   */
1726 typedef struct {
1727 
1728   uint16_t addr[QMI_LOC_IPV6_ADDR_LENGTH_V02];
1729   /**<   IPv6 address. \n
1730        - Type: Array of unsigned integers \n
1731        - Maximum length of the array: 8 */
1732 
1733   uint32_t port;
1734   /**<   IPv6 port. */
1735 }qmiLocIpV6AddrStructType_v02;  /* Type */
1736 /**
1737     @}
1738   */
1739 
1740 /** @addtogroup loc_qmi_aggregates
1741     @{
1742   */
1743 typedef struct {
1744 
1745   qmiLocServerAddrTypeMaskT_v02 suplServerAddrTypeMask;
1746   /**<   Mask specifying the valid fields in this value.
1747 
1748        Valid bitmasks: \n
1749          - 0x01 -- IPv4 \n
1750          - 0x02 -- IPv6 \n
1751          - 0x04 -- URL
1752   */
1753 
1754   qmiLocIpV4AddrStructType_v02 ipv4Addr;
1755   /**<   IPv4 address and port. */
1756 
1757   qmiLocIpV6AddrStructType_v02 ipv6Addr;
1758   /**<   IPv6 address and port. */
1759 
1760   char urlAddr[QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 + 1];
1761   /**<   URL.
1762        \begin{itemize1}
1763        \item    Type: NULL-terminated string
1764        \item    Maximum string length (including NULL terminator): 256
1765        \vspace{-0.18in} \end{itemize1}
1766         */
1767 }qmiLocNiSuplServerInfoStructT_v02;  /* Type */
1768 /**
1769     @}
1770   */
1771 
1772 typedef uint32_t qmiLocNiSuplNotifyVerifyValidMaskT_v02;
1773 #define QMI_LOC_SUPL_SERVER_INFO_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000001) /**<  Mask to denote that the server information
1774       is present in an NI SUPL Notify/Verify request event. This mask is set in
1775      the valid_flags field of a Notify/Verify structure.  */
1776 #define QMI_LOC_SUPL_SESSION_ID_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000002) /**<  Mask to denote that the SUPL session ID
1777        is present in an NI SUPL Notify/Verify request event.
1778       This mask is set in the valid_flags field of a
1779       Notify/Verify structure.   */
1780 #define QMI_LOC_SUPL_HASH_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000004) /**<  Mask to denote that the SUPL hash is present
1781        in an NI Notify/Verify request event.
1782       This mask is set in the valid_flags field of a
1783       Notify/Verify structure.   */
1784 #define QMI_LOC_SUPL_POS_METHOD_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000008) /**<  Mask to denote that the position method is present
1785        in an NI SUPL Notify/Verify request event.
1786       This mask is set in the valid_flags field of a
1787       Notify/Verify structure.  */
1788 #define QMI_LOC_SUPL_DATA_CODING_SCHEME_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000010) /**<  Mask to denote that the data coding scheme
1789        is present in an NI SUPL Notify/Verify request event.
1790       This mask is set in the valid_flags field of a
1791       Notify/Verify structure.  */
1792 #define QMI_LOC_SUPL_REQUESTOR_ID_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000020) /**<  Mask to denote that the requestor ID
1793        is present in an NI Notify/Verify request event.
1794       This mask is set in the valid_flags field of a
1795       Notify/Verify structure.  */
1796 #define QMI_LOC_SUPL_CLIENT_NAME_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000040) /**<  Mask to denote that the requestor ID
1797        is present in an NI Notify/Verify request event.
1798        This mask is set in the valid_flags field of a
1799        Notify/Verify structure.  */
1800 #define QMI_LOC_SUPL_QOP_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000080) /**<  Mask to denote that the quality of position
1801        is present in an NI Notify/Verify request event.
1802        This mask is set in the valid_flags field of a
1803        Notify/Verify structure.  */
1804 #define QMI_LOC_SUPL_USER_RESP_TIMER_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000100) /**<  Mask to denote that the user response timer
1805        is present in an NI Notify/Verify request event.
1806        This mask is set in the valid_flags field of a
1807        Notify/Verify structure.  */
1808 /** @addtogroup loc_qmi_aggregates
1809     @{
1810   */
1811 typedef struct {
1812 
1813   qmiLocNiSuplNotifyVerifyValidMaskT_v02 valid_flags;
1814   /**<   Indicates which of the following fields are present in this value.
1815 
1816         Valid bitmasks: \begin{itemize1}
1817         \item    0x00000001 -- SUPL_SERVER_INFO
1818         \item    0x00000002 -- SUPL_SESSION_ID
1819         \item    0x00000004 -- SUPL_HASH
1820         \item    0x00000008 -- SUPL_POS_METHOD
1821         \item    0x00000010 -- SUPL_DATA_ CODING_SCHEME
1822         \item    0x00000020 -- SUPL_REQUESTOR_ ID
1823         \item    0x00000040 -- SUPL_CLIENT_ NAME
1824         \item    0x00000080 -- SUPL_QOP
1825         \item    0x00000100 -- SUPL_USER_RESP_ TIMER
1826         \vspace{-0.18in} \end{itemize1}
1827   */
1828 
1829   qmiLocNiSuplServerInfoStructT_v02 suplServerInfo;
1830   /**<   SUPL server information. */
1831 
1832   uint8_t suplSessionId[QMI_LOC_NI_SUPL_SLP_SESSION_ID_BYTE_LENGTH_V02];
1833   /**<   SUPL session ID. \n
1834        - Type: Array of unsigned integers \n
1835        - Maximum length of the array: 4 */
1836 
1837   uint8_t suplHash[QMI_LOC_NI_SUPL_HASH_LENGTH_V02];
1838   /**<   Hash for SUPL_INIT; used to validate that the message was not
1839        corrupted. \n
1840        - Type: Array of unsigned integers \n
1841        - Length of the array: 8 */
1842 
1843   qmiLocNiSuplPosMethodEnumT_v02 posMethod;
1844   /**<   GPS mode to be used for the fix.
1845  Valid values:
1846 
1847       - eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETASSISTED (1) --  Set assisted
1848       - eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETBASED (2) --  Set based
1849       - eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETASSISTED_PREF (3) --  Set assisted preferred
1850       - eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETBASED_PREF (4) --  Set based preferred
1851       - eQMI_LOC_NI_SUPL_POSMETHOD_AUTONOMOUS_GPS (5) --  Standalone GPS
1852       - eQMI_LOC_NI_SUPL_POSMETHOD_AFLT (6) --  Advanced forward link trilateration
1853       - eQMI_LOC_NI_SUPL_POSMETHOD_ECID (7) --  Exclusive chip ID
1854       - eQMI_LOC_NI_SUPL_POSMETHOD_EOTD (8) --  Enhnaced observed time difference
1855       - eQMI_LOC_NI_SUPL_POSMETHOD_OTDOA (9) --  Observed time delay of arrival
1856       - eQMI_LOC_NI_SUPL_POSMETHOD_NO_POSITION (10) --  No position
1857  */
1858 
1859   qmiLocNiDataCodingSchemeEnumT_v02 dataCodingScheme;
1860   /**<   Data coding scheme applies to both the requestor ID and the client
1861  name.
1862 
1863  Valid values: \n
1864       - eQMI_LOC_NI_SS_GERMAN (12) --  Language is German
1865       - eQMI_LOC_NI_SS_ENGLISH (13) --  Language is English
1866       - eQMI_LOC_NI_SS_ITALIAN (14) --  Language is Italian
1867       - eQMI_LOC_NI_SS_FRENCH (15) --  Language is French
1868       - eQMI_LOC_NI_SS_SPANISH (16) --  Language is Spanish
1869       - eQMI_LOC_NI_SS_DUTCH (17) --  Language is Dutch
1870       - eQMI_LOC_NI_SS_SWEDISH (18) --  Language is Swedish
1871       - eQMI_LOC_NI_SS_DANISH (19) --  Language is Danish
1872       - eQMI_LOC_NI_SS_PORTUGUESE (20) --  Language is Portuguese
1873       - eQMI_LOC_NI_SS_FINNISH (21) --  Language is Finnish
1874       - eQMI_LOC_NI_SS_NORWEGIAN (22) --  Language is Norwegian
1875       - eQMI_LOC_NI_SS_GREEK (23) --  Language is Greek
1876       - eQMI_LOC_NI_SS_TURKISH (24) --  Language is Turkish
1877       - eQMI_LOC_NI_SS_HUNGARIAN (25) --  Language is Hungarian
1878       - eQMI_LOC_NI_SS_POLISH (26) --  Language is Polish
1879       - eQMI_LOC_NI_SS_LANGUAGE_UNSPEC (27) --  Language is unspecified
1880       - eQMI_LOC_NI_SUPL_UTF8 (28) --  Encoding is UTF 8
1881       - eQMI_LOC_NI_SUPL_UCS2 (29) --  Encoding is UCS 2
1882       - eQMI_LOC_NI_SUPL_GSM_DEFAULT (30) --  Encoding is GSM default
1883  */
1884 
1885   qmiLocNiSuplFormattedStringStructT_v02 requestorId;
1886   /**<   Requestor ID. The encoding scheme for requestor_id is specified in
1887        the dataCodingScheme field. */
1888 
1889   qmiLocNiSuplFormattedStringStructT_v02 clientName;
1890   /**<   Client name. The encoding scheme for client_name is specified in
1891        the dataCodingScheme field. */
1892 
1893   qmiLocNiSuplQopStructT_v02 suplQop;
1894   /**<   SUPL QoP. */
1895 
1896   uint16_t userResponseTimer;
1897   /**<   Time to wait for the user to respond. \n
1898        - Units: Seconds*/
1899 }qmiLocNiSuplNotifyVerifyStructT_v02;  /* Type */
1900 /**
1901     @}
1902   */
1903 
1904 /** @addtogroup loc_qmi_enums
1905     @{
1906   */
1907 typedef enum {
1908   QMILOCNILOCATIONTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
1909   eQMI_LOC_NI_LOCATIONTYPE_CURRENT_LOCATION_V02 = 1, /**<  Current location  */
1910   eQMI_LOC_NI_LOCATIONTYPE_CURRENT_OR_LAST_KNOWN_LOCATION_V02 = 2, /**<  Last known location; may be the current location  */
1911   eQMI_LOC_NI_LOCATIONTYPE_INITIAL_LOCATION_V02 = 3, /**<  Initial location  */
1912   QMILOCNILOCATIONTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
1913 }qmiLocNiLocationTypeEnumT_v02;
1914 /**
1915     @}
1916   */
1917 
1918 /** @addtogroup loc_qmi_aggregates
1919     @{
1920   */
1921 typedef struct {
1922 
1923   qmiLocNiDataCodingSchemeEnumT_v02 dataCodingScheme;
1924   /**<   Identifies the coding scheme of the coded string.
1925 
1926  Valid values: \n
1927       - eQMI_LOC_NI_SS_GERMAN (12) --  Language is German
1928       - eQMI_LOC_NI_SS_ENGLISH (13) --  Language is English
1929       - eQMI_LOC_NI_SS_ITALIAN (14) --  Language is Italian
1930       - eQMI_LOC_NI_SS_FRENCH (15) --  Language is French
1931       - eQMI_LOC_NI_SS_SPANISH (16) --  Language is Spanish
1932       - eQMI_LOC_NI_SS_DUTCH (17) --  Language is Dutch
1933       - eQMI_LOC_NI_SS_SWEDISH (18) --  Language is Swedish
1934       - eQMI_LOC_NI_SS_DANISH (19) --  Language is Danish
1935       - eQMI_LOC_NI_SS_PORTUGUESE (20) --  Language is Portuguese
1936       - eQMI_LOC_NI_SS_FINNISH (21) --  Language is Finnish
1937       - eQMI_LOC_NI_SS_NORWEGIAN (22) --  Language is Norwegian
1938       - eQMI_LOC_NI_SS_GREEK (23) --  Language is Greek
1939       - eQMI_LOC_NI_SS_TURKISH (24) --  Language is Turkish
1940       - eQMI_LOC_NI_SS_HUNGARIAN (25) --  Language is Hungarian
1941       - eQMI_LOC_NI_SS_POLISH (26) --  Language is Polish
1942       - eQMI_LOC_NI_SS_LANGUAGE_UNSPEC (27) --  Language is unspecified
1943       - eQMI_LOC_NI_SUPL_UTF8 (28) --  Encoding is UTF 8
1944       - eQMI_LOC_NI_SUPL_UCS2 (29) --  Encoding is UCS 2
1945       - eQMI_LOC_NI_SUPL_GSM_DEFAULT (30) --  Encoding is GSM default
1946  */
1947 
1948   uint32_t codedString_len;  /**< Must be set to # of elements in codedString */
1949   uint8_t codedString[QMI_LOC_NI_CODEWORD_MAX_LENGTH_V02];
1950   /**<   Coded string. \n
1951        - Type: Array of bytes \n
1952        - Maximum string length: 20 */
1953 }qmiLocNiUmtsCpCodedStringStructT_v02;  /* Type */
1954 /**
1955     @}
1956   */
1957 
1958 typedef uint16_t qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02;
1959 #define QMI_LOC_UMTS_CP_INVOKE_ID_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0001) /**<  Mask to denote that the invoke ID
1960        is present in an NI Notify/Verify request event.
1961       This mask is set in the valid flags field of a
1962        Notify/Verify structure.  */
1963 #define QMI_LOC_UMTS_CP_DATA_CODING_SCHEME_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0002) /**<  Mask to denote that the data coding scheme
1964        is present in an NI Notify/Verify request event.
1965        This mask is set in the valid flags field of a
1966        Notify/Verify structure.  */
1967 #define QMI_LOC_UMTS_CP_NOTIFICATION_TEXT_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0004) /**<  Mask to denote that the notification text
1968        is present in an NI Notify/Verify request event.
1969       This mask is set in the valid flags field of a
1970        Notify/Verify structure.  */
1971 #define QMI_LOC_UMTS_CP_CLIENT_ADDRESS_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0008) /**<  Mask to denote that the client address
1972        is present in an NI Notify/Verify request event.
1973       This mask is set in the valid flags field of a
1974        Notify/Verify structure.  */
1975 #define QMI_LOC_UMTS_CP_LOCATION_TYPE_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0010) /**<  Mask to denote that the location type
1976        is present in an NI Notify/Verify request event.
1977        This mask is set in the valid flags field of a
1978        Notify/Verify structure.  */
1979 #define QMI_LOC_UMTS_CP_REQUESTOR_ID_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0020) /**<  Mask to denote that the requestor ID
1980        is present in an NI Notify/Verify request event.
1981        This mask is set in the valid flags field of a
1982        Notify/Verify structure.  */
1983 #define QMI_LOC_UMTS_CP_CODEWORD_STRING_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0040) /**<  Mask to denote that the code word string
1984        is present in an NI Notify/Verify request event.
1985        This mask is set in the valid flags field of a
1986        Notify/Verify structure.  */
1987 #define QMI_LOC_UMTS_CP_SERVICE_TYPE_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0080) /**<  Mask to denote that the service type
1988        is present in an NI Notify/Verify request event.
1989        This mask is set in the valid flags field of a
1990        Notify/Verify structure.  */
1991 #define QMI_LOC_UMTS_CP_USER_RESP_TIMER_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0100) /**<  Mask to denote that the user response timer
1992        is present in an NI Notify/Verify request event.
1993        This mask is set in the valid flags field of a
1994        Notify/Verify structure.  */
1995 /** @addtogroup loc_qmi_aggregates
1996     @{
1997   */
1998 typedef struct {
1999 
2000   qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02 valid_flags;
2001   /**<   Fields that are valid in this value.
2002 
2003        Valid bitmasks: \begin{itemize1}
2004        \item    0x0001 -- INVOKE_ID_MASK
2005        \item    0x0002 -- DATA_CODING_ SCHEME_MASK
2006        \item    0x0004 -- NOTIFICATION_TEXT_ MASK
2007        \item    0x0008 -- CLIENT_ADDRESS_ MASK
2008        \item    0x0010 -- LOCATION_TYPE_ MASK
2009        \item    0x0020 -- REQUESTOR_ID_MASK
2010        \item    0x0040 -- CODEWORD_STRING_ MASK
2011        \item    0x0080 -- SERVICE_TYPE_MASK
2012        \item    0x0100 -- USER_RESP_TIMER_ MASK
2013        \vspace{-0.18in} \end{itemize1}
2014   */
2015 
2016   uint8_t invokeId;
2017   /**<   Supplementary Services invoke ID. */
2018 
2019   qmiLocNiDataCodingSchemeEnumT_v02 dataCodingScheme;
2020   /**<   Type of data encoding scheme for the text.
2021  Applies to both the notification text and the client address.
2022 
2023  Valid values: \n
2024       - eQMI_LOC_NI_SS_GERMAN (12) --  Language is German
2025       - eQMI_LOC_NI_SS_ENGLISH (13) --  Language is English
2026       - eQMI_LOC_NI_SS_ITALIAN (14) --  Language is Italian
2027       - eQMI_LOC_NI_SS_FRENCH (15) --  Language is French
2028       - eQMI_LOC_NI_SS_SPANISH (16) --  Language is Spanish
2029       - eQMI_LOC_NI_SS_DUTCH (17) --  Language is Dutch
2030       - eQMI_LOC_NI_SS_SWEDISH (18) --  Language is Swedish
2031       - eQMI_LOC_NI_SS_DANISH (19) --  Language is Danish
2032       - eQMI_LOC_NI_SS_PORTUGUESE (20) --  Language is Portuguese
2033       - eQMI_LOC_NI_SS_FINNISH (21) --  Language is Finnish
2034       - eQMI_LOC_NI_SS_NORWEGIAN (22) --  Language is Norwegian
2035       - eQMI_LOC_NI_SS_GREEK (23) --  Language is Greek
2036       - eQMI_LOC_NI_SS_TURKISH (24) --  Language is Turkish
2037       - eQMI_LOC_NI_SS_HUNGARIAN (25) --  Language is Hungarian
2038       - eQMI_LOC_NI_SS_POLISH (26) --  Language is Polish
2039       - eQMI_LOC_NI_SS_LANGUAGE_UNSPEC (27) --  Language is unspecified
2040       - eQMI_LOC_NI_SUPL_UTF8 (28) --  Encoding is UTF 8
2041       - eQMI_LOC_NI_SUPL_UCS2 (29) --  Encoding is UCS 2
2042       - eQMI_LOC_NI_SUPL_GSM_DEFAULT (30) --  Encoding is GSM default
2043  */
2044 
2045   uint32_t notificationText_len;  /**< Must be set to # of elements in notificationText */
2046   uint8_t notificationText[QMI_LOC_NI_MAX_CLIENT_NAME_LENGTH_V02];
2047   /**<   Notification text; the encoding method is specified in
2048        dataCodingScheme. \n
2049        - Type: Array of bytes \n
2050        - Maximum array length: 64 */
2051 
2052   uint32_t clientAddress_len;  /**< Must be set to # of elements in clientAddress */
2053   uint8_t clientAddress[QMI_LOC_NI_MAX_EXT_CLIENT_ADDRESS_V02];
2054   /**<   Client address; the encoding method is specified in
2055        dataCodingScheme. \n
2056        - Maximum array length: 20 */
2057 
2058   qmiLocNiLocationTypeEnumT_v02 locationType;
2059   /**<   Location type.
2060 
2061  Valid values: \n
2062       - eQMI_LOC_NI_LOCATIONTYPE_CURRENT_LOCATION (1) --  Current location
2063       - eQMI_LOC_NI_LOCATIONTYPE_CURRENT_OR_LAST_KNOWN_LOCATION (2) --  Last known location; may be the current location
2064       - eQMI_LOC_NI_LOCATIONTYPE_INITIAL_LOCATION (3) --  Initial location
2065  */
2066 
2067   qmiLocNiUmtsCpCodedStringStructT_v02 requestorId;
2068   /**<   Requestor ID; the encoding method is specified in the
2069        qmiLocNiUmtsCpCodedStringStructT.dataCodingScheme field. */
2070 
2071   qmiLocNiUmtsCpCodedStringStructT_v02 codewordString;
2072   /**<   Codeword string; the encoding method is specified in the
2073        qmiLocNiUmtsCpCodedStringStructT.dataCodingScheme field. */
2074 
2075   uint8_t lcsServiceTypeId;
2076   /**<   Service type ID. */
2077 
2078   uint16_t userResponseTimer;
2079   /**<   Time to wait for the user to respond. \n
2080        - Units: Seconds */
2081 }qmiLocNiUmtsCpNotifyVerifyStructT_v02;  /* Type */
2082 /**
2083     @}
2084   */
2085 
2086 /** @addtogroup loc_qmi_enums
2087     @{
2088   */
2089 typedef enum {
2090   QMILOCNISERVICEINTERACTIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
2091   eQMI_LOC_NI_SERVICE_INTERACTION_ONGOING_NI_INCOMING_MO_V02 = 1, /**<  Service interaction between ongoing NI and incoming MO sessions.  */
2092   QMILOCNISERVICEINTERACTIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
2093 }qmiLocNiServiceInteractionEnumT_v02;
2094 /**
2095     @}
2096   */
2097 
2098 /** @addtogroup loc_qmi_aggregates
2099     @{
2100   */
2101 typedef struct {
2102 
2103   qmiLocNiVxNotifyVerifyStructT_v02 niVxReq;
2104   /**<   Ongoing NI session request; this information is currently not filled. */
2105 
2106   qmiLocNiServiceInteractionEnumT_v02 serviceInteractionType;
2107   /**<   Service interaction type specified in qmiLocNiServiceInteractionEnumT.
2108 
2109  Valid values: \n
2110       - eQMI_LOC_NI_SERVICE_INTERACTION_ONGOING_NI_INCOMING_MO (1) --  Service interaction between ongoing NI and incoming MO sessions.
2111  */
2112 }qmiLocNiVxServiceInteractionStructT_v02;  /* Type */
2113 /**
2114     @}
2115   */
2116 
2117 typedef uint16_t qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02;
2118 #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
2119        and multiple location IDs in the SUPL_POS_INIT message.  */
2120 #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
2121        and multiple location ID in the SUPL_POS_INIT message.  */
2122 #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
2123        and multiple location ID in the SUPL_POS_INIT message.  */
2124 #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
2125        and multiple location ID in the SUPL_POS_INIT message.  */
2126 #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
2127        and multiple location ID in the SUPL_POS_INIT message.  */
2128 #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
2129        and multiple location ID in the SUPL_POS_INIT message.  */
2130 #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
2131        and multiple location ID in the SUPL_POS_INIT message.  */
2132 #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
2133        and multiple location ID in the SUPL_POS_INIT message.  */
2134 #define QMI_LOC_SUPL_VER_2_EXT_MASK_SUPPORTED_NETWORK_HISTORIC_V02 ((qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02)0x0100) /**<  Denotes that historical information is allowed as part of
2135        multiple location ID in the SUPL_POS_INIT message.  */
2136 #define QMI_LOC_SUPL_VER_2_EXT_MASK_SUPPORTED_NETWORK_NONSVRV_V02 ((qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02)0x0200) /**<  Denotes that information about nonserving cells is allowed
2137        as part of multiple location ID in the SUPL_POS_INIT message.  */
2138 /** @addtogroup loc_qmi_enums
2139     @{
2140   */
2141 typedef enum {
2142   QMILOCNISUPLVER2EXTTRIGGERTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
2143   eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_SINGLE_SHOT_V02 = -1, /**<  SUPL INIT message indicates a request for a single shot
2144        triggered session  */
2145   eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_PERIODIC_V02 = 0, /**<  SUPL INIT message indicates a request for a periodic
2146        triggered session  */
2147   eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_AREA_EVENT_V02 = 1, /**<  SUPL INIT message indicates a request for an area event
2148        triggered session  */
2149   QMILOCNISUPLVER2EXTTRIGGERTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
2150 }qmiLocNiSuplVer2ExtTriggerTypeEnumT_v02;
2151 /**
2152     @}
2153   */
2154 
2155 typedef uint16_t qmiLocNiSuplVer2ExtGnssTypeMaskT_v02;
2156 #define QMI_LOC_SUPL_VER_2_EXT_MASK_GNSS_GPS_V02 ((qmiLocNiSuplVer2ExtGnssTypeMaskT_v02)0x0001) /**<  GPS is allowed to be used as the positioning technology  */
2157 #define QMI_LOC_SUPL_VER_2_EXT_MASK_GNSS_GLONASS_V02 ((qmiLocNiSuplVer2ExtGnssTypeMaskT_v02)0x0002) /**<  GLONASS is allowed to be used as the positioning technology  */
2158 #define QMI_LOC_SUPL_VER_2_EXT_MASK_GNSS_GALILEO_V02 ((qmiLocNiSuplVer2ExtGnssTypeMaskT_v02)0x0004) /**<  Galileo is allowed to be used as the positioning technology  */
2159 #define QMI_LOC_SUPL_VER_2_EXT_MASK_GNSS_SBAS_V02 ((qmiLocNiSuplVer2ExtGnssTypeMaskT_v02)0x0008) /**<  SBAS is allowed to be used as the positioning technology  */
2160 #define QMI_LOC_SUPL_VER_2_EXT_MASK_GNSS_QZSS_V02 ((qmiLocNiSuplVer2ExtGnssTypeMaskT_v02)0x0010) /**<  QZSS is allowed to be used as the positioning technology  */
2161 #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  */
2162 /** @addtogroup loc_qmi_aggregates
2163     @{
2164   */
2165 typedef struct {
2166 
2167   qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02 supportedNetworksMask;
2168   /**<   Specifies which type of network measurements are allowed to be sent as
2169        part of the Location ID or Multiple Location IDs parameter in the
2170        SUPL_POS_INIT message (refer to 3GPP \hyperref[TS 03.32]{TS 03.32}).
2171 
2172        Valid bitmasks: \begin{itemize1}
2173        \item    0x0001 -- SUPPORTED_NETWORK_ WLAN
2174        \item    0x0002 -- SUPPORTED_NETWORK_ GSM
2175        \item    0x0004 -- SUPPORTED_NETWORK_ WCDMA
2176        \item    0x0008 -- SUPPORTED_NETWORK_ CDMA
2177        \item    0x0010 -- SUPPORTED_NETWORK_ HRDP
2178        \item    0x0020 -- SUPPORTED_NETWORK_ UMB
2179        \item    0x0040 -- SUPPORTED_NETWORK_ LTE
2180        \item    0x0080 -- SUPPORTED_NETWORK_ WIMAX
2181        \item    0x0100 -- SUPPORTED_NETWORK_ HISTORIC
2182        \item    0x0200 -- SUPPORTED_NETWORK_ NONSVRV
2183        \vspace{-0.18in} \end{itemize1}
2184    */
2185 
2186   qmiLocNiSuplVer2ExtTriggerTypeEnumT_v02 triggerType;
2187   /**<   Specifies the type of session trigger requested in the
2188  SUPL_POS_INIT message (refer to 3GPP \hyperref[TS 03.32]{TS 03.32}).
2189 
2190  Valid values: \n
2191       - eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_SINGLE_SHOT (-1) --  SUPL INIT message indicates a request for a single shot
2192        triggered session
2193       - eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_PERIODIC (0) --  SUPL INIT message indicates a request for a periodic
2194        triggered session
2195       - eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_AREA_EVENT (1) --  SUPL INIT message indicates a request for an area event
2196        triggered session
2197  */
2198 
2199   qmiLocNiSuplVer2ExtGnssTypeMaskT_v02 gnssType;
2200   /**<   Specifies which GNSS technologies are allowed as positioning
2201        technologies.
2202 
2203        Valid bitmasks: \n
2204         - 0x0001 -- GNSS_GPS \n
2205         - 0x0002 -- GNSS_GLONASS \n
2206         - 0x0004 -- GNSS_GALILEO \n
2207         - 0x0008 -- GNSS_SBAS \n
2208         - 0x0010 -- GNSS_QZSS \n
2209         - 0x0020 -- GNSS_MODERN_GPS
2210   */
2211 }qmiLocNiSuplVer2ExtStructT_v02;  /* Type */
2212 /**
2213     @}
2214   */
2215 
2216 /** @addtogroup loc_qmi_aggregates
2217     @{
2218   */
2219 typedef struct {
2220 
2221   char eslpUrl[QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 + 1];
2222   /**<   ESLP URL. \n
2223        Maximum length: 255 bytes */
2224 }qmiLocEmergencyNotificationStructT_v02;  /* Type */
2225 /**
2226     @}
2227   */
2228 
2229 /** @addtogroup loc_qmi_messages
2230     @{
2231   */
2232 /** Indication Message; Indicates an NI Notify/Verify request to the control point. */
2233 typedef struct {
2234 
2235   /* Mandatory */
2236   /*  Notification Type */
2237   qmiLocNiNotifyVerifyEnumT_v02 notificationType;
2238   /**<   Type of notification/verification performed.
2239 
2240  Valid values: \n
2241       - eQMI_LOC_NI_USER_NO_NOTIFY_NO_VERIFY (1) --  No notification and no verification required
2242       - eQMI_LOC_NI_USER_NOTIFY_ONLY (2) --  Notify only; no verification required
2243       - eQMI_LOC_NI_USER_NOTIFY_VERIFY_ALLOW_NO_RESP (3) --  Notify and verify, but no response required.
2244       - eQMI_LOC_NI_USER_NOTIFY_VERIFY_NOT_ALLOW_NO_RESP (4) --  Notify and verify, and require a response
2245       - eQMI_LOC_NI_USER_NOTIFY_VERIFY_PRIVACY_OVERRIDE (5) --  Notify and verify; privacy override
2246  */
2247 
2248   /* Optional */
2249   /*  Network Initiated Vx Request */
2250   uint8_t NiVxInd_valid;  /**< Must be set to true if NiVxInd is being passed */
2251   qmiLocNiVxNotifyVerifyStructT_v02 NiVxInd;
2252   /**<   \vspace{0.06in} \n Optional NI Vx request payload. */
2253 
2254   /* Optional */
2255   /*  Network Initiated SUPL Request */
2256   uint8_t NiSuplInd_valid;  /**< Must be set to true if NiSuplInd is being passed */
2257   qmiLocNiSuplNotifyVerifyStructT_v02 NiSuplInd;
2258   /**<   \vspace{0.06in} \n Optional NI SUPL request payload. */
2259 
2260   /* Optional */
2261   /*  Network Initiated UMTS Control Plane Request */
2262   uint8_t NiUmtsCpInd_valid;  /**< Must be set to true if NiUmtsCpInd is being passed */
2263   qmiLocNiUmtsCpNotifyVerifyStructT_v02 NiUmtsCpInd;
2264   /**<   \vspace{0.06in} \n Optional NI UMTS-CP request payload. */
2265 
2266   /* Optional */
2267   /*  Network Initiated Service Interaction Request */
2268   uint8_t NiVxServiceInteractionInd_valid;  /**< Must be set to true if NiVxServiceInteractionInd is being passed */
2269   qmiLocNiVxServiceInteractionStructT_v02 NiVxServiceInteractionInd;
2270   /**<   \vspace{0.06in} \n Optional NI service interaction payload. */
2271 
2272   /* Optional */
2273   /*  Network Initiated SUPL Version 2 Extension */
2274   uint8_t NiSuplVer2ExtInd_valid;  /**< Must be set to true if NiSuplVer2ExtInd is being passed */
2275   qmiLocNiSuplVer2ExtStructT_v02 NiSuplVer2ExtInd;
2276   /**<   \vspace{0.06in} \n Optional NI SUPL Version 2 Extension payload. When present,
2277           this payload is to be used in conjunction with the SUPL
2278           indication payload. */
2279 
2280   /* Optional */
2281   /*  SUPL Emergency Notification */
2282   uint8_t suplEmergencyNotification_valid;  /**< Must be set to true if suplEmergencyNotification is being passed */
2283   qmiLocEmergencyNotificationStructT_v02 suplEmergencyNotification;
2284   /**<   \vspace{0.06in} \n This specifies that the corresponding NI notification is an
2285         emergency notification. Emergency notification
2286         can be given even without an Emergency SUPL Location Platform (ESLP)
2287         address. */
2288 }qmiLocEventNiNotifyVerifyReqIndMsgT_v02;  /* Message */
2289 /**
2290     @}
2291   */
2292 
2293 /** @addtogroup loc_qmi_aggregates
2294     @{
2295   */
2296 typedef struct {
2297 
2298   char serverUrl[QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 + 1];
2299   /**<   Assistance server URL.
2300        \begin{itemize1}
2301        \item    Type: NULL-terminated string
2302        \item    Maximum string length (including NULL terminator): 256
2303        \vspace{-0.18in} \end{itemize1} */
2304 }qmiLocAssistanceServerUrlStructT_v02;  /* Type */
2305 /**
2306     @}
2307   */
2308 
2309 /** @addtogroup loc_qmi_aggregates
2310     @{
2311   */
2312 typedef struct {
2313 
2314   uint32_t delayThreshold;
2315   /**<   The time server is to be skipped if a one-way delay to the server
2316        exceeds this threshold. \n
2317        - Units: Milliseconds */
2318 
2319   uint32_t timeServerList_len;  /**< Must be set to # of elements in timeServerList */
2320   qmiLocAssistanceServerUrlStructT_v02 timeServerList[QMI_LOC_MAX_NTP_SERVERS_V02];
2321   /**<   List of Time Server URL's that are recommended by the service for time
2322        information, the list is ordered, the client is to use the first
2323        server specified in the list as the primary URL to fetch NTP time,
2324        the second one as secondary, and so on. \n
2325        - Maximum server list items: 3 */
2326 }qmiLocTimeServerListStructT_v02;  /* Type */
2327 /**
2328     @}
2329   */
2330 
2331 /** @addtogroup loc_qmi_messages
2332     @{
2333   */
2334 /** Indication Message; Requests the control point to inject time information. */
2335 typedef struct {
2336 
2337   /* Optional */
2338   /*  Time Server Info */
2339   uint8_t timeServerInfo_valid;  /**< Must be set to true if timeServerInfo is being passed */
2340   qmiLocTimeServerListStructT_v02 timeServerInfo;
2341   /**<   \vspace{0.06in} \n Contains information about the time servers recommended by the
2342        location service for NTP time. */
2343 }qmiLocEventInjectTimeReqIndMsgT_v02;  /* Message */
2344 /**
2345     @}
2346   */
2347 
2348 /** @addtogroup loc_qmi_aggregates
2349     @{
2350   */
2351 typedef struct {
2352 
2353   uint32_t maxFileSizeInBytes;
2354   /**<   Maximum allowable predicted orbits file size (in bytes). */
2355 
2356   uint32_t maxPartSize;
2357   /**<   Maximum allowable predicted orbits file chunk size (in bytes). */
2358 }qmiLocPredictedOrbitsAllowedSizesStructT_v02;  /* Type */
2359 /**
2360     @}
2361   */
2362 
2363 /** @addtogroup loc_qmi_aggregates
2364     @{
2365   */
2366 typedef struct {
2367 
2368   uint32_t serverList_len;  /**< Must be set to # of elements in serverList */
2369   qmiLocAssistanceServerUrlStructT_v02 serverList[QMI_LOC_MAX_PREDICTED_ORBITS_SERVERS_V02];
2370   /**<   List of predicted orbits URLs. The list is ordered, so the client
2371        must use the first server specified in the list as the primary URL
2372        from which to download predicted orbits data, the second one as
2373        secondary, and so on. \n
2374        - Maximum number of servers that can be specified: 3 */
2375 }qmiLocPredictedOrbitsServerListStructT_v02;  /* Type */
2376 /**
2377     @}
2378   */
2379 
2380 /** @addtogroup loc_qmi_messages
2381     @{
2382   */
2383 /** Indication Message; Requests the control point to inject predicted orbits data. */
2384 typedef struct {
2385 
2386   /* Mandatory */
2387   /*  Allowed Sizes */
2388   qmiLocPredictedOrbitsAllowedSizesStructT_v02 allowedSizes;
2389   /**<   \vspace{0.06in} \n Maximum part and file size allowed to be injected in the engine. */
2390 
2391   /* Optional */
2392   /*  Server List */
2393   uint8_t serverList_valid;  /**< Must be set to true if serverList is being passed */
2394   qmiLocPredictedOrbitsServerListStructT_v02 serverList;
2395   /**<   \vspace{0.06in} \n List of servers that can be used by the client to download
2396        predicted orbits data. */
2397 }qmiLocEventInjectPredictedOrbitsReqIndMsgT_v02;  /* Message */
2398 /**
2399     @}
2400   */
2401 
2402 /** @addtogroup loc_qmi_messages
2403     @{
2404   */
2405 /** Indication Message; Requests the control point to inject a position. */
2406 typedef struct {
2407 
2408   /* Mandatory */
2409   /*  Latitude */
2410   double latitude;
2411   /**<   Latitude (specified in WGS84 datum).
2412        \begin{itemize1}
2413        \item    Type: Floating point
2414        \item    Units: Degrees
2415        \item    Range: -90.0 to 90.0      \begin{itemize1}
2416          \item    Positive values indicate northern latitude
2417          \item    Negative values indicate southern latitude
2418        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
2419 
2420   /* Mandatory */
2421   /*  Longitude */
2422   double longitude;
2423   /**<   Longitude (specified in WGS84 datum).
2424        \begin{itemize1}
2425        \item    Type: Floating point
2426        \item    Units: Degrees
2427        \item    Range: -180.0 to 180.0     \begin{itemize1}
2428          \item    Positive values indicate eastern longitude
2429          \item    Negative values indicate western longitude
2430        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
2431 
2432   /* Mandatory */
2433   /*  Circular Horizontal Uncertainty */
2434   float horUncCircular;
2435   /**<   Horizontal position uncertainty (circular).\n
2436        - Units: Meters */
2437 
2438   /* Mandatory */
2439   /*  UTC Timestamp */
2440   uint64_t timestampUtc;
2441   /**<   UTC timestamp.
2442        \begin{itemize1}
2443        \item    Units: Milliseconds since Jan. 1, 1970
2444        \vspace{-0.18in} \end{itemize1} */
2445 }qmiLocEventInjectPositionReqIndMsgT_v02;  /* Message */
2446 /**
2447     @}
2448   */
2449 
2450 /** @addtogroup loc_qmi_enums
2451     @{
2452   */
2453 typedef enum {
2454   QMILOCENGINESTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
2455   eQMI_LOC_ENGINE_STATE_ON_V02 = 1, /**<  Location engine is on  */
2456   eQMI_LOC_ENGINE_STATE_OFF_V02 = 2, /**<  Location engine is off  */
2457   QMILOCENGINESTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
2458 }qmiLocEngineStateEnumT_v02;
2459 /**
2460     @}
2461   */
2462 
2463 /** @addtogroup loc_qmi_messages
2464     @{
2465   */
2466 /** Indication Message; Sends the engine state to the control point. */
2467 typedef struct {
2468 
2469   /* Mandatory */
2470   /*  Engine State */
2471   qmiLocEngineStateEnumT_v02 engineState;
2472   /**<   Location engine state.
2473 
2474  Valid values: \n
2475       - eQMI_LOC_ENGINE_STATE_ON (1) --  Location engine is on
2476       - eQMI_LOC_ENGINE_STATE_OFF (2) --  Location engine is off
2477  */
2478 }qmiLocEventEngineStateIndMsgT_v02;  /* Message */
2479 /**
2480     @}
2481   */
2482 
2483 /** @addtogroup loc_qmi_enums
2484     @{
2485   */
2486 typedef enum {
2487   QMILOCFIXSESSIONSTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
2488   eQMI_LOC_FIX_SESSION_STARTED_V02 = 1, /**<  Location fix session has started  */
2489   eQMI_LOC_FIX_SESSION_FINISHED_V02 = 2, /**<  Location fix session has ended  */
2490   QMILOCFIXSESSIONSTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
2491 }qmiLocFixSessionStateEnumT_v02;
2492 /**
2493     @}
2494   */
2495 
2496 /** @addtogroup loc_qmi_messages
2497     @{
2498   */
2499 /** Indication Message; Sends the fix session state to the control point. */
2500 typedef struct {
2501 
2502   /* Mandatory */
2503   /*  Session State */
2504   qmiLocFixSessionStateEnumT_v02 sessionState;
2505   /**<   LOC fix session state.
2506 
2507  Valid values: \n
2508       - eQMI_LOC_FIX_SESSION_STARTED (1) --  Location fix session has started
2509       - eQMI_LOC_FIX_SESSION_FINISHED (2) --  Location fix session has ended
2510  */
2511 
2512   /* Optional */
2513   /*  Session ID */
2514   uint8_t sessionId_valid;  /**< Must be set to true if sessionId is being passed */
2515   uint8_t sessionId;
2516   /**<   ID of the session that was specified in the Start request.
2517     This may not be specified for a fix session corresponding to
2518     a network-initiated request. \n
2519     - Range: 0 to 255 */
2520 }qmiLocEventFixSessionStateIndMsgT_v02;  /* Message */
2521 /**
2522     @}
2523   */
2524 
2525 /** @addtogroup loc_qmi_enums
2526     @{
2527   */
2528 typedef enum {
2529   QMILOCWIFIREQUESTENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
2530   eQMI_LOC_WIFI_START_PERIODIC_HI_FREQ_FIXES_V02 = 0, /**<  Start periodic fixes with high frequency  */
2531   eQMI_LOC_WIFI_START_PERIODIC_KEEP_WARM_V02 = 1, /**<  Keep warm for low frequency fixes without data downloads  */
2532   eQMI_LOC_WIFI_STOP_PERIODIC_FIXES_V02 = 2, /**<  Stop periodic fixes request  */
2533   QMILOCWIFIREQUESTENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
2534 }qmiLocWifiRequestEnumT_v02;
2535 /**
2536     @}
2537   */
2538 
2539 /** @addtogroup loc_qmi_messages
2540     @{
2541   */
2542 /** Indication Message; Sends a Wi-Fi request to the control point. */
2543 typedef struct {
2544 
2545   /* Mandatory */
2546   /*  Request Type */
2547   qmiLocWifiRequestEnumT_v02 requestType;
2548   /**<   Request type.
2549 
2550  Valid values: \n
2551       - eQMI_LOC_WIFI_START_PERIODIC_HI_FREQ_FIXES (0) --  Start periodic fixes with high frequency
2552       - eQMI_LOC_WIFI_START_PERIODIC_KEEP_WARM (1) --  Keep warm for low frequency fixes without data downloads
2553       - eQMI_LOC_WIFI_STOP_PERIODIC_FIXES (2) --  Stop periodic fixes request
2554  */
2555 
2556   /* Optional */
2557   /*  Time Between Fixes */
2558   uint8_t tbfInMs_valid;  /**< Must be set to true if tbfInMs is being passed */
2559   uint16_t tbfInMs;
2560   /**<   Time between fixes for a periodic request.\n
2561         - Units: Milliseconds */
2562 }qmiLocEventWifiReqIndMsgT_v02;  /* Message */
2563 /**
2564     @}
2565   */
2566 
2567 /** @addtogroup loc_qmi_aggregates
2568     @{
2569   */
2570 typedef struct {
2571 
2572   uint16_t samplesPerBatch;
2573   /**<   Specifies the number of samples per batch the GNSS location engine is to
2574        receive. The sensor sampling frequency can be computed as follows: \vspace{-0.06in} \n
2575 
2576        samplingFrequency = samplesPerBatch * batchesPerSecond  \vspace{-0.06in} \n
2577 
2578        samplesPerBatch must be a nonzero positive value.
2579   */
2580 
2581   uint16_t batchesPerSecond;
2582   /**<   Number of sensor-data batches the GNSS location engine is to receive
2583        per second. The rate is specified in an integral number of batches per
2584        second (Hz).  \vspace{-0.06in} \n
2585 
2586        batchesPerSecond must be a nonzero positive value.
2587   */
2588 }qmiLocSensorControlConfigSamplingSpecStructT_v02;  /* Type */
2589 /**
2590     @}
2591   */
2592 
2593 /** @addtogroup loc_qmi_aggregates
2594     @{
2595   */
2596 typedef struct {
2597 
2598   uint8_t injectEnable;
2599   /**<   Indicates whether the GNSS location engine is ready to accept data from this
2600        sensor.
2601 
2602        Valid values: \begin{itemize1}
2603        \item    0x01 (TRUE)  -- GNSS location engine is ready to accept sensor
2604                                 data
2605        \item    0x00 (FALSE) -- GNSS location engine is not ready to accept
2606                                 sensor data
2607         \vspace{-0.18in} \end{itemize1}
2608   */
2609 
2610   qmiLocSensorControlConfigSamplingSpecStructT_v02 dataFrequency;
2611   /**<   Rate at which the GNSS engine would like the sensor to be sampled. \n
2612        The rate is specified in integral number of samples per second (Hz)\n
2613        and batches per second.
2614   */
2615 }qmiLocSensorReadyStatusStructT_v02;  /* Type */
2616 /**
2617     @}
2618   */
2619 
2620 /** @addtogroup loc_qmi_messages
2621     @{
2622   */
2623 /** Indication Message; Notifies the control point if the GNSS location engine is
2624                     ready to accept sensor data. */
2625 typedef struct {
2626 
2627   /* Optional */
2628   /*  Accelerometer Accept Ready */
2629   uint8_t accelReady_valid;  /**< Must be set to true if accelReady is being passed */
2630   qmiLocSensorReadyStatusStructT_v02 accelReady;
2631   /**<   \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
2632          to accept accelerometer sensor data.
2633    */
2634 
2635   /* Optional */
2636   /*  Gyroscope Accept Ready */
2637   uint8_t gyroReady_valid;  /**< Must be set to true if gyroReady is being passed */
2638   qmiLocSensorReadyStatusStructT_v02 gyroReady;
2639   /**<   \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
2640          to accept gyroscope sensor data.
2641    */
2642 
2643   /* Optional */
2644   /*  Accelerometer Temperature Accept Ready */
2645   uint8_t accelTemperatureReady_valid;  /**< Must be set to true if accelTemperatureReady is being passed */
2646   qmiLocSensorReadyStatusStructT_v02 accelTemperatureReady;
2647   /**<   \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
2648         to accept accelerometer temperature data.
2649    */
2650 
2651   /* Optional */
2652   /*  Gyroscope Temperature Accept Ready */
2653   uint8_t gyroTemperatureReady_valid;  /**< Must be set to true if gyroTemperatureReady is being passed */
2654   qmiLocSensorReadyStatusStructT_v02 gyroTemperatureReady;
2655   /**<   \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
2656          to accept gyroscope temperature data.
2657    */
2658 
2659   /* Optional */
2660   /*  Calibrated Magnetometer Accept Ready */
2661   uint8_t calibratedMagReady_valid;  /**< Must be set to true if calibratedMagReady is being passed */
2662   qmiLocSensorReadyStatusStructT_v02 calibratedMagReady;
2663   /**<   \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
2664          to accept calibrated magnetometer data.
2665    */
2666 
2667   /* Optional */
2668   /*  Uncalibrated Magnetometer Accept Ready */
2669   uint8_t uncalibratedMagReady_valid;  /**< Must be set to true if uncalibratedMagReady is being passed */
2670   qmiLocSensorReadyStatusStructT_v02 uncalibratedMagReady;
2671   /**<   \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
2672          to accept uncalibrated magnetometer data.
2673    */
2674 }qmiLocEventSensorStreamingReadyStatusIndMsgT_v02;  /* Message */
2675 /**
2676     @}
2677   */
2678 
2679 /** @addtogroup loc_qmi_messages
2680     @{
2681   */
2682 /** Indication Message; Notifies the control point to inject time synchronization
2683                     data. */
2684 typedef struct {
2685 
2686   /* Mandatory */
2687   /*  Opaque Time Sync Reference Counter */
2688   uint32_t refCounter;
2689   /**<   This TLV is sent to registered control points. It is sent by
2690         the location engine when it needs to synchronize location engine and
2691         control point (sensor processor) times.
2692         This TLV must be echoed back in the Time Sync Inject request. */
2693 }qmiLocEventTimeSyncReqIndMsgT_v02;  /* Message */
2694 /**
2695     @}
2696   */
2697 
2698 /** @addtogroup loc_qmi_messages
2699     @{
2700   */
2701 /** Indication Message; Requests the control point to enable Stationary Position
2702                     Indicator (SPI) streaming reports. */
2703 typedef struct {
2704 
2705   /* Mandatory */
2706   /*  Enable/Disable SPI Requests */
2707   uint8_t enable;
2708   /**<   Indicates whether the client is to start or stop sending an SPI status stream.
2709        \begin{itemize1}
2710        \item    0x01 (TRUE)  -- Client is to start sending an SPI status stream
2711        \item    0x00 (FALSE) -- Client is to stop sending an SPI status stream
2712        \vspace{-0.18in} \end{itemize1}*/
2713 }qmiLocEventSetSpiStreamingReportIndMsgT_v02;  /* Message */
2714 /**
2715     @}
2716   */
2717 
2718 /** @addtogroup loc_qmi_enums
2719     @{
2720   */
2721 typedef enum {
2722   QMILOCWWANTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
2723   eQMI_LOC_WWAN_TYPE_INTERNET_V02 = 0, /**<  Bring up the WWAN type used for an Internet connection  */
2724   eQMI_LOC_WWAN_TYPE_AGNSS_V02 = 1, /**<  Bring up the WWAN type used for AGNSS connections  */
2725   eQMI_LOC_WWAN_TYPE_AGNSS_EMERGENCY_V02 = 2, /**<  Bring up the WWAN type used for AGNSS Emergency connections  */
2726   QMILOCWWANTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
2727 }qmiLocWWANTypeEnumT_v02;
2728 /**
2729     @}
2730   */
2731 
2732 /** @addtogroup loc_qmi_enums
2733     @{
2734   */
2735 typedef enum {
2736   QMILOCSERVERREQUESTENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
2737   eQMI_LOC_SERVER_REQUEST_OPEN_V02 = 1, /**<  Open a connection to the location server  */
2738   eQMI_LOC_SERVER_REQUEST_CLOSE_V02 = 2, /**<  Close a connection to the location server  */
2739   QMILOCSERVERREQUESTENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
2740 }qmiLocServerRequestEnumT_v02;
2741 /**
2742     @}
2743   */
2744 
2745 /** @addtogroup loc_qmi_messages
2746     @{
2747   */
2748 /** Indication Message; Requests the client to open or close a connection
2749                     to the assisted GPS location server. */
2750 typedef struct {
2751 
2752   /* Mandatory */
2753   /*  Connection Handle */
2754   uint32_t connHandle;
2755   /**<   Identifies a connection across Open and Close request events. */
2756 
2757   /* Mandatory */
2758   /*  Request Type */
2759   qmiLocServerRequestEnumT_v02 requestType;
2760   /**<   Open or close a connection to the location server.
2761 
2762  Valid values: \n
2763       - eQMI_LOC_SERVER_REQUEST_OPEN (1) --  Open a connection to the location server
2764       - eQMI_LOC_SERVER_REQUEST_CLOSE (2) --  Close a connection to the location server
2765  */
2766 
2767   /* Mandatory */
2768   /*  WWAN Type */
2769   qmiLocWWANTypeEnumT_v02 wwanType;
2770   /**<   Identifies the WWAN type for this request.
2771  Valid values: \n
2772       - eQMI_LOC_WWAN_TYPE_INTERNET (0) --  Bring up the WWAN type used for an Internet connection
2773       - eQMI_LOC_WWAN_TYPE_AGNSS (1) --  Bring up the WWAN type used for AGNSS connections
2774       - eQMI_LOC_WWAN_TYPE_AGNSS_EMERGENCY (2) --  Bring up the WWAN type used for AGNSS Emergency connections
2775  */
2776 }qmiLocEventLocationServerConnectionReqIndMsgT_v02;  /* Message */
2777 /**
2778     @}
2779   */
2780 
2781 /** @addtogroup loc_qmi_enums
2782     @{
2783   */
2784 typedef enum {
2785   QMILOCNIGEOFENCEOPERATIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
2786   eQMI_LOC_NI_GEOFENCE_ADDED_V02 = 1, /**<  An NI Geofence was added  */
2787   eQMI_LOC_NI_GEOFENCE_DELETED_V02 = 2, /**<  An NI Geofence was deleted  */
2788   eQMI_LOC_NI_GEOFENCE_EDITED_V02 = 3, /**<  An NI Geofence was edited; the control point can query the
2789        Geofence to find the its current state  */
2790   QMILOCNIGEOFENCEOPERATIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
2791 }qmiLocNiGeofenceOperationEnumT_v02;
2792 /**
2793     @}
2794   */
2795 
2796 /** @addtogroup loc_qmi_messages
2797     @{
2798   */
2799 /** Indication Message; Informs the control point about
2800                     network-initiated Geofences. */
2801 typedef struct {
2802 
2803   /* Mandatory */
2804   /*  Geofence ID */
2805   uint32_t geofenceId;
2806   /**<   ID of the Geofence for which this
2807        notification was generated. */
2808 
2809   /* Mandatory */
2810   /*  Operation Type */
2811   qmiLocNiGeofenceOperationEnumT_v02 operationType;
2812   /**<   Operation for which this notification was generated.
2813 
2814  Valid values: \n
2815       - eQMI_LOC_NI_GEOFENCE_ADDED (1) --  An NI Geofence was added
2816       - eQMI_LOC_NI_GEOFENCE_DELETED (2) --  An NI Geofence was deleted
2817       - eQMI_LOC_NI_GEOFENCE_EDITED (3) --  An NI Geofence was edited; the control point can query the
2818        Geofence to find the its current state
2819  */
2820 }qmiLocEventNiGeofenceNotificationIndMsgT_v02;  /* Message */
2821 /**
2822     @}
2823   */
2824 
2825 /** @addtogroup loc_qmi_enums
2826     @{
2827   */
2828 typedef enum {
2829   QMILOCGEOFENCEGENALERTENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
2830   eQMI_LOC_GEOFENCE_GEN_ALERT_GNSS_UNAVAILABLE_V02 = 1, /**<  GNSS is unavailable and GNSS position fixes
2831        cannot be used to monitor Geofences  */
2832   eQMI_LOC_GEOFENCE_GEN_ALERT_GNSS_AVAILABLE_V02 = 2, /**<  GNSS is now available and GNSS postion fixes can
2833        be used to monitor Geofences  */
2834   eQMI_LOC_GEOFENCE_GEN_ALERT_OOS_V02 = 3, /**<  The engine is out of service and no cell ID coverage
2835        information is available  */
2836   eQMI_LOC_GEOFENCE_GEN_ALERT_TIME_INVALID_V02 = 4, /**<  The engine has an invalid time  */
2837   QMILOCGEOFENCEGENALERTENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
2838 }qmiLocGeofenceGenAlertEnumT_v02;
2839 /**
2840     @}
2841   */
2842 
2843 /** @addtogroup loc_qmi_messages
2844     @{
2845   */
2846 /** Indication Message; Notifies the control point of the
2847                     Geofence status. */
2848 typedef struct {
2849 
2850   /* Mandatory */
2851   /*  Geofence General Alert */
2852   qmiLocGeofenceGenAlertEnumT_v02 geofenceAlert;
2853   /**<   Specifies the Geofence general alert type.
2854 
2855  Valid values: \n
2856       - eQMI_LOC_GEOFENCE_GEN_ALERT_GNSS_UNAVAILABLE (1) --  GNSS is unavailable and GNSS position fixes
2857        cannot be used to monitor Geofences
2858       - eQMI_LOC_GEOFENCE_GEN_ALERT_GNSS_AVAILABLE (2) --  GNSS is now available and GNSS postion fixes can
2859        be used to monitor Geofences
2860       - eQMI_LOC_GEOFENCE_GEN_ALERT_OOS (3) --  The engine is out of service and no cell ID coverage
2861        information is available
2862       - eQMI_LOC_GEOFENCE_GEN_ALERT_TIME_INVALID (4) --  The engine has an invalid time
2863  */
2864 }qmiLocEventGeofenceGenAlertIndMsgT_v02;  /* Message */
2865 /**
2866     @}
2867   */
2868 
2869 /** @addtogroup loc_qmi_enums
2870     @{
2871   */
2872 typedef enum {
2873   QMILOCGEOFENCEBREACHTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
2874   eQMI_LOC_GEOFENCE_BREACH_TYPE_ENTERING_V02 = 1, /**<  Denotes that a client entered the Geofence  */
2875   eQMI_LOC_GEOFENCE_BREACH_TYPE_LEAVING_V02 = 2, /**<  Denotes that a client left the Geofence  */
2876   QMILOCGEOFENCEBREACHTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
2877 }qmiLocGeofenceBreachTypeEnumT_v02;
2878 /**
2879     @}
2880   */
2881 
2882 /** @addtogroup loc_qmi_aggregates
2883     @{
2884   */
2885 typedef struct {
2886 
2887   /*  UTC Timestamp */
2888   uint64_t timestampUtc;
2889   /**<   UTC timestamp.
2890        \begin{itemize1}
2891        \item    Units: Milliseconds since Jan. 1, 1970
2892        \vspace{-0.18in} \end{itemize1} */
2893 
2894   /*  Latitude */
2895   double latitude;
2896   /**<   Latitude (specified in WGS84 datum).
2897        \begin{itemize1}
2898        \item    Type: Floating point
2899        \item    Units: Degrees
2900        \item    Range: -90.0 to 90.0       \begin{itemize1}
2901          \item    Positive values indicate northern latitude
2902          \item    Negative values indicate southern latitude
2903        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
2904 
2905   /*   Longitude */
2906   double longitude;
2907   /**<   Longitude (specified in WGS84 datum).
2908        \begin{itemize1}
2909        \item    Type: Floating point
2910        \item    Units: Degrees
2911        \item    Range: -180.0 to 180.0     \begin{itemize1}
2912          \item    Positive values indicate eastern longitude
2913          \item    Negative values indicate western longitude
2914        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
2915 
2916   /*  Horizontal Elliptical Uncertainty (Semi-Minor Axis) */
2917   float horUncEllipseSemiMinor;
2918   /**<   Semi-minor axis of horizontal elliptical uncertainty.\n
2919        - Units: Meters */
2920 
2921   /*  Horizontal Elliptical Uncertainty (Semi-Major Axis) */
2922   float horUncEllipseSemiMajor;
2923   /**<   Semi-major axis of horizontal elliptical uncertainty.\n
2924        - Units: Meters */
2925 
2926   /*  Elliptical Horizontal Uncertainty Azimuth */
2927   float horUncEllipseOrientAzimuth;
2928   /**<   Elliptical horizontal uncertainty azimuth of orientation.\n
2929        - Units: Decimal degrees \n
2930        - Range: 0 to 180 */
2931 
2932   /*  Horizontal Speed validity bit */
2933   uint8_t speedHorizontal_valid;
2934   /**<   Indicates whether the Horizontal speed field contains valid
2935        information.
2936        \begin{itemize1}
2937        \item    0x01 (TRUE)  --  Horizontal speed is valid
2938        \item    0x00 (FALSE) --  Horizontal speed is invalid
2939                                  and is to be ignored
2940        \vspace{-0.18in} \end{itemize1} */
2941 
2942   /*  Horizontal Speed */
2943   float speedHorizontal;
2944   /**<   Horizontal speed.\n
2945        - Units: Meters/second */
2946 
2947   /*  Altitude validity bit */
2948   uint8_t altitudeWrtEllipsoid_valid;
2949   /**<   Indicates whether the altitude field contains valid
2950        information.
2951        \begin{itemize1}
2952        \item    0x01 (TRUE)  --  Altitude field is valid
2953        \item    0x00 (FALSE) --  Altitude field is invalid
2954                                  and is to be ignored
2955        \vspace{-0.18in} \end{itemize1}
2956        */
2957 
2958   /*  Altitude With Respect to Ellipsoid */
2959   float altitudeWrtEllipsoid;
2960   /**<   Altitude with respect to the WGS84 ellipsoid.\n
2961        - Units: Meters \n
2962        - Range: -500 to 15883 */
2963 
2964   /*  Vertical Uncertainty validity bit */
2965   uint8_t vertUnc_valid;
2966   /**<   Indicates whether the Vertical Uncertainty field contains valid
2967        information.
2968        \begin{itemize1}
2969        \item    0x01 (TRUE)  --  Vertical Uncertainty field is valid
2970        \item    0x00 (FALSE) --  Vertical Uncertainty field is invalid
2971                                  and is to be ignored
2972        \vspace{-0.18in} \end{itemize1} */
2973 
2974   /*  Vertical Uncertainty */
2975   float vertUnc;
2976   /**<   Vertical uncertainty.\n
2977        - Units: Meters */
2978 
2979   /*  Vertical Speed validity bit */
2980   uint8_t speedVertical_valid;
2981   /**<   Indicates whether the Vertical Speed field contains valid
2982        information.
2983        \begin{itemize1}
2984        \item    0x01 (TRUE)  --  Vertical Speed field is valid
2985        \item    0x00 (FALSE) --  Vertical Speed field is invalid
2986                                  and is to be ignored
2987        \vspace{-0.18in} \end{itemize1} */
2988 
2989   /*  Vertical Speed */
2990   float speedVertical;
2991   /**<   Vertical speed.\n
2992        - Units: Meters/second */
2993 
2994   /*  heading validity bit */
2995   uint8_t heading_valid;
2996   /**<   Indicates whether the Heading field contains valid
2997        information.
2998        \begin{itemize1}
2999        \item    0x01 (TRUE)  --  Heading field is valid
3000        \item    0x00 (FALSE) --  Heading field is invalid
3001                                  and is to be ignored
3002        \vspace{-0.18in} \end{itemize1} */
3003 
3004   /*  Heading */
3005   float heading;
3006   /**<   Heading.\n
3007         - Units: Degrees \n
3008         - Range: 0 to 359.999  */
3009 }qmiLocGeofencePositionStructT_v02;  /* Type */
3010 /**
3011     @}
3012   */
3013 
3014 /** @addtogroup loc_qmi_enums
3015     @{
3016   */
3017 typedef enum {
3018   QMILOCGEOFENCECONFIDENCEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
3019   eQMI_LOC_GEOFENCE_CONFIDENCE_LOW_V02 = 0x01, /**<  Geofence engine indicates a breach with
3020        low confidence; this setting results in lower
3021        power usage, and it can impact the yield because
3022        incorrect breach events may be sent  */
3023   eQMI_LOC_GEOFENCE_CONFIDENCE_MED_V02 = 0x02, /**<  (Default) Geofence engine indicates a breach with
3024        medium confidence  */
3025   eQMI_LOC_GEOFENCE_CONFIDENCE_HIGH_V02 = 0x03, /**<  Geofence engine indicates a breach with
3026        high confidence; this setting results in higher
3027        power usage  */
3028   QMILOCGEOFENCECONFIDENCEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
3029 }qmiLocGeofenceConfidenceEnumT_v02;
3030 /**
3031     @}
3032   */
3033 
3034 /** @addtogroup loc_qmi_messages
3035     @{
3036   */
3037 /** Indication Message; Notifies the control point of
3038                     a Geofence breach event. */
3039 typedef struct {
3040 
3041   /* Mandatory */
3042   /*  Geofence ID */
3043   uint32_t geofenceId;
3044   /**<   ID of the Geofence for which this
3045        notification was generated. */
3046 
3047   /* Mandatory */
3048   /*  Geofence Breach Type */
3049   qmiLocGeofenceBreachTypeEnumT_v02 breachType;
3050   /**<   The type of breach that generated this event.
3051 
3052  Valid values: \n
3053       - eQMI_LOC_GEOFENCE_BREACH_TYPE_ENTERING (1) --  Denotes that a client entered the Geofence
3054       - eQMI_LOC_GEOFENCE_BREACH_TYPE_LEAVING (2) --  Denotes that a client left the Geofence
3055  */
3056 
3057   /* Optional */
3058   /*  Geofence Position */
3059   uint8_t geofencePosition_valid;  /**< Must be set to true if geofencePosition is being passed */
3060   qmiLocGeofencePositionStructT_v02 geofencePosition;
3061   /**<   \vspace{0.06in} \n Position of the client when it breached the Geofence.
3062        This TLV is included if the client configures the
3063        Geofence to report position. The position is reported
3064        at the same confidence level that was specified in the
3065        Add Circular Geofence request. */
3066 
3067   /* Optional */
3068   /*  Geofence Breach Confidence */
3069   uint8_t breachConfidence_valid;  /**< Must be set to true if breachConfidence is being passed */
3070   qmiLocGeofenceConfidenceEnumT_v02 breachConfidence;
3071   /**<   \vspace{0.06in} \n
3072  Given a breach event, the confidence determines the probability
3073  that the breach happened at the Geofence boundary.
3074  Valid values: \n
3075       - eQMI_LOC_GEOFENCE_CONFIDENCE_LOW (0x01) --  Geofence engine indicates a breach with
3076        low confidence; this setting results in lower
3077        power usage, and it can impact the yield because
3078        incorrect breach events may be sent
3079       - eQMI_LOC_GEOFENCE_CONFIDENCE_MED (0x02) --  (Default) Geofence engine indicates a breach with
3080        medium confidence
3081       - eQMI_LOC_GEOFENCE_CONFIDENCE_HIGH (0x03) --  Geofence engine indicates a breach with
3082        high confidence; this setting results in higher
3083        power usage
3084  */
3085 }qmiLocEventGeofenceBreachIndMsgT_v02;  /* Message */
3086 /**
3087     @}
3088   */
3089 
3090 /** @addtogroup loc_qmi_messages
3091     @{
3092   */
3093 /** Indication Message; Recommends how pedometer reports are to be
3094                     sent to the location engine. */
3095 typedef struct {
3096 
3097   /* Mandatory */
3098   /*  Request Pedometer Data */
3099   uint8_t requestPedometerData;
3100   /**<   Indicates whether the GNSS location engine is requesting the client to
3101           send pedometer data.
3102        \begin{itemize1}
3103        \item    0x01 (TRUE)  -- GNSS location engine is requesting
3104                                 pedometer data
3105        \item    0x00 (FALSE) -- GNSS location engine is not requesting
3106                                 pedometer data
3107        \vspace{-0.18in} \end{itemize1}
3108   */
3109 
3110   /* Optional */
3111   /*  Reset Step Count */
3112   uint8_t resetStepCount_valid;  /**< Must be set to true if resetStepCount is being passed */
3113   uint8_t resetStepCount;
3114   /**<   Indicates whether the location engine is to reset the step count.
3115        \begin{itemize1}
3116        \item    0x01 (TRUE)  -- Pedometer step count is to be reset
3117        \item    0x00 (FALSE) -- Pedometer step count is not to be reset
3118        \vspace{-0.18in} \end{itemize1} */
3119 
3120   /* Optional */
3121   /*  Step Count Threshold */
3122   uint8_t stepCountThreshold_valid;  /**< Must be set to true if stepCountThreshold is being passed */
3123   uint32_t stepCountThreshold;
3124   /**<   Specifies the number of steps to be sampled in a pedometer report,
3125        as recommended by the the location engine. If the threshold is set to 0,
3126        the location engine wants a pedometer report at every step event.
3127   */
3128 }qmiLocEventPedometerControlIndMsgT_v02;  /* Message */
3129 /**
3130     @}
3131   */
3132 
3133 /** @addtogroup loc_qmi_messages
3134     @{
3135   */
3136 /** Indication Message; Recommends how motion data reports are to be
3137                     sent to the location engine. */
3138 typedef struct {
3139 
3140   /* Mandatory */
3141   /*  Request Motion Data */
3142   uint8_t requestMotionData;
3143   /**<   Indicates whether the GNSS location engine is requesting
3144        the client to send motion data.
3145        \begin{itemize1}
3146        \item    0x01 (TRUE)  -- GNSS location engine is requesting
3147                                 motion data
3148        \item    0x00 (FALSE) -- GNSS location engine is not requesting
3149                                 motion data
3150        \vspace{-0.18in} \end{itemize1}
3151   */
3152 }qmiLocEventMotionDataControlIndMsgT_v02;  /* Message */
3153 /**
3154     @}
3155   */
3156 
3157 /** @addtogroup loc_qmi_aggregates
3158     @{
3159   */
3160 typedef struct {
3161 
3162   /*  Low Geofence ID */
3163   uint32_t idLow;
3164   /**<   Contains the starting ID of the Geofence in the range of the continuous
3165        range of Geofences that were breached at the same position. */
3166 
3167   /*  High Geofence ID */
3168   uint32_t idHigh;
3169   /**<   Contains the ending ID of the Geofence in the range of the continuous
3170          range of Geofences that were breached at the same position. */
3171 }qmiLocGeofenceIdContinuousStructT_v02;  /* Type */
3172 /**
3173     @}
3174   */
3175 
3176 /** @addtogroup loc_qmi_messages
3177     @{
3178   */
3179 /** Indication Message; Notifies the control point of a Geofence breach event by
3180                     batching all the Geofences that were breached. */
3181 typedef struct {
3182 
3183   /* Mandatory */
3184   /*  Geofence Breach Type */
3185   qmiLocGeofenceBreachTypeEnumT_v02 breachType;
3186   /**<   Type of breach that generated this event.
3187 
3188  Valid values: \n
3189       - eQMI_LOC_GEOFENCE_BREACH_TYPE_ENTERING (1) --  Denotes that a client entered the Geofence
3190       - eQMI_LOC_GEOFENCE_BREACH_TYPE_LEAVING (2) --  Denotes that a client left the Geofence
3191  */
3192 
3193   /* Optional */
3194   /*  Geofence ID Continuous */
3195   uint8_t geofenceIdContinuousList_valid;  /**< Must be set to true if geofenceIdContinuousList is being passed */
3196   uint32_t geofenceIdContinuousList_len;  /**< Must be set to # of elements in geofenceIdContinuousList */
3197   qmiLocGeofenceIdContinuousStructT_v02 geofenceIdContinuousList[QMI_LOC_MAX_GEOFENCE_ID_CONTINUOUS_LIST_LENGTH_V02];
3198   /**<   \vspace{0.06in} \n Each entry in the list contains the continuous range of Geofence IDs that were breached
3199       at the same position. This list does not overlap with the discrete Geofence ID list. */
3200 
3201   /* Optional */
3202   /*  Geofence ID Discrete */
3203   uint8_t geofenceIdDiscreteList_valid;  /**< Must be set to true if geofenceIdDiscreteList is being passed */
3204   uint32_t geofenceIdDiscreteList_len;  /**< Must be set to # of elements in geofenceIdDiscreteList */
3205   uint32_t geofenceIdDiscreteList[QMI_LOC_MAX_GEOFENCE_ID_DISCRETE_LIST_LENGTH_V02];
3206   /**<   This list contains the Geofence IDs that were breached at the same position.
3207        This list does not overlap with the continuous Geofence ID list. */
3208 
3209   /* Optional */
3210   /*  Geofence Position */
3211   uint8_t geofencePosition_valid;  /**< Must be set to true if geofencePosition is being passed */
3212   qmiLocGeofencePositionStructT_v02 geofencePosition;
3213   /**<   \vspace{0.06in} \n Position of the client when it breached the Geofence.
3214        This TLV is included if the client configures the
3215        Geofence to report its position. The position is reported
3216        at the same confidence level that was specified in the
3217        Add Circular Geofence request. */
3218 
3219   /* Optional */
3220   /*  Geofence Breach Confidence */
3221   uint8_t breachConfidence_valid;  /**< Must be set to true if breachConfidence is being passed */
3222   qmiLocGeofenceConfidenceEnumT_v02 breachConfidence;
3223   /**<   \vspace{0.06in} \n
3224  Given a breach event, the confidence determines the probability
3225  that the breach happened at the Geofence boundary.
3226  Valid values: \n
3227       - eQMI_LOC_GEOFENCE_CONFIDENCE_LOW (0x01) --  Geofence engine indicates a breach with
3228        low confidence; this setting results in lower
3229        power usage, and it can impact the yield because
3230        incorrect breach events may be sent
3231       - eQMI_LOC_GEOFENCE_CONFIDENCE_MED (0x02) --  (Default) Geofence engine indicates a breach with
3232        medium confidence
3233       - eQMI_LOC_GEOFENCE_CONFIDENCE_HIGH (0x03) --  Geofence engine indicates a breach with
3234        high confidence; this setting results in higher
3235        power usage
3236  */
3237 
3238   /* Optional */
3239   /*  Heading Uncertainty */
3240   uint8_t headingUnc_valid;  /**< Must be set to true if headingUnc is being passed */
3241   float headingUnc;
3242   /**<   Heading uncertainty.\n
3243        - Units: Degrees \n
3244        - Range: 0 to 359.999 */
3245 
3246   /* Optional */
3247   /*  Vertical Uncertainty */
3248   uint8_t vertUnc_valid;  /**< Must be set to true if vertUnc is being passed */
3249   float vertUnc;
3250   /**<   Vertical uncertainty.\n
3251        - Units: Meters */
3252 
3253   /* Optional */
3254   /*  Speed Uncertainty */
3255   uint8_t speedUnc_valid;  /**< Must be set to true if speedUnc is being passed */
3256   float speedUnc;
3257   /**<   3-D speed uncertainty.\n
3258        - Units: Meters/second */
3259 
3260   /* Optional */
3261   /*  Horizontal Confidence */
3262   uint8_t horConfidence_valid;  /**< Must be set to true if horConfidence is being passed */
3263   uint8_t horConfidence;
3264   /**<   Horizontal uncertainty confidence.\n
3265        - Units: Percent \n
3266        - Range: 0 to 99 */
3267 
3268   /* Optional */
3269   /*  Vertical Confidence */
3270   uint8_t vertConfidence_valid;  /**< Must be set to true if vertConfidence is being passed */
3271   uint8_t vertConfidence;
3272   /**<   Vertical uncertainty confidence.\n
3273        - Units: Percent \n
3274        - Range: 0 to 99 */
3275 
3276   /* Optional */
3277   /*  Dilution of Precision */
3278   uint8_t DOP_valid;  /**< Must be set to true if DOP is being passed */
3279   qmiLocDOPStructT_v02 DOP;
3280   /**<   \vspace{0.06in} \n Dilution of precision associated with this position. */
3281 
3282   /* Optional */
3283   /*  SVs Used to Calculate the Fix */
3284   uint8_t gnssSvUsedList_valid;  /**< Must be set to true if gnssSvUsedList is being passed */
3285   uint32_t gnssSvUsedList_len;  /**< Must be set to # of elements in gnssSvUsedList */
3286   uint16_t gnssSvUsedList[QMI_LOC_MAX_SV_USED_LIST_LENGTH_V02];
3287   /**<   Each entry in the list contains the SV ID of a satellite
3288       used for calculating this position report. The following
3289       information is associated with each SV ID: \n
3290          Range:    \n
3291          - For GPS:     1 to 32 \n
3292          - For GLONASS: 65 to 96 \n
3293          - For SBAS:    120 to 158 and 183 to 187 \n
3294          - For QZSS:    193 to 197 \n
3295          - For BDS:     201 to 237 \n
3296          - For GAL:     301 to 336
3297         */
3298 }qmiLocEventGeofenceBatchedBreachIndMsgT_v02;  /* Message */
3299 /**
3300     @}
3301   */
3302 
3303 /** @addtogroup loc_qmi_enums
3304     @{
3305   */
3306 typedef enum {
3307   QMILOCGEOFENCEPROXIMITYTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
3308   eQMI_LOC_GEOFENCE_PROXIMITY_TYPE_IN_V02 = 1, /**<  Denotes that a client is in proximity of the Geofence \n  */
3309   eQMI_LOC_GEOFENCE_PROXIMITY_TYPE_OUT_V02 = 2, /**<  Denotes that a client is out of proximity of the Geofence  */
3310   QMILOCGEOFENCEPROXIMITYTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
3311 }qmiLocGeofenceProximityTypeEnumT_v02;
3312 /**
3313     @}
3314   */
3315 
3316 /** @addtogroup loc_qmi_messages
3317     @{
3318   */
3319 /** Indication Message; Notifies the control point of a Geofence proximity event. */
3320 typedef struct {
3321 
3322   /* Mandatory */
3323   /*  Geofence Breach Type */
3324   qmiLocGeofenceProximityTypeEnumT_v02 proximityType;
3325   /**<   Valid values: \n
3326       - eQMI_LOC_GEOFENCE_PROXIMITY_TYPE_IN (1) --  Denotes that a client is in proximity of the Geofence \n
3327       - eQMI_LOC_GEOFENCE_PROXIMITY_TYPE_OUT (2) --  Denotes that a client is out of proximity of the Geofence
3328  */
3329 
3330   /* Mandatory */
3331   /*  Geofence ID */
3332   uint32_t geofenceId;
3333   /**<   Identifier of the Geofence that is in proximity to the handset.
3334   */
3335 
3336   /* Optional */
3337   /*  Geofence Context ID */
3338   uint8_t contextId_valid;  /**< Must be set to true if contextId is being passed */
3339   uint32_t contextId;
3340   /**<    Identifier for the context of the Geofence to which the handset is in proximity.
3341         A single Geofence may be associated with different contexts.
3342   */
3343 }qmiLocEventGeofenceProximityIndMsgT_v02;  /* Message */
3344 /**
3345     @}
3346   */
3347 
3348 /** @addtogroup loc_qmi_enums
3349     @{
3350   */
3351 typedef enum {
3352   QMILOCGEOFENCEDWELLTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
3353   eQMI_LOC_GEOFENCE_DWELL_TYPE_INSIDE_V02 = 1, /**<  Denotes that a client dwelled inside the Geofence  */
3354   eQMI_LOC_GEOFENCE_DWELL_TYPE_OUTSIDE_V02 = 2, /**<  Denotes that a client dwelled outside the Geofence  */
3355   QMILOCGEOFENCEDWELLTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
3356 }qmiLocGeofenceDwellTypeEnumT_v02;
3357 /**
3358     @}
3359   */
3360 
3361 /** @addtogroup loc_qmi_messages
3362     @{
3363   */
3364 /** Indication Message; Notifies the control point of a Geofence dwell event by
3365                     batching all the Geofences that were dwelled in. */
3366 typedef struct {
3367 
3368   /* Mandatory */
3369   /*  Geofence Dwell Type */
3370   qmiLocGeofenceDwellTypeEnumT_v02 dwellType;
3371   /**<   Type of dwell event generated.
3372 
3373  Valid values: \n
3374       - eQMI_LOC_GEOFENCE_DWELL_TYPE_INSIDE (1) --  Denotes that a client dwelled inside the Geofence
3375       - eQMI_LOC_GEOFENCE_DWELL_TYPE_OUTSIDE (2) --  Denotes that a client dwelled outside the Geofence
3376  */
3377 
3378   /* Optional */
3379   /*  Geofence ID Continuous */
3380   uint8_t geofenceIdContinuousList_valid;  /**< Must be set to true if geofenceIdContinuousList is being passed */
3381   uint32_t geofenceIdContinuousList_len;  /**< Must be set to # of elements in geofenceIdContinuousList */
3382   qmiLocGeofenceIdContinuousStructT_v02 geofenceIdContinuousList[QMI_LOC_MAX_GEOFENCE_ID_CONTINUOUS_LIST_LENGTH_V02];
3383   /**<   Each entry in the list contains the continuous range of Geofence IDs in which a client dwelled.
3384        This list does not overlap with the discrete Geofence ID list. */
3385 
3386   /* Optional */
3387   /*  Geofence ID Discrete */
3388   uint8_t geofenceIdDiscreteList_valid;  /**< Must be set to true if geofenceIdDiscreteList is being passed */
3389   uint32_t geofenceIdDiscreteList_len;  /**< Must be set to # of elements in geofenceIdDiscreteList */
3390   uint32_t geofenceIdDiscreteList[QMI_LOC_MAX_GEOFENCE_ID_DISCRETE_LIST_LENGTH_V02];
3391   /**<   This list contains the Geofence IDs in which a client dwelled.
3392        This list does not overlap with the continuous Geofence ID list. */
3393 
3394   /* Optional */
3395   /*  Geofence Position */
3396   uint8_t geofencePosition_valid;  /**< Must be set to true if geofencePosition is being passed */
3397   qmiLocGeofencePositionStructT_v02 geofencePosition;
3398   /**<   \n The latest position calculated by the Geofence engine when
3399        the dwell notification is sent. */
3400 
3401   /* Optional */
3402   /*  Heading Uncertainty */
3403   uint8_t headingUnc_valid;  /**< Must be set to true if headingUnc is being passed */
3404   float headingUnc;
3405   /**<   Heading uncertainty.\n
3406        - Units: Degrees \n
3407        - Range: 0 to 359.999 */
3408 
3409   /* Optional */
3410   /*  Vertical Uncertainty */
3411   uint8_t vertUnc_valid;  /**< Must be set to true if vertUnc is being passed */
3412   float vertUnc;
3413   /**<   Vertical uncertainty.\n
3414        - Units: Meters */
3415 
3416   /* Optional */
3417   /*  Speed Uncertainty */
3418   uint8_t speedUnc_valid;  /**< Must be set to true if speedUnc is being passed */
3419   float speedUnc;
3420   /**<   3-D speed uncertainty.\n
3421        - Units: Meters/second */
3422 
3423   /* Optional */
3424   /*  Horizontal Confidence */
3425   uint8_t horConfidence_valid;  /**< Must be set to true if horConfidence is being passed */
3426   uint8_t horConfidence;
3427   /**<   Horizontal uncertainty confidence.\n
3428        - Units: Percent \n
3429        - Range: 0 to 99 */
3430 
3431   /* Optional */
3432   /*  Vertical Confidence */
3433   uint8_t vertConfidence_valid;  /**< Must be set to true if vertConfidence is being passed */
3434   uint8_t vertConfidence;
3435   /**<   Vertical uncertainty confidence.\n
3436        - Units: Percent \n
3437        - Range: 0 to 99 */
3438 
3439   /* Optional */
3440   /*  Dilution of Precision */
3441   uint8_t DOP_valid;  /**< Must be set to true if DOP is being passed */
3442   qmiLocDOPStructT_v02 DOP;
3443   /**<   \vspace{0.06in} \n Dilution of precision associated with this position. */
3444 
3445   /* Optional */
3446   /*  SVs Used to Calculate the Fix */
3447   uint8_t gnssSvUsedList_valid;  /**< Must be set to true if gnssSvUsedList is being passed */
3448   uint32_t gnssSvUsedList_len;  /**< Must be set to # of elements in gnssSvUsedList */
3449   uint16_t gnssSvUsedList[QMI_LOC_MAX_SV_USED_LIST_LENGTH_V02];
3450   /**<   Each entry in the list contains the SV ID of a satellite
3451       used for calculating this position report. The following
3452       information is associated with each SV ID: \n
3453          Range:    \n
3454          - For GPS:     1 to 32 \n
3455          - For GLONASS: 65 to 96 \n
3456          - For SBAS:    120 to 158 and 183 to 187 \n
3457          - For QZSS:    193 to 197 \n
3458          - For BDS:     201 to 237 \n
3459          - For GAL:     301 to 336
3460         */
3461 }qmiLocEventGeofenceBatchedDwellIndMsgT_v02;  /* Message */
3462 /**
3463     @}
3464   */
3465 
3466 /** @addtogroup loc_qmi_enums
3467     @{
3468   */
3469 typedef enum {
3470   QMILOCGDTSERVICEIDENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
3471   eQMI_LOC_GDT_SERVICE_WWAN_V02 = 1, /**<  GDT service for WWAN UL  */
3472   eQMI_LOC_GDT_SERVICE_WWAN_DL_V02 = 2, /**<  GDT service for WWAN DL  */
3473   QMILOCGDTSERVICEIDENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
3474 }qmiLocGdtServiceIdEnumT_v02;
3475 /**
3476     @}
3477   */
3478 
3479 /** @addtogroup loc_qmi_enums
3480     @{
3481   */
3482 typedef enum {
3483   QMILOCGDTACCESSSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
3484   eQMI_LOC_GDT_ACCESS_ALLOWED_V02 = 1, /**<  GDT access to the service is allowed   */
3485   eQMI_LOC_GDT_ACCESS_FAILED_V02 = 2, /**<  Any type of GDT access error   */
3486   eQMI_LOC_GDT_ACCESS_NOT_ALLOWED_V02 = 3, /**<  GDT access to the service is not allowed   */
3487   QMILOCGDTACCESSSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
3488 }qmiLocGdtAccessStatusEnumT_v02;
3489 /**
3490     @}
3491   */
3492 
3493 /** @addtogroup loc_qmi_messages
3494     @{
3495   */
3496 /** Indication Message; Requests the control point to transfer data. */
3497 typedef struct {
3498 
3499   /* Mandatory */
3500   /*  GDT Service ID */
3501   qmiLocGdtServiceIdEnumT_v02 serviceId;
3502   /**<   Values: \n
3503 
3504       - eQMI_LOC_GDT_SERVICE_WWAN (1) --  GDT service for WWAN UL
3505       - eQMI_LOC_GDT_SERVICE_WWAN_DL (2) --  GDT service for WWAN DL  */
3506 
3507   /* Mandatory */
3508   /*  Session ID */
3509   uint32_t sessionId;
3510   /**<   Session ID. */
3511 
3512   /* Mandatory */
3513   /*  Data */
3514   uint32_t filePath_len;  /**< Must be set to # of elements in filePath */
3515   char filePath[QMI_LOC_MAX_GDT_PATH_LEN_V02];
3516   /**<   File path to the data. \n
3517          - Type: Array of bytes \n
3518          - Maximum length of the array: 255
3519     */
3520 }qmiLocEventGdtUploadBeginStatusReqIndMsgT_v02;  /* Message */
3521 /**
3522     @}
3523   */
3524 
3525 /** @addtogroup loc_qmi_enums
3526     @{
3527   */
3528 typedef enum {
3529   QMILOCGDTENDSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
3530   eQMI_LOC_GDT_SUCCESS_V02 = 1, /**<  The sent data was accepted   */
3531   eQMI_LOC_GDT_FAILED_V02 = 2, /**<  The sent data was not accepted   */
3532   eQMI_LOC_GDT_INVALID_V02 = 3, /**<  General error in the received data  */
3533   QMILOCGDTENDSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
3534 }qmiLocGdtEndStatusEnumT_v02;
3535 /**
3536     @}
3537   */
3538 
3539 /** @addtogroup loc_qmi_messages
3540     @{
3541   */
3542 /** Indication Message; Requests the control point to report the status of the
3543                     transfered data. */
3544 typedef struct {
3545 
3546   /* Mandatory */
3547   /*  GDT Service ID */
3548   qmiLocGdtServiceIdEnumT_v02 serviceId;
3549   /**<   Values: \n
3550 
3551       - eQMI_LOC_GDT_SERVICE_WWAN (1) --  GDT service for WWAN UL
3552       - eQMI_LOC_GDT_SERVICE_WWAN_DL (2) --  GDT service for WWAN DL  */
3553 
3554   /* Mandatory */
3555   /*  Session ID */
3556   uint32_t sessionId;
3557 
3558   /* Mandatory */
3559   /*  GDT End Status */
3560   qmiLocGdtEndStatusEnumT_v02 endStatus;
3561   /**<   Values: \n
3562 
3563       - eQMI_LOC_GDT_SUCCESS (1) --  The sent data was accepted
3564       - eQMI_LOC_GDT_FAILED (2) --  The sent data was not accepted
3565       - eQMI_LOC_GDT_INVALID (3) --  General error in the received data  */
3566 }qmiLocEventGdtUploadEndReqIndMsgT_v02;  /* Message */
3567 /**
3568     @}
3569   */
3570 
3571 /** @addtogroup loc_qmi_messages
3572     @{
3573   */
3574 /** Indication Message; Requests the control point to transfer data. */
3575 typedef struct {
3576 
3577   /* Mandatory */
3578   /*  GDT Service ID */
3579   qmiLocGdtServiceIdEnumT_v02 serviceId;
3580   /**<   Values: \n
3581 
3582       - eQMI_LOC_GDT_SERVICE_WWAN (1) --  GDT service for WWAN UL
3583       - eQMI_LOC_GDT_SERVICE_WWAN_DL (2) --  GDT service for WWAN DL  */
3584 
3585   /* Mandatory */
3586   /*  Session ID */
3587   uint32_t sessionId;
3588   /**<   Session ID. */
3589 
3590   /* Mandatory */
3591   /*  Interval After Which AP Must Respond to MP */
3592   uint32_t respTimeoutInterval;
3593   /**<   Interval after which the AP must respond to the MP, in seconds. */
3594 
3595   /* Mandatory */
3596   /*  Encoded GTP Client Information */
3597   uint32_t clientInfo_len;  /**< Must be set to # of elements in clientInfo */
3598   uint8_t clientInfo[QMI_LOC_MAX_GTP_CL_INFO_LEN_V02];
3599   /**<   GTP client information encoded in asn.1 format. \n
3600          - Type: Array of bytes \n
3601          - Maximum length of the array: 1500
3602     */
3603 
3604   /* Mandatory */
3605   /*  Encoded Mobile Status Data */
3606   uint32_t mobileStatusData_len;  /**< Must be set to # of elements in mobileStatusData */
3607   uint8_t mobileStatusData[QMI_LOC_MAX_GTP_MSD_LEN_V02];
3608   /**<   Mobile status data encoded in asn.1 format. \n
3609          - Type: Array of bytes \n
3610          - Maximum length of the array: 4000
3611     */
3612 
3613   /* Mandatory */
3614   /*  Data Filepath */
3615   uint32_t filePath_len;  /**< Must be set to # of elements in filePath */
3616   char filePath[QMI_LOC_MAX_GDT_PATH_LEN_V02];
3617   /**<   File path to the position data expected by the MP. \n
3618          - Type: Array of bytes \n
3619          - Maximum length of the array: 255
3620     */
3621 
3622   /* Optional */
3623   /*  Power Budget Info */
3624   uint8_t powerBudgetInfo_valid;  /**< Must be set to true if powerBudgetInfo is being passed */
3625   uint32_t powerBudgetInfo;
3626   /**<   Power budget information. */
3627 
3628   /* Optional */
3629   /*  Power Budget Allowance */
3630   uint8_t powerBudgetAllowance_valid;  /**< Must be set to true if powerBudgetAllowance is being passed */
3631   uint32_t powerBudgetAllowance;
3632   /**<   Power budget allowance. */
3633 }qmiLocEventGdtDownloadBeginReqIndMsgT_v02;  /* Message */
3634 /**
3635     @}
3636   */
3637 
3638 /** @addtogroup loc_qmi_enums
3639     @{
3640   */
3641 typedef enum {
3642   QMILOCGDTRECEIVESTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
3643   eQMI_LOC_GTP_RCV_STATUS_CONTINUE_V02 = 1, /**<  Indicates that the AP is to continue sending more partitions to the MP   */
3644   eQMI_LOC_GTP_RCV_STATUS_DONE_V02 = 2, /**<  Indicates that the AP is to stop sending partitions to the MP  */
3645   QMILOCGDTRECEIVESTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
3646 }qmiLocGdtReceiveStatusEnumT_v02;
3647 /**
3648     @}
3649   */
3650 
3651 /** @addtogroup loc_qmi_messages
3652     @{
3653   */
3654 /** Indication Message; Notifies the control point after consuming the current data transfer. */
3655 typedef struct {
3656 
3657   /* Mandatory */
3658   /*  GDT Service ID */
3659   qmiLocGdtServiceIdEnumT_v02 serviceId;
3660   /**<   Values: \n
3661 
3662       - eQMI_LOC_GDT_SERVICE_WWAN (1) --  GDT service for WWAN UL
3663       - eQMI_LOC_GDT_SERVICE_WWAN_DL (2) --  GDT service for WWAN DL  */
3664 
3665   /* Mandatory */
3666   /*  Session ID */
3667   uint32_t sessionId;
3668   /**<   Session ID. */
3669 
3670   /* Mandatory */
3671   /*  GDT Receive Status */
3672   qmiLocGdtReceiveStatusEnumT_v02 status;
3673   /**<   Status indicating the continuation or termination of sending to the AP.
3674  Valid values: \n
3675       - eQMI_LOC_GTP_RCV_STATUS_CONTINUE (1) --  Indicates that the AP is to continue sending more partitions to the MP
3676       - eQMI_LOC_GTP_RCV_STATUS_DONE (2) --  Indicates that the AP is to stop sending partitions to the MP
3677  */
3678 }qmiLocEventGdtReceiveDoneIndMsgT_v02;  /* Message */
3679 /**
3680     @}
3681   */
3682 
3683 /** @addtogroup loc_qmi_enums
3684     @{
3685   */
3686 typedef enum {
3687   QMILOCSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
3688   eQMI_LOC_SUCCESS_V02 = 0, /**<  Request was completed successfully \n  */
3689   eQMI_LOC_GENERAL_FAILURE_V02 = 1, /**<  Request failed because of a general failure \n  */
3690   eQMI_LOC_UNSUPPORTED_V02 = 2, /**<  Request failed because it is not supported \n  */
3691   eQMI_LOC_INVALID_PARAMETER_V02 = 3, /**<  Request failed because it contained invalid parameters \n  */
3692   eQMI_LOC_ENGINE_BUSY_V02 = 4, /**<  Request failed because the engine is busy \n  */
3693   eQMI_LOC_PHONE_OFFLINE_V02 = 5, /**<  Request failed because the phone is offline \n  */
3694   eQMI_LOC_TIMEOUT_V02 = 6, /**<  Request failed because it timed out \n  */
3695   eQMI_LOC_CONFIG_NOT_SUPPORTED_V02 = 7, /**<  Request failed because an undefined configuration was requested \n  */
3696   eQMI_LOC_INSUFFICIENT_MEMORY_V02 = 8, /**<  Request failed because the engine could not allocate sufficient memory for the request \n  */
3697   eQMI_LOC_MAX_GEOFENCE_PROGRAMMED_V02 = 9, /**<  Request failed because the maximum number of Geofences are already programmed \n  */
3698   eQMI_LOC_XTRA_VERSION_CHECK_FAILURE_V02 = 10, /**<  Location service failed because of an XTRA version-based file format check failure  */
3699   QMILOCSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
3700 }qmiLocStatusEnumT_v02;
3701 /**
3702     @}
3703   */
3704 
3705 /** @addtogroup loc_qmi_messages
3706     @{
3707   */
3708 /** Indication Message; Notifies the control point of the end of a download session. */
3709 typedef struct {
3710 
3711   /* Mandatory */
3712   /*  GDT Service ID */
3713   qmiLocGdtServiceIdEnumT_v02 serviceId;
3714   /**<   Values: \n
3715 
3716       - eQMI_LOC_GDT_SERVICE_WWAN (1) --  GDT service for WWAN UL
3717       - eQMI_LOC_GDT_SERVICE_WWAN_DL (2) --  GDT service for WWAN DL  */
3718 
3719   /* Mandatory */
3720   /*  Session ID */
3721   uint32_t sessionId;
3722   /**<   Session ID. */
3723 
3724   /* Mandatory */
3725   /*  GDT Download End Status */
3726   qmiLocStatusEnumT_v02 status;
3727   /**<   Status of the download session.
3728  Valid values: \n
3729       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
3730       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
3731       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
3732       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
3733       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
3734       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
3735       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
3736       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
3737       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
3738       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
3739       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
3740  */
3741 }qmiLocEventGdtDownloadEndReqIndMsgT_v02;  /* Message */
3742 /**
3743     @}
3744   */
3745 
3746 /** @addtogroup loc_qmi_messages
3747     @{
3748   */
3749 /** Request Message; Client can query the service revision using this message. */
3750 typedef struct {
3751   /* This element is a placeholder to prevent the declaration of
3752      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
3753   char __placeholder;
3754 }qmiLocGetServiceRevisionReqMsgT_v02;
3755 
3756   /* Message */
3757 /**
3758     @}
3759   */
3760 
3761 /** @addtogroup loc_qmi_messages
3762     @{
3763   */
3764 /** Indication Message; Client can query the service revision using this message. */
3765 typedef struct {
3766 
3767   /* Mandatory */
3768   /*  Get Revision Status */
3769   qmiLocStatusEnumT_v02 status;
3770   /**<   Status of the Get Revision request.
3771 
3772  Valid values: \n
3773       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
3774       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
3775       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
3776       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
3777       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
3778       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
3779       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
3780       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
3781       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
3782       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
3783       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
3784  */
3785 
3786   /* Mandatory */
3787   /*  Interface Definition Minor Revision */
3788   uint32_t revision;
3789   /**<   Revision of the service. This is the minor revision of the interface that
3790        the service implements. Minor revision updates of the service are always
3791        backward compatible. */
3792 
3793   /* Optional */
3794   /*  GNSS Measurement Engine Firmware Version String */
3795   uint8_t gnssMeFWVerString_valid;  /**< Must be set to true if gnssMeFWVerString is being passed */
3796   char gnssMeFWVerString[QMI_LOC_GNSS_ME_VERSION_STRING_MAX_LENGTH_V02 + 1];
3797   /**<   Version of the GNSS measurement engine software running under the LOC API.
3798        \begin{itemize1}
3799        \item    Type: NULL-terminated string
3800        \item    Maximum string length (including NULL terminator): 128
3801        \vspace{0.1in} \end{itemize1}
3802 
3803        \textbf{Note:} This string is only provided on platforms that have
3804        a measurement engine that supports this version string. On all other
3805        platforms, this optional TLV is not provided. */
3806 
3807   /* Optional */
3808   /*  GNSS Hosted Software Version String */
3809   uint8_t gnssHostSWVerString_valid;  /**< Must be set to true if gnssHostSWVerString is being passed */
3810   char gnssHostSWVerString[QMI_LOC_GNSS_HOSTED_SW_VERSION_STRING_MAX_LENGTH_V02 + 1];
3811   /**<   Version of the GNSS hosted software running under the LOC API.
3812        \begin{itemize1}
3813        \item    Type: NULL-terminated string
3814        \item    Maximum string length (including NULL terminator): 128
3815        \vspace{0.1in}\end{itemize1}
3816 
3817        \textbf{Note:} This string is only provided on hosted architectures
3818        (measurement and position engine running on different processors) that
3819        support this version string. On all other platforms, this optional TLV
3820        is not provided. */
3821 
3822   /* Optional */
3823   /*  GNSS Software Version String */
3824   uint8_t gnssSWVerString_valid;  /**< Must be set to true if gnssSWVerString is being passed */
3825   char gnssSWVerString[QMI_LOC_GNSS_SW_VERSION_STRING_MAX_LENGTH_V02 + 1];
3826   /**<   Aggregate version of the GNSS software.
3827        \begin{itemize1}
3828        \item    Type: NULL-terminated string
3829        \item    Maximum string length (including NULL terminator): 256
3830        \vspace{-0.18in} \end{itemize1} */
3831 }qmiLocGetServiceRevisionIndMsgT_v02;  /* Message */
3832 /**
3833     @}
3834   */
3835 
3836 /** @addtogroup loc_qmi_messages
3837     @{
3838   */
3839 /** Request Message; Gets the fix criteria from the location engine. */
3840 typedef struct {
3841   /* This element is a placeholder to prevent the declaration of
3842      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
3843   char __placeholder;
3844 }qmiLocGetFixCriteriaReqMsgT_v02;
3845 
3846   /* Message */
3847 /**
3848     @}
3849   */
3850 
3851 /** @addtogroup loc_qmi_messages
3852     @{
3853   */
3854 /** Indication Message; Gets the fix criteria from the location engine. */
3855 typedef struct {
3856 
3857   /* Mandatory */
3858   /*  Get Fix Criteria Status */
3859   qmiLocStatusEnumT_v02 status;
3860   /**<   Status of the Get Fix Criteria request.
3861 
3862  Valid values: \n
3863       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
3864       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
3865       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
3866       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
3867       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
3868       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
3869       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
3870       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
3871       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
3872       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
3873       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
3874  */
3875 
3876   /* Optional */
3877   /*  Horizontal Accuracy */
3878   uint8_t horizontalAccuracyLevel_valid;  /**< Must be set to true if horizontalAccuracyLevel is being passed */
3879   qmiLocAccuracyLevelEnumT_v02 horizontalAccuracyLevel;
3880   /**<   Horizontal accuracy level.
3881 
3882  Valid values: \n
3883       - eQMI_LOC_ACCURACY_LOW (1) --  Low accuracy
3884       - eQMI_LOC_ACCURACY_MED (2) --  Medium accuracy
3885       - eQMI_LOC_ACCURACY_HIGH (3) --  High accuracy
3886  */
3887 
3888   /* Optional */
3889   /*  Enable/Disable Intermediate Fixes */
3890   uint8_t intermediateReportState_valid;  /**< Must be set to true if intermediateReportState is being passed */
3891   qmiLocIntermediateReportStateEnumT_v02 intermediateReportState;
3892   /**<   Intermediate Report state (ON, OFF).\n
3893  The client must explicitly set this field to OFF to stop receiving
3894  intermediate position reports. Intermediate position reports are
3895  generated at 1 Hz and are ON by default. If intermediate reports
3896  are turned ON, the client receives position reports even if the
3897  accuracy criteria is not met. The status in the position report is
3898  set to IN_PROGRESS for intermediate reports.
3899 
3900  Valid values: \n
3901       - eQMI_LOC_INTERMEDIATE_REPORTS_ON (1) --  Intermediate reports are turned on
3902       - eQMI_LOC_INTERMEDIATE_REPORTS_OFF (2) --  Intermediate reports are turned off
3903  */
3904 
3905   /* Optional */
3906   /*  Minimum Interval Between Fixes */
3907   uint8_t minInterval_valid;  /**< Must be set to true if minInterval is being passed */
3908   uint32_t minInterval;
3909   /**<   Time that must elapse before alerting the client. \n
3910        - Units: Milliseconds */
3911 
3912   /* Optional */
3913   /*  ID of the Application that Sent the Position Request */
3914   uint8_t applicationId_valid;  /**< Must be set to true if applicationId is being passed */
3915   qmiLocApplicationIdStructT_v02 applicationId;
3916   /**<   \vspace{0.06in} \n Application provider, name, and version.*/
3917 
3918   /* Optional */
3919   /*  Configuration for Altitude Assumed Info in GNSS SV Info Event */
3920   uint8_t configAltitudeAssumed_valid;  /**< Must be set to true if configAltitudeAssumed is being passed */
3921   qmiLocConfigIncludeAltitudeAssumedInGnssSvInfoEnumT_v02 configAltitudeAssumed;
3922   /**<   Specifies the configuration to include Altitude Assumed information in the GNSS SV Info Event.
3923  When enabled, an additional GNSS SV Info event indication is sent to the control
3924  point that also includes the altitude assumed information.
3925 
3926  If not specified, the configuration defaults to ENABLED.
3927 
3928  Valid values: \n
3929       - eQMI_LOC_ALTITUDE_ASSUMED_IN_GNSS_SV_INFO_ENABLED (1) --  Enable Altitude Assumed information in GNSS SV Info Event.
3930       - eQMI_LOC_ALTITUDE_ASSUMED_IN_GNSS_SV_INFO_DISABLED (2) --  Disable Altitude Assumed information in GNSS SV Info Event.
3931  */
3932 
3933   /* Optional */
3934   /*  Minimum Interval Between Intermediate Position Reports */
3935   uint8_t minIntermediatePositionReportInterval_valid;  /**< Must be set to true if minIntermediatePositionReportInterval is being passed */
3936   uint32_t minIntermediatePositionReportInterval;
3937   /**<   Minimum time interval for intermediate position reports, specified by the control point,
3938        that, between the position reports elapsed time, must be longer than the interval time.
3939        If this optional value is not set or set to the default value (0), the intermediate position
3940        will be reported when it is ready. \n
3941        - Units: Milliseconds \n
3942        - Default: 0 ms
3943   */
3944 
3945   /* Optional */
3946   /*  Maximum Wait Time to Get a Position Report */
3947   uint8_t positionReportTimeout_valid;  /**< Must be set to true if positionReportTimeout is being passed */
3948   uint32_t positionReportTimeout;
3949   /**<   Maximum time to work on each fix, specified by the control point.
3950        The GPS engine returns QMI_ERR_INTERNAL if a position cannot be obtained
3951        within the positionReportTimeout value. \n
3952        - Units: Milliseconds \n
3953        - Default: 255*1000 ms \n
3954        - Range: 1000 - 255*1000 ms
3955   */
3956 
3957   /* Optional */
3958   /*  Share position report with other clients */
3959   uint8_t sharePosition_valid;  /**< Must be set to true if sharePosition is being passed */
3960   uint8_t sharePosition;
3961   /**<   Allow to share the position report with the other QMI_LOC clients \n
3962          \item    0x00(FALSE) Do not share the position report
3963          \item    0x01(TRUE)  Share the position report
3964         \vspace{-0.18in} \end{itemize1}
3965   */
3966 }qmiLocGetFixCriteriaIndMsgT_v02;  /* Message */
3967 /**
3968     @}
3969   */
3970 
3971 /** @addtogroup loc_qmi_enums
3972     @{
3973   */
3974 typedef enum {
3975   QMILOCNIUSERRESPENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
3976   eQMI_LOC_NI_LCS_NOTIFY_VERIFY_ACCEPT_V02 = 1, /**<  User accepted the Notify/Verify request  */
3977   eQMI_LOC_NI_LCS_NOTIFY_VERIFY_DENY_V02 = 2, /**<  User denied the Notify/Verify request  */
3978   eQMI_LOC_NI_LCS_NOTIFY_VERIFY_NORESP_V02 = 3, /**<  User did not respond to the Notify/Verify request  */
3979   QMILOCNIUSERRESPENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
3980 }qmiLocNiUserRespEnumT_v02;
3981 /**
3982     @}
3983   */
3984 
3985 /** @addtogroup loc_qmi_messages
3986     @{
3987   */
3988 /** Request Message; Sends the NI user response back to the engine; success or
3989                     failure is reported in a separate indication. */
3990 typedef struct {
3991 
3992   /* Mandatory */
3993   /*  User Response */
3994   qmiLocNiUserRespEnumT_v02 userResp;
3995   /**<   User accepted or denied.
3996 
3997  Valid values: \n
3998       - eQMI_LOC_NI_LCS_NOTIFY_VERIFY_ACCEPT (1) --  User accepted the Notify/Verify request
3999       - eQMI_LOC_NI_LCS_NOTIFY_VERIFY_DENY (2) --  User denied the Notify/Verify request
4000       - eQMI_LOC_NI_LCS_NOTIFY_VERIFY_NORESP (3) --  User did not respond to the Notify/Verify request
4001  */
4002 
4003   /* Mandatory */
4004   /*  Notification Type */
4005   qmiLocNiNotifyVerifyEnumT_v02 notificationType;
4006   /**<   Type of notification/verification performed.
4007 
4008  Valid values: \n
4009       - eQMI_LOC_NI_USER_NO_NOTIFY_NO_VERIFY (1) --  No notification and no verification required
4010       - eQMI_LOC_NI_USER_NOTIFY_ONLY (2) --  Notify only; no verification required
4011       - eQMI_LOC_NI_USER_NOTIFY_VERIFY_ALLOW_NO_RESP (3) --  Notify and verify, but no response required.
4012       - eQMI_LOC_NI_USER_NOTIFY_VERIFY_NOT_ALLOW_NO_RESP (4) --  Notify and verify, and require a response
4013       - eQMI_LOC_NI_USER_NOTIFY_VERIFY_PRIVACY_OVERRIDE (5) --  Notify and verify; privacy override
4014  */
4015 
4016   /* Optional */
4017   /*  Network Initiated Vx Request */
4018   uint8_t NiVxPayload_valid;  /**< Must be set to true if NiVxPayload is being passed */
4019   qmiLocNiVxNotifyVerifyStructT_v02 NiVxPayload;
4020   /**<   \vspace{0.06in} \n Optional NI VX request payload. */
4021 
4022   /* Optional */
4023   /*  Network Initiated SUPL Request */
4024   uint8_t NiSuplPayload_valid;  /**< Must be set to true if NiSuplPayload is being passed */
4025   qmiLocNiSuplNotifyVerifyStructT_v02 NiSuplPayload;
4026   /**<   \vspace{0.06in} \n Optional NI SUPL request payload. */
4027 
4028   /* Optional */
4029   /*  Network Initiated UMTS Control Plane Request */
4030   uint8_t NiUmtsCpPayload_valid;  /**< Must be set to true if NiUmtsCpPayload is being passed */
4031   qmiLocNiUmtsCpNotifyVerifyStructT_v02 NiUmtsCpPayload;
4032   /**<   \vspace{0.06in} \n Optional NI UMTS-CP request payload. */
4033 
4034   /* Optional */
4035   /*  Network Initiated Service Interaction Request */
4036   uint8_t NiVxServiceInteractionPayload_valid;  /**< Must be set to true if NiVxServiceInteractionPayload is being passed */
4037   qmiLocNiVxServiceInteractionStructT_v02 NiVxServiceInteractionPayload;
4038   /**<   \vspace{0.06in} \n Optional NI service interaction payload. */
4039 
4040   /* Optional */
4041   /*  Network Initiated SUPL Version 2 Extension */
4042   uint8_t NiSuplVer2ExtPayload_valid;  /**< Must be set to true if NiSuplVer2ExtPayload is being passed */
4043   qmiLocNiSuplVer2ExtStructT_v02 NiSuplVer2ExtPayload;
4044   /**<   \vspace{0.06in} \n Optional SUPL Version 2 Extension payload. */
4045 
4046   /* Optional */
4047   /*  SUPL Emergency Notification */
4048   uint8_t suplEmergencyNotification_valid;  /**< Must be set to true if suplEmergencyNotification is being passed */
4049   qmiLocEmergencyNotificationStructT_v02 suplEmergencyNotification;
4050   /**<    \vspace{0.06in} \n SUPL emergency notification payload. Emergency notification
4051         can be given even without an ESLP address */
4052 }qmiLocNiUserRespReqMsgT_v02;  /* Message */
4053 /**
4054     @}
4055   */
4056 
4057 /** @addtogroup loc_qmi_messages
4058     @{
4059   */
4060 /** Indication Message; Sends the NI user response back to the engine; success or
4061                     failure is reported in a separate indication. */
4062 typedef struct {
4063 
4064   /* Mandatory */
4065   /*  NI User Response Status */
4066   qmiLocStatusEnumT_v02 status;
4067   /**<   Status of the NI User Response request.
4068 
4069  Valid values: \n
4070       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
4071       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
4072       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
4073       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
4074       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
4075       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
4076       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
4077       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
4078       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
4079       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
4080       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
4081  */
4082 }qmiLocNiUserRespIndMsgT_v02;  /* Message */
4083 /**
4084     @}
4085   */
4086 
4087 /** @addtogroup loc_qmi_enums
4088     @{
4089   */
4090 typedef enum {
4091   QMILOCPREDICTEDORBITSDATAFORMATENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
4092   eQMI_LOC_PREDICTED_ORBITS_XTRA_V02 = 0, /**<  Default is QCOM-XTRA format.  */
4093   QMILOCPREDICTEDORBITSDATAFORMATENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
4094 }qmiLocPredictedOrbitsDataFormatEnumT_v02;
4095 /**
4096     @}
4097   */
4098 
4099 /** @addtogroup loc_qmi_messages
4100     @{
4101   */
4102 /** Request Message; Injects predicted orbits data. */
4103 typedef struct {
4104 
4105   /* Mandatory */
4106   /*  Total Size */
4107   uint32_t totalSize;
4108   /**<   Total size of the predicted orbits data to be injected. \n
4109         - Units: Bytes */
4110 
4111   /* Mandatory */
4112   /*  Total Parts */
4113   uint16_t totalParts;
4114   /**<   Total number of parts into which the predicted orbits data is
4115         divided. */
4116 
4117   /* Mandatory */
4118   /*  Part Number */
4119   uint16_t partNum;
4120   /**<   Number of the current predicted orbits data part; starts at 1. */
4121 
4122   /* Mandatory */
4123   /*  Data */
4124   uint32_t partData_len;  /**< Must be set to # of elements in partData */
4125   char partData[QMI_LOC_MAX_PREDICTED_ORBITS_PART_LEN_V02];
4126   /**<   Predicted orbits data. \n
4127          - Type: Array of bytes \n
4128          - Maximum length of the array: 1024
4129     */
4130 
4131   /* Optional */
4132   /*  Format Type */
4133   uint8_t formatType_valid;  /**< Must be set to true if formatType is being passed */
4134   qmiLocPredictedOrbitsDataFormatEnumT_v02 formatType;
4135   /**<   Predicted orbits data format. \n
4136  Valid values: \n
4137       - eQMI_LOC_PREDICTED_ORBITS_XTRA (0) --  Default is QCOM-XTRA format.
4138  */
4139 }qmiLocInjectPredictedOrbitsDataReqMsgT_v02;  /* Message */
4140 /**
4141     @}
4142   */
4143 
4144 /** @addtogroup loc_qmi_messages
4145     @{
4146   */
4147 /** Indication Message; Injects predicted orbits data. */
4148 typedef struct {
4149 
4150   /* Mandatory */
4151   /*  Data Injection Status */
4152   qmiLocStatusEnumT_v02 status;
4153   /**<   Status of the Data Injection request.
4154 
4155  Valid values: \n
4156       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
4157       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
4158       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
4159       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
4160       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
4161       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
4162       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
4163       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
4164       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
4165       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
4166       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
4167  */
4168 
4169   /* Optional */
4170   /*  Part Number */
4171   uint8_t partNum_valid;  /**< Must be set to true if partNum is being passed */
4172   uint16_t partNum;
4173   /**<   Number of the predicted orbits data part for which this indication
4174       is sent; starts at 1. */
4175 }qmiLocInjectPredictedOrbitsDataIndMsgT_v02;  /* Message */
4176 /**
4177     @}
4178   */
4179 
4180 /** @addtogroup loc_qmi_messages
4181     @{
4182   */
4183 /** Request Message; Gets the predicted orbits data source. */
4184 typedef struct {
4185   /* This element is a placeholder to prevent the declaration of
4186      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
4187   char __placeholder;
4188 }qmiLocGetPredictedOrbitsDataSourceReqMsgT_v02;
4189 
4190   /* Message */
4191 /**
4192     @}
4193   */
4194 
4195 /** @addtogroup loc_qmi_messages
4196     @{
4197   */
4198 /** Indication Message; Gets the predicted orbits data source. */
4199 typedef struct {
4200 
4201   /* Mandatory */
4202   /*  Predicted Orbits Data Source Status */
4203   qmiLocStatusEnumT_v02 status;
4204   /**<   Status of the query request for a predicted orbits data source.
4205 
4206  Valid values: \n
4207       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
4208       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
4209       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
4210       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
4211       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
4212       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
4213       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
4214       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
4215       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
4216       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
4217       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
4218  */
4219 
4220   /* Optional */
4221   /*  Allowed Sizes */
4222   uint8_t allowedSizes_valid;  /**< Must be set to true if allowedSizes is being passed */
4223   qmiLocPredictedOrbitsAllowedSizesStructT_v02 allowedSizes;
4224   /**<   \n Maximum part and file size allowed to be injected in the engine. */
4225 
4226   /* Optional */
4227   /*  Server List */
4228   uint8_t serverList_valid;  /**< Must be set to true if serverList is being passed */
4229   qmiLocPredictedOrbitsServerListStructT_v02 serverList;
4230   /**<   \n List of servers that can be used by the client to download
4231        predicted orbits data. */
4232 }qmiLocGetPredictedOrbitsDataSourceIndMsgT_v02;  /* Message */
4233 /**
4234     @}
4235   */
4236 
4237 /** @addtogroup loc_qmi_messages
4238     @{
4239   */
4240 /** Request Message; Gets the predicted orbits data validity. */
4241 typedef struct {
4242   /* This element is a placeholder to prevent the declaration of
4243      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
4244   char __placeholder;
4245 }qmiLocGetPredictedOrbitsDataValidityReqMsgT_v02;
4246 
4247   /* Message */
4248 /**
4249     @}
4250   */
4251 
4252 /** @addtogroup loc_qmi_aggregates
4253     @{
4254   */
4255 typedef struct {
4256 
4257   uint64_t startTimeInUTC;
4258   /**<   Predicted orbits data is valid starting from this time. \n
4259        - Units: Seconds (since Jan. 1, 1970)
4260         */
4261 
4262   uint16_t durationHours;
4263   /**<   Duration from the start time for which the data is valid.\n
4264        - Units: Hours
4265         */
4266 }qmiLocPredictedOrbitsDataValidityStructT_v02;  /* Type */
4267 /**
4268     @}
4269   */
4270 
4271 /** @addtogroup loc_qmi_messages
4272     @{
4273   */
4274 /** Indication Message; Gets the predicted orbits data validity. */
4275 typedef struct {
4276 
4277   /* Mandatory */
4278   /*  Predicted Orbits Data Validity Status */
4279   qmiLocStatusEnumT_v02 status;
4280   /**<   Status of the query request for predicted orbits data validity.
4281 
4282  Valid values: \n
4283       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
4284       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
4285       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
4286       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
4287       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
4288       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
4289       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
4290       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
4291       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
4292       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
4293       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
4294  */
4295 
4296   /* Optional */
4297   /*  Validity Info */
4298   uint8_t validityInfo_valid;  /**< Must be set to true if validityInfo is being passed */
4299   qmiLocPredictedOrbitsDataValidityStructT_v02 validityInfo;
4300 }qmiLocGetPredictedOrbitsDataValidityIndMsgT_v02;  /* Message */
4301 /**
4302     @}
4303   */
4304 
4305 /** @addtogroup loc_qmi_messages
4306     @{
4307   */
4308 /** Request Message; Injects UTC time in the location engine. */
4309 typedef struct {
4310 
4311   /* Mandatory */
4312   /*  UTC Time */
4313   uint64_t timeUtc;
4314   /**<   UTC time since Jan. 1, 1970.\n
4315        - Units: Milliseconds */
4316 
4317   /* Mandatory */
4318   /*  Time Uncertainty */
4319   uint32_t timeUnc;
4320   /**<   Time uncertainty.\n
4321        - Units: Milliseconds */
4322 }qmiLocInjectUtcTimeReqMsgT_v02;  /* Message */
4323 /**
4324     @}
4325   */
4326 
4327 /** @addtogroup loc_qmi_messages
4328     @{
4329   */
4330 /** Indication Message; Injects UTC time in the location engine. */
4331 typedef struct {
4332 
4333   /* Mandatory */
4334   /*  UTC Time Injection Status */
4335   qmiLocStatusEnumT_v02 status;
4336   /**<   Status of the UTC Time Injection request.
4337 
4338  Valid values: \n
4339       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
4340       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
4341       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
4342       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
4343       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
4344       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
4345       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
4346       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
4347       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
4348       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
4349       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
4350  */
4351 }qmiLocInjectUtcTimeIndMsgT_v02;  /* Message */
4352 /**
4353     @}
4354   */
4355 
4356 /** @addtogroup loc_qmi_enums
4357     @{
4358   */
4359 typedef enum {
4360   QMILOCALTSRCENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
4361   eQMI_LOC_ALT_SRC_UNKNOWN_V02 = 0, /**<  Source is unknown  */
4362   eQMI_LOC_ALT_SRC_GPS_V02 = 1, /**<  GPS is the source  */
4363   eQMI_LOC_ALT_SRC_CELL_ID_V02 = 2, /**<  Cell ID provided the source  */
4364   eQMI_LOC_ALT_SRC_ENHANCED_CELL_ID_V02 = 3, /**<  Source is enhanced cell ID  */
4365   eQMI_LOC_ALT_SRC_WIFI_V02 = 4, /**<  Wi-Fi is the source  */
4366   eQMI_LOC_ALT_SRC_TERRESTRIAL_V02 = 5, /**<  Terrestrial source  */
4367   eQMI_LOC_ALT_SRC_TERRESTRIAL_HYBRID_V02 = 6, /**<  Hybrid terrestrial source  */
4368   eQMI_LOC_ALT_SRC_ALTITUDE_DATABASE_V02 = 7, /**<  Altitude database is the source  */
4369   eQMI_LOC_ALT_SRC_BAROMETRIC_ALTIMETER_V02 = 8, /**<  Barometric altimeter is the source  */
4370   eQMI_LOC_ALT_SRC_OTHER_V02 = 9, /**<  Other sources  */
4371   QMILOCALTSRCENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
4372 }qmiLocAltSrcEnumT_v02;
4373 /**
4374     @}
4375   */
4376 
4377 /** @addtogroup loc_qmi_enums
4378     @{
4379   */
4380 typedef enum {
4381   QMILOCALTSRCLINKAGEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
4382   eQMI_LOC_ALT_SRC_LINKAGE_NOT_SPECIFIED_V02 = 0, /**<  Not specified  */
4383   eQMI_LOC_ALT_SRC_LINKAGE_FULLY_INTERDEPENDENT_V02 = 1, /**<  Fully interdependent  */
4384   eQMI_LOC_ALT_SRC_LINKAGE_DEPENDS_ON_LAT_LONG_V02 = 2, /**<  Depends on latitude and longitude  */
4385   eQMI_LOC_ALT_SRC_LINKAGE_FULLY_INDEPENDENT_V02 = 3, /**<  Fully independent  */
4386   QMILOCALTSRCLINKAGEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
4387 }qmiLocAltSrcLinkageEnumT_v02;
4388 /**
4389     @}
4390   */
4391 
4392 /** @addtogroup loc_qmi_enums
4393     @{
4394   */
4395 typedef enum {
4396   QMILOCALTSRCUNCERTAINTYCOVERAGEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
4397   eQMI_LOC_ALT_UNCERTAINTY_NOT_SPECIFIED_V02 = 0, /**<  Not specified  */
4398   eQMI_LOC_ALT_UNCERTAINTY_POINT_V02 = 1, /**<  Altitude uncertainty is valid at the injected horizontal
4399        position coordinates only  */
4400   eQMI_LOC_ALT_UNCERTAINTY_FULL_V02 = 2, /**<  Altitude uncertainty applies to the position of the device
4401        regardless of horizontal position (within the horizontal
4402        uncertainty region, if provided)  */
4403   QMILOCALTSRCUNCERTAINTYCOVERAGEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
4404 }qmiLocAltSrcUncertaintyCoverageEnumT_v02;
4405 /**
4406     @}
4407   */
4408 
4409 /** @addtogroup loc_qmi_aggregates
4410     @{
4411   */
4412 typedef struct {
4413 
4414   qmiLocAltSrcEnumT_v02 source;
4415   /**<   Specifies the source of the altitude.
4416 
4417  Valid values: \n
4418       - eQMI_LOC_ALT_SRC_UNKNOWN (0) --  Source is unknown
4419       - eQMI_LOC_ALT_SRC_GPS (1) --  GPS is the source
4420       - eQMI_LOC_ALT_SRC_CELL_ID (2) --  Cell ID provided the source
4421       - eQMI_LOC_ALT_SRC_ENHANCED_CELL_ID (3) --  Source is enhanced cell ID
4422       - eQMI_LOC_ALT_SRC_WIFI (4) --  Wi-Fi is the source
4423       - eQMI_LOC_ALT_SRC_TERRESTRIAL (5) --  Terrestrial source
4424       - eQMI_LOC_ALT_SRC_TERRESTRIAL_HYBRID (6) --  Hybrid terrestrial source
4425       - eQMI_LOC_ALT_SRC_ALTITUDE_DATABASE (7) --  Altitude database is the source
4426       - eQMI_LOC_ALT_SRC_BAROMETRIC_ALTIMETER (8) --  Barometric altimeter is the source
4427       - eQMI_LOC_ALT_SRC_OTHER (9) --  Other sources
4428  */
4429 
4430   qmiLocAltSrcLinkageEnumT_v02 linkage;
4431   /**<   Specifies the dependency between the horizontal and
4432  altitude position components.
4433 
4434  Valid values: \n
4435       - eQMI_LOC_ALT_SRC_LINKAGE_NOT_SPECIFIED (0) --  Not specified
4436       - eQMI_LOC_ALT_SRC_LINKAGE_FULLY_INTERDEPENDENT (1) --  Fully interdependent
4437       - eQMI_LOC_ALT_SRC_LINKAGE_DEPENDS_ON_LAT_LONG (2) --  Depends on latitude and longitude
4438       - eQMI_LOC_ALT_SRC_LINKAGE_FULLY_INDEPENDENT (3) --  Fully independent
4439  */
4440 
4441   qmiLocAltSrcUncertaintyCoverageEnumT_v02 coverage;
4442   /**<   Specifies the region of uncertainty.
4443 
4444  Valid values: \n
4445       - eQMI_LOC_ALT_UNCERTAINTY_NOT_SPECIFIED (0) --  Not specified
4446       - eQMI_LOC_ALT_UNCERTAINTY_POINT (1) --  Altitude uncertainty is valid at the injected horizontal
4447        position coordinates only
4448       - eQMI_LOC_ALT_UNCERTAINTY_FULL (2) --  Altitude uncertainty applies to the position of the device
4449        regardless of horizontal position (within the horizontal
4450        uncertainty region, if provided)
4451  */
4452 }qmiLocAltitudeSrcInfoStructT_v02;  /* Type */
4453 /**
4454     @}
4455   */
4456 
4457 /** @addtogroup loc_qmi_enums
4458     @{
4459   */
4460 typedef enum {
4461   QMILOCPOSITIONSRCENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
4462   eQMI_LOC_POSITION_SRC_GNSS_V02 = 0, /**<  Position source is GNSS  */
4463   eQMI_LOC_POSITION_SRC_CELLID_V02 = 1, /**<  Position source is Cell ID  */
4464   eQMI_LOC_POSITION_SRC_ENH_CELLID_V02 = 2, /**<  Position source is Enhanced Cell ID  */
4465   eQMI_LOC_POSITION_SRC_WIFI_V02 = 3, /**<  Position source is Wi-Fi  */
4466   eQMI_LOC_POSITION_SRC_TERRESTRIAL_V02 = 4, /**<  Position source is Terrestrial  */
4467   eQMI_LOC_POSITION_SRC_GNSS_TERRESTRIAL_HYBRID_V02 = 5, /**<  Position source is GNSS Terrestrial Hybrid  */
4468   eQMI_LOC_POSITION_SRC_OTHER_V02 = 6, /**<  Other sources  */
4469   QMILOCPOSITIONSRCENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
4470 }qmiLocPositionSrcEnumT_v02;
4471 /**
4472     @}
4473   */
4474 
4475 /** @addtogroup loc_qmi_messages
4476     @{
4477   */
4478 /** Request Message; Injects a position to the location engine. */
4479 typedef struct {
4480 
4481   /* Optional */
4482   /*  Latitude */
4483   uint8_t latitude_valid;  /**< Must be set to true if latitude is being passed */
4484   double latitude;
4485   /**<   Latitude (specified in WGS84 datum).
4486        \begin{itemize1}
4487        \item    Type: Floating point
4488        \item    Units: Degrees
4489        \item    Range: -90.0 to 90.0       \begin{itemize1}
4490          \item    Positive values indicate northern latitude
4491          \item    Negative values indicate southern latitude
4492        \vspace{-0.18in} \end{itemize1} \end{itemize1}
4493     */
4494 
4495   /* Optional */
4496   /*  Longitude */
4497   uint8_t longitude_valid;  /**< Must be set to true if longitude is being passed */
4498   double longitude;
4499   /**<   Longitude (specified in WGS84 datum).
4500        \begin{itemize1}
4501        \item    Type: Floating point
4502        \item    Units: Degrees
4503        \item    Range: -180.0 to 180.0     \begin{itemize1}
4504          \item    Positive values indicate eastern longitude
4505          \item    Negative values indicate western longitude
4506        \vspace{-0.18in} \end{itemize1} \end{itemize1}
4507    */
4508 
4509   /* Optional */
4510   /*  Circular Horizontal Uncertainty */
4511   uint8_t horUncCircular_valid;  /**< Must be set to true if horUncCircular is being passed */
4512   float horUncCircular;
4513   /**<   Horizontal position uncertainty (circular).\n
4514         - Units: Meters */
4515 
4516   /* Optional */
4517   /*  Horizontal Confidence */
4518   uint8_t horConfidence_valid;  /**< Must be set to true if horConfidence is being passed */
4519   uint8_t horConfidence;
4520   /**<   Horizontal confidence, as defined by ETSI TS 101 109 (3GPP \hyperref[TS 03.32]{TS 03.32).
4521         \begin{itemize1}
4522         \item    Units: Percent (1 to 99)
4523         \item    0, 101 to 255 -- invalid value
4524         \item    If 100 is received, reinterpret to 99
4525         \end{itemize1}
4526         This field must be specified together with horizontal uncertainty.
4527         If not specified when horUncCircular is set, the default value is 50. */
4528 
4529   /* Optional */
4530   /*  Horizontal Reliability */
4531   uint8_t horReliability_valid;  /**< Must be set to true if horReliability is being passed */
4532   qmiLocReliabilityEnumT_v02 horReliability;
4533   /**<   Specifies the reliability of the horizontal position.
4534 
4535  Valid values: \n
4536       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
4537       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
4538       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
4539       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
4540       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
4541  */
4542 
4543   /* Optional */
4544   /*  Altitude With Respect to Ellipsoid */
4545   uint8_t altitudeWrtEllipsoid_valid;  /**< Must be set to true if altitudeWrtEllipsoid is being passed */
4546   float altitudeWrtEllipsoid;
4547   /**<   Altitude with respect to the WGS84 ellipsoid.
4548         \begin{itemize1}
4549         \item    Units: Meters    \begin{itemize1}
4550           \item    Positive = height
4551           \item    Negative = depth
4552         \vspace{-0.18in} \end{itemize1} \end{itemize1}*/
4553 
4554   /* Optional */
4555   /*  Altitude With Respect to Sea Level */
4556   uint8_t altitudeWrtMeanSeaLevel_valid;  /**< Must be set to true if altitudeWrtMeanSeaLevel is being passed */
4557   float altitudeWrtMeanSeaLevel;
4558   /**<   Altitude with respect to mean sea level.\n
4559        - Units: Meters */
4560 
4561   /* Optional */
4562   /*  Vertical Uncertainty */
4563   uint8_t vertUnc_valid;  /**< Must be set to true if vertUnc is being passed */
4564   float vertUnc;
4565   /**<   Vertical uncertainty. This is mandatory if either altitudeWrtEllipsoid
4566         or altitudeWrtMeanSeaLevel is specified.\n
4567         - Units: Meters */
4568 
4569   /* Optional */
4570   /*  Vertical Confidence */
4571   uint8_t vertConfidence_valid;  /**< Must be set to true if vertConfidence is being passed */
4572   uint8_t vertConfidence;
4573   /**<   Vertical confidence, as defined by  ETSI TS 101 109 (3GPP \hyperref[TS 03.32]{TS 03.32}).
4574         \begin{itemize1}
4575         \item    Units: Percent (0-99)
4576         \item    0 -- invalid value
4577         \item    100 to 256 -- not used
4578         \item    If 100 is received, reinterpret to 99
4579         \end{itemize1}
4580         This field must be specified together with the vertical uncertainty.
4581         If not specified, the default value will be 50. */
4582 
4583   /* Optional */
4584   /*  Vertical Reliability */
4585   uint8_t vertReliability_valid;  /**< Must be set to true if vertReliability is being passed */
4586   qmiLocReliabilityEnumT_v02 vertReliability;
4587   /**<   Specifies the reliability of the vertical position.
4588 
4589  Valid values: \n
4590       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
4591       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
4592       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
4593       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
4594       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
4595  */
4596 
4597   /* Optional */
4598   /*  Altitude Source Info */
4599   uint8_t altSourceInfo_valid;  /**< Must be set to true if altSourceInfo is being passed */
4600   qmiLocAltitudeSrcInfoStructT_v02 altSourceInfo;
4601   /**<   \vspace{0.06in} \n Specifies information regarding the altitude source. */
4602 
4603   /* Optional */
4604   /*  UTC Timestamp */
4605   uint8_t timestampUtc_valid;  /**< Must be set to true if timestampUtc is being passed */
4606   uint64_t timestampUtc;
4607   /**<   UTC timestamp. \n
4608         - Units: Milliseconds (since Jan. 1, 1970) */
4609 
4610   /* Optional */
4611   /*  Position Age */
4612   uint8_t timestampAge_valid;  /**< Must be set to true if timestampAge is being passed */
4613   int32_t timestampAge;
4614   /**<   Position age, which is an estimate of how long ago this fix was made. \n
4615         - Units: Milliseconds */
4616 
4617   /* Optional */
4618   /*  Position Source */
4619   uint8_t positionSrc_valid;  /**< Must be set to true if positionSrc is being passed */
4620   qmiLocPositionSrcEnumT_v02 positionSrc;
4621   /**<   Source from which this position was obtained.
4622 
4623  Valid values: \n
4624       - eQMI_LOC_POSITION_SRC_GNSS (0) --  Position source is GNSS
4625       - eQMI_LOC_POSITION_SRC_CELLID (1) --  Position source is Cell ID
4626       - eQMI_LOC_POSITION_SRC_ENH_CELLID (2) --  Position source is Enhanced Cell ID
4627       - eQMI_LOC_POSITION_SRC_WIFI (3) --  Position source is Wi-Fi
4628       - eQMI_LOC_POSITION_SRC_TERRESTRIAL (4) --  Position source is Terrestrial
4629       - eQMI_LOC_POSITION_SRC_GNSS_TERRESTRIAL_HYBRID (5) --  Position source is GNSS Terrestrial Hybrid
4630       - eQMI_LOC_POSITION_SRC_OTHER (6) --  Other sources
4631 
4632  If altitude is specified and the altitude source is not specified, the engine
4633  assumes that the altitude was obtained using the specified position source. \n
4634  If both altitude and altitude source are specified, the engine assumes
4635  that only latitude and longitude were obtained using the specified position
4636  source.
4637  */
4638 
4639   /* Optional */
4640   /*  Raw Circular Horizontal Uncertainty */
4641   uint8_t rawHorUncCircular_valid;  /**< Must be set to true if rawHorUncCircular is being passed */
4642   float rawHorUncCircular;
4643   /**<   Horizontal position uncertainty (circular) without any optimization.\n
4644         - Units: Meters */
4645 
4646   /* Optional */
4647   /*  Raw Horizontal Confidence */
4648   uint8_t rawHorConfidence_valid;  /**< Must be set to true if rawHorConfidence is being passed */
4649   uint8_t rawHorConfidence;
4650   /**<   Horizontal confidence associated with raw horizontal uncertainty,
4651         as defined by ETSI TS 101 109 (3GPP \hyperref[TS 03.32]{TS 03.32}).
4652         \begin{itemize1}
4653         \item    Units: Percent (1 to 99)
4654         \item    0, 101 to 255 -- invalid value
4655         \item    If 100 is received, reinterpret to 99
4656         \end{itemize1}
4657         This field must be specified together with raw horizontal uncertainty.
4658         If not specified when rawHorUncCircular is set, the default value is 50. */
4659 }qmiLocInjectPositionReqMsgT_v02;  /* Message */
4660 /**
4661     @}
4662   */
4663 
4664 /** @addtogroup loc_qmi_messages
4665     @{
4666   */
4667 /** Indication Message; Injects a position to the location engine. */
4668 typedef struct {
4669 
4670   /* Mandatory */
4671   /*  UTC Position Injection Status */
4672   qmiLocStatusEnumT_v02 status;
4673   /**<   Status of the UTC Position Injection request.
4674 
4675  Valid values: \n
4676       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
4677       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
4678       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
4679       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
4680       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
4681       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
4682       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
4683       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
4684       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
4685       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
4686       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
4687  */
4688 }qmiLocInjectPositionIndMsgT_v02;  /* Message */
4689 /**
4690     @}
4691   */
4692 
4693 /** @addtogroup loc_qmi_enums
4694     @{
4695   */
4696 typedef enum {
4697   QMILOCLOCKENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
4698   eQMI_LOC_LOCK_NONE_V02 = 1, /**<  Do not lock any position sessions  */
4699   eQMI_LOC_LOCK_MI_V02 = 2, /**<  Lock mobile-initiated position sessions  */
4700   eQMI_LOC_LOCK_MT_V02 = 3, /**<  Lock mobile-terminated position sessions  */
4701   eQMI_LOC_LOCK_ALL_V02 = 4, /**<  Lock all position sessions  */
4702   QMILOCLOCKENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
4703 }qmiLocLockEnumT_v02;
4704 /**
4705     @}
4706   */
4707 
4708 /** @addtogroup loc_qmi_messages
4709     @{
4710   */
4711 /** Request Message; Sets the location engine lock. */
4712 typedef struct {
4713 
4714   /* Mandatory */
4715   /*  Lock Type */
4716   qmiLocLockEnumT_v02 lockType;
4717   /**<   Type of lock.
4718 
4719  Valid values: \n
4720       - eQMI_LOC_LOCK_NONE (1) --  Do not lock any position sessions
4721       - eQMI_LOC_LOCK_MI (2) --  Lock mobile-initiated position sessions
4722       - eQMI_LOC_LOCK_MT (3) --  Lock mobile-terminated position sessions
4723       - eQMI_LOC_LOCK_ALL (4) --  Lock all position sessions
4724  */
4725 }qmiLocSetEngineLockReqMsgT_v02;  /* Message */
4726 /**
4727     @}
4728   */
4729 
4730 /** @addtogroup loc_qmi_messages
4731     @{
4732   */
4733 /** Indication Message; Sets the location engine lock. */
4734 typedef struct {
4735 
4736   /* Mandatory */
4737   /*  Set Engine Lock Status */
4738   qmiLocStatusEnumT_v02 status;
4739   /**<   Status of the Set Engine Lock request.
4740 
4741  Valid values: \n
4742       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
4743       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
4744       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
4745       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
4746       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
4747       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
4748       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
4749       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
4750       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
4751       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
4752       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
4753  */
4754 }qmiLocSetEngineLockIndMsgT_v02;  /* Message */
4755 /**
4756     @}
4757   */
4758 
4759 /** @addtogroup loc_qmi_messages
4760     @{
4761   */
4762 /** Request Message; Gets the location engine lock. */
4763 typedef struct {
4764   /* This element is a placeholder to prevent the declaration of
4765      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
4766   char __placeholder;
4767 }qmiLocGetEngineLockReqMsgT_v02;
4768 
4769   /* Message */
4770 /**
4771     @}
4772   */
4773 
4774 /** @addtogroup loc_qmi_messages
4775     @{
4776   */
4777 /** Indication Message; Gets the location engine lock. */
4778 typedef struct {
4779 
4780   /* Mandatory */
4781   /*  Get Engine Lock Status */
4782   qmiLocStatusEnumT_v02 status;
4783   /**<   Status of the Get Engine Lock request.
4784 
4785  Valid values: \n
4786       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
4787       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
4788       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
4789       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
4790       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
4791       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
4792       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
4793       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
4794       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
4795       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
4796       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
4797  */
4798 
4799   /* Optional */
4800   /*  Lock Type */
4801   uint8_t lockType_valid;  /**< Must be set to true if lockType is being passed */
4802   qmiLocLockEnumT_v02 lockType;
4803   /**<   Type of lock.
4804 
4805  Valid values: \n
4806       - eQMI_LOC_LOCK_NONE (1) --  Do not lock any position sessions
4807       - eQMI_LOC_LOCK_MI (2) --  Lock mobile-initiated position sessions
4808       - eQMI_LOC_LOCK_MT (3) --  Lock mobile-terminated position sessions
4809       - eQMI_LOC_LOCK_ALL (4) --  Lock all position sessions
4810  */
4811 }qmiLocGetEngineLockIndMsgT_v02;  /* Message */
4812 /**
4813     @}
4814   */
4815 
4816 /** @addtogroup loc_qmi_messages
4817     @{
4818   */
4819 /** Request Message; Sets the SBAS configuration. */
4820 typedef struct {
4821 
4822   /* Mandatory */
4823   /*  SBAS Config */
4824   uint8_t sbasConfig;
4825   /**<   Indicates whether SBAS configuration is enabled.
4826        \begin{itemize1}
4827        \item    0x01 (TRUE) -- SBAS configuration is enabled
4828        \item    0x00 (FALSE) -- SBAS configuration is disabled
4829        \vspace{-0.18in} \end{itemize1}*/
4830 }qmiLocSetSbasConfigReqMsgT_v02;  /* Message */
4831 /**
4832     @}
4833   */
4834 
4835 /** @addtogroup loc_qmi_messages
4836     @{
4837   */
4838 /** Indication Message; Sets the SBAS configuration. */
4839 typedef struct {
4840 
4841   /* Mandatory */
4842   /*  Set SBAS Config Status */
4843   qmiLocStatusEnumT_v02 status;
4844   /**<   Status of the Set SBAS Configuration request.
4845 
4846  Valid values: \n
4847       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
4848       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
4849       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
4850       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
4851       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
4852       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
4853       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
4854       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
4855       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
4856       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
4857       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
4858  */
4859 }qmiLocSetSbasConfigIndMsgT_v02;  /* Message */
4860 /**
4861     @}
4862   */
4863 
4864 /** @addtogroup loc_qmi_messages
4865     @{
4866   */
4867 /** Request Message; Gets the SBAS configuration from the location engine. */
4868 typedef struct {
4869   /* This element is a placeholder to prevent the declaration of
4870      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
4871   char __placeholder;
4872 }qmiLocGetSbasConfigReqMsgT_v02;
4873 
4874   /* Message */
4875 /**
4876     @}
4877   */
4878 
4879 /** @addtogroup loc_qmi_messages
4880     @{
4881   */
4882 /** Indication Message; Gets the SBAS configuration from the location engine. */
4883 typedef struct {
4884 
4885   /* Mandatory */
4886   /*  Get SBAS Config Status */
4887   qmiLocStatusEnumT_v02 status;
4888   /**<   Status of the Get SBAS Configuration request.
4889 
4890  Valid values: \n
4891       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
4892       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
4893       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
4894       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
4895       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
4896       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
4897       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
4898       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
4899       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
4900       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
4901       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
4902  */
4903 
4904   /* Optional */
4905   /*  SBAS Config */
4906   uint8_t sbasConfig_valid;  /**< Must be set to true if sbasConfig is being passed */
4907   uint8_t sbasConfig;
4908   /**<   Indicates whether SBAS configuration is enabled.
4909        \begin{itemize1}
4910        \item    0x01 (TRUE) -- SBAS configuration is enabled
4911        \item    0x00 (FALSE) -- SBAS configuration is disabled
4912        \vspace{-0.18in} \end{itemize1}*/
4913 }qmiLocGetSbasConfigIndMsgT_v02;  /* Message */
4914 /**
4915     @}
4916   */
4917 
4918 typedef uint32_t qmiLocNmeaSentenceMaskT_v02;
4919 #define QMI_LOC_NMEA_MASK_GGA_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000001) /**<  Enable GGA type  */
4920 #define QMI_LOC_NMEA_MASK_RMC_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000002) /**<  Enable RMC type  */
4921 #define QMI_LOC_NMEA_MASK_GSV_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000004) /**<  Enable GSV type  */
4922 #define QMI_LOC_NMEA_MASK_GSA_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000008) /**<  Enable GSA type  */
4923 #define QMI_LOC_NMEA_MASK_VTG_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000010) /**<  Enable VTG type  */
4924 #define QMI_LOC_NMEA_MASK_PQXFI_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000020) /**<  Enable PQXFI type  */
4925 #define QMI_LOC_NMEA_MASK_PSTIS_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000040) /**<  Enable PSTIS type  */
4926 #define QMI_LOC_NMEA_MASK_GLGSV_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000080) /**<  Enable GLGSV type  */
4927 #define QMI_LOC_NMEA_MASK_GNGSA_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000100) /**<  Enable GNGSA type  */
4928 #define QMI_LOC_NMEA_MASK_GNGNS_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000200) /**<  Enable GNGNS type  */
4929 #define QMI_LOC_NMEA_MASK_GARMC_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000400) /**<  Enable GARMC type  */
4930 #define QMI_LOC_NMEA_MASK_GAGSV_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000800) /**<  Enable GAGSV type  */
4931 #define QMI_LOC_NMEA_MASK_GAGSA_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00001000) /**<  Enable GAGSA type  */
4932 #define QMI_LOC_NMEA_MASK_GAVTG_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00002000) /**<  Enable GAVTG type  */
4933 #define QMI_LOC_NMEA_MASK_GAGGA_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00004000) /**<  Enable GAGGA type  */
4934 #define QMI_LOC_NMEA_MASK_PQGSA_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00008000) /**<  Enable PQGSA type  */
4935 #define QMI_LOC_NMEA_MASK_PQGSV_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00010000) /**<  Enable PQGSV type  */
4936 /** @addtogroup loc_qmi_messages
4937     @{
4938   */
4939 /** Request Message; Sets the NMEA types. */
4940 typedef struct {
4941 
4942   /* Mandatory */
4943   /*  NMEA Sentence Types */
4944   qmiLocNmeaSentenceMaskT_v02 nmeaSentenceType;
4945   /**<   Bitmasks of NMEA types to enable.
4946 
4947  Valid bitmasks: \n
4948       - QMI_LOC_NMEA_MASK_GGA (0x00000001) --  Enable GGA type
4949       - QMI_LOC_NMEA_MASK_RMC (0x00000002) --  Enable RMC type
4950       - QMI_LOC_NMEA_MASK_GSV (0x00000004) --  Enable GSV type
4951       - QMI_LOC_NMEA_MASK_GSA (0x00000008) --  Enable GSA type
4952       - QMI_LOC_NMEA_MASK_VTG (0x00000010) --  Enable VTG type
4953       - QMI_LOC_NMEA_MASK_PQXFI (0x00000020) --  Enable PQXFI type
4954       - QMI_LOC_NMEA_MASK_PSTIS (0x00000040) --  Enable PSTIS type
4955       - QMI_LOC_NMEA_MASK_GLGSV (0x00000080) --  Enable GLGSV type
4956       - QMI_LOC_NMEA_MASK_GNGSA (0x00000100) --  Enable GNGSA type
4957       - QMI_LOC_NMEA_MASK_GNGNS (0x00000200) --  Enable GNGNS type
4958       - QMI_LOC_NMEA_MASK_GARMC (0x00000400) --  Enable GARMC type
4959       - QMI_LOC_NMEA_MASK_GAGSV (0x00000800) --  Enable GAGSV type
4960       - QMI_LOC_NMEA_MASK_GAGSA (0x00001000) --  Enable GAGSA type
4961       - QMI_LOC_NMEA_MASK_GAVTG (0x00002000) --  Enable GAVTG type
4962       - QMI_LOC_NMEA_MASK_GAGGA (0x00004000) --  Enable GAGGA type
4963       - QMI_LOC_NMEA_MASK_PQGSA (0x00008000) --  Enable PQGSA type
4964       - QMI_LOC_NMEA_MASK_PQGSV (0x00010000) --  Enable PQGSV type
4965  */
4966 }qmiLocSetNmeaTypesReqMsgT_v02;  /* Message */
4967 /**
4968     @}
4969   */
4970 
4971 /** @addtogroup loc_qmi_messages
4972     @{
4973   */
4974 /** Indication Message; Sets the NMEA types. */
4975 typedef struct {
4976 
4977   /* Mandatory */
4978   /*  Set NMEA Types Status */
4979   qmiLocStatusEnumT_v02 status;
4980   /**<   Status of Set NMEA Types request.
4981 
4982  Valid values: \n
4983       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
4984       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
4985       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
4986       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
4987       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
4988       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
4989       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
4990       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
4991       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
4992       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
4993       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
4994  */
4995 }qmiLocSetNmeaTypesIndMsgT_v02;  /* Message */
4996 /**
4997     @}
4998   */
4999 
5000 /** @addtogroup loc_qmi_messages
5001     @{
5002   */
5003 /** Request Message; Gets the NMEA types from the location engine. */
5004 typedef struct {
5005   /* This element is a placeholder to prevent the declaration of
5006      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
5007   char __placeholder;
5008 }qmiLocGetNmeaTypesReqMsgT_v02;
5009 
5010   /* Message */
5011 /**
5012     @}
5013   */
5014 
5015 /** @addtogroup loc_qmi_messages
5016     @{
5017   */
5018 /** Indication Message; Gets the NMEA types from the location engine. */
5019 typedef struct {
5020 
5021   /* Mandatory */
5022   /*  Get NMEA Types Status */
5023   qmiLocStatusEnumT_v02 status;
5024   /**<   Status of the Get NMEA Types request.
5025 
5026  Valid values: \n
5027       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
5028       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
5029       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
5030       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
5031       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
5032       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
5033       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
5034       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
5035       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
5036       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
5037       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
5038  */
5039 
5040   /* Optional */
5041   /*  NMEA Sentence Types */
5042   uint8_t nmeaSentenceType_valid;  /**< Must be set to true if nmeaSentenceType is being passed */
5043   qmiLocNmeaSentenceMaskT_v02 nmeaSentenceType;
5044   /**<   NMEA types to enable.
5045 
5046  Valid bitmasks: \n
5047       - QMI_LOC_NMEA_MASK_GGA (0x00000001) --  Enable GGA type
5048       - QMI_LOC_NMEA_MASK_RMC (0x00000002) --  Enable RMC type
5049       - QMI_LOC_NMEA_MASK_GSV (0x00000004) --  Enable GSV type
5050       - QMI_LOC_NMEA_MASK_GSA (0x00000008) --  Enable GSA type
5051       - QMI_LOC_NMEA_MASK_VTG (0x00000010) --  Enable VTG type
5052       - QMI_LOC_NMEA_MASK_PQXFI (0x00000020) --  Enable PQXFI type
5053       - QMI_LOC_NMEA_MASK_PSTIS (0x00000040) --  Enable PSTIS type
5054       - QMI_LOC_NMEA_MASK_GLGSV (0x00000080) --  Enable GLGSV type
5055       - QMI_LOC_NMEA_MASK_GNGSA (0x00000100) --  Enable GNGSA type
5056       - QMI_LOC_NMEA_MASK_GNGNS (0x00000200) --  Enable GNGNS type
5057       - QMI_LOC_NMEA_MASK_GARMC (0x00000400) --  Enable GARMC type
5058       - QMI_LOC_NMEA_MASK_GAGSV (0x00000800) --  Enable GAGSV type
5059       - QMI_LOC_NMEA_MASK_GAGSA (0x00001000) --  Enable GAGSA type
5060       - QMI_LOC_NMEA_MASK_GAVTG (0x00002000) --  Enable GAVTG type
5061       - QMI_LOC_NMEA_MASK_GAGGA (0x00004000) --  Enable GAGGA type
5062       - QMI_LOC_NMEA_MASK_PQGSA (0x00008000) --  Enable PQGSA type
5063       - QMI_LOC_NMEA_MASK_PQGSV (0x00010000) --  Enable PQGSV type
5064  */
5065 }qmiLocGetNmeaTypesIndMsgT_v02;  /* Message */
5066 /**
5067     @}
5068   */
5069 
5070 /** @addtogroup loc_qmi_messages
5071     @{
5072   */
5073 /** Request Message; Enables/disables Low Power Mode (LPM) configuration. */
5074 typedef struct {
5075 
5076   /* Mandatory */
5077   /*  Enable Low Power Mode */
5078   uint8_t lowPowerMode;
5079   /**<   Indicates whether to enable Low Power mode:\n
5080        - 0x01 (TRUE) -- Enable LPM \n
5081        - 0x00 (FALSE) -- Disable LPM */
5082 }qmiLocSetLowPowerModeReqMsgT_v02;  /* Message */
5083 /**
5084     @}
5085   */
5086 
5087 /** @addtogroup loc_qmi_messages
5088     @{
5089   */
5090 /** Indication Message; Enables/disables Low Power Mode (LPM) configuration. */
5091 typedef struct {
5092 
5093   /* Mandatory */
5094   /*  Set LPM Status */
5095   qmiLocStatusEnumT_v02 status;
5096   /**<   Status of the Set Low Power Mode request.
5097 
5098  Valid values: \n
5099       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
5100       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
5101       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
5102       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
5103       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
5104       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
5105       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
5106       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
5107       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
5108       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
5109       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
5110  */
5111 }qmiLocSetLowPowerModeIndMsgT_v02;  /* Message */
5112 /**
5113     @}
5114   */
5115 
5116 /** @addtogroup loc_qmi_messages
5117     @{
5118   */
5119 /** Request Message; Gets the LPM status from the location engine. */
5120 typedef struct {
5121   /* This element is a placeholder to prevent the declaration of
5122      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
5123   char __placeholder;
5124 }qmiLocGetLowPowerModeReqMsgT_v02;
5125 
5126   /* Message */
5127 /**
5128     @}
5129   */
5130 
5131 /** @addtogroup loc_qmi_messages
5132     @{
5133   */
5134 /** Indication Message; Gets the LPM status from the location engine. */
5135 typedef struct {
5136 
5137   /* Mandatory */
5138   /*  Get LPM Status */
5139   qmiLocStatusEnumT_v02 status;
5140   /**<   Status of the Get LPM request.
5141 
5142  Valid values: \n
5143       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
5144       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
5145       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
5146       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
5147       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
5148       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
5149       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
5150       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
5151       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
5152       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
5153       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
5154  */
5155 
5156   /* Optional */
5157   /*  Enable/Disable LPM */
5158   uint8_t lowPowerMode_valid;  /**< Must be set to true if lowPowerMode is being passed */
5159   uint8_t lowPowerMode;
5160   /**<   Indicates whether to enable Low Power mode:\n
5161        - 0x01 (TRUE) -- Enable LPM \n
5162        - 0x00 (FALSE) -- Disable LPM */
5163 }qmiLocGetLowPowerModeIndMsgT_v02;  /* Message */
5164 /**
5165     @}
5166   */
5167 
5168 /** @addtogroup loc_qmi_enums
5169     @{
5170   */
5171 typedef enum {
5172   QMILOCSERVERTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
5173   eQMI_LOC_SERVER_TYPE_CDMA_PDE_V02 = 1, /**<  Server type is CDMA PDE  */
5174   eQMI_LOC_SERVER_TYPE_CDMA_MPC_V02 = 2, /**<  Server type is CDMA MPC  */
5175   eQMI_LOC_SERVER_TYPE_UMTS_SLP_V02 = 3, /**<  Server type is UMTS SLP  */
5176   eQMI_LOC_SERVER_TYPE_CUSTOM_PDE_V02 = 4, /**<  Server type is custom PDE  */
5177   QMILOCSERVERTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
5178 }qmiLocServerTypeEnumT_v02;
5179 /**
5180     @}
5181   */
5182 
5183 /** @addtogroup loc_qmi_messages
5184     @{
5185   */
5186 /** Request Message; Specifies the A-GPS server type and address. */
5187 typedef struct {
5188 
5189   /* Mandatory */
5190   /*  Server Type */
5191   qmiLocServerTypeEnumT_v02 serverType;
5192   /**<   Type of server.
5193 
5194  Valid values: \n
5195       - eQMI_LOC_SERVER_TYPE_CDMA_PDE (1) --  Server type is CDMA PDE
5196       - eQMI_LOC_SERVER_TYPE_CDMA_MPC (2) --  Server type is CDMA MPC
5197       - eQMI_LOC_SERVER_TYPE_UMTS_SLP (3) --  Server type is UMTS SLP
5198       - eQMI_LOC_SERVER_TYPE_CUSTOM_PDE (4) --  Server type is custom PDE
5199  */
5200 
5201   /* Optional */
5202   /*  IPv4 Address */
5203   uint8_t ipv4Addr_valid;  /**< Must be set to true if ipv4Addr is being passed */
5204   qmiLocIpV4AddrStructType_v02 ipv4Addr;
5205   /**<   \vspace{0.06in} \n IPv4 address and port. */
5206 
5207   /* Optional */
5208   /*  IPv6 Address */
5209   uint8_t ipv6Addr_valid;  /**< Must be set to true if ipv6Addr is being passed */
5210   qmiLocIpV6AddrStructType_v02 ipv6Addr;
5211   /**<   \vspace{0.06in} \n IPv6 address and port. */
5212 
5213   /* Optional */
5214   /*  Uniform Resource Locator */
5215   uint8_t urlAddr_valid;  /**< Must be set to true if urlAddr is being passed */
5216   char urlAddr[QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 + 1];
5217   /**<   URL address.
5218        \begin{itemize1}
5219        \item    Type: NULL-terminated string
5220        \item    Maximum string length (including NULL terminator): 256
5221        \vspace{-0.18in} \end{itemize1}
5222   */
5223 }qmiLocSetServerReqMsgT_v02;  /* Message */
5224 /**
5225     @}
5226   */
5227 
5228 /** @addtogroup loc_qmi_messages
5229     @{
5230   */
5231 /** Indication Message; Specifies the A-GPS server type and address. */
5232 typedef struct {
5233 
5234   /* Mandatory */
5235   /*  Set Server Status */
5236   qmiLocStatusEnumT_v02 status;
5237   /**<   Status of the Set Server request.
5238 
5239  Valid values: \n
5240       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
5241       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
5242       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
5243       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
5244       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
5245       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
5246       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
5247       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
5248       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
5249       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
5250       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
5251  */
5252 }qmiLocSetServerIndMsgT_v02;  /* Message */
5253 /**
5254     @}
5255   */
5256 
5257 /** @addtogroup loc_qmi_messages
5258     @{
5259   */
5260 /** Request Message; Gets the location server from the location engine. */
5261 typedef struct {
5262 
5263   /* Mandatory */
5264   /*  Server Type */
5265   qmiLocServerTypeEnumT_v02 serverType;
5266   /**<   Type of server.
5267 
5268  Valid values: \n
5269       - eQMI_LOC_SERVER_TYPE_CDMA_PDE (1) --  Server type is CDMA PDE
5270       - eQMI_LOC_SERVER_TYPE_CDMA_MPC (2) --  Server type is CDMA MPC
5271       - eQMI_LOC_SERVER_TYPE_UMTS_SLP (3) --  Server type is UMTS SLP
5272       - eQMI_LOC_SERVER_TYPE_CUSTOM_PDE (4) --  Server type is custom PDE
5273  */
5274 
5275   /* Optional */
5276   /*  Server Address Type */
5277   uint8_t serverAddrTypeMask_valid;  /**< Must be set to true if serverAddrTypeMask is being passed */
5278   qmiLocServerAddrTypeMaskT_v02 serverAddrTypeMask;
5279   /**<   Type of address the client wants. If unspecified, the
5280        indication will contain all the types of addresses
5281        it has for the specified server type.
5282 
5283        Valid bitmasks: \n
5284          - 0x01 -- IPv4 \n
5285          - 0x02 -- IPv6 \n
5286          - 0x04 -- URL
5287   */
5288 }qmiLocGetServerReqMsgT_v02;  /* Message */
5289 /**
5290     @}
5291   */
5292 
5293 /** @addtogroup loc_qmi_messages
5294     @{
5295   */
5296 /** Indication Message; Gets the location server from the location engine. */
5297 typedef struct {
5298 
5299   /* Mandatory */
5300   /*  Get Server Status */
5301   qmiLocStatusEnumT_v02 status;
5302   /**<   Status of the Get Server request.
5303 
5304  Valid values: \n
5305       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
5306       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
5307       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
5308       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
5309       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
5310       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
5311       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
5312       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
5313       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
5314       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
5315       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
5316  */
5317 
5318   /* Mandatory */
5319   /*  Server Type */
5320   qmiLocServerTypeEnumT_v02 serverType;
5321   /**<   Type of server.
5322 
5323  Valid values: \n
5324       - eQMI_LOC_SERVER_TYPE_CDMA_PDE (1) --  Server type is CDMA PDE
5325       - eQMI_LOC_SERVER_TYPE_CDMA_MPC (2) --  Server type is CDMA MPC
5326       - eQMI_LOC_SERVER_TYPE_UMTS_SLP (3) --  Server type is UMTS SLP
5327       - eQMI_LOC_SERVER_TYPE_CUSTOM_PDE (4) --  Server type is custom PDE
5328  */
5329 
5330   /* Optional */
5331   /*  IPv4 Address */
5332   uint8_t ipv4Addr_valid;  /**< Must be set to true if ipv4Addr is being passed */
5333   qmiLocIpV4AddrStructType_v02 ipv4Addr;
5334   /**<   \vspace{0.06in} \n IPv4 address and port. */
5335 
5336   /* Optional */
5337   /*  IPv6 Address */
5338   uint8_t ipv6Addr_valid;  /**< Must be set to true if ipv6Addr is being passed */
5339   qmiLocIpV6AddrStructType_v02 ipv6Addr;
5340   /**<   \vspace{0.06in} \n IPv6 address and port. */
5341 
5342   /* Optional */
5343   /*  Uniform Resource Locator */
5344   uint8_t urlAddr_valid;  /**< Must be set to true if urlAddr is being passed */
5345   char urlAddr[QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 + 1];
5346   /**<   URL.
5347        \begin{itemize1}
5348        \item    Type: NULL-terminated string
5349        \item    Maximum string length (including NULL terminator): 256
5350        \vspace{-0.18in} \end{itemize1}
5351   */
5352 }qmiLocGetServerIndMsgT_v02;  /* Message */
5353 /**
5354     @}
5355   */
5356 
5357 typedef uint64_t qmiLocDeleteGnssDataMaskT_v02;
5358 #define QMI_LOC_MASK_DELETE_GPS_SVDIR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000001ull) /**<  Mask to delete GPS SVDIR  */
5359 #define QMI_LOC_MASK_DELETE_GPS_SVSTEER_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000002ull) /**<  Mask to delete GPS SVSTEER  */
5360 #define QMI_LOC_MASK_DELETE_GPS_TIME_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000004ull) /**<  Mask to delete GPS time  */
5361 #define QMI_LOC_MASK_DELETE_GPS_ALM_CORR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000008ull) /**<  Mask to delete almanac correlation  */
5362 #define QMI_LOC_MASK_DELETE_GLO_SVDIR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000010ull) /**<  Mask to delete GLONASS SVDIR  */
5363 #define QMI_LOC_MASK_DELETE_GLO_SVSTEER_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000020ull) /**<  Mask to delete GLONASS SVSTEER  */
5364 #define QMI_LOC_MASK_DELETE_GLO_TIME_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000040ull) /**<  Mask to delete GLONASS time  */
5365 #define QMI_LOC_MASK_DELETE_GLO_ALM_CORR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000080ull) /**<  Mask to delete GLONASS almanac correlation  */
5366 #define QMI_LOC_MASK_DELETE_SBAS_SVDIR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000100ull) /**<  Mask to delete SBAS SVDIR  */
5367 #define QMI_LOC_MASK_DELETE_SBAS_SVSTEER_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000200ull) /**<  Mask to delete SBAS SVSTEER  */
5368 #define QMI_LOC_MASK_DELETE_POSITION_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000400ull) /**<  Mask to delete position estimate  */
5369 #define QMI_LOC_MASK_DELETE_TIME_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000800ull) /**<  Mask to delete time estimate  */
5370 #define QMI_LOC_MASK_DELETE_IONO_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00001000ull) /**<  Mask to delete IONO  */
5371 #define QMI_LOC_MASK_DELETE_UTC_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00002000ull) /**<  Mask to delete UTC estimate  */
5372 #define QMI_LOC_MASK_DELETE_HEALTH_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00004000ull) /**<  Mask to delete SV health record  */
5373 #define QMI_LOC_MASK_DELETE_SADATA_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00008000ull) /**<  Mask to delete SADATA  */
5374 #define QMI_LOC_MASK_DELETE_RTI_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00010000ull) /**<  Mask to delete RTI  */
5375 #define QMI_LOC_MASK_DELETE_SV_NO_EXIST_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00020000ull) /**<  Mask to delete SV_NO_EXIST  */
5376 #define QMI_LOC_MASK_DELETE_FREQ_BIAS_EST_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00040000ull) /**<  Mask to delete frequency bias estimate  */
5377 #define QMI_LOC_MASK_DELETE_BDS_SVDIR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00080000ull) /**<  Mask to delete BDS SVDIR  */
5378 #define QMI_LOC_MASK_DELETE_BDS_SVSTEER_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00100000ull) /**<  Mask to delete BDS SVSTEER  */
5379 #define QMI_LOC_MASK_DELETE_BDS_TIME_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00200000ull) /**<  Mask to delete BDS time  */
5380 #define QMI_LOC_MASK_DELETE_BDS_ALM_CORR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00400000ull) /**<  Mask to delete BDS almanac correlation  */
5381 #define QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_GPS_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00800000ull) /**<  Mask to delete GNSS SV blacklist GPS   */
5382 #define QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_GLO_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x01000000ull) /**<  Mask to delete GNSS SV blacklist GLO   */
5383 #define QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_BDS_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x02000000ull) /**<  Mask to delete GNSS SV blacklist BDS   */
5384 #define QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_GAL_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x04000000ull) /**<  Mask to delete GNSS SV blacklist GAL   */
5385 #define QMI_LOC_MASK_DELETE_GAL_SVDIR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x08000000ull) /**<  Mask to delete GAL SVDIR  */
5386 #define QMI_LOC_MASK_DELETE_GAL_SVSTEER_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x10000000ull) /**<  Mask to delete GAL SVSTEER  */
5387 #define QMI_LOC_MASK_DELETE_GAL_TIME_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x20000000ull) /**<  Mask to delete GAL time  */
5388 #define QMI_LOC_MASK_DELETE_GAL_ALM_CORR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x40000000ull) /**<  Mask to delete GAL almanac correlation  */
5389 typedef uint32_t qmiLocDeleteCelldbDataMaskT_v02;
5390 #define QMI_LOC_MASK_DELETE_CELLDB_POS_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000001) /**<  Mask to delete cell database position  */
5391 #define QMI_LOC_MASK_DELETE_CELLDB_LATEST_GPS_POS_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000002) /**<  Mask to delete cell database latest GPS position  */
5392 #define QMI_LOC_MASK_DELETE_CELLDB_OTA_POS_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000004) /**<  Mask to delete cell database OTA position  */
5393 #define QMI_LOC_MASK_DELETE_CELLDB_EXT_REF_POS_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000008) /**<  Mask to delete cell database external reference position  */
5394 #define QMI_LOC_MASK_DELETE_CELLDB_TIMETAG_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000010) /**<  Mask to delete cell database time tag  */
5395 #define QMI_LOC_MASK_DELETE_CELLDB_CELLID_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000020) /**<  Mask to delete cell database cell ID  */
5396 #define QMI_LOC_MASK_DELETE_CELLDB_CACHED_CELLID_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000040) /**<  Mask to delete cell database cached cell ID  */
5397 #define QMI_LOC_MASK_DELETE_CELLDB_LAST_SRV_CELL_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000080) /**<  Mask to delete cell database last service cell  */
5398 #define QMI_LOC_MASK_DELETE_CELLDB_CUR_SRV_CELL_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000100) /**<  Mask to delete cell database current service cell  */
5399 #define QMI_LOC_MASK_DELETE_CELLDB_NEIGHBOR_INFO_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000200) /**<  Mask to delete cell database neighbor information  */
5400 typedef uint32_t qmiLocDeleteClockInfoMaskT_v02;
5401 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_TIME_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000001) /**<  Mask to delete time estimate from clock information  */
5402 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_FREQ_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000002) /**<  Mask to delete frequency estimate from clock information  */
5403 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_WEEK_NUMBER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000004) /**<  Mask to delete week number from clock information  */
5404 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_RTC_TIME_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000008) /**<  Mask to delete RTC time from clock information  */
5405 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_TIME_TRANSFER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000010) /**<  Mask to delete time transfer from clock information  */
5406 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_GPSTIME_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000020) /**<  Mask to delete GPS time estimate from clock information  */
5407 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_GLOTIME_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000040) /**<  Mask to delete GLONASS time estimate from clock information  */
5408 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_GLODAY_NUMBER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000080) /**<  Mask to delete GLONASS day number from clock information  */
5409 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_GLO4YEAR_NUMBER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000100) /**<  Mask to delete GLONASS four year number from clock information  */
5410 #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  */
5411 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_DISABLE_TT_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000400) /**<  Mask to delete disable TT from clock information  */
5412 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_GG_LEAPSEC_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000800) /**<  Mask to delete a BDS time estimate from the clock information  */
5413 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_GG_GGTB_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00001000) /**<  Mask to delete a BDS time estimate from the clock information  */
5414 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_BDSTIME_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00002000) /**<  Mask to delete a BDS time estimate from the clock information  */
5415 #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
5416       clock information  */
5417 #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
5418        clock information  */
5419 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_BDSWEEK_NUMBER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00010000) /**<  Mask to delete the BDS week number from the clock information  */
5420 #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  */
5421 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTIME_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00040000) /**<  Mask to delete a GAL time estimate from the clock information  */
5422 #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
5423       clock information  */
5424 #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
5425       clock information  */
5426 #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
5427       clock information  */
5428 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_GALWEEK_NUMBER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00800000) /**<  Mask to delete the GAL week number from the clock information  */
5429 #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  */
5430 typedef uint8_t qmiLocDeleteSvInfoMaskT_v02;
5431 #define QMI_LOC_MASK_DELETE_EPHEMERIS_V02 ((qmiLocDeleteSvInfoMaskT_v02)0x01) /**<  Delete ephemeris for the satellite  */
5432 #define QMI_LOC_MASK_DELETE_ALMANAC_V02 ((qmiLocDeleteSvInfoMaskT_v02)0x02) /**<  Delete almanac for the satellite  */
5433 /** @addtogroup loc_qmi_aggregates
5434     @{
5435   */
5436 typedef struct {
5437 
5438   uint16_t gnssSvId;
5439   /**<   SV ID of the satellite whose data is to be deleted.
5440        \begin{itemize1}
5441        \item    Range:    \begin{itemize1}
5442          \item    For GPS:     1 to 32
5443          \item    For SBAS:    33 to 64
5444          \item    For GLONASS: 65 to 96
5445        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
5446 
5447   qmiLocSvSystemEnumT_v02 system;
5448   /**<   Indicates to which constellation this SV belongs.
5449 
5450  Valid values: \n
5451       - eQMI_LOC_SV_SYSTEM_GPS (1) --  GPS satellite
5452       - eQMI_LOC_SV_SYSTEM_GALILEO (2) --  GALILEO satellite
5453       - eQMI_LOC_SV_SYSTEM_SBAS (3) --  SBAS satellite
5454       - eQMI_LOC_SV_SYSTEM_COMPASS (4) --  COMPASS satellite (Deprecated)
5455       - eQMI_LOC_SV_SYSTEM_GLONASS (5) --  GLONASS satellite
5456       - eQMI_LOC_SV_SYSTEM_BDS (6) --  BDS satellite
5457       - eQMI_LOC_SV_SYSTEM_QZSS (7) --  QZSS satellite
5458  */
5459 
5460   qmiLocDeleteSvInfoMaskT_v02 deleteSvInfoMask;
5461   /**<   Indicates whether the ephemeris or almanac for a satellite
5462  is to be deleted. \n
5463  Valid values: \n
5464       - QMI_LOC_MASK_DELETE_EPHEMERIS (0x01) --  Delete ephemeris for the satellite
5465       - QMI_LOC_MASK_DELETE_ALMANAC (0x02) --  Delete almanac for the satellite
5466  */
5467 }qmiLocDeleteSvInfoStructT_v02;  /* Type */
5468 /**
5469     @}
5470   */
5471 
5472 /** @addtogroup loc_qmi_aggregates
5473     @{
5474   */
5475 typedef struct {
5476 
5477   uint16_t gnssSvId;
5478   /**<   SV ID of the satellite whose data is to be deleted. \n
5479        Range for BDS:     201 to 237 */
5480 
5481   qmiLocDeleteSvInfoMaskT_v02 deleteSvInfoMask;
5482   /**<   Indicates if the ephemeris or almanac for a satellite
5483  is to be deleted. \n
5484  Valid values: \n
5485       - QMI_LOC_MASK_DELETE_EPHEMERIS (0x01) --  Delete ephemeris for the satellite
5486       - QMI_LOC_MASK_DELETE_ALMANAC (0x02) --  Delete almanac for the satellite
5487  */
5488 }qmiLocDeleteBDSSvInfoStructT_v02;  /* Type */
5489 /**
5490     @}
5491   */
5492 
5493 /** @addtogroup loc_qmi_aggregates
5494     @{
5495   */
5496 typedef struct {
5497 
5498   uint16_t gnssSvId;
5499   /**<   SV ID of the satellite whose data is to be deleted. \n
5500        Range for GAL:     301 to 336 */
5501 
5502   qmiLocDeleteSvInfoMaskT_v02 deleteSvInfoMask;
5503   /**<   Indicates if the ephemeris or almanac for a satellite
5504  is to be deleted. \n
5505  Valid values: \n
5506       - QMI_LOC_MASK_DELETE_EPHEMERIS (0x01) --  Delete ephemeris for the satellite
5507       - QMI_LOC_MASK_DELETE_ALMANAC (0x02) --  Delete almanac for the satellite
5508  */
5509 }qmiLocDeleteGALSvInfoStructT_v02;  /* Type */
5510 /**
5511     @}
5512   */
5513 
5514 /** @addtogroup loc_qmi_messages
5515     @{
5516   */
5517 /** Request Message; This command is used to delete the location engine
5518                     assistance data. */
5519 typedef struct {
5520 
5521   /* Mandatory */
5522   /*  Delete All */
5523   uint8_t deleteAllFlag;
5524   /**<   Indicates whether all assistance data is to be deleted.
5525 
5526        Valid values: \begin{itemize1}
5527        \item    0x01 (TRUE)  -- All assistance data is to be deleted; if
5528                                 this flag is set, all the other information
5529                          contained in the optional fields for this
5530                                 message are ignored
5531        \item    0x00 (FALSE) -- The optional fields in the message are to be
5532                                 used to determine which data is to be deleted
5533        \vspace{-0.18in} \end{itemize1} */
5534 
5535   /* Optional */
5536   /*  Delete SV Info */
5537   uint8_t deleteSvInfoList_valid;  /**< Must be set to true if deleteSvInfoList is being passed */
5538   uint32_t deleteSvInfoList_len;  /**< Must be set to # of elements in deleteSvInfoList */
5539   qmiLocDeleteSvInfoStructT_v02 deleteSvInfoList[QMI_LOC_DELETE_MAX_SV_INFO_LENGTH_V02];
5540   /**<   \vspace{0.06in} \n List of satellites for which the assistance data is to be deleted.
5541   */
5542 
5543   /* Optional */
5544   /*  Delete GNSS Data */
5545   uint8_t deleteGnssDataMask_valid;  /**< Must be set to true if deleteGnssDataMask is being passed */
5546   qmiLocDeleteGnssDataMaskT_v02 deleteGnssDataMask;
5547   /**<   Mask for the GNSS data that is to be deleted.
5548 
5549  Valid values: \n
5550       - QMI_LOC_MASK_DELETE_GPS_SVDIR (0x00000001) --  Mask to delete GPS SVDIR
5551       - QMI_LOC_MASK_DELETE_GPS_SVSTEER (0x00000002) --  Mask to delete GPS SVSTEER
5552       - QMI_LOC_MASK_DELETE_GPS_TIME (0x00000004) --  Mask to delete GPS time
5553       - QMI_LOC_MASK_DELETE_GPS_ALM_CORR (0x00000008) --  Mask to delete almanac correlation
5554       - QMI_LOC_MASK_DELETE_GLO_SVDIR (0x00000010) --  Mask to delete GLONASS SVDIR
5555       - QMI_LOC_MASK_DELETE_GLO_SVSTEER (0x00000020) --  Mask to delete GLONASS SVSTEER
5556       - QMI_LOC_MASK_DELETE_GLO_TIME (0x00000040) --  Mask to delete GLONASS time
5557       - QMI_LOC_MASK_DELETE_GLO_ALM_CORR (0x00000080) --  Mask to delete GLONASS almanac correlation
5558       - QMI_LOC_MASK_DELETE_SBAS_SVDIR (0x00000100) --  Mask to delete SBAS SVDIR
5559       - QMI_LOC_MASK_DELETE_SBAS_SVSTEER (0x00000200) --  Mask to delete SBAS SVSTEER
5560       - QMI_LOC_MASK_DELETE_POSITION (0x00000400) --  Mask to delete position estimate
5561       - QMI_LOC_MASK_DELETE_TIME (0x00000800) --  Mask to delete time estimate
5562       - QMI_LOC_MASK_DELETE_IONO (0x00001000) --  Mask to delete IONO
5563       - QMI_LOC_MASK_DELETE_UTC (0x00002000) --  Mask to delete UTC estimate
5564       - QMI_LOC_MASK_DELETE_HEALTH (0x00004000) --  Mask to delete SV health record
5565       - QMI_LOC_MASK_DELETE_SADATA (0x00008000) --  Mask to delete SADATA
5566       - QMI_LOC_MASK_DELETE_RTI (0x00010000) --  Mask to delete RTI
5567       - QMI_LOC_MASK_DELETE_SV_NO_EXIST (0x00020000) --  Mask to delete SV_NO_EXIST
5568       - QMI_LOC_MASK_DELETE_FREQ_BIAS_EST (0x00040000) --  Mask to delete frequency bias estimate
5569       - QMI_LOC_MASK_DELETE_BDS_SVDIR (0x00080000) --  Mask to delete BDS SVDIR
5570       - QMI_LOC_MASK_DELETE_BDS_SVSTEER (0x00100000) --  Mask to delete BDS SVSTEER
5571       - QMI_LOC_MASK_DELETE_BDS_TIME (0x00200000) --  Mask to delete BDS time
5572       - QMI_LOC_MASK_DELETE_BDS_ALM_CORR (0x00400000) --  Mask to delete BDS almanac correlation
5573       - QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_GPS (0x00800000) --  Mask to delete GNSS SV blacklist GPS
5574       - QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_GLO (0x01000000) --  Mask to delete GNSS SV blacklist GLO
5575       - QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_BDS (0x02000000) --  Mask to delete GNSS SV blacklist BDS
5576       - QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_GAL (0x04000000) --  Mask to delete GNSS SV blacklist GAL
5577       - QMI_LOC_MASK_DELETE_GAL_SVDIR (0x08000000) --  Mask to delete GAL SVDIR
5578       - QMI_LOC_MASK_DELETE_GAL_SVSTEER (0x10000000) --  Mask to delete GAL SVSTEER
5579       - QMI_LOC_MASK_DELETE_GAL_TIME (0x20000000) --  Mask to delete GAL time
5580       - QMI_LOC_MASK_DELETE_GAL_ALM_CORR (0x40000000) --  Mask to delete GAL almanac correlation
5581  */
5582 
5583   /* Optional */
5584   /*  Delete Cell Database */
5585   uint8_t deleteCellDbDataMask_valid;  /**< Must be set to true if deleteCellDbDataMask is being passed */
5586   qmiLocDeleteCelldbDataMaskT_v02 deleteCellDbDataMask;
5587   /**<   Mask for the cell database assistance data that is to be deleted.
5588 
5589        Valid values: \begin{itemize1}
5590        \item    0x00000001 -- DELETE_CELLDB_ POS
5591        \item    0x00000002 -- DELETE_CELLDB_ LATEST_GPS_POS
5592        \item    0x00000004 -- DELETE_CELLDB_ OTA_POS
5593        \item    0x00000008 -- DELETE_CELLDB_ EXT_REF_POS
5594        \item    0x00000010 -- DELETE_CELLDB_ TIMETAG
5595        \item    0x00000020 -- DELETE_CELLDB_ CELLID
5596        \item    0x00000040 -- DELETE_CELLDB_ CACHED_CELLID
5597        \item    0x00000080 -- DELETE_CELLDB_ LAST_SRV_CELL
5598        \item    0x00000100 -- DELETE_CELLDB_ CUR_SRV_CELL
5599        \item    0x00000200 -- DELETE_CELLDB_ NEIGHBOR_INFO
5600        \vspace{-0.18in} \end{itemize1}
5601   */
5602 
5603   /* Optional */
5604   /*  Delete Clock Info */
5605   uint8_t deleteClockInfoMask_valid;  /**< Must be set to true if deleteClockInfoMask is being passed */
5606   qmiLocDeleteClockInfoMaskT_v02 deleteClockInfoMask;
5607   /**<   Mask for the clock information assistance data that is to be deleted.
5608 
5609  Valid bitmasks: \n
5610       - QMI_LOC_MASK_DELETE_CLOCK_INFO_TIME_EST (0x00000001) --  Mask to delete time estimate from clock information
5611       - QMI_LOC_MASK_DELETE_CLOCK_INFO_FREQ_EST (0x00000002) --  Mask to delete frequency estimate from clock information
5612       - QMI_LOC_MASK_DELETE_CLOCK_INFO_WEEK_NUMBER (0x00000004) --  Mask to delete week number from clock information
5613       - QMI_LOC_MASK_DELETE_CLOCK_INFO_RTC_TIME (0x00000008) --  Mask to delete RTC time from clock information
5614       - QMI_LOC_MASK_DELETE_CLOCK_INFO_TIME_TRANSFER (0x00000010) --  Mask to delete time transfer from clock information
5615       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GPSTIME_EST (0x00000020) --  Mask to delete GPS time estimate from clock information
5616       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GLOTIME_EST (0x00000040) --  Mask to delete GLONASS time estimate from clock information
5617       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GLODAY_NUMBER (0x00000080) --  Mask to delete GLONASS day number from clock information
5618       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GLO4YEAR_NUMBER (0x00000100) --  Mask to delete GLONASS four year number from clock information
5619       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GLO_RF_GRP_DELAY (0x00000200) --  Mask to delete GLONASS RF GRP delay from clock information
5620       - QMI_LOC_MASK_DELETE_CLOCK_INFO_DISABLE_TT (0x00000400) --  Mask to delete disable TT from clock information
5621       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GG_LEAPSEC (0x00000800) --  Mask to delete a BDS time estimate from the clock information
5622       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GG_GGTB (0x00001000) --  Mask to delete a BDS time estimate from the clock information
5623       - QMI_LOC_MASK_DELETE_CLOCK_INFO_BDSTIME_EST (0x00002000) --  Mask to delete a BDS time estimate from the clock information
5624       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GB_GBTB (0x00004000) --  Mask to delete Glonass-to-BDS time bias-related information from the
5625       clock information
5626       - QMI_LOC_MASK_DELETE_CLOCK_INFO_BG_BGTB (0x00008000) --  Mask to delete BDS-to-GLONASS time bias-related information from the
5627        clock information
5628       - QMI_LOC_MASK_DELETE_CLOCK_INFO_BDSWEEK_NUMBER (0x00010000) --  Mask to delete the BDS week number from the clock information
5629       - QMI_LOC_MASK_DELETE_CLOCK_INFO_BDS_RF_GRP_DELAY (0x00020000) --  Mask to delete the BDS RF GRP delay from the clock information
5630       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTIME_EST (0x00040000) --  Mask to delete a GAL time estimate from the clock information
5631       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTOGPS_TB (0x00080000) --  Mask to delete GAL-to-GPS time bias-related information from the
5632       clock information
5633       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTOGLO_TB (0x00100000) --  Mask to delete GAL-to-GLO time bias-related information from the
5634       clock information
5635       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTOBDS_TB (0x00200000) --  Mask to delete GAL-to-BDS time bias-related information from the
5636       clock information
5637       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GALWEEK_NUMBER (0x00800000) --  Mask to delete the GAL week number from the clock information
5638       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GAL_RF_GRP_DELAY (0x01000000) --  Mask to delete the GAL RF GRP delay from the clock information
5639  */
5640 
5641   /* Optional */
5642   /*  Delete BDS SV Info */
5643   uint8_t deleteBdsSvInfoList_valid;  /**< Must be set to true if deleteBdsSvInfoList is being passed */
5644   uint32_t deleteBdsSvInfoList_len;  /**< Must be set to # of elements in deleteBdsSvInfoList */
5645   qmiLocDeleteBDSSvInfoStructT_v02 deleteBdsSvInfoList[QMI_LOC_DELETE_MAX_BDS_SV_INFO_LENGTH_V02];
5646   /**<   \vspace{0.06in} \n List of BDS satellites for which the assistance data is to be deleted.
5647   */
5648 
5649   /* Optional */
5650   /*  Delete GAL SV Info */
5651   uint8_t deleteGalSvInfoList_valid;  /**< Must be set to true if deleteGalSvInfoList is being passed */
5652   uint32_t deleteGalSvInfoList_len;  /**< Must be set to # of elements in deleteGalSvInfoList */
5653   qmiLocDeleteGALSvInfoStructT_v02 deleteGalSvInfoList[QMI_LOC_DELETE_MAX_GAL_SV_INFO_LENGTH_V02];
5654   /**<   \vspace{0.06in} \n List of GAL satellites for which the assistance data is to be deleted.
5655   */
5656 }qmiLocDeleteAssistDataReqMsgT_v02;  /* Message */
5657 /**
5658     @}
5659   */
5660 
5661 /** @addtogroup loc_qmi_messages
5662     @{
5663   */
5664 /** Indication Message; This command is used to delete the location engine
5665                     assistance data. */
5666 typedef struct {
5667 
5668   /* Mandatory */
5669   /*  Delete Assist Data Status */
5670   qmiLocStatusEnumT_v02 status;
5671   /**<   Status of the Delete Assist Data request.
5672 
5673  Valid values: \n
5674       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
5675       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
5676       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
5677       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
5678       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
5679       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
5680       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
5681       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
5682       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
5683       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
5684       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
5685  */
5686 }qmiLocDeleteAssistDataIndMsgT_v02;  /* Message */
5687 /**
5688     @}
5689   */
5690 
5691 /** @addtogroup loc_qmi_messages
5692     @{
5693   */
5694 /** Request Message; Enables/disables XTRA-T session control. */
5695 typedef struct {
5696 
5697   /* Mandatory */
5698   /*  Enable XTRA-T */
5699   uint8_t xtraTSessionControl;
5700   /**<   Indicates whether to enable XTRA-T:\n
5701        - 0x01 (TRUE) -- Enable XTRA-T \n
5702        - 0x00 (FALSE) -- Disable XTRA-T */
5703 }qmiLocSetXtraTSessionControlReqMsgT_v02;  /* Message */
5704 /**
5705     @}
5706   */
5707 
5708 /** @addtogroup loc_qmi_messages
5709     @{
5710   */
5711 /** Indication Message; Enables/disables XTRA-T session control. */
5712 typedef struct {
5713 
5714   /* Mandatory */
5715   /*  Set XTRA-T Session Control Status */
5716   qmiLocStatusEnumT_v02 status;
5717   /**<   Status of the Set XTRA-T Session Control request.
5718 
5719  Valid values: \n
5720       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
5721       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
5722       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
5723       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
5724       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
5725       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
5726       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
5727       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
5728       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
5729       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
5730       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
5731  */
5732 }qmiLocSetXtraTSessionControlIndMsgT_v02;  /* Message */
5733 /**
5734     @}
5735   */
5736 
5737 /** @addtogroup loc_qmi_messages
5738     @{
5739   */
5740 /** Request Message; Gets the XTRA-T session control value from the location
5741                     engine. */
5742 typedef struct {
5743   /* This element is a placeholder to prevent the declaration of
5744      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
5745   char __placeholder;
5746 }qmiLocGetXtraTSessionControlReqMsgT_v02;
5747 
5748   /* Message */
5749 /**
5750     @}
5751   */
5752 
5753 /** @addtogroup loc_qmi_messages
5754     @{
5755   */
5756 /** Indication Message; Gets the XTRA-T session control value from the location
5757                     engine. */
5758 typedef struct {
5759 
5760   /* Mandatory */
5761   /*  Get XTRA-T Session Control Status */
5762   qmiLocStatusEnumT_v02 status;
5763   /**<   Status of the Get XTRA-T Session Control request.
5764 
5765  Valid values: \n
5766       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
5767       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
5768       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
5769       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
5770       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
5771       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
5772       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
5773       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
5774       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
5775       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
5776       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
5777  */
5778 
5779   /* Optional */
5780   /*  Enable/Disable XTRA-T */
5781   uint8_t xtraTSessionControl_valid;  /**< Must be set to true if xtraTSessionControl is being passed */
5782   uint8_t xtraTSessionControl;
5783   /**<   Indicates whether to enable XTRA-T:\n
5784        - 0x01 (TRUE) -- Enable XTRA-T \n
5785        - 0x00 (FALSE) -- Disable XTRA-T */
5786 }qmiLocGetXtraTSessionControlIndMsgT_v02;  /* Message */
5787 /**
5788     @}
5789   */
5790 
5791 /** @addtogroup loc_qmi_aggregates
5792     @{
5793   */
5794 typedef struct {
5795 
5796   uint32_t wifiPositionTime;
5797   /**<   Common counter (typically, the number of milliseconds since bootup).
5798         This field is only to be provided if the modem and host processors are
5799         synchronized. */
5800 }qmiLocWifiFixTimeStructT_v02;  /* Type */
5801 /**
5802     @}
5803   */
5804 
5805 /** @addtogroup loc_qmi_enums
5806     @{
5807   */
5808 typedef enum {
5809   QMILOCWIFIFIXERRORCODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
5810   eQMI_LOC_WIFI_FIX_ERROR_SUCCESS_V02 = 0, /**<  Wi-Fi fix is successful. */
5811   eQMI_LOC_WIFI_FIX_ERROR_WIFI_NOT_AVAILABLE_V02 = 1, /**<  Wi-Fi fix failed because Wi-Fi is not available on the device.  */
5812   eQMI_LOC_WIFI_FIX_ERROR_NO_AP_FOUND_V02 = 2, /**<  Wi-Fi fix failed because no access points were found.  */
5813   eQMI_LOC_WIFI_FIX_ERROR_UNAUTHORIZED_V02 = 3, /**<  Wi-Fi fix failed because the server denied access due to bad authorization
5814    code.  */
5815   eQMI_LOC_WIFI_FIX_ERROR_SERVER_UNAVAILABLE_V02 = 4, /**<  Wi-Fi fix failed because the Wi-Fi server was unavailable.  */
5816   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.
5817    This may be because the APs found are not in the database.  */
5818   eQMI_LOC_WIFI_FIX_ERROR_UNKNOWN_V02 = 6, /**<  Wi-Fi fix failed, but the cause could not be determined.  */
5819   QMILOCWIFIFIXERRORCODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
5820 }qmiLocWifiFixErrorCodeEnumT_v02;
5821 /**
5822     @}
5823   */
5824 
5825 /** @addtogroup loc_qmi_aggregates
5826     @{
5827   */
5828 typedef struct {
5829 
5830   double lat;
5831   /**<   Wi-Fi position latitude. \n
5832         - Type: Floating point \n
5833         - Units: Degrees */
5834 
5835   double lon;
5836   /**<   Wi-Fi position longitude. \n
5837         - Type: Floating point \n
5838         - Units: Degrees */
5839 
5840   uint16_t hepe;
5841   /**<   Wi-Fi position HEPE.\n
5842         - Units: Meters */
5843 
5844   uint8_t numApsUsed;
5845   /**<   Number of Access Points (AP) used to generate a fix. */
5846 
5847   qmiLocWifiFixErrorCodeEnumT_v02 fixErrorCode;
5848   /**<   Wi-Fi position error code; set to 0 if the fix succeeds. This position
5849  is only used by a module if the value is 0. If there was a failure,
5850  the error code provided by the Wi-Fi positioning system can be provided
5851  here.
5852 
5853  Valid values: \n
5854       - eQMI_LOC_WIFI_FIX_ERROR_SUCCESS (0) --  Wi-Fi fix is successful.
5855       - eQMI_LOC_WIFI_FIX_ERROR_WIFI_NOT_AVAILABLE (1) --  Wi-Fi fix failed because Wi-Fi is not available on the device.
5856       - eQMI_LOC_WIFI_FIX_ERROR_NO_AP_FOUND (2) --  Wi-Fi fix failed because no access points were found.
5857       - eQMI_LOC_WIFI_FIX_ERROR_UNAUTHORIZED (3) --  Wi-Fi fix failed because the server denied access due to bad authorization
5858    code.
5859       - eQMI_LOC_WIFI_FIX_ERROR_SERVER_UNAVAILABLE (4) --  Wi-Fi fix failed because the Wi-Fi server was unavailable.
5860       - 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.
5861    This may be because the APs found are not in the database.
5862       - eQMI_LOC_WIFI_FIX_ERROR_UNKNOWN (6) --  Wi-Fi fix failed, but the cause could not be determined.
5863  */
5864 }qmiLocWifiFixPosStructT_v02;  /* Type */
5865 /**
5866     @}
5867   */
5868 
5869 typedef uint8_t qmiLocWifiApQualifierMaskT_v02;
5870 #define QMI_LOC_WIFI_AP_QUALIFIER_BEING_USED_V02 ((qmiLocWifiApQualifierMaskT_v02)0x01) /**<  Access point is being used by the WPS.  */
5871 #define QMI_LOC_WIFI_AP_QUALIFIER_HIDDEN_SSID_V02 ((qmiLocWifiApQualifierMaskT_v02)0x02) /**<  AP does not broadcast SSID.  */
5872 #define QMI_LOC_WIFI_AP_QUALIFIER_PRIVATE_V02 ((qmiLocWifiApQualifierMaskT_v02)0x04) /**<  AP has encryption turned on.  */
5873 #define QMI_LOC_WIFI_AP_QUALIFIER_INFRASTRUCTURE_MODE_V02 ((qmiLocWifiApQualifierMaskT_v02)0x08) /**<  AP is in infrastructure mode and not in ad-hoc/unknown mode.  */
5874 /** @addtogroup loc_qmi_aggregates
5875     @{
5876   */
5877 typedef struct {
5878 
5879   uint8_t macAddr[QMI_LOC_WIFI_MAC_ADDR_LENGTH_V02];
5880   /**<   Associated MAC address of the AP. \n
5881         - Type: Array of unsigned integers \n
5882         - Address length: 6
5883    */
5884 
5885   int32_t rssi;
5886   /**<   Receive signal strength indicator.\n
5887         - Units: dBm (offset with +100 dB) */
5888 
5889   uint16_t channel;
5890   /**<   Wi-Fi channel on which a beacon was received. */
5891 
5892   qmiLocWifiApQualifierMaskT_v02 apQualifier;
5893   /**<   A bitmask of Boolean qualifiers for APs.
5894         All unused bits in this mask must be set to 0.
5895 
5896         Valid values: \n
5897           - 0x01 -- BEING_USED \n
5898           - 0x02 -- HIDDEN_SSID \n
5899           - 0x04 -- PRIVATE \n
5900           - 0x08 -- INFRASTRUCTURE_MODE
5901          */
5902 }qmiLocWifiApInfoStructT_v02;  /* Type */
5903 /**
5904     @}
5905   */
5906 
5907 /** @addtogroup loc_qmi_aggregates
5908     @{
5909   */
5910 typedef struct {
5911 
5912   char ssid[QMI_LOC_MAX_WIFI_AP_SSID_STR_LENGTH_V02 + 1];
5913   /**<   NULL-terminated SSID string of the Wi-Fi AP. Its maximum length according to the ASCII standard is 32 octets. */
5914 }qmiLocWifiApSsidStructT_v02;  /* Type */
5915 /**
5916     @}
5917   */
5918 
5919 /** @addtogroup loc_qmi_messages
5920     @{
5921   */
5922 /** Request Message; Injects the Wi-Fi position. */
5923 typedef struct {
5924 
5925   /* Optional */
5926   /*  Wi-Fi Fix Time */
5927   uint8_t wifiFixTime_valid;  /**< Must be set to true if wifiFixTime is being passed */
5928   qmiLocWifiFixTimeStructT_v02 wifiFixTime;
5929   /**<   \vspace{0.06in} \n Time of Wi-Fi position fix. */
5930 
5931   /* Optional */
5932   /*  Wi-Fi Position */
5933   uint8_t wifiFixPosition_valid;  /**< Must be set to true if wifiFixPosition is being passed */
5934   qmiLocWifiFixPosStructT_v02 wifiFixPosition;
5935   /**<   \vspace{0.06in} \n Wi-Fi position fix. */
5936 
5937   /* Optional */
5938   /*  Wi-Fi Access Point Information */
5939   uint8_t apInfo_valid;  /**< Must be set to true if apInfo is being passed */
5940   uint32_t apInfo_len;  /**< Must be set to # of elements in apInfo */
5941   qmiLocWifiApInfoStructT_v02 apInfo[QMI_LOC_WIFI_MAX_REPORTED_APS_PER_MSG_V02];
5942   /**<   \vspace{0.06in} \n AP scan list.
5943         SSID of the Wi-Fi AP.
5944         The ordering of the Wi-Fi AP SSID list should matchthe Wi-Fi AP MAC address list if both are provided,
5945         that is, the first element of the Wi-Fi AP SSID list must be the SSID of the AP whose MAC
5946         address is in the first element in the Wi-Fi AP Info MAC Address, and so on. */
5947 
5948   /* Optional */
5949   /*  Horizontal Reliability */
5950   uint8_t horizontalReliability_valid;  /**< Must be set to true if horizontalReliability is being passed */
5951   qmiLocReliabilityEnumT_v02 horizontalReliability;
5952   /**<   Specifies the reliability of the horizontal position.
5953 
5954  Valid values: \n
5955       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
5956       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
5957       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
5958       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
5959       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
5960  */
5961 
5962   /* Optional */
5963   /*  Raw HEPE */
5964   uint8_t rawHepe_valid;  /**< Must be set to true if rawHepe is being passed */
5965   uint16_t rawHepe;
5966   /**<   Wi-Fi position raw HEPE, which has no optimization.\n
5967         - Units: Meters */
5968 
5969   /* Optional */
5970   /*  Wi-Fi AP SSID String */
5971   uint8_t wifiApSsidInfo_valid;  /**< Must be set to true if wifiApSsidInfo is being passed */
5972   uint32_t wifiApSsidInfo_len;  /**< Must be set to # of elements in wifiApSsidInfo */
5973   qmiLocWifiApSsidStructT_v02 wifiApSsidInfo[QMI_LOC_WIFI_MAX_REPORTED_APS_PER_MSG_V02];
5974   /**<   \vspace{0.04in} \n
5975         The ordering of the Wi-Fi AP SSID list should match the Wi-Fi AP MAC address list if both are provided,
5976         that is, the first element of the Wi-Fi AP SSID list must be the SSID of the AP whose MAC
5977         address is in the first element in the Wi-Fi AP Info MAC address, and so on.*/
5978 }qmiLocInjectWifiPositionReqMsgT_v02;  /* Message */
5979 /**
5980     @}
5981   */
5982 
5983 /** @addtogroup loc_qmi_messages
5984     @{
5985   */
5986 /** Indication Message; Injects the Wi-Fi position. */
5987 typedef struct {
5988 
5989   /* Mandatory */
5990   /*  Inject Wi-Fi Position Status */
5991   qmiLocStatusEnumT_v02 status;
5992   /**<   Status of the Inject Wi-Fi Position request.
5993 
5994  Valid values: \n
5995       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
5996       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
5997       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
5998       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
5999       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
6000       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
6001       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
6002       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
6003       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
6004       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
6005       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
6006  */
6007 }qmiLocInjectWifiPositionIndMsgT_v02;  /* Message */
6008 /**
6009     @}
6010   */
6011 
6012 /** @addtogroup loc_qmi_enums
6013     @{
6014   */
6015 typedef enum {
6016   QMILOCWIFISTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
6017   eQMI_LOC_WIFI_STATUS_AVAILABLE_V02 = 1, /**<  Wi-Fi is available  */
6018   eQMI_LOC_WIFI_STATUS_UNAVAILABLE_V02 = 2, /**<  Wi-Fi is not available  */
6019   QMILOCWIFISTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
6020 }qmiLocWifiStatusEnumT_v02;
6021 /**
6022     @}
6023   */
6024 
6025 /** @addtogroup loc_qmi_messages
6026     @{
6027   */
6028 /** Request Message; Notifies the location engine of the Wi-Fi status. */
6029 typedef struct {
6030 
6031   /* Mandatory */
6032   /*  Availablility of Wi-Fi */
6033   qmiLocWifiStatusEnumT_v02 wifiStatus;
6034   /**<   Wi-Fi status information.
6035 
6036  Valid values: \n
6037       - eQMI_LOC_WIFI_STATUS_AVAILABLE (1) --  Wi-Fi is available
6038       - eQMI_LOC_WIFI_STATUS_UNAVAILABLE (2) --  Wi-Fi is not available
6039  */
6040 }qmiLocNotifyWifiStatusReqMsgT_v02;  /* Message */
6041 /**
6042     @}
6043   */
6044 
6045 /** @addtogroup loc_qmi_messages
6046     @{
6047   */
6048 /** Indication Message; Notifies the location engine of the Wi-Fi status. */
6049 typedef struct {
6050 
6051   /* Mandatory */
6052   /*  Status of Notify Wi-Fi Status Request */
6053   qmiLocStatusEnumT_v02 status;
6054   /**<   Status of the Notify Wi-Fi Status request.
6055 
6056  Valid values: \n
6057       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
6058       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
6059       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
6060       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
6061       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
6062       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
6063       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
6064       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
6065       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
6066       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
6067       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
6068  */
6069 }qmiLocNotifyWifiStatusIndMsgT_v02;  /* Message */
6070 /**
6071     @}
6072   */
6073 
6074 /** @addtogroup loc_qmi_messages
6075     @{
6076   */
6077 /** Request Message; Gets the mask of the events for which a client has
6078                     registered. */
6079 typedef struct {
6080   /* This element is a placeholder to prevent the declaration of
6081      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
6082   char __placeholder;
6083 }qmiLocGetRegisteredEventsReqMsgT_v02;
6084 
6085   /* Message */
6086 /**
6087     @}
6088   */
6089 
6090 /** @addtogroup loc_qmi_messages
6091     @{
6092   */
6093 /** Indication Message; Gets the mask of the events for which a client has
6094                     registered. */
6095 typedef struct {
6096 
6097   /* Mandatory */
6098   /*  Get Registered Events Status */
6099   qmiLocStatusEnumT_v02 status;
6100   /**<   Status of the Get Registered Events request.
6101 
6102  Valid values: \n
6103       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
6104       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
6105       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
6106       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
6107       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
6108       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
6109       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
6110       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
6111       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
6112       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
6113       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
6114  */
6115 
6116   /* Optional */
6117   /*  Event Registration Mask */
6118   uint8_t eventRegMask_valid;  /**< Must be set to true if eventRegMask is being passed */
6119   qmiLocEventRegMaskT_v02 eventRegMask;
6120   /**<   Event registration mask.
6121  Valid bitmasks: \n
6122       - QMI_LOC_EVENT_MASK_POSITION_REPORT (0x00000001) --  The control point must enable this mask to receive position report
6123        event indications.
6124       - QMI_LOC_EVENT_MASK_GNSS_SV_INFO (0x00000002) --  The control point must enable this mask to receive satellite report
6125        event indications. These reports are sent at a 1 Hz rate.
6126       - QMI_LOC_EVENT_MASK_NMEA (0x00000004) --  The control point must enable this mask to receive NMEA reports for
6127        position and satellites in view. The report is at a 1 Hz rate.
6128       - QMI_LOC_EVENT_MASK_NI_NOTIFY_VERIFY_REQ (0x00000008) --  The control point must enable this mask to receive NI Notify/Verify request
6129        event indications.
6130       - QMI_LOC_EVENT_MASK_INJECT_TIME_REQ (0x00000010) --  The control point must enable this mask to receive time injection request
6131        event indications.
6132       - QMI_LOC_EVENT_MASK_INJECT_PREDICTED_ORBITS_REQ (0x00000020) --  The control point must enable this mask to receive predicted orbits request
6133        event indications.
6134       - QMI_LOC_EVENT_MASK_INJECT_POSITION_REQ (0x00000040) --  The control point must enable this mask to receive position injection request
6135        event indications.
6136       - QMI_LOC_EVENT_MASK_ENGINE_STATE (0x00000080) --  The control point must enable this mask to receive engine state report
6137        event indications.
6138       - QMI_LOC_EVENT_MASK_FIX_SESSION_STATE (0x00000100) --  The control point must enable this mask to receive fix session status report
6139        event indications.
6140       - QMI_LOC_EVENT_MASK_WIFI_REQ (0x00000200) --  The control point must enable this mask to receive Wi-Fi position request
6141        event indications.
6142       - QMI_LOC_EVENT_MASK_SENSOR_STREAMING_READY_STATUS (0x00000400) --  The control point must enable this mask to receive notifications from the
6143        location engine indicating its readiness to accept data from the
6144        sensors (accelerometer, gyroscope, etc.).
6145       - QMI_LOC_EVENT_MASK_TIME_SYNC_REQ (0x00000800) --  The control point must enable this mask to receive time sync requests
6146        from the GPS engine. Time sync enables the GPS engine to synchronize
6147        its clock with the sensor processor's clock.
6148       - QMI_LOC_EVENT_MASK_SET_SPI_STREAMING_REPORT (0x00001000) --  The control point must enable this mask to receive Stationary Position
6149        Indicator (SPI) streaming report indications.
6150       - QMI_LOC_EVENT_MASK_LOCATION_SERVER_CONNECTION_REQ (0x00002000) --  The control point must enable this mask to receive location server
6151        requests. These requests are generated when the service wishes to
6152        establish a connection with a location server.
6153       - QMI_LOC_EVENT_MASK_NI_GEOFENCE_NOTIFICATION (0x00004000) --  The control point must enable this mask to receive notifications
6154        related to network-initiated Geofences. These events notify the client
6155        when a network-initiated Geofence is added, deleted, or edited.
6156       - QMI_LOC_EVENT_MASK_GEOFENCE_GEN_ALERT (0x00008000) --  The control point must enable this mask to receive Geofence alerts.
6157        These alerts are generated to inform the client of the changes that may
6158        affect a Geofence, e.g., if GPS is turned off or if the network is
6159        unavailable.
6160       - QMI_LOC_EVENT_MASK_GEOFENCE_BREACH_NOTIFICATION (0x00010000) --  The control point must enable this mask to receive notifications when
6161        a Geofence is breached. These events are generated when a UE enters
6162        or leaves the perimeter of a Geofence. This breach report is for a single
6163        Geofence .
6164       - QMI_LOC_EVENT_MASK_PEDOMETER_CONTROL (0x00020000) --  The control point must enable this mask to register for pedometer
6165        control requests from the location engine. The location engine sends
6166        this event to control the injection of pedometer reports.
6167       - QMI_LOC_EVENT_MASK_MOTION_DATA_CONTROL (0x00040000) --  The control point must enable this mask to register for motion data
6168        control requests from the location engine. The location engine sends
6169        this event to control the injection of motion data.
6170       - QMI_LOC_EVENT_MASK_BATCH_FULL_NOTIFICATION (0x00080000) --  The control point must enable this mask to receive notification when
6171        a batch is full. The location engine sends this event to notify of Batch Full
6172        for ongoing batching session.
6173       - QMI_LOC_EVENT_MASK_LIVE_BATCHED_POSITION_REPORT (0x00100000) --  The control point must enable this mask to receive position report
6174        indications along with an ongoing batching session. The location engine sends
6175        this event to notify the batched position report while a batching session
6176        is ongoing.
6177       - 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
6178        event indications.
6179       - QMI_LOC_EVENT_MASK_GEOFENCE_BATCH_BREACH_NOTIFICATION (0x00400000) --  The control point must enable this mask to receive notifications when
6180        a Geofence is breached. These events are generated when a UE enters
6181        or leaves the perimeter of a Geofence. This breach notification is for
6182        multiple Geofences. Breaches from multiple Geofences are all batched and
6183        sent in the same notification .
6184       - QMI_LOC_EVENT_MASK_VEHICLE_DATA_READY_STATUS (0x00800000) --  The control point must enable this mask to receive notifications from the
6185        location engine indicating its readiness to accept vehicle data (vehicle
6186        accelerometer, vehicle angular rate, vehicle odometry, etc.).
6187       - QMI_LOC_EVENT_MASK_GNSS_MEASUREMENT_REPORT (0x01000000) --  The control point must enable this mask to receive system clock and satellite
6188        measurement report events (system clock, SV time, Doppler, etc.). Reports are
6189        generated only for the GNSS satellite constellations that are enabled using
6190        QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG.
6191       - QMI_LOC_EVENT_MASK_GNSS_SV_POLYNOMIAL_REPORT (0x02000000) --  The control point must enable this mask to receive satellite position
6192         reports as polynomials. Reports are generated only for the GNSS satellite
6193         constellations that are enabled using QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG.
6194       - QMI_LOC_EVENT_MASK_GEOFENCE_PROXIMITY_NOTIFICATION (0x04000000) --  The control point must enable this mask to receive notifications when a Geofence proximity is entered
6195   and exited. The proximity of a Geofence may be due to different contexts. These contexts are identified
6196   using the context ID in this indication. The context of a Geofence may contain Wi-Fi area ID lists, IBeacon lists,
6197   Cell-ID list, and so forth.
6198       - QMI_LOC_EVENT_MASK_GDT_UPLOAD_BEGIN_REQ (0x08000000) --  The control point must enable this mask to receive Generic Data Transport (GDT)
6199         session begin request event indications.
6200       - QMI_LOC_EVENT_MASK_GDT_UPLOAD_END_REQ (0x10000000) --  The control point must enable this mask to receive GDT
6201         session end request event indications.
6202       - QMI_LOC_EVENT_MASK_GEOFENCE_BATCH_DWELL_NOTIFICATION (0x20000000) --  The control point must enable this mask to receive notifications when
6203        a Geofence is dwelled. These events are generated when a UE enters
6204        or leaves the perimeter of a Geofence and dwells inside or outside for a specified time.
6205        This dwell notification is for multiple Geofences. Dwells from multiple Geofences are all batched and
6206        sent in the same notification.
6207       - QMI_LOC_EVENT_MASK_GET_TIME_ZONE_REQ (0x40000000) --  The control point must enable this mask to receive requests for time zone information from
6208        the service. These events are generated when there is a need for time zone information in the
6209        service.
6210       - QMI_LOC_EVENT_MASK_BATCHING_STATUS (0x80000000) --  The control point must enable this mask to receive asynchronous events related
6211        to batching.
6212  */
6213 }qmiLocGetRegisteredEventsIndMsgT_v02;  /* Message */
6214 /**
6215     @}
6216   */
6217 
6218 /** @addtogroup loc_qmi_enums
6219     @{
6220   */
6221 typedef enum {
6222   QMILOCOPERATIONMODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
6223   eQMI_LOC_OPER_MODE_DEFAULT_V02 = 1, /**<  Use the default engine mode  */
6224   eQMI_LOC_OPER_MODE_MSB_V02 = 2, /**<  Use the MS-based mode  */
6225   eQMI_LOC_OPER_MODE_MSA_V02 = 3, /**<  Use the MS-assisted mode  */
6226   eQMI_LOC_OPER_MODE_STANDALONE_V02 = 4, /**<  Use Standalone mode  */
6227   eQMI_LOC_OPER_MODE_CELL_ID_V02 = 5, /**<  Use cell ID; this mode is only valid for GSM/UMTS networks  */
6228   eQMI_LOC_OPER_MODE_WWAN_V02 = 6, /**<  Use WWAN measurements to calculate the position; if this mode is
6229        set, AFLT will be used for 1X networks and OTDOA will be used
6230        for LTE networks  */
6231   QMILOCOPERATIONMODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
6232 }qmiLocOperationModeEnumT_v02;
6233 /**
6234     @}
6235   */
6236 
6237 /** @addtogroup loc_qmi_messages
6238     @{
6239   */
6240 /** Request Message; Tells the engine to use the specified operation mode while
6241                     making the position fixes. */
6242 typedef struct {
6243 
6244   /* Mandatory */
6245   /*  Operation Mode */
6246   qmiLocOperationModeEnumT_v02 operationMode;
6247   /**<   Preferred operation mode.
6248 
6249  Valid values: \n
6250       - eQMI_LOC_OPER_MODE_DEFAULT (1) --  Use the default engine mode
6251       - eQMI_LOC_OPER_MODE_MSB (2) --  Use the MS-based mode
6252       - eQMI_LOC_OPER_MODE_MSA (3) --  Use the MS-assisted mode
6253       - eQMI_LOC_OPER_MODE_STANDALONE (4) --  Use Standalone mode
6254       - eQMI_LOC_OPER_MODE_CELL_ID (5) --  Use cell ID; this mode is only valid for GSM/UMTS networks
6255       - eQMI_LOC_OPER_MODE_WWAN (6) --  Use WWAN measurements to calculate the position; if this mode is
6256        set, AFLT will be used for 1X networks and OTDOA will be used
6257        for LTE networks
6258  */
6259 
6260   /* Optional */
6261   /*  Minimum Interval Between Position Reports */
6262   uint8_t minInterval_valid;  /**< Must be set to true if minInterval is being passed */
6263   uint32_t minInterval;
6264   /**<   Minimum time interval, specified by the control point, that must elapse between
6265        position reports. \n
6266        - Units: milliseconds \n
6267        - Default: 1000 ms
6268   */
6269 }qmiLocSetOperationModeReqMsgT_v02;  /* Message */
6270 /**
6271     @}
6272   */
6273 
6274 /** @addtogroup loc_qmi_messages
6275     @{
6276   */
6277 /** Indication Message; Tells the engine to use the specified operation mode while
6278                     making the position fixes. */
6279 typedef struct {
6280 
6281   /* Mandatory */
6282   /*  Set Operation Mode Status */
6283   qmiLocStatusEnumT_v02 status;
6284   /**<   Status of the Set Operation Mode request.
6285 
6286  Valid values: \n
6287       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
6288       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
6289       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
6290       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
6291       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
6292       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
6293       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
6294       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
6295       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
6296       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
6297       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
6298  */
6299 }qmiLocSetOperationModeIndMsgT_v02;  /* Message */
6300 /**
6301     @}
6302   */
6303 
6304 /** @addtogroup loc_qmi_messages
6305     @{
6306   */
6307 /** Request Message; Gets the current operation mode from the engine. */
6308 typedef struct {
6309   /* This element is a placeholder to prevent the declaration of
6310      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
6311   char __placeholder;
6312 }qmiLocGetOperationModeReqMsgT_v02;
6313 
6314   /* Message */
6315 /**
6316     @}
6317   */
6318 
6319 /** @addtogroup loc_qmi_messages
6320     @{
6321   */
6322 /** Indication Message; Gets the current operation mode from the engine. */
6323 typedef struct {
6324 
6325   /* Mandatory */
6326   /*  Get Operation Mode Status */
6327   qmiLocStatusEnumT_v02 status;
6328   /**<   Status of the Get Operation Mode request.
6329 
6330  Valid values: \n
6331       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
6332       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
6333       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
6334       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
6335       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
6336       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
6337       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
6338       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
6339       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
6340       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
6341       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
6342  */
6343 
6344   /* Optional */
6345   /*  Operation Mode */
6346   uint8_t operationMode_valid;  /**< Must be set to true if operationMode is being passed */
6347   qmiLocOperationModeEnumT_v02 operationMode;
6348   /**<   Current operation mode.
6349 
6350  Valid values: \n
6351       - eQMI_LOC_OPER_MODE_DEFAULT (1) --  Use the default engine mode
6352       - eQMI_LOC_OPER_MODE_MSB (2) --  Use the MS-based mode
6353       - eQMI_LOC_OPER_MODE_MSA (3) --  Use the MS-assisted mode
6354       - eQMI_LOC_OPER_MODE_STANDALONE (4) --  Use Standalone mode
6355       - eQMI_LOC_OPER_MODE_CELL_ID (5) --  Use cell ID; this mode is only valid for GSM/UMTS networks
6356       - eQMI_LOC_OPER_MODE_WWAN (6) --  Use WWAN measurements to calculate the position; if this mode is
6357        set, AFLT will be used for 1X networks and OTDOA will be used
6358        for LTE networks
6359  */
6360 }qmiLocGetOperationModeIndMsgT_v02;  /* Message */
6361 /**
6362     @}
6363   */
6364 
6365 /** @addtogroup loc_qmi_messages
6366     @{
6367   */
6368 /** Request Message; Used by the control point to set the SPI status, which
6369                     indicates whether the device is stationary. */
6370 typedef struct {
6371 
6372   /* Mandatory */
6373   /*  Stationary Status */
6374   uint8_t stationary;
6375   /**<   Indicates whether the device is stationary:
6376        \begin{itemize1}
6377        \item    0x00 (FALSE) -- Device is not stationary
6378        \item    0x01 (TRUE)  -- Device is stationary
6379        \vspace{-0.18in} \end{itemize1}*/
6380 
6381   /* Optional */
6382   /*  Confidence */
6383   uint8_t confidenceStationary_valid;  /**< Must be set to true if confidenceStationary is being passed */
6384   uint8_t confidenceStationary;
6385   /**<   Confidence in the Stationary state expressed as a percentage.\n
6386        - Range: 0 to 100 */
6387 }qmiLocSetSpiStatusReqMsgT_v02;  /* Message */
6388 /**
6389     @}
6390   */
6391 
6392 /** @addtogroup loc_qmi_messages
6393     @{
6394   */
6395 /** Indication Message; Used by the control point to set the SPI status, which
6396                     indicates whether the device is stationary. */
6397 typedef struct {
6398 
6399   /* Mandatory */
6400   /*  Status of SPI Status Request */
6401   qmiLocStatusEnumT_v02 status;
6402   /**<   Status of the SPI Status request.
6403 
6404  Valid values: \n
6405       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
6406       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
6407       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
6408       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
6409       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
6410       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
6411       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
6412       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
6413       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
6414       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
6415       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
6416  */
6417 }qmiLocSetSpiStatusIndMsgT_v02;  /* Message */
6418 /**
6419     @}
6420   */
6421 
6422 typedef uint8_t qmiLocSensorDataFlagMaskT_v02;
6423 #define QMI_LOC_SENSOR_DATA_FLAG_SIGN_REVERSAL_V02 ((qmiLocSensorDataFlagMaskT_v02)0x01) /**<  Bitmask to specify that a sign reversal is required while interpreting
6424      the sensor data; only applies to the accelerometer samples  */
6425 #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
6426        time stamp  */
6427 #define QMI_LOC_SENSOR_DATA_FLAG_CALIBRATED_DATA_V02 ((qmiLocSensorDataFlagMaskT_v02)0x04) /**<  Bitmask to specify that the injected sensor data is calibrated  */
6428 /** @addtogroup loc_qmi_enums
6429     @{
6430   */
6431 typedef enum {
6432   QMILOCSENSORDATATIMESOURCEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
6433   eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED_V02 = 0, /**<  Sensor time source is unspecified  */
6434   eQMI_LOC_SENSOR_TIME_SOURCE_COMMON_V02 = 1, /**<  Time source is common between the sensors and
6435        the location engine  */
6436   QMILOCSENSORDATATIMESOURCEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
6437 }qmiLocSensorDataTimeSourceEnumT_v02;
6438 /**
6439     @}
6440   */
6441 
6442 /** @addtogroup loc_qmi_aggregates
6443     @{
6444   */
6445 typedef struct {
6446 
6447   uint16_t timeOffset;
6448   /**<   Sample time offset. This time offset must be
6449        relative to the timestamp of the first sensor data sample.\n
6450        - Units: Milliseconds */
6451 
6452   float xAxis;
6453   /**<   Sensor x-axis sample. \n
6454        - Units Accelerometer: Meters/seconds^2 \n
6455        - Units Gyroscope:     Radians/second \n
6456        - Units Magnetometer:  microTesla */
6457 
6458   float yAxis;
6459   /**<   Sensor y-axis sample. \n
6460        - Units Accelerometer: Meters/seconds^2 \n
6461        - Units Gyroscope:     Radians/second \n
6462        - Units Magnetometer:  microTesla */
6463 
6464   float zAxis;
6465   /**<   Sensor z-axis sample. \n
6466        - Units Accelerometer: Meters/seconds^2 ) \n
6467        - Units Gyroscope:     Radians/second \n
6468        - Units Magnetometer:  microTesla */
6469 }qmiLoc3AxisSensorSampleStructT_v02;  /* Type */
6470 /**
6471     @}
6472   */
6473 
6474 /** @addtogroup loc_qmi_aggregates
6475     @{
6476   */
6477 typedef struct {
6478 
6479   uint32_t timeOfFirstSample;
6480   /**<   Denotes a full 32-bit timestamp of the first (oldest) sample in this
6481        message.The timestamp is in the time reference scale that is
6482        used by the sensor time source.\n
6483        - Units: Milliseconds */
6484 
6485   qmiLocSensorDataFlagMaskT_v02 flags;
6486   /**<   Flags to indicate any deviation from the default measurement
6487  assumptions. All unused bits in this field must be set to 0.
6488 
6489  Valid bitmasks:
6490       - QMI_LOC_SENSOR_DATA_FLAG_SIGN_REVERSAL (0x01) --  Bitmask to specify that a sign reversal is required while interpreting
6491      the sensor data; only applies to the accelerometer samples
6492       - 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
6493        time stamp
6494       - QMI_LOC_SENSOR_DATA_FLAG_CALIBRATED_DATA (0x04) --  Bitmask to specify that the injected sensor data is calibrated  */
6495 
6496   uint32_t sensorData_len;  /**< Must be set to # of elements in sensorData */
6497   qmiLoc3AxisSensorSampleStructT_v02 sensorData[QMI_LOC_SENSOR_DATA_MAX_SAMPLES_V02];
6498   /**<   Variable length array to specify sensor samples. \n
6499        - Maximum length of the array: 50 */
6500 }qmiLoc3AxisSensorSampleListStructT_v02;  /* Type */
6501 /**
6502     @}
6503   */
6504 
6505 /** @addtogroup loc_qmi_aggregates
6506     @{
6507   */
6508 typedef struct {
6509 
6510   uint16_t timeOffset;
6511   /**<   Sample time offset. This time offset must be
6512        relative to the timestamp of the first sensor sample.\n
6513        - Units: Milliseconds */
6514 
6515   float temperature;
6516   /**<   Sensor temperature. \n
6517        - Type: Floating point \n
6518        - Units: Degrees Celsius \n
6519        - Range: -50 to +100.00 */
6520 }qmiLocSensorTemperatureSampleStructT_v02;  /* Type */
6521 /**
6522     @}
6523   */
6524 
6525 /** @addtogroup loc_qmi_aggregates
6526     @{
6527   */
6528 typedef struct {
6529 
6530   qmiLocSensorDataTimeSourceEnumT_v02 timeSource;
6531   /**<   Denotes the time source of the sensor data. Location service will use
6532  this field to identify the time reference used in the
6533  sensor data timestamps.
6534 
6535  Valid values: \n
6536       - eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED (0) --  Sensor time source is unspecified
6537       - eQMI_LOC_SENSOR_TIME_SOURCE_COMMON (1) --  Time source is common between the sensors and
6538        the location engine
6539  */
6540 
6541   uint32_t timeOfFirstSample;
6542   /**<   Denotes a full 32-bit timestamp of the first (oldest) sample in this
6543        message. The timestamp is in the time reference scale that is
6544        used by the sensor time source.\n
6545        - Units: Milliseconds */
6546 
6547   uint32_t temperatureData_len;  /**< Must be set to # of elements in temperatureData */
6548   qmiLocSensorTemperatureSampleStructT_v02 temperatureData[QMI_LOC_SENSOR_DATA_MAX_SAMPLES_V02];
6549   /**<   Variable length array to specify sensor temperature samples. \n
6550        - Maximum length of the array: 50 */
6551 }qmiLocSensorTemperatureSampleListStructT_v02;  /* Type */
6552 /**
6553     @}
6554   */
6555 
6556 /** @addtogroup loc_qmi_messages
6557     @{
6558   */
6559 /** Request Message; Used by the control point to inject sensor data into the
6560                     GNSS location engine. */
6561 typedef struct {
6562 
6563   /* Optional */
6564   /*  Opaque Identifier */
6565   uint8_t opaqueIdentifier_valid;  /**< Must be set to true if opaqueIdentifier is being passed */
6566   uint32_t opaqueIdentifier;
6567   /**<   An opaque identifier that is sent in by the client that will be echoed
6568        in the indication so the client can relate the indication to the
6569        request. */
6570 
6571   /* Optional */
6572   /*  3-Axis Accelerometer Data */
6573   uint8_t threeAxisAccelData_valid;  /**< Must be set to true if threeAxisAccelData is being passed */
6574   qmiLoc3AxisSensorSampleListStructT_v02 threeAxisAccelData;
6575   /**<   \vspace{0.06in} \n Accelerometer sensor samples. */
6576 
6577   /* Optional */
6578   /*  3-Axis Gyroscope Data */
6579   uint8_t threeAxisGyroData_valid;  /**< Must be set to true if threeAxisGyroData is being passed */
6580   qmiLoc3AxisSensorSampleListStructT_v02 threeAxisGyroData;
6581   /**<   \vspace{0.06in} \n Gyroscope sensor samples. */
6582 
6583   /* Optional */
6584   /*  3-Axis Accelerometer Data Time Source */
6585   uint8_t threeAxisAccelDataTimeSource_valid;  /**< Must be set to true if threeAxisAccelDataTimeSource is being passed */
6586   qmiLocSensorDataTimeSourceEnumT_v02 threeAxisAccelDataTimeSource;
6587   /**<   Time source for the 3-axis accelerometer data. The location service uses
6588  this field to identify the time reference used in the accelerometer data
6589  timestamps. If not specified, the location service assumes that the
6590  time source for the accelereometer data is unknown. \n
6591  Values: \n
6592       - eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED (0) --  Sensor time source is unspecified
6593       - eQMI_LOC_SENSOR_TIME_SOURCE_COMMON (1) --  Time source is common between the sensors and
6594        the location engine
6595  */
6596 
6597   /* Optional */
6598   /*  3-Axis Gyroscope Data Time Source */
6599   uint8_t threeAxisGyroDataTimeSource_valid;  /**< Must be set to true if threeAxisGyroDataTimeSource is being passed */
6600   qmiLocSensorDataTimeSourceEnumT_v02 threeAxisGyroDataTimeSource;
6601   /**<   Time source for the 3-axis gyroscope data. The location service uses
6602  this field to identify the time reference used in the gyroscope data
6603  timestamps. If not specified, the location service assumes that the
6604  time source for the gyroscope data is unknown. \n
6605  Values: \n
6606       - eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED (0) --  Sensor time source is unspecified
6607       - eQMI_LOC_SENSOR_TIME_SOURCE_COMMON (1) --  Time source is common between the sensors and
6608        the location engine
6609  */
6610 
6611   /* Optional */
6612   /*  Accelerometer Temperature Data */
6613   uint8_t accelTemperatureData_valid;  /**< Must be set to true if accelTemperatureData is being passed */
6614   qmiLocSensorTemperatureSampleListStructT_v02 accelTemperatureData;
6615   /**<   \vspace{0.06in}  \nAccelerometer temperature samples. This data is optional and does not
6616        have to be included in the message along with accelerometer data. */
6617 
6618   /* Optional */
6619   /*  Gyroscope Temperature Data */
6620   uint8_t gyroTemperatureData_valid;  /**< Must be set to true if gyroTemperatureData is being passed */
6621   qmiLocSensorTemperatureSampleListStructT_v02 gyroTemperatureData;
6622   /**<   \vspace{0.06in} \n Gyroscope temperature samples. This data is optional and does not
6623        have to be included in the message along with gyroscope data. */
6624 
6625   /* Optional */
6626   /*  3-Axis Magnetometer Data */
6627   uint8_t threeAxisMagData_valid;  /**< Must be set to true if threeAxisMagData is being passed */
6628   qmiLoc3AxisSensorSampleListStructT_v02 threeAxisMagData;
6629   /**<   \vspace{0.06in} \n Magnetometer sensor samples. */
6630 
6631   /* Optional */
6632   /*  3-Axis Magnetometer Data Time Source */
6633   uint8_t threeAxisMagDataTimeSource_valid;  /**< Must be set to true if threeAxisMagDataTimeSource is being passed */
6634   qmiLocSensorDataTimeSourceEnumT_v02 threeAxisMagDataTimeSource;
6635   /**<   Time source for the 3-axis magnetometer data. The location service uses
6636  this field to identify the time reference used in the magnetometer data
6637  timestamps. If not specified, the location service assumes that the
6638  time source for the magnetometer data is unknown. \n
6639  Values: \n
6640       - eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED (0) --  Sensor time source is unspecified
6641       - eQMI_LOC_SENSOR_TIME_SOURCE_COMMON (1) --  Time source is common between the sensors and
6642        the location engine
6643  */
6644 }qmiLocInjectSensorDataReqMsgT_v02;  /* Message */
6645 /**
6646     @}
6647   */
6648 
6649 /** @addtogroup loc_qmi_messages
6650     @{
6651   */
6652 /** Indication Message; Used by the control point to inject sensor data into the
6653                     GNSS location engine. */
6654 typedef struct {
6655 
6656   /* Mandatory */
6657   /*  Inject Sensor Data Status */
6658   qmiLocStatusEnumT_v02 status;
6659   /**<   Status of the Inject Sensor Data request.
6660 
6661  Valid values: \n
6662       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
6663       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
6664       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
6665       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
6666       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
6667       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
6668       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
6669       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
6670       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
6671       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
6672       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
6673  */
6674 
6675   /* Optional */
6676   /*  Opaque Identifier */
6677   uint8_t opaqueIdentifier_valid;  /**< Must be set to true if opaqueIdentifier is being passed */
6678   uint32_t opaqueIdentifier;
6679   /**<   Opaque identifier that was sent in by the client echoed
6680        so the client can relate the indication to the request. */
6681 
6682   /* Optional */
6683   /*  Accelerometer Samples Accepted */
6684   uint8_t threeAxisAccelSamplesAccepted_valid;  /**< Must be set to true if threeAxisAccelSamplesAccepted is being passed */
6685   uint8_t threeAxisAccelSamplesAccepted;
6686   /**<   Lets the client know how many 3-axis accelerometer samples
6687        were accepted. This field is present only if the accelerometer
6688        samples were sent in the request. */
6689 
6690   /* Optional */
6691   /*  Gyroscope Samples Accepted */
6692   uint8_t threeAxisGyroSamplesAccepted_valid;  /**< Must be set to true if threeAxisGyroSamplesAccepted is being passed */
6693   uint8_t threeAxisGyroSamplesAccepted;
6694   /**<   Lets the client know how many 3-axis gyroscope samples were
6695        accepted. This field is present only if the gyroscope
6696        samples were sent in the request. */
6697 
6698   /* Optional */
6699   /*  Accelerometer Temperature Samples Accepted */
6700   uint8_t accelTemperatureSamplesAccepted_valid;  /**< Must be set to true if accelTemperatureSamplesAccepted is being passed */
6701   uint8_t accelTemperatureSamplesAccepted;
6702   /**<   Lets the client know how many accelerometer temperature
6703        samples were accepted. This field is present only if the accelerometer
6704        temperature samples were sent in the request. */
6705 
6706   /* Optional */
6707   /*  Gyroscope Temperature Samples Accepted */
6708   uint8_t gyroTemperatureSamplesAccepted_valid;  /**< Must be set to true if gyroTemperatureSamplesAccepted is being passed */
6709   uint8_t gyroTemperatureSamplesAccepted;
6710   /**<   Lets the client know how many gyroscope temperature samples
6711        were accepted. This field is present only if the gyroscope
6712        temperature samples were sent in the request. */
6713 
6714   /* Optional */
6715   /*  Magnetometer Samples Accepted */
6716   uint8_t threeAxisMagSamplesAccepted_valid;  /**< Must be set to true if threeAxisMagSamplesAccepted is being passed */
6717   uint8_t threeAxisMagSamplesAccepted;
6718   /**<   Lets the client know how many 3-axis magnetometer samples
6719        were accepted. This field is present only if the magnetometer
6720        samples were sent in the request. */
6721 }qmiLocInjectSensorDataIndMsgT_v02;  /* Message */
6722 /**
6723     @}
6724   */
6725 
6726 /** @addtogroup loc_qmi_messages
6727     @{
6728   */
6729 /** Request Message; Used by the control point to inject time sync data. */
6730 typedef struct {
6731 
6732   /* Mandatory */
6733   /*  Reference Time Sync Counter */
6734   uint32_t refCounter;
6735   /**<   Must be set to the value that was sent to the control point when the
6736        GNSS location engine requested time sync injection. */
6737 
6738   /* Mandatory */
6739   /*  Sensor Receive Time */
6740   uint32_t sensorProcRxTime;
6741   /**<   Value of the sensor time when the control point received the
6742        Time Sync Inject request from the GNSS location engine.
6743 
6744        Must be monotonically increasing, jitter @latexonly $\leq$ @endlatexonly 1
6745        millisecond, never stopping until the process is rebooted.\n
6746        - Units: Milliseconds */
6747 
6748   /* Mandatory */
6749   /*  Sensor Transmit Time */
6750   uint32_t sensorProcTxTime;
6751   /**<   Value of the sensor time when the control point injects this message
6752        for use by the GNSS location engine.
6753 
6754        Must be monotonically increasing, jitter @latexonly $\leq$ @endlatexonly 1
6755        millisecond, never stopping until the process is rebooted.\n
6756        - Units: Milliseconds */
6757 }qmiLocInjectTimeSyncDataReqMsgT_v02;  /* Message */
6758 /**
6759     @}
6760   */
6761 
6762 /** @addtogroup loc_qmi_messages
6763     @{
6764   */
6765 /** Indication Message; Used by the control point to inject time sync data. */
6766 typedef struct {
6767 
6768   /* Mandatory */
6769   /*  Inject Time Sync Data Status */
6770   qmiLocStatusEnumT_v02 status;
6771   /**<   Status of the Inject Time Sync Data request.
6772 
6773  Valid values: \n
6774       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
6775       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
6776       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
6777       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
6778       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
6779       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
6780       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
6781       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
6782       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
6783       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
6784       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
6785  */
6786 }qmiLocInjectTimeSyncDataIndMsgT_v02;  /* Message */
6787 /**
6788     @}
6789   */
6790 
6791 /** @addtogroup loc_qmi_enums
6792     @{
6793   */
6794 typedef enum {
6795   QMILOCCRADLEMOUNTSTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
6796   eQMI_LOC_CRADLE_STATE_NOT_MOUNTED_V02 = 0, /**<  Device is mounted on the cradle */
6797   eQMI_LOC_CRADLE_STATE_MOUNTED_V02 = 1, /**<  Device is not mounted on the cradle */
6798   eQMI_LOC_CRADLE_STATE_UNKNOWN_V02 = 2, /**<  Unknown cradle mount state */
6799   QMILOCCRADLEMOUNTSTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
6800 }qmiLocCradleMountStateEnumT_v02;
6801 /**
6802     @}
6803   */
6804 
6805 /** @addtogroup loc_qmi_messages
6806     @{
6807   */
6808 /** Request Message; Used by the control point to get the current
6809                     cradle mount configuration. */
6810 typedef struct {
6811   /* This element is a placeholder to prevent the declaration of
6812      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
6813   char __placeholder;
6814 }qmiLocGetCradleMountConfigReqMsgT_v02;
6815 
6816   /* Message */
6817 /**
6818     @}
6819   */
6820 
6821 /** @addtogroup loc_qmi_messages
6822     @{
6823   */
6824 /** Indication Message; Used by the control point to get the current
6825                     cradle mount configuration. */
6826 typedef struct {
6827 
6828   /* Mandatory */
6829   /*  Get Cradle Mount Config Status */
6830   qmiLocStatusEnumT_v02 status;
6831   /**<   Status of the Get Cradle Mount Configuration request.
6832 
6833  Valid values: \n
6834       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
6835       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
6836       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
6837       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
6838       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
6839       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
6840       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
6841       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
6842       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
6843       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
6844       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
6845  */
6846 
6847   /* Optional */
6848   /*  Cradle Mount State */
6849   uint8_t cradleMountState_valid;  /**< Must be set to true if cradleMountState is being passed */
6850   qmiLocCradleMountStateEnumT_v02 cradleMountState;
6851   /**<   Cradle Mount state set by the control point.
6852 
6853  Valid values: \n
6854       - eQMI_LOC_CRADLE_STATE_NOT_MOUNTED (0) --  Device is mounted on the cradle
6855       - eQMI_LOC_CRADLE_STATE_MOUNTED (1) --  Device is not mounted on the cradle
6856       - eQMI_LOC_CRADLE_STATE_UNKNOWN (2) --  Unknown cradle mount state
6857  */
6858 
6859   /* Optional */
6860   /*  Cradle Mount Confidence */
6861   uint8_t confidenceCradleMountState_valid;  /**< Must be set to true if confidenceCradleMountState is being passed */
6862   uint8_t confidenceCradleMountState;
6863   /**<   Confidence of the Cradle Mount state expressed as a percentage.\n
6864        - Range: 0 to 100 */
6865 }qmiLocGetCradleMountConfigIndMsgT_v02;  /* Message */
6866 /**
6867     @}
6868   */
6869 
6870 /** @addtogroup loc_qmi_messages
6871     @{
6872   */
6873 /** Request Message; Used by the control point to set the current
6874                     cradle mount configuration. */
6875 typedef struct {
6876 
6877   /* Mandatory */
6878   /*  Cradle Mount State */
6879   qmiLocCradleMountStateEnumT_v02 cradleMountState;
6880   /**<   Cradle Mount state set by the control point.
6881 
6882  Valid values: \n
6883       - eQMI_LOC_CRADLE_STATE_NOT_MOUNTED (0) --  Device is mounted on the cradle
6884       - eQMI_LOC_CRADLE_STATE_MOUNTED (1) --  Device is not mounted on the cradle
6885       - eQMI_LOC_CRADLE_STATE_UNKNOWN (2) --  Unknown cradle mount state
6886  */
6887 
6888   /* Optional */
6889   /*  Cradle Mount Confidence */
6890   uint8_t confidenceCradleMountState_valid;  /**< Must be set to true if confidenceCradleMountState is being passed */
6891   uint8_t confidenceCradleMountState;
6892   /**<   Confidence in the Cradle Mount state expressed as a percentage.\n
6893        - Range: 0 to 100 */
6894 }qmiLocSetCradleMountConfigReqMsgT_v02;  /* Message */
6895 /**
6896     @}
6897   */
6898 
6899 /** @addtogroup loc_qmi_messages
6900     @{
6901   */
6902 /** Indication Message; Used by the control point to set the current
6903                     cradle mount configuration. */
6904 typedef struct {
6905 
6906   /* Mandatory */
6907   /*  Set Cradle Mount Config Status */
6908   qmiLocStatusEnumT_v02 status;
6909   /**<   Status of the Set Cradle Mount Configuration request.
6910 
6911  Valid values: \n
6912       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
6913       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
6914       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
6915       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
6916       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
6917       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
6918       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
6919       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
6920       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
6921       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
6922       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
6923  */
6924 }qmiLocSetCradleMountConfigIndMsgT_v02;  /* Message */
6925 /**
6926     @}
6927   */
6928 
6929 /** @addtogroup loc_qmi_enums
6930     @{
6931   */
6932 typedef enum {
6933   QMILOCEXTERNALPOWERCONFIGENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
6934   eQMI_LOC_EXTERNAL_POWER_NOT_CONNECTED_V02 = 0, /**<  Device is not connected to an external power source  */
6935   eQMI_LOC_EXTERNAL_POWER_CONNECTED_V02 = 1, /**<  Device is connected to an external power source  */
6936   eQMI_LOC_EXTERNAL_POWER_UNKNOWN_V02 = 2, /**<  Unknown external power state  */
6937   QMILOCEXTERNALPOWERCONFIGENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
6938 }qmiLocExternalPowerConfigEnumT_v02;
6939 /**
6940     @}
6941   */
6942 
6943 /** @addtogroup loc_qmi_messages
6944     @{
6945   */
6946 /** Request Message; Used by the control point to get the current
6947                     external power configuration. */
6948 typedef struct {
6949   /* This element is a placeholder to prevent the declaration of
6950      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
6951   char __placeholder;
6952 }qmiLocGetExternalPowerConfigReqMsgT_v02;
6953 
6954   /* Message */
6955 /**
6956     @}
6957   */
6958 
6959 /** @addtogroup loc_qmi_messages
6960     @{
6961   */
6962 /** Indication Message; Used by the control point to get the current
6963                     external power configuration. */
6964 typedef struct {
6965 
6966   /* Mandatory */
6967   /*  Get Ext Power Config Status */
6968   qmiLocStatusEnumT_v02 status;
6969   /**<   Status of the Get External Power Configuration request.
6970 
6971  Valid values: \n
6972       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
6973       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
6974       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
6975       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
6976       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
6977       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
6978       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
6979       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
6980       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
6981       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
6982       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
6983  */
6984 
6985   /* Optional */
6986   /*  External Power State */
6987   uint8_t externalPowerState_valid;  /**< Must be set to true if externalPowerState is being passed */
6988   qmiLocExternalPowerConfigEnumT_v02 externalPowerState;
6989   /**<   Power state; injected by the control point.
6990 
6991  Valid values: \n
6992       - eQMI_LOC_EXTERNAL_POWER_NOT_CONNECTED (0) --  Device is not connected to an external power source
6993       - eQMI_LOC_EXTERNAL_POWER_CONNECTED (1) --  Device is connected to an external power source
6994       - eQMI_LOC_EXTERNAL_POWER_UNKNOWN (2) --  Unknown external power state
6995  */
6996 }qmiLocGetExternalPowerConfigIndMsgT_v02;  /* Message */
6997 /**
6998     @}
6999   */
7000 
7001 /** @addtogroup loc_qmi_messages
7002     @{
7003   */
7004 /** Request Message; Used by the control point to set the current
7005                     external power configuration. */
7006 typedef struct {
7007 
7008   /* Mandatory */
7009   /*  External Power State */
7010   qmiLocExternalPowerConfigEnumT_v02 externalPowerState;
7011   /**<   Power state; injected by the control point.
7012 
7013  Valid values: \n
7014       - eQMI_LOC_EXTERNAL_POWER_NOT_CONNECTED (0) --  Device is not connected to an external power source
7015       - eQMI_LOC_EXTERNAL_POWER_CONNECTED (1) --  Device is connected to an external power source
7016       - eQMI_LOC_EXTERNAL_POWER_UNKNOWN (2) --  Unknown external power state
7017  */
7018 }qmiLocSetExternalPowerConfigReqMsgT_v02;  /* Message */
7019 /**
7020     @}
7021   */
7022 
7023 /** @addtogroup loc_qmi_messages
7024     @{
7025   */
7026 /** Indication Message; Used by the control point to set the current
7027                     external power configuration. */
7028 typedef struct {
7029 
7030   /* Mandatory */
7031   /*  Set Ext Power Config Status */
7032   qmiLocStatusEnumT_v02 status;
7033   /**<   Status of the Set External Power Configuration request.
7034 
7035  Valid values: \n
7036       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
7037       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
7038       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
7039       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
7040       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
7041       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
7042       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
7043       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
7044       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
7045       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
7046       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
7047  */
7048 }qmiLocSetExternalPowerConfigIndMsgT_v02;  /* Message */
7049 /**
7050     @}
7051   */
7052 
7053 /** @addtogroup loc_qmi_enums
7054     @{
7055   */
7056 typedef enum {
7057   QMILOCSERVERPDNENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
7058   eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV4_V02 = 0x01, /**<  IPv4 PDN type  */
7059   eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV6_V02 = 0x02, /**<  IPv6 PDN type  */
7060   eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV4V6_V02 = 0x03, /**<  IPv4v6 PDN type  */
7061   eQMI_LOC_APN_PROFILE_PDN_TYPE_PPP_V02 = 0x04, /**<  PPP PDN type  */
7062   QMILOCSERVERPDNENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
7063 }qmiLocServerPDNEnumT_v02;
7064 /**
7065     @}
7066   */
7067 
7068 /** @addtogroup loc_qmi_aggregates
7069     @{
7070   */
7071 typedef struct {
7072 
7073   qmiLocServerPDNEnumT_v02 pdnType;
7074   /**<   PDN type of the APN profile.
7075 
7076  Valid values: \n
7077       - eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV4 (0x01) --  IPv4 PDN type
7078       - eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV6 (0x02) --  IPv6 PDN type
7079       - eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV4V6 (0x03) --  IPv4v6 PDN type
7080       - eQMI_LOC_APN_PROFILE_PDN_TYPE_PPP (0x04) --  PPP PDN type
7081  */
7082 
7083   char apnName[QMI_LOC_MAX_APN_NAME_LENGTH_V02 + 1];
7084   /**<   APN name.
7085        \begin{itemize1}
7086        \item    Type: NULL-terminated string
7087        \item    Maximum string length (including NULL terminator): 101
7088        \vspace{-0.18in} \end{itemize1}
7089   */
7090 }qmiLocApnProfilesStructT_v02;  /* Type */
7091 /**
7092     @}
7093   */
7094 
7095 /** @addtogroup loc_qmi_enums
7096     @{
7097   */
7098 typedef enum {
7099   QMILOCSERVERREQSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
7100   eQMI_LOC_SERVER_REQ_STATUS_SUCCESS_V02 = 1, /**<  Location server request was successful  */
7101   eQMI_LOC_SERVER_REQ_STATUS_FAILURE_V02 = 2, /**<  Location server request failed  */
7102   QMILOCSERVERREQSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
7103 }qmiLocServerReqStatusEnumT_v02;
7104 /**
7105     @}
7106   */
7107 
7108 /** @addtogroup loc_qmi_messages
7109     @{
7110   */
7111 /** Request Message; Used by the control point to inform the service about the
7112                     status of the location server connection request that the
7113                     service may have sent via the
7114                     QMI_LOC_EVENT_LOCATION_SERVER_CONNECTION_REQ_IND event. */
7115 typedef struct {
7116 
7117   /* Mandatory */
7118   /*  Connection Handle */
7119   uint32_t connHandle;
7120   /**<   Connection handle that the service specified in the
7121        Location Server Connection request event. */
7122 
7123   /* Mandatory */
7124   /*  Request Type */
7125   qmiLocServerRequestEnumT_v02 requestType;
7126   /**<   Type of connection request service that was specified in the
7127  Location Server Connection Request event.
7128 
7129  Valid values: \n
7130       - eQMI_LOC_SERVER_REQUEST_OPEN (1) --  Open a connection to the location server
7131       - eQMI_LOC_SERVER_REQUEST_CLOSE (2) --  Close a connection to the location server
7132  */
7133 
7134   /* Mandatory */
7135   /*  Connection Status */
7136   qmiLocServerReqStatusEnumT_v02 statusType;
7137   /**<   Status of the Connection request.
7138 
7139  Valid values: \n
7140       - eQMI_LOC_SERVER_REQ_STATUS_SUCCESS (1) --  Location server request was successful
7141       - eQMI_LOC_SERVER_REQ_STATUS_FAILURE (2) --  Location server request failed
7142  */
7143 
7144   /* Optional */
7145   /*  APN Profile */
7146   uint8_t apnProfile_valid;  /**< Must be set to true if apnProfile is being passed */
7147   qmiLocApnProfilesStructT_v02 apnProfile;
7148   /**<   \vspace{0.06in} \n Access Point Name (APN) profile information is present only when
7149        requestType is OPEN and statusType is SUCCESS. */
7150 }qmiLocInformLocationServerConnStatusReqMsgT_v02;  /* Message */
7151 /**
7152     @}
7153   */
7154 
7155 /** @addtogroup loc_qmi_messages
7156     @{
7157   */
7158 /** Indication Message; Used by the control point to inform the service about the
7159                     status of the location server connection request that the
7160                     service may have sent via the
7161                     QMI_LOC_EVENT_LOCATION_SERVER_CONNECTION_REQ_IND event. */
7162 typedef struct {
7163 
7164   /* Mandatory */
7165   /*  Status of Inform Loc Server Conn Status */
7166   qmiLocStatusEnumT_v02 status;
7167   /**<   Status of the Inform Location Server Connection Status request.
7168 
7169  Valid values: \n
7170       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
7171       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
7172       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
7173       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
7174       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
7175       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
7176       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
7177       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
7178       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
7179       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
7180       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
7181  */
7182 }qmiLocInformLocationServerConnStatusIndMsgT_v02;  /* Message */
7183 /**
7184     @}
7185   */
7186 
7187 /** @addtogroup loc_qmi_enums
7188     @{
7189   */
7190 typedef enum {
7191   QMILOCVXVERSIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
7192   eQMI_LOC_VX_VERSION_V1_ONLY_V02 = 1, /**<  V1 VX version  */
7193   eQMI_LOC_VX_VERSION_V2_ONLY_V02 = 2, /**<  V2 VX version  */
7194   QMILOCVXVERSIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
7195 }qmiLocVxVersionEnumT_v02;
7196 /**
7197     @}
7198   */
7199 
7200 /** @addtogroup loc_qmi_enums
7201     @{
7202   */
7203 typedef enum {
7204   QMILOCSUPLVERSIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
7205   eQMI_LOC_SUPL_VERSION_1_0_V02 = 1, /**<  SUPL version 1.0  */
7206   eQMI_LOC_SUPL_VERSION_2_0_V02 = 2, /**<  SUPL version 2.0  */
7207   QMILOCSUPLVERSIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
7208 }qmiLocSuplVersionEnumT_v02;
7209 /**
7210     @}
7211   */
7212 
7213 typedef uint32_t qmiLocLppConfigMaskT_v02;
7214 #define QMI_LOC_LPP_CONFIG_ENABLE_USER_PLANE_V02 ((qmiLocLppConfigMaskT_v02)0x00000001) /**<  Enable user plane configuration for LTE Positioning Profile (LPP)  */
7215 #define QMI_LOC_LPP_CONFIG_ENABLE_CONTROL_PLANE_V02 ((qmiLocLppConfigMaskT_v02)0x00000002) /**<  Enable control plane configuration for LPP  */
7216 typedef uint32_t qmiLocAssistedGlonassProtocolMaskT_v02;
7217 #define QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRC_CP_V02 ((qmiLocAssistedGlonassProtocolMaskT_v02)0x00000001) /**<  Assisted GLONASS is supported over RRC in the control plane  */
7218 #define QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRLP_UP_V02 ((qmiLocAssistedGlonassProtocolMaskT_v02)0x00000002) /**<  Assisted GLONASS is supported over RRLP in the user plane  */
7219 #define QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_UP_V02 ((qmiLocAssistedGlonassProtocolMaskT_v02)0x00000004) /**<  Assisted GLONASS is supported over LPP in the user plane;
7220        QMI_LOC_LPP_CONFIG_ENABLE_USER_PLANE must be set
7221        in the LPP configuration for this to take effect  */
7222 #define QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_CP_V02 ((qmiLocAssistedGlonassProtocolMaskT_v02)0x00000008) /**<  Assisted GLONASS is supported over LPP in the control plane;
7223        QMI_LOC_LPP_CONFIG_ENABLE_CONTROL_PLANE must be set
7224        in the LPP configuration for this to take effect  */
7225 /** @addtogroup loc_qmi_enums
7226     @{
7227   */
7228 typedef enum {
7229   QMILOCSUPLHASHALGOENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
7230   eQMI_LOC_SUPL_HASH_ALGO_SHA1_V02 = 0, /**<  SHA-1 hash algorithm for SUPL version 2.0 or later  */
7231   eQMI_LOC_SUPL_HASH_ALGO_SHA256_V02 = 1, /**<  SHA-256 hash algorithm for SUPL version 2.0 or later  */
7232   QMILOCSUPLHASHALGOENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
7233 }qmiLocSuplHashAlgoEnumT_v02;
7234 /**
7235     @}
7236   */
7237 
7238 /** @addtogroup loc_qmi_enums
7239     @{
7240   */
7241 typedef enum {
7242   QMILOCSUPLTLSVERSIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
7243   eQMI_LOC_SUPL_TLS_VERSION_1_0_V02 = 0, /**<  SUPL TLS version 1.0  */
7244   eQMI_LOC_SUPL_TLS_VERSION_1_1_V02 = 1, /**<  SUPL TLS version 1.1  */
7245   QMILOCSUPLTLSVERSIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
7246 }qmiLocSuplTlsVersionEnumT_v02;
7247 /**
7248     @}
7249   */
7250 
7251 /** @addtogroup loc_qmi_enums
7252     @{
7253   */
7254 typedef enum {
7255   QMILOCEMERGENCYPROTOCOLENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
7256   eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_CP_V02 = 0, /**<  Use Control Plane Protocol during an emergency while on WCDMA  */
7257   eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_UP_V02 = 1, /**<  Use SUPL 2.0 emergency services during an emergency while on WCDMA  */
7258   QMILOCEMERGENCYPROTOCOLENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
7259 }qmiLocEmergencyProtocolEnumT_v02;
7260 /**
7261     @}
7262   */
7263 
7264 /** @addtogroup loc_qmi_messages
7265     @{
7266   */
7267 /** Request Message; Used by the control point to configure parameters stored
7268                     in the nonvolatile memory. */
7269 typedef struct {
7270 
7271   /* Optional */
7272   /*  SUPL Security */
7273   uint8_t suplSecurity_valid;  /**< Must be set to true if suplSecurity is being passed */
7274   uint8_t suplSecurity;
7275   /**<   Indicates whether SUPL security is enabled.
7276        \begin{itemize1}
7277        \item    0x01 (TRUE) -- SUPL security is enabled
7278        \item    0x00 (FALSE) -- SUPL security is disabled
7279        \vspace{-0.18in} \end{itemize1} */
7280 
7281   /* Optional */
7282   /*  VX Version */
7283   uint8_t vxVersion_valid;  /**< Must be set to true if vxVersion is being passed */
7284   qmiLocVxVersionEnumT_v02 vxVersion;
7285   /**<   VX version.
7286 
7287  Valid values: \n
7288       - eQMI_LOC_VX_VERSION_V1_ONLY (1) --  V1 VX version
7289       - eQMI_LOC_VX_VERSION_V2_ONLY (2) --  V2 VX version
7290  */
7291 
7292   /* Optional */
7293   /*  SUPL Version */
7294   uint8_t suplVersion_valid;  /**< Must be set to true if suplVersion is being passed */
7295   qmiLocSuplVersionEnumT_v02 suplVersion;
7296   /**<   SUPL version.
7297 
7298  Valid values: \n
7299       - eQMI_LOC_SUPL_VERSION_1_0 (1) --  SUPL version 1.0
7300       - eQMI_LOC_SUPL_VERSION_2_0 (2) --  SUPL version 2.0
7301  */
7302 
7303   /* Optional */
7304   /*  LPP Configuration */
7305   uint8_t lppConfig_valid;  /**< Must be set to true if lppConfig is being passed */
7306   qmiLocLppConfigMaskT_v02 lppConfig;
7307   /**<   LTE Positioning Profile (LPP) configuration.
7308 
7309       Valid bitmasks: \begin{itemize1}
7310       \item    0x00000001 -- LPP_CONFIG_ ENABLE_USER_PLANE
7311       \item    0x00000002 -- LPP_CONFIG_ ENABLE_CONTROL_PLANE
7312       \vspace{-0.18in} \end{itemize1}
7313   */
7314 
7315   /* Optional */
7316   /*  Assisted GLONASS Protocol Mask */
7317   uint8_t assistedGlonassProtocolMask_valid;  /**< Must be set to true if assistedGlonassProtocolMask is being passed */
7318   qmiLocAssistedGlonassProtocolMaskT_v02 assistedGlonassProtocolMask;
7319   /**<   Configures the protocols that the location service supports
7320  for assisted GLONASS.
7321 
7322  Valid bitmasks: \n
7323       - QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRC_CP (0x00000001) --  Assisted GLONASS is supported over RRC in the control plane
7324       - QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRLP_UP (0x00000002) --  Assisted GLONASS is supported over RRLP in the user plane
7325       - QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_UP (0x00000004) --  Assisted GLONASS is supported over LPP in the user plane;
7326        QMI_LOC_LPP_CONFIG_ENABLE_USER_PLANE must be set
7327        in the LPP configuration for this to take effect
7328       - QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_CP (0x00000008) --  Assisted GLONASS is supported over LPP in the control plane;
7329        QMI_LOC_LPP_CONFIG_ENABLE_CONTROL_PLANE must be set
7330        in the LPP configuration for this to take effect
7331  */
7332 
7333   /* Optional */
7334   /*  SUPL Hash Algorithm */
7335   uint8_t suplHashAlgo_valid;  /**< Must be set to true if suplHashAlgo is being passed */
7336   qmiLocSuplHashAlgoEnumT_v02 suplHashAlgo;
7337   /**<   SUPL hash algorithm to be used.
7338 
7339  Valid values: \n
7340       - eQMI_LOC_SUPL_HASH_ALGO_SHA1 (0) --  SHA-1 hash algorithm for SUPL version 2.0 or later
7341       - eQMI_LOC_SUPL_HASH_ALGO_SHA256 (1) --  SHA-256 hash algorithm for SUPL version 2.0 or later
7342  */
7343 
7344   /* Optional */
7345   /*  SUPL TLS Version */
7346   uint8_t suplTlsVersion_valid;  /**< Must be set to true if suplTlsVersion is being passed */
7347   qmiLocSuplTlsVersionEnumT_v02 suplTlsVersion;
7348   /**<   SUPL Transport Layer Security (TLS) version. This configuration is only
7349  applicable to SUPL 2.0 or later, as SUPL 1.0 always uses TLS version 1.0.
7350 
7351  Valid values: \n
7352       - eQMI_LOC_SUPL_TLS_VERSION_1_0 (0) --  SUPL TLS version 1.0
7353       - eQMI_LOC_SUPL_TLS_VERSION_1_1 (1) --  SUPL TLS version 1.1
7354  */
7355 
7356   /* Optional */
7357   /*  Emergency Protocol */
7358   uint8_t emergencyProtocol_valid;  /**< Must be set to true if emergencyProtocol is being passed */
7359   qmiLocEmergencyProtocolEnumT_v02 emergencyProtocol;
7360   /**<   Configures the protocol to be used during an emergency. \n
7361  \textbf{Note:} Currently, this can only be selected on WCDMA. For GSM
7362  and 1X, the UE only allows a control plane NI trigger for positioning.
7363  For LTE, the UE allows either a SUPL or a control plane NI trigger.
7364 
7365  Valid values: \n
7366       - eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_CP (0) --  Use Control Plane Protocol during an emergency while on WCDMA
7367       - eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_UP (1) --  Use SUPL 2.0 emergency services during an emergency while on WCDMA
7368  */
7369 
7370   /* Optional */
7371   /*  Wi-Fi Scan Injection Timeout Period */
7372   uint8_t wifiScanInjectTimeout_valid;  /**< Must be set to true if wifiScanInjectTimeout is being passed */
7373   uint8_t wifiScanInjectTimeout;
7374   /**<   Configures the timeout duration that the service waits for scan results
7375   injection from the control point after the event notification is sent. \n
7376        \textbf{Note:} The timeout value is in seconds. \n
7377          Values: \n
7378        0 to 10 seconds \n
7379        The minimum value (0 seconds) is the default. At this value, the service
7380        disables sending the Wi-Fi scan injection notification and ignores any
7381        scan results injection request.
7382   */
7383 }qmiLocSetProtocolConfigParametersReqMsgT_v02;  /* Message */
7384 /**
7385     @}
7386   */
7387 
7388 typedef uint64_t qmiLocProtocolConfigParamMaskT_v02;
7389 #define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_SECURITY_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000001ull) /**<  Mask for the SUPL security configuration parameter  */
7390 #define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_VX_VERSION_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000002ull) /**<  Mask for the VX version configuration parameter  */
7391 #define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_VERSION_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000004ull) /**<  Mask for the SUPL version configuration parameter  */
7392 #define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_LPP_CONFIG_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000008ull) /**<  Mask for the LPP configuration parameter  */
7393 #define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_ASSISTED_GLONASS_PROTOCOL_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000010ull) /**<  Mask for the assisted GLONASS configuration parameter  */
7394 #define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_HASH_ALGO_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000020ull) /**<  Mask for the SUPL hash algorithm configuration parameter  */
7395 #define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_TLS_VERSION_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000040ull) /**<  Mask for the SUPL TLS version configuration parameter  */
7396 #define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_EMERGENCY_PROTOCOL_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000080ull) /**<  Mask for the emergency protocol configuration parameter  */
7397 #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  */
7398 /** @addtogroup loc_qmi_messages
7399     @{
7400   */
7401 /** Indication Message; Used by the control point to configure parameters stored
7402                     in the nonvolatile memory. */
7403 typedef struct {
7404 
7405   /* Mandatory */
7406   /*  Set Config Params Status */
7407   qmiLocStatusEnumT_v02 status;
7408   /**<   Status of the Set Configuration Parameters request.
7409 
7410  Valid values: \n
7411       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
7412       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
7413       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
7414       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
7415       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
7416       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
7417       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
7418       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
7419       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
7420       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
7421       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
7422  */
7423 
7424   /* Optional */
7425   /*  Failed Parameters */
7426   uint8_t failedProtocolConfigParamMask_valid;  /**< Must be set to true if failedProtocolConfigParamMask is being passed */
7427   qmiLocProtocolConfigParamMaskT_v02 failedProtocolConfigParamMask;
7428   /**<   Identifies parameters that were not set successfully. This field
7429  is sent only if the status is not SUCCESS.
7430 
7431  Valid bitmasks: \n
7432       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_SECURITY (0x0000000000000001) --  Mask for the SUPL security configuration parameter
7433       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_VX_VERSION (0x0000000000000002) --  Mask for the VX version configuration parameter
7434       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_VERSION (0x0000000000000004) --  Mask for the SUPL version configuration parameter
7435       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_LPP_CONFIG (0x0000000000000008) --  Mask for the LPP configuration parameter
7436       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_ASSISTED_GLONASS_PROTOCOL (0x0000000000000010) --  Mask for the assisted GLONASS configuration parameter
7437       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_HASH_ALGO (0x0000000000000020) --  Mask for the SUPL hash algorithm configuration parameter
7438       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_TLS_VERSION (0x0000000000000040) --  Mask for the SUPL TLS version configuration parameter
7439       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_EMERGENCY_PROTOCOL (0x0000000000000080) --  Mask for the emergency protocol configuration parameter
7440       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_WIFI_SCAN_INJECT_TIMEOUT (0x0000000000000100) --  Mask for the Wi-Fi scan injection timeout configuration parameter
7441  */
7442 }qmiLocSetProtocolConfigParametersIndMsgT_v02;  /* Message */
7443 /**
7444     @}
7445   */
7446 
7447 /** @addtogroup loc_qmi_messages
7448     @{
7449   */
7450 /** Request Message; Used by the control point to get the configuration
7451                     parameters stored in the nonvolatile memory. */
7452 typedef struct {
7453 
7454   /* Mandatory */
7455   /*  Config Parameters */
7456   qmiLocProtocolConfigParamMaskT_v02 getProtocolConfigParamMask;
7457   /**<   Mask denoting the configuration parameters to be retrieved.
7458 
7459  Valid bitmasks: \n
7460       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_SECURITY (0x0000000000000001) --  Mask for the SUPL security configuration parameter
7461       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_VX_VERSION (0x0000000000000002) --  Mask for the VX version configuration parameter
7462       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_VERSION (0x0000000000000004) --  Mask for the SUPL version configuration parameter
7463       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_LPP_CONFIG (0x0000000000000008) --  Mask for the LPP configuration parameter
7464       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_ASSISTED_GLONASS_PROTOCOL (0x0000000000000010) --  Mask for the assisted GLONASS configuration parameter
7465       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_HASH_ALGO (0x0000000000000020) --  Mask for the SUPL hash algorithm configuration parameter
7466       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_TLS_VERSION (0x0000000000000040) --  Mask for the SUPL TLS version configuration parameter
7467       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_EMERGENCY_PROTOCOL (0x0000000000000080) --  Mask for the emergency protocol configuration parameter
7468       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_WIFI_SCAN_INJECT_TIMEOUT (0x0000000000000100) --  Mask for the Wi-Fi scan injection timeout configuration parameter
7469  */
7470 }qmiLocGetProtocolConfigParametersReqMsgT_v02;  /* Message */
7471 /**
7472     @}
7473   */
7474 
7475 /** @addtogroup loc_qmi_messages
7476     @{
7477   */
7478 /** Indication Message; Used by the control point to get the configuration
7479                     parameters stored in the nonvolatile memory. */
7480 typedef struct {
7481 
7482   /* Mandatory */
7483   /*  Get Config Params Status */
7484   qmiLocStatusEnumT_v02 status;
7485   /**<   Status of the Get Configuration Parameters request.
7486 
7487  Valid values: \n
7488       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
7489       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
7490       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
7491       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
7492       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
7493       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
7494       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
7495       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
7496       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
7497       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
7498       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
7499  */
7500 
7501   /* Optional */
7502   /*  SUPL Security */
7503   uint8_t suplSecurity_valid;  /**< Must be set to true if suplSecurity is being passed */
7504   uint8_t suplSecurity;
7505   /**<   Indicates whether SUPL security is enabled.
7506        \begin{itemize1}
7507        \item    0x01 (TRUE) -- SUPL security is enabled
7508        \item    0x00 (FALSE) -- SUPL security is disabled
7509        \vspace{-0.18in} \end{itemize1}*/
7510 
7511   /* Optional */
7512   /*  VX Version */
7513   uint8_t vxVersion_valid;  /**< Must be set to true if vxVersion is being passed */
7514   qmiLocVxVersionEnumT_v02 vxVersion;
7515   /**<   VX version.
7516 
7517  Valid values: \n
7518       - eQMI_LOC_VX_VERSION_V1_ONLY (1) --  V1 VX version
7519       - eQMI_LOC_VX_VERSION_V2_ONLY (2) --  V2 VX version
7520  */
7521 
7522   /* Optional */
7523   /*  SUPL Version */
7524   uint8_t suplVersion_valid;  /**< Must be set to true if suplVersion is being passed */
7525   qmiLocSuplVersionEnumT_v02 suplVersion;
7526   /**<   SUPL version.
7527 
7528  Valid values: \n
7529       - eQMI_LOC_SUPL_VERSION_1_0 (1) --  SUPL version 1.0
7530       - eQMI_LOC_SUPL_VERSION_2_0 (2) --  SUPL version 2.0
7531  */
7532 
7533   /* Optional */
7534   /*  LPP Configuration */
7535   uint8_t lppConfig_valid;  /**< Must be set to true if lppConfig is being passed */
7536   qmiLocLppConfigMaskT_v02 lppConfig;
7537   /**<   LTE Positioning Profile (LPP) configuration.
7538 
7539       Valid bitmasks: \begin{itemize1}
7540       \item    0x00000001 -- LPP_CONFIG_ ENABLE_USER_PLANE
7541       \item    0x00000002 -- LPP_CONFIG_ ENABLE_CONTROL_PLANE
7542       \vspace{-0.18in} \end{itemize1}
7543   */
7544 
7545   /* Optional */
7546   /*  Assisted GLONASS Protocol Mask */
7547   uint8_t assistedGlonassProtocolMask_valid;  /**< Must be set to true if assistedGlonassProtocolMask is being passed */
7548   qmiLocAssistedGlonassProtocolMaskT_v02 assistedGlonassProtocolMask;
7549   /**<   Assisted GLONASS Protocol mask.
7550 
7551  Valid bitmasks: \n
7552       - QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRC_CP (0x00000001) --  Assisted GLONASS is supported over RRC in the control plane
7553       - QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRLP_UP (0x00000002) --  Assisted GLONASS is supported over RRLP in the user plane
7554       - QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_UP (0x00000004) --  Assisted GLONASS is supported over LPP in the user plane;
7555        QMI_LOC_LPP_CONFIG_ENABLE_USER_PLANE must be set
7556        in the LPP configuration for this to take effect
7557       - QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_CP (0x00000008) --  Assisted GLONASS is supported over LPP in the control plane;
7558        QMI_LOC_LPP_CONFIG_ENABLE_CONTROL_PLANE must be set
7559        in the LPP configuration for this to take effect
7560  */
7561 
7562   /* Optional */
7563   /*  SUPL Hash Algorithm */
7564   uint8_t suplHashAlgo_valid;  /**< Must be set to true if suplHashAlgo is being passed */
7565   qmiLocSuplHashAlgoEnumT_v02 suplHashAlgo;
7566   /**<   SUPL hash algorithm to be used.
7567 
7568  Valid values: \n
7569       - eQMI_LOC_SUPL_HASH_ALGO_SHA1 (0) --  SHA-1 hash algorithm for SUPL version 2.0 or later
7570       - eQMI_LOC_SUPL_HASH_ALGO_SHA256 (1) --  SHA-256 hash algorithm for SUPL version 2.0 or later
7571  */
7572 
7573   /* Optional */
7574   /*  SUPL TLS Version */
7575   uint8_t suplTlsVersion_valid;  /**< Must be set to true if suplTlsVersion is being passed */
7576   qmiLocSuplTlsVersionEnumT_v02 suplTlsVersion;
7577   /**<   SUPL TLS version. This configuration is only
7578  applicable to SUPL 2.0 or later, as SUPL 1.0 always uses TLS version 1.0.
7579 
7580  Valid values: \n
7581       - eQMI_LOC_SUPL_TLS_VERSION_1_0 (0) --  SUPL TLS version 1.0
7582       - eQMI_LOC_SUPL_TLS_VERSION_1_1 (1) --  SUPL TLS version 1.1
7583  */
7584 
7585   /* Optional */
7586   /*  Emergency Protocol */
7587   uint8_t emergencyProtocol_valid;  /**< Must be set to true if emergencyProtocol is being passed */
7588   qmiLocEmergencyProtocolEnumT_v02 emergencyProtocol;
7589   /**<   Protocol to be used during emergency.
7590 
7591  Valid values: \n
7592       - eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_CP (0) --  Use Control Plane Protocol during an emergency while on WCDMA
7593       - eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_UP (1) --  Use SUPL 2.0 emergency services during an emergency while on WCDMA
7594  */
7595 
7596   /* Optional */
7597   /*  Wi-Fi Scan Injection Timeout Period */
7598   uint8_t wifiScanInjectTimeout_valid;  /**< Must be set to true if wifiScanInjectTimeout is being passed */
7599   uint8_t wifiScanInjectTimeout;
7600   /**<   Timeout duration that the service waits for a scan results
7601   injection from the control point after the event notification is sent. \n
7602        Values: \n
7603        0 to 10 seconds
7604   */
7605 }qmiLocGetProtocolConfigParametersIndMsgT_v02;  /* Message */
7606 /**
7607     @}
7608   */
7609 
7610 /** @addtogroup loc_qmi_enums
7611     @{
7612   */
7613 typedef enum {
7614   QMILOCSENSORSCONTROLCONFIGSENSORUSEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
7615   eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_ENABLE_V02 = 0, /**<  Sensors data should be requested whenever a position request is
7616        received. If sensor data are injected, the positioning engine
7617        attempts to improve the heading and positioning performance using sensors.
7618        This is the default.
7619   */
7620   eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_DISABLE_V02 = 1, /**<  Inertial sensors are not to be used to aid heading and position
7621        improvement.  */
7622   QMILOCSENSORSCONTROLCONFIGSENSORUSEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
7623 }qmiLocSensorsControlConfigSensorUseEnumT_v02;
7624 /**
7625     @}
7626   */
7627 
7628 /** @addtogroup loc_qmi_enums
7629     @{
7630   */
7631 typedef enum {
7632   QMILOCSENSORSCONTROLCONFIGSENSORPROVIDERENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
7633   eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_SSC_V02 = 0, /**<  Sensors data provider is Snapdragon Sensor Core (SSC);
7634        this is the default
7635    */
7636   eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_NATIVE_V02 = 1, /**<  Sensors data provider is on the host processor  */
7637   QMILOCSENSORSCONTROLCONFIGSENSORPROVIDERENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
7638 }qmiLocSensorsControlConfigSensorProviderEnumT_v02;
7639 /**
7640     @}
7641   */
7642 
7643 /** @addtogroup loc_qmi_messages
7644     @{
7645   */
7646 /** Request Message; Sets the sensor control configuration. */
7647 typedef struct {
7648 
7649   /* Optional */
7650   /*  Sensors Usage */
7651   uint8_t sensorsUsage_valid;  /**< Must be set to true if sensorsUsage is being passed */
7652   qmiLocSensorsControlConfigSensorUseEnumT_v02 sensorsUsage;
7653   /**<   Controls how sensors are used to aid heading and positioning
7654  performance.
7655 
7656  Valid values: \n
7657       - eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_ENABLE (0) --  Sensors data should be requested whenever a position request is
7658        received. If sensor data are injected, the positioning engine
7659        attempts to improve the heading and positioning performance using sensors.
7660        This is the default.
7661 
7662       - eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_DISABLE (1) --  Inertial sensors are not to be used to aid heading and position
7663        improvement.
7664  */
7665 
7666   /* Optional */
7667   /*  Sensors Provider */
7668   uint8_t sensorProvider_valid;  /**< Must be set to true if sensorProvider is being passed */
7669   qmiLocSensorsControlConfigSensorProviderEnumT_v02 sensorProvider;
7670   /**<   Controls which sensors data provider is to be used.
7671 
7672  Valid values: \n
7673       - eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_SSC (0) --  Sensors data provider is Snapdragon Sensor Core (SSC);
7674        this is the default
7675 
7676       - eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_NATIVE (1) --  Sensors data provider is on the host processor
7677  */
7678 }qmiLocSetSensorControlConfigReqMsgT_v02;  /* Message */
7679 /**
7680     @}
7681   */
7682 
7683 /** @addtogroup loc_qmi_messages
7684     @{
7685   */
7686 /** Indication Message; Sets the sensor control configuration. */
7687 typedef struct {
7688 
7689   /* Mandatory */
7690   /*  Set Sensor Control Config Status */
7691   qmiLocStatusEnumT_v02 status;
7692   /**<   Status of the Set Sensor Control Configuration request.
7693 
7694  Valid values: \n
7695       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
7696       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
7697       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
7698       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
7699       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
7700       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
7701       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
7702       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
7703       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
7704       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
7705       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
7706  */
7707 }qmiLocSetSensorControlConfigIndMsgT_v02;  /* Message */
7708 /**
7709     @}
7710   */
7711 
7712 /** @addtogroup loc_qmi_messages
7713     @{
7714   */
7715 /** Request Message; Retrieves the current sensor control configuration. */
7716 typedef struct {
7717   /* This element is a placeholder to prevent the declaration of
7718      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
7719   char __placeholder;
7720 }qmiLocGetSensorControlConfigReqMsgT_v02;
7721 
7722   /* Message */
7723 /**
7724     @}
7725   */
7726 
7727 /** @addtogroup loc_qmi_messages
7728     @{
7729   */
7730 /** Indication Message; Retrieves the current sensor control configuration. */
7731 typedef struct {
7732 
7733   /* Mandatory */
7734   /*  Get Sensor Control Config Status */
7735   qmiLocStatusEnumT_v02 status;
7736   /**<   Status of the Get Sensors Control Configuration request.
7737 
7738  Valid values: \n
7739       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
7740       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
7741       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
7742       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
7743       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
7744       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
7745       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
7746       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
7747       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
7748       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
7749       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
7750  */
7751 
7752   /* Optional */
7753   /*  Sensors Usage */
7754   uint8_t sensorsUsage_valid;  /**< Must be set to true if sensorsUsage is being passed */
7755   qmiLocSensorsControlConfigSensorUseEnumT_v02 sensorsUsage;
7756   /**<   Controls how sensors are used to aid the heading and positioning
7757  performance.
7758 
7759  Valid values: \n
7760       - eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_ENABLE (0) --  Sensors data should be requested whenever a position request is
7761        received. If sensor data are injected, the positioning engine
7762        attempts to improve the heading and positioning performance using sensors.
7763        This is the default.
7764 
7765       - eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_DISABLE (1) --  Inertial sensors are not to be used to aid heading and position
7766        improvement.
7767  */
7768 
7769   /* Optional */
7770   /*  Sensors Provider */
7771   uint8_t sensorProvider_valid;  /**< Must be set to true if sensorProvider is being passed */
7772   qmiLocSensorsControlConfigSensorProviderEnumT_v02 sensorProvider;
7773   /**<   Controls which sensors data provider to be used.
7774 
7775  Valid values: \n
7776       - eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_SSC (0) --  Sensors data provider is Snapdragon Sensor Core (SSC);
7777        this is the default
7778 
7779       - eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_NATIVE (1) --  Sensors data provider is on the host processor
7780  */
7781 }qmiLocGetSensorControlConfigIndMsgT_v02;  /* Message */
7782 /**
7783     @}
7784   */
7785 
7786 typedef uint32_t qmiLocSensorPropertiesMaskT_v02;
7787 #define QMI_LOC_SENSOR_PROPERTIES_MASK_GYRO_BIAS_VARIANCE_RANDOM_WALK_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000001) /**<  Denotes the gyro bias variance random walk parameter  */
7788 #define QMI_LOC_SENSOR_PROPERTIES_MASK_VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000002) /**<  Denotes the velocity random walk spectral density parameter  */
7789 #define QMI_LOC_SENSOR_PROPERTIES_MASK_ACCELERATION_RANDOM_WALK_SPECTRAL_DENSITY_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000004) /**<  Denotes the acceleration random walk spectral density parameter  */
7790 #define QMI_LOC_SENSOR_PROPERTIES_MASK_ANGLE_RANDOM_WALK_SPECTRAL_DENSITY_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000008) /**<  Denotes the angle random walk spectral density parameter  */
7791 #define QMI_LOC_SENSOR_PROPERTIES_MASK_RATE_RANDOM_WALK_SPECTRAL_DENSITY_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000010) /**<  Denotes the rate random walk spectral density parameter  */
7792 #define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_DATA_USE_CONTROL_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000020) /**<  Denotes the vehicle data use control parameter  */
7793 #define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_VELOCITY_RWSD_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000040) /**<  Denotes the vehicle velocity random walk spectral density  */
7794 #define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ACCEL_RWSD_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000080) /**<  Denotes the vehicle accelerometer random walk spectral density  */
7795 #define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGLE_RWSD_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000100) /**<  Denotes the vehicle angle random walk spectral density   */
7796 #define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGULAR_RATE_RWSD_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000200) /**<  Denotes the vehicle angular rate random walk spectral density   */
7797 #define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_SCALE_RWSD_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000400) /**<  Denotes the vehicle odometry scale random walk spectral density   */
7798 #define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_VARIANCE_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000800) /**<  Denotes the vehicle odometry variance   */
7799 typedef uint64_t qmiLocVehicleDataUseControlMaskT_v02;
7800 #define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_X_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000001ull) /**<  Enable use of X-axis vehicle acceleration sensor data  */
7801 #define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Y_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000002ull) /**<  Enable use of Y-axis vehicle acceleration sensor data  */
7802 #define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Z_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000004ull) /**<  Enable use of Z-axis vehicle acceleration sensor data  */
7803 #define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_X_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000010ull) /**<  Enable use of X-axis vehicle gyroscope data  */
7804 #define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Y_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000020ull) /**<  Enable use of Y-axis vehicle gyroscope data  */
7805 #define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Z_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000040ull) /**<  Enable use of Z-axis vehicle gyroscope data  */
7806 #define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ODOMETRY_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000100ull) /**<  Enable use of odometry data  */
7807 /** @addtogroup loc_qmi_messages
7808     @{
7809   */
7810 /** Request Message; Sets the properties specific to the type of sensor used.
7811                     The control point must set sensor properties before they can be
7812                     used to aid in heading and positioning performance improvement.
7813    */
7814 typedef struct {
7815 
7816   /* Optional */
7817   /*  Gyro Bias Random Walk Variance */
7818   uint8_t gyroBiasVarianceRandomWalk_valid;  /**< Must be set to true if gyroBiasVarianceRandomWalk is being passed */
7819   float gyroBiasVarianceRandomWalk;
7820   /**<   Specifies the gyro bias random walk variance parameter as a positive
7821        floating-point value. This value has internal default value 1.0e-5 radian^2/second^4.
7822        The gyro bias variance random walk parameter is derived from either the
7823        sensors data sheet or a sensors conformance test. \n
7824        - Units: Radians^2/seconds^4
7825 
7826   */
7827 
7828   /* Optional */
7829   /*  Velocity Random Walk Spectral Density */
7830   uint8_t velocityRandomWalkSpectralDensity_valid;  /**< Must be set to true if velocityRandomWalkSpectralDensity is being passed */
7831   float velocityRandomWalkSpectralDensity;
7832   /**<   Specifies the velocity random walk spectral density parameter as a positive
7833        floating-point value. This value does not have any internal defaults.
7834        The velocity random walk spectral density parameter is derived from either the
7835        sensors data sheet or a sensors conformance test. \n
7836        - Units: Meters/seconds^2/Hertz^0.5
7837 
7838   */
7839 
7840   /* Optional */
7841   /*  Acceleration Random Walk Spectral Density */
7842   uint8_t accelerationRandomWalkSpectralDensity_valid;  /**< Must be set to true if accelerationRandomWalkSpectralDensity is being passed */
7843   float accelerationRandomWalkSpectralDensity;
7844   /**<   Specifies the acceleration random walk spectral density parameter as a positive
7845        floating-point value. This value does not have any internal defaults.
7846        The acceleration random walk spectral density parameter is derived from either the
7847        sensors data sheet or a sensors conformance test. \n
7848        - Units: Meters/seconds^3/Hertz^0.5
7849 
7850   */
7851 
7852   /* Optional */
7853   /*  Angle Random Walk Spectral Density */
7854   uint8_t angleRandomWalkSpectralDensity_valid;  /**< Must be set to true if angleRandomWalkSpectralDensity is being passed */
7855   float angleRandomWalkSpectralDensity;
7856   /**<   Specifies the angle random walk spectral density parameter as a positive
7857        floating-point value. This value does not have any internal defaults.
7858        The angle random walk spectral density parameter is derived from either the
7859        sensors data sheet or a sensors conformance test. \n
7860        - Units: Radians/seconds/Hertz^0.5
7861 
7862   */
7863 
7864   /* Optional */
7865   /*  Rate Random Walk Spectral Density */
7866   uint8_t rateRandomWalkSpectralDensity_valid;  /**< Must be set to true if rateRandomWalkSpectralDensity is being passed */
7867   float rateRandomWalkSpectralDensity;
7868   /**<   Specifies the rate random walk spectral density parameter as a positive
7869        floating-point value. This value does not have any internal defaults.
7870        The rate random walk spectral density parameter is derived from either the
7871        sensors data sheet or a sensors conformance test. \n
7872        - Units: Radians/seconds^2/Hertz^0.5
7873 
7874   */
7875 
7876   /* Optional */
7877   /*  Vehicle Data Use Control */
7878   uint8_t vehicleDataUse_valid;  /**< Must be set to true if vehicleDataUse is being passed */
7879   qmiLocVehicleDataUseControlMaskT_v02 vehicleDataUse;
7880   /**<   Identifies which portions of the vehicle data to use in location
7881  estimation (information provided by the message
7882  QMI_LOC_INJECT_VEHICLE_SENSOR_DATA). Valid bitmasks: \n
7883       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_X_AXIS (0x0000000000000001) --  Enable use of X-axis vehicle acceleration sensor data
7884       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Y_AXIS (0x0000000000000002) --  Enable use of Y-axis vehicle acceleration sensor data
7885       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Z_AXIS (0x0000000000000004) --  Enable use of Z-axis vehicle acceleration sensor data
7886       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_X_AXIS (0x0000000000000010) --  Enable use of X-axis vehicle gyroscope data
7887       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Y_AXIS (0x0000000000000020) --  Enable use of Y-axis vehicle gyroscope data
7888       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Z_AXIS (0x0000000000000040) --  Enable use of Z-axis vehicle gyroscope data
7889       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ODOMETRY (0x0000000000000100) --  Enable use of odometry data
7890  \b Note: All other bits are reserved for future use and are to be set to 0. */
7891 
7892   /* Optional */
7893   /*  Vehicle Velocity Random Walk Spectral Density */
7894   uint8_t vehicleVelocityRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleVelocityRandomWalkSpectralDensity is being passed */
7895   float vehicleVelocityRandomWalkSpectralDensity;
7896   /**<   Vehicle velocity random walk spectral density. \n
7897        - Type: 32-bit float    \n
7898        - Units: Meters/seconds^2/Hz^0.5     \n
7899        - Valid values: Positive values  \n
7900        - Default: None
7901   */
7902 
7903   /* Optional */
7904   /*  Vehicle Acceleration Random Walk Spectral Density */
7905   uint8_t vehicleAccelRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleAccelRandomWalkSpectralDensity is being passed */
7906   float vehicleAccelRandomWalkSpectralDensity;
7907   /**<   Vehicle accelerometer random walk spectral density. \n
7908        - Type: 32-bit float    \n
7909        - Units: Meters/seconds^3/Hz^0.5     \n
7910        - Valid values: Positive values  \n
7911        - Default: None
7912   */
7913 
7914   /* Optional */
7915   /*  Vehicle Angle Random Walk Spectral Density */
7916   uint8_t vehicleAngleRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleAngleRandomWalkSpectralDensity is being passed */
7917   float vehicleAngleRandomWalkSpectralDensity;
7918   /**<   Vehicle angle random walk spectral density. \n
7919        - Type: 32-bit float    \n
7920        - Units: Radians/seconds/Hz^0.5     \n
7921        - Valid values: Positive values  \n
7922        - Default: None
7923   */
7924 
7925   /* Optional */
7926   /*  Vehicle Angular Rate Random Walk Spectral Density */
7927   uint8_t vehicleAngularRateRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleAngularRateRandomWalkSpectralDensity is being passed */
7928   float vehicleAngularRateRandomWalkSpectralDensity;
7929   /**<   Vehicle angular rate random walk spectral density. \n
7930        - Type: 32-bit float    \n
7931        - Units: Radians/seconds^2/Hz^0.5 \n
7932        - Valid values: Positive values  \n
7933        - Default: None
7934   */
7935 
7936   /* Optional */
7937   /*  Vehicle Odometry Scale Factor Random Walk Spectral Density */
7938   uint8_t vehicleOdometryScaleFactorRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleOdometryScaleFactorRandomWalkSpectralDensity is being passed */
7939   float vehicleOdometryScaleFactorRandomWalkSpectralDensity;
7940   /**<   Vehicle odometry scale factor random walk spectral density. \n
7941        - Type: 32-bit float    \n
7942        - Units: (1/seconds)/Hz^0.5      \n
7943        - Range: Approximately 0.0001 to 0.001 \n
7944        - Default: 0.001 (actual calibration recommended)
7945   */
7946 
7947   /* Optional */
7948   /*  Vehicle Odometry Variance */
7949   uint8_t vehicleOdometryVariance_valid;  /**< Must be set to true if vehicleOdometryVariance is being passed */
7950   float vehicleOdometryVariance;
7951   /**<   Vehicle odometry variance of each odometry sample
7952       (coarseness of measurement). \n
7953        - Type: 32-bit float    \n
7954        - Units: Meters^2    \n
7955        - Valid values: Positive values  \n
7956        - Default: None
7957   */
7958 }qmiLocSetSensorPropertiesReqMsgT_v02;  /* Message */
7959 /**
7960     @}
7961   */
7962 
7963 /** @addtogroup loc_qmi_messages
7964     @{
7965   */
7966 /** Indication Message; Sets the properties specific to the type of sensor used.
7967                     The control point must set sensor properties before they can be
7968                     used to aid in heading and positioning performance improvement.
7969    */
7970 typedef struct {
7971 
7972   /* Mandatory */
7973   /*  Set Sensor Properties Status */
7974   qmiLocStatusEnumT_v02 status;
7975   /**<   Status of the Set Sensor Properties request.
7976 
7977  Valid values: \n
7978       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
7979       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
7980       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
7981       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
7982       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
7983       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
7984       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
7985       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
7986       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
7987       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
7988       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
7989 
7990   /* Optional */
7991   /*  Failed Set Sensor Properties */
7992   uint8_t failedSensorPropertiesMask_valid;  /**< Must be set to true if failedSensorPropertiesMask is being passed */
7993   qmiLocSensorPropertiesMaskT_v02 failedSensorPropertiesMask;
7994   /**<   This field is sent only if the status is not SUCCESS.
7995  Identifies the parameters that were not set successfully.
7996 
7997  Valid bitmasks:
7998       - QMI_LOC_SENSOR_PROPERTIES_MASK_GYRO_BIAS_VARIANCE_RANDOM_WALK (0x00000001) --  Denotes the gyro bias variance random walk parameter
7999       - QMI_LOC_SENSOR_PROPERTIES_MASK_VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY (0x00000002) --  Denotes the velocity random walk spectral density parameter
8000       - QMI_LOC_SENSOR_PROPERTIES_MASK_ACCELERATION_RANDOM_WALK_SPECTRAL_DENSITY (0x00000004) --  Denotes the acceleration random walk spectral density parameter
8001       - QMI_LOC_SENSOR_PROPERTIES_MASK_ANGLE_RANDOM_WALK_SPECTRAL_DENSITY (0x00000008) --  Denotes the angle random walk spectral density parameter
8002       - QMI_LOC_SENSOR_PROPERTIES_MASK_RATE_RANDOM_WALK_SPECTRAL_DENSITY (0x00000010) --  Denotes the rate random walk spectral density parameter
8003       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_DATA_USE_CONTROL (0x00000020) --  Denotes the vehicle data use control parameter
8004       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_VELOCITY_RWSD (0x00000040) --  Denotes the vehicle velocity random walk spectral density
8005       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ACCEL_RWSD (0x00000080) --  Denotes the vehicle accelerometer random walk spectral density
8006       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGLE_RWSD (0x00000100) --  Denotes the vehicle angle random walk spectral density
8007       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGULAR_RATE_RWSD (0x00000200) --  Denotes the vehicle angular rate random walk spectral density
8008       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_SCALE_RWSD (0x00000400) --  Denotes the vehicle odometry scale random walk spectral density
8009       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_VARIANCE (0x00000800) --  Denotes the vehicle odometry variance
8010  \vspace{-0.18in} \end{itemize1}
8011  */
8012 }qmiLocSetSensorPropertiesIndMsgT_v02;  /* Message */
8013 /**
8014     @}
8015   */
8016 
8017 /** @addtogroup loc_qmi_messages
8018     @{
8019   */
8020 /** Request Message; Retrieves the current sensor properties. */
8021 typedef struct {
8022 
8023   /* Mandatory */
8024   /*  Sensor Properties Config Parameters */
8025   qmiLocSensorPropertiesMaskT_v02 getSensorPropertiesMask;
8026   /**<   Mask denoting the sensor properties parameters to be retrieved.
8027 
8028  Valid bitmasks:
8029       - QMI_LOC_SENSOR_PROPERTIES_MASK_GYRO_BIAS_VARIANCE_RANDOM_WALK (0x00000001) --  Denotes the gyro bias variance random walk parameter
8030       - QMI_LOC_SENSOR_PROPERTIES_MASK_VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY (0x00000002) --  Denotes the velocity random walk spectral density parameter
8031       - QMI_LOC_SENSOR_PROPERTIES_MASK_ACCELERATION_RANDOM_WALK_SPECTRAL_DENSITY (0x00000004) --  Denotes the acceleration random walk spectral density parameter
8032       - QMI_LOC_SENSOR_PROPERTIES_MASK_ANGLE_RANDOM_WALK_SPECTRAL_DENSITY (0x00000008) --  Denotes the angle random walk spectral density parameter
8033       - QMI_LOC_SENSOR_PROPERTIES_MASK_RATE_RANDOM_WALK_SPECTRAL_DENSITY (0x00000010) --  Denotes the rate random walk spectral density parameter
8034       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_DATA_USE_CONTROL (0x00000020) --  Denotes the vehicle data use control parameter
8035       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_VELOCITY_RWSD (0x00000040) --  Denotes the vehicle velocity random walk spectral density
8036       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ACCEL_RWSD (0x00000080) --  Denotes the vehicle accelerometer random walk spectral density
8037       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGLE_RWSD (0x00000100) --  Denotes the vehicle angle random walk spectral density
8038       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGULAR_RATE_RWSD (0x00000200) --  Denotes the vehicle angular rate random walk spectral density
8039       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_SCALE_RWSD (0x00000400) --  Denotes the vehicle odometry scale random walk spectral density
8040       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_VARIANCE (0x00000800) --  Denotes the vehicle odometry variance
8041  */
8042 }qmiLocGetSensorPropertiesReqMsgT_v02;  /* Message */
8043 /**
8044     @}
8045   */
8046 
8047 /** @addtogroup loc_qmi_messages
8048     @{
8049   */
8050 /** Indication Message; Retrieves the current sensor properties. */
8051 typedef struct {
8052 
8053   /* Mandatory */
8054   /*  Get Sensor Properties Status */
8055   qmiLocStatusEnumT_v02 status;
8056   /**<   Status of the Get Sensors Properties request.
8057 
8058  Valid values: \n
8059       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
8060       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
8061       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
8062       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
8063       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
8064       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
8065       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
8066       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
8067       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
8068       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
8069       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
8070  */
8071 
8072   /* Optional */
8073   /*  Gyro Bias Random Walk Variance */
8074   uint8_t gyroBiasVarianceRandomWalk_valid;  /**< Must be set to true if gyroBiasVarianceRandomWalk is being passed */
8075   float gyroBiasVarianceRandomWalk;
8076   /**<   Specifies the gyro bias random walk variance parameter as a positive
8077        floating-point value. This value has internal default value 1.0e-5 radian^2/second^4.
8078        The gyro bias variance random walk parameter is derived from either the
8079        sensors data sheet or a sensors conformance test. \n
8080        - Units: Radians^2/seconds^4
8081 
8082   */
8083 
8084   /* Optional */
8085   /*  Velocity Random Walk Spectral Density */
8086   uint8_t velocityRandomWalkSpectralDensity_valid;  /**< Must be set to true if velocityRandomWalkSpectralDensity is being passed */
8087   float velocityRandomWalkSpectralDensity;
8088   /**<   Specifies the velocity random walk spectral density parameter as a positive
8089        floating-point value. This value does not have any internal defaults.
8090        The velocity random walk spectral density parameter is derived from either the
8091        sensors data sheet or a sensors conformance test. \n
8092        - Units: Meters/seconds^2/Hertz^0.5
8093 
8094   */
8095 
8096   /* Optional */
8097   /*  Acceleration Random Walk Spectral Density */
8098   uint8_t accelerationRandomWalkSpectralDensity_valid;  /**< Must be set to true if accelerationRandomWalkSpectralDensity is being passed */
8099   float accelerationRandomWalkSpectralDensity;
8100   /**<   Specifies the acceleration random walk spectral density parameter as a positive
8101        floating-point value. This value does not have any internal defaults.
8102        The acceleration random walk spectral density parameter is derived from either the
8103        sensors data sheet or a sensors conformance test. \n
8104        - Units: Meters/seconds^3/Hertz^0.5
8105 
8106   */
8107 
8108   /* Optional */
8109   /*  Angle Random Walk Spectral Density */
8110   uint8_t angleRandomWalkSpectralDensity_valid;  /**< Must be set to true if angleRandomWalkSpectralDensity is being passed */
8111   float angleRandomWalkSpectralDensity;
8112   /**<   Specifies the angle random walk spectral density parameter as a positive
8113        floating-point value. This value does not have any internal defaults.
8114        The angle random walk spectral density parameter is derived from either the
8115        sensors data sheet or a sensors conformance test. \n
8116        - Units: Radians/seconds/Hertz^0.5
8117 
8118   */
8119 
8120   /* Optional */
8121   /*  Rate Random Walk Spectral Density */
8122   uint8_t rateRandomWalkSpectralDensity_valid;  /**< Must be set to true if rateRandomWalkSpectralDensity is being passed */
8123   float rateRandomWalkSpectralDensity;
8124   /**<   Specifies the rate random walk spectral density parameter as a positive
8125        floating-point value. This value does not have any internal defaults.
8126        The rate random walk spectral density parameter is derived from either the
8127        sensors data sheet or a sensors conformance test. \n
8128        - Units: Radians/seconds^2/Hertz^0.5
8129 
8130   */
8131 
8132   /* Optional */
8133   /*  Vehicle Data Use Control */
8134   uint8_t vehicleDataUse_valid;  /**< Must be set to true if vehicleDataUse is being passed */
8135   qmiLocVehicleDataUseControlMaskT_v02 vehicleDataUse;
8136   /**<   Identifies which portions of the vehicle data to use in location
8137  estimation (information provided by message
8138  QMI_LOC_INJECT_VEHICLE_SENSOR_DATA). Valid bitmasks: \n
8139       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_X_AXIS (0x0000000000000001) --  Enable use of X-axis vehicle acceleration sensor data
8140       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Y_AXIS (0x0000000000000002) --  Enable use of Y-axis vehicle acceleration sensor data
8141       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Z_AXIS (0x0000000000000004) --  Enable use of Z-axis vehicle acceleration sensor data
8142       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_X_AXIS (0x0000000000000010) --  Enable use of X-axis vehicle gyroscope data
8143       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Y_AXIS (0x0000000000000020) --  Enable use of Y-axis vehicle gyroscope data
8144       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Z_AXIS (0x0000000000000040) --  Enable use of Z-axis vehicle gyroscope data
8145       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ODOMETRY (0x0000000000000100) --  Enable use of odometry data
8146  @note1 All other bits are reserved for future use and are to be set to 0. */
8147 
8148   /* Optional */
8149   /*  Vehicle Velocity Random Walk Spectral Density */
8150   uint8_t vehicleVelocityRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleVelocityRandomWalkSpectralDensity is being passed */
8151   float vehicleVelocityRandomWalkSpectralDensity;
8152   /**<   Vehicle velocity random walk spectral density. \n
8153        - Type: 32-bit float    \n
8154        - Units: Meters/seconds^2/Hz^0.5     \n
8155        - Valid values: Positive values  \n
8156        - Default: None
8157   */
8158 
8159   /* Optional */
8160   /*  Vehicle Acceleration Random Walk Spectral Density */
8161   uint8_t vehicleAccelRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleAccelRandomWalkSpectralDensity is being passed */
8162   float vehicleAccelRandomWalkSpectralDensity;
8163   /**<   Vehicle accelerometer random walk spectral density. \n
8164        - Type: 32-bit float    \n
8165        - Units: Meters/seconds^3/Hz^0.5     \n
8166        - Valid values: Positive values  \n
8167        - Default: None
8168   */
8169 
8170   /* Optional */
8171   /*  Vehicle Angle Random Walk Spectral Density */
8172   uint8_t vehicleAngleRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleAngleRandomWalkSpectralDensity is being passed */
8173   float vehicleAngleRandomWalkSpectralDensity;
8174   /**<   Vehicle angle random walk spectral density. \n
8175        - Type: 32-bit float    \n
8176        - Units: Radians/seconds/Hz^0.5     \n
8177        - Valid values: Positive values  \n
8178        - Default: None
8179   */
8180 
8181   /* Optional */
8182   /*  Vehicle Angular Rate Random Walk Spectral Density */
8183   uint8_t vehicleAngularRateRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleAngularRateRandomWalkSpectralDensity is being passed */
8184   float vehicleAngularRateRandomWalkSpectralDensity;
8185   /**<   Vehicle angular rate random walk spectral density. \n
8186        - Type: 32-bit float    \n
8187        - Units: Radians/seconds^2/Hz^0.5 \n
8188        - Valid values: Positive values  \n
8189        - Default: None
8190   */
8191 
8192   /* Optional */
8193   /*  Vehicle Odometry Scale Factor Random Walk Spectral Density */
8194   uint8_t vehicleOdometryScaleFactorRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleOdometryScaleFactorRandomWalkSpectralDensity is being passed */
8195   float vehicleOdometryScaleFactorRandomWalkSpectralDensity;
8196   /**<   Vehicle odometry scale factor random walk spectral density. \n
8197        - Type: 32-bit float    \n
8198        - Units: (1/seconds)/Hz^0.5      \n
8199        - Range: Approximately 0.0001 to 0.001 \n
8200        - Default: 0.001 (actual calibration recommended)
8201   */
8202 
8203   /* Optional */
8204   /*  Vehicle Odometry Variance */
8205   uint8_t vehicleOdometryVariance_valid;  /**< Must be set to true if vehicleOdometryVariance is being passed */
8206   float vehicleOdometryVariance;
8207   /**<   Vehicle odometry variance of each odometry sample
8208       (coarseness of measurement). \n
8209        - Type: 32-bit float    \n
8210        - Units: Meters^2    \n
8211        - Valid values: Positive values  \n
8212        - Default: None
8213   */
8214 }qmiLocGetSensorPropertiesIndMsgT_v02;  /* Message */
8215 /**
8216     @}
8217   */
8218 
8219 /** @addtogroup loc_qmi_enums
8220     @{
8221   */
8222 typedef enum {
8223   QMILOCSENSORPERFORMANCECONTROLMODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
8224   eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_AUTO_V02 = 0, /**<  Sensors usage is to be determined by the GNSS location engine.
8225        This mode can optimize power consumption and give a
8226        power-balanced positioning and heading enhancement using
8227        inertial sensors  */
8228   eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_FORCED_V02 = 1, /**<  Sensors usage is to be forced ON.
8229        This mode can be requested by the control point when
8230        power consumption is not a restriction to the use of
8231        inertial sensors.  */
8232   QMILOCSENSORPERFORMANCECONTROLMODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
8233 }qmiLocSensorPerformanceControlModeEnumT_v02;
8234 /**
8235     @}
8236   */
8237 
8238 typedef uint32_t qmiLocSensorAlgorithmMaskT_v02;
8239 #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
8240        GNSS. They can still be used for aiding in heading improvements.  */
8241 /** @addtogroup loc_qmi_messages
8242     @{
8243   */
8244 /** Request Message; Provides fine-grained control of sensor based positioning
8245                     performance. */
8246 typedef struct {
8247 
8248   /* Optional */
8249   /*  Sensor Performance Control Mode */
8250   uint8_t performanceControlMode_valid;  /**< Must be set to true if performanceControlMode is being passed */
8251   qmiLocSensorPerformanceControlModeEnumT_v02 performanceControlMode;
8252   /**<   Controls when sensors data is requested during GNSS fix processing.
8253  This field is relevant only when sensors have been enabled using the
8254  sensors control configuration.
8255 
8256  Valid values: \n
8257       - eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_AUTO (0) --  Sensors usage is to be determined by the GNSS location engine.
8258        This mode can optimize power consumption and give a
8259        power-balanced positioning and heading enhancement using
8260        inertial sensors
8261       - eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_FORCED (1) --  Sensors usage is to be forced ON.
8262        This mode can be requested by the control point when
8263        power consumption is not a restriction to the use of
8264        inertial sensors.
8265  */
8266 
8267   /* Optional */
8268   /*  Accelerometer Sampling Specification */
8269   uint8_t accelSamplingSpec_valid;  /**< Must be set to true if accelSamplingSpec is being passed */
8270   qmiLocSensorControlConfigSamplingSpecStructT_v02 accelSamplingSpec;
8271   /**<   \vspace{0.06in} \n Sets the nominal rate at which the GNSS location
8272        engine is to request acceleration data to be used by the low data rate
8273        filter. The sensor data rate is specified in terms of the nominal number
8274        of samples per batch and the number of batches per second.
8275        However, the final control of the actual requested rate resides with
8276        the Sensors Manager Module/GNSS location engine. \n
8277        Default: 10 Hz sampling rate and 2 Hz batching rate.
8278   */
8279 
8280   /* Optional */
8281   /*  Gyroscope Sampling Specification */
8282   uint8_t gyroSamplingSpec_valid;  /**< Must be set to true if gyroSamplingSpec is being passed */
8283   qmiLocSensorControlConfigSamplingSpecStructT_v02 gyroSamplingSpec;
8284   /**<   \vspace{0.06in} \n Sets the nominal rate at which the GNSS location
8285        engine is to request gyro data to be used by the high data rate filter.
8286        The sensor data rate is specified in terms of the nominal number of
8287        samples per batch and the number of batches per second.
8288        However, the final control of the actual requested rate resides with
8289        the Sensors Manager Module/GNSS location engine. \n
8290        Default: 10 Hz sampling rate and 2 Hz batching rate.
8291   */
8292 
8293   /* Optional */
8294   /*  Algorithm Configuration */
8295   uint8_t algorithmConfig_valid;  /**< Must be set to true if algorithmConfig is being passed */
8296   qmiLocSensorAlgorithmMaskT_v02 algorithmConfig;
8297   /**<   Sets which sensor algorithms are to be used when processing sensor data.
8298 
8299        Valid bitmasks: \begin{itemize1}
8300        \item    0x00000001 -- DISABLE_INS_ POSITIONING_FILTER
8301        \vspace{-0.18in} \end{itemize1}
8302   */
8303 
8304   /* Optional */
8305   /*  High Data Rate Filter Accelerometer Sampling Specification */
8306   uint8_t accelSamplingSpecHigh_valid;  /**< Must be set to true if accelSamplingSpecHigh is being passed */
8307   qmiLocSensorControlConfigSamplingSpecStructT_v02 accelSamplingSpecHigh;
8308   /**<   \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
8309        acceleration data to be used by the high data rate filter. The sensor
8310        data rate is specified in terms of the nominal number of samples per
8311        batch and the number of batches per second.
8312        However, the final control of the actual requested rate resides with
8313        the Sensors Manager Module/GNSS location engine. \n
8314        Default: 100 Hz sampling rate and 4 Hz batching rate.
8315   */
8316 
8317   /* Optional */
8318   /*  High Data Rate Filter Gyroscope Sampling Specification */
8319   uint8_t gyroSamplingSpecHigh_valid;  /**< Must be set to true if gyroSamplingSpecHigh is being passed */
8320   qmiLocSensorControlConfigSamplingSpecStructT_v02 gyroSamplingSpecHigh;
8321   /**<   \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
8322        gyro data to be used by the high data rate filter. The sensor data rate
8323        is specified in terms of the nominal number of samples per batch and the
8324        number of batches per second.
8325        However, the final control of the actual requested rate resides with
8326        the Sensors Manager Module/GNSS location engine. \n
8327        Default: 100 Hz sampling rate and 4 Hz batching rate.
8328   */
8329 }qmiLocSetSensorPerformanceControlConfigReqMsgT_v02;  /* Message */
8330 /**
8331     @}
8332   */
8333 
8334 typedef uint32_t qmiLocSensorPerformanceControlConfigFailureMaskT_v02;
8335 #define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_PERFORMANCE_MODE_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000001) /**<  Failed to set the performance mode  */
8336 #define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_ACCEL_SAMPLING_SPEC_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000002) /**<  Failed to set the accelerometer sampling specification  */
8337 #define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_GYRO_SAMPLING_SPEC_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000004) /**<  Failed to set the gyroscope sampling specification  */
8338 #define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_ALGORITHM_CONFIG_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000008) /**<  Failed to set the algorithm configuration  */
8339 #define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_ACCEL_SAMPLING_SPEC_HIGH_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000010) /**<  Failed to set the accelerometer sampling specification  */
8340 #define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_GYRO_SAMPLING_SPEC_HIGH_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000020) /**<  Failed to set the gyroscope sampling specification  */
8341 /** @addtogroup loc_qmi_messages
8342     @{
8343   */
8344 /** Indication Message; Provides fine-grained control of sensor based positioning
8345                     performance. */
8346 typedef struct {
8347 
8348   /* Mandatory */
8349   /*  Set Sensor Perf Control Config Status */
8350   qmiLocStatusEnumT_v02 status;
8351   /**<   Status of the Set Sensor Performance Control Configuration request.
8352 
8353  Valid values: \n
8354       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
8355       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
8356       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
8357       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
8358       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
8359       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
8360       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
8361       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
8362       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
8363       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
8364       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
8365  */
8366 
8367   /* Optional */
8368   /*  Failed Configuration */
8369   uint8_t failedConfiguration_valid;  /**< Must be set to true if failedConfiguration is being passed */
8370   qmiLocSensorPerformanceControlConfigFailureMaskT_v02 failedConfiguration;
8371   /**<   Identifies parameters that were not configured successfully. This field
8372        is sent only if the status is not a success.
8373 
8374 
8375        Valid bitmasks: \begin{itemize1}
8376        \item    0x00000001 -- PERFORMANCE_ MODE
8377        \item    0x00000002 -- ACCEL_SAMPLING_ SPEC
8378        \item    0x00000004 -- GYRO_SAMPLING_ SPEC
8379        \item    0x00000008 -- ALGORITHM_ CONFIG
8380        \item    0x00000010 -- ACCEL_SAMPLING_ SPEC_HIGH
8381        \item    0x00000020 -- GYRO_SAMPLING_ SPEC_HIGH
8382        \vspace{-0.18in} \end{itemize1}
8383   */
8384 }qmiLocSetSensorPerformanceControlConfigIndMsgT_v02;  /* Message */
8385 /**
8386     @}
8387   */
8388 
8389 /** @addtogroup loc_qmi_messages
8390     @{
8391   */
8392 /** Request Message; Retrieves the current sensor performance control
8393                     configuration. */
8394 typedef struct {
8395   /* This element is a placeholder to prevent the declaration of
8396      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
8397   char __placeholder;
8398 }qmiLocGetSensorPerformanceControlConfigReqMsgT_v02;
8399 
8400   /* Message */
8401 /**
8402     @}
8403   */
8404 
8405 /** @addtogroup loc_qmi_messages
8406     @{
8407   */
8408 /** Indication Message; Retrieves the current sensor performance control
8409                     configuration. */
8410 typedef struct {
8411 
8412   /* Mandatory */
8413   /*  Get Sensor Perf Control Config Status */
8414   qmiLocStatusEnumT_v02 status;
8415   /**<   Status of the Get Sensor Performance Control Configuration request.
8416 
8417  Valid values: \n
8418       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
8419       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
8420       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
8421       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
8422       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
8423       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
8424       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
8425       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
8426       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
8427       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
8428       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
8429  */
8430 
8431   /* Optional */
8432   /*  Performance Control Mode */
8433   uint8_t performanceControlMode_valid;  /**< Must be set to true if performanceControlMode is being passed */
8434   qmiLocSensorPerformanceControlModeEnumT_v02 performanceControlMode;
8435   /**<   Controls when sensor data is requested during GNSS fix processing.
8436  This field is relevant only when sensors have been enabled using the
8437  sensor control configuration.
8438 
8439  Valid values: \n
8440       - eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_AUTO (0) --  Sensors usage is to be determined by the GNSS location engine.
8441        This mode can optimize power consumption and give a
8442        power-balanced positioning and heading enhancement using
8443        inertial sensors
8444       - eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_FORCED (1) --  Sensors usage is to be forced ON.
8445        This mode can be requested by the control point when
8446        power consumption is not a restriction to the use of
8447        inertial sensors.
8448  */
8449 
8450   /* Optional */
8451   /*  Accelerometer Sampling Specification */
8452   uint8_t accelSamplingSpec_valid;  /**< Must be set to true if accelSamplingSpec is being passed */
8453   qmiLocSensorControlConfigSamplingSpecStructT_v02 accelSamplingSpec;
8454   /**<   \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
8455        acceleration data to be used by the high data rate filter. The sensor
8456        data rate is specified in terms of the nominal number of samples per
8457        batch and the number of batches per second.
8458        However, the final control of the actual requested rate resides with
8459        the Sensors Manager Module/GNSS location engine. \n
8460        Default: 10 Hz sampling rate and 2 Hz batching rate.
8461   */
8462 
8463   /* Optional */
8464   /*  Gyroscope Sampling Specification */
8465   uint8_t gyroSamplingSpec_valid;  /**< Must be set to true if gyroSamplingSpec is being passed */
8466   qmiLocSensorControlConfigSamplingSpecStructT_v02 gyroSamplingSpec;
8467   /**<   \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
8468        gyro data to be used by the high data rate filter. The sensor data
8469        rate is specified in terms of the nominal number of samples per batch
8470        and the number of batches per second.
8471        However, the final control of the actual requested rate resides with
8472        the Sensors Manager Module/GNSS location engine. \n
8473        Default: 10 Hz sampling rate and 2 Hz batching rate.
8474   */
8475 
8476   /* Optional */
8477   /*  Algorithm Configuration */
8478   uint8_t algorithmConfig_valid;  /**< Must be set to true if algorithmConfig is being passed */
8479   qmiLocSensorAlgorithmMaskT_v02 algorithmConfig;
8480   /**<   Informs which sensor algorithms are currently set.
8481 
8482        Valid bitmasks: \begin{itemize1}
8483        \item    0x00000001 -- DISABLE_INS_ POSITIONING_FILTER
8484        \vspace{-0.18in} \end{itemize1}
8485   */
8486 
8487   /* Optional */
8488   /*  High Data Rate Filter Accelerometer Sampling Specification */
8489   uint8_t accelSamplingSpecHigh_valid;  /**< Must be set to true if accelSamplingSpecHigh is being passed */
8490   qmiLocSensorControlConfigSamplingSpecStructT_v02 accelSamplingSpecHigh;
8491   /**<   \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
8492        acceleration data to be used by the high data rate filter. The sensor
8493        data rate is specified in terms of the nominal number of samples per
8494        batch and the number of batches per second.
8495        However, the final control of the actual requested rate resides with
8496        the Sensors Manager Module/GNSS location engine. \n
8497        Default: 100 Hz sampling rate and 4 Hz batching rate.
8498   */
8499 
8500   /* Optional */
8501   /*  High Data Rate Filter Gyroscope Sampling Specification */
8502   uint8_t gyroSamplingSpecHigh_valid;  /**< Must be set to true if gyroSamplingSpecHigh is being passed */
8503   qmiLocSensorControlConfigSamplingSpecStructT_v02 gyroSamplingSpecHigh;
8504   /**<   \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
8505        gyro data to be used by the high data rate filter. The sensor data rate
8506        is specified in terms of the nominal number of samples per batch and the
8507        number of batches per second.
8508        However, the final control of the actual requested rate resides with
8509        the Sensors Manager Module/GNSS location engine. \n
8510        Default: 100 Hz sampling rate and 4 Hz batching rate.
8511   */
8512 }qmiLocGetSensorPerformanceControlConfigIndMsgT_v02;  /* Message */
8513 /**
8514     @}
8515   */
8516 
8517 /** @addtogroup loc_qmi_messages
8518     @{
8519   */
8520 /** Request Message; Injects a SUPL certificate to be used in AGNSS sessions. */
8521 typedef struct {
8522 
8523   /* Mandatory */
8524   /*  SUPL Certificate ID */
8525   uint8_t suplCertId;
8526   /**<   Certificate ID of the SUPL certificate. \n
8527        - Units: Bytes \n
8528        - Range: 0 to 9  */
8529 
8530   /* Mandatory */
8531   /*  SUPL Certificate Data */
8532   uint32_t suplCertData_len;  /**< Must be set to # of elements in suplCertData */
8533   uint8_t suplCertData[QMI_LOC_MAX_SUPL_CERT_LENGTH_V02];
8534   /**<   SUPL certificate contents. \n
8535        - Type: Array of bytes \n
8536        - Maximum certificate size: 2000 bytes */
8537 }qmiLocInjectSuplCertificateReqMsgT_v02;  /* Message */
8538 /**
8539     @}
8540   */
8541 
8542 /** @addtogroup loc_qmi_messages
8543     @{
8544   */
8545 /** Indication Message; Injects a SUPL certificate to be used in AGNSS sessions. */
8546 typedef struct {
8547 
8548   /* Mandatory */
8549   /*  SUPL Certificate Injection Status */
8550   qmiLocStatusEnumT_v02 status;
8551   /**<   Status of the Inject SUPL Certificate request.
8552 
8553  Valid values: \n
8554       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
8555       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
8556       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
8557       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
8558       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
8559       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
8560       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
8561       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
8562       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
8563       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
8564       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
8565  */
8566 }qmiLocInjectSuplCertificateIndMsgT_v02;  /* Message */
8567 /**
8568     @}
8569   */
8570 
8571 /** @addtogroup loc_qmi_messages
8572     @{
8573   */
8574 /** Request Message; Deletes a SUPL certificate. */
8575 typedef struct {
8576 
8577   /* Optional */
8578   /*  SUPL Certificate ID */
8579   uint8_t suplCertId_valid;  /**< Must be set to true if suplCertId is being passed */
8580   uint8_t suplCertId;
8581   /**<   Certificate ID of the SUPL certificate to be deleted. \n
8582        - Units: Bytes \n
8583        - Range: 0 to 9 \n
8584        If suplCertId is not specified,
8585        all SUPL certificates are deleted. */
8586 }qmiLocDeleteSuplCertificateReqMsgT_v02;  /* Message */
8587 /**
8588     @}
8589   */
8590 
8591 /** @addtogroup loc_qmi_messages
8592     @{
8593   */
8594 /** Indication Message; Deletes a SUPL certificate. */
8595 typedef struct {
8596 
8597   /* Mandatory */
8598   /*  SUPL Certificate Deletion Status */
8599   qmiLocStatusEnumT_v02 status;
8600   /**<   Status of the Delete SUPL Certificate request.
8601 
8602  Valid values: \n
8603       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
8604       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
8605       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
8606       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
8607       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
8608       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
8609       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
8610       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
8611       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
8612       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
8613       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
8614  */
8615 }qmiLocDeleteSuplCertificateIndMsgT_v02;  /* Message */
8616 /**
8617     @}
8618   */
8619 
8620 typedef uint32_t qmiLocPositionEngineConfigParamMaskT_v02;
8621 #define QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_INJECTED_POSITION_CONTROL_V02 ((qmiLocPositionEngineConfigParamMaskT_v02)0x00000001) /**<  Denotes whether the position engine uses the
8622        injected position in a direct position calculation.  */
8623 #define QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_FILTER_SV_USAGE_V02 ((qmiLocPositionEngineConfigParamMaskT_v02)0x00000002) /**<  Denotes whether the position engine filters the
8624        SV usage in the fix.  */
8625 #define QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_STORE_ASSIST_DATA_V02 ((qmiLocPositionEngineConfigParamMaskT_v02)0x00000004) /**<  Denotes whether the position engine stores assistance data
8626        in persistent memory.  */
8627 #define QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_ENABLE_FASTER_TTFF_V02 ((qmiLocPositionEngineConfigParamMaskT_v02)0x00000008) /**<  Denotes whether the position engine stays on to optimize
8628        the TTFF for the subsequent position fix.  */
8629 /** @addtogroup loc_qmi_messages
8630     @{
8631   */
8632 /** Request Message; Used by the control point to configure position engine
8633                     functionality. */
8634 typedef struct {
8635 
8636   /* Optional */
8637   /*  Injected Position Control */
8638   uint8_t injectedPositionControl_valid;  /**< Must be set to true if injectedPositionControl is being passed */
8639   uint8_t injectedPositionControl;
8640   /**<   Controls how the injected position is used in the position engine.
8641 
8642        Valid values: \begin{itemize1}
8643        \item    0x01 (TRUE) -- Use the injected position in a direct position
8644                                calculation
8645        \item    0x00 (FALSE) -- Do not use the injected position in a direct
8646                                 position calculation
8647        \end{itemize1}
8648        The default value is TRUE.
8649   */
8650 
8651   /* Optional */
8652   /*  Filter SV Usage */
8653   uint8_t filterSvUsage_valid;  /**< Must be set to true if filterSvUsage is being passed */
8654   uint8_t filterSvUsage;
8655   /**<   Controls whether SV usage is filtered in a position fix.
8656 
8657        Valid values: \begin{itemize1}
8658        \item    0x01 (TRUE) -- Filter the usage of SVs in the fix
8659        \item    0x00 (FALSE) -- Do not filter the usage of SVs in the fix
8660        \end{itemize1}
8661        The default value is FALSE.
8662   */
8663 
8664   /* Optional */
8665   /*  Store Assist Data */
8666   uint8_t storeAssistData_valid;  /**< Must be set to true if storeAssistData is being passed */
8667   uint8_t storeAssistData;
8668   /**<   Controls whether assistance data is to be stored in
8669        persistent memory.
8670 
8671        Valid values: \begin{itemize1}
8672        \item    0x01 (TRUE) -- Store assistance data in persistent memory
8673        \item    0x00 (FALSE) -- Do not store assistance data in persistent memory
8674        \end{itemize1}
8675        The default value is TRUE.
8676   */
8677 
8678   /* Optional */
8679   /*  Enable Faster TTFF */
8680   uint8_t enableFasterTTFF_valid;  /**< Must be set to true if enableFasterTTFF is being passed */
8681   uint8_t enableFasterTTFF;
8682   /**<   Allows the receiver to stay on after a position session in order to
8683        collect information that will help reduce the Time To First Fix (TTFF)
8684        when the next position request is made. The receiver will stay
8685        on only if  the engine determines that it needs to collect some
8686        information. The receiver will stay on for the duration needed to
8687        collect the information.
8688        If enabled, the clients may see a delay in receiving the Engine Off
8689        event after the position session ends.
8690 
8691        Valid values: \begin{itemize1}
8692        \item    0x01 (TRUE) -- Allow the engine to stay on for reduced TTFF
8693        \item    0x00 (FALSE) -- Do not allow the engine to stay on for reduced
8694                                TTFF
8695        \end{itemize1}
8696        The default value is TRUE.*/
8697 }qmiLocSetPositionEngineConfigParametersReqMsgT_v02;  /* Message */
8698 /**
8699     @}
8700   */
8701 
8702 /** @addtogroup loc_qmi_messages
8703     @{
8704   */
8705 /** Indication Message; Used by the control point to configure position engine
8706                     functionality. */
8707 typedef struct {
8708 
8709   /* Mandatory */
8710   /*  Set Position Engine Configuration Status */
8711   qmiLocStatusEnumT_v02 status;
8712   /**<   Status of the Set Configuration Parameters request.
8713 
8714  Valid values: \n
8715       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
8716       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
8717       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
8718       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
8719       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
8720       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
8721       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
8722       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
8723       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
8724       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
8725       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
8726  */
8727 
8728   /* Optional */
8729   /*  Failed Parameters */
8730   uint8_t failedPositionEngineConfigParamMask_valid;  /**< Must be set to true if failedPositionEngineConfigParamMask is being passed */
8731   qmiLocPositionEngineConfigParamMaskT_v02 failedPositionEngineConfigParamMask;
8732   /**<   Identifies the parameters that were not set successfully.
8733  This field is sent only if the status is other than SUCCESS.
8734 
8735  Valid bitmasks:\n
8736       - QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_INJECTED_POSITION_CONTROL (0x00000001) --  Denotes whether the position engine uses the
8737        injected position in a direct position calculation.
8738       - QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_FILTER_SV_USAGE (0x00000002) --  Denotes whether the position engine filters the
8739        SV usage in the fix.
8740       - QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_STORE_ASSIST_DATA (0x00000004) --  Denotes whether the position engine stores assistance data
8741        in persistent memory.
8742       - QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_ENABLE_FASTER_TTFF (0x00000008) --  Denotes whether the position engine stays on to optimize
8743        the TTFF for the subsequent position fix.
8744  */
8745 }qmiLocSetPositionEngineConfigParametersIndMsgT_v02;  /* Message */
8746 /**
8747     @}
8748   */
8749 
8750 /** @addtogroup loc_qmi_messages
8751     @{
8752   */
8753 /** Request Message; Used by the control point to get the position engine
8754                     configuration parameters. */
8755 typedef struct {
8756 
8757   /* Mandatory */
8758   /*  Config Parameters */
8759   qmiLocPositionEngineConfigParamMaskT_v02 getPositionEngineConfigParamMask;
8760   /**<   Mask denoting the configuration parameters to be retrieved.
8761 
8762  Valid bitmasks:
8763       - QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_INJECTED_POSITION_CONTROL (0x00000001) --  Denotes whether the position engine uses the
8764        injected position in a direct position calculation.
8765       - QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_FILTER_SV_USAGE (0x00000002) --  Denotes whether the position engine filters the
8766        SV usage in the fix.
8767       - QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_STORE_ASSIST_DATA (0x00000004) --  Denotes whether the position engine stores assistance data
8768        in persistent memory.
8769       - QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_ENABLE_FASTER_TTFF (0x00000008) --  Denotes whether the position engine stays on to optimize
8770        the TTFF for the subsequent position fix.
8771  */
8772 }qmiLocGetPositionEngineConfigParametersReqMsgT_v02;  /* Message */
8773 /**
8774     @}
8775   */
8776 
8777 /** @addtogroup loc_qmi_messages
8778     @{
8779   */
8780 /** Indication Message; Used by the control point to get the position engine
8781                     configuration parameters. */
8782 typedef struct {
8783 
8784   /* Mandatory */
8785   /*  Get Position Engine Configuration Status */
8786   qmiLocStatusEnumT_v02 status;
8787   /**<   Status of the Get Configuration Parameters request.
8788 
8789  Valid values: \n
8790       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
8791       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
8792       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
8793       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
8794       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
8795       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
8796       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
8797       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
8798       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
8799       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
8800       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
8801  */
8802 
8803   /* Optional */
8804   /*  Injected Position Control */
8805   uint8_t injectedPositionControl_valid;  /**< Must be set to true if injectedPositionControl is being passed */
8806   uint8_t injectedPositionControl;
8807   /**<   Specifies whether the injected position is used for a direct calculation
8808        in the position engine.
8809 
8810        Valid values: \begin{itemize1}
8811        \item    0x01 (TRUE) -- The injected position is used in a direct
8812                                position calculation
8813        \item    0x00 (FALSE) -- The injected position is not used in a direct
8814                                 position calculation
8815        \end{itemize1}
8816        The default value is TRUE.
8817   */
8818 
8819   /* Optional */
8820   /*  Filter SV Usage */
8821   uint8_t filterSvUsage_valid;  /**< Must be set to true if filterSvUsage is being passed */
8822   uint8_t filterSvUsage;
8823   /**<   Specifies whether SV usage is filtered in a position fix.
8824 
8825        Valid values: \begin{itemize1}
8826        \item    0x01 (TRUE) -- SV usage is filtered in the fix
8827        \item    0x00 (FALSE) -- SV usage is not filtered in the fix
8828        \end{itemize1}
8829        The default value is FALSE.
8830   */
8831 
8832   /* Optional */
8833   /*  Store Assist Data */
8834   uint8_t storeAssistData_valid;  /**< Must be set to true if storeAssistData is being passed */
8835   uint8_t storeAssistData;
8836   /**<   Specifies whether assistance data is stored in persistent memory.
8837 
8838        Valid values: \begin{itemize1}
8839        \item    0x01 (TRUE) -- Assistance data is stored in persistent memory
8840        \item    0x00 (FALSE) -- Assistance data is not stored in persistent
8841                                 memory
8842        \end{itemize1}
8843        The default value is TRUE.
8844   */
8845 
8846   /* Optional */
8847   /*  Enable Faster TTFF */
8848   uint8_t enableFasterTTFF_valid;  /**< Must be set to true if enableFasterTTFF is being passed */
8849   uint8_t enableFasterTTFF;
8850   /**<   Allows the receiver to stay on after a position session in order to
8851        collect information that will help reduce the TTFF
8852        when the next position request is made. The receiver will stay
8853        on only if  the engine determines that it needs to collect some
8854        information. The receiver will stay on for the duration needed to
8855        collect the information.
8856        If enabled, the clients may see a delay in receiving the Engine Off
8857        event after the position session ends.
8858 
8859        Valid values: \begin{itemize1}
8860        \item    0x01 (TRUE) -- Allow the engine to stay on for reduced TTFF
8861        \item    0x00 (FALSE) -- Do not allow the engine to stay on for reduced
8862                                TTFF
8863        \end{itemize1}
8864         The default value is TRUE.*/
8865 }qmiLocGetPositionEngineConfigParametersIndMsgT_v02;  /* Message */
8866 /**
8867     @}
8868   */
8869 
8870 typedef uint8_t qmiLocGeofenceBreachMaskT_v02;
8871 #define QMI_LOC_GEOFENCE_BREACH_ENTERING_MASK_V02 ((qmiLocGeofenceBreachMaskT_v02)0x01) /**<  If this mask is set, a breach event is reported
8872        when the Geofence is entered  */
8873 #define QMI_LOC_GEOFENCE_BREACH_LEAVING_MASK_V02 ((qmiLocGeofenceBreachMaskT_v02)0x02) /**<  If this mask is set, a breach event is reported
8874        when the Geofence is exited  */
8875 /** @addtogroup loc_qmi_enums
8876     @{
8877   */
8878 typedef enum {
8879   QMILOCGEOFENCERESPONSIVENESSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
8880   eQMI_LOC_GEOFENCE_RESPONSIVENESS_LOW_V02 = 0x01, /**<  The Geofence is monitored for a breach at a
8881        low rate of 15 minutes. The gap between the actual breach and
8882        the time it is reported is higher. This
8883        setting results in lower power usage.  */
8884   eQMI_LOC_GEOFENCE_RESPONSIVENESS_MED_V02 = 0x02, /**<  The Geofence is monitored for a breach at a
8885        medium rate of 2 minutes. This is the default setting.  */
8886   eQMI_LOC_GEOFENCE_RESPONSIVENESS_HIGH_V02 = 0x03, /**<  The Geofence is monitored for a breach at a
8887        high rate of 10 seconds. The gap between the actual breach and
8888        the time it is reported is low. This results
8889        in higher power usage.  */
8890   eQMI_LOC_GEOFENCE_RESPONSIVENESS_ULTRA_HIGH_V02 = 0x04, /**<  The Geofence is monitored for a breach at a
8891        very high rate of 1 second. The gap between the actual breach and
8892        the time it is reported is very low. This results
8893        in very high power usage. This setting must be avoided whenever
8894        possible because of the drastic power implications.  */
8895   eQMI_LOC_GEOFENCE_RESPONSIVENESS_CUSTOM_V02 = 0x05, /**<  The Geofence is monitored for a breach at a
8896        user defined rate. The gap between the actual breach and
8897        the time it is reported depends on the user setting. The power implication
8898        is inversely proportional to the responsiveness value set by the user.
8899        The higher the responsiveness value, the lower the power implications, and vice-versa.  */
8900   QMILOCGEOFENCERESPONSIVENESSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
8901 }qmiLocGeofenceResponsivenessEnumT_v02;
8902 /**
8903     @}
8904   */
8905 
8906 /** @addtogroup loc_qmi_aggregates
8907     @{
8908   */
8909 typedef struct {
8910 
8911   double latitude;
8912   /**<   Latitude of the center of the Geofence.*/
8913 
8914   double longitude;
8915   /**<   Longitude of the center of the Geofence.*/
8916 
8917   uint32_t radius;
8918   /**<   Radius of the circular Geofence in meters. */
8919 }qmiLocCircularGeofenceArgsStructT_v02;  /* Type */
8920 /**
8921     @}
8922   */
8923 
8924 /** @addtogroup loc_qmi_enums
8925     @{
8926   */
8927 typedef enum {
8928   QMILOCGEOFENCEPOSITIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
8929   eQMI_LOC_GEOFENCE_POSITION_INSIDE_V02 = 0x01, /**<  Position is inside a Geofence  */
8930   eQMI_LOC_GEOFENCE_POSITION_OUTSIDE_V02 = 0x02, /**<  Position is outside a Geofence  */
8931   QMILOCGEOFENCEPOSITIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
8932 }qmiLocGeofencePositionEnumT_v02;
8933 /**
8934     @}
8935   */
8936 
8937 typedef uint8_t qmiLocGeofenceDwellTypeMaskT_v02;
8938 #define QMI_LOC_GEOFENCE_DWELL_TYPE_INSIDE_MASK_V02 ((qmiLocGeofenceDwellTypeMaskT_v02)0x01) /**<  If this mask is set, a dwell event is reported
8939        when a user dwells inside the Geofence for a specified time  */
8940 #define QMI_LOC_GEOFENCE_DWELL_TYPE_OUTSIDE_MASK_V02 ((qmiLocGeofenceDwellTypeMaskT_v02)0x02) /**<  If this mask is set, a dwell event is reported
8941        when a user dwells outside the Geofence for a specified time  */
8942 /** @addtogroup loc_qmi_messages
8943     @{
8944   */
8945 /** Request Message; Used by the control point to add a circular Geofence. */
8946 typedef struct {
8947 
8948   /* Mandatory */
8949   /*  Transaction ID */
8950   uint32_t transactionId;
8951   /**<   Identifies the transaction. The transaction ID
8952        is returned in the Add Circular Geofence
8953        indication. */
8954 
8955   /* Mandatory */
8956   /*  Circular Geofence Arguments */
8957   qmiLocCircularGeofenceArgsStructT_v02 circularGeofenceArgs;
8958 
8959   /* Mandatory */
8960   /*  Breach Event Mask */
8961   qmiLocGeofenceBreachMaskT_v02 breachMask;
8962   /**<   Specifies the breach events in which the client is interested.
8963 
8964        Valid values: \begin{itemize1}
8965        \item    0x01 -- GEOFENCE_BREACH_ ENTERING_MASK
8966        \item    0x02 -- GEOFENCE_BREACH_ LEAVING_MASK
8967        \vspace{-0.18in} \end{itemize1} */
8968 
8969   /* Mandatory */
8970   /*  Include Position in Breach Event */
8971   uint8_t includePosition;
8972   /**<   Specifies whether the Geofence engine is to include the position
8973        in a breach event.
8974 
8975        Valid values: \begin{itemize1}
8976        \item    0x01 (TRUE) -- Position will be reported with the breach event
8977        \item    0x00 (FALSE) -- Position will not be reported with the breach
8978                                 event
8979        \vspace{-0.18in} \end{itemize1} */
8980 
8981   /* Optional */
8982   /*  Responsiveness */
8983   uint8_t responsiveness_valid;  /**< Must be set to true if responsiveness is being passed */
8984   qmiLocGeofenceResponsivenessEnumT_v02 responsiveness;
8985   /**<   Specifies the rate of detection for a Geofence breach.
8986  This may impact the time lag between the actual breach event and
8987  when it is reported. This parameter has power implications
8988  and is to be fine-tuned to optimize power savings.
8989 
8990  Valid values: \n
8991       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_LOW (0x01) --  The Geofence is monitored for a breach at a
8992        low rate of 15 minutes. The gap between the actual breach and
8993        the time it is reported is higher. This
8994        setting results in lower power usage.
8995       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_MED (0x02) --  The Geofence is monitored for a breach at a
8996        medium rate of 2 minutes. This is the default setting.
8997       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_HIGH (0x03) --  The Geofence is monitored for a breach at a
8998        high rate of 10 seconds. The gap between the actual breach and
8999        the time it is reported is low. This results
9000        in higher power usage.
9001       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_ULTRA_HIGH (0x04) --  The Geofence is monitored for a breach at a
9002        very high rate of 1 second. The gap between the actual breach and
9003        the time it is reported is very low. This results
9004        in very high power usage. This setting must be avoided whenever
9005        possible because of the drastic power implications.
9006       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_CUSTOM (0x05) --  The Geofence is monitored for a breach at a
9007        user defined rate. The gap between the actual breach and
9008        the time it is reported depends on the user setting. The power implication
9009        is inversely proportional to the responsiveness value set by the user.
9010        The higher the responsiveness value, the lower the power implications, and vice-versa.
9011  */
9012 
9013   /* Optional */
9014   /*  Confidence */
9015   uint8_t confidence_valid;  /**< Must be set to true if confidence is being passed */
9016   qmiLocGeofenceConfidenceEnumT_v02 confidence;
9017   /**<   Given a breach event, the confidence determines the probability
9018  that the breach happened at the Geofence boundary.
9019  This parameter has power implications and
9020  is to be fine-tuned to optimize power savings.
9021 
9022  Valid values: \n
9023       - eQMI_LOC_GEOFENCE_CONFIDENCE_LOW (0x01) --  Geofence engine indicates a breach with
9024        low confidence; this setting results in lower
9025        power usage, and it can impact the yield because
9026        incorrect breach events may be sent
9027       - eQMI_LOC_GEOFENCE_CONFIDENCE_MED (0x02) --  (Default) Geofence engine indicates a breach with
9028        medium confidence
9029       - eQMI_LOC_GEOFENCE_CONFIDENCE_HIGH (0x03) --  Geofence engine indicates a breach with
9030        high confidence; this setting results in higher
9031        power usage
9032  */
9033 
9034   /* Optional */
9035   /*  Custom Responsiveness Value */
9036   uint8_t customResponsivenessValue_valid;  /**< Must be set to true if customResponsivenessValue is being passed */
9037   uint32_t customResponsivenessValue;
9038   /**<   Specifies in seconds the user-defined rate of detection for a Geofence breach.
9039        This may impact the time lag between the actual breach event and
9040        when it is reported. The gap between the actual breach and
9041        the time it is reported depends on the user setting. The power implication
9042        is inversely proportional to the responsiveness value set by the user.
9043        The higher the responsiveness value, the lower the power implications, and vice-versa.
9044        If this field is set, the responsiveness is always treated
9045        as eQMI_LOC_GEOFENCE_ RESPONSIVENESS_CUSTOM.
9046        The minimum value supported in this field is 1 second, and the maximum value is 65535 seconds.
9047        An error is returned if an attempt is made to set this to an unsupported value.
9048        If this field is set, the responsiveness is always treated
9049        as eQMI_LOC_GEOFENCE_ RESPONSIVENESS_CUSTOM, which means that the other responsiveness
9050        types, such as eQMI_LOC_GEOFENCE _RESPONSIVENESS_LOW, eQMI_LOC_GEOFENCE_ RESPONSIVENESS_MEDIUM,
9051        eQMI_LOC_GEOFENCE_ RESPONSIVENESS_HIGH, and eQMI_LOC_GEOFENCE_ RESPONSIVENESS_ULTRA_HIGH are all
9052        disregarded.
9053        If this field is not set, the responsiveness will be treated as
9054        eQMI_LOC_GEOFENCE_ RESPONSIVENESS_LOW, eQMI_LOC_GEOFENCE_RESPONSIVENESS_MEDIUM,
9055        eQMI_LOC_GEOFENCE_RESPONSIVENESS_HIGH, or eQMI_LOC_GEOFENCE_RESPONSIVENESS_ULTRA_HIGH.
9056   */
9057 
9058   /* Optional */
9059   /*  Dwell Time of Geofence */
9060   uint8_t dwellTime_valid;  /**< Must be set to true if dwellTime is being passed */
9061   uint32_t dwellTime;
9062   /**<   Dwell time is the time in seconds a user spends in the Geofence before a dwell
9063        event is sent.
9064   */
9065 
9066   /* Optional */
9067   /*  Geofence Dwell Type */
9068   uint8_t dwellTypeMask_valid;  /**< Must be set to true if dwellTypeMask is being passed */
9069   qmiLocGeofenceDwellTypeMaskT_v02 dwellTypeMask;
9070   /**<   Type of dwell event in which the user is interested .
9071 
9072  Valid values: \n
9073       - QMI_LOC_GEOFENCE_DWELL_TYPE_INSIDE_MASK (0x01) --  If this mask is set, a dwell event is reported
9074        when a user dwells inside the Geofence for a specified time
9075       - QMI_LOC_GEOFENCE_DWELL_TYPE_OUTSIDE_MASK (0x02) --  If this mask is set, a dwell event is reported
9076        when a user dwells outside the Geofence for a specified time
9077  */
9078 }qmiLocAddCircularGeofenceReqMsgT_v02;  /* Message */
9079 /**
9080     @}
9081   */
9082 
9083 /** @addtogroup loc_qmi_messages
9084     @{
9085   */
9086 /** Indication Message; Used by the control point to add a circular Geofence. */
9087 typedef struct {
9088 
9089   /* Mandatory */
9090   /*  Add Circular Geofence Status */
9091   qmiLocStatusEnumT_v02 status;
9092   /**<   Status of the Add Circular Geofence request.
9093 
9094  Valid values: \n
9095       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
9096       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
9097       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
9098       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
9099       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
9100       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
9101       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
9102       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
9103       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
9104       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
9105       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
9106  */
9107 
9108   /* Optional */
9109   /*  Transaction ID */
9110   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
9111   uint32_t transactionId;
9112   /**<   Transaction ID that was specified in the Add Circular
9113        Geofence request. This parameter will always be present
9114        if the status field is set to SUCCESS. */
9115 
9116   /* Optional */
9117   /*  Geofence ID */
9118   uint8_t geofenceId_valid;  /**< Must be set to true if geofenceId is being passed */
9119   uint32_t geofenceId;
9120   /**<   Geofence identifier allocated by the engine.
9121        The client must include this identifier in all transactions
9122        pertaining to this Geofence. */
9123 }qmiLocAddCircularGeofenceIndMsgT_v02;  /* Message */
9124 /**
9125     @}
9126   */
9127 
9128 /** @addtogroup loc_qmi_messages
9129     @{
9130   */
9131 /** Request Message; Used by the control point to delete a Geofence. */
9132 typedef struct {
9133 
9134   /* Mandatory */
9135   /*  Geofence ID */
9136   uint32_t geofenceId;
9137   /**<   Identifier for the Geofence that is to be deleted. */
9138 
9139   /* Mandatory */
9140   /*  Transaction ID */
9141   uint32_t transactionId;
9142   /**<   Identifies the transaction. The transaction ID
9143        is returned in the Delete Geofence
9144        indication. */
9145 }qmiLocDeleteGeofenceReqMsgT_v02;  /* Message */
9146 /**
9147     @}
9148   */
9149 
9150 /** @addtogroup loc_qmi_messages
9151     @{
9152   */
9153 /** Indication Message; Used by the control point to delete a Geofence. */
9154 typedef struct {
9155 
9156   /* Mandatory */
9157   /*  Delete Geofence Status */
9158   qmiLocStatusEnumT_v02 status;
9159   /**<   Status of the Delete Geofence request.
9160 
9161  Valid values: \n
9162       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
9163       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
9164       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
9165       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
9166       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
9167       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
9168       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
9169       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
9170       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
9171       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
9172       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
9173  */
9174 
9175   /* Optional */
9176   /*  Geofence ID */
9177   uint8_t geofenceId_valid;  /**< Must be set to true if geofenceId is being passed */
9178   uint32_t geofenceId;
9179   /**<   Identifier for the Geofence that was deleted. */
9180 
9181   /* Optional */
9182   /*  Transaction ID */
9183   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
9184   uint32_t transactionId;
9185   /**<   Transaction ID that was specified in the Delete
9186        Geofence request. This parameter will always be present
9187        if the status field is set to SUCCESS. */
9188 }qmiLocDeleteGeofenceIndMsgT_v02;  /* Message */
9189 /**
9190     @}
9191   */
9192 
9193 /** @addtogroup loc_qmi_enums
9194     @{
9195   */
9196 typedef enum {
9197   QMILOCGEOFENCEORIGINENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
9198   eQMI_LOC_GEOFENCE_ORIGIN_NETWORK_V02 = 1, /**<  Geofence was initiated by a network-initiated client  */
9199   eQMI_LOC_GEOFENCE_ORIGIN_DEVICE_V02 = 2, /**<  Geofence was initiated by the device  */
9200   QMILOCGEOFENCEORIGINENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
9201 }qmiLocGeofenceOriginEnumT_v02;
9202 /**
9203     @}
9204   */
9205 
9206 /** @addtogroup loc_qmi_enums
9207     @{
9208   */
9209 typedef enum {
9210   QMILOCGEOFENCESTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
9211   eQMI_LOC_GEOFENCE_STATE_ACTIVE_V02 = 1, /**<  Geofence is being actively monitored  */
9212   eQMI_LOC_GEOFENCE_STATE_SUSPEND_V02 = 2, /**<  Geofence monitoring is suspended  */
9213   QMILOCGEOFENCESTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
9214 }qmiLocGeofenceStateEnumT_v02;
9215 /**
9216     @}
9217   */
9218 
9219 /** @addtogroup loc_qmi_messages
9220     @{
9221   */
9222 /** Request Message; Used by the control point to query a Geofence. */
9223 typedef struct {
9224 
9225   /* Mandatory */
9226   /*  Geofence ID */
9227   uint32_t geofenceId;
9228   /**<   Identifier for the Geofence that is to be queried. */
9229 
9230   /* Mandatory */
9231   /*  Transaction ID */
9232   uint32_t transactionId;
9233   /**<   Identifies the transaction. The transaction ID
9234        is returned with the Query Geofence
9235        indication. */
9236 }qmiLocQueryGeofenceReqMsgT_v02;  /* Message */
9237 /**
9238     @}
9239   */
9240 
9241 /** @addtogroup loc_qmi_messages
9242     @{
9243   */
9244 /** Indication Message; Used by the control point to query a Geofence. */
9245 typedef struct {
9246 
9247   /* Mandatory */
9248   /*  Query Geofence Status */
9249   qmiLocStatusEnumT_v02 status;
9250   /**<   Status of the Query Geofence request.
9251 
9252  Valid values: \n
9253       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
9254       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
9255       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
9256       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
9257       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
9258       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
9259       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
9260       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
9261       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
9262       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
9263       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
9264  */
9265 
9266   /* Optional */
9267   /*  Geofence ID */
9268   uint8_t geofenceId_valid;  /**< Must be set to true if geofenceId is being passed */
9269   uint32_t geofenceId;
9270   /**<   Identifier for the Geofence that was queried. */
9271 
9272   /* Optional */
9273   /*  Transaction ID */
9274   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
9275   uint32_t transactionId;
9276   /**<   Transaction ID that was specified in the Query
9277        Geofence request. This parameter will always be present
9278        if the status field is set to SUCCESS. */
9279 
9280   /* Optional */
9281   /*  Geofence Origin */
9282   uint8_t geofenceOrigin_valid;  /**< Must be set to true if geofenceOrigin is being passed */
9283   qmiLocGeofenceOriginEnumT_v02 geofenceOrigin;
9284   /**<   Originator of the Geofence.
9285 
9286  Valid values: \n
9287       - eQMI_LOC_GEOFENCE_ORIGIN_NETWORK (1) --  Geofence was initiated by a network-initiated client
9288       - eQMI_LOC_GEOFENCE_ORIGIN_DEVICE (2) --  Geofence was initiated by the device
9289  */
9290 
9291   /* Optional */
9292   /*  Position with Respect to Geofence */
9293   uint8_t posWrtGeofence_valid;  /**< Must be set to true if posWrtGeofence is being passed */
9294   qmiLocGeofencePositionEnumT_v02 posWrtGeofence;
9295   /**<   Indicates if the client is currently inside or outside
9296  the Geofence.
9297 
9298  Valid values: \n
9299       - eQMI_LOC_GEOFENCE_POSITION_INSIDE (0x01) --  Position is inside a Geofence
9300       - eQMI_LOC_GEOFENCE_POSITION_OUTSIDE (0x02) --  Position is outside a Geofence
9301  */
9302 
9303   /* Optional */
9304   /*  Circular Geofence Parameters */
9305   uint8_t circularGeofenceArgs_valid;  /**< Must be set to true if circularGeofenceArgs is being passed */
9306   qmiLocCircularGeofenceArgsStructT_v02 circularGeofenceArgs;
9307 
9308   /* Optional */
9309   /*  Geofence State */
9310   uint8_t geofenceState_valid;  /**< Must be set to true if geofenceState is being passed */
9311   qmiLocGeofenceStateEnumT_v02 geofenceState;
9312   /**<   Specifies whether the Geofence is to be actively monitored.
9313 
9314  Valid values: \n
9315       - eQMI_LOC_GEOFENCE_STATE_ACTIVE (1) --  Geofence is being actively monitored
9316       - eQMI_LOC_GEOFENCE_STATE_SUSPEND (2) --  Geofence monitoring is suspended
9317  */
9318 }qmiLocQueryGeofenceIndMsgT_v02;  /* Message */
9319 /**
9320     @}
9321   */
9322 
9323 typedef uint32_t qmiLocMotionDetectionSourceMaskT_v02;
9324 #define QMI_LOC_MOTION_DETECTION_SOURCE_SENSORS_V02 ((qmiLocMotionDetectionSourceMaskT_v02)0x00000001) /**<  Sensors are used for motion detection  */
9325 #define QMI_LOC_MOTION_DETECTION_SOURCE_WIFI_V02 ((qmiLocMotionDetectionSourceMaskT_v02)0x00000002) /**<  Wi-Fi is used for motion detection  */
9326 #define QMI_LOC_MOTION_DETECTION_SOURCE_WWAN_V02 ((qmiLocMotionDetectionSourceMaskT_v02)0x00000004) /**<  Wireless WAN is used for motion detection  */
9327 /** @addtogroup loc_qmi_enums
9328     @{
9329   */
9330 typedef enum {
9331   QMILOCGEOFENCEMOTIONSTATESENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
9332   eQMI_LOC_GEOFENCE_MOTION_STATE_STATIONARY_V02 = 0, /**<  Motion state Stationary -- Handset is completely stationary  */
9333   eQMI_LOC_GEOFENCE_MOTION_STATE_FIDDLE_V02 = 1, /**<  Motion state Fiddle -- Handset is not in motion but is being "fiddled" with  */
9334   eQMI_LOC_GEOFENCE_MOTION_STATE_WALK_V02 = 2, /**<  Motion state Walk -- User is walking with the handset  */
9335   eQMI_LOC_GEOFENCE_MOTION_STATE_RUN_V02 = 3, /**<  Motion state Run -- User is running with the handset  */
9336   eQMI_LOC_GEOFENCE_MOTION_STATE_DRIVE_V02 = 4, /**<  Motion state Drive -- User is driving with the handset    */
9337   QMILOCGEOFENCEMOTIONSTATESENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
9338 }qmiLocGeofenceMotionStatesEnumT_v02;
9339 /**
9340     @}
9341   */
9342 
9343 /** @addtogroup loc_qmi_aggregates
9344     @{
9345   */
9346 typedef struct {
9347 
9348   qmiLocGeofenceMotionStatesEnumT_v02 motionState;
9349   /**<   Motion state for which information is being configured. */
9350 
9351   float motionStateSpeed;
9352   /**<    Motion state speed in milliseconds.
9353 
9354            These are positive floating values.
9355            The state speed must be configured carefully. Very low speed
9356            configuration for a state may result in missing Geofence
9357            breaches in some scenarios.
9358 
9359            Typical motion state speeds: \n
9360            - Stationary speed -- 0 meters/sec
9361            - Fiddle speed -- 0 meters/sec \n
9362            - Walk speed -- 3 meters/sec    \n
9363            - Run speed -- 8 meters/sec \n
9364            - Drive speed -- 56 meters/sec
9365   */
9366 }qmiLocGeofenceMotionStateConfigStructT_v02;  /* Type */
9367 /**
9368     @}
9369   */
9370 
9371 /** @addtogroup loc_qmi_messages
9372     @{
9373   */
9374 /** Request Message; Used by the control point to set the Geofence engine configuration. */
9375 typedef struct {
9376 
9377   /* Mandatory */
9378   /*  Transaction ID */
9379   uint32_t transactionId;
9380   /**<   Identifies the transaction. The transaction ID
9381        is returned with the Set Geofence Configuration
9382        indication. */
9383 
9384   /* Optional */
9385   /*  GNSS Unavailable Indication Timeout */
9386   uint8_t gnssUnavailableIndicationTimeout_valid;  /**< Must be set to true if gnssUnavailableIndicationTimeout is being passed */
9387   uint32_t gnssUnavailableIndicationTimeout;
9388   /**<   In a bad GNSS environment, this is the timeout after which the Geofence
9389        engine sends out a GNSS Unavailable indication. The GNSS Unavailable
9390        indication is sent under the following conditions: \begin{itemize1}
9391        \item If gnssUnavailableIndicationTimeout is less than
9392              gnssPositionSessionTimeout, the GNSS
9393              Unavailable timeout indication is sent after
9394              gnssPositionSessionTimeout expires
9395        \item If gnssPositionSessionTimeout is less than
9396              gnssUnavailableIndicationTimeout, the
9397              GNSS Unavailable timeout indication is sent after
9398              gnssUnavailableIndicationTimeout expires
9399         \vspace{-0.18in} \end{itemize1} */
9400 
9401   /* Optional */
9402   /*  Max Geofences */
9403   uint8_t maxGeofences_valid;  /**< Must be set to true if maxGeofences is being passed */
9404   uint32_t maxGeofences;
9405   /**<   Identifies the maximum number of Geofences that can be supported by
9406        the Geofence engine. If this number is less than the currently deployed
9407        Geofences, this command fails.
9408 
9409        If the command succeeds, the engine supports the maximum number of
9410        Geofences requested, provided there is enough memory to support that
9411        many Geofences. Increasing this value to a very large number in a
9412        constrained memory environment might affect other modules negatively.
9413        This value is determined by phone manufacturers. The default value
9414        is 200. */
9415 
9416   /* Optional */
9417   /*  Enable Motion Detection Sources */
9418   uint8_t enableMotionDetectionSources_valid;  /**< Must be set to true if enableMotionDetectionSources is being passed */
9419   qmiLocMotionDetectionSourceMaskT_v02 enableMotionDetectionSources;
9420   /**<   Identifies the sources that can be enabled for motion detection by
9421  the Geofence engine. The sources of motion detection that are enabled
9422  by the Geofence engine are dependent on the platform.
9423  These sources can only be set once at boot time and they are not expected to be changed after that.
9424  Any attempt to set the value of the motion detection sources at runtime results in an undefined behavior.
9425  Valid values: \n
9426       - QMI_LOC_MOTION_DETECTION_SOURCE_SENSORS (0x00000001) --  Sensors are used for motion detection
9427       - QMI_LOC_MOTION_DETECTION_SOURCE_WIFI (0x00000002) --  Wi-Fi is used for motion detection
9428       - QMI_LOC_MOTION_DETECTION_SOURCE_WWAN (0x00000004) --  Wireless WAN is used for motion detection  */
9429 
9430   /* Optional */
9431   /*  Enable Coarse Position Injection Usage */
9432   uint8_t enableCpiUsage_valid;  /**< Must be set to true if enableCpiUsage is being passed */
9433   uint8_t enableCpiUsage;
9434   /**<   Indicates whether external Coarse Position Injection (CPI) is used
9435        by the Geofence engine.
9436        \begin{itemize1}
9437        \item    0x01 (TRUE)  -- CPI is enabled (default)
9438        \item    0x00 (FALSE) -- CPI is disabled
9439        \vspace{-0.18in} \end{itemize1}*/
9440 
9441   /* Optional */
9442   /*  GNSS Position QOS Session Timeout */
9443   uint8_t gnssPositionSessionTimeout_valid;  /**< Must be set to true if gnssPositionSessionTimeout is being passed */
9444   uint32_t gnssPositionSessionTimeout;
9445   /**<   Identifies the session timeout value (in seconds) for requesting a
9446          position in a bad GNSS environment.
9447 
9448          Valid values: \begin{itemize1}
9449    \item If the gnssUnavailableIndicationTimeout value is less than
9450          gnssPositionSessionTimeout, in a bad GNSS environment, the GNSS
9451          Unavailable timeout indication is sent after
9452          gnssPositionSessionTimeout expires.
9453    \item If gnssPositionSessionTimeout is less than gnssUnavailableIndicationTimeout,
9454          in a bad GNSS environment, the GNSS Unavailable timeout indication
9455          is sent after gnssUnavailableIndicationTimeout expires. \vspace{-0.18in} \end{itemize1}
9456     */
9457 
9458   /* Optional */
9459   /*  GNSS Position Maximum Position Uncertainity Acceptable */
9460   uint8_t gnssPositionMaxPuncAcceptable_valid;  /**< Must be set to true if gnssPositionMaxPuncAcceptable is being passed */
9461   uint32_t gnssPositionMaxPuncAcceptable;
9462   /**<   GNSS maximum position uncertainity in meters acceptable by
9463          the Geofence engine.
9464 
9465          Valid values: \n
9466          - All positive values
9467     */
9468 
9469   /* Optional */
9470   /*  Medium Responsiveness Value */
9471   uint8_t mediumResponsivenessValue_valid;  /**< Must be set to true if mediumResponsivenessValue is being passed */
9472   uint32_t mediumResponsivenessValue;
9473   /**<   Medium responsiveness value in seconds that the Geofence engine
9474          uses for all medium responsiveness Geofences in the Geofence engine.
9475 
9476          Valid values: \begin{itemize1}
9477          \item Positive values (in seconds)
9478          \item If the value is configured for less than 30 sec, the value is
9479                set at 30 sec
9480          \item If the value is configured for more than 600 sec, the value is
9481                set at 600 sec
9482          \item Default -- The Geofence engine uses 120 sec as the medium
9483                           responsiveness value
9484          \end{itemize1}
9485 
9486          If the medium responsiveness value is changed, the responsiveness
9487          of the existing medium responsiveness Geofence does not change until the next
9488          position fix, which is based on the previous medium responsiveness
9489          setting.
9490     */
9491 
9492   /* Optional */
9493   /*  Challenging GNSS Environment Minimum CPI Wait Interval */
9494   uint8_t chalGnssEnvMinCpiWaitInterval_valid;  /**< Must be set to true if chalGnssEnvMinCpiWaitInterval is being passed */
9495   uint32_t chalGnssEnvMinCpiWaitInterval;
9496   /**<   Number of seconds that the Geofence engine is to wait between
9497          CPI requests in challenging a GNSS environment.
9498 
9499          Valid values: \n
9500          - Positive values (in seconds)
9501      */
9502 
9503   /* Optional */
9504   /*  Geofence Motion State Information */
9505   uint8_t motionStateInfo_valid;  /**< Must be set to true if motionStateInfo is being passed */
9506   uint32_t motionStateInfo_len;  /**< Must be set to # of elements in motionStateInfo */
9507   qmiLocGeofenceMotionStateConfigStructT_v02 motionStateInfo[QMI_LOC_GEOFENCE_MAX_MOTION_STATES_V02];
9508   /**<   \vspace{4pt} \n  Motion state informatino (e.g., motion state speed) that the
9509          Geofence engine is to use.
9510    */
9511 }qmiLocSetGeofenceEngineConfigReqMsgT_v02;  /* Message */
9512 /**
9513     @}
9514   */
9515 
9516 /** @addtogroup loc_qmi_messages
9517     @{
9518   */
9519 /** Indication Message; Used by the control point to set the Geofence engine configuration. */
9520 typedef struct {
9521 
9522   /* Mandatory */
9523   /*  Set Geofence Engine Configuration Status. */
9524   qmiLocStatusEnumT_v02 status;
9525   /**<   Status of the Set Geofence Engine Configuration request.
9526 
9527  Valid values: \n
9528       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
9529       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
9530       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
9531       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
9532       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
9533       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
9534       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
9535       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
9536       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
9537       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
9538       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
9539 
9540   /* Optional */
9541   /*  Transaction ID */
9542   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
9543   uint32_t transactionId;
9544   /**<   Transaction ID that was specified in the Set Geofence Configuration
9545        request. This parameter is always present if the status
9546        field is set to SUCCESS. */
9547 }qmiLocSetGeofenceEngineConfigIndMsgT_v02;  /* Message */
9548 /**
9549     @}
9550   */
9551 
9552 /** @addtogroup loc_qmi_messages
9553     @{
9554   */
9555 /** Request Message; Used by the control point to get the Geofence engine configuration. */
9556 typedef struct {
9557 
9558   /* Mandatory */
9559   /*  Transaction ID */
9560   uint32_t transactionId;
9561   /**<   Identifies the transaction. The transaction ID
9562        is returned with the Get Geofence Engine Configuration
9563        indication. */
9564 }qmiLocGetGeofenceEngineConfigReqMsgT_v02;  /* Message */
9565 /**
9566     @}
9567   */
9568 
9569 /** @addtogroup loc_qmi_messages
9570     @{
9571   */
9572 /** Indication Message; Used by the control point to get the Geofence engine configuration. */
9573 typedef struct {
9574 
9575   /* Mandatory */
9576   /*  Get Geofence Engine Configuration Status */
9577   qmiLocStatusEnumT_v02 status;
9578   /**<   Status of the Get Geofence Engine Configuration request.
9579 
9580  Valid values: \n
9581       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
9582       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
9583       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
9584       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
9585       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
9586       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
9587       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
9588       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
9589       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
9590       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
9591       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
9592 
9593   /* Optional */
9594   /*  Transaction ID */
9595   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
9596   uint32_t transactionId;
9597   /**<   Transaction ID that was specified in the Get Geofence Engine Configuration
9598        request. This parameter is always present
9599        if the status field is set to SUCCESS. */
9600 
9601   /* Optional */
9602   /*  GPS Unavailable Indication Timeout */
9603   uint8_t gnssUnavailableIndicationTimeout_valid;  /**< Must be set to true if gnssUnavailableIndicationTimeout is being passed */
9604   uint32_t gnssUnavailableIndicationTimeout;
9605   /**<   In a bad GNSS environment, the timeout after which the Geofence engine
9606        sends out a GNSS unavailable indication. */
9607 
9608   /* Optional */
9609   /*  Max Geofences */
9610   uint8_t maxGeofences_valid;  /**< Must be set to true if maxGeofences is being passed */
9611   uint32_t maxGeofences;
9612   /**<   Identifies the maximum number of Geofences that are currently supported
9613        in the Geofence engine.  */
9614 
9615   /* Optional */
9616   /*  Enabled Motion Detection Sources */
9617   uint8_t enabledMotionDetectionSources_valid;  /**< Must be set to true if enabledMotionDetectionSources is being passed */
9618   qmiLocMotionDetectionSourceMaskT_v02 enabledMotionDetectionSources;
9619   /**<   Identifies the sources that are currently enabled for motion detection
9620  by the Geofence engine.
9621 
9622  Valid values: \n
9623       - QMI_LOC_MOTION_DETECTION_SOURCE_SENSORS (0x00000001) --  Sensors are used for motion detection
9624       - QMI_LOC_MOTION_DETECTION_SOURCE_WIFI (0x00000002) --  Wi-Fi is used for motion detection
9625       - QMI_LOC_MOTION_DETECTION_SOURCE_WWAN (0x00000004) --  Wireless WAN is used for motion detection  */
9626 
9627   /* Optional */
9628   /*  Enabled for CPI Position Injection Usage */
9629   uint8_t enabledCpiUsage_valid;  /**< Must be set to true if enabledCpiUsage is being passed */
9630   uint8_t enabledCpiUsage;
9631   /**<   Indicates whether CPI usage is enabled.
9632        \begin{itemize1}
9633        \item    0x01 (TRUE)  -- CPI usage is enabled
9634        \item    0x00 (FALSE) -- CPI usage is disabled
9635        \vspace{-0.18in} \end{itemize1}*/
9636 }qmiLocGetGeofenceEngineConfigIndMsgT_v02;  /* Message */
9637 /**
9638     @}
9639   */
9640 
9641 /** @addtogroup loc_qmi_messages
9642     @{
9643   */
9644 /** Request Message; Used by the control point to edit a Geofence. */
9645 typedef struct {
9646 
9647   /* Mandatory */
9648   /*  Geofence ID */
9649   uint32_t geofenceId;
9650   /**<   Identifier for the Geofence to be edited. */
9651 
9652   /* Mandatory */
9653   /*  Transaction ID */
9654   uint32_t transactionId;
9655   /**<   Transaction ID that was specified in the Edit Geofence
9656        request. This parameter will always be present if the
9657        status field is set to SUCCESS.
9658  */
9659 
9660   /* Optional */
9661   /*  Geofence State */
9662   uint8_t geofenceState_valid;  /**< Must be set to true if geofenceState is being passed */
9663   qmiLocGeofenceStateEnumT_v02 geofenceState;
9664   /**<   Specifies whether the Geofence is to be actively monitored.
9665 
9666  Valid values: \n
9667       - eQMI_LOC_GEOFENCE_STATE_ACTIVE (1) --  Geofence is being actively monitored
9668       - eQMI_LOC_GEOFENCE_STATE_SUSPEND (2) --  Geofence monitoring is suspended
9669  */
9670 
9671   /* Optional */
9672   /*  Breach Event Mask */
9673   uint8_t breachMask_valid;  /**< Must be set to true if breachMask is being passed */
9674   qmiLocGeofenceBreachMaskT_v02 breachMask;
9675   /**<   Specifies the breach events in which the client is interested.
9676 
9677        Valid values: \begin{itemize1}
9678        \item    0x01 -- GEOFENCE_BREACH_ ENTERING_MASK
9679        \item    0x02 -- GEOFENCE_BREACH_ LEAVING_MASK
9680        \vspace{-0.18in} \end{itemize1} */
9681 
9682   /* Optional */
9683   /*  Responsiveness */
9684   uint8_t responsiveness_valid;  /**< Must be set to true if responsiveness is being passed */
9685   qmiLocGeofenceResponsivenessEnumT_v02 responsiveness;
9686   /**<   Specifies the rate of detection for a Geofence breach.
9687  This may impact the time lag between the actual breach event and
9688  when it is reported. This parameter has power implications
9689  and is to be fine-tuned to optimize power savings.
9690 
9691  Valid values: \n
9692       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_LOW (0x01) --  The Geofence is monitored for a breach at a
9693        low rate of 15 minutes. The gap between the actual breach and
9694        the time it is reported is higher. This
9695        setting results in lower power usage.
9696       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_MED (0x02) --  The Geofence is monitored for a breach at a
9697        medium rate of 2 minutes. This is the default setting.
9698       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_HIGH (0x03) --  The Geofence is monitored for a breach at a
9699        high rate of 10 seconds. The gap between the actual breach and
9700        the time it is reported is low. This results
9701        in higher power usage.
9702       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_ULTRA_HIGH (0x04) --  The Geofence is monitored for a breach at a
9703        very high rate of 1 second. The gap between the actual breach and
9704        the time it is reported is very low. This results
9705        in very high power usage. This setting must be avoided whenever
9706        possible because of the drastic power implications.
9707       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_CUSTOM (0x05) --  The Geofence is monitored for a breach at a
9708        user defined rate. The gap between the actual breach and
9709        the time it is reported depends on the user setting. The power implication
9710        is inversely proportional to the responsiveness value set by the user.
9711        The higher the responsiveness value, the lower the power implications, and vice-versa.
9712  */
9713 }qmiLocEditGeofenceReqMsgT_v02;  /* Message */
9714 /**
9715     @}
9716   */
9717 
9718 typedef uint32_t qmiLocGeofenceConfigParamMaskT_v02;
9719 #define QMI_LOC_GEOFENCE_PARAM_MASK_GEOFENCE_STATE_V02 ((qmiLocGeofenceConfigParamMaskT_v02)0x00000001) /**<  Mask for the Geofence state parameter.  */
9720 #define QMI_LOC_GEOFENCE_PARAM_MASK_BREACH_MASK_V02 ((qmiLocGeofenceConfigParamMaskT_v02)0x00000002) /**<  Mask for Geofence breach mask parameter.  */
9721 /** @addtogroup loc_qmi_messages
9722     @{
9723   */
9724 /** Indication Message; Used by the control point to edit a Geofence. */
9725 typedef struct {
9726 
9727   /* Mandatory */
9728   /*  Edit Geofence Status */
9729   qmiLocStatusEnumT_v02 status;
9730   /**<   Status of the Edit Geofence request.
9731 
9732  Valid values: \n
9733       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
9734       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
9735       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
9736       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
9737       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
9738       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
9739       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
9740       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
9741       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
9742       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
9743       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
9744 
9745   /* Optional */
9746   /*  Geofence ID */
9747   uint8_t geofenceId_valid;  /**< Must be set to true if geofenceId is being passed */
9748   uint32_t geofenceId;
9749   /**<   Identifier for the Geofence that was edited. */
9750 
9751   /* Optional */
9752   /*  Transaction ID */
9753   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
9754   uint32_t transactionId;
9755   /**<   Identifies the transaction. The transaction ID
9756        is specified in the Edit Geofence request. */
9757 
9758   /* Optional */
9759   /*  Failed Parameters */
9760   uint8_t failedParams_valid;  /**< Must be set to true if failedParams is being passed */
9761   qmiLocGeofenceConfigParamMaskT_v02 failedParams;
9762   /**<   Specified only when the status is not set to SUCCESS. If
9763        the mask corresponding to a field is set, it indicates that
9764        the Geofence parameter could not be edited.
9765 
9766        Valid values: \begin{itemize1}
9767        \item    0x00000001 -- GEOFENCE_PARAM_ MASK_GEOFENCE_STATE
9768        \item    0x00000002 -- GEOFENCE_PARAM_ MASK_BREACH_MASK
9769        \vspace{-0.18in} \end{itemize1} */
9770 }qmiLocEditGeofenceIndMsgT_v02;  /* Message */
9771 /**
9772     @}
9773   */
9774 
9775 /** @addtogroup loc_qmi_messages
9776     @{
9777   */
9778 /** Indication Message; Requests the control point to get time zone information. */
9779 typedef struct {
9780 
9781   /* Mandatory */
9782   /*  Get Time Zone Info Status */
9783   qmiLocStatusEnumT_v02 status;
9784   /**<   Status of the Get Time Zone Info request.
9785 
9786  Valid values: \n
9787       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
9788       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
9789       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
9790       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
9791       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
9792       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
9793       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
9794       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
9795       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
9796       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
9797       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
9798 }qmiLocEventGetTimeZoneReqIndMsgT_v02;  /* Message */
9799 /**
9800     @}
9801   */
9802 
9803 /** @addtogroup loc_qmi_aggregates
9804     @{
9805   */
9806 typedef struct {
9807 
9808   uint64_t dstOffset;
9809   /**<   Offset for Daylight Savings Time in seconds. This is zero if the time zone is not in Daylight Savings
9810        Time during the specified UTC timestamp. */
9811 
9812   uint64_t rawOffset;
9813   /**<   Offset from UTC (in seconds) for the current location. This does not take daylight savings into account. */
9814 }qmiLocTimeZoneStructT_v02;  /* Type */
9815 /**
9816     @}
9817   */
9818 
9819 /** @addtogroup loc_qmi_messages
9820     @{
9821   */
9822 /** Request Message; Used by the control point to inject time zone information. */
9823 typedef struct {
9824 
9825   /* Mandatory */
9826   /*  UTC Time */
9827   uint64_t timeUtc;
9828   /**<   UTC time since Jan. 1, 1970.\n
9829        - Units: Milliseconds */
9830 
9831   /* Mandatory */
9832   /*  Time Zone Information */
9833   qmiLocTimeZoneStructT_v02 timeZone;
9834 }qmiLocInjectTimeZoneInfoReqMsgT_v02;  /* Message */
9835 /**
9836     @}
9837   */
9838 
9839 /** @addtogroup loc_qmi_messages
9840     @{
9841   */
9842 /** Indication Message; Used by the control point to inject time zone information. */
9843 typedef struct {
9844 
9845   /* Mandatory */
9846   /*  Inject Time Zone Info Status */
9847   qmiLocStatusEnumT_v02 status;
9848   /**<   Status of the inject time zone information.
9849 
9850  Valid values: \n
9851       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
9852       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
9853       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
9854       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
9855       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
9856       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
9857       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
9858       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
9859       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
9860       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
9861       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
9862 }qmiLocInjectTimeZoneInfoIndMsgT_v02;  /* Message */
9863 /**
9864     @}
9865   */
9866 
9867 /** @addtogroup loc_qmi_messages
9868     @{
9869   */
9870 /** Request Message; Used by the control point to get the best available
9871                     position estimate from the location engine. */
9872 typedef struct {
9873 
9874   /* Mandatory */
9875   /*  Transaction ID */
9876   uint32_t transactionId;
9877   /**<   Identifies the transaction. The transaction ID
9878        is returned in the Get Best Available Position indication. */
9879 }qmiLocGetBestAvailablePositionReqMsgT_v02;  /* Message */
9880 /**
9881     @}
9882   */
9883 
9884 /** @addtogroup loc_qmi_messages
9885     @{
9886   */
9887 /** Indication Message; Used by the control point to get the best available
9888                     position estimate from the location engine. */
9889 typedef struct {
9890 
9891   /* Mandatory */
9892   /*  Get Best Available Position Status */
9893   qmiLocStatusEnumT_v02 status;
9894   /**<   Status of the Get Best Available Position request.
9895 
9896  Valid values: \n
9897       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
9898       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
9899       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
9900       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
9901       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
9902       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
9903       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
9904       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
9905       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
9906       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
9907       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
9908 
9909   /* Optional */
9910   /*  Transaction ID */
9911   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
9912   uint32_t transactionId;
9913   /**<   Transaction ID that was specified in the Get Best
9914        Available Position request. This parameter will
9915        always be present if the status field is set to
9916        SUCCESS. */
9917 
9918   /* Optional */
9919   /*  Latitude */
9920   uint8_t latitude_valid;  /**< Must be set to true if latitude is being passed */
9921   double latitude;
9922   /**<   Latitude (specified in WGS84 datum).
9923        \begin{itemize1}
9924        \item    Type: Floating point
9925        \item    Units: Degrees
9926        \item     Range: -90.0 to 90.0      \begin{itemize1}
9927          \item    Positive values indicate northern latitude
9928          \item    Negative values indicate southern latitude
9929        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
9930 
9931   /* Optional */
9932   /*   Longitude */
9933   uint8_t longitude_valid;  /**< Must be set to true if longitude is being passed */
9934   double longitude;
9935   /**<   Longitude (specified in WGS84 datum).
9936        \begin{itemize1}
9937        \item    Type: Floating point
9938        \item    Units: Degrees
9939        \item    Range: -180.0 to 180.0     \begin{itemize1}
9940          \item    Positive values indicate eastern longitude
9941          \item    Negative values indicate western longitude
9942        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
9943 
9944   /* Optional */
9945   /*   Circular Horizontal Position Uncertainty */
9946   uint8_t horUncCircular_valid;  /**< Must be set to true if horUncCircular is being passed */
9947   float horUncCircular;
9948   /**<   Horizontal position uncertainty (circular).\n
9949        - Units: Meters */
9950 
9951   /* Optional */
9952   /*  Altitude With Respect to Ellipsoid */
9953   uint8_t altitudeWrtEllipsoid_valid;  /**< Must be set to true if altitudeWrtEllipsoid is being passed */
9954   float altitudeWrtEllipsoid;
9955   /**<   Altitude with respect to the WGS84 ellipsoid.\n
9956        - Units: Meters \n
9957        - Range: -500 to 15883 */
9958 
9959   /* Optional */
9960   /*  Vertical Uncertainty */
9961   uint8_t vertUnc_valid;  /**< Must be set to true if vertUnc is being passed */
9962   float vertUnc;
9963   /**<   Vertical uncertainty.\n
9964        - Units: Meters */
9965 
9966   /* Optional */
9967   /*  UTC Timestamp */
9968   uint8_t timestampUtc_valid;  /**< Must be set to true if timestampUtc is being passed */
9969   uint64_t timestampUtc;
9970   /**<   UTC timestamp.
9971        \begin{itemize1}
9972        \item Units: Milliseconds since Jan. 1, 1970
9973        \vspace{-0.18in} \end{itemize1} */
9974 
9975   /* Optional */
9976   /*  Time Uncertainty */
9977   uint8_t timeUnc_valid;  /**< Must be set to true if timeUnc is being passed */
9978   float timeUnc;
9979   /**<   Time uncertainty. \n
9980        - Units: Milliseconds */
9981 
9982   /* Optional */
9983   /*  Horizontal Elliptical Uncertainty Semi-Minor Axis */
9984   uint8_t horUncEllipseSemiMinor_valid;  /**< Must be set to true if horUncEllipseSemiMinor is being passed */
9985   float horUncEllipseSemiMinor;
9986   /**<   Semi-minor axis of horizontal elliptical uncertainty. \n
9987        - Units: Meters */
9988 
9989   /* Optional */
9990   /*  Horizontal Elliptical Uncertainty Semi-Major Axis */
9991   uint8_t horUncEllipseSemiMajor_valid;  /**< Must be set to true if horUncEllipseSemiMajor is being passed */
9992   float horUncEllipseSemiMajor;
9993   /**<   Semi-major axis of horizontal elliptical uncertainty. \n
9994        - Units: Meters */
9995 
9996   /* Optional */
9997   /*  Horizontal Elliptical Uncertainty Azimuth */
9998   uint8_t horUncEllipseOrientAzimuth_valid;  /**< Must be set to true if horUncEllipseOrientAzimuth is being passed */
9999   float horUncEllipseOrientAzimuth;
10000   /**<   Elliptical horizontal uncertainty azimuth of orientation. \n
10001        - Units: Decimal degrees \n
10002        - Range: 0 to 180 */
10003 
10004   /* Optional */
10005   /*  Horizontal Circular Confidence */
10006   uint8_t horCircularConfidence_valid;  /**< Must be set to true if horCircularConfidence is being passed */
10007   uint8_t horCircularConfidence;
10008   /**<   Horizontal circular uncertainty confidence. \n
10009        - Units: Percent \n
10010        - Range: 0 to 99 */
10011 
10012   /* Optional */
10013   /*  Horizontal Elliptical Confidence */
10014   uint8_t horEllipticalConfidence_valid;  /**< Must be set to true if horEllipticalConfidence is being passed */
10015   uint8_t horEllipticalConfidence;
10016   /**<   Horizontal elliptical uncertainty confidence. \n
10017        - Units: Percent \n
10018        - Range: 0 to 99 */
10019 
10020   /* Optional */
10021   /*  Horizontal Reliability */
10022   uint8_t horReliability_valid;  /**< Must be set to true if horReliability is being passed */
10023   qmiLocReliabilityEnumT_v02 horReliability;
10024   /**<   Specifies the reliability of the horizontal position.
10025 
10026  Valid values: \n
10027       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
10028       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
10029       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
10030       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
10031       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
10032  */
10033 
10034   /* Optional */
10035   /*  Horizontal Speed */
10036   uint8_t horSpeed_valid;  /**< Must be set to true if horSpeed is being passed */
10037   float horSpeed;
10038   /**<   Horizontal speed. \n
10039        - Units: Meters/second */
10040 
10041   /* Optional */
10042   /*  Horizontal Speed Uncertainty */
10043   uint8_t horSpeedUnc_valid;  /**< Must be set to true if horSpeedUnc is being passed */
10044   float horSpeedUnc;
10045   /**<   Horizontal speed uncertainty. \n
10046        - Units: Meters/second */
10047 
10048   /* Optional */
10049   /*  Altitude With Respect to Sea Level */
10050   uint8_t altitudeWrtMeanSeaLevel_valid;  /**< Must be set to true if altitudeWrtMeanSeaLevel is being passed */
10051   float altitudeWrtMeanSeaLevel;
10052   /**<   Altitude with respect to mean sea level. \n
10053        - Units: Meters */
10054 
10055   /* Optional */
10056   /*  Vertical Confidence */
10057   uint8_t vertConfidence_valid;  /**< Must be set to true if vertConfidence is being passed */
10058   uint8_t vertConfidence;
10059   /**<   Vertical uncertainty confidence. \n
10060        - Units: Percent \n
10061        - Range: 0 to 99 */
10062 
10063   /* Optional */
10064   /*  Vertical Reliability */
10065   uint8_t vertReliability_valid;  /**< Must be set to true if vertReliability is being passed */
10066   qmiLocReliabilityEnumT_v02 vertReliability;
10067   /**<   Specifies the reliability of the vertical position.
10068 
10069  Valid values: \n
10070       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
10071       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
10072       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
10073       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
10074       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
10075  */
10076 
10077   /* Optional */
10078   /*  Vertical Speed */
10079   uint8_t vertSpeed_valid;  /**< Must be set to true if vertSpeed is being passed */
10080   float vertSpeed;
10081   /**<   Vertical speed. \n
10082          - Units: Meters/second */
10083 
10084   /* Optional */
10085   /*  Vertical Speed Uncertainty */
10086   uint8_t vertSpeedUnc_valid;  /**< Must be set to true if vertSpeedUnc is being passed */
10087   float vertSpeedUnc;
10088   /**<   Vertical speed uncertainty. \n
10089        - Units: Meters/second */
10090 
10091   /* Optional */
10092   /*  Heading */
10093   uint8_t heading_valid;  /**< Must be set to true if heading is being passed */
10094   float heading;
10095   /**<   Heading. \n
10096          - Units: Degrees \n
10097          - Range: 0 to 359.999  */
10098 
10099   /* Optional */
10100   /*  Heading Uncertainty */
10101   uint8_t headingUnc_valid;  /**< Must be set to true if headingUnc is being passed */
10102   float headingUnc;
10103   /**<   Heading uncertainty. \n
10104        - Type: Floating point \n
10105        - Range: 0 to 359.999 */
10106 
10107   /* Optional */
10108   /*  Magnetic Deviation */
10109   uint8_t magneticDeviation_valid;  /**< Must be set to true if magneticDeviation is being passed */
10110   float magneticDeviation;
10111   /**<   Difference between the bearing to true north and the bearing shown
10112       on a magnetic compass. The deviation is positive when the magnetic
10113       north is east of true north. */
10114 
10115   /* Optional */
10116   /*  Technology Used Mask */
10117   uint8_t technologyMask_valid;  /**< Must be set to true if technologyMask is being passed */
10118   qmiLocPosTechMaskT_v02 technologyMask;
10119   /**<   Technology used in computing this fix.
10120  Valid bitmasks: \n
10121       - QMI_LOC_POS_TECH_MASK_SATELLITE (0x00000001) --  Satellites were used to generate the fix
10122       - QMI_LOC_POS_TECH_MASK_CELLID (0x00000002) --  Cell towers were used to generate the fix
10123       - QMI_LOC_POS_TECH_MASK_WIFI (0x00000004) --  Wi-Fi access points were used to generate the fix
10124       - QMI_LOC_POS_TECH_MASK_SENSORS (0x00000008) --  Sensors were used to generate the fix
10125       - QMI_LOC_POS_TECH_MASK_REFERENCE_LOCATION (0x00000010) --  Reference Location was used to generate the fix
10126       - QMI_LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION (0x00000020) --  Coarse position injected into the location engine was used to
10127         generate the fix
10128       - QMI_LOC_POS_TECH_MASK_AFLT (0x00000040) --  AFLT was used to generate the fix
10129       - QMI_LOC_POS_TECH_MASK_HYBRID (0x00000080) --  GNSS and network-provided measurements were used to
10130         generate the fix
10131  */
10132 
10133   /* Optional */
10134   /*  Dilution of Precision */
10135   uint8_t DOP_valid;  /**< Must be set to true if DOP is being passed */
10136   qmiLocDOPStructT_v02 DOP;
10137 
10138   /* Optional */
10139   /*  GPS Time */
10140   uint8_t gpsTime_valid;  /**< Must be set to true if gpsTime is being passed */
10141   qmiLocGPSTimeStructT_v02 gpsTime;
10142 
10143   /* Optional */
10144   /*  Time Source */
10145   uint8_t timeSrc_valid;  /**< Must be set to true if timeSrc is being passed */
10146   qmiLocTimeSourceEnumT_v02 timeSrc;
10147   /**<   Time source.
10148  Valid values: \n
10149       - eQMI_LOC_TIME_SRC_INVALID (0) --  Invalid time.
10150       - eQMI_LOC_TIME_SRC_NETWORK_TIME_TRANSFER (1) --  Time is set by the 1X system
10151       - eQMI_LOC_TIME_SRC_NETWORK_TIME_TAGGING (2) --  Time is set by WCDMA/GSM time tagging (that is,
10152        associating network time with GPS time)
10153       - eQMI_LOC_TIME_SRC_EXTERNAL_INPUT (3) --  Time is set by an external injection
10154       - eQMI_LOC_TIME_SRC_TOW_DECODE (4) --  Time is set after decoding over-the-air GPS navigation data
10155        from one GPS satellite
10156       - eQMI_LOC_TIME_SRC_TOW_CONFIRMED (5) --  Time is set after decoding over-the-air GPS navigation data
10157        from multiple satellites
10158       - eQMI_LOC_TIME_SRC_TOW_AND_WEEK_CONFIRMED (6) --  Both time of the week and the GPS week number are known
10159       - eQMI_LOC_TIME_SRC_NAV_SOLUTION (7) --  Time is set by the position engine after the fix is obtained
10160       - eQMI_LOC_TIME_SRC_SOLVE_FOR_TIME (8) --  Time is set by the position engine after performing SFT;
10161        this is done when the clock time uncertainty is large
10162       - eQMI_LOC_TIME_SRC_GLO_TOW_DECODE (9) --  Time is set after decoding GLO satellites
10163       - eQMI_LOC_TIME_SRC_TIME_TRANSFORM (10) --  Time is set after transforming the GPS to GLO time
10164       - eQMI_LOC_TIME_SRC_WCDMA_SLEEP_TIME_TAGGING (11) --  Time is set by the sleep time tag provided by the WCDMA network
10165       - eQMI_LOC_TIME_SRC_GSM_SLEEP_TIME_TAGGING (12) --  Time is set by the sleep time tag provided by the GSM network
10166       - eQMI_LOC_TIME_SRC_UNKNOWN (13) --  Source of the time is unknown
10167       - eQMI_LOC_TIME_SRC_SYSTEM_TIMETICK (14) --  Time is derived from the system clock (better known as the slow clock);
10168        GNSS time is maintained irrespective of the GNSS receiver state
10169       - eQMI_LOC_TIME_SRC_QZSS_TOW_DECODE (15) --  Time is set after decoding QZSS satellites
10170       - eQMI_LOC_TIME_SRC_BDS_TOW_DECODE (16) --  Time is set after decoding BDS satellites
10171       - eQMI_LOC_TIME_SRC_GAL_TOW_DECODE (17) --  Time is set after decoding GAL satellites
10172  */
10173 
10174   /* Optional */
10175   /*  Sensor Data Usage */
10176   uint8_t sensorDataUsage_valid;  /**< Must be set to true if sensorDataUsage is being passed */
10177   qmiLocSensorUsageIndicatorStructT_v02 sensorDataUsage;
10178 
10179   /* Optional */
10180   /*  SVs Used to Calculate the Fix */
10181   uint8_t gnssSvUsedList_valid;  /**< Must be set to true if gnssSvUsedList is being passed */
10182   uint32_t gnssSvUsedList_len;  /**< Must be set to # of elements in gnssSvUsedList */
10183   uint16_t gnssSvUsedList[QMI_LOC_MAX_SV_USED_LIST_LENGTH_V02];
10184   /**<   Each entry in the list contains the SV ID of a satellite
10185        used for calculating this position report. The following
10186        information is associated with each SV ID: \n
10187        Range: \n
10188        - For GPS:     1 to 32 \n
10189        - For GLONASS: 65 to 96 \n
10190        - For SBAS:    120 to 158 and 183 to 187 \n
10191        - For QZSS:    193 to 197 \n
10192        - For BDS:     201 to 237 \n
10193        - For GAL:     301 to 336
10194        */
10195 }qmiLocGetBestAvailablePositionIndMsgT_v02;  /* Message */
10196 /**
10197     @}
10198   */
10199 
10200 /** @addtogroup loc_qmi_enums
10201     @{
10202   */
10203 typedef enum {
10204   QMILOCMOTIONSTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
10205   eQMI_LOC_MOTION_STATE_UNKNOWN_V02 = 0, /**<  Device state is not known  */
10206   eQMI_LOC_MOTION_STATE_STATIONARY_V02 = 1, /**<  Device state is Stationary  */
10207   eQMI_LOC_MOTION_STATE_IN_MOTION_V02 = 2, /**<  Device state is In Motion  */
10208   QMILOCMOTIONSTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
10209 }qmiLocMotionStateEnumT_v02;
10210 /**
10211     @}
10212   */
10213 
10214 /** @addtogroup loc_qmi_enums
10215     @{
10216   */
10217 typedef enum {
10218   QMILOCMOTIONMODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
10219   eQMI_LOC_MOTION_MODE_UNKNOWN_V02 = 0, /**<  Device movement is not known  */
10220   eQMI_LOC_MOTION_MODE_STATIONARY_V02 = 1, /**<  Device is not moving  */
10221   eQMI_LOC_MOTION_MODE_PEDESTRIAN_UNKNOWN_V02 = 200, /**<  Device movement is in Pedestrian mode; nothing else is known about the movement  */
10222   eQMI_LOC_MOTION_MODE_PEDESTRIAN_WALKING_V02 = 201, /**<  Device movement is in pedestrian Walking mode  */
10223   eQMI_LOC_MOTION_MODE_PEDESTRIAN_RUNNING_V02 = 202, /**<  Device movement is in pedestrian Running mode  */
10224   eQMI_LOC_MOTION_MODE_VEHICLE_UNKNOWN_V02 = 300, /**<  Device movement is in Vehicular mode; nothing else is known about the movement  */
10225   QMILOCMOTIONMODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
10226 }qmiLocMotionModeEnumT_v02;
10227 /**
10228     @}
10229   */
10230 
10231 /** @addtogroup loc_qmi_aggregates
10232     @{
10233   */
10234 typedef struct {
10235 
10236   qmiLocMotionStateEnumT_v02 motion_state;
10237   /**<   Current motion state of the user.
10238 
10239  Valid values: \n
10240       - eQMI_LOC_MOTION_STATE_UNKNOWN (0) --  Device state is not known
10241       - eQMI_LOC_MOTION_STATE_STATIONARY (1) --  Device state is Stationary
10242       - eQMI_LOC_MOTION_STATE_IN_MOTION (2) --  Device state is In Motion
10243  */
10244 
10245   qmiLocMotionModeEnumT_v02 motion_mode;
10246   /**<   Modes of user motion.
10247 
10248  Valid values: \n
10249       - eQMI_LOC_MOTION_MODE_UNKNOWN (0) --  Device movement is not known
10250       - eQMI_LOC_MOTION_MODE_STATIONARY (1) --  Device is not moving
10251       - eQMI_LOC_MOTION_MODE_PEDESTRIAN_UNKNOWN (200) --  Device movement is in Pedestrian mode; nothing else is known about the movement
10252       - eQMI_LOC_MOTION_MODE_PEDESTRIAN_WALKING (201) --  Device movement is in pedestrian Walking mode
10253       - eQMI_LOC_MOTION_MODE_PEDESTRIAN_RUNNING (202) --  Device movement is in pedestrian Running mode
10254       - eQMI_LOC_MOTION_MODE_VEHICLE_UNKNOWN (300) --  Device movement is in Vehicular mode; nothing else is known about the movement
10255  */
10256 
10257   float probability_of_state;
10258   /**<   Probability that the device is actually undergoing the motion state
10259        specified by the combination of the values of motion_state, motion_mode,
10260        and motion_sub_mode. \vspace{0.1in}
10261 
10262        This value is a floating point number in the range of 0 to 100, in
10263        units of percent probability. Any value greater than 99.9999 is
10264        applied as 99.9999. \vspace{0.1in}
10265 
10266        It is recommended that if a particular combination of motion_state and
10267        motion_mode cannot be determined with more than 50 percent confidence,
10268        that a more general statement of user motion be made.
10269        For example, if the mode of In-Motion + Pedestrian-Running can only be
10270        determined with 50 percent probability, and the simpler statement of In-Motion
10271        can be determined with 90 percent probability, it is recommended that this field
10272        be used to simply state In-Motion with 90 percent probability. \vspace{0.1in}
10273 
10274        If the motion_state is not known, the value in this field is not used.
10275   */
10276 
10277   uint16_t age;
10278   /**<   Age of the motion data in milliseconds at the time of injection.
10279   */
10280 
10281   uint16_t timeout;
10282   /**<   If the age of the motion data input exceeds the timeout value, the data
10283        will no longer be used. The timeout value is in units of milliseconds.
10284        Values in the range of 0 to 10000 are accepted. If 65535 is provided,
10285        the motion data input is applied until the next input is
10286        received. \n
10287 
10288        If the determination of motion data is an instantaneous observation
10289        and no notice is guaranteed to be given via the QMI on a change in the
10290        state of the motion data, it is recommended that this field be set to 0. \vspace{0.1in}
10291 
10292        If the determination of motion data is continuously monitored
10293        external to the QMI and an update is always applied to the QMI upon any
10294        change in state, a value of 65535 is used for this field.
10295        Note that in this case, if a certain mode is set and is not later
10296        unset (e.g., by sending in the request message with a user motion
10297        state of Unknown), the value is applied indefinitely.
10298   */
10299 }qmiLocMotionDataStructT_v02;  /* Type */
10300 /**
10301     @}
10302   */
10303 
10304 /** @addtogroup loc_qmi_messages
10305     @{
10306   */
10307 /** Request Message; Injects motion data for MSM GPS service use. */
10308 typedef struct {
10309 
10310   /* Mandatory */
10311   /*  Motion Data */
10312   qmiLocMotionDataStructT_v02 motion_data;
10313 }qmiLocInjectMotionDataReqMsgT_v02;  /* Message */
10314 /**
10315     @}
10316   */
10317 
10318 /** @addtogroup loc_qmi_messages
10319     @{
10320   */
10321 /** Indication Message; Injects motion data for MSM GPS service use. */
10322 typedef struct {
10323 
10324   /* Mandatory */
10325   /*  Inject Motion Data Request Status */
10326   qmiLocStatusEnumT_v02 status;
10327   /**<   Status of the Inject Motion Data request.
10328 
10329  Valid values: \n
10330       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
10331       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
10332       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
10333       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
10334       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
10335       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
10336       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
10337       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
10338       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
10339       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
10340       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
10341  */
10342 }qmiLocInjectMotionDataIndMsgT_v02;  /* Message */
10343 /**
10344     @}
10345   */
10346 
10347 /** @addtogroup loc_qmi_messages
10348     @{
10349   */
10350 /** Request Message; Used by the control point to retrieve the list of network
10351                     initiated Geofence IDs. */
10352 typedef struct {
10353 
10354   /* Mandatory */
10355   /*  Transaction ID */
10356   uint32_t transactionId;
10357   /**<   Identifies the transaction. The same transaction ID
10358        will be returned in the Get NI Geofence ID List indication. */
10359 }qmiLocGetNiGeofenceIdListReqMsgT_v02;  /* Message */
10360 /**
10361     @}
10362   */
10363 
10364 /** @addtogroup loc_qmi_messages
10365     @{
10366   */
10367 /** Indication Message; Used by the control point to retrieve the list of network
10368                     initiated Geofence IDs. */
10369 typedef struct {
10370 
10371   /* Mandatory */
10372   /*  Get NI Geofence ID List Status */
10373   qmiLocStatusEnumT_v02 status;
10374   /**<   Status of the Get NI Geofence ID List request.
10375 
10376  Valid values: \n
10377       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
10378       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
10379       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
10380       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
10381       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
10382       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
10383       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
10384       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
10385       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
10386       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
10387       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
10388 
10389   /* Optional */
10390   /*  Transaction ID */
10391   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
10392   uint32_t transactionId;
10393   /**<   Transaction ID that was specified in the Get NI
10394        Geofence ID List request. */
10395 
10396   /* Optional */
10397   /*  NI Geofence ID List */
10398   uint8_t niGeofenceIdList_valid;  /**< Must be set to true if niGeofenceIdList is being passed */
10399   uint32_t niGeofenceIdList_len;  /**< Must be set to # of elements in niGeofenceIdList */
10400   uint32_t niGeofenceIdList[QMI_LOC_MAX_NI_GEOFENCE_ID_LIST_LENGTH_V02];
10401   /**<   List containing the NI Geofence IDs.
10402        - Type: Array of unsigned 32-bit integers \n
10403        - Maximum NI Geofence ID List length: 16 */
10404 }qmiLocGetNiGeofenceIdListIndMsgT_v02;  /* Message */
10405 /**
10406     @}
10407   */
10408 
10409 /** @addtogroup loc_qmi_aggregates
10410     @{
10411   */
10412 typedef struct {
10413 
10414   uint32_t MCC;
10415   /**<   GSM mobile country code. Refer to ITU-T E.212 \hyperref[ITU-T E.212]{ITU-T E.212}. */
10416 
10417   uint32_t MNC;
10418   /**<   GSM mobile network code. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
10419 
10420   uint32_t LAC;
10421   /**<   GSM location area code. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
10422 
10423   uint32_t CID;
10424   /**<   GSM cell identification. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
10425 }qmiLocGSMCellIdStructT_v02;  /* Type */
10426 /**
10427     @}
10428   */
10429 
10430 /** @addtogroup loc_qmi_messages
10431     @{
10432   */
10433 /** Request Message; Injects GSM cell information into the location
10434                     engine. */
10435 typedef struct {
10436 
10437   /* Mandatory */
10438   /*  GSM Cell ID */
10439   qmiLocGSMCellIdStructT_v02 gsmCellId;
10440   /**<   \vspace{0.06in} \n Identifies the GSM cell on which the device is currently camped. */
10441 
10442   /* Mandatory */
10443   /*  Roaming Status */
10444   uint8_t roamingStatus;
10445   /**<   Indicates whether the device is roaming.
10446        \begin{itemize1}
10447        \item    0x01 (TRUE)  -- Device is roaming
10448        \item    0x00 (FALSE) -- Device is not roaming
10449        \vspace{-0.18in} \end{itemize1}*/
10450 
10451   /* Optional */
10452   /*  Timing Advance */
10453   uint8_t timingAdvance_valid;  /**< Must be set to true if timingAdvance is being passed */
10454   uint32_t timingAdvance;
10455   /**<   Round trip delay between the MS and the BS, in units of 3.69 microseconds.
10456        Refer to 3GPP \hyperref[TS 05.10]{TS 05.10} and \hyperref[TS 45.010]{TS 45.010}. */
10457 }qmiLocInjectGSMCellInfoReqMsgT_v02;  /* Message */
10458 /**
10459     @}
10460   */
10461 
10462 /** @addtogroup loc_qmi_messages
10463     @{
10464   */
10465 /** Indication Message; Injects GSM cell information into the location
10466                     engine. */
10467 typedef struct {
10468 
10469   /* Mandatory */
10470   /*  Inject GSM Cell Info Status */
10471   qmiLocStatusEnumT_v02 status;
10472   /**<   Status of the Inject GSM Cell Info request.
10473 
10474  Valid values: \n
10475       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
10476       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
10477       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
10478       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
10479       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
10480       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
10481       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
10482       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
10483       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
10484       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
10485       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
10486 }qmiLocInjectGSMCellInfoIndMsgT_v02;  /* Message */
10487 /**
10488     @}
10489   */
10490 
10491 /** @addtogroup loc_qmi_enums
10492     @{
10493   */
10494 typedef enum {
10495   QMILOCROAMINGSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
10496   eQMI_LOC_PHONE_NOT_ROAMING_V02 = 1, /**<  Modem is camped on a home network  */
10497   eQMI_LOC_PHONE_ROAMING_V02 = 2, /**<  Modem is camped on a roaming network  */
10498   QMILOCROAMINGSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
10499 }qmiLocRoamingStatusEnumT_v02;
10500 /**
10501     @}
10502   */
10503 
10504 /** @addtogroup loc_qmi_aggregates
10505     @{
10506   */
10507 typedef struct {
10508 
10509   uint32_t mcc;
10510   /**<   WCDMA mobile country code. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
10511 
10512   uint32_t mnc;
10513   /**<   WCDMA mobile network code. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
10514 
10515   uint32_t cid;
10516   /**<   WCDMA cell identity. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
10517 }qmiLocWCDMACellIdStructT_v02;  /* Type */
10518 /**
10519     @}
10520   */
10521 
10522 /** @addtogroup loc_qmi_messages
10523     @{
10524   */
10525 /** Request Message; Injects WCDMA cell information into the location
10526                     engine. */
10527 typedef struct {
10528 
10529   /* Mandatory */
10530   /*  WCDMA Cell ID */
10531   qmiLocWCDMACellIdStructT_v02 wcdmaCellId;
10532   /**<   \n Identifies the WCDMA cell on which the device is currently camped. */
10533 
10534   /* Mandatory */
10535   /*  Roaming Status */
10536   qmiLocRoamingStatusEnumT_v02 roamingStatus;
10537   /**<   Indicates whether the device is roaming.
10538 
10539  Valid values: \n
10540       - eQMI_LOC_PHONE_NOT_ROAMING (1) --  Modem is camped on a home network
10541       - eQMI_LOC_PHONE_ROAMING (2) --  Modem is camped on a roaming network
10542  */
10543 
10544   /* Optional */
10545   /*  Cell Frequency */
10546   uint8_t freq_valid;  /**< Must be set to true if freq is being passed */
10547   uint32_t freq;
10548   /**<   Frequency information of the serving cell. \n
10549        Valid range: 0 to 16383 \n
10550        Refer to 3GPP \hyperref[TS 25.331]{TS 25.331}. */
10551 
10552   /* Optional */
10553   /*  Primary Scrambling Code */
10554   uint8_t psc_valid;  /**< Must be set to true if psc is being passed */
10555   uint32_t psc;
10556   /**<   Primary scrambling code of the serving cell. \n
10557        Valid range: 0 to 511 \n
10558        Refer to 3GPP \hyperref[TS 25.331]{TS 25.331}. */
10559 }qmiLocInjectWCDMACellInfoReqMsgT_v02;  /* Message */
10560 /**
10561     @}
10562   */
10563 
10564 /** @addtogroup loc_qmi_messages
10565     @{
10566   */
10567 /** Indication Message; Injects WCDMA cell information into the location
10568                     engine. */
10569 typedef struct {
10570 
10571   /* Mandatory */
10572   /*  Inject WCDMA Cell Info Status */
10573   qmiLocStatusEnumT_v02 status;
10574   /**<   Status of the Inject WCDMA Cell Info request.
10575 
10576  Valid values: \n
10577       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
10578       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
10579       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
10580       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
10581       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
10582       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
10583       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
10584       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
10585       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
10586       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
10587       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
10588 }qmiLocInjectWCDMACellInfoIndMsgT_v02;  /* Message */
10589 /**
10590     @}
10591   */
10592 
10593 /** @addtogroup loc_qmi_aggregates
10594     @{
10595   */
10596 typedef struct {
10597 
10598   uint32_t mcc;
10599   /**<   TDSCDMA mobile country code. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
10600 
10601   uint32_t mnc;
10602   /**<   TDSCDMA mobile network code. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
10603 
10604   uint32_t cid;
10605   /**<   TDSCDMA cell identity. Refer to 3GPP \hyperref[TS 25.331]{TS 25.331}. */
10606 
10607   uint32_t lac;
10608   /**<   TDSCDMA location area code. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}. */
10609 }qmiLocTDSCDMACellIdStructT_v02;  /* Type */
10610 /**
10611     @}
10612   */
10613 
10614 /** @addtogroup loc_qmi_messages
10615     @{
10616   */
10617 /** Request Message; Injects TDSCDMA cell information into the location
10618                     engine. */
10619 typedef struct {
10620 
10621   /* Mandatory */
10622   /*  TDSCDMA Cell ID */
10623   qmiLocTDSCDMACellIdStructT_v02 tdscdmaCellId;
10624   /**<   \n Identifies the TDSCDMA cell on which the device is currently camped. */
10625 
10626   /* Mandatory */
10627   /*  Roaming Status */
10628   qmiLocRoamingStatusEnumT_v02 roamingStatus;
10629   /**<   Indicates whether the device is roaming.
10630 
10631  Valid values: \n
10632       - eQMI_LOC_PHONE_NOT_ROAMING (1) --  Modem is camped on a home network
10633       - eQMI_LOC_PHONE_ROAMING (2) --  Modem is camped on a roaming network
10634  */
10635 
10636   /* Optional */
10637   /*  Cell Frequency */
10638   uint8_t freq_valid;  /**< Must be set to true if freq is being passed */
10639   uint32_t freq;
10640   /**<   Frequency information of the serving cell. \n
10641        Valid range: 0 to 16383 \n
10642        Refer to 3GPP \hyperref[TS 25.331]{TS 25.331}. */
10643 }qmiLocInjectTDSCDMACellInfoReqMsgT_v02;  /* Message */
10644 /**
10645     @}
10646   */
10647 
10648 /** @addtogroup loc_qmi_messages
10649     @{
10650   */
10651 /** Indication Message; Injects TDSCDMA cell information into the location
10652                     engine. */
10653 typedef struct {
10654 
10655   /* Mandatory */
10656   /*  Inject TDSCDMA Cell Info Status */
10657   qmiLocStatusEnumT_v02 status;
10658   /**<   Status of the Inject TDSCDMA Cell Info request.
10659 
10660  Valid values: \n
10661       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
10662       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
10663       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
10664       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
10665       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
10666       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
10667       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
10668       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
10669       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
10670       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
10671       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
10672 }qmiLocInjectTDSCDMACellInfoIndMsgT_v02;  /* Message */
10673 /**
10674     @}
10675   */
10676 
10677 /** @addtogroup loc_qmi_messages
10678     @{
10679   */
10680 /** Request Message; Injects the phone's subscriber ID into the location engine. */
10681 typedef struct {
10682 
10683   /* Optional */
10684   /*  Preferred IMSI */
10685   uint8_t preferredIMSI_valid;  /**< Must be set to true if preferredIMSI is being passed */
10686   uint64_t preferredIMSI;
10687   /**<   IMSI number of the preferred RAT. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}.*/
10688 
10689   /* Optional */
10690   /*  Preferred MSISDN */
10691   uint8_t preferredMSISDN_valid;  /**< Must be set to true if preferredMSISDN is being passed */
10692   uint64_t preferredMSISDN;
10693   /**<   MSISDN number of the preferred RAT. Refer to \hyperref[ITU-T E.212]{ITU-T E.212}.*/
10694 }qmiLocInjectSubscriberIDReqMsgT_v02;  /* Message */
10695 /**
10696     @}
10697   */
10698 
10699 /** @addtogroup loc_qmi_messages
10700     @{
10701   */
10702 /** Indication Message; Injects the phone's subscriber ID into the location engine. */
10703 typedef struct {
10704 
10705   /* Mandatory */
10706   /*  Inject Subscriber ID Status */
10707   qmiLocStatusEnumT_v02 status;
10708   /**<   Status of the Inject Subscriber ID request.
10709 
10710  Valid values: \n
10711       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
10712       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
10713       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
10714       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
10715       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
10716       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
10717       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
10718       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
10719       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
10720       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
10721       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
10722 }qmiLocInjectSubscriberIDIndMsgT_v02;  /* Message */
10723 /**
10724     @}
10725   */
10726 
10727 /** @addtogroup loc_qmi_enums
10728     @{
10729   */
10730 typedef enum {
10731   QMILOCINJECTEDNETWORKINITIATEDMESSAGETYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
10732   eQMI_LOC_INJECTED_NETWORK_INITIATED_MESSAGE_TYPE_SUPL_V02 = 0, /**<  SUPL network-initiated message is being injected.  */
10733   QMILOCINJECTEDNETWORKINITIATEDMESSAGETYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
10734 }qmiLocInjectedNetworkInitiatedMessageTypeEnumT_v02;
10735 /**
10736     @}
10737   */
10738 
10739 /** @addtogroup loc_qmi_messages
10740     @{
10741   */
10742 /** Request Message; Injects a network-initiated message into the location
10743                     engine. */
10744 typedef struct {
10745 
10746   /* Mandatory */
10747   /*  Injected Network Initiated Message Type */
10748   qmiLocInjectedNetworkInitiatedMessageTypeEnumT_v02 injectedNIMessageType;
10749   /**<   Type of the network-initiated message being injected.
10750 
10751  Valid values: \n
10752       - eQMI_LOC_INJECTED_NETWORK_INITIATED_MESSAGE_TYPE_SUPL (0) --  SUPL network-initiated message is being injected.  */
10753 
10754   /* Mandatory */
10755   /*  Injected Network Initiated Message */
10756   uint32_t injectedNIMessage_len;  /**< Must be set to # of elements in injectedNIMessage */
10757   uint8_t injectedNIMessage[QMI_LOC_MAX_INJECTED_NETWORK_INITIATED_MESSAGE_LENGTH_V02];
10758   /**<   Network-initiated message body.
10759        If the inject NI message type is TYPE_SUPL, the message contains
10760        a SUPL INIT message as defined in OMA-TS-ULP-V2_\hyperref[0-20110527-C]{0-20110527-C}. */
10761 }qmiLocInjectNetworkInitiatedMessageReqMsgT_v02;  /* Message */
10762 /**
10763     @}
10764   */
10765 
10766 /** @addtogroup loc_qmi_messages
10767     @{
10768   */
10769 /** Indication Message; Injects a network-initiated message into the location
10770                     engine. */
10771 typedef struct {
10772 
10773   /* Mandatory */
10774   /*  Inject Network Initiated Message Status */
10775   qmiLocStatusEnumT_v02 status;
10776   /**<   Status of the Inject Network Initiated Message request.
10777 
10778  Valid values: \n
10779       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
10780       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
10781       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
10782       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
10783       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
10784       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
10785       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
10786       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
10787       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
10788       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
10789       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
10790 }qmiLocInjectNetworkInitiatedMessageIndMsgT_v02;  /* Message */
10791 /**
10792     @}
10793   */
10794 
10795 /** @addtogroup loc_qmi_messages
10796     @{
10797   */
10798 /** Request Message; Notifies the location engine that the device is out of
10799                     service. */
10800 typedef struct {
10801   /* This element is a placeholder to prevent the declaration of
10802      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
10803   char __placeholder;
10804 }qmiLocWWANOutOfServiceNotificationReqMsgT_v02;
10805 
10806   /* Message */
10807 /**
10808     @}
10809   */
10810 
10811 /** @addtogroup loc_qmi_messages
10812     @{
10813   */
10814 /** Indication Message; Notifies the location engine that the device is out of
10815                     service. */
10816 typedef struct {
10817 
10818   /* Mandatory */
10819   /*  Notify WWAN Out of Service Status */
10820   qmiLocStatusEnumT_v02 status;
10821   /**<   Status of the Notify WWAN Out of Service request.
10822 
10823  Valid values: \n
10824       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
10825       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
10826       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
10827       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
10828       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
10829       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
10830       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
10831       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
10832       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
10833       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
10834       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
10835  */
10836 }qmiLocWWANOutOfServiceNotificationIndMsgT_v02;  /* Message */
10837 /**
10838     @}
10839   */
10840 
10841 /** @addtogroup loc_qmi_messages
10842     @{
10843   */
10844 /** Request Message; Used by the control point to inject pedometer data
10845                     into the location engine. */
10846 typedef struct {
10847 
10848   /* Mandatory */
10849   /*  Time Source */
10850   qmiLocSensorDataTimeSourceEnumT_v02 timeSource;
10851   /**<   Time source for the pedometer. The location service uses
10852  this field to identify the time reference used in the
10853  pedometer data time stamp.
10854 
10855  Valid values: \n
10856       - eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED (0) --  Sensor time source is unspecified
10857       - eQMI_LOC_SENSOR_TIME_SOURCE_COMMON (1) --  Time source is common between the sensors and
10858        the location engine
10859  */
10860 
10861   /* Mandatory */
10862   /*  Pedometer Report Timestamp */
10863   uint32_t timestamp;
10864   /**<   Time stamp of the last step event in this report, that is, the time stamp
10865        of the step event that caused this report to be generated.
10866        The time stamp is in the time reference scale that is
10867        used by the pedometer time source. \n
10868        - Units: Milliseconds */
10869 
10870   /* Mandatory */
10871   /*  Time Interval */
10872   uint32_t timeInterval;
10873   /**<   Time interval during which the step count was calculated. Subtracting
10874        timeInterval from the timestamp field yields the time when
10875        the step detection for the first step in this report started. \n
10876        - Units: Milliseconds */
10877 
10878   /* Mandatory */
10879   /*  Step Count */
10880   uint32_t stepCount;
10881   /**<   Number of steps counted during the time interval. */
10882 
10883   /* Optional */
10884   /*  Step Confidence */
10885   uint8_t stepConfidence_valid;  /**< Must be set to true if stepConfidence is being passed */
10886   uint8_t stepConfidence;
10887   /**<   Confidence associated with the step. This field is only applicable
10888        for a single step report, that is, if the step count is one. \n
10889        - Range: 0 to 100 \n
10890        \textbf{Note:} The report is ignored if confidence is 0. */
10891 
10892   /* Optional */
10893   /*  Step Count Uncertainty */
10894   uint8_t stepCountUncertainty_valid;  /**< Must be set to true if stepCountUncertainty is being passed */
10895   float stepCountUncertainty;
10896   /**<   Uncertainty (in steps) associated with the step count. */
10897 
10898   /* Optional */
10899   /*  Step Rate */
10900   uint8_t stepRate_valid;  /**< Must be set to true if stepRate is being passed */
10901   float stepRate;
10902   /**<   Current estimate for the rate of steps per second. \n
10903        - Units: steps/second \n
10904        - Range: >= 0.0 */
10905 }qmiLocPedometerReportReqMsgT_v02;  /* Message */
10906 /**
10907     @}
10908   */
10909 
10910 /** @addtogroup loc_qmi_messages
10911     @{
10912   */
10913 /** Indication Message; Used by the control point to inject pedometer data
10914                     into the location engine. */
10915 typedef struct {
10916 
10917   /* Mandatory */
10918   /*  Status of Pedometer Report Request */
10919   qmiLocStatusEnumT_v02 status;
10920   /**<   Status of the Pedometer Report request.
10921 
10922  Valid values: \n
10923       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
10924       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
10925       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
10926       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
10927       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
10928       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
10929       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
10930       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
10931       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
10932       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
10933       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
10934  */
10935 }qmiLocPedometerReportIndMsgT_v02;  /* Message */
10936 /**
10937     @}
10938   */
10939 
10940 /** @addtogroup loc_qmi_messages
10941     @{
10942   */
10943 /** Request Message; Used by the control point to get the batching size. */
10944 typedef struct {
10945 
10946   /* Mandatory */
10947   /*  Transaction ID */
10948   uint32_t transactionId;
10949   /**<   Identifies the transaction. The transaction ID is returned in the Get
10950        Batch Size indication. */
10951 
10952   /* Mandatory */
10953   /*  Requested Batch Size */
10954   uint32_t batchSize;
10955   /**<   Request the service with the number of location fixes to be batched. */
10956 }qmiLocGetBatchSizeReqMsgT_v02;  /* Message */
10957 /**
10958     @}
10959   */
10960 
10961 /** @addtogroup loc_qmi_messages
10962     @{
10963   */
10964 /** Indication Message; Used by the control point to get the batching size. */
10965 typedef struct {
10966 
10967   /* Mandatory */
10968   /*  Get Batch Size Status */
10969   qmiLocStatusEnumT_v02 status;
10970   /**<   Status of the Get Batch Size request.
10971 
10972  Valid values: \n
10973       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
10974       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
10975       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
10976       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
10977       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
10978       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
10979       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
10980       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
10981       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
10982       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
10983       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
10984  */
10985 
10986   /* Mandatory */
10987   /*  Transaction ID */
10988   uint32_t transactionId;
10989   /**<   Transaction ID that was specified in the Get Batch
10990        Size request.
10991        */
10992 
10993   /* Mandatory */
10994   /*  Batch Size Supported */
10995   uint32_t batchSize;
10996   /**<   Number of location fixes that the service is able to batch.
10997        The batch size value is returned as 0 in the case of a failure status.
10998   */
10999 }qmiLocGetBatchSizeIndMsgT_v02;  /* Message */
11000 /**
11001     @}
11002   */
11003 
11004 /** @addtogroup loc_qmi_messages
11005     @{
11006   */
11007 /** Request Message; Used by the control point to initiate a batching session. */
11008 typedef struct {
11009 
11010   /* Optional */
11011   /*  Minimum Interval Between Position Reports */
11012   uint8_t minInterval_valid;  /**< Must be set to true if minInterval is being passed */
11013   uint32_t minInterval;
11014   /**<   Minimum time interval, specified by the control point, that must elapse between
11015        position reports. \n
11016        - Units: milliseconds \n
11017        - Default: 60000 ms
11018   */
11019 
11020   /* Optional */
11021   /*  Horizontal Accuracy Level */
11022   uint8_t horizontalAccuracyLevel_valid;  /**< Must be set to true if horizontalAccuracyLevel is being passed */
11023   qmiLocAccuracyLevelEnumT_v02 horizontalAccuracyLevel;
11024   /**<   Specifies the horizontal accuracy level required by the control point.
11025  If not specified, accuracy defaults to LOW.
11026 
11027  Valid values: \n
11028       - eQMI_LOC_ACCURACY_LOW (1) --  Low accuracy
11029       - eQMI_LOC_ACCURACY_MED (2) --  Medium accuracy
11030       - eQMI_LOC_ACCURACY_HIGH (3) --  High accuracy
11031  */
11032 
11033   /* Optional */
11034   /*  Fix Session Timeout Period */
11035   uint8_t fixSessionTimeout_valid;  /**< Must be set to true if fixSessionTimeout is being passed */
11036   uint32_t fixSessionTimeout;
11037   /**<   Configures the fix session timeout duration. \n
11038        - Units: Milliseconds \n
11039        - Default: 20,000 ms
11040   */
11041 
11042   /* Optional */
11043   /*  Minimum Distance */
11044   uint8_t minDistance_valid;  /**< Must be set to true if minDistance is being passed */
11045   uint32_t minDistance;
11046   /**<   Specifies the minimum distance that should be traversed before a
11047        position should be batched.
11048        If no distance is specified, the positions are batched after
11049        the minInterval period expires. If both minInterval and minDistance are
11050        specified, the position are batched only after minInterval has
11051        expired AND minDistance has been traversed. \n
11052        - Units: Meters
11053   */
11054 
11055   /* Optional */
11056   /*  Batch All Positions */
11057   uint8_t batchAllPos_valid;  /**< Must be set to true if batchAllPos is being passed */
11058   uint8_t batchAllPos;
11059   /**<   Values: \n
11060        - TRUE -- All positions that are available must be batched. For example,
11061               if any other type of positioning is active (such as 1 Hz tracking), all
11062               positions computed for that use case are also batched. This may
11063               result in the BATCH_FULL indication getting generated earlier. \n
11064        - FALSE -- Only positions that meet the time and/or distance criteria are batched
11065                   (default).
11066   */
11067 
11068   /* Optional */
11069   /*  Request ID */
11070   uint8_t requestId_valid;  /**< Must be set to true if requestId is being passed */
11071   uint32_t requestId;
11072   /**<   Identifies the request. A batching client can start multiple batching
11073        requests with different batching parameters,
11074        however, positions corresponding to all requests from the same client are
11075        batched in the same buffer. A request ID value of 0 is considered invalid. \n
11076        Valid Values 0x01 - 0xFFFFFFFF
11077   */
11078 }qmiLocStartBatchingReqMsgT_v02;  /* Message */
11079 /**
11080     @}
11081   */
11082 
11083 /** @addtogroup loc_qmi_messages
11084     @{
11085   */
11086 /** Indication Message; Used by the control point to initiate a batching session. */
11087 typedef struct {
11088 
11089   /* Mandatory */
11090   /*  Start Batching Status */
11091   qmiLocStatusEnumT_v02 status;
11092   /**<   Status of the Start Batching request.
11093 
11094  Valid values: \n
11095       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
11096       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
11097       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
11098       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
11099       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
11100       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
11101       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
11102       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
11103       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
11104       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
11105       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
11106  */
11107 
11108   /* Optional */
11109   /*  Request ID */
11110   uint8_t requestId_valid;  /**< Must be set to true if requestId is being passed */
11111   uint32_t requestId;
11112   /**<   Identifies the request. A batching client can start multiple batching
11113        requests with different batching parameters, however, positions
11114        corresponding to all requests from the same client are
11115        batched in the same buffer. \n
11116        Valid Values 0x01 - 0xFFFFFFFF
11117   */
11118 }qmiLocStartBatchingIndMsgT_v02;  /* Message */
11119 /**
11120     @}
11121   */
11122 
11123 /** @addtogroup loc_qmi_messages
11124     @{
11125   */
11126 /** Indication Message; Used to notify the control point that the batched buffer is full. */
11127 typedef struct {
11128 
11129   /* Mandatory */
11130   /*  Number of Entries in the Batch During Full Event */
11131   uint32_t batchCount;
11132   /**<   Number of entries in the batch during a full event.
11133   */
11134 }qmiLocEventBatchFullIndMsgT_v02;  /* Message */
11135 /**
11136     @}
11137   */
11138 
11139 typedef uint64_t qmiLocBatchedReportValidFieldsMaskT_v02;
11140 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_LATITUDE_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000001ull) /**<  Latitude field is valid for this fix  */
11141 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_LONGITUDE_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000002ull) /**<  Longitude field is valid for this fix  */
11142 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_HOR_CIR_UNC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000004ull) /**<  Horizontal circular uncertainty field is valid for this fix  */
11143 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_HOR_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000008ull) /**<  Horizontal speed field is valid for this fix  */
11144 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_UNC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000010ull) /**<  Speed uncertainty field is valid for this fix  */
11145 #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  */
11146 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_VER_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000040ull) /**<  Vertical speed field is valid for this fix  */
11147 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_HEADING_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000080ull) /**<  Heading field is valid for this fix  */
11148 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_HEADING_UNC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000100ull) /**<  Heading uncertainty field is valid for this fix  */
11149 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_TECH_MASK_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000200ull) /**<  Technology source mask field is valid for this fix  */
11150 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_TIMESTAMP_UTC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000400ull) /**<  UTC timestamp field is valid for this fix  */
11151 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_TIME_UNC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000800ull) /**<  Time uncertainty field is valid for this fix  */
11152 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_MAGNETIC_DEV_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00001000ull) /**<  Magnetic deviation field is valid for this fix  */
11153 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_VERT_UNC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00002000ull) /**<  Vertical uncertainty field is valid for this fix  */
11154 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_HOR_CONF_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00004000ull) /**<  Horizontal confidence field is valid for this fix  */
11155 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_TIMESTAMP_GPS_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00008000ull) /**<  GPS timestamp field is valid for this fix  */
11156 /** @addtogroup loc_qmi_aggregates
11157     @{
11158   */
11159 typedef struct {
11160 
11161   uint32_t fixId;
11162   /**<   Fix count for the session. The count starts at 0 and increments by one for
11163   each successive batched position report for a particular session. */
11164 
11165   qmiLocBatchedReportValidFieldsMaskT_v02 validFields;
11166   /**<   Mask of all valid fields for this fix.
11167  Valid bitmasks: \n
11168       - QMI_LOC_BATCHED_REPORT_MASK_VALID_LATITUDE (0x00000001) --  Latitude field is valid for this fix
11169       - QMI_LOC_BATCHED_REPORT_MASK_VALID_LONGITUDE (0x00000002) --  Longitude field is valid for this fix
11170       - QMI_LOC_BATCHED_REPORT_MASK_VALID_HOR_CIR_UNC (0x00000004) --  Horizontal circular uncertainty field is valid for this fix
11171       - QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_HOR (0x00000008) --  Horizontal speed field is valid for this fix
11172       - QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_UNC (0x00000010) --  Speed uncertainty field is valid for this fix
11173       - QMI_LOC_BATCHED_REPORT_MASK_VALID_ALT_WRT_ELP (0x00000020) --  Altitude with respect to ellipsoid field is valid for this fix
11174       - QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_VER (0x00000040) --  Vertical speed field is valid for this fix
11175       - QMI_LOC_BATCHED_REPORT_MASK_VALID_HEADING (0x00000080) --  Heading field is valid for this fix
11176       - QMI_LOC_BATCHED_REPORT_MASK_VALID_HEADING_UNC (0x00000100) --  Heading uncertainty field is valid for this fix
11177       - QMI_LOC_BATCHED_REPORT_MASK_VALID_TECH_MASK (0x00000200) --  Technology source mask field is valid for this fix
11178       - QMI_LOC_BATCHED_REPORT_MASK_VALID_TIMESTAMP_UTC (0x00000400) --  UTC timestamp field is valid for this fix
11179       - QMI_LOC_BATCHED_REPORT_MASK_VALID_TIME_UNC (0x00000800) --  Time uncertainty field is valid for this fix
11180       - QMI_LOC_BATCHED_REPORT_MASK_VALID_MAGNETIC_DEV (0x00001000) --  Magnetic deviation field is valid for this fix
11181       - QMI_LOC_BATCHED_REPORT_MASK_VALID_VERT_UNC (0x00002000) --  Vertical uncertainty field is valid for this fix
11182       - QMI_LOC_BATCHED_REPORT_MASK_VALID_HOR_CONF (0x00004000) --  Horizontal confidence field is valid for this fix
11183       - QMI_LOC_BATCHED_REPORT_MASK_VALID_TIMESTAMP_GPS (0x00008000) --  GPS timestamp field is valid for this fix
11184  */
11185 
11186   double latitude;
11187   /**<   Latitude (specified in WGS84 datum).
11188        \begin{itemize1}
11189        \item    Type: Floating point
11190        \item    Units: Degrees
11191        \item    Range: -90.0 to 90.0   \begin{itemize1}
11192          \item    Positive values indicate northern latitude
11193          \item    Negative values indicate southern latitude
11194        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
11195 
11196   double longitude;
11197   /**<   Longitude (specified in WGS84 datum).
11198        \begin{itemize1}
11199        \item    Type: Floating point
11200        \item    Units: Degrees
11201        \item    Range: -180.0 to 180.0   \begin{itemize1}
11202          \item    Positive values indicate eastern longitude
11203          \item    Negative values indicate western longitude
11204        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
11205 
11206   float horUncCircular;
11207   /**<   Horizontal position uncertainty (circular).\n
11208        - Units: Meters */
11209 
11210   float speedHorizontal;
11211   /**<   Horizontal speed.\n
11212        - Units: Meters/second */
11213 
11214   float speedUnc;
11215   /**<   3-D Speed uncertainty.\n
11216        - Units: Meters/second */
11217 
11218   float altitudeWrtEllipsoid;
11219   /**<   Altitude with respect to the WGS84 ellipsoid.\n
11220        - Units: Meters \n
11221        - Range: -500 to 15883 */
11222 
11223   float speedVertical;
11224   /**<   Vertical speed.\n
11225          - Units: Meters/second */
11226 
11227   float heading;
11228   /**<   Heading.\n
11229          - Units: Degrees \n
11230          - Range: 0 to 359.999  */
11231 
11232   float headingUnc;
11233   /**<   Heading uncertainty.\n
11234        - Units: Degrees \n
11235        - Range: 0 to 359.999 */
11236 
11237   qmiLocPosTechMaskT_v02 technologyMask;
11238   /**<   Technology used in computing this fix.
11239  Valid bitmasks: \n
11240       - QMI_LOC_POS_TECH_MASK_SATELLITE (0x00000001) --  Satellites were used to generate the fix
11241       - QMI_LOC_POS_TECH_MASK_CELLID (0x00000002) --  Cell towers were used to generate the fix
11242       - QMI_LOC_POS_TECH_MASK_WIFI (0x00000004) --  Wi-Fi access points were used to generate the fix
11243       - QMI_LOC_POS_TECH_MASK_SENSORS (0x00000008) --  Sensors were used to generate the fix
11244       - QMI_LOC_POS_TECH_MASK_REFERENCE_LOCATION (0x00000010) --  Reference Location was used to generate the fix
11245       - QMI_LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION (0x00000020) --  Coarse position injected into the location engine was used to
11246         generate the fix
11247       - QMI_LOC_POS_TECH_MASK_AFLT (0x00000040) --  AFLT was used to generate the fix
11248       - QMI_LOC_POS_TECH_MASK_HYBRID (0x00000080) --  GNSS and network-provided measurements were used to
11249         generate the fix
11250  */
11251 
11252   uint64_t timestampUtc;
11253   /**<   UTC timestamp. \n
11254        - Units: Milliseconds since Jan. 1, 1970 */
11255 
11256   float timeUnc;
11257   /**<   Time uncertainty. \n
11258        - Units: Milliseconds */
11259 
11260   float magneticDeviation;
11261   /**<   Difference between the bearing to true north and the bearing shown
11262       on a magnetic compass. The deviation is positive when the magnetic
11263       north is east of true north. */
11264 
11265   float vertUnc;
11266   /**<   Vertical uncertainty.\n
11267        - Units: Meters */
11268 
11269   uint8_t horConfidence;
11270   /**<   Horizontal confidence.
11271        - Units: Percent
11272        - Range: 0 to 99 */
11273 
11274   qmiLocGPSTimeStructT_v02 gpsTime;
11275   /**<   Number of weeks since Jan. 5, 1980, and milliseconds into the current week. */
11276 }qmiLocBatchedReportStructT_v02;  /* Type */
11277 /**
11278     @}
11279   */
11280 
11281 /** @addtogroup loc_qmi_messages
11282     @{
11283   */
11284 /** Indication Message; Used to notify the control point with the live batched
11285                     position report. */
11286 typedef struct {
11287 
11288   /* Mandatory */
11289   /*  Batched Position Report */
11290   qmiLocBatchedReportStructT_v02 liveBatchedReport;
11291   /**<   \n Live position report that is also batched. */
11292 }qmiLocEventLiveBatchedPositionReportIndMsgT_v02;  /* Message */
11293 /**
11294     @}
11295   */
11296 
11297 /** @addtogroup loc_qmi_messages
11298     @{
11299   */
11300 /** Request Message; Used by the control point to retrieve fixes from the batch. */
11301 typedef struct {
11302 
11303   /* Mandatory */
11304   /*  Number of Fix Entries to be Retrieved from the Batch */
11305   uint32_t numberOfEntries;
11306   /**<   Number of fix entries to be retrieved from the batch. \n
11307   Maximum limit -- QMI_LOC_READ_FROM_BATCH_MAX_SIZE.
11308   */
11309 
11310   /* Mandatory */
11311   /*  Transaction ID */
11312   uint32_t transactionId;
11313   /**<   Identifies the transaction. The transaction ID is returned in the Read
11314        from Batch indication. */
11315 }qmiLocReadFromBatchReqMsgT_v02;  /* Message */
11316 /**
11317     @}
11318   */
11319 
11320 /** @addtogroup loc_qmi_messages
11321     @{
11322   */
11323 /** Indication Message; Used by the control point to retrieve fixes from the batch. */
11324 typedef struct {
11325 
11326   /* Mandatory */
11327   /*  Read from Batch Status */
11328   qmiLocStatusEnumT_v02 status;
11329   /**<   Status of the Read from Batch request.
11330 
11331  Valid values: \n
11332       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
11333       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
11334       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
11335       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
11336       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
11337       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
11338       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
11339       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
11340       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
11341       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
11342       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
11343  */
11344 
11345   /* Mandatory */
11346   /*  Transaction ID */
11347   uint32_t transactionId;
11348   /**<   Transaction ID that was specified in the Read from Batch
11349        request.
11350        */
11351 
11352   /* Optional */
11353   /*  Number of Fix Entries Returned from the Batch */
11354   uint8_t numberOfEntries_valid;  /**< Must be set to true if numberOfEntries is being passed */
11355   uint32_t numberOfEntries;
11356   /**<   Number of fix entries returned from the batch. */
11357 
11358   /* Optional */
11359   /*  List of Batched Position Reports Returned */
11360   uint8_t batchedReportList_valid;  /**< Must be set to true if batchedReportList is being passed */
11361   uint32_t batchedReportList_len;  /**< Must be set to # of elements in batchedReportList */
11362   qmiLocBatchedReportStructT_v02 batchedReportList[QMI_LOC_READ_FROM_BATCH_MAX_SIZE_V02];
11363   /**<   \n List of fix reports returned from the batch. */
11364 }qmiLocReadFromBatchIndMsgT_v02;  /* Message */
11365 /**
11366     @}
11367   */
11368 
11369 /** @addtogroup loc_qmi_messages
11370     @{
11371   */
11372 /** Request Message; Used by the control point to stop an ongoing batching session. */
11373 typedef struct {
11374 
11375   /* Mandatory */
11376   /*  Transaction ID */
11377   uint32_t transactionId;
11378   /**<   Transaction ID of the request. */
11379 
11380   /* Optional */
11381   /*  Request ID */
11382   uint8_t requestId_valid;  /**< Must be set to true if requestId is being passed */
11383   uint32_t requestId;
11384   /**<   Identifies the batching request that must be stopped.
11385        A batching client can start multiple batching requests. \n
11386        Valid Values 0x01 - 0xFFFFFFFF
11387   */
11388 }qmiLocStopBatchingReqMsgT_v02;  /* Message */
11389 /**
11390     @}
11391   */
11392 
11393 /** @addtogroup loc_qmi_messages
11394     @{
11395   */
11396 /** Indication Message; Used by the control point to stop an ongoing batching session. */
11397 typedef struct {
11398 
11399   /* Mandatory */
11400   /*  Stop Batching Status */
11401   qmiLocStatusEnumT_v02 status;
11402   /**<   Status of the Stop Batching request.
11403 
11404  Valid values: \n
11405       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
11406       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
11407       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
11408       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
11409       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
11410       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
11411       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
11412       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
11413       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
11414       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
11415       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
11416  */
11417 
11418   /* Mandatory */
11419   /*  Transaction ID */
11420   uint32_t transactionId;
11421   /**<   Transaction ID that was specified in the Stop Batching request.
11422   */
11423 
11424   /* Optional */
11425   /*  Request ID */
11426   uint8_t requestId_valid;  /**< Must be set to true if requestId is being passed */
11427   uint32_t requestId;
11428   /**<   Identifies the batching request that was stopped.
11429        A batching client can start multiple batching requests. \n
11430        Valid Values 0x01 - 0xFFFFFFFF
11431   */
11432 }qmiLocStopBatchingIndMsgT_v02;  /* Message */
11433 /**
11434     @}
11435   */
11436 
11437 /** @addtogroup loc_qmi_messages
11438     @{
11439   */
11440 /** Request Message; Used by the control point to release the batching buffer. */
11441 typedef struct {
11442 
11443   /* Mandatory */
11444   /*  Transaction ID */
11445   uint32_t transactionId;
11446   /**<   Identifies the transaction. */
11447 }qmiLocReleaseBatchReqMsgT_v02;  /* Message */
11448 /**
11449     @}
11450   */
11451 
11452 /** @addtogroup loc_qmi_messages
11453     @{
11454   */
11455 /** Indication Message; Used by the control point to release the batching buffer. */
11456 typedef struct {
11457 
11458   /* Mandatory */
11459   /*  Release Batch Status */
11460   qmiLocStatusEnumT_v02 status;
11461   /**<   Status of the Release Batch request.
11462 
11463  Valid values: \n
11464       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
11465       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
11466       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
11467       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
11468       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
11469       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
11470       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
11471       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
11472       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
11473       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
11474       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
11475  */
11476 
11477   /* Mandatory */
11478   /*  Transaction ID */
11479   uint32_t transactionId;
11480   /**<   Transaction ID that was specified in the Release Batch request.
11481   */
11482 }qmiLocReleaseBatchIndMsgT_v02;  /* Message */
11483 /**
11484     @}
11485   */
11486 
11487 /** @addtogroup loc_qmi_messages
11488     @{
11489   */
11490 /** Indication Message; Requests the control point to inject Wi-Fi AP data. */
11491 typedef struct {
11492   /* This element is a placeholder to prevent the declaration of
11493      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
11494   char __placeholder;
11495 }qmiLocEventInjectWifiApDataReqIndMsgT_v02;
11496 
11497   /* Message */
11498 /**
11499     @}
11500   */
11501 
11502 /** @addtogroup loc_qmi_enums
11503     @{
11504   */
11505 typedef enum {
11506   QMILOCWIFIAPDATADEVICETYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
11507   eQMI_LOC_WIFI_AP_DATA_DEVICE_TYPE_WLAN_802_11_A_V02 = 0, /**<  Wi-Fi AP device is 802.11a.  */
11508   eQMI_LOC_WIFI_AP_DATA_DEVICE_TYPE_WLAN_802_11_B_V02 = 1, /**<  Wi-Fi AP device is 802.11b.  */
11509   eQMI_LOC_WIFI_AP_DATA_DEVICE_TYPE_WLAN_802_11_G_V02 = 2, /**<  Wi-Fi AP device is 802.11g.  */
11510   QMILOCWIFIAPDATADEVICETYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
11511 }qmiLocWifiApDataDeviceTypeEnumT_v02;
11512 /**
11513     @}
11514   */
11515 
11516 /** @addtogroup loc_qmi_enums
11517     @{
11518   */
11519 typedef enum {
11520   QMILOCWIFIAPDATARTDUNITTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
11521   eQMI_LOC_WIFI_AP_DATA_RTD_UNIT_MICROSEC_V02 = 0, /**<  Wi-Fi AP data Round-trip Delay (RTD) is in microseconds.  */
11522   eQMI_LOC_WIFI_AP_DATA_RTD_UNIT_HUNDREDS_OF_NANOSEC_V02 = 1, /**<  Wi-Fi AP data RTD is in hundreds of nanoseconds.  */
11523   eQMI_LOC_WIFI_AP_DATA_RTD_UNIT_TENS_OF_NANOSEC_V02 = 2, /**<  Wi-Fi AP data RTD is in tens of nanoseconds.  */
11524   eQMI_LOC_WIFI_AP_DATA_RTD_UNIT_NANOSEC_V02 = 3, /**<  Wi-Fi AP data RTD is in nanoseconds.  */
11525   eQMI_LOC_WIFI_AP_DATA_RTD_UNIT_TENTH_OF_NANOSEC_V02 = 4, /**<  Wi-Fi AP data RTD is in tenths of nanoseconds.  */
11526   QMILOCWIFIAPDATARTDUNITTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
11527 }qmiLocWifiApDataRtdUnitTypeEnumT_v02;
11528 /**
11529     @}
11530   */
11531 
11532 typedef uint32_t qmiLocWifiApDataMaskT_v02;
11533 #define QMI_LOC_WIFI_APDATA_MASK_AP_TRANSMIT_POWER_V02 ((qmiLocWifiApDataMaskT_v02)0x00000001) /**<  AP transmit power is valid  */
11534 #define QMI_LOC_WIFI_APDATA_MASK_AP_ANTENNA_GAIN_V02 ((qmiLocWifiApDataMaskT_v02)0x00000002) /**<  AP antenna gain is valid  */
11535 #define QMI_LOC_WIFI_APDATA_MASK_AP_SNR_V02 ((qmiLocWifiApDataMaskT_v02)0x00000004) /**<  AP signal-to-noise ratio is valid  */
11536 #define QMI_LOC_WIFI_APDATA_MASK_AP_DEVICE_TYPE_V02 ((qmiLocWifiApDataMaskT_v02)0x00000008) /**<  AP device type is valid  */
11537 #define QMI_LOC_WIFI_APDATA_MASK_AP_RSSI_V02 ((qmiLocWifiApDataMaskT_v02)0x00000010) /**<  AP RSSI is valid  */
11538 #define QMI_LOC_WIFI_APDATA_MASK_AP_CHANNEL_V02 ((qmiLocWifiApDataMaskT_v02)0x00000020) /**<  AP channel is valid    */
11539 #define QMI_LOC_WIFI_APDATA_MASK_AP_ROUNDTRIP_DELAY_V02 ((qmiLocWifiApDataMaskT_v02)0x00000040) /**<  AP roundtrip delay is valid    */
11540 #define QMI_LOC_WIFI_APDATA_MASK_AP_ROUNDTRIP_DELAY_ACCURACY_V02 ((qmiLocWifiApDataMaskT_v02)0x00000080) /**<  AP roundtrip delay accuracy is valid   */
11541 #define QMI_LOC_WIFI_APDATA_MASK_MOBILE_SNR_V02 ((qmiLocWifiApDataMaskT_v02)0x00000100) /**<  Mobile signal-to-noise ratio is valid   */
11542 #define QMI_LOC_WIFI_APDATA_MASK_MOBILE_RSSI_V02 ((qmiLocWifiApDataMaskT_v02)0x00000200) /**<  Mobile RSSI is valid  */
11543 /** @addtogroup loc_qmi_aggregates
11544     @{
11545   */
11546 typedef struct {
11547 
11548   qmiLocWifiApDataMaskT_v02 wifiApDataMask;
11549   /**<   Specifies which Wi-Fi AP scan information types are being used.
11550 
11551  Valid values: \n
11552       - QMI_LOC_WIFI_APDATA_MASK_AP_TRANSMIT_POWER (0x00000001) --  AP transmit power is valid
11553       - QMI_LOC_WIFI_APDATA_MASK_AP_ANTENNA_GAIN (0x00000002) --  AP antenna gain is valid
11554       - QMI_LOC_WIFI_APDATA_MASK_AP_SNR (0x00000004) --  AP signal-to-noise ratio is valid
11555       - QMI_LOC_WIFI_APDATA_MASK_AP_DEVICE_TYPE (0x00000008) --  AP device type is valid
11556       - QMI_LOC_WIFI_APDATA_MASK_AP_RSSI (0x00000010) --  AP RSSI is valid
11557       - QMI_LOC_WIFI_APDATA_MASK_AP_CHANNEL (0x00000020) --  AP channel is valid
11558       - QMI_LOC_WIFI_APDATA_MASK_AP_ROUNDTRIP_DELAY (0x00000040) --  AP roundtrip delay is valid
11559       - QMI_LOC_WIFI_APDATA_MASK_AP_ROUNDTRIP_DELAY_ACCURACY (0x00000080) --  AP roundtrip delay accuracy is valid
11560       - QMI_LOC_WIFI_APDATA_MASK_MOBILE_SNR (0x00000100) --  Mobile signal-to-noise ratio is valid
11561       - QMI_LOC_WIFI_APDATA_MASK_MOBILE_RSSI (0x00000200) --  Mobile RSSI is valid  */
11562 
11563   uint8_t macAddress[QMI_LOC_WIFI_MAC_ADDR_LENGTH_V02];
11564   /**<   MAC address. \n
11565   Each address is of length QMI_LOC_WIFI_MAC_ADDR_LENGTH.
11566   */
11567 
11568   int32_t apTransmitPower;
11569   /**<   AP transmit power in dBm.  */
11570 
11571   int32_t apAntennaGain;
11572   /**<   AP antenna gain in dBI. */
11573 
11574   int32_t apSignalToNoise;
11575   /**<   AP SNR received at the mobile device. */
11576 
11577   qmiLocWifiApDataDeviceTypeEnumT_v02 apDeviceType;
11578   /**<   List of AP device types. */
11579 
11580   int32_t apRssi;
11581   /**<   AP signal strength indicator in dBm. */
11582 
11583   uint16_t apChannel;
11584   /**<   AP Wi-Fi channel on which a beacon was received. */
11585 
11586   uint32_t apRoundTripDelay;
11587   /**<   Round trip delay between the mobile device and the AP, in units of
11588        apRoundTripDelayUnit. */
11589 
11590   qmiLocWifiApDataRtdUnitTypeEnumT_v02 apRoundTripDelayUnit;
11591   /**<   Units of apRoundTripDelay and its accuracy; mandatory if apRoundTripDelay
11592        is present. */
11593 
11594   uint8_t apRoundTripDelayAccuracy;
11595   /**<   AP's accuracy of round trip delay apRoundTripDelay, in units of
11596        apRoundTripDelayUnit. */
11597 
11598   int32_t mobileSignalToNoise;
11599   /**<   Mobile SNR received at the AP. */
11600 
11601   int32_t mobileRssi;
11602   /**<   Mobile signal strength at the AP. */
11603 }qmiLocWifiApDataStructT_v02;  /* Type */
11604 /**
11605     @}
11606   */
11607 
11608 /** @addtogroup loc_qmi_messages
11609     @{
11610   */
11611 /** Request Message; Injects Wi-Fi AP data. */
11612 typedef struct {
11613 
11614   /* Mandatory */
11615   /*  Wi-Fi AP Scan Data */
11616   uint32_t wifiApInfo_len;  /**< Must be set to # of elements in wifiApInfo */
11617   qmiLocWifiApDataStructT_v02 wifiApInfo[QMI_LOC_WIFI_MAX_REPORTED_APS_PER_MSG_V02];
11618   /**<   \n List of Wi-Fi AP scan information entered by the control point. */
11619 }qmiLocInjectWifiApDataReqMsgT_v02;  /* Message */
11620 /**
11621     @}
11622   */
11623 
11624 /** @addtogroup loc_qmi_messages
11625     @{
11626   */
11627 /** Indication Message; Injects Wi-Fi AP data. */
11628 typedef struct {
11629 
11630   /* Mandatory */
11631   /*  Wi-Fi AP Scan Information Injection Status */
11632   qmiLocStatusEnumT_v02 status;
11633   /**<   Status of the Inject Wi-Fi AP Scan Information request.
11634 
11635  Valid values: \n
11636       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
11637       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
11638       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
11639       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
11640       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
11641       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
11642       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
11643       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
11644       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
11645       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
11646       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
11647 }qmiLocInjectWifiApDataIndMsgT_v02;  /* Message */
11648 /**
11649     @}
11650   */
11651 
11652 /** @addtogroup loc_qmi_enums
11653     @{
11654   */
11655 typedef enum {
11656   QMILOCWIFIACCESSPOINTATTACHSTATESENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
11657   eQMI_LOC_WIFI_ACCESS_POINT_ATTACHED_V02 = 0, /**<  Attached to an access point  */
11658   eQMI_LOC_WIFI_ACCESS_POINT_DETACHED_V02 = 1, /**<  Detached from an access point  */
11659   eQMI_LOC_WIFI_ACCESS_POINT_HANDOVER_V02 = 2, /**<  Handed over to another access point  */
11660   QMILOCWIFIACCESSPOINTATTACHSTATESENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
11661 }qmiLocWifiAccessPointAttachStatesEnumT_v02;
11662 /**
11663     @}
11664   */
11665 
11666 /** @addtogroup loc_qmi_messages
11667     @{
11668   */
11669 /** Request Message; Used by the control point to inject the Wi-Fi attachment status. */
11670 typedef struct {
11671 
11672   /* Mandatory */
11673   /*  Attach State */
11674   qmiLocWifiAccessPointAttachStatesEnumT_v02 attachState;
11675   /**<   Wi.Fi access point attach state.
11676 
11677  Valid values: \n
11678       - eQMI_LOC_WIFI_ACCESS_POINT_ATTACHED (0) --  Attached to an access point
11679       - eQMI_LOC_WIFI_ACCESS_POINT_DETACHED (1) --  Detached from an access point
11680       - eQMI_LOC_WIFI_ACCESS_POINT_HANDOVER (2) --  Handed over to another access point  */
11681 
11682   /* Optional */
11683   /*  Access Point MAC Address */
11684   uint8_t accessPointMacAddress_valid;  /**< Must be set to true if accessPointMacAddress is being passed */
11685   uint8_t accessPointMacAddress[QMI_LOC_WIFI_MAC_ADDR_LENGTH_V02];
11686   /**<   MAC address of the access point to which the Wi-Fi is attached.
11687         This must always be specified if the attach state is Handover.
11688         */
11689 
11690   /* Optional */
11691   /*  Wi-Fi AP SSID String */
11692   uint8_t wifiApSsid_valid;  /**< Must be set to true if wifiApSsid is being passed */
11693   char wifiApSsid[QMI_LOC_MAX_WIFI_AP_SSID_STR_LENGTH_V02 + 1];
11694   /**<   The NULL-terminated SSID of the Wi-Fi AP. Its maximum length according to the ASCII standard is 32 octets. */
11695 }qmiLocNotifyWifiAttachmentStatusReqMsgT_v02;  /* Message */
11696 /**
11697     @}
11698   */
11699 
11700 /** @addtogroup loc_qmi_messages
11701     @{
11702   */
11703 /** Request Message; Used by the control point to inject the Wi-Fi attachment status. */
11704 typedef struct {
11705 
11706   /* Mandatory */
11707   /*  Status of Wi-Fi Attachment Status Request */
11708   qmiLocStatusEnumT_v02 status;
11709   /**<   Status of Wi-Fi Attachment Status request.
11710 
11711  Valid values: \n
11712       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
11713       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
11714       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
11715       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
11716       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
11717       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
11718       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
11719       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
11720       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
11721       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
11722       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
11723 }qmiLocNotifyWifiAttachmentStatusIndMsgT_v02;  /* Message */
11724 /**
11725     @}
11726   */
11727 
11728 /** @addtogroup loc_qmi_enums
11729     @{
11730   */
11731 typedef enum {
11732   QMILOCWIFIENABLEDSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
11733   eQMI_LOC_WIFI_ENABLED_FALSE_V02 = 0, /**<  Wi-Fi is disabled on the device  */
11734   eQMI_LOC_WIFI_ENABLED_TRUE_V02 = 1, /**<  Wi-Fi is enabled on the device  */
11735   QMILOCWIFIENABLEDSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
11736 }qmiLocWifiEnabledStatusEnumT_v02;
11737 /**
11738     @}
11739   */
11740 
11741 /** @addtogroup loc_qmi_messages
11742     @{
11743   */
11744 /** Request Message; Used by the control point to inject the Wi-Fi enabled status. */
11745 typedef struct {
11746 
11747   /* Mandatory */
11748   /*  Enabled Status */
11749   qmiLocWifiEnabledStatusEnumT_v02 enabledStatus;
11750   /**<   Wi-Fi enabled status on the device.
11751 
11752  Valid values: \n
11753       - eQMI_LOC_WIFI_ENABLED_FALSE (0) --  Wi-Fi is disabled on the device
11754       - eQMI_LOC_WIFI_ENABLED_TRUE (1) --  Wi-Fi is enabled on the device  */
11755 }qmiLocNotifyWifiEnabledStatusReqMsgT_v02;  /* Message */
11756 /**
11757     @}
11758   */
11759 
11760 /** @addtogroup loc_qmi_messages
11761     @{
11762   */
11763 /** Indication Message; Used by the control point to inject the Wi-Fi enabled status. */
11764 typedef struct {
11765 
11766   /* Mandatory */
11767   /*  Status of Wi-Fi Enabled Status Request */
11768   qmiLocStatusEnumT_v02 status;
11769   /**<   Status of the Wi-Fi Enabled Status request.
11770 
11771  Valid values: \n
11772       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
11773       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
11774       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
11775       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
11776       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
11777       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
11778       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
11779       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
11780       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
11781       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
11782       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
11783 }qmiLocNotifyWifiEnabledStatusIndMsgT_v02;  /* Message */
11784 /**
11785     @}
11786   */
11787 
11788 /** @addtogroup loc_qmi_messages
11789     @{
11790   */
11791 /** Indication Message; Notifies the control point whether the GNSS location engine is
11792                     ready to accept vehicle data. */
11793 typedef struct {
11794 
11795   /* Optional */
11796   /*  Vehicle Accelerometer Ready Status */
11797   uint8_t vehicleAccelReadyStatus_valid;  /**< Must be set to true if vehicleAccelReadyStatus is being passed */
11798   uint8_t vehicleAccelReadyStatus;
11799   /**<   The location service uses this TLV to let a control point know when it is
11800        ready or not ready to receive vehicle accelerometer data input.
11801        Values: \n
11802        - 0x00 -- Not ready  \n
11803        - 0x01 -- Ready */
11804 
11805   /* Optional */
11806   /*  Vehicle Angular Rate Ready Status */
11807   uint8_t vehicleAngularRateReadyStatus_valid;  /**< Must be set to true if vehicleAngularRateReadyStatus is being passed */
11808   uint8_t vehicleAngularRateReadyStatus;
11809   /**<   The location service uses this TLV to let a control point know when it is
11810        ready or not ready to receive vehicle angular rate data input.
11811        Values: \n
11812        - 0x00 -- Not ready \n
11813        - 0x01 -- Ready */
11814 
11815   /* Optional */
11816   /*  Vehicle Odometry Ready Status */
11817   uint8_t vehicleOdometryReadyStatus_valid;  /**< Must be set to true if vehicleOdometryReadyStatus is being passed */
11818   uint8_t vehicleOdometryReadyStatus;
11819   /**<   The location service uses this TLV to let a control point know when it is
11820        ready or not ready to receive vehicle odometry data input.
11821        Values: \n
11822        - 0x00 -- Not ready \n
11823        - 0x01 -- Ready*/
11824 }qmiLocEventVehicleDataReadyIndMsgT_v02;  /* Message */
11825 /**
11826     @}
11827   */
11828 
11829 /** @addtogroup loc_qmi_aggregates
11830     @{
11831   */
11832 typedef struct {
11833 
11834   uint32_t timeOffset;
11835   /**<   Sample time offset. This time offset must be
11836        relative to the vehicle sensor time of the first sample. \n
11837        - Units: Microseconds \n
11838        - Range: Up to over 4000 seconds */
11839 
11840   uint32_t axisSample_len;  /**< Must be set to # of elements in axisSample */
11841   float axisSample[QMI_LOC_VEHICLE_SENSOR_DATA_MAX_AXES_V02];
11842   /**<   Sensor axis sample.        \n
11843        - Type: Floating point     \n
11844        - Units accelerometer: Meters/seconds^2 \n
11845        - Units gyroscope: Radians/seconds \vspace{4pt}
11846 
11847        Note: The axes samples must be in the following order: \n
11848              1. X-Axis \n
11849              2. Y-Axis \n
11850              3. Z-Axis */
11851 }qmiLocVehicleSensorSampleStructT_v02;  /* Type */
11852 /**
11853     @}
11854   */
11855 
11856 typedef uint8_t qmiLocAxesMaskT_v02;
11857 #define QMI_LOC_MASK_X_AXIS_V02 ((qmiLocAxesMaskT_v02)0x01) /**<  X-axis is valid  */
11858 #define QMI_LOC_MASK_Y_AXIS_V02 ((qmiLocAxesMaskT_v02)0x02) /**<  Y-axis is valid  */
11859 #define QMI_LOC_MASK_Z_AXIS_V02 ((qmiLocAxesMaskT_v02)0x04) /**<  Z-axis is valid  */
11860 /** @addtogroup loc_qmi_aggregates
11861     @{
11862   */
11863 typedef struct {
11864 
11865   uint32_t sampleTimeBase;
11866   /**<   Denotes a 32-bit time tag of the reference time from which
11867        all samples in this message are offset. This time must
11868        be the same as or (slightly) earlier than the first (oldest)
11869        sample in this message. \n
11870        - Units: Milliseconds \n
11871        - Range: Approx. 4 million seconds, or almost 50 days between rollovers */
11872 
11873   qmiLocAxesMaskT_v02 axesValidity;
11874   /**<   Identifies the axes that are valid for all sensor samples.
11875 
11876  Valid values: \n
11877       - QMI_LOC_MASK_X_AXIS (0x01) --  X-axis is valid
11878       - QMI_LOC_MASK_Y_AXIS (0x02) --  Y-axis is valid
11879       - QMI_LOC_MASK_Z_AXIS (0x04) --  Z-axis is valid  */
11880 
11881   uint32_t sensorData_len;  /**< Must be set to # of elements in sensorData */
11882   qmiLocVehicleSensorSampleStructT_v02 sensorData[QMI_LOC_VEHICLE_SENSOR_DATA_MAX_SAMPLES_V02];
11883 }qmiLocVehicleSensorSampleListStructType_v02;  /* Type */
11884 /**
11885     @}
11886   */
11887 
11888 typedef uint32_t qmiLocVehicleOdometryMeasDeviationMaskType_v02;
11889 #define QMI_LOC_MASK_VEHICLE_ODOMETRY_REVERSE_MOVEMENT_V02 ((qmiLocVehicleOdometryMeasDeviationMaskType_v02)0x00000001) /**<  Odometry data in this message includes at least some data where
11890        the vehicle may have been moving in the reverse direction; this
11891        bit must be set if odometry data may be in reverse, and should
11892        not be set if odometry data is all in the forward direction  */
11893 #define QMI_LOC_MASK_VEHICLE_ODOMETRY_AFFECTED_BY_ERRORS_V02 ((qmiLocVehicleOdometryMeasDeviationMaskType_v02)0x00000002) /**<  Odometry data in this message includes at least some data affected
11894        by a major error source affecting distance-travelled accuracy,
11895        such as wheel slippage due to skidding, gravel, snow, or ice, as
11896        detected by the vehicle, e.g., via an ABS or other system  */
11897 #define QMI_LOC_MASK_VEHICLE_ODOMETRY_ABSOLUTE_MEASUREMENT_V02 ((qmiLocVehicleOdometryMeasDeviationMaskType_v02)0x00000004) /**<  Odometry data in this message is an absolute amount since the vehicle
11898        began service, and is the same vehicle that is regularly used with
11899        this device (so that the offset of this value, since the last time
11900        this measurement was used by the location engine, can safely be used
11901        as a likely correct estimate of distance travelled since last
11902        use)  */
11903 typedef uint32_t qmiLocVehicleOdometryWheelFlagsMaskT_v02;
11904 #define QMI_LOC_MASK_VEHICLE_ODOMETRY_LEFT_AND_RIGHT_AVERAGE_V02 ((qmiLocVehicleOdometryWheelFlagsMaskT_v02)0x00000001) /**<  Average of left and right non-turning wheels  */
11905 #define QMI_LOC_MASK_VEHICLE_ODOMETRY_LEFT_V02 ((qmiLocVehicleOdometryWheelFlagsMaskT_v02)0x00000002) /**<  Left side, non-turning wheel  */
11906 #define QMI_LOC_MASK_VEHICLE_ODOMETRY_RIGHT_V02 ((qmiLocVehicleOdometryWheelFlagsMaskT_v02)0x00000004) /**<  Right side, non-turning wheel  */
11907 /** @addtogroup loc_qmi_aggregates
11908     @{
11909   */
11910 typedef struct {
11911 
11912   uint32_t timeOffset;
11913   /**<   Sample time offset. This time offset must be
11914        relative to the sensor time of the first sample. \n
11915        - Units: Microseconds \n
11916        - Range: Up to over 4000 seconds */
11917 
11918   uint32_t distanceTravelled_len;  /**< Must be set to # of elements in distanceTravelled */
11919   uint32_t distanceTravelled[QMI_LOC_VEHICLE_ODOMETRY_MAX_MEASUREMENTS_V02];
11920   /**<    Distance travelled (odometry) sample offset. \n
11921         - Units of accumulated distance: Millimeters \n
11922         - Range: Over 4000 kilometers
11923 
11924         This measurement (with units in millimeters) is added to
11925         the distance_travelled_base measurement (in meters) to
11926         get the total distance travelled sample value.
11927 
11928         Note: The order of measurements must be as follows: \n
11929         1. Left and right average \n
11930         2. Left \n
11931         3. Right
11932    */
11933 }qmiLocVehicleOdometrySampleStructT_v02;  /* Type */
11934 /**
11935     @}
11936   */
11937 
11938 /** @addtogroup loc_qmi_aggregates
11939     @{
11940   */
11941 typedef struct {
11942 
11943   uint32_t sampleTimeBase;
11944   /**<   Denotes a 32-bit time tag of a reference time, from which
11945        all samples in this message are offset.  Note this time must
11946        be the same or (slightly) earlier than the first (oldest)
11947        sample in this message. \n
11948        - Units: 1 millisecond \n
11949        - Range: ~4 million seconds, or almost 50 days between rollovers */
11950 
11951   qmiLocVehicleOdometryMeasDeviationMaskType_v02 flags;
11952   /**<   Flags to indicate any deviation from the default measurement
11953  assumptions. Valid bitmasks: \n
11954       - QMI_LOC_MASK_VEHICLE_ODOMETRY_REVERSE_MOVEMENT (0x00000001) --  Odometry data in this message includes at least some data where
11955        the vehicle may have been moving in the reverse direction; this
11956        bit must be set if odometry data may be in reverse, and should
11957        not be set if odometry data is all in the forward direction
11958       - QMI_LOC_MASK_VEHICLE_ODOMETRY_AFFECTED_BY_ERRORS (0x00000002) --  Odometry data in this message includes at least some data affected
11959        by a major error source affecting distance-travelled accuracy,
11960        such as wheel slippage due to skidding, gravel, snow, or ice, as
11961        detected by the vehicle, e.g., via an ABS or other system
11962       - QMI_LOC_MASK_VEHICLE_ODOMETRY_ABSOLUTE_MEASUREMENT (0x00000004) --  Odometry data in this message is an absolute amount since the vehicle
11963        began service, and is the same vehicle that is regularly used with
11964        this device (so that the offset of this value, since the last time
11965        this measurement was used by the location engine, can safely be used
11966        as a likely correct estimate of distance travelled since last
11967        use)  */
11968 
11969   qmiLocVehicleOdometryWheelFlagsMaskT_v02 wheelFlags;
11970   /**<   Delineates for which wheels measurements are being provided
11971  in the following samples, where one or more of the following
11972  bits must be set, and data samples aligned with these axes must
11973  appear in groups, in this order.
11974 
11975  Valid bitmasks: \n
11976       - QMI_LOC_MASK_VEHICLE_ODOMETRY_LEFT_AND_RIGHT_AVERAGE (0x00000001) --  Average of left and right non-turning wheels
11977       - QMI_LOC_MASK_VEHICLE_ODOMETRY_LEFT (0x00000002) --  Left side, non-turning wheel
11978       - QMI_LOC_MASK_VEHICLE_ODOMETRY_RIGHT (0x00000004) --  Right side, non-turning wheel  */
11979 
11980   uint32_t distanceTravelledBase;
11981   /**<   Distance traveled base. \n
11982         - Units of accumulated distance: Meters \n
11983         - Range: Over 4,000,0000 kilometers \vspace{0.06in} \n
11984 
11985         Distance travelled (odometry) is to be reported in a continuously
11986         accumulating way from device power up. It may be incremental distance
11987         starting at 0, or another arbitrary point, from device power up, or the
11988         absolute distance traveled by the vehicle
11989         (and if so, set QMI_LOC_MASK_VEHICLE_ODOMETRY_ABSOLUTE_MEASUREMENT),
11990         as long as it grows incrementally from device power up.
11991 
11992         This distance_travelled_base is added to the distrance_travelled_offset
11993         of each sample (below) to get the absolute distance of each sample
11994         point.
11995 
11996         Distance travelled errors are expected to be primarily due to the
11997         scale factor, with some allowance for noise due to minor slippage
11998         events (e.g., gravel.)
11999         Major wheel slippage events that affect odometry
12000         must be flagged -- see the flags field.
12001 
12002         Note that other events, such as a vehicle travelling in reverse, may
12003         also affect the available accuracy of this information, and notification
12004         of those events must be provided -- see the flags field. */
12005 
12006   uint32_t odometryData_len;  /**< Must be set to # of elements in odometryData */
12007   qmiLocVehicleOdometrySampleStructT_v02 odometryData[QMI_LOC_VEHICLE_SENSOR_DATA_MAX_SAMPLES_V02];
12008   /**<   Variable length array to specify the odometry samples.
12009        Maximum length of the array is 50. */
12010 }qmiLocVehicleOdometrySampleListStructT_v02;  /* Type */
12011 /**
12012     @}
12013   */
12014 
12015 /** @addtogroup loc_qmi_messages
12016     @{
12017   */
12018 /** Request Message; Injects on-vehicle sensor data into the location engine. */
12019 typedef struct {
12020 
12021   /* Optional */
12022   /*  On-Vehicle Accelerometer Data */
12023   uint8_t accelData_valid;  /**< Must be set to true if accelData is being passed */
12024   qmiLocVehicleSensorSampleListStructType_v02 accelData;
12025   /**<   \vspace{0.06in} \n Vehicle accelerometer sensor samples. */
12026 
12027   /* Optional */
12028   /*  On-Vehicle Angular Rotation Data */
12029   uint8_t angRotationData_valid;  /**< Must be set to true if angRotationData is being passed */
12030   qmiLocVehicleSensorSampleListStructType_v02 angRotationData;
12031   /**<   \vspace{0.06in} \n Vehicle angular rotation data sensor samples. */
12032 
12033   /* Optional */
12034   /*  Odometry Data */
12035   uint8_t odometryData_valid;  /**< Must be set to true if odometryData is being passed */
12036   qmiLocVehicleOdometrySampleListStructT_v02 odometryData;
12037   /**<   \vspace{0.06in} \n Odometer sensor samples. */
12038 
12039   /* Optional */
12040   /*  External Time Sync Information */
12041   uint8_t changeInTimeScales_valid;  /**< Must be set to true if changeInTimeScales is being passed */
12042   int32_t changeInTimeScales;
12043   /**<   This field is to be used in conjunction with an external
12044        time-sync mechanism that is aligning the vehicle sensor time scale
12045        with the on-device sensor time scale to ensure that updates in
12046        that time offset do not appear as jumps in the relative sensor time
12047        of the samples provided in this message. If there is no such sync
12048        mechanism, e.g., if only the vehicle time is provided, this field
12049        may be left at 0.
12050 
12051        This field is defined as the change from the previously-sent QMI
12052        message with similar TLVs 0x10, 0x11, or 0x12 in it, to this QMI
12053        message in the amount that the sensor_time is ahead of an
12054        external vehicle time. \n
12055 
12056        - Units: Microseconds \n
12057        - Range: Approximately -2100 seconds to + 2100 seconds, where
12058                 full-scale (minimum and maximum value) is interpreted
12059                 as equal to or greater than this value of an offset change
12060                 (unlikely to be reached in practice, unless there is a
12061                 startup, major resync, or some other rollover event). */
12062 }qmiLocInjectVehicleSensorDataReqMsgT_v02;  /* Message */
12063 /**
12064     @}
12065   */
12066 
12067 /** @addtogroup loc_qmi_messages
12068     @{
12069   */
12070 /** Indication Message; Injects on-vehicle sensor data into the location engine. */
12071 typedef struct {
12072 
12073   /* Mandatory */
12074   /*  Inject Vehicle Sensor Data Status */
12075   qmiLocStatusEnumT_v02 status;
12076   /**<   Status of the Inject Vehicle Sensor Data request.
12077 
12078  Valid values: \n
12079       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
12080       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
12081       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
12082       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
12083       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
12084       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
12085       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
12086       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
12087       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
12088       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
12089       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
12090 }qmiLocInjectVehicleSensorDataIndMsgT_v02;  /* Message */
12091 /**
12092     @}
12093   */
12094 
12095 /** @addtogroup loc_qmi_messages
12096     @{
12097   */
12098 /** Request Message; Used by the control point to get the first available WWAN
12099                     position from the location engine. */
12100 typedef struct {
12101 
12102   /* Mandatory */
12103   /*  Transaction ID */
12104   uint32_t transactionId;
12105   /**<   Identifies the transaction. The transaction ID
12106        is returned in the Get Available WWAN Position indication. */
12107 }qmiLocGetAvailWwanPositionReqMsgT_v02;  /* Message */
12108 /**
12109     @}
12110   */
12111 
12112 /** @addtogroup loc_qmi_messages
12113     @{
12114   */
12115 /** Indication Message; Used by the control point to get the first available WWAN
12116                     position from the location engine. */
12117 typedef struct {
12118 
12119   /* Mandatory */
12120   /*  Get Available WWAN Position Status */
12121   qmiLocStatusEnumT_v02 status;
12122   /**<   Status of the Get Available WWAN Position request.
12123 
12124  Valid values: \n
12125       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
12126       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
12127       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
12128       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
12129       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
12130       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
12131       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
12132       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
12133       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
12134       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
12135       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
12136 
12137   /* Optional */
12138   /*  Transaction ID */
12139   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
12140   uint32_t transactionId;
12141   /**<   Transaction ID that was specified in the Get Available
12142        WWAN Position request. This parameter will
12143        always be present if the status field is set to
12144        SUCCESS. */
12145 
12146   /* Optional */
12147   /*  Latitude */
12148   uint8_t latitude_valid;  /**< Must be set to true if latitude is being passed */
12149   double latitude;
12150   /**<   Latitude (specified in WGS84 datum).
12151        \begin{itemize1}
12152        \item    Type: Floating point
12153        \item    Units: Degrees
12154        \item     Range: -90.0 to 90.0      \begin{itemize1}
12155          \item    Positive values indicate northern latitude
12156          \item    Negative values indicate southern latitude
12157        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
12158 
12159   /* Optional */
12160   /*  Longitude */
12161   uint8_t longitude_valid;  /**< Must be set to true if longitude is being passed */
12162   double longitude;
12163   /**<   Longitude (specified in WGS84 datum).
12164        \begin{itemize1}
12165        \item    Type: Floating point
12166        \item    Units: Degrees
12167        \item    Range: -180.0 to 180.0     \begin{itemize1}
12168          \item    Positive values indicate eastern longitude
12169          \item    Negative values indicate western longitude
12170        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
12171 
12172   /* Optional */
12173   /*  Circular Horizontal Position Uncertainty */
12174   uint8_t horUncCircular_valid;  /**< Must be set to true if horUncCircular is being passed */
12175   float horUncCircular;
12176   /**<   Horizontal position uncertainty (circular).\n
12177        - Units: Meters */
12178 
12179   /* Optional */
12180   /*  Altitude With Respect to Ellipsoid */
12181   uint8_t altitudeWrtEllipsoid_valid;  /**< Must be set to true if altitudeWrtEllipsoid is being passed */
12182   float altitudeWrtEllipsoid;
12183   /**<   Altitude with respect to the WGS84 ellipsoid.\n
12184        - Units: Meters \n
12185        - Range: -500 to 15883 */
12186 
12187   /* Optional */
12188   /*  Vertical Uncertainty */
12189   uint8_t vertUnc_valid;  /**< Must be set to true if vertUnc is being passed */
12190   float vertUnc;
12191   /**<   Vertical uncertainty.\n
12192        - Units: Meters */
12193 
12194   /* Optional */
12195   /*  UTC Timestamp */
12196   uint8_t timestampUtc_valid;  /**< Must be set to true if timestampUtc is being passed */
12197   uint64_t timestampUtc;
12198   /**<   UTC timestamp. \n
12199        - Units: Milliseconds since Jan. 1, 1970 */
12200 
12201   /* Optional */
12202   /*  Time Uncertainty */
12203   uint8_t timeUnc_valid;  /**< Must be set to true if timeUnc is being passed */
12204   float timeUnc;
12205   /**<   Time uncertainty. \n
12206        - Units: Milliseconds */
12207 
12208   /* Optional */
12209   /*  Horizontal Elliptical Uncertainty Semi-Minor Axis */
12210   uint8_t horUncEllipseSemiMinor_valid;  /**< Must be set to true if horUncEllipseSemiMinor is being passed */
12211   float horUncEllipseSemiMinor;
12212   /**<   Semi-minor axis of horizontal elliptical uncertainty. \n
12213        - Units: Meters */
12214 
12215   /* Optional */
12216   /*  Horizontal Elliptical Uncertainty Semi-Major Axis */
12217   uint8_t horUncEllipseSemiMajor_valid;  /**< Must be set to true if horUncEllipseSemiMajor is being passed */
12218   float horUncEllipseSemiMajor;
12219   /**<   Semi-major axis of horizontal elliptical uncertainty. \n
12220        - Units: Meters */
12221 
12222   /* Optional */
12223   /*  Horizontal Elliptical Uncertainty Azimuth */
12224   uint8_t horUncEllipseOrientAzimuth_valid;  /**< Must be set to true if horUncEllipseOrientAzimuth is being passed */
12225   float horUncEllipseOrientAzimuth;
12226   /**<   Elliptical horizontal uncertainty azimuth of orientation. \n
12227        - Units: Decimal degrees \n
12228        - Range: 0 to 180 */
12229 
12230   /* Optional */
12231   /*  Horizontal Circular Confidence */
12232   uint8_t horCircularConfidence_valid;  /**< Must be set to true if horCircularConfidence is being passed */
12233   uint8_t horCircularConfidence;
12234   /**<   Horizontal circular uncertainty confidence. \n
12235        - Units: Percent \n
12236        - Range: 0 to 99 */
12237 
12238   /* Optional */
12239   /*  Horizontal Elliptical Confidence */
12240   uint8_t horEllipticalConfidence_valid;  /**< Must be set to true if horEllipticalConfidence is being passed */
12241   uint8_t horEllipticalConfidence;
12242   /**<   Horizontal elliptical uncertainty confidence. \n
12243        - Units: Percent \n
12244        - Range: 0 to 99 */
12245 
12246   /* Optional */
12247   /*  Horizontal Reliability */
12248   uint8_t horReliability_valid;  /**< Must be set to true if horReliability is being passed */
12249   qmiLocReliabilityEnumT_v02 horReliability;
12250   /**<   Specifies the reliability of the horizontal position.
12251  Valid values: \n
12252       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
12253       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
12254       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
12255       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
12256       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
12257  */
12258 
12259   /* Optional */
12260   /*  Altitude With Respect to Sea Level */
12261   uint8_t altitudeWrtMeanSeaLevel_valid;  /**< Must be set to true if altitudeWrtMeanSeaLevel is being passed */
12262   float altitudeWrtMeanSeaLevel;
12263   /**<   Altitude with respect to mean sea level. \n
12264        - Units: Meters */
12265 
12266   /* Optional */
12267   /*  Vertical Confidence */
12268   uint8_t vertConfidence_valid;  /**< Must be set to true if vertConfidence is being passed */
12269   uint8_t vertConfidence;
12270   /**<   Vertical uncertainty confidence. \n
12271        - Units: Percent \n
12272        - Range: 0 to 99 */
12273 
12274   /* Optional */
12275   /*  Vertical Reliability */
12276   uint8_t vertReliability_valid;  /**< Must be set to true if vertReliability is being passed */
12277   qmiLocReliabilityEnumT_v02 vertReliability;
12278   /**<   Specifies the reliability of the vertical position.
12279 
12280  Valid values: \n
12281       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
12282       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
12283       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
12284       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
12285       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
12286  */
12287 
12288   /* Optional */
12289   /*  GPS Time */
12290   uint8_t gpsTime_valid;  /**< Must be set to true if gpsTime is being passed */
12291   qmiLocGPSTimeStructT_v02 gpsTime;
12292 
12293   /* Optional */
12294   /*  Time Source */
12295   uint8_t timeSrc_valid;  /**< Must be set to true if timeSrc is being passed */
12296   qmiLocTimeSourceEnumT_v02 timeSrc;
12297   /**<   Time source.
12298 
12299  Valid values: \n
12300       - eQMI_LOC_TIME_SRC_INVALID (0) --  Invalid time.
12301       - eQMI_LOC_TIME_SRC_NETWORK_TIME_TRANSFER (1) --  Time is set by the 1X system
12302       - eQMI_LOC_TIME_SRC_NETWORK_TIME_TAGGING (2) --  Time is set by WCDMA/GSM time tagging (that is,
12303        associating network time with GPS time)
12304       - eQMI_LOC_TIME_SRC_EXTERNAL_INPUT (3) --  Time is set by an external injection
12305       - eQMI_LOC_TIME_SRC_TOW_DECODE (4) --  Time is set after decoding over-the-air GPS navigation data
12306        from one GPS satellite
12307       - eQMI_LOC_TIME_SRC_TOW_CONFIRMED (5) --  Time is set after decoding over-the-air GPS navigation data
12308        from multiple satellites
12309       - eQMI_LOC_TIME_SRC_TOW_AND_WEEK_CONFIRMED (6) --  Both time of the week and the GPS week number are known
12310       - eQMI_LOC_TIME_SRC_NAV_SOLUTION (7) --  Time is set by the position engine after the fix is obtained
12311       - eQMI_LOC_TIME_SRC_SOLVE_FOR_TIME (8) --  Time is set by the position engine after performing SFT;
12312        this is done when the clock time uncertainty is large
12313       - eQMI_LOC_TIME_SRC_GLO_TOW_DECODE (9) --  Time is set after decoding GLO satellites
12314       - eQMI_LOC_TIME_SRC_TIME_TRANSFORM (10) --  Time is set after transforming the GPS to GLO time
12315       - eQMI_LOC_TIME_SRC_WCDMA_SLEEP_TIME_TAGGING (11) --  Time is set by the sleep time tag provided by the WCDMA network
12316       - eQMI_LOC_TIME_SRC_GSM_SLEEP_TIME_TAGGING (12) --  Time is set by the sleep time tag provided by the GSM network
12317       - eQMI_LOC_TIME_SRC_UNKNOWN (13) --  Source of the time is unknown
12318       - eQMI_LOC_TIME_SRC_SYSTEM_TIMETICK (14) --  Time is derived from the system clock (better known as the slow clock);
12319        GNSS time is maintained irrespective of the GNSS receiver state
12320       - eQMI_LOC_TIME_SRC_QZSS_TOW_DECODE (15) --  Time is set after decoding QZSS satellites
12321       - eQMI_LOC_TIME_SRC_BDS_TOW_DECODE (16) --  Time is set after decoding BDS satellites
12322       - eQMI_LOC_TIME_SRC_GAL_TOW_DECODE (17) --  Time is set after decoding GAL satellites
12323  */
12324 }qmiLocGetAvailWwanPositionIndMsgT_v02;  /* Message */
12325 /**
12326     @}
12327   */
12328 
12329 /** @addtogroup loc_qmi_enums
12330     @{
12331   */
12332 typedef enum {
12333   QMILOCPREMIUMSERVICEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
12334   eQMI_LOC_PREMIUM_SERVICE_GTP_CELL_V02 = 0, /**<  Premium service -- Global terrestrial positioning for the cell  */
12335   eQMI_LOC_PREMIUM_SERVICE_SAP_V02 = 1, /**<  Premium service -- Sensor-assisted positioning  */
12336   eQMI_LOC_PREMIUM_SERVICE_GTP_ENH_CELL_V02 = 2, /**<  Premium service -- Global terrestrial positioning enhanced cell  */
12337   QMILOCPREMIUMSERVICEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
12338 }qmiLocPremiumServiceEnumT_v02;
12339 /**
12340     @}
12341   */
12342 
12343 /** @addtogroup loc_qmi_enums
12344     @{
12345   */
12346 typedef enum {
12347   QMILOCPREMIUMSERVICECFGENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
12348   eQMI_LOC_PREMIUM_SERVICE_DISABLED_V02 = 0, /**<  Premium service disabled  */
12349   eQMI_LOC_PREMIUM_SERVICE_ENABLED_BASIC_V02 = 1, /**<  Premium service enabled for basic  */
12350   eQMI_LOC_PREMIUM_SERVICE_ENABLED_PREMIUM_V02 = 2, /**<  Premium service enabled for premium  */
12351   QMILOCPREMIUMSERVICECFGENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
12352 }qmiLocPremiumServiceCfgEnumT_v02;
12353 /**
12354     @}
12355   */
12356 
12357 /** @addtogroup loc_qmi_messages
12358     @{
12359   */
12360 /** Request Message; Used by the control point to set the configuration */
12361 typedef struct {
12362 
12363   /* Mandatory */
12364   /*  Set Premium Service Type */
12365   qmiLocPremiumServiceEnumT_v02 premiumServiceType;
12366   /**<   Specifies the premium service to configure.
12367 
12368  Valid values: \n
12369       - eQMI_LOC_PREMIUM_SERVICE_GTP_CELL (0) --  Premium service -- Global terrestrial positioning for the cell
12370       - eQMI_LOC_PREMIUM_SERVICE_SAP (1) --  Premium service -- Sensor-assisted positioning
12371       - eQMI_LOC_PREMIUM_SERVICE_GTP_ENH_CELL (2) --  Premium service -- Global terrestrial positioning enhanced cell
12372  */
12373 
12374   /* Mandatory */
12375   /*  Set Premium Service Configuration */
12376   qmiLocPremiumServiceCfgEnumT_v02 premiumServiceCfg;
12377   /**<   Specifies the premium service configuration mode.
12378 
12379  Valid values: \n
12380       - eQMI_LOC_PREMIUM_SERVICE_DISABLED (0) --  Premium service disabled
12381       - eQMI_LOC_PREMIUM_SERVICE_ENABLED_BASIC (1) --  Premium service enabled for basic
12382       - eQMI_LOC_PREMIUM_SERVICE_ENABLED_PREMIUM (2) --  Premium service enabled for premium
12383  */
12384 }qmiLocSetPremiumServicesCfgReqMsgT_v02;  /* Message */
12385 /**
12386     @}
12387   */
12388 
12389 /** @addtogroup loc_qmi_messages
12390     @{
12391   */
12392 /** Indication Message; Used by the control point to set the configuration */
12393 typedef struct {
12394 
12395   /* Mandatory */
12396   /*  Set Premium Service Configuration Status */
12397   qmiLocStatusEnumT_v02 status;
12398   /**<   Status of the Set Premium Services Configuration request.
12399 
12400  Valid values: \n
12401       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
12402       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
12403       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
12404       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
12405       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
12406       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
12407       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
12408       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
12409       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
12410       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
12411       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
12412 }qmiLocSetPremiumServicesCfgIndMsgT_v02;  /* Message */
12413 /**
12414     @}
12415   */
12416 
12417 /** @addtogroup loc_qmi_enums
12418     @{
12419   */
12420 typedef enum {
12421   QMILOCXTRAVERSIONCHECKENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
12422   eQMI_LOC_XTRA_VERSION_CHECK_DISABLE_V02 = 0, /**<  XTRA file version check is not required   */
12423   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  */
12424   eQMI_LOC_XTRA_VERSION_CHECK_XTRA2_V02 = 2, /**<  Check the XTRA file against XTRA2 format  */
12425   eQMI_LOC_XTRA_VERSION_CHECK_XTRA3_V02 = 3, /**<  Check the XTRA file against XTRA3 format  */
12426   eQMI_LOC_XTRA_VERSION_CHECK_XTRA3_1_V02 = 4, /**<  Check the XTRA file against XTRA3.1 format  */
12427   QMILOCXTRAVERSIONCHECKENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
12428 }qmiLocXtraVersionCheckEnumT_v02;
12429 /**
12430     @}
12431   */
12432 
12433 /** @addtogroup loc_qmi_messages
12434     @{
12435   */
12436 /** Request Message; Used by the control point to enable or disable XTRA version
12437                     verification. */
12438 typedef struct {
12439 
12440   /* Mandatory */
12441   /*  Set XTRA Version Check Mode */
12442   qmiLocXtraVersionCheckEnumT_v02 xtraVersionCheckMode;
12443   /**<   Specifies XTRA version check mode.
12444 
12445  Valid values: \n
12446       - eQMI_LOC_XTRA_VERSION_CHECK_DISABLE (0) --  XTRA file version check is not required
12447       - 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
12448       - eQMI_LOC_XTRA_VERSION_CHECK_XTRA2 (2) --  Check the XTRA file against XTRA2 format
12449       - eQMI_LOC_XTRA_VERSION_CHECK_XTRA3 (3) --  Check the XTRA file against XTRA3 format
12450       - eQMI_LOC_XTRA_VERSION_CHECK_XTRA3_1 (4) --  Check the XTRA file against XTRA3.1 format
12451  */
12452 }qmiLocSetXtraVersionCheckReqMsgT_v02;  /* Message */
12453 /**
12454     @}
12455   */
12456 
12457 /** @addtogroup loc_qmi_messages
12458     @{
12459   */
12460 /** Indication Message; Used by the control point to enable or disable XTRA version
12461                     verification. */
12462 typedef struct {
12463 
12464   /* Mandatory */
12465   /*  Set XTRA Version Check Mode Status */
12466   qmiLocStatusEnumT_v02 status;
12467   /**<   Status of the Set XTRA version check request.
12468 
12469  Valid values: \n
12470       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
12471       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
12472       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
12473       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
12474       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
12475       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
12476       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
12477       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
12478       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
12479       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
12480       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
12481 }qmiLocSetXtraVersionCheckIndMsgT_v02;  /* Message */
12482 /**
12483     @}
12484   */
12485 
12486 typedef uint64_t qmiLocGNSSConstellEnumT_v02;
12487 #define eQMI_SYSTEM_GPS_V02 ((qmiLocGNSSConstellEnumT_v02)0x01ull) /**<  Enable GPS \n  */
12488 #define eQMI_SYSTEM_GLO_V02 ((qmiLocGNSSConstellEnumT_v02)0x02ull) /**<  Enable GLONASS \n  */
12489 #define eQMI_SYSTEM_BDS_V02 ((qmiLocGNSSConstellEnumT_v02)0x04ull) /**<  Enable BDS \n  */
12490 #define eQMI_SYSTEM_GAL_V02 ((qmiLocGNSSConstellEnumT_v02)0x08ull) /**<  Enable Galileo  */
12491 #define eQMI_SYSTEM_QZSS_V02 ((qmiLocGNSSConstellEnumT_v02)0x10ull) /**<  Enable QZSS  */
12492 /** @addtogroup loc_qmi_messages
12493     @{
12494   */
12495 /** Request Message; Sets satellite constellations of interest for reporting. */
12496 typedef struct {
12497 
12498   /* Optional */
12499   /*  GNSS Measurement Report Constellation Control */
12500   uint8_t measReportConfig_valid;  /**< Must be set to true if measReportConfig is being passed */
12501   qmiLocGNSSConstellEnumT_v02 measReportConfig;
12502   /**<   GNSS measurement report constellation control. \n
12503  Valid values: \n
12504       - eQMI_SYSTEM_GPS (0x01) --  Enable GPS \n
12505       - eQMI_SYSTEM_GLO (0x02) --  Enable GLONASS \n
12506       - eQMI_SYSTEM_BDS (0x04) --  Enable BDS \n
12507       - eQMI_SYSTEM_GAL (0x08) --  Enable Galileo
12508       - eQMI_SYSTEM_QZSS (0x10) --  Enable QZSS
12509  */
12510 
12511   /* Optional */
12512   /*  SV Polynomial Report Constellation Control */
12513   uint8_t svPolyReportConfig_valid;  /**< Must be set to true if svPolyReportConfig is being passed */
12514   qmiLocGNSSConstellEnumT_v02 svPolyReportConfig;
12515   /**<   SV polynomial report constellation control. \n
12516  Valid values: \n
12517       - eQMI_SYSTEM_GPS (0x01) --  Enable GPS \n
12518       - eQMI_SYSTEM_GLO (0x02) --  Enable GLONASS \n
12519       - eQMI_SYSTEM_BDS (0x04) --  Enable BDS \n
12520       - eQMI_SYSTEM_GAL (0x08) --  Enable Galileo
12521       - eQMI_SYSTEM_QZSS (0x10) --  Enable QZSS
12522  */
12523 }qmiLocSetGNSSConstRepConfigReqMsgT_v02;  /* Message */
12524 /**
12525     @}
12526   */
12527 
12528 /** @addtogroup loc_qmi_messages
12529     @{
12530   */
12531 /** Indication Message; Sets satellite constellations of interest for reporting. */
12532 typedef struct {
12533 
12534   /* Mandatory */
12535   /*  Set GNSS Constellation Status */
12536   qmiLocStatusEnumT_v02 status;
12537   /**<   Status of the GNSS constellation.
12538 
12539  Valid values: \n
12540       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
12541       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
12542       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
12543       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
12544       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
12545       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
12546       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
12547       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
12548       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
12549       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
12550       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
12551  */
12552 }qmiLocSetGNSSConstRepConfigIndMsgT_v02;  /* Message */
12553 /**
12554     @}
12555   */
12556 
12557 /** @addtogroup loc_qmi_enums
12558     @{
12559   */
12560 typedef enum {
12561   QMILOCSOURCEOFFREQENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
12562   eQMI_LOC_FREQ_SOURCE_INVALID_V02 = 0, /**<  Source of the frequency is invalid  */
12563   eQMI_LOC_FREQ_SOURCE_EXTERNAL_V02 = 1, /**<  Source of the frequency is from an external injection  */
12564   eQMI_LOC_FREQ_SOURCE_PE_CLK_REPORT_V02 = 2, /**<  Source of the frequency is from the GNSS navigation engine  */
12565   eQMI_LOC_FREQ_SOURCE_UNKNOWN_V02 = 3, /**<  Source of the frequency is unknown  */
12566   QMILOCSOURCEOFFREQENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
12567 }qmiLocSourceofFreqEnumT_v02;
12568 /**
12569     @}
12570   */
12571 
12572 /** @addtogroup loc_qmi_aggregates
12573     @{
12574   */
12575 typedef struct {
12576 
12577   float clockDrift;
12578   /**<   Receiver clock drift. \n
12579          - Units: Meters per second
12580     */
12581 
12582   float clockDriftUnc;
12583   /**<   Receiver clock drift uncertainty. \n
12584          - Units: Meters per second
12585     */
12586 
12587   qmiLocSourceofFreqEnumT_v02 sourceOfFreq;
12588   /**<   Source of the clock frequency information.
12589 
12590  Valid values: \n
12591       - eQMI_LOC_FREQ_SOURCE_INVALID (0) --  Source of the frequency is invalid
12592       - eQMI_LOC_FREQ_SOURCE_EXTERNAL (1) --  Source of the frequency is from an external injection
12593       - eQMI_LOC_FREQ_SOURCE_PE_CLK_REPORT (2) --  Source of the frequency is from the GNSS navigation engine
12594       - eQMI_LOC_FREQ_SOURCE_UNKNOWN (3) --  Source of the frequency is unknown
12595  */
12596 }qmiLocRcvrClockFrequencyInfoStructT_v02;  /* Type */
12597 /**
12598     @}
12599   */
12600 
12601 /** @addtogroup loc_qmi_aggregates
12602     @{
12603   */
12604 typedef struct {
12605 
12606   uint8_t leapSec;
12607   /**<   GPS time leap second delta to UTC time.  \n
12608          For nonzero values of leapSecUnc, leapSec must be treated as unknown. \n
12609              - Units: Seconds
12610     */
12611 
12612   uint8_t leapSecUnc;
12613   /**<   Uncertainty for the GPS leap second. \n
12614              - Units: Seconds
12615     */
12616 }qmiLocLeapSecondInfoStructT_v02;  /* Type */
12617 /**
12618     @}
12619   */
12620 
12621 typedef uint8_t qmiLocInterSystemBiasValidMaskT_v02;
12622 #define QMI_LOC_SYS_TIME_BIAS_VALID_V02 ((qmiLocInterSystemBiasValidMaskT_v02)0x01) /**<  System time bias is valid \n  */
12623 #define QMI_LOC_SYS_TIME_BIAS_UNC_VALID_V02 ((qmiLocInterSystemBiasValidMaskT_v02)0x02) /**<  System time bias uncertainty is valid  */
12624 /** @addtogroup loc_qmi_aggregates
12625     @{
12626   */
12627 typedef struct {
12628 
12629   qmiLocInterSystemBiasValidMaskT_v02 validMask;
12630   /**<   Fields that are valid. \n
12631  Valid values: \n
12632       - QMI_LOC_SYS_TIME_BIAS_VALID (0x01) --  System time bias is valid \n
12633       - QMI_LOC_SYS_TIME_BIAS_UNC_VALID (0x02) --  System time bias uncertainty is valid  \n
12634  */
12635 
12636   float timeBias;
12637   /**<   System 1 to System 2 time bias.  \n
12638              - Units: Milliseconds
12639     */
12640 
12641   float timeBiasUnc;
12642   /**<   System 1 to System 2 time bias uncertainty.  \n
12643              - Units: Milliseconds
12644     */
12645 }qmiLocInterSystemBiasStructT_v02;  /* Type */
12646 /**
12647     @}
12648   */
12649 
12650 /** @addtogroup loc_qmi_aggregates
12651     @{
12652   */
12653 typedef struct {
12654 
12655   qmiLocSvSystemEnumT_v02 system;
12656   /**<   Specifies the satellite system constellation.
12657 
12658  Valid values: \n
12659       - eQMI_LOC_SV_SYSTEM_GPS (1) --  GPS satellite
12660       - eQMI_LOC_SV_SYSTEM_GALILEO (2) --  GALILEO satellite
12661       - eQMI_LOC_SV_SYSTEM_SBAS (3) --  SBAS satellite
12662       - eQMI_LOC_SV_SYSTEM_COMPASS (4) --  COMPASS satellite (Deprecated)
12663       - eQMI_LOC_SV_SYSTEM_GLONASS (5) --  GLONASS satellite
12664       - eQMI_LOC_SV_SYSTEM_BDS (6) --  BDS satellite
12665       - eQMI_LOC_SV_SYSTEM_QZSS (7) --  QZSS satellite
12666  */
12667 
12668   uint16_t systemWeek;
12669   /**<   Current system week. \n
12670       - For GPS: Calculated from midnight, Jan. 6, 1980 \n
12671       - For BDS: Calculated from 00:00:00 on January 1, 2006 of Coordinated Universal Time (UTC) \n
12672       - For GAL: Calculated from 00:00 UT on Sunday August 22, 1999 (midnight between August 21 and August 22) \n
12673       If the week is unknown, set this value to 65535. \n
12674        - Units: Weeks */
12675 
12676   uint32_t systemMsec;
12677   /**<   Amount of time into the current week. \n
12678        - Units: Milliseconds */
12679 
12680   float systemClkTimeBias;
12681   /**<   System clock time bias (submilliseconds). \n
12682             - Units: Milliseconds
12683         (system time = systemMsec - systemClkTimeBias)
12684     */
12685 
12686   float systemClkTimeUncMs;
12687   /**<   Single-sided maximum time bias uncertainty. \n
12688                 - Units: Milliseconds
12689     */
12690 }qmiLocGnssTimeStructT_v02;  /* Type */
12691 /**
12692     @}
12693   */
12694 
12695 /** @addtogroup loc_qmi_aggregates
12696     @{
12697   */
12698 typedef struct {
12699 
12700   uint8_t gloFourYear;
12701   /**<   GLONASS four year number from 1996. Refer to GLONASS ICD. \n
12702         Applicable only for GLONASS and is to be ignored for other constellations. \n
12703         If unknown, set this value to 255.
12704     */
12705 
12706   uint16_t gloDays;
12707   /**<   GLONASS day number in four years. Refer to GLONASS ICD. \n
12708         Applicable only for GLONASS and is to be ignored for other constellations. \n
12709         If unknown, set this value to 65535.
12710     */
12711 
12712   uint32_t gloMsec;
12713   /**<   GLONASS time of day in msec. Refer to GLONASS ICD.    \n
12714         - Units: Milliseconds
12715     */
12716 
12717   float gloClkTimeBias;
12718   /**<   System clock time bias (submillisecond). \n
12719             - Units: Milliseconds
12720         (system time = systemMsec - systemClkTimeBias)
12721     */
12722 
12723   float gloClkTimeUncMs;
12724   /**<   Single-sided maximum time bias uncertainty. \n
12725                 - Units: Milliseconds
12726     */
12727 }qmiLocGloTimeStructT_v02;  /* Type */
12728 /**
12729     @}
12730   */
12731 
12732 /** @addtogroup loc_qmi_aggregates
12733     @{
12734   */
12735 typedef struct {
12736 
12737   uint32_t refFCount;
12738   /**<   Receiver frame counter value at a reference tick. */
12739 
12740   uint8_t systemRtc_valid;
12741   /**<   Validity indicator for the system RTC. */
12742 
12743   uint64_t systemRtcMs;
12744   /**<   Platform system RTC value. \n
12745         - Units: Milliseconds
12746     */
12747 
12748   qmiLocTimeSourceEnumT_v02 sourceOfTime;
12749   /**<   Source of the time information.
12750 
12751  Valid values: \n
12752       - eQMI_LOC_TIME_SRC_INVALID (0) --  Invalid time.
12753       - eQMI_LOC_TIME_SRC_NETWORK_TIME_TRANSFER (1) --  Time is set by the 1X system
12754       - eQMI_LOC_TIME_SRC_NETWORK_TIME_TAGGING (2) --  Time is set by WCDMA/GSM time tagging (that is,
12755        associating network time with GPS time)
12756       - eQMI_LOC_TIME_SRC_EXTERNAL_INPUT (3) --  Time is set by an external injection
12757       - eQMI_LOC_TIME_SRC_TOW_DECODE (4) --  Time is set after decoding over-the-air GPS navigation data
12758        from one GPS satellite
12759       - eQMI_LOC_TIME_SRC_TOW_CONFIRMED (5) --  Time is set after decoding over-the-air GPS navigation data
12760        from multiple satellites
12761       - eQMI_LOC_TIME_SRC_TOW_AND_WEEK_CONFIRMED (6) --  Both time of the week and the GPS week number are known
12762       - eQMI_LOC_TIME_SRC_NAV_SOLUTION (7) --  Time is set by the position engine after the fix is obtained
12763       - eQMI_LOC_TIME_SRC_SOLVE_FOR_TIME (8) --  Time is set by the position engine after performing SFT;
12764        this is done when the clock time uncertainty is large
12765       - eQMI_LOC_TIME_SRC_GLO_TOW_DECODE (9) --  Time is set after decoding GLO satellites
12766       - eQMI_LOC_TIME_SRC_TIME_TRANSFORM (10) --  Time is set after transforming the GPS to GLO time
12767       - eQMI_LOC_TIME_SRC_WCDMA_SLEEP_TIME_TAGGING (11) --  Time is set by the sleep time tag provided by the WCDMA network
12768       - eQMI_LOC_TIME_SRC_GSM_SLEEP_TIME_TAGGING (12) --  Time is set by the sleep time tag provided by the GSM network
12769       - eQMI_LOC_TIME_SRC_UNKNOWN (13) --  Source of the time is unknown
12770       - eQMI_LOC_TIME_SRC_SYSTEM_TIMETICK (14) --  Time is derived from the system clock (better known as the slow clock);
12771        GNSS time is maintained irrespective of the GNSS receiver state
12772       - eQMI_LOC_TIME_SRC_QZSS_TOW_DECODE (15) --  Time is set after decoding QZSS satellites
12773       - eQMI_LOC_TIME_SRC_BDS_TOW_DECODE (16) --  Time is set after decoding BDS satellites
12774       - eQMI_LOC_TIME_SRC_GAL_TOW_DECODE (17) --  Time is set after decoding GAL satellites
12775  */
12776 }qmiLocGnssTimeExtStructT_v02;  /* Type */
12777 /**
12778     @}
12779   */
12780 
12781 typedef uint64_t qmiLocSvMeasStatusValidMaskT_v02;
12782 #define QMI_LOC_MASK_MEAS_STATUS_SM_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000001ull) /**<  Satellite time in submilliseconds (code-phase)  */
12783 #define QMI_LOC_MASK_MEAS_STATUS_SB_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000002ull) /**<  Satellite sub-bit time  */
12784 #define QMI_LOC_MASK_MEAS_STATUS_MS_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000004ull) /**<  Satellite time in milliseconds  */
12785 #define QMI_LOC_MASK_MEAS_STATUS_BE_CONFIRM_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000008ull) /**<  Signal bit edge is confirmed  */
12786 #define QMI_LOC_MASK_MEAS_STATUS_VEL_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000010ull) /**<  Satellite Doppler is measured  */
12787 #define QMI_LOC_MASK_MEAS_STATUS_VEL_FINE_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000020ull) /**<  Fine/coarse Doppler measurement indicator  */
12788 #define QMI_LOC_MASK_MEAS_STATUS_FROM_RNG_DIFF_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000200ull) /**<  Range update from satellite differences  */
12789 #define QMI_LOC_MASK_MEAS_STATUS_FROM_VE_DIFF_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000400ull) /**<  Doppler update from satellite differences  */
12790 typedef uint64_t qmiLocSvMeasStatusMaskT_v02;
12791 #define QMI_LOC_MASK_MEAS_STATUS_SM_VALID_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000001ull) /**<  Satellite time in submilliseconds (code phase) is known  */
12792 #define QMI_LOC_MASK_MEAS_STATUS_SB_VALID_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000002ull) /**<  Satellite sub-bit time is known  */
12793 #define QMI_LOC_MASK_MEAS_STATUS_MS_VALID_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000004ull) /**<  Satellite time in milliseconds is known  */
12794 #define QMI_LOC_MASK_MEAS_STATUS_BE_CONFIRM_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000008ull) /**<  Signal bit edge is confirmed   */
12795 #define QMI_LOC_MASK_MEAS_STATUS_VELOCITY_VALID_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000010ull) /**<  Satellite Doppler is measured  */
12796 #define QMI_LOC_MASK_MEAS_STATUS_VELOCITY_FINE_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000020ull) /**<  TRUE: Fine Doppler is measured, FALSE: Coarse Doppler is measured  */
12797 #define QMI_LOC_MASK_MEAS_STATUS_FROM_RNG_DIFF_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000200ull) /**<  Range update from satellite differences is measured  */
12798 #define QMI_LOC_MASK_MEAS_STATUS_FROM_VE_DIFF_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000400ull) /**<  Doppler update from satellite differences is measured}  */
12799 /** @addtogroup loc_qmi_aggregates
12800     @{
12801   */
12802 typedef struct {
12803 
12804   uint32_t svTimeMs;
12805   /**<       Satellite time in milliseconds. \n
12806             - For GPS, BDS, GAL, and QZSS -- Range is 0 thru (604800000-1) \n
12807             - For GLONASS -- Range is 0 thru (86400000-1) \n
12808             - Units: Milliseconds \vspace{4pt}
12809 
12810             This is valid when the QMI_LOC_MEAS_ STATUS_MS_VALID bit is set
12811             in the measurement status. \vspace{4pt}
12812 
12813             @note All SV times in the current measurement block are
12814             already propagated to a common reference time epoch.
12815     */
12816 
12817   float svTimeSubMs;
12818   /**<       Satellite time in submilliseconds. \n
12819             Total SV Time = svMs + svSubMs \n
12820                 - Units: Milliseconds
12821     */
12822 
12823   float svTimeUncMs;
12824   /**<    Satellite time uncertainty. \n
12825                 - Units: Milliseconds
12826     */
12827 
12828   float dopplerShift;
12829   /**<   Satellite Doppler. \n
12830              - Units: Meters per second
12831     */
12832 
12833   float dopplerShiftUnc;
12834   /**<   Satellite Doppler uncertainty. \n
12835              - Units: Meters per second
12836     */
12837 
12838   uint8_t dopplerAccel_valid;
12839   /**<   Validity for Doppler acceleration. */
12840 
12841   float dopplerAccel;
12842   /**<   Satellite Doppler acceleration. \n
12843              - Units: Hz/second
12844     */
12845 }qmiLocSVTimeSpeedStructT_v02;  /* Type */
12846 /**
12847     @}
12848   */
12849 
12850 typedef uint16_t qmiLocMeasFieldsValidMaskT_v02;
12851 #define QMI_LOC_SV_HEALTH_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x01) /**<  SV health information is valid  */
12852 #define QMI_LOC_SV_MULTIPATH_EST_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x02) /**<  Multipath estimate for SV is valid  */
12853 #define QMI_LOC_SV_FINE_SPEED_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x04) /**<  Fine speed for SV is valid  */
12854 #define QMI_LOC_SV_FINE_SPEED_UNC_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x08) /**<  Fine speed uncertainty for SV is valid  */
12855 #define QMI_LOC_SV_CARRIER_PHASE_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x10) /**<  Carrier phase for SV is valid  */
12856 #define QMI_LOC_SV_SV_DIRECTION_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x20) /**<  SV direction information for SV is valid  */
12857 #define QMI_LOC_SV_CYCLESLIP_COUNT_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x40) /**<  Cycle slip count information is valid  */
12858 #define QMI_LOC_SV_LOSSOFLOCK_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x80) /**<  Loss of lock information is valid  */
12859 /** @addtogroup loc_qmi_aggregates
12860     @{
12861   */
12862 typedef struct {
12863 
12864   uint16_t gnssSvId;
12865   /**<   GNSS SV ID.
12866        \begin{itemize1}
12867        \item    Range: \begin{itemize1}
12868          \item    For GPS:     1 to 32
12869          \item    For GLONASS: 65 to 96. When slot-number to SV ID mapping is unknown, set as 255.
12870          \item    For QZSS:    193 to 197
12871          \item    For BDS:     201 to 237
12872          \item    For GAL:     301 to 336
12873          \vspace{-0.18in} \end{itemize1} \end{itemize1} */
12874 
12875   uint8_t gloFrequency;
12876   /**<   GLONASS frequency number + 7. \n
12877          Valid only for a GLONASS system and
12878          is to be ignored for all other systems. \n
12879              - Range: 1 to 14
12880     */
12881 
12882   qmiLocSvStatusEnumT_v02 svStatus;
12883   /**<   Satellite search state.
12884 
12885  Valid values: \n
12886       - eQMI_LOC_SV_STATUS_IDLE (1) --  SV is not being actively processed
12887       - eQMI_LOC_SV_STATUS_SEARCH (2) --  The system is searching for this SV
12888       - eQMI_LOC_SV_STATUS_TRACK (3) --  SV is being tracked
12889  */
12890 
12891   qmiLocMeasFieldsValidMaskT_v02 validMask;
12892   /**<   Validity mask (0 = Not valid; 1 = Valid). \n
12893 
12894       - QMI_LOC_SV_HEALTH_VALID (0x01) --  SV health information is valid
12895       - QMI_LOC_SV_MULTIPATH_EST_VALID (0x02) --  Multipath estimate for SV is valid
12896       - QMI_LOC_SV_FINE_SPEED_VALID (0x04) --  Fine speed for SV is valid
12897       - QMI_LOC_SV_FINE_SPEED_UNC_VALID (0x08) --  Fine speed uncertainty for SV is valid
12898       - QMI_LOC_SV_CARRIER_PHASE_VALID (0x10) --  Carrier phase for SV is valid
12899       - QMI_LOC_SV_SV_DIRECTION_VALID (0x20) --  SV direction information for SV is valid
12900       - QMI_LOC_SV_CYCLESLIP_COUNT_VALID (0x40) --  Cycle slip count information is valid
12901       - QMI_LOC_SV_LOSSOFLOCK_VALID (0x80) --  Loss of lock information is valid
12902  */
12903 
12904   uint8_t healthStatus;
12905   /**<   Health status. \n
12906          \begin{itemize1}
12907          - Range: 0 to 1, where  0 = unhealthy, 1 = healthy
12908     */
12909 
12910   qmiLocSvInfoMaskT_v02 svInfoMask;
12911   /**<   Indicates whether almanac and ephemeris information is available.
12912 
12913  Valid values: \n
12914       - QMI_LOC_SVINFO_MASK_HAS_EPHEMERIS (0x01) --  Ephemeris is available for this SV
12915       - QMI_LOC_SVINFO_MASK_HAS_ALMANAC (0x02) --  Almanac is available for this SV
12916  */
12917 
12918   qmiLocSvMeasStatusValidMaskT_v02 validMeasStatusMask;
12919   /**<   Validity mask for measurement status information. \n
12920  A set bit in validMeasStatusMask indicates that the corresponding bit
12921  in measurementStatus has valid status information: \n
12922  Valid masks: \n
12923       - QMI_LOC_MASK_MEAS_STATUS_SM_STAT_BIT_VALID (0x00000001) --  Satellite time in submilliseconds (code-phase)
12924       - QMI_LOC_MASK_MEAS_STATUS_SB_STAT_BIT_VALID (0x00000002) --  Satellite sub-bit time
12925       - QMI_LOC_MASK_MEAS_STATUS_MS_STAT_BIT_VALID (0x00000004) --  Satellite time in milliseconds
12926       - QMI_LOC_MASK_MEAS_STATUS_BE_CONFIRM_STAT_BIT_VALID (0x00000008) --  Signal bit edge is confirmed
12927       - QMI_LOC_MASK_MEAS_STATUS_VEL_STAT_BIT_VALID (0x00000010) --  Satellite Doppler is measured
12928       - QMI_LOC_MASK_MEAS_STATUS_VEL_FINE_STAT_BIT_VALID (0x00000020) --  Fine/coarse Doppler measurement indicator
12929       - QMI_LOC_MASK_MEAS_STATUS_FROM_RNG_DIFF_STAT_BIT_VALID (0x00000200) --  Range update from satellite differences
12930       - QMI_LOC_MASK_MEAS_STATUS_FROM_VE_DIFF_STAT_BIT_VALID (0x00000400) --  Doppler update from satellite differences
12931 \vspace{4pt}
12932  Additionally, MSB 0xFFC0000000000000 bits indicate the validity of DONT_USE bits. \n
12933 
12934  */
12935 
12936   qmiLocSvMeasStatusMaskT_v02 measurementStatus;
12937   /**<   Bitmask indicating the SV measurement status.
12938 
12939  Valid bitmasks: \n
12940       - QMI_LOC_MASK_MEAS_STATUS_SM_VALID (0x00000001) --  Satellite time in submilliseconds (code phase) is known
12941       - QMI_LOC_MASK_MEAS_STATUS_SB_VALID (0x00000002) --  Satellite sub-bit time is known
12942       - QMI_LOC_MASK_MEAS_STATUS_MS_VALID (0x00000004) --  Satellite time in milliseconds is known
12943       - QMI_LOC_MASK_MEAS_STATUS_BE_CONFIRM (0x00000008) --  Signal bit edge is confirmed
12944       - QMI_LOC_MASK_MEAS_STATUS_VELOCITY_VALID (0x00000010) --  Satellite Doppler is measured
12945       - QMI_LOC_MASK_MEAS_STATUS_VELOCITY_FINE (0x00000020) --  TRUE: Fine Doppler is measured, FALSE: Coarse Doppler is measured
12946       - QMI_LOC_MASK_MEAS_STATUS_FROM_RNG_DIFF (0x00000200) --  Range update from satellite differences is measured
12947       - QMI_LOC_MASK_MEAS_STATUS_FROM_VE_DIFF (0x00000400) --  Doppler update from satellite differences is measured}
12948 
12949  If any MSB bit in 0xFFC0000000000000 DONT_USE is set, the measurement
12950  must not be used by the client.
12951  */
12952 
12953   uint16_t CNo;
12954   /**<   Carrier to noise ratio.  \n
12955              - Units: dBHz \n
12956              - Scale: 0.1
12957     */
12958 
12959   uint16_t gloRfLoss;
12960   /**<   GLONASS RF loss reference to the antenna. \n
12961                  - Units: dB \n
12962                  - Scale: 0.1
12963     */
12964 
12965   int32_t measLatency;
12966   /**<   Age of the measurement. A positive value means the measurement precedes the reference time. \n
12967                  - Units: Milliseconds
12968     */
12969 
12970   qmiLocSVTimeSpeedStructT_v02 svTimeSpeed;
12971   /**<   SV time and speed information. */
12972 
12973   uint8_t lossOfLock;
12974   /**<   Loss of signal lock indicator.  \n
12975              - 0: Signal is in continuous track \n
12976              - 1: Signal is not in track
12977     */
12978 
12979   float multipathEstimate;
12980   /**<   Estimate of multipath in a measurement. \n
12981              - Units: Meters
12982     */
12983 
12984   float fineSpeed;
12985   /**<   Carrier phase derived speed. \n
12986              - Units: Meters per second
12987     */
12988 
12989   float fineSpeedUnc;
12990   /**<   Carrier phase derived speed uncertainty. \n
12991              - Units: Meters per second
12992     */
12993 
12994   double carrierPhase;
12995   /**<   Carrier phase measurement (L1 cycles).
12996     */
12997 
12998   uint8_t cycleSlipCount;
12999   /**<   Increments when a cycle slip is detected. */
13000 
13001   float svAzimuth;
13002   /**<   Satellite azimuth. \n
13003                 - Units: Radians \n
13004                 - Range: 0 to 2*pi()
13005     */
13006 
13007   float svElevation;
13008   /**<   Satellite elevation. \n
13009                 - Units: Radians \n
13010                 - Range: 0 to pi()/2
13011     */
13012 }qmiLocSVMeasurementStructT_v02;  /* Type */
13013 /**
13014     @}
13015   */
13016 
13017 /** @addtogroup loc_qmi_messages
13018     @{
13019   */
13020 /** Indication Message; Sends a satellite measurement report to the control point. */
13021 typedef struct {
13022 
13023   /* Mandatory */
13024   /*  Current Message Sequence Number  */
13025   uint8_t seqNum;
13026   /**<   Current message number. Used for segmentation/assembly of measurement reports. */
13027 
13028   /* Mandatory */
13029   /*  Maximum Number of Messages to be Sent for Present Time Epoch */
13030   uint8_t maxMessageNum;
13031   /**<   Maximum number of messages that are to be sent for the present time epoch. */
13032 
13033   /* Mandatory */
13034   /*   Specifies Satellite System Constellation of This Report */
13035   qmiLocSvSystemEnumT_v02 system;
13036   /**<   Specifies the satellite system constellation of this report.
13037 
13038  Valid values: \n
13039       - eQMI_LOC_SV_SYSTEM_GPS (1) --  GPS satellite
13040       - eQMI_LOC_SV_SYSTEM_GALILEO (2) --  GALILEO satellite
13041       - eQMI_LOC_SV_SYSTEM_SBAS (3) --  SBAS satellite
13042       - eQMI_LOC_SV_SYSTEM_COMPASS (4) --  COMPASS satellite (Deprecated)
13043       - eQMI_LOC_SV_SYSTEM_GLONASS (5) --  GLONASS satellite
13044       - eQMI_LOC_SV_SYSTEM_BDS (6) --  BDS satellite
13045       - eQMI_LOC_SV_SYSTEM_QZSS (7) --  QZSS satellite
13046  */
13047 
13048   /* Optional */
13049   /*  GNSS Receiver Clock Frequency Information */
13050   uint8_t rcvrClockFrequencyInfo_valid;  /**< Must be set to true if rcvrClockFrequencyInfo is being passed */
13051   qmiLocRcvrClockFrequencyInfoStructT_v02 rcvrClockFrequencyInfo;
13052 
13053   /* Optional */
13054   /*  Leap Second Information */
13055   uint8_t leapSecondInfo_valid;  /**< Must be set to true if leapSecondInfo is being passed */
13056   qmiLocLeapSecondInfoStructT_v02 leapSecondInfo;
13057 
13058   /* Optional */
13059   /*  GPS to GLONASS Intersystem Time Bias */
13060   uint8_t gpsGloInterSystemBias_valid;  /**< Must be set to true if gpsGloInterSystemBias is being passed */
13061   qmiLocInterSystemBiasStructT_v02 gpsGloInterSystemBias;
13062   /**<   \vspace{4pt} \n
13063        This is reported if both GPS and GLONASS system
13064        information reporting are enabled. \n
13065        - System 1: GPS \n
13066        - System 2: GLONASS
13067   */
13068 
13069   /* Optional */
13070   /*  GPS to BDS Intersystem Time Bias */
13071   uint8_t gpsBdsInterSystemBias_valid;  /**< Must be set to true if gpsBdsInterSystemBias is being passed */
13072   qmiLocInterSystemBiasStructT_v02 gpsBdsInterSystemBias;
13073   /**<   \vspace{4pt} \n
13074        This is reported if both GPS and BDS system
13075        information reporting are enabled. \n
13076        - System 1: GPS \n
13077        - System 2: BDS
13078   */
13079 
13080   /* Optional */
13081   /*  GPS to GALILEO Intersystem Time Bias */
13082   uint8_t gpsGalInterSystemBias_valid;  /**< Must be set to true if gpsGalInterSystemBias is being passed */
13083   qmiLocInterSystemBiasStructT_v02 gpsGalInterSystemBias;
13084   /**<   \vspace{4pt} \n
13085        This is reported if both GPS and GALILEO system
13086        information reporting are enabled. \n
13087        - System 1: GPS \n
13088        - System 2: GALILEO
13089   */
13090 
13091   /* Optional */
13092   /*  BDS to GLONASS Intersystem Time Bias */
13093   uint8_t bdsGloInterSystemBias_valid;  /**< Must be set to true if bdsGloInterSystemBias is being passed */
13094   qmiLocInterSystemBiasStructT_v02 bdsGloInterSystemBias;
13095   /**<   \vspace{4pt} \n
13096        This is reported if both BDS and GLONASS system
13097        information reporting are enabled. \n
13098        - System 1: BDS \n
13099        - System 2: GLONASS
13100   */
13101 
13102   /* Optional */
13103   /*  GAL to GLONASS Intersystem Time Bias */
13104   uint8_t galGloInterSystemBias_valid;  /**< Must be set to true if galGloInterSystemBias is being passed */
13105   qmiLocInterSystemBiasStructT_v02 galGloInterSystemBias;
13106   /**<   \vspace{4pt} \n
13107        This is reported if both GAL and GLONASS system
13108        information reporting are enabled. \n
13109        - System 1: GAL \n
13110        - System 2: GLONASS
13111   */
13112 
13113   /* Optional */
13114   /*  GAL to BDS Intersystem Time Bias */
13115   uint8_t galBdsInterSystemBias_valid;  /**< Must be set to true if galBdsInterSystemBias is being passed */
13116   qmiLocInterSystemBiasStructT_v02 galBdsInterSystemBias;
13117   /**<   \vspace{4pt} \n
13118        This is reported if both GAL and BDS system
13119        information reporting are enabled. \n
13120        - System 1: GAL \n
13121        - System 2: BDS
13122   */
13123 
13124   /* Optional */
13125   /*  Satellite System Time Information for GPS, BDS, GAL Constellation */
13126   uint8_t systemTime_valid;  /**< Must be set to true if systemTime is being passed */
13127   qmiLocGnssTimeStructT_v02 systemTime;
13128 
13129   /* Optional */
13130   /*  GLONASS System Time Information */
13131   uint8_t gloTime_valid;  /**< Must be set to true if gloTime is being passed */
13132   qmiLocGloTimeStructT_v02 gloTime;
13133 
13134   /* Optional */
13135   /*  Extended Time Information */
13136   uint8_t systemTimeExt_valid;  /**< Must be set to true if systemTimeExt is being passed */
13137   qmiLocGnssTimeExtStructT_v02 systemTimeExt;
13138 
13139   /* Optional */
13140   /*  Satellite System Measurement Report for Enabled Constellation */
13141   uint8_t svMeasurement_valid;  /**< Must be set to true if svMeasurement is being passed */
13142   uint32_t svMeasurement_len;  /**< Must be set to # of elements in svMeasurement */
13143   qmiLocSVMeasurementStructT_v02 svMeasurement[QMI_LOC_SV_MEAS_LIST_MAX_SIZE_V02];
13144 
13145   /* Optional */
13146   /*  Extended Time Information - Cumulative number of clock resets */
13147   uint8_t numClockResets_valid;  /**< Must be set to true if numClockResets is being passed */
13148   uint32_t numClockResets;
13149   /**<   Number of clock reset/discontinuities detected, affecting local HW counter value */
13150 }qmiLocEventGnssSvMeasInfoIndMsgT_v02;  /* Message */
13151 /**
13152     @}
13153   */
13154 
13155 typedef uint16_t qmiLocSvPolyStatusMaskT_v02;
13156 #define QMI_LOC_SV_POLY_SRC_ALM_CORR_V02 ((qmiLocSvPolyStatusMaskT_v02)0x01) /**<  Polynomials based on XTRA  */
13157 #define QMI_LOC_SV_POLY_GLO_STR4_V02 ((qmiLocSvPolyStatusMaskT_v02)0x02) /**<  GLONASS string 4 has been received  */
13158 typedef uint16_t qmiLocSvPolyStatusMaskValidityT_v02;
13159 #define QMI_LOC_SV_POLY_SRC_ALM_CORR_VALID_V02 ((qmiLocSvPolyStatusMaskValidityT_v02)0x01) /**<  Validity status for QMI_LOC_SV_POLY_SRC_ALM_CORR  */
13160 #define QMI_LOC_SV_POLY_GLO_STR4_VALID_V02 ((qmiLocSvPolyStatusMaskValidityT_v02)0x02) /**<  Validity status for QMI_LOC_SV_POLY_GLO_STR4   */
13161 /** @addtogroup loc_qmi_messages
13162     @{
13163   */
13164 /** Indication Message; Sends a satellite polynomial report to the control point. */
13165 typedef struct {
13166 
13167   /* Mandatory */
13168   /*  GNSS SV Polynomial Report */
13169   uint16_t gnssSvId;
13170   /**<   GNSS SV ID. \begin{itemize1}
13171        \item    Range:    \begin{itemize1}
13172          \item    For GPS:     1 to 32
13173          \item    For GLONASS: 65 to 96 (when the slot number to SV ID mapping is unknown, set to 255)
13174          \item    For SBAS:    120 to 158 and 183 to 187
13175          \item    For QZSS:    193 to 197
13176          \item    For BDS:     201 to 237
13177          \item    For GAL:     301 to 336
13178        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
13179 
13180   /* Mandatory */
13181   /*  Reference Time for Polynomial Calculations */
13182   double T0;
13183   /**<    Reference time for polynomial calculations. \n
13184            - GPS, QZSS: Seconds in the week \n
13185            - GLO: Full seconds since Jan. 1, 1996 \n
13186            - BDS: Full seconds since Jan. 1, 2006 \n
13187            - GAL: Calculated from 00:00 UT on Sunday, August 22, 1999 (midnight between August 21 and August 22)
13188     */
13189 
13190   /* Mandatory */
13191   /*  SV Polynomial Validity Status */
13192   qmiLocSvPolyStatusMaskValidityT_v02 svPolyFlagValid;
13193   /**<   Validity mask for bits in svPolyFlags. A set bit in svPolyFlagValid indicates that a
13194  corresponding bit in svPolyFlags has valid status information.
13195 
13196  Valid bitmasks: \n
13197       - QMI_LOC_SV_POLY_SRC_ALM_CORR_VALID (0x01) --  Validity status for QMI_LOC_SV_POLY_SRC_ALM_CORR
13198       - QMI_LOC_SV_POLY_GLO_STR4_VALID (0x02) --  Validity status for QMI_LOC_SV_POLY_GLO_STR4   */
13199 
13200   /* Mandatory */
13201   /*  SV Polynomial Report Status */
13202   qmiLocSvPolyStatusMaskT_v02 svPolyFlags;
13203   /**<   Flags indicating the status of a polynomial report.
13204 
13205  Valid bitmasks: \n
13206       - QMI_LOC_SV_POLY_SRC_ALM_CORR (0x01) --  Polynomials based on XTRA
13207       - QMI_LOC_SV_POLY_GLO_STR4 (0x02) --  GLONASS string 4 has been received  */
13208 
13209   /* Optional */
13210   /*  Polynomial Coefficient's 0th Term for X, Y, and Z Coordinates */
13211   uint8_t polyCoeffXYZ0_valid;  /**< Must be set to true if polyCoeffXYZ0 is being passed */
13212   double polyCoeffXYZ0[QMI_LOC_SV_POLY_XYZ_0_TH_ORDER_COEFF_SIZE_V02];
13213   /**<   Polynomial coefficient's 0th term for X, Y, and Z coordinates (C0X, C0Y, C0Z). \n
13214              - Units: Meters
13215     */
13216 
13217   /* Optional */
13218   /*  Polynomial Coefficient's 1st, 2nd, and 3rd Terms for X, Y, and Z Coordinates */
13219   uint8_t polyCoefXYZN_valid;  /**< Must be set to true if polyCoefXYZN is being passed */
13220   double polyCoefXYZN[QMI_LOC_SV_POLY_XYZ_N_TH_ORDER_COEFF_SIZE_V02];
13221   /**<    Polynomial coefficient's 1st, 2nd, and 3rd terms for X, Y, and Z coordinates (C1X, C2X,... C2Z, C3Z). \begin{itemize1}
13222           \item Units: \begin{itemize1}
13223              \item 1st term -- Meters/second
13224              \item 2nd term -- Meters/second^2
13225              \item 3rd term -- Meters/seconds^3 \vspace{-0.18in} \end{itemize1} end{itemize1}
13226     */
13227 
13228   /* Optional */
13229   /*  Polynomial Coefficients for Satellite Clock Bias Correction */
13230   uint8_t polyCoefClockBias_valid;  /**< Must be set to true if polyCoefClockBias is being passed */
13231   float polyCoefClockBias[QMI_LOC_SV_POLY_SV_CLKBIAS_COEFF_SIZE_V02];
13232   /**<    Polynomial coefficients for satellite clock bias correction (C0T, C1T, C2T, C3T). \begin{itemize1}
13233           \item Units: \begin{itemize1}
13234              \item 0th term -- Milliseconds/second
13235              \item 1st term -- Milliseconds/second^2
13236              \item 2nd term -- Milliseconds/second^3
13237              \item 3rd term -- Milliseconds/second^4 \vspace{-0.18in} \end{itemize1} end{itemize1}
13238     */
13239 
13240   /* Optional */
13241   /*  GLONASS Frequency Number */
13242   uint8_t gloFrequency_valid;  /**< Must be set to true if gloFrequency is being passed */
13243   uint8_t gloFrequency;
13244   /**<   GLONASS frequency number + 7. \n
13245          Valid only for GLONASS systems and
13246          must be ignored for all other systems. \n
13247              - Range: 1 to 14
13248     */
13249 
13250   /* Optional */
13251   /*  Ephemeris Reference Time */
13252   uint8_t IODE_valid;  /**< Must be set to true if IODE is being passed */
13253   uint16_t IODE;
13254   /**<   Ephemeris reference time. \n
13255          - GPS -- Issue of data ephemeris used (unitless) \n
13256          - GLONASS -- Tb 7-bit \n
13257          - Galileo -- 10-bit
13258     */
13259 
13260   /* Optional */
13261   /*  Enhanced Reference Time */
13262   uint8_t enhancedIOD_valid;  /**< Must be set to true if enhancedIOD is being passed */
13263   uint32_t enhancedIOD;
13264   /**<   For BDS ephemeris, this is TOE.
13265     */
13266 
13267   /* Optional */
13268   /*  SV Position Uncertainty */
13269   uint8_t svPosUnc_valid;  /**< Must be set to true if svPosUnc is being passed */
13270   float svPosUnc;
13271   /**<    SV position uncertainty. \n
13272              - Units: Meters
13273     */
13274 
13275   /* Optional */
13276   /*  Iono Delay */
13277   uint8_t ionoDelay_valid;  /**< Must be set to true if ionoDelay is being passed */
13278   float ionoDelay;
13279   /**<   Ionospheric delay at T0. \n
13280              - Units: Meters
13281     */
13282 
13283   /* Optional */
13284   /*  Iono Delay Rate */
13285   uint8_t ionoDot_valid;  /**< Must be set to true if ionoDot is being passed */
13286   float ionoDot;
13287   /**<   Ionospheric delay rate. \n
13288              - Units: Meters/second
13289     */
13290 
13291   /* Optional */
13292   /*  SBAS Iono Delay */
13293   uint8_t sbasIonoDelay_valid;  /**< Must be set to true if sbasIonoDelay is being passed */
13294   float sbasIonoDelay;
13295   /**<   SBAS ionospheric delay at T0. \n
13296              - Units: Meters
13297     */
13298 
13299   /* Optional */
13300   /*  SBAS Iono Delay Rate */
13301   uint8_t sbasIonoDot_valid;  /**< Must be set to true if sbasIonoDot is being passed */
13302   float sbasIonoDot;
13303   /**<   SBAS ionospheric delay rate. \n
13304              - Units: Meters/second
13305     */
13306 
13307   /* Optional */
13308   /*  Tropospheric Delay */
13309   uint8_t tropoDelay_valid;  /**< Must be set to true if tropoDelay is being passed */
13310   float tropoDelay;
13311   /**<   Tropospheric delay. \n
13312              - Units: Meters
13313     */
13314 
13315   /* Optional */
13316   /*  Satellite Elevation */
13317   uint8_t elevation_valid;  /**< Must be set to true if elevation is being passed */
13318   float elevation;
13319   /**<   Satellite elevation at T0. \n
13320              - Units: Radians
13321     */
13322 
13323   /* Optional */
13324   /*  Satellite Elevation Rate */
13325   uint8_t elevationDot_valid;  /**< Must be set to true if elevationDot is being passed */
13326   float elevationDot;
13327   /**<   Satellite elevation rate. \n
13328              - Units: Radians/second
13329     */
13330 
13331   /* Optional */
13332   /*  Satellite Elevation Uncertainty */
13333   uint8_t elenationUnc_valid;  /**< Must be set to true if elenationUnc is being passed */
13334   float elenationUnc;
13335   /**<   SV elevation uncertainty. \n
13336              - Units: Radians
13337     */
13338 
13339   /* Optional */
13340   /*  Polynomial Coefficients for SV Velocity */
13341   uint8_t velCoef_valid;  /**< Must be set to true if velCoef is being passed */
13342   double velCoef[QMI_LOC_SV_POLY_VELOCITY_COEF_SIZE_V02];
13343   /**<   Polynomial coefficients for SV velocity (C0X, C1X, C2X, C3X,... C2Z, C3Z). \begin{itemize1}
13344          \item Units: \begin{itemize1}
13345             \item 0th term -- Meters/second
13346             \item 1st term -- Meters/second^2
13347             \item 2nd term -- Meters/second^3
13348             \item 3rd term -- Meters/second^4 \vspace{-0.18in} \end{itemize1} end{itemize1}
13349     */
13350 }qmiLocEventGnssSvPolyIndMsgT_v02;  /* Message */
13351 /**
13352     @}
13353   */
13354 
13355 /** @addtogroup loc_qmi_aggregates
13356     @{
13357   */
13358 typedef struct {
13359 
13360   uint8_t wifiApMacAddress[QMI_LOC_WIFI_MAC_ADDR_LENGTH_V02];
13361   /**<   MAC address of the Wi-Fi AP. */
13362 }qmiLocWifiApMacAddressStructT_v02;  /* Type */
13363 /**
13364     @}
13365   */
13366 
13367 /** @addtogroup loc_qmi_aggregates
13368     @{
13369   */
13370 typedef struct {
13371 
13372   char uuid[QMI_LOC_MAX_IBEACON_UUID_STR_LENGTH_V02 + 1];
13373   /**<   NULL-terminated IBeacon identifier string; a 128-bit value. */
13374 
13375   uint32_t majorNumber;
13376   /**<   IBeacon major number.*/
13377 
13378   uint32_t minorNumber;
13379   /**<   IBeacon minor number.*/
13380 }qmiLocIBeaconIdStructT_v02;  /* Type */
13381 /**
13382     @}
13383   */
13384 
13385 /** @addtogroup loc_qmi_messages
13386     @{
13387   */
13388 /** Request Message; Used by the control point to inject the Geofence context. */
13389 typedef struct {
13390 
13391   /* Mandatory */
13392   /*  Transaction ID */
13393   uint32_t transactionId;
13394   /**<   Identifies the transaction. The transaction ID
13395        is returned in the Add Geofence Context indication. */
13396 
13397   /* Optional */
13398   /*  Geofence ID */
13399   uint8_t geofenceId_valid;  /**< Must be set to true if geofenceId is being passed */
13400   uint32_t geofenceId;
13401   /**<   Geofence identifier allocated by the engine.    \n
13402        If the Geofence ID is not provided, a Geofence is created with an Area ID
13403        list only (e.g., Wi-Fi only list Geofence). \n
13404        If the Geofence ID is provided, the added list is used as assistance data
13405        to the existing Geofence. */
13406 
13407   /* Optional */
13408   /*  Wi-Fi AP SSID String */
13409   uint8_t wifiApSsidInfo_valid;  /**< Must be set to true if wifiApSsidInfo is being passed */
13410   uint32_t wifiApSsidInfo_len;  /**< Must be set to # of elements in wifiApSsidInfo */
13411   qmiLocWifiApSsidStructT_v02 wifiApSsidInfo[QMI_LOC_WIFI_AREA_ID_LIST_LENGTH_V02];
13412   /**<   \vspace{4pt} \n The ordering of the Wi-Fi AP SSID list should match the Wi-Fi AP MAC address
13413        list when both are provided,
13414        that is, the first element of the Wi-Fi AP SSID list must be the SSID of the AP whose MAC
13415        address is in the first element in the Wi-Fi AP MAC address, etc.  */
13416 
13417   /* Optional */
13418   /*  Wi-Fi AP MAC Address List for the Geofence */
13419   uint8_t wifiApMacAddressList_valid;  /**< Must be set to true if wifiApMacAddressList is being passed */
13420   uint32_t wifiApMacAddressList_len;  /**< Must be set to # of elements in wifiApMacAddressList */
13421   qmiLocWifiApMacAddressStructT_v02 wifiApMacAddressList[QMI_LOC_WIFI_AREA_ID_LIST_LENGTH_V02];
13422   /**<   The ordering of the Wi-Fi AP SSID list should match the Wi-Fi AP MAC address
13423        list when both are provided,
13424        that is, the first element of the Wi-Fi AP SSID list must be the SSID of the AP whose MAC
13425        address is in the first element in the Wi-Fi AP MAC address, etc.  */
13426 
13427   /* Optional */
13428   /*  TDSCDMA Cell ID List for the Geofence */
13429   uint8_t tdsCdmaCellIDList_valid;  /**< Must be set to true if tdsCdmaCellIDList is being passed */
13430   qmiLocTDSCDMACellIdStructT_v02 tdsCdmaCellIDList[QMI_LOC_CELL_ID_LIST_LENGTH_V02];
13431   /**<   \n Identifies the TDSCDMA cell on which the device is currently camped. */
13432 
13433   /* Optional */
13434   /*  WCDMA Cell ID List for the Geofence */
13435   uint8_t wcdmaCellIDList_valid;  /**< Must be set to true if wcdmaCellIDList is being passed */
13436   uint32_t wcdmaCellIDList_len;  /**< Must be set to # of elements in wcdmaCellIDList */
13437   qmiLocWCDMACellIdStructT_v02 wcdmaCellIDList[QMI_LOC_CELL_ID_LIST_LENGTH_V02];
13438   /**<   \vspace{4pt} \n Identifies the WCDMA cell on which the device is currently camped. */
13439 
13440   /* Optional */
13441   /*  GSM Cell ID List for the Geofence */
13442   uint8_t gsmCellIDList_valid;  /**< Must be set to true if gsmCellIDList is being passed */
13443   uint32_t gsmCellIDList_len;  /**< Must be set to # of elements in gsmCellIDList */
13444   qmiLocGSMCellIdStructT_v02 gsmCellIDList[QMI_LOC_CELL_ID_LIST_LENGTH_V02];
13445   /**<   \n Identifies the GSM cell on which the device is currently camped. */
13446 
13447   /* Optional */
13448   /*  IBeacon List of the Geofence */
13449   uint8_t iBeaconList_valid;  /**< Must be set to true if iBeaconList is being passed */
13450   uint32_t iBeaconList_len;  /**< Must be set to # of elements in iBeaconList */
13451   qmiLocIBeaconIdStructT_v02 iBeaconList[QMI_LOC_IBEACON_LIST_LENGTH_V02];
13452 }qmiLocAddGeofenceContextReqMsgT_v02;  /* Message */
13453 /**
13454     @}
13455   */
13456 
13457 /** @addtogroup loc_qmi_messages
13458     @{
13459   */
13460 /** Indication Message; Used by the control point to inject the Geofence context. */
13461 typedef struct {
13462 
13463   /* Mandatory */
13464   /*  Status of the Add Geofence Context Request */
13465   qmiLocStatusEnumT_v02 status;
13466   /**<   Status of the Add Geofence Context request.
13467 
13468  Valid values: \n
13469       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
13470       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
13471       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
13472       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
13473       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
13474       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
13475       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
13476       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
13477       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
13478       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
13479       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
13480  */
13481 
13482   /* Optional */
13483   /*  Transaction ID */
13484   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
13485   uint32_t transactionId;
13486   /**<   Transaction ID that was specified in the Add Geofence Context
13487        request. This parameter is always present
13488        if the status field is set to SUCCESS. */
13489 
13490   /* Optional */
13491   /*  Geofence ID */
13492   uint8_t geofenceId_valid;  /**< Must be set to true if geofenceId is being passed */
13493   uint32_t geofenceId;
13494   /**<   Geofence identifier allocated by the engine.    \n
13495        If the client specifies the Geofence ID during the Add Geofence Context request,
13496        the same ID is returned.    \n
13497        If the client does not specify the Geofence ID during the Add Geofence Context request,
13498        a new Geofence ID is created by the Geofence engine and returned. */
13499 
13500   /* Optional */
13501   /*  Context ID */
13502   uint8_t contextId_valid;  /**< Must be set to true if contextId is being passed */
13503   uint32_t contextId;
13504   /**<   Geofence context ID allocated by the engine.
13505        The context ID is generated by the Geofence engine to identify the context
13506        for a particular Geofence ID.
13507        The same Geofence ID may be associated with multiple contexts.  */
13508 }qmiLocAddGeofenceContextIndMsgT_v02;  /* Message */
13509 /**
13510     @}
13511   */
13512 
13513 /** @addtogroup loc_qmi_messages
13514     @{
13515   */
13516 /** Request Message; Used by the control point to inject the Geofence engine context. */
13517 typedef struct {
13518 
13519   /* Mandatory */
13520   /*  Transaction ID */
13521   uint32_t transactionId;
13522   /**<   Identifies the transaction. The transaction ID
13523        is returned in the Set Geofence Engine Context indication. */
13524 
13525   /* Optional */
13526   /*  UTC Timestamp of the Day */
13527   uint8_t utcTimeOfDay_valid;  /**< Must be set to true if utcTimeOfDay is being passed */
13528   uint64_t utcTimeOfDay;
13529   /**<   The UTC time of the day.  */
13530 
13531   /* Optional */
13532   /*  Temperature of the Day in Fahrenheit */
13533   uint8_t temperature_valid;  /**< Must be set to true if temperature is being passed */
13534   int32_t temperature;
13535   /**<   The temperature of the day in degrees Fahrenheit.  */
13536 }qmiLocSetGeofenceEngineContextReqMsgT_v02;  /* Message */
13537 /**
13538     @}
13539   */
13540 
13541 /** @addtogroup loc_qmi_messages
13542     @{
13543   */
13544 /** Indication Message; Used by the control point to inject the Geofence engine context. */
13545 typedef struct {
13546 
13547   /* Mandatory */
13548   /*  Status of the Set Geofence Engine Context Request */
13549   qmiLocStatusEnumT_v02 status;
13550   /**<   Status of the Set Geofence Engine Context request.
13551 
13552  Valid values: \n
13553       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
13554       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
13555       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
13556       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
13557       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
13558       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
13559       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
13560       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
13561       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
13562       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
13563       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
13564  */
13565 
13566   /* Optional */
13567   /*  Transaction ID */
13568   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
13569   uint32_t transactionId;
13570   /**<   Transaction ID that was specified in the Set Geofence Engine Context
13571        request. This parameter will always be present
13572        if the status field is set to SUCCESS. */
13573 }qmiLocSetGeofenceEngineContextIndMsgT_v02;  /* Message */
13574 /**
13575     @}
13576   */
13577 
13578 /** @addtogroup loc_qmi_messages
13579     @{
13580   */
13581 /** Request Message; Used by the control point to delete the Geofence context. */
13582 typedef struct {
13583 
13584   /* Mandatory */
13585   /*  Transaction ID */
13586   uint32_t transactionId;
13587   /**<   Identifies the transaction. The transaction ID
13588        is returned in the Delete Geofence Context indication. */
13589 
13590   /* Mandatory */
13591   /*  Geofence ID */
13592   uint32_t geofenceId;
13593   /**<   Identifies the Geofence whose context is to be deleted.  */
13594 
13595   /* Optional */
13596   /*  Context ID */
13597   uint8_t contextId_valid;  /**< Must be set to true if contextId is being passed */
13598   uint32_t contextId;
13599   /**<   Identifies the context associated with the Geofence to be deleted.
13600        If not specified, all contexts associated with this Geofence are deleted. */
13601 }qmiLocDeleteGeofenceContextReqMsgT_v02;  /* Message */
13602 /**
13603     @}
13604   */
13605 
13606 /** @addtogroup loc_qmi_messages
13607     @{
13608   */
13609 /** Indication Message; Used by the control point to delete the Geofence context. */
13610 typedef struct {
13611 
13612   /* Mandatory */
13613   /*  Status of the Delete Geofence Context Request */
13614   qmiLocStatusEnumT_v02 status;
13615   /**<   Status of the Delete Geofence Context request.
13616 
13617  Valid values: \n
13618       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
13619       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
13620       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
13621       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
13622       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
13623       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
13624       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
13625       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
13626       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
13627       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
13628       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
13629  */
13630 
13631   /* Optional */
13632   /*  Transaction ID */
13633   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
13634   uint32_t transactionId;
13635   /**<   Transaction ID that was specified in the Delete Geofence Context request.
13636        This parameter will always be present
13637        if the status field is set to SUCCESS. */
13638 
13639   /* Optional */
13640   /*  Geofence ID */
13641   uint8_t geofenceId_valid;  /**< Must be set to true if geofenceId is being passed */
13642   uint32_t geofenceId;
13643   /**<   Identifier for the Geofence whose context was deleted. */
13644 
13645   /* Optional */
13646   /*  Context ID */
13647   uint8_t contextId_valid;  /**< Must be set to true if contextId is being passed */
13648   uint32_t contextId;
13649   /**<   Identifier for the context of the Geofence that was deleted. */
13650 }qmiLocDeleteGeofenceContextIndMsgT_v02;  /* Message */
13651 /**
13652     @}
13653   */
13654 
13655 /** @addtogroup loc_qmi_messages
13656     @{
13657   */
13658 /** Request Message; Injects Global Terrestrial Positioning (GTP) WWAN client downloaded data. */
13659 typedef struct {
13660 
13661   /* Mandatory */
13662   /*  Data */
13663   uint32_t ClientDownloadedData_len;  /**< Must be set to # of elements in ClientDownloadedData */
13664   char ClientDownloadedData[QMI_LOC_MAX_GTP_WWAN_CLIENT_DOWNLOADED_DATA_LEN_V02];
13665   /**<   All GTP response client downloaded data, including WWAN, WLAN, common, etc. \n
13666          - Type: Array of bytes \n
13667          - Maximum length of the array: 512
13668     */
13669 }qmiLocInjectGtpClientDownloadedDataReqMsgT_v02;  /* Message */
13670 /**
13671     @}
13672   */
13673 
13674 /** @addtogroup loc_qmi_messages
13675     @{
13676   */
13677 /** Indication Message; Injects Global Terrestrial Positioning (GTP) WWAN client downloaded data. */
13678 typedef struct {
13679 
13680   /* Mandatory */
13681   /*  GTP Client Downloaded Data Injection Status */
13682   qmiLocStatusEnumT_v02 status;
13683   /**<   Status of the GTP client downloaded data injection.
13684  Valid values: \n
13685       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
13686       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
13687       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
13688       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
13689       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
13690       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
13691       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
13692       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
13693       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
13694       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
13695       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
13696  */
13697 }qmiLocInjectGtpClientDownloadedDataIndMsgT_v02;  /* Message */
13698 /**
13699     @}
13700   */
13701 
13702 /** @addtogroup loc_qmi_messages
13703     @{
13704   */
13705 /** Request Message; Sends a GDT upload begin response to GDT MP. */
13706 typedef struct {
13707 
13708   /* Mandatory */
13709   /*  GDT Service ID */
13710   qmiLocGdtServiceIdEnumT_v02 serviceId;
13711   /**<   Values: \n
13712       - eQMI_LOC_GDT_SERVICE_WWAN (1) --  GDT service for WWAN UL
13713       - eQMI_LOC_GDT_SERVICE_WWAN_DL (2) --  GDT service for WWAN DL  */
13714 
13715   /* Mandatory */
13716   /*  Session ID */
13717   uint32_t sessionId;
13718   /**<   Session ID. */
13719 
13720   /* Mandatory */
13721   /*  Access Status to GDT */
13722   qmiLocGdtAccessStatusEnumT_v02 gdtAccessStatus;
13723   /**<   GDT status information for this service ID.
13724 
13725  Values: \n
13726       - eQMI_LOC_GDT_ACCESS_ALLOWED (1) --  GDT access to the service is allowed
13727       - eQMI_LOC_GDT_ACCESS_FAILED (2) --  Any type of GDT access error
13728       - eQMI_LOC_GDT_ACCESS_NOT_ALLOWED (3) --  GDT access to the service is not allowed
13729  */
13730 }qmiLocGdtUploadBeginStatusReqMsgT_v02;  /* Message */
13731 /**
13732     @}
13733   */
13734 
13735 /** @addtogroup loc_qmi_messages
13736     @{
13737   */
13738 /** Indication Message; Sends a GDT upload begin response to GDT MP. */
13739 typedef struct {
13740 
13741   /* Mandatory */
13742   /*  GDT Upload Begin Status */
13743   qmiLocStatusEnumT_v02 status;
13744   /**<   Status of the GDT begin request.
13745  Valid values: \n
13746       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
13747       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
13748       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
13749       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
13750       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
13751       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
13752       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
13753       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
13754       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
13755       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
13756       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
13757  */
13758 }qmiLocGdtUploadBeginStatusIndMsgT_v02;  /* Message */
13759 /**
13760     @}
13761   */
13762 
13763 /** @addtogroup loc_qmi_enums
13764     @{
13765   */
13766 typedef enum {
13767   QMILOCGDTENDACKENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
13768   eQMI_LOC_GDT_ACK_SUCCESS_V02 = 1, /**<  The sent data is accepeted   */
13769   eQMI_LOC_GDT_ACK_FAILED_V02 = 2, /**<  The sent data was not accepted   */
13770   eQMI_LOC_GDT_ACK_INVALID_V02 = 3, /**<  General error in the received data  */
13771   QMILOCGDTENDACKENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
13772 }qmiLocGdtEndAckEnumT_v02;
13773 /**
13774     @}
13775   */
13776 
13777 /** @addtogroup loc_qmi_messages
13778     @{
13779   */
13780 /** Request Message; Sends a GDT upload end response to GDT MP. */
13781 typedef struct {
13782 
13783   /* Mandatory */
13784   /*  GDT Service ID */
13785   qmiLocGdtServiceIdEnumT_v02 serviceId;
13786   /**<   Values: \n
13787 
13788       - eQMI_LOC_GDT_SERVICE_WWAN (1) --  GDT service for WWAN UL
13789       - eQMI_LOC_GDT_SERVICE_WWAN_DL (2) --  GDT service for WWAN DL */
13790 
13791   /* Mandatory */
13792   /*  Session ID */
13793   uint32_t sessionId;
13794   /**<   Session ID. */
13795 
13796   /* Mandatory */
13797   /*  Access Status to GDT */
13798   qmiLocGdtEndAckEnumT_v02 gdtEndStatus;
13799   /**<   GDT end status information for this service ID.
13800 
13801  Valid values: \n
13802       - eQMI_LOC_GDT_ACK_SUCCESS (1) --  The sent data is accepeted
13803       - eQMI_LOC_GDT_ACK_FAILED (2) --  The sent data was not accepted
13804       - eQMI_LOC_GDT_ACK_INVALID (3) --  General error in the received data
13805  */
13806 }qmiLocGdtUploadEndReqMsgT_v02;  /* Message */
13807 /**
13808     @}
13809   */
13810 
13811 /** @addtogroup loc_qmi_messages
13812     @{
13813   */
13814 /** Indication Message; Sends a GDT upload end response to GDT MP. */
13815 typedef struct {
13816 
13817   /* Mandatory */
13818   /*  UTC GDT Upload End Status */
13819   qmiLocStatusEnumT_v02 status;
13820   /**<   Status of the GDT upload end request.
13821 
13822  Valid values: \n
13823       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
13824       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
13825       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
13826       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
13827       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
13828       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
13829       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
13830       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
13831       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
13832       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
13833       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
13834  */
13835 }qmiLocGdtUploadEndIndMsgT_v02;  /* Message */
13836 /**
13837     @}
13838   */
13839 
13840 /** @addtogroup loc_qmi_enums
13841     @{
13842   */
13843 typedef enum {
13844   QMILOCGTPAPSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
13845   eQMI_LOC_GTP_AP_STATUS_DB_READY_V02 = 1, /**<  Indicates that the AP is initialized and ready to process MP download requests   */
13846   eQMI_LOC_GTP_AP_STATUS_DB_REFRESHED_V02 = 2, /**<  Indicates that the AP has successfully refreshed partitions  */
13847   eQMI_LOC_GTP_AP_STATUS_DB_DELETED_V02 = 3, /**<  Indicates that the AP has removed local partitions   */
13848   QMILOCGTPAPSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
13849 }qmiLocGtpApStatusEnumT_v02;
13850 /**
13851     @}
13852   */
13853 
13854 /** @addtogroup loc_qmi_messages
13855     @{
13856   */
13857 /** Request Message; Sends a Global Terrestrial Position (GTP) message to the MP
13858                     notifying the GTP MP of AP DB readiness. */
13859 typedef struct {
13860 
13861   /* Mandatory */
13862   /*  AP DB Status */
13863   qmiLocGtpApStatusEnumT_v02 gtpApDbStatus;
13864   /**<   GTP AP DB status information.
13865 
13866  Valid values: \n
13867       - eQMI_LOC_GTP_AP_STATUS_DB_READY (1) --  Indicates that the AP is initialized and ready to process MP download requests
13868       - eQMI_LOC_GTP_AP_STATUS_DB_REFRESHED (2) --  Indicates that the AP has successfully refreshed partitions
13869       - eQMI_LOC_GTP_AP_STATUS_DB_DELETED (3) --  Indicates that the AP has removed local partitions
13870  */
13871 
13872   /* Optional */
13873   /*  AP PCID (8 byte) */
13874   uint8_t gtpApPcid64_valid;  /**< Must be set to true if gtpApPcid64 is being passed */
13875   uint64_t gtpApPcid64;
13876   /**<   AP pseudoclient ID. */
13877 
13878   /* Optional */
13879   /*  OEM ID (non-NULL Terminated) */
13880   uint8_t oemId_valid;  /**< Must be set to true if oemId is being passed */
13881   uint32_t oemId_len;  /**< Must be set to # of elements in oemId */
13882   char oemId[QMI_LOC_MAX_OEM_ID_LEN_V02];
13883   /**<   OEM ID. \n
13884          - Type: character string \n
13885          - Maximum length of the array: 256
13886     */
13887 
13888   /* Optional */
13889   /*  Model ID (non-NULL Terminated) */
13890   uint8_t modelId_valid;  /**< Must be set to true if modelId is being passed */
13891   uint32_t modelId_len;  /**< Must be set to # of elements in modelId */
13892   char modelId[QMI_LOC_MAX_MODEL_ID_LEN_V02];
13893   /**<   Model ID. \n
13894          - Type: character string \n
13895          - Maximum length of the array: 256
13896     */
13897 }qmiLocGtpApStatusReqMsgT_v02;  /* Message */
13898 /**
13899     @}
13900   */
13901 
13902 /** @addtogroup loc_qmi_aggregates
13903     @{
13904   */
13905 typedef struct {
13906 
13907   uint8_t asnMajorVersion;
13908   /**<   ASN major version. */
13909 
13910   uint8_t asnMinorVersion;
13911   /**<   ASN minor version. */
13912 
13913   uint8_t asnPointVersion;
13914   /**<   ASN point version. */
13915 }qmiLocGtpAsnVerStructT_v02;  /* Type */
13916 /**
13917     @}
13918   */
13919 
13920 /** @addtogroup loc_qmi_messages
13921     @{
13922   */
13923 /** Indication Message; Sends a Global Terrestrial Position (GTP) message to the MP
13924                     notifying the GTP MP of AP DB readiness. */
13925 typedef struct {
13926 
13927   /* Mandatory */
13928   /*  GTP MP Status */
13929   qmiLocStatusEnumT_v02 status;
13930   /**<   Status of the GTP handshake.
13931  Valid values: \n
13932       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
13933       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
13934       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
13935       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
13936       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
13937       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
13938       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
13939       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
13940       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
13941       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
13942       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
13943  */
13944 
13945   /* Mandatory */
13946   /*  MP Client Software Version */
13947   uint16_t clientSoftwareVersion;
13948   /**<   MP client software version. */
13949 
13950   /* Mandatory */
13951   /*  MP ASN Version */
13952   qmiLocGtpAsnVerStructT_v02 asnVersion;
13953 }qmiLocGtpApStatusIndMsgT_v02;  /* Message */
13954 /**
13955     @}
13956   */
13957 
13958 /** @addtogroup loc_qmi_enums
13959     @{
13960   */
13961 typedef enum {
13962   QMILOCGTPPROCESSSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
13963   eQMI_LOC_GTP_PROCESS_SUCCESS_FROM_LOCAL_V02 = 1, /**<  DL processing is allowed using a local AP cache   */
13964   eQMI_LOC_GTP_PROCESS_SUCCESS_FROM_SERVER_V02 = 2, /**<  DL processing is allowed using server access   */
13965   eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_AP_NOT_READY_V02 = 3, /**<  DL processing is not allowed because the AP is not ready   */
13966   eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_AP_TIMEOUT_V02 = 4, /**<  DL processing is not allowed because the AP cannot process within the given interval   */
13967   eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_NO_CONNECTIVITY_V02 = 5, /**<  DL processing is not allowed because the AP has no connectivity   */
13968   eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_THROTTLED_V02 = 6, /**<  DL processing is not allowed due to throttling   */
13969   eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_OTHER_V02 = 7, /**<  DL processing is not allowed for any other reason   */
13970   eQMI_LOC_GTP_PROCESS_FAILED_UNSPECIFIED_V02 = 8, /**<  DL processing failed for any other reason   */
13971   QMILOCGTPPROCESSSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
13972 }qmiLocGtpProcessStatusEnumT_v02;
13973 /**
13974     @}
13975   */
13976 
13977 /** @addtogroup loc_qmi_messages
13978     @{
13979   */
13980 /** Request Message; Sends a GTP message to the MP notifying it of AP DB readiness. */
13981 typedef struct {
13982 
13983   /* Mandatory */
13984   /*  GDT Service ID */
13985   qmiLocGdtServiceIdEnumT_v02 serviceId;
13986   /**<   Values: \n
13987 
13988       - eQMI_LOC_GDT_SERVICE_WWAN (1) --  GDT service for WWAN UL
13989       - eQMI_LOC_GDT_SERVICE_WWAN_DL (2) --  GDT service for WWAN DL  */
13990 
13991   /* Mandatory */
13992   /*  Session ID */
13993   uint32_t sessionId;
13994   /**<   Session ID. */
13995 
13996   /* Mandatory */
13997   /*  AP Process Status */
13998   qmiLocGtpProcessStatusEnumT_v02 processingStatus;
13999   /**<   AP processing status information for this service ID.
14000 
14001  Valid values: \n
14002       - eQMI_LOC_GTP_PROCESS_SUCCESS_FROM_LOCAL (1) --  DL processing is allowed using a local AP cache
14003       - eQMI_LOC_GTP_PROCESS_SUCCESS_FROM_SERVER (2) --  DL processing is allowed using server access
14004       - eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_AP_NOT_READY (3) --  DL processing is not allowed because the AP is not ready
14005       - eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_AP_TIMEOUT (4) --  DL processing is not allowed because the AP cannot process within the given interval
14006       - eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_NO_CONNECTIVITY (5) --  DL processing is not allowed because the AP has no connectivity
14007       - eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_THROTTLED (6) --  DL processing is not allowed due to throttling
14008       - eQMI_LOC_GTP_PROCESS_NOT_ALLOWED_OTHER (7) --  DL processing is not allowed for any other reason
14009       - eQMI_LOC_GTP_PROCESS_FAILED_UNSPECIFIED (8) --  DL processing failed for any other reason
14010  */
14011 
14012   /* Optional */
14013   /*  WWAN Download Flag */
14014   uint8_t wwanDownloadFlag_valid;  /**< Must be set to true if wwanDownloadFlag is being passed */
14015   uint16_t wwanDownloadFlag;
14016   /**<   WWAN download flag. */
14017 
14018   /* Optional */
14019   /*  Encoded Response Location Information */
14020   uint8_t respLocInfo_valid;  /**< Must be set to true if respLocInfo is being passed */
14021   uint32_t respLocInfo_len;  /**< Must be set to # of elements in respLocInfo */
14022   uint8_t respLocInfo[QMI_LOC_MAX_GTP_RLI_LEN_V02];
14023   /**<   Response location information encoded in asn.1 format. \n
14024          - Type: Array of bytes \n
14025          - Maximum length of the array: 256
14026     */
14027 }qmiLocGdtDownloadBeginStatusReqMsgT_v02;  /* Message */
14028 /**
14029     @}
14030   */
14031 
14032 /** @addtogroup loc_qmi_messages
14033     @{
14034   */
14035 /** Indication Message; Sends a GTP message to the MP notifying it of AP DB readiness. */
14036 typedef struct {
14037 
14038   /* Mandatory */
14039   /*  GDT Download Begin Status */
14040   qmiLocStatusEnumT_v02 status;
14041   /**<   Status of the GDT begin request.
14042  Valid values: \n
14043       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
14044       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
14045       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
14046       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
14047       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
14048       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
14049       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
14050       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
14051       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
14052       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
14053       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
14054  */
14055 }qmiLocGdtDownloadBeginStatusIndMsgT_v02;  /* Message */
14056 /**
14057     @}
14058   */
14059 
14060 /** @addtogroup loc_qmi_messages
14061     @{
14062   */
14063 /** Request Message; Sends a GTP message to the MP notifying it of data readiness. */
14064 typedef struct {
14065 
14066   /* Mandatory */
14067   /*  GDT Service ID */
14068   qmiLocGdtServiceIdEnumT_v02 serviceId;
14069   /**<   Values: \n
14070 
14071       - eQMI_LOC_GDT_SERVICE_WWAN (1) --  GDT service for WWAN UL
14072       - eQMI_LOC_GDT_SERVICE_WWAN_DL (2) --  GDT service for WWAN DL  */
14073 
14074   /* Mandatory */
14075   /*  Session ID */
14076   uint32_t sessionId;
14077   /**<   Session ID. */
14078 
14079   /* Mandatory */
14080   /*  Processing Status */
14081   qmiLocStatusEnumT_v02 status;
14082   /**<   Status of the AP processing request.
14083  Valid values: \n
14084       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
14085       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
14086       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
14087       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
14088       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
14089       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
14090       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
14091       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
14092       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
14093       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
14094       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
14095  */
14096 
14097   /* Mandatory */
14098   /*  Data File Path (non-NULL Terminated) */
14099   uint32_t filePath_len;  /**< Must be set to # of elements in filePath */
14100   char filePath[QMI_LOC_MAX_GDT_PATH_LEN_V02];
14101   /**<   File path to the data. \n
14102          - Type: Array of bytes \n
14103          - Maximum length of the array: 255
14104     */
14105 }qmiLocGdtDownloadReadyStatusReqMsgT_v02;  /* Message */
14106 /**
14107     @}
14108   */
14109 
14110 /** @addtogroup loc_qmi_messages
14111     @{
14112   */
14113 /** Indication Message; Sends a GTP message to the MP notifying it of data readiness. */
14114 typedef struct {
14115 
14116   /* Mandatory */
14117   /*  GDT Ready Begin Status */
14118   qmiLocStatusEnumT_v02 status;
14119   /**<   Status of the GDT ready request.
14120  Valid values: \n
14121       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
14122       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
14123       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
14124       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
14125       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
14126       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
14127       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
14128       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
14129       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
14130       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
14131       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
14132  */
14133 }qmiLocGdtDownloadReadyStatusIndMsgT_v02;  /* Message */
14134 /**
14135     @}
14136   */
14137 
14138 /** @addtogroup loc_qmi_messages
14139     @{
14140   */
14141 /** Request Message; Acknowledges receipt of Receive Done to the GDT MP. */
14142 typedef struct {
14143 
14144   /* Mandatory */
14145   /*  GDT Service ID */
14146   qmiLocGdtServiceIdEnumT_v02 serviceId;
14147   /**<   Values: \n
14148 
14149       - eQMI_LOC_GDT_SERVICE_WWAN (1) --  GDT service for WWAN UL
14150       - eQMI_LOC_GDT_SERVICE_WWAN_DL (2) --  GDT service for WWAN DL  */
14151 
14152   /* Mandatory */
14153   /*  Session ID */
14154   uint32_t sessionId;
14155   /**<   Session ID. */
14156 
14157   /* Mandatory */
14158   /*  QMI LOC Status */
14159   qmiLocStatusEnumT_v02 status;
14160   /**<   Values: \n
14161 
14162       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
14163       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
14164       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
14165       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
14166       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
14167       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
14168       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
14169       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
14170       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
14171       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
14172       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
14173 }qmiLocGdtReceiveDoneStatusReqMsgT_v02;  /* Message */
14174 /**
14175     @}
14176   */
14177 
14178 /** @addtogroup loc_qmi_messages
14179     @{
14180   */
14181 /** Indication Message; Acknowledges receipt of Receive Done to the GDT MP. */
14182 typedef struct {
14183 
14184   /* Mandatory */
14185   /*  GDT Receive Done Status */
14186   qmiLocStatusEnumT_v02 status;
14187   /**<   Status of the Receive Done request.
14188  Valid values: \n
14189       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
14190       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
14191       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
14192       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
14193       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
14194       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
14195       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
14196       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
14197       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
14198       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
14199       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
14200  */
14201 }qmiLocGdtReceiveDoneStatusIndMsgT_v02;  /* Message */
14202 /**
14203     @}
14204   */
14205 
14206 /** @addtogroup loc_qmi_messages
14207     @{
14208   */
14209 /** Request Message; Acknowledges the receipt of download completion to the GDT MP. */
14210 typedef struct {
14211 
14212   /* Mandatory */
14213   /*  GDT Service ID */
14214   qmiLocGdtServiceIdEnumT_v02 serviceId;
14215   /**<   Values: \n
14216 
14217       - eQMI_LOC_GDT_SERVICE_WWAN (1) --  GDT service for WWAN UL
14218       - eQMI_LOC_GDT_SERVICE_WWAN_DL (2) --  GDT service for WWAN DL  */
14219 
14220   /* Mandatory */
14221   /*  Session ID */
14222   uint32_t sessionId;
14223   /**<   Session ID. */
14224 
14225   /* Mandatory */
14226   /*  QMI LOC Status */
14227   qmiLocStatusEnumT_v02 status;
14228   /**<   Values: \n
14229 
14230       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
14231       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
14232       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
14233       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
14234       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
14235       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
14236       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
14237       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
14238       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
14239       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
14240       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
14241 }qmiLocGdtDownloadEndStatusReqMsgT_v02;  /* Message */
14242 /**
14243     @}
14244   */
14245 
14246 /** @addtogroup loc_qmi_messages
14247     @{
14248   */
14249 /** Indication Message; Acknowledges the receipt of download completion to the GDT MP. */
14250 typedef struct {
14251 
14252   /* Mandatory */
14253   /*  GDT Download End Status */
14254   qmiLocStatusEnumT_v02 status;
14255   /**<   Status of the GDT download end request.
14256  Valid values: \n
14257       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
14258       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
14259       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
14260       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
14261       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
14262       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
14263       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
14264       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
14265       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
14266       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
14267       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
14268  */
14269 }qmiLocGdtDownloadEndStatusIndMsgT_v02;  /* Message */
14270 /**
14271     @}
14272   */
14273 
14274 /** @addtogroup loc_qmi_enums
14275     @{
14276   */
14277 typedef enum {
14278   QMILOCDBTUSAGEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
14279   eQMI_LOC_DBT_USAGE_NAVIGATION_V02 = 1, /**<  Navigation usage type  */
14280   QMILOCDBTUSAGEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
14281 }qmiLocDbtUsageEnumT_v02;
14282 /**
14283     @}
14284   */
14285 
14286 /** @addtogroup loc_qmi_enums
14287     @{
14288   */
14289 typedef enum {
14290   QMILOCDBDISTANCETYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
14291   eQMI_LOC_DBT_DISTANCE_TYPE_STRAIGHT_LINE_V02 = 1, /**<  Straight line distance between
14292        location updates   */
14293   QMILOCDBDISTANCETYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
14294 }qmiLocDbDistanceTypeEnumT_v02;
14295 /**
14296     @}
14297   */
14298 
14299 /** @addtogroup loc_qmi_messages
14300     @{
14301   */
14302 /** Request Message; Used by the control point to initiate a Distance Based Tracking (DBT) session. */
14303 typedef struct {
14304 
14305   /* Mandatory */
14306   /*  Request ID */
14307   uint8_t reqId;
14308   /**<   ID of the request as identified by the control point. The request ID
14309        is reported back in the position reports. The control point must
14310        specify the same request ID in the QMI_LOC_STOP_DBT_REQ message. \n
14311        - Range: 0 to 255
14312   */
14313 
14314   /* Mandatory */
14315   /*  Minimum Distance Between Position Reports */
14316   uint32_t minDistance;
14317   /**<   Minimum distance, specified by the control point,
14318        that must be traversed between position reports. \n
14319        - Units: Meters
14320   */
14321 
14322   /* Mandatory */
14323   /*  Type of Distance to be Tracked */
14324   qmiLocDbDistanceTypeEnumT_v02 distanceType;
14325   /**<   Straight line distance or accumulated distance. \n
14326 
14327  Valid values: \n
14328       - eQMI_LOC_DBT_DISTANCE_TYPE_STRAIGHT_LINE (1) --  Straight line distance between
14329        location updates
14330  */
14331 
14332   /* Mandatory */
14333   /*  Need Origin Location */
14334   uint8_t needOriginLocation;
14335   /**<   Indicates whether the control point wants the position
14336        corresponding to the origin. \begin{itemize1}
14337        \item    0x01 (TRUE)  -- Control point is requesting origin
14338                                 location
14339        \item    0x00 (FALSE) -- Control point is not requesting origin
14340                                 location
14341        \vspace{-0.18in} \end{itemize1}
14342   */
14343 
14344   /* Optional */
14345   /*  Maximum Latency Threshold for Position Reports */
14346   uint8_t maxLatency_valid;  /**< Must be set to true if maxLatency is being passed */
14347   uint32_t maxLatency;
14348   /**<   Maximum time period, specified by the control point, after the minimum
14349        distance criteria has been met within which a location update must
14350        be provided. If not specified, an ideal value will be assumed by the
14351        engine  \n
14352        - Units: seconds
14353   */
14354 
14355   /* Optional */
14356   /*  Usage Type */
14357   uint8_t usageType_valid;  /**< Must be set to true if usageType is being passed */
14358   qmiLocDbtUsageEnumT_v02 usageType;
14359   /**<   Specifies the type of usage by the control point. It refers specifically
14360  to the use case category of the client. For example, a navigation client should
14361  set this to QMI_LOC_USAGE_NAVIGATION for better performance in difficult
14362  signal conditions, such as tunnels.
14363 
14364  If not specified, the service uses default algorithms to provide an ideal
14365  performance.
14366 
14367  Valid values: \n
14368       - eQMI_LOC_DBT_USAGE_NAVIGATION (1) --  Navigation usage type
14369  */
14370 }qmiLocStartDbtReqMsgT_v02;  /* Message */
14371 /**
14372     @}
14373   */
14374 
14375 /** @addtogroup loc_qmi_messages
14376     @{
14377   */
14378 /** Indication Message; Used by the control point to initiate a Distance Based Tracking (DBT) session. */
14379 typedef struct {
14380 
14381   /* Mandatory */
14382   /*  Start DBT Status */
14383   qmiLocStatusEnumT_v02 status;
14384   /**<   Status of the Start DBT request.
14385 
14386  Valid values: \n
14387       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
14388       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
14389       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
14390       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
14391       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
14392       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
14393       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
14394       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
14395       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
14396       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
14397       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
14398  */
14399 
14400   /* Optional */
14401   /*  Request ID */
14402   uint8_t reqId_valid;  /**< Must be set to true if reqId is being passed */
14403   uint8_t reqId;
14404   /**<   ID of the DBT start request for which this
14405        indication was generated. */
14406 }qmiLocStartDbtIndMsgT_v02;  /* Message */
14407 /**
14408     @}
14409   */
14410 
14411 /** @addtogroup loc_qmi_messages
14412     @{
14413   */
14414 /** Request Message; Used by the control point to stop a DBT session. */
14415 typedef struct {
14416 
14417   /* Mandatory */
14418   /*  Request ID */
14419   uint8_t reqId;
14420   /**<   ID of the request that was specified in the Start DBT
14421         request (QMI_LOC_START_DBT_REQ).\n
14422        - Range: 0 to 255 */
14423 }qmiLocStopDbtReqMsgT_v02;  /* Message */
14424 /**
14425     @}
14426   */
14427 
14428 /** @addtogroup loc_qmi_messages
14429     @{
14430   */
14431 /** Indication Message; Used by the control point to stop a DBT session. */
14432 typedef struct {
14433 
14434   /* Mandatory */
14435   /*  Stop DBT Status */
14436   qmiLocStatusEnumT_v02 status;
14437   /**<   Status of the Stop DBT request.
14438 
14439  Valid values: \n
14440       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
14441       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
14442       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
14443       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
14444       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
14445       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
14446       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
14447       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
14448       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
14449       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
14450       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
14451  */
14452 
14453   /* Optional */
14454   /*  Request ID */
14455   uint8_t reqId_valid;  /**< Must be set to true if reqId is being passed */
14456   uint8_t reqId;
14457   /**<   ID of the DBT stop request for which this
14458        indication was generated. */
14459 }qmiLocStopDbtIndMsgT_v02;  /* Message */
14460 /**
14461     @}
14462   */
14463 
14464 /** @addtogroup loc_qmi_enums
14465     @{
14466   */
14467 typedef enum {
14468   QMILOCDBTPOSITIONTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
14469   eQMI_LOC_DBT_POSITION_TYPE_ORIGIN_V02 = 1, /**<  Position reported is at the origin  */
14470   eQMI_LOC_DBT_POSITION_TYPE_TRACKING_V02 = 2, /**<  Position reported is a tracking type
14471        where the origin location has already
14472        been reported  */
14473   QMILOCDBTPOSITIONTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
14474 }qmiLocDbtPositionTypeEnumT_v02;
14475 /**
14476     @}
14477   */
14478 
14479 /** @addtogroup loc_qmi_aggregates
14480     @{
14481   */
14482 typedef struct {
14483 
14484   /*  UTC Timestamp */
14485   uint64_t timestampUtc;
14486   /**<   UTC timestamp. \n
14487        - Units: Milliseconds since Jan. 1, 1970
14488   */
14489 
14490   /*  Latitude */
14491   double latitude;
14492   /**<   Latitude (specified in WGS84 datum).
14493        \begin{itemize1}
14494        \item    Type: Floating point
14495        \item    Units: Degrees
14496        \item    Range: -90.0 to 90.0       \begin{itemize1}
14497          \item    Positive values indicate northern latitude
14498          \item    Negative values indicate southern latitude
14499        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
14500 
14501   /*   Longitude */
14502   double longitude;
14503   /**<   Longitude (specified in WGS84 datum).
14504        \begin{itemize1}
14505        \item    Type: Floating point
14506        \item    Units: Degrees
14507        \item    Range: -180.0 to 180.0     \begin{itemize1}
14508          \item    Positive values indicate eastern longitude
14509          \item    Negative values indicate western longitude
14510        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
14511 
14512   /*  Horizontal Elliptical Uncertainty (Semi-Minor Axis) */
14513   float horUncEllipseSemiMinor;
14514   /**<   Semi-minor axis of horizontal elliptical uncertainty.\n
14515        - Units: Meters */
14516 
14517   /*  Horizontal Elliptical Uncertainty (Semi-Major Axis) */
14518   float horUncEllipseSemiMajor;
14519   /**<   Semi-major axis of horizontal elliptical uncertainty.\n
14520        - Units: Meters */
14521 
14522   /*  Elliptical Horizontal Uncertainty Azimuth */
14523   float horUncEllipseOrientAzimuth;
14524   /**<   Elliptical horizontal uncertainty azimuth of orientation.\n
14525        - Units: Decimal degrees \n
14526        - Range: 0 to 180 */
14527 
14528   /*  Horizontal Speed Validity Bit */
14529   uint8_t speedHorizontal_valid;
14530   /**<   Indicates whether the horizontal speed field contains valid
14531        information.        \n
14532        - 0x01 (TRUE)  --  Horizontal speed is valid \n
14533        - 0x00 (FALSE) --  Horizontal speed is invalid
14534                                  and is to be ignored \vspace{-0.18in}
14535   */
14536 
14537   /*  Horizontal Speed */
14538   float speedHorizontal;
14539   /**<   Horizontal speed.\n
14540        - Units: Meters/second */
14541 
14542   /*  Altitude Validity Bit */
14543   uint8_t altitudeWrtEllipsoid_valid;
14544   /**<   Indicates whether the altitude field contains valid
14545        information.        \n
14546        - 0x01 (TRUE)  --  Altitude field is valid \n
14547        - 0x00 (FALSE) --  Altitude field is invalid
14548                                  and is to be ignored \vspace{-0.18in}
14549        */
14550 
14551   /*  Altitude With Respect to Ellipsoid */
14552   float altitudeWrtEllipsoid;
14553   /**<   Altitude with respect to the WGS84 ellipsoid.\n
14554        - Units: Meters \n
14555        - Range: -500 to 15883 */
14556 
14557   /*  Vertical Uncertainty Validity Bit */
14558   uint8_t vertUnc_valid;
14559   /**<   Indicates whether the vertical uncertainty field contains valid
14560        information. \n
14561        - 0x01 (TRUE)  --  Vertical Uncertainty field is valid \n
14562        - 0x00 (FALSE) --  Vertical Uncertainty field is invalid
14563                                  and is to be ignored \vspace{-0.18in}
14564   */
14565 
14566   /*  Vertical Uncertainty */
14567   float vertUnc;
14568   /**<   Vertical uncertainty.\n
14569        - Units: Meters */
14570 
14571   /*  Vertical Speed Validity Bit */
14572   uint8_t speedVertical_valid;
14573   /**<   Indicates whether the vertical speed field contains valid
14574        information. \n
14575        - 0x01 (TRUE)  --  Vertical Speed field is valid \n
14576        - 0x00 (FALSE) --  Vertical Speed field is invalid
14577                                  and is to be ignored \vspace{-0.18in}
14578   */
14579 
14580   /*  Vertical Speed */
14581   float speedVertical;
14582   /**<   Vertical speed.\n
14583        - Units: Meters/second */
14584 
14585   /*  Heading Validity Bit */
14586   uint8_t heading_valid;
14587   /**<   Indicates whether the heading field contains valid
14588        information.        \n
14589        - 0x01 (TRUE)  --  Heading field is valid \n
14590        - 0x00 (FALSE) --  Heading field is invalid
14591                                  and is to be ignored \vspace{-0.18in}
14592   */
14593 
14594   /*  Heading */
14595   float heading;
14596   /**<   Heading.\n
14597         - Units: Degrees \n
14598         - Range: 0 to 359.999  */
14599 }qmiLocDbtPositionStructT_v02;  /* Type */
14600 /**
14601     @}
14602   */
14603 
14604 /** @addtogroup loc_qmi_messages
14605     @{
14606   */
14607 /** Indication Message; Notifies the control point of
14608                     a DBT position report. */
14609 typedef struct {
14610 
14611   /* Mandatory */
14612   /*  Request ID */
14613   uint8_t reqId;
14614   /**<   ID of the DBT request for which this
14615        report was generated. */
14616 
14617   /* Mandatory */
14618   /*  DBT Position */
14619   qmiLocDbtPositionStructT_v02 dbtPosition;
14620   /**<   Position of the client when it has traversed the
14621        specified distance.
14622        */
14623 
14624   /* Mandatory */
14625   /*  DBT Position Type */
14626   qmiLocDbtPositionTypeEnumT_v02 positionType;
14627   /**<   Specifies whether the position reported is at the
14628  origin of the DBT session or during the tracking
14629  duration of the session. Values: \n
14630 
14631       - eQMI_LOC_DBT_POSITION_TYPE_ORIGIN (1) --  Position reported is at the origin
14632       - eQMI_LOC_DBT_POSITION_TYPE_TRACKING (2) --  Position reported is a tracking type
14633        where the origin location has already
14634        been reported  */
14635 
14636   /* Optional */
14637   /*  Heading Uncertainty */
14638   uint8_t headingUnc_valid;  /**< Must be set to true if headingUnc is being passed */
14639   float headingUnc;
14640   /**<   Heading uncertainty.\n
14641            - Units: Degrees \n
14642            - Range: 0 to 359.999 */
14643 
14644   /* Optional */
14645   /*  Speed Uncertainty */
14646   uint8_t speedUnc_valid;  /**< Must be set to true if speedUnc is being passed */
14647   float speedUnc;
14648   /**<   3-D speed uncertainty.\n
14649            - Units: Meters/second */
14650 
14651   /* Optional */
14652   /*  Horizontal Confidence */
14653   uint8_t horConfidence_valid;  /**< Must be set to true if horConfidence is being passed */
14654   uint8_t horConfidence;
14655   /**<   Horizontal uncertainty confidence.\n
14656            - Units: Percent \n
14657            - Range: 0 to 99 */
14658 
14659   /* Optional */
14660   /*  Vertical Confidence */
14661   uint8_t vertConfidence_valid;  /**< Must be set to true if vertConfidence is being passed */
14662   uint8_t vertConfidence;
14663   /**<   Vertical uncertainty confidence.\n
14664            - Units: Percent \n
14665            - Range: 0 to 99 */
14666 
14667   /* Optional */
14668   /*  Dilution of Precision */
14669   uint8_t DOP_valid;  /**< Must be set to true if DOP is being passed */
14670   qmiLocDOPStructT_v02 DOP;
14671   /**<   \vspace{0.06in} \n Dilution of precision associated with this position. */
14672 
14673   /* Optional */
14674   /*  SVs Used to Calculate the Fix */
14675   uint8_t gnssSvUsedList_valid;  /**< Must be set to true if gnssSvUsedList is being passed */
14676   uint32_t gnssSvUsedList_len;  /**< Must be set to # of elements in gnssSvUsedList */
14677   uint16_t gnssSvUsedList[QMI_LOC_MAX_SV_USED_LIST_LENGTH_V02];
14678   /**<   Each entry in the list contains the SV ID of a satellite
14679           used for calculating this position report. The following
14680           information is associated with each SV ID: \n
14681         Range:    \n
14682       - For GPS:     1 to 32 \n
14683       - For GLONASS: 65 to 96 \n
14684       - For SBAS:    120 to 158 and 183 to 187 \n
14685       - For QZSS:    193 to 197 \n
14686       - For BDS:     201 to 237 \n
14687       - For GAL:     301 to 336
14688   */
14689 
14690   /* Optional */
14691   /*  Position Source */
14692   uint8_t positionSrc_valid;  /**< Must be set to true if positionSrc is being passed */
14693   qmiLocPositionSrcEnumT_v02 positionSrc;
14694   /**<   Source from which this position was obtained.
14695  Valid values: \n
14696       - eQMI_LOC_POSITION_SRC_GNSS (0) --  Position source is GNSS
14697       - eQMI_LOC_POSITION_SRC_CELLID (1) --  Position source is Cell ID
14698       - eQMI_LOC_POSITION_SRC_ENH_CELLID (2) --  Position source is Enhanced Cell ID
14699       - eQMI_LOC_POSITION_SRC_WIFI (3) --  Position source is Wi-Fi
14700       - eQMI_LOC_POSITION_SRC_TERRESTRIAL (4) --  Position source is Terrestrial
14701       - eQMI_LOC_POSITION_SRC_GNSS_TERRESTRIAL_HYBRID (5) --  Position source is GNSS Terrestrial Hybrid
14702       - eQMI_LOC_POSITION_SRC_OTHER (6) --  Other sources
14703  */
14704 }qmiLocEventDbtPositionReportIndMsgT_v02;  /* Message */
14705 /**
14706     @}
14707   */
14708 
14709 /** @addtogroup loc_qmi_enums
14710     @{
14711   */
14712 typedef enum {
14713   QMILOCDBTSESSIONSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
14714   eQMI_LOC_DBT_UNABLE_TO_TRACK_V02 = 1, /**<  Distance based tracking  is unavailable and DBT fixes
14715        cannot currently be obtained  */
14716   eQMI_LOC_DBT_ABLE_TO_TRACK_V02 = 2, /**<  Distance based tracking  is available and DBT fixes
14717        can currently be obtained  */
14718   QMILOCDBTSESSIONSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
14719 }qmiLocDbtSessionStatusEnumT_v02;
14720 /**
14721     @}
14722   */
14723 
14724 /** @addtogroup loc_qmi_messages
14725     @{
14726   */
14727 /** Indication Message; Notifies the control point of the
14728                     DBT session status. */
14729 typedef struct {
14730 
14731   /* Mandatory */
14732   /*  DBT Session Status */
14733   qmiLocDbtSessionStatusEnumT_v02 dbtSessionStatus;
14734   /**<   Specifies the DBT session status type.
14735 
14736  Valid values: \n
14737       - eQMI_LOC_DBT_UNABLE_TO_TRACK (1) --  Distance based tracking  is unavailable and DBT fixes
14738        cannot currently be obtained
14739       - eQMI_LOC_DBT_ABLE_TO_TRACK (2) --  Distance based tracking  is available and DBT fixes
14740        can currently be obtained
14741  */
14742 
14743   /* Optional */
14744   /*  Request ID */
14745   uint8_t reqId_valid;  /**< Must be set to true if reqId is being passed */
14746   uint8_t reqId;
14747   /**<   ID of the DBT request for which this
14748        status was generated. */
14749 }qmiLocEventDbtSessionStatusIndMsgT_v02;  /* Message */
14750 /**
14751     @}
14752   */
14753 
14754 /** @addtogroup loc_qmi_enums
14755     @{
14756   */
14757 typedef enum {
14758   QMILOCPOSITIONSOURCEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
14759   eQMI_LOC_POS_SRC_GNSS_V02 = 1, /**<  Source of the position is GNSS  */
14760   QMILOCPOSITIONSOURCEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
14761 }qmiLocPositionSourceEnumT_v02;
14762 /**
14763     @}
14764   */
14765 
14766 /** @addtogroup loc_qmi_enums
14767     @{
14768   */
14769 typedef enum {
14770   QMILOCPOSITIONRPTPROPAGATIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
14771   eQMI_LOC_POS_REPORT_PROPAGATED_TO_CURRENT_UTC_V02 = 1, /**<  Reported position is propagated to the current UTC  */
14772   QMILOCPOSITIONRPTPROPAGATIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
14773 }qmiLocPositionRptPropagationEnumT_v02;
14774 /**
14775     @}
14776   */
14777 
14778 /** @addtogroup loc_qmi_enums
14779     @{
14780   */
14781 typedef enum {
14782   QMILOCSECURELOCDATAMODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
14783   eQMI_LOC_SECURE_LOC_DATA_ENCRYPTED_V02 = 1, /**<  Data in the indication is to be encrypted  */
14784   eQMI_LOC_SECURE_LOC_DATA_UNENCRYPTED_V02 = 2, /**<  Data in the indication is to be unencrypted  */
14785   QMILOCSECURELOCDATAMODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
14786 }qmiLocSecureLocDataModeEnumT_v02;
14787 /**
14788     @}
14789   */
14790 
14791 /** @addtogroup loc_qmi_enums
14792     @{
14793   */
14794 typedef enum {
14795   QMILOCSECUREGETAVAILABLEPOSPARAMETERIDENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
14796   eQMI_LOC_SECURE_GET_AVAILABLE_POS_PARAM_TRANSACTION_ID_V02 = 1, /**<  Parameter ID for the Transaction ID field. Mandatory field.
14797        Identifies the transaction. The transaction ID is returned in the
14798        Secured Get Available Position indication. \n
14799        - Parameter type: uint32
14800    */
14801   eQMI_LOC_SECURE_GET_AVAILABLE_POS_PARAM_NONCE_V02 = 2, /**<  Parameter ID for the Nonce field. Optional field.
14802        - Parameter type: uint64
14803    */
14804   eQMI_LOC_SECURE_GET_AVAILABLE_POS_PARAM_SOURCE_V02 = 3, /**<  Parameter ID for the Position Source field. Optional field.
14805        Specifies the source of the position in which the control point is interest.
14806        If not included, the value defaults to GNSS.        \n
14807        - Parameter type: int32 \n
14808        Parameter valid values: \n
14809        - eQMI_LOC_POS_SRC_GNSS (1) --  Source of the position is GNSS
14810    */
14811   eQMI_LOC_SECURE_GET_AVAILABLE_POS_PARAM_REPORT_DATA_SECURITY_MODE_V02 = 4, /**<  Secured position report data security mode. Optional field.
14812        If this TLV is not sent, the position report is encrypted by default. \n
14813        - Parameter type: int32 \n
14814        Parameter valid values: \n
14815        - eQMI_LOC_SECURE_LOC_DATA_ENCRYPTED (1)   --  Position reports are encrypted
14816        - eQMI_LOC_SECURE_LOC_DATA_UNENCRYPTED (2) --  Position reports are not encrypted
14817     */
14818   eQMI_LOC_SECURE_GET_AVAILABLE_POS_PARAM_REPORT_DATA_TIME_PROPAGATION_V02 = 5, /**<  Secured position report data propagation.  Optional field.
14819        If this TLV is not sent, the position report is propagated to the current UTC time by default. \n
14820        - Parameter type: int32 \n
14821        Parameter valid values: \n
14822        - eQMI_LOC_POS_REPORT_PROPAGATED_TO_CURRENT_UTC (1) -- Position reports are propagated to the current UTC. \n
14823     */
14824   QMILOCSECUREGETAVAILABLEPOSPARAMETERIDENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
14825 }qmiLocSecureGetAvailablePosParameterIDEnumT_v02;
14826 /**
14827     @}
14828   */
14829 
14830 /** @addtogroup loc_qmi_enums
14831     @{
14832   */
14833 typedef enum {
14834   QMILOCSECUREMESSAGEDATATYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
14835   eQMI_LOC_SECURE_DATA_TYPE_BYTE_8_V02 = 1, /**<  Data type: Byte (8 bits)  */
14836   eQMI_LOC_SECURE_DATA_TYPE_CHAR_8_V02 = 2, /**<  Data type: Char (8 bits)  */
14837   eQMI_LOC_SECURE_DATA_TYPE_UNSIGNED_CHAR_8_V02 = 3, /**<  Data type: Unsigned char (8 bits)  */
14838   eQMI_LOC_SECURE_DATA_TYPE_INT_8_V02 = 4, /**<  Data type: Int (8 bits)  */
14839   eQMI_LOC_SECURE_DATA_TYPE_UNSIGNED_INT_8_V02 = 5, /**<  Data type: Unsigned int (8 bits)  */
14840   eQMI_LOC_SECURE_DATA_TYPE_INT_16_V02 = 6, /**<  Data type: Int (16 bits)  */
14841   eQMI_LOC_SECURE_DATA_TYPE_UNSIGNED_INT_16_V02 = 7, /**<  Data type: Unsigned int (16 bits)  */
14842   eQMI_LOC_SECURE_DATA_TYPE_INT_32_V02 = 8, /**<  Data type: Int (32 bits)  */
14843   eQMI_LOC_SECURE_DATA_TYPE_UNSIGNED_INT_32_V02 = 9, /**<  Data type: Unsigned int (32 bits)  */
14844   eQMI_LOC_SECURE_DATA_TYPE_INT_64_V02 = 10, /**<  Data type: Int (64 bits)  */
14845   eQMI_LOC_SECURE_DATA_TYPE_UNSIGNED_INT_64_V02 = 11, /**<  Data type: Unsigned int (64 bits)  */
14846   eQMI_LOC_SECURE_DATA_TYPE_BOOL_8_V02 = 12, /**<  Data type: Boolean (8 bits)  */
14847   eQMI_LOC_SECURE_DATA_TYPE_DOUBLE_64_V02 = 13, /**<  Data type: Double (64 bits)  */
14848   eQMI_LOC_SECURE_DATA_TYPE_FLOAT_32_V02 = 14, /**<  Data type: Float (32 bits)  */
14849   QMILOCSECUREMESSAGEDATATYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
14850 }qmiLocSecureMessageDataTypeEnumT_v02;
14851 /**
14852     @}
14853   */
14854 
14855 /** @addtogroup loc_qmi_messages
14856     @{
14857   */
14858 /** Request Message; Used by the control point to get the available
14859                     position estimate from the location engine. */
14860 typedef struct {
14861 
14862   /* Mandatory */
14863   /*  Data Security Mode for Encoded Data Buffer */
14864   qmiLocSecureLocDataModeEnumT_v02 secureLocDataMode;
14865   /**<   Data security mode for the encoded data buffer.
14866 
14867  Valid values: \n
14868       - eQMI_LOC_SECURE_LOC_DATA_ENCRYPTED (1) --  Data in the indication is to be encrypted
14869       - eQMI_LOC_SECURE_LOC_DATA_UNENCRYPTED (2) --  Data in the indication is to be unencrypted
14870  */
14871 
14872   /* Mandatory */
14873   /*  Encoded Data Buffer Containing Secure Get Available Position Request Parameters */
14874   uint32_t qmilocSecureGetAvailablePositionRequestData_len;  /**< Must be set to # of elements in qmilocSecureGetAvailablePositionRequestData */
14875   uint8_t qmilocSecureGetAvailablePositionRequestData[QMI_LOC_SECURE_GET_AVAILABLE_POS_REQUEST_ENCRYPTED_MAX_V02];
14876   /**<   Encoded data buffer containing the secure Get Available Position Request parameters. */
14877 }qmiLocSecureGetAvailablePositionReqMsgT_v02;  /* Message */
14878 /**
14879     @}
14880   */
14881 
14882 /** @addtogroup loc_qmi_enums
14883     @{
14884   */
14885 typedef enum {
14886   QMILOCSECUREGETAVAILABLEPOSITIONINDPARAMIDENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
14887   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_TRANSACTION_ID_V02 = 1, /**<  Parameter ID for the Transaction ID field. Mandatory field.
14888              Transaction ID that was specified in the Secured Get Available Position request.
14889              This parameter is always present if the status field is set to SUCCESS. \n
14890                 - Parameter type: uint32
14891          */
14892   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_NONCE_V02 = 2, /**<  Parameter ID for the Secure Session Nonce.
14893              This echos back the Nonce received from the Secured Get Available Position Request.
14894              Optional field. \n
14895                 - Parameter type: uint64
14896          */
14897   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_LATITUDE_V02 = 3, /**<   Parameter ID for Latitude (specified in WGS84 datum). Optional field.
14898         \begin{itemize1}
14899         \item    Parameter type: Floating point
14900         \item    Parameter units: Degrees
14901         \item    Parameter range: -90.0 to 90.0       \begin{itemize1}
14902           \item    Positive values indicate northern latitude
14903           \item    Negative values indicate southern latitude
14904         \vspace{-0.18in} \end{itemize1} \end{itemize1}  */
14905   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_LONGITUDE_V02 = 4, /**<   Parameter ID for Longitude (specified in WGS84 datum). Optional field.
14906         \begin{itemize1}
14907         \item    Parameter type: Floating point
14908         \item    Parameter units: Degrees
14909         \item    Parameter range: -180.0 to 180.0     \begin{itemize1}
14910         \item    Positive values indicate eastern longitude
14911         \item    Negative values indicate western longitude
14912         \vspace{-0.18in} \end{itemize1} \end{itemize1}  */
14913   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_HORIZ_UNC_CIRCULAR_V02 = 5, /**<   Parameter ID for Circular Horizontal Uncertainty. Optional field. \n
14914         - Parameter tnits: Meters \n
14915         - Parameter type: Float  */
14916   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
14917         - Parameter units: Meters \n
14918         - Parameter range: -500 to 15883 \n
14919         - Parameter type: Float  */
14920   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_VERTICAL_UNC_V02 = 7, /**<   Parameter ID for Vertical Uncertainty. Optional field.\n
14921         - Parameter units: Meters \n
14922         - Parameter type: Float  */
14923   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_TIME_STAMP_UTC_V02 = 8, /**<   Parameter ID for the UTC timestamp. Optional field.\n
14924         - Parameter type: uint64 \n
14925         - Parameter units: Milliseconds since Jan. 1, 1970
14926          */
14927   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_TIME_UNC_V02 = 9, /**<   Parameter ID for time uncertainty. Optional field.\n
14928            - Parameter type: Float \n
14929            - Parameter units: Milliseconds  */
14930   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
14931            - Parameter mnits: Meters \n
14932            - Parameter type: Float  */
14933   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
14934            - Parameter units: Meters \n
14935            - Parameter type: Float */
14936   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
14937            - Parameter units: Decimal degrees \n
14938            - Parameter range: 0 to 180 \n
14939            - Parameter type: Float  */
14940   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_HORIZ_CONFIDENCE_V02 = 13, /**<   Parameter ID for Horizontal uncertainty confidence. Optional field.\n
14941        If both elliptical and horizontal uncertainties are specified in this message,
14942        the confidence corresponds to the elliptical uncertainty. Optional field.\n
14943            - Parameter units: Percent \n
14944            - Parameter range: 0 to 99 \n
14945            - Parameter type: uint8 */
14946   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_HORIZ_ELLIP_CONFIDENCE_V02 = 14, /**<   Parameter ID for Horizontal Elliptical Uncertainty Confidence. Optional field.\n
14947        If both elliptical and horizontal uncertainties are specified in this message,
14948        the confidence corresponds to the elliptical uncertainty. Optional field.\n
14949            - Parameter units: Percent \n
14950            - Parameter range: 0 to 99 \n
14951            - Parameter type: uint8 */
14952   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_HORIZ_RELIABILITY_V02 = 15, /**<   Parameter ID for Specifies the reliability of the horizontal position. Optional field.
14953            - Parameter Type: int32 \n
14954        Parameter valid values: \n
14955            - RELIABILITY_NOT_SET   = 0 \n
14956            - RELIABILITY_VERY_LOW  = 1 \n
14957            - RELIABILITY_LOW       = 2 \n
14958            - RELIABILITY_MEDIUM    = 3 \n
14959            - RELIABILITY_HIGH      = 4
14960          */
14961   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_SPEED_HORIZ_V02 = 16, /**<   Parameter ID for Horizontal Speed. Optional field.\n
14962            - Parameter units: Meters/second \n
14963            - Parameter type: Float  */
14964   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_SPEED_HORIZ_UNC_V02 = 17, /**<   Parameter ID for Horizontal Speed Uncertainty. Optional field.\n
14965            - Parameter units: Meters/second \n
14966            - Parameter type: Float  */
14967   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
14968            - Parameter units: Meters \n
14969            - Parameter type: Float  */
14970   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_VERTICAL_CONF_V02 = 19, /**<   Parameter ID for Vertical uncertainty confidence. Optional field.\n
14971            - Parameter units: Percent \n
14972            - Parameter range: 0 to 99 \n
14973            - Parameter type: uint8 */
14974   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
14975            - Parameter type: int32 \n
14976            Parameter valid values: \n
14977                 - RELIABILITY_NOT_SET   = 0 \n
14978                 - RELIABILITY_VERY_LOW  = 1 \n
14979                 - RELIABILITY_LOW       = 2 \n
14980                 - RELIABILITY_MEDIUM    = 3 \n
14981                 - RELIABILITY_HIGH      = 4
14982          */
14983   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_SPEED_VERTICAL_V02 = 21, /**<   Parameter ID for Vertical Speed. Optional field.\n
14984            - Parameter units: Meters/second \n
14985            - Parameter type: Float  */
14986   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_SPEED_VERTICAL_UNC_V02 = 22, /**<   Parameter ID for Vertical Speed Uncertainty. Optional field.\n
14987            - Parameter units: Meters/second \n
14988            - Parameter type: Float  */
14989   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_HEADING_V02 = 23, /**<   Parameter ID for Heading. Optional field.\n
14990            - Parameter units: Degrees \n
14991            - Parameter range: 0 to 359.999 \n
14992            - Parameter type: Float  */
14993   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_HEADING_UNC_V02 = 24, /**<   Parameter ID for Heading Uncertainty. Optional field.\n
14994             - Parameter units: Degrees \n
14995             - Parameter range: 0 to 359.999 \n
14996             - Parameter type: Float  */
14997   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_MAGNETIC_DEVIATION_V02 = 25, /**<   Parameter ID for Magnetic Deviation. Optional field.\n
14998         Difference between the bearing to true north and the bearing shown
14999         on a magnetic compass. The deviation is positive when the magnetic
15000         north is east of true north.
15001             - Parameter type: Float  */
15002   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_TECH_MASK_V02 = 26, /**<  Parameter ID for Technology Used in computing this fix. Optional field.\n
15003            - Parameter type: uint32        \n
15004        Parameter valid bitmasks: \n
15005        - QMI_LOC_POS_TECH_MASK_SATELLITE                = 0x00000001,
15006        - QMI_LOC_POS_TECH_MASK_CELLID                   = 0x00000002,
15007        - QMI_LOC_POS_TECH_MASK_WIFI                     = 0x00000004,
15008        - QMI_LOC_POS_TECH_MASK_SENSORS                  = 0x00000008,
15009        - QMI_LOC_POS_TECH_MASK_REFERENCE_LOCATION       = 0x00000010,
15010        - QMI_LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION = 0x00000020,
15011        - QMI_LOC_POS_TECH_MASK_AFLT                     = 0x00000040,
15012        - QMI_LOC_POS_TECH_MASK_HYBRID                   = 0x00000080
15013          */
15014   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
15015            - Parameter type: Float
15016            - Parameter range: 1 (highest accuracy) to 50 (lowest accuracy)
15017            - PDOP = square root of (HDOP^2 + VDOP^2)
15018          */
15019   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
15020            - Parameter type: Float
15021            - Parameter range: 1 (highest accuracy) to 50 (lowest accuracy)
15022          */
15023   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
15024            - Parameter type: Float
15025            - Parameter range: 1 (highest accuracy) to 50 (lowest accuracy)
15026          */
15027   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
15028            - Parameter type: uint16
15029            - Parameter units: Weeks
15030          */
15031   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
15032            - Parameter type: uint32
15033            - Parameter units: Milliseconds
15034          */
15035   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_TIME_SRC_V02 = 32, /**<  Parameter ID for Time Source. Optional field.\n
15036            - Parameter type: uint32 (enum qmiLocTimeSourceEnumT)
15037          */
15038   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
15039         position report. Optional field.\n
15040             - Parameter type: uint32 \n
15041         Parameter valid bitmasks: \n
15042             - 0x00000001 -- SENSOR_USED_ACCEL \n
15043             - 0x00000002 -- SENSOR_USED_GYRO
15044          */
15045   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
15046             - Parameter type: uint32 \n
15047         Parameter valid bitmasks: \n
15048             - 0x00000001 -- AIDED_HEADING \n
15049             - 0x00000002 -- AIDED_SPEED \n
15050             - 0x00000004 -- AIDED_POSITION \n
15051             - 0x00000008 -- AIDED_VELOCITY
15052          */
15053   eQMI_LOC_SECURE_GET_AVAILABLE_POS_REP_PARAM_SV_USED_V02 = 35, /**<  Each entry in the list contains the SV ID of a satellite
15054        used for calculating this position report. The following
15055        information is associated with each SV ID.  Optional field. \n
15056            - Parameter type: uint16        \n
15057        Parameter range: \n
15058        - For GPS:     1 to 32  \n
15059        - For SBAS:    33 to 64  \n
15060        - For GLONASS: 65 to 96 \n
15061        - For QZSS:    193 to 197 \n
15062        - For BDS:     201 to 237
15063      */
15064   QMILOCSECUREGETAVAILABLEPOSITIONINDPARAMIDENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
15065 }qmiLocSecureGetAvailablePositionIndParamIDEnumT_v02;
15066 /**
15067     @}
15068   */
15069 
15070 /** @addtogroup loc_qmi_messages
15071     @{
15072   */
15073 /** Indication Message; Used by the control point to get the available
15074                     position estimate from the location engine. */
15075 typedef struct {
15076 
15077   /* Mandatory */
15078   /*  Session Status */
15079   qmiLocSessionStatusEnumT_v02 sessionStatus;
15080   /**<   Session status.
15081 
15082  Valid values: \n
15083       - eQMI_LOC_SESS_STATUS_SUCCESS (0) --  Session was successful
15084       - eQMI_LOC_SESS_STATUS_IN_PROGRESS (1) --  Session is still in progress; further position reports will be generated
15085        until either the fix criteria specified by the client are met or the
15086        client response timeout occurs
15087       - eQMI_LOC_SESS_STATUS_GENERAL_FAILURE (2) --  Session failed
15088       - eQMI_LOC_SESS_STATUS_TIMEOUT (3) --  Fix request failed because the session timed out
15089       - eQMI_LOC_SESS_STATUS_USER_END (4) --  Fix request failed because the session was ended by the user
15090       - eQMI_LOC_SESS_STATUS_BAD_PARAMETER (5) --  Fix request failed due to bad parameters in the request
15091       - eQMI_LOC_SESS_STATUS_PHONE_OFFLINE (6) --  Fix request failed because the phone is offline
15092       - eQMI_LOC_SESS_STATUS_ENGINE_LOCKED (7) --  Fix request failed because the engine is locked
15093  */
15094 
15095   /* Mandatory */
15096   /*  Data Security Mode for Encoded Data Buffer. */
15097   qmiLocSecureLocDataModeEnumT_v02 secureLocDataMode;
15098   /**<   Data security mode for encoded data buffer.
15099 
15100  Valid values: \n
15101       - eQMI_LOC_SECURE_LOC_DATA_ENCRYPTED (1) --  Data in the indication is to be encrypted
15102       - eQMI_LOC_SECURE_LOC_DATA_UNENCRYPTED (2) --  Data in the indication is to be unencrypted
15103  */
15104 
15105   /* Optional */
15106   /*  Encoded Data Buffer Containing Secured Get Available Position Report Indication  */
15107   uint8_t qmilocSecureGetAvailablePositionInd_valid;  /**< Must be set to true if qmilocSecureGetAvailablePositionInd is being passed */
15108   uint32_t qmilocSecureGetAvailablePositionInd_len;  /**< Must be set to # of elements in qmilocSecureGetAvailablePositionInd */
15109   uint8_t qmilocSecureGetAvailablePositionInd[QMI_LOC_SECURE_GET_AVAILABLE_POSITION_IND_ENCRYPTED_MAX_V02];
15110   /**<   Encoded data buffer containing the secured Get Available Position Report indication.*/
15111 }qmiLocSecureGetAvailablePositionIndMsgT_v02;  /* Message */
15112 /**
15113     @}
15114   */
15115 
15116 /** @addtogroup loc_qmi_aggregates
15117     @{
15118   */
15119 typedef struct {
15120 
15121   uint64_t macAddress;
15122   /**<   AP MAC address. */
15123 
15124   float xLat;
15125   /**<   AP latitude. \n
15126        - Units: degrees */
15127 
15128   float yLon;
15129   /**<   AP longitude sensor y-axis sample. \n
15130        - Units: degrees */
15131 
15132   float mar;
15133   /**<   Maximum antenna range. \n
15134        - Units: Meters */
15135 }qmiLocApCacheStructT_v02;  /* Type */
15136 /**
15137     @}
15138   */
15139 
15140 /** @addtogroup loc_qmi_messages
15141     @{
15142   */
15143 /** Request Message; Used by the control point to inject APs into the cache of
15144                     the low power Wi-Fi engine for fix computation. */
15145 typedef struct {
15146 
15147   /* Mandatory */
15148   /*  Version Number */
15149   uint8_t versionNumber;
15150   /**<   AP cache protocol version number. */
15151 
15152   /* Mandatory */
15153   /*  Part Number */
15154   uint8_t partNumber;
15155   /**<   Multiple message part number; used for ordering AP information. */
15156 
15157   /* Mandatory */
15158   /*  Total Parts */
15159   uint8_t totalParts;
15160   /**<   Total number of parts or messages for a complete cache update. */
15161 
15162   /* Mandatory */
15163   /*  AP Cache Data */
15164   uint32_t apCacheData_len;  /**< Must be set to # of elements in apCacheData */
15165   qmiLocApCacheStructT_v02 apCacheData[QMI_LOC_APCACHE_DATA_MAX_SAMPLES_V02];
15166   /**<   \vspace{4pt} \n AP cache information. */
15167 }qmiLocInjectApCacheDataReqMsgT_v02;  /* Message */
15168 /**
15169     @}
15170   */
15171 
15172 /** @addtogroup loc_qmi_messages
15173     @{
15174   */
15175 /** Indication Message; Used by the control point to inject APs into the cache of
15176                     the low power Wi-Fi engine for fix computation. */
15177 typedef struct {
15178 
15179   /* Mandatory */
15180   /*  Set Inject APCACHE Data Status */
15181   qmiLocStatusEnumT_v02 status;
15182   /**<   Status of the Inject AP Cache Data request.
15183 
15184  Valid values: \n
15185       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
15186       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
15187       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
15188       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
15189       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
15190       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
15191       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
15192       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
15193       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
15194       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
15195       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
15196  */
15197 
15198   /* Optional */
15199   /*  AP Cache Size */
15200   uint8_t apCacheSize_valid;  /**< Must be set to true if apCacheSize is being passed */
15201   uint32_t apCacheSize;
15202   /**<   Key performance indicator (KPI) for apCacheSize that measures the size
15203        of the last AP cache used. This parameter is always present. */
15204 
15205   /* Optional */
15206   /*  AP Do Not Cache Size */
15207   uint8_t apDoNotCacheSize_valid;  /**< Must be set to true if apDoNotCacheSize is being passed */
15208   uint32_t apDoNotCacheSize;
15209   /**<   KPI for apDoNotCacheSize that measures the size of the last AP cache used.
15210        This parameter is always present. */
15211 
15212   /* Optional */
15213   /*  AP Cache Hits */
15214   uint8_t apCacheHits_valid;  /**< Must be set to true if apCacheHits is being passed */
15215   uint32_t apCacheHits;
15216   /**<   KPI for apCacheHits that measures the number of hits to the
15217        AP cache of the last cache content. */
15218 
15219   /* Optional */
15220   /*  AP Do Not Cache Hits */
15221   uint8_t apDoNotCacheHits_valid;  /**< Must be set to true if apDoNotCacheHits is being passed */
15222   uint32_t apDoNotCacheHits;
15223   /**<   KPI for apDoNotCacheHits that measures the number of hits to
15224        apDoNotCache of the last cache content. */
15225 
15226   /* Optional */
15227   /*  Unknown APs */
15228   uint8_t unknownAps_valid;  /**< Must be set to true if unknownAps is being passed */
15229   uint32_t unknownAps;
15230   /**<   KPI for unknownAps that measures the number of unknown APs, those that are
15231        not found in any cache content. */
15232 
15233   /* Optional */
15234   /*  Async Scans */
15235   uint8_t asyncScans_valid;  /**< Must be set to true if asyncScans is being passed */
15236   uint32_t asyncScans;
15237   /**<   KPI for asyncScans that measures the number of async scans
15238        perceived since the last modem boot. */
15239 
15240   /* Optional */
15241   /*  Async Fixes */
15242   uint8_t asyncFixes_valid;  /**< Must be set to true if asyncFixes is being passed */
15243   uint32_t asyncFixes;
15244   /**<   KPI for asyncFixes that measures the number of async fixes
15245        generated since the last modem boot. */
15246 
15247   /* Optional */
15248   /*  Sync Scans */
15249   uint8_t syncScans_valid;  /**< Must be set to true if syncScans is being passed */
15250   uint32_t syncScans;
15251   /**<   KPI for syncScans that measures the number of sync scans
15252        perceived since the last modem boot. */
15253 
15254   /* Optional */
15255   /*  Sync Fixes */
15256   uint8_t syncFixes_valid;  /**< Must be set to true if syncFixes is being passed */
15257   uint32_t syncFixes;
15258   /**<   KPI for asyncFixes that measures the number of sync fixes
15259        generated since the last modem boot. */
15260 }qmiLocInjectApCacheDataIndMsgT_v02;  /* Message */
15261 /**
15262     @}
15263   */
15264 
15265 /** @addtogroup loc_qmi_aggregates
15266     @{
15267   */
15268 typedef struct {
15269 
15270   uint64_t macAddress;
15271   /**<   AP's MAC address. */
15272 }qmiLocApDoNotCacheStructT_v02;  /* Type */
15273 /**
15274     @}
15275   */
15276 
15277 /** @addtogroup loc_qmi_messages
15278     @{
15279   */
15280 /** Request Message; Used by the control point to inject blacked out APs into
15281                     the low power location engine. */
15282 typedef struct {
15283 
15284   /* Mandatory */
15285   /*  Version Number */
15286   uint8_t versionNumber;
15287   /**<   AP cache protocol version number. */
15288 
15289   /* Mandatory */
15290   /*  Part Number */
15291   uint8_t partNumber;
15292   /**<   Multiple message part number, used to order AP information. */
15293 
15294   /* Mandatory */
15295   /*  Total Parts */
15296   uint8_t totalParts;
15297   /**<   Total number of parts or messages for a complete cache update. */
15298 
15299   /* Mandatory */
15300   /*  No AP Cache Data */
15301   uint32_t apDoNotCacheData_len;  /**< Must be set to # of elements in apDoNotCacheData */
15302   qmiLocApDoNotCacheStructT_v02 apDoNotCacheData[QMI_LOC_APCACHE_DATA_MAX_SAMPLES_V02];
15303   /**<   \n APDoNotCache information. */
15304 }qmiLocInjectApDoNotCacheDataReqMsgT_v02;  /* Message */
15305 /**
15306     @}
15307   */
15308 
15309 /** @addtogroup loc_qmi_messages
15310     @{
15311   */
15312 /** Indication Message; Used by the control point to inject blacked out APs into
15313                     the low power location engine. */
15314 typedef struct {
15315 
15316   /* Mandatory */
15317   /*  Set Inject APDONOTCACHE Data Status */
15318   qmiLocStatusEnumT_v02 status;
15319   /**<   Status of the Inject APDONOTCACHE Data request.
15320 
15321  Valid values: \n
15322       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
15323       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
15324       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
15325       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
15326       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
15327       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
15328       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
15329       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
15330       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
15331       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
15332       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
15333  */
15334 }qmiLocInjectApDoNotCacheDataIndMsgT_v02;  /* Message */
15335 /**
15336     @}
15337   */
15338 
15339 /** @addtogroup loc_qmi_enums
15340     @{
15341   */
15342 typedef enum {
15343   QMILOCBATCHINGSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
15344   eQMI_LOC_BATCH_POS_UNAVAILABLE_V02 = 1, /**<  Service is unable to compute the positions for batching  */
15345   eQMI_LOC_BATCH_POS_AVAILABLE_V02 = 2, /**<  Service is able to compute the positions for batching  */
15346   QMILOCBATCHINGSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
15347 }qmiLocBatchingStatusEnumT_v02;
15348 /**
15349     @}
15350   */
15351 
15352 /** @addtogroup loc_qmi_messages
15353     @{
15354   */
15355 /** Indication Message; Notifies the control point of the
15356                     batching status. */
15357 typedef struct {
15358 
15359   /* Mandatory */
15360   /*  Batching Status */
15361   qmiLocBatchingStatusEnumT_v02 batchingStatus;
15362   /**<   Specifies the batching status.
15363  Valid values: \n
15364       - eQMI_LOC_BATCH_POS_UNAVAILABLE (1) --  Service is unable to compute the positions for batching
15365       - eQMI_LOC_BATCH_POS_AVAILABLE (2) --  Service is able to compute the positions for batching
15366  */
15367 }qmiLocEventBatchingStatusIndMsgT_v02;  /* Message */
15368 /**
15369     @}
15370   */
15371 
15372 /**  Identifies the always-on service capabilities.  */
15373 typedef uint32_t qmiLocAonCapabilityMaskT_v02;
15374 #define QMI_LOC_MASK_AON_AUTO_BATCHING_SUPPORTED_V02 ((qmiLocAonCapabilityMaskT_v02)0x00000001) /**<  The service supports auto batching; the client can enable auto
15375        batching by setting the distance parameter to 0 in the START_BATCHING request  */
15376 #define QMI_LOC_MASK_AON_DISTANCE_BASED_BATCHING_SUPPORTED_V02 ((qmiLocAonCapabilityMaskT_v02)0x00000002) /**<  The service supports distance-based batching  */
15377 #define QMI_LOC_MASK_AON_TIME_BASED_BATCHING_SUPPORTED_V02 ((qmiLocAonCapabilityMaskT_v02)0x00000004) /**<  The service supports time-based batching */
15378 #define QMI_LOC_MASK_AON_DISTANCE_BASED_TRACKING_SUPPORTED_V02 ((qmiLocAonCapabilityMaskT_v02)0x00000008) /**<  The service supports distance-based tracking  */
15379 #define QMI_LOC_MASK_AON_UPDATE_TBF_SUPPORTED_V02 ((qmiLocAonCapabilityMaskT_v02)0x00000010) /**<  The service supports changing TBF dynamically  */
15380 /** @addtogroup loc_qmi_messages
15381     @{
15382   */
15383 /** Request Message; Used by the clients to get always-on (AON) service settings.
15384                       */
15385 typedef struct {
15386 
15387   /* Mandatory */
15388   /*  Transaction ID */
15389   uint32_t transactionId;
15390   /**<   Identifies the transaction. The same transaction ID
15391        is returned in the QUERY_AON_CONFIG indication. */
15392 }qmiLocQueryAonConfigReqMsgT_v02;  /* Message */
15393 /**
15394     @}
15395   */
15396 
15397 /** @addtogroup loc_qmi_messages
15398     @{
15399   */
15400 /** Indication Message; Used by the clients to get always-on (AON) service settings.
15401                       */
15402 typedef struct {
15403 
15404   /* Mandatory */
15405   /*  Always-On Config Status */
15406   qmiLocStatusEnumT_v02 status;
15407   /**<   Status of the Query AON Config request.
15408  Valid values: \n
15409       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
15410       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
15411       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
15412       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
15413       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
15414       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
15415       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
15416       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
15417       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
15418       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
15419       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
15420  */
15421 
15422   /* Optional */
15423   /*  Transaction ID */
15424   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
15425   uint32_t transactionId;
15426   /**<   Identifies the transaction. It is the same transaction
15427        ID that was passed in the QUERY_AON_CONFIG request. */
15428 
15429   /* Optional */
15430   /*  Always-On Capability  */
15431   uint8_t aonCapability_valid;  /**< Must be set to true if aonCapability is being passed */
15432   qmiLocAonCapabilityMaskT_v02 aonCapability;
15433   /**<   Always-on capabilities supported by the service. \n
15434  Valid values: \n
15435       - QMI_LOC_MASK_AON_AUTO_BATCHING_SUPPORTED (0x00000001) --  The service supports auto batching; the client can enable auto
15436        batching by setting the distance parameter to 0 in the START_BATCHING request
15437       - QMI_LOC_MASK_AON_DISTANCE_BASED_BATCHING_SUPPORTED (0x00000002) --  The service supports distance-based batching
15438       - QMI_LOC_MASK_AON_TIME_BASED_BATCHING_SUPPORTED (0x00000004) --  The service supports time-based batching
15439       - QMI_LOC_MASK_AON_DISTANCE_BASED_TRACKING_SUPPORTED (0x00000008) --  The service supports distance-based tracking
15440       - QMI_LOC_MASK_AON_UPDATE_TBF_SUPPORTED (0x00000010) --  The service supports changing TBF dynamically */
15441 }qmiLocQueryAonConfigIndMsgT_v02;  /* Message */
15442 /**
15443     @}
15444   */
15445 
15446 typedef uint32_t qmiLocDeleteCommonDataMaskT_v02;
15447 #define QMI_LOC_DELETE_COMMON_MASK_POS_V02 ((qmiLocDeleteCommonDataMaskT_v02)0x00000001) /**<  Position estimate; common for all GNSS types  */
15448 #define QMI_LOC_DELETE_COMMON_MASK_TIME_V02 ((qmiLocDeleteCommonDataMaskT_v02)0x00000002) /**<  Reset all CLOCK_INFO mask  */
15449 #define QMI_LOC_DELETE_COMMON_MASK_UTC_V02 ((qmiLocDeleteCommonDataMaskT_v02)0x00000004) /**<  UTC estimate  */
15450 #define QMI_LOC_DELETE_COMMON_MASK_RTI_V02 ((qmiLocDeleteCommonDataMaskT_v02)0x00000008) /**<  RTI  */
15451 #define QMI_LOC_DELETE_COMMON_MASK_FREQ_BIAS_EST_V02 ((qmiLocDeleteCommonDataMaskT_v02)0x00000010) /**<  Frequency bias estimate; common for all GNSS types  */
15452 typedef uint32_t qmiLocDeleteSatelliteDataMaskT_v02;
15453 #define QMI_LOC_DELETE_DATA_MASK_EPHEMERIS_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000001) /**<  Ephemeris  */
15454 #define QMI_LOC_DELETE_DATA_MASK_ALMANAC_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000002) /**<  Almanac  */
15455 #define QMI_LOC_DELETE_DATA_MASK_SVHEALTH_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000004) /**<  SV health  */
15456 #define QMI_LOC_DELETE_DATA_MASK_SVDIR_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000008) /**<  SV direction  */
15457 #define QMI_LOC_DELETE_DATA_MASK_SVSTEER_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000010) /**<  SV steer  */
15458 #define QMI_LOC_DELETE_DATA_MASK_ALM_CORR_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000020) /**<  Almanac correction  */
15459 #define QMI_LOC_DELETE_DATA_MASK_BLACKLIST_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000040) /**<  Blacklist SVs  */
15460 #define QMI_LOC_DELETE_DATA_MASK_SA_DATA_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000080) /**<  Sensitivity assistance data  */
15461 #define QMI_LOC_DELETE_DATA_MASK_SV_NO_EXIST_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000100) /**<  SV does not exist  */
15462 #define QMI_LOC_DELETE_DATA_MASK_IONO_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000200) /**<  Ionosphere correction  */
15463 #define QMI_LOC_DELETE_DATA_MASK_TIME_V02 ((qmiLocDeleteSatelliteDataMaskT_v02)0x00000400) /**<  Reset satellite time  */
15464 typedef uint32_t qmiLocGNSSConstellMaskT_v02;
15465 #define QMI_LOC_SYSTEM_GPS_V02 ((qmiLocGNSSConstellMaskT_v02)0x00000001)
15466 #define QMI_LOC_SYSTEM_GLO_V02 ((qmiLocGNSSConstellMaskT_v02)0x00000002)
15467 #define QMI_LOC_SYSTEM_BDS_V02 ((qmiLocGNSSConstellMaskT_v02)0x00000004)
15468 #define QMI_LOC_SYSTEM_GAL_V02 ((qmiLocGNSSConstellMaskT_v02)0x00000008)
15469 #define QMI_LOC_SYSTEM_QZSS_V02 ((qmiLocGNSSConstellMaskT_v02)0x00000010)
15470 /** @addtogroup loc_qmi_aggregates
15471     @{
15472   */
15473 typedef struct {
15474 
15475   qmiLocGNSSConstellMaskT_v02 system;
15476   /**<   Indicates which satellite system's data is to be deleted.
15477  The control point can delete multiple systems at a time.
15478  Valid values: \n
15479       - QMI_LOC_SYSTEM_GPS (0x00000001) --
15480       - QMI_LOC_SYSTEM_GLO (0x00000002) --
15481       - QMI_LOC_SYSTEM_BDS (0x00000004) --
15482       - QMI_LOC_SYSTEM_GAL (0x00000008) --
15483       - QMI_LOC_SYSTEM_QZSS (0x00000010) --
15484  */
15485 
15486   qmiLocDeleteSatelliteDataMaskT_v02 deleteSatelliteDataMask;
15487   /**<   Requested bitmask of data to be deleted for the specified satellite system. \n
15488  Valid values: \n
15489       - QMI_LOC_DELETE_DATA_MASK_EPHEMERIS (0x00000001) --  Ephemeris
15490       - QMI_LOC_DELETE_DATA_MASK_ALMANAC (0x00000002) --  Almanac
15491       - QMI_LOC_DELETE_DATA_MASK_SVHEALTH (0x00000004) --  SV health
15492       - QMI_LOC_DELETE_DATA_MASK_SVDIR (0x00000008) --  SV direction
15493       - QMI_LOC_DELETE_DATA_MASK_SVSTEER (0x00000010) --  SV steer
15494       - QMI_LOC_DELETE_DATA_MASK_ALM_CORR (0x00000020) --  Almanac correction
15495       - QMI_LOC_DELETE_DATA_MASK_BLACKLIST (0x00000040) --  Blacklist SVs
15496       - QMI_LOC_DELETE_DATA_MASK_SA_DATA (0x00000080) --  Sensitivity assistance data
15497       - QMI_LOC_DELETE_DATA_MASK_SV_NO_EXIST (0x00000100) --  SV does not exist
15498       - QMI_LOC_DELETE_DATA_MASK_IONO (0x00000200) --  Ionosphere correction
15499       - QMI_LOC_DELETE_DATA_MASK_TIME (0x00000400) --  Reset satellite time
15500  */
15501 }qmiLocDeleteSatelliteDataStructT_v02;  /* Type */
15502 /**
15503     @}
15504   */
15505 
15506 /** @addtogroup loc_qmi_messages
15507     @{
15508   */
15509 /** Request Message; Deletes the location engine
15510                     service data from memory. */
15511 typedef struct {
15512 
15513   /* Mandatory */
15514   /*  Reset All */
15515   uint8_t deleteAllFlag;
15516   /**<   Indicates whether all GNSS service data is to be deleted.
15517        Values:
15518        0x01 (TRUE)  -- All constellations' service data is to be reset;
15519                        if this flag is set, all the other information
15520                        contained in the optional fields for this
15521                        message are ignored
15522        0x00 (FALSE) -- The optional fields in the message are to be
15523                        used to determine which data is to be deleted
15524   */
15525 
15526   /* Optional */
15527   /*  Requested Bitmask of Clock Info Data to be Deleted */
15528   uint8_t deleteClockInfoMask_valid;  /**< Must be set to true if deleteClockInfoMask is being passed */
15529   qmiLocDeleteClockInfoMaskT_v02 deleteClockInfoMask;
15530   /**<   Mask for the clock information service data that is to be deleted.
15531  If QMI_LOC_DELETE_DATA_MASK_TIME is set in deleteServiceDataMask,
15532  deleteClockInfoMask will be ignored.
15533  Valid values: \n
15534       - QMI_LOC_MASK_DELETE_CLOCK_INFO_TIME_EST (0x00000001) --  Mask to delete time estimate from clock information
15535       - QMI_LOC_MASK_DELETE_CLOCK_INFO_FREQ_EST (0x00000002) --  Mask to delete frequency estimate from clock information
15536       - QMI_LOC_MASK_DELETE_CLOCK_INFO_WEEK_NUMBER (0x00000004) --  Mask to delete week number from clock information
15537       - QMI_LOC_MASK_DELETE_CLOCK_INFO_RTC_TIME (0x00000008) --  Mask to delete RTC time from clock information
15538       - QMI_LOC_MASK_DELETE_CLOCK_INFO_TIME_TRANSFER (0x00000010) --  Mask to delete time transfer from clock information
15539       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GPSTIME_EST (0x00000020) --  Mask to delete GPS time estimate from clock information
15540       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GLOTIME_EST (0x00000040) --  Mask to delete GLONASS time estimate from clock information
15541       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GLODAY_NUMBER (0x00000080) --  Mask to delete GLONASS day number from clock information
15542       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GLO4YEAR_NUMBER (0x00000100) --  Mask to delete GLONASS four year number from clock information
15543       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GLO_RF_GRP_DELAY (0x00000200) --  Mask to delete GLONASS RF GRP delay from clock information
15544       - QMI_LOC_MASK_DELETE_CLOCK_INFO_DISABLE_TT (0x00000400) --  Mask to delete disable TT from clock information
15545       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GG_LEAPSEC (0x00000800) --  Mask to delete a BDS time estimate from the clock information
15546       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GG_GGTB (0x00001000) --  Mask to delete a BDS time estimate from the clock information
15547       - QMI_LOC_MASK_DELETE_CLOCK_INFO_BDSTIME_EST (0x00002000) --  Mask to delete a BDS time estimate from the clock information
15548       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GB_GBTB (0x00004000) --  Mask to delete Glonass-to-BDS time bias-related information from the
15549       clock information
15550       - QMI_LOC_MASK_DELETE_CLOCK_INFO_BG_BGTB (0x00008000) --  Mask to delete BDS-to-GLONASS time bias-related information from the
15551        clock information
15552       - QMI_LOC_MASK_DELETE_CLOCK_INFO_BDSWEEK_NUMBER (0x00010000) --  Mask to delete the BDS week number from the clock information
15553       - QMI_LOC_MASK_DELETE_CLOCK_INFO_BDS_RF_GRP_DELAY (0x00020000) --  Mask to delete the BDS RF GRP delay from the clock information
15554       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTIME_EST (0x00040000) --  Mask to delete a GAL time estimate from the clock information
15555       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTOGPS_TB (0x00080000) --  Mask to delete GAL-to-GPS time bias-related information from the
15556       clock information
15557       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTOGLO_TB (0x00100000) --  Mask to delete GAL-to-GLO time bias-related information from the
15558       clock information
15559       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GALTOBDS_TB (0x00200000) --  Mask to delete GAL-to-BDS time bias-related information from the
15560       clock information
15561       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GALWEEK_NUMBER (0x00800000) --  Mask to delete the GAL week number from the clock information
15562       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GAL_RF_GRP_DELAY (0x01000000) --  Mask to delete the GAL RF GRP delay from the clock information
15563  */
15564 
15565   /* Optional */
15566   /*  Requested Bitmask of Cell DB Data to be Deleted */
15567   uint8_t deleteCellDbDataMask_valid;  /**< Must be set to true if deleteCellDbDataMask is being passed */
15568   qmiLocDeleteCelldbDataMaskT_v02 deleteCellDbDataMask;
15569   /**<   Mask for the cell database service data that is to be deleted;
15570  common for all GNSS types.
15571  Valid values: \n
15572       - QMI_LOC_MASK_DELETE_CELLDB_POS (0x00000001) --  Mask to delete cell database position
15573       - QMI_LOC_MASK_DELETE_CELLDB_LATEST_GPS_POS (0x00000002) --  Mask to delete cell database latest GPS position
15574       - QMI_LOC_MASK_DELETE_CELLDB_OTA_POS (0x00000004) --  Mask to delete cell database OTA position
15575       - QMI_LOC_MASK_DELETE_CELLDB_EXT_REF_POS (0x00000008) --  Mask to delete cell database external reference position
15576       - QMI_LOC_MASK_DELETE_CELLDB_TIMETAG (0x00000010) --  Mask to delete cell database time tag
15577       - QMI_LOC_MASK_DELETE_CELLDB_CELLID (0x00000020) --  Mask to delete cell database cell ID
15578       - QMI_LOC_MASK_DELETE_CELLDB_CACHED_CELLID (0x00000040) --  Mask to delete cell database cached cell ID
15579       - QMI_LOC_MASK_DELETE_CELLDB_LAST_SRV_CELL (0x00000080) --  Mask to delete cell database last service cell
15580       - QMI_LOC_MASK_DELETE_CELLDB_CUR_SRV_CELL (0x00000100) --  Mask to delete cell database current service cell
15581       - QMI_LOC_MASK_DELETE_CELLDB_NEIGHBOR_INFO (0x00000200) --  Mask to delete cell database neighbor information
15582  */
15583 
15584   /* Optional */
15585   /*  Requested Bitmask of Common Data to be Deleted */
15586   uint8_t deleteCommonDataMask_valid;  /**< Must be set to true if deleteCommonDataMask is being passed */
15587   qmiLocDeleteCommonDataMaskT_v02 deleteCommonDataMask;
15588   /**<   Mask for the common service data that is to be deleted.
15589  Valid values: \n
15590       - QMI_LOC_DELETE_COMMON_MASK_POS (0x00000001) --  Position estimate; common for all GNSS types
15591       - QMI_LOC_DELETE_COMMON_MASK_TIME (0x00000002) --  Reset all CLOCK_INFO mask
15592       - QMI_LOC_DELETE_COMMON_MASK_UTC (0x00000004) --  UTC estimate
15593       - QMI_LOC_DELETE_COMMON_MASK_RTI (0x00000008) --  RTI
15594       - QMI_LOC_DELETE_COMMON_MASK_FREQ_BIAS_EST (0x00000010) --  Frequency bias estimate; common for all GNSS types
15595  */
15596 
15597   /* Optional */
15598   /*  GNSS Service Data to be Deleted */
15599   uint8_t deleteSatelliteData_valid;  /**< Must be set to true if deleteSatelliteData is being passed */
15600   qmiLocDeleteSatelliteDataStructT_v02 deleteSatelliteData;
15601   /**<   Request to delete the GNSS service data.*/
15602 }qmiLocDeleteGNSSServiceDataReqMsgT_v02;  /* Message */
15603 /**
15604     @}
15605   */
15606 
15607 /** @addtogroup loc_qmi_messages
15608     @{
15609   */
15610 /** Indication Message; Deletes the location engine
15611                     service data from memory. */
15612 typedef struct {
15613 
15614   /* Mandatory */
15615   /*  Delete GNSS Service Data Status */
15616   qmiLocStatusEnumT_v02 status;
15617   /**<   Status of the Delete Assist Data request.
15618 
15619  Valid values: \n
15620       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
15621       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
15622       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
15623       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
15624       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
15625       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
15626       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
15627       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
15628       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
15629       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
15630       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
15631  */
15632 }qmiLocDeleteGNSSServiceDataIndMsgT_v02;  /* Message */
15633 /**
15634     @}
15635   */
15636 
15637 /** @addtogroup loc_qmi_enums
15638     @{
15639   */
15640 typedef enum {
15641   QMILOCXTRADATAFORMATENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
15642   eQMI_LOC_XTRA_DATA_V02 = 0, /**<  Default is QCOM-XTRA format.  */
15643   QMILOCXTRADATAFORMATENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
15644 }qmiLocXtraDataFormatEnumT_v02;
15645 /**
15646     @}
15647   */
15648 
15649 /** @addtogroup loc_qmi_messages
15650     @{
15651   */
15652 /** Request Message; Injects XTRA data. */
15653 typedef struct {
15654 
15655   /* Mandatory */
15656   /*  Total Size */
15657   uint32_t totalSize;
15658   /**<   Total size of the XTRA data to be injected. \n
15659         - Units: Bytes */
15660 
15661   /* Mandatory */
15662   /*  Total Parts */
15663   uint16_t totalParts;
15664   /**<   Total number of parts into which the XTRA data is divided. */
15665 
15666   /* Mandatory */
15667   /*  Part Number */
15668   uint16_t partNum;
15669   /**<   Number of the current XTRA data part; starts at 1. */
15670 
15671   /* Mandatory */
15672   /*  Data */
15673   uint32_t partData_len;  /**< Must be set to # of elements in partData */
15674   uint8_t partData[QMI_LOC_MAX_XTRA_PART_LEN_V02];
15675   /**<   XTRA data. \n
15676          - Type: Array of bytes \n
15677          - Maximum length of the array: 1024
15678     */
15679 
15680   /* Optional */
15681   /*  Format Type */
15682   uint8_t formatType_valid;  /**< Must be set to true if formatType is being passed */
15683   qmiLocXtraDataFormatEnumT_v02 formatType;
15684   /**<   XTRA data format. \n
15685  Valid values: \n
15686       - eQMI_LOC_XTRA_DATA (0) --  Default is QCOM-XTRA format.
15687  */
15688 }qmiLocInjectXtraDataReqMsgT_v02;  /* Message */
15689 /**
15690     @}
15691   */
15692 
15693 /** @addtogroup loc_qmi_messages
15694     @{
15695   */
15696 /** Indication Message; Injects XTRA data. */
15697 typedef struct {
15698 
15699   /* Mandatory */
15700   /*  Data Injection Status */
15701   qmiLocStatusEnumT_v02 status;
15702   /**<   Status of the Data Injection request.
15703 
15704  Valid values: \n
15705       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
15706       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
15707       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
15708       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
15709       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
15710       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
15711       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
15712       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
15713       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
15714       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
15715       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
15716  */
15717 
15718   /* Optional */
15719   /*  Part Number */
15720   uint8_t partNum_valid;  /**< Must be set to true if partNum is being passed */
15721   uint16_t partNum;
15722   /**<   Number of the XTRA data part for which this indication
15723       is sent; starts at 1. */
15724 }qmiLocInjectXtraDataIndMsgT_v02;  /* Message */
15725 /**
15726     @}
15727   */
15728 
15729 /** @addtogroup loc_qmi_messages
15730     @{
15731   */
15732 /** Request Message; Used by the control point to inject PCID which is used by XTRA service. */
15733 typedef struct {
15734 
15735   /* Mandatory */
15736   /*  XTRA PCID */
15737   uint64_t xtraPcid;
15738   /**<   - Type: uint64 \n */
15739 }qmiLocInjectXtraPcidReqMsgT_v02;  /* Message */
15740 /**
15741     @}
15742   */
15743 
15744 /** @addtogroup loc_qmi_messages
15745     @{
15746   */
15747 /** Indication Message; Used by the control point to inject PCID which is used by XTRA service. */
15748 typedef struct {
15749 
15750   /* Mandatory */
15751   /*  Inject XTRA PCID Status */
15752   qmiLocStatusEnumT_v02 status;
15753   /**<   Status of the inject XTRA PCID.
15754 
15755  Valid values: \n
15756       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
15757       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
15758       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
15759       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
15760       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
15761       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
15762       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
15763       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
15764       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
15765       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
15766       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
15767 }qmiLocInjectXtraPcidIndMsgT_v02;  /* Message */
15768 /**
15769     @}
15770   */
15771 
15772 /* Conditional compilation tags for message removal */
15773 //#define REMOVE_QMI_LOC_ADD_CIRCULAR_GEOFENCE_V02
15774 //#define REMOVE_QMI_LOC_ADD_GEOFENCE_CONTEXT_V02
15775 //#define REMOVE_QMI_LOC_DELETE_ASSIST_DATA_V02
15776 //#define REMOVE_QMI_LOC_DELETE_GEOFENCE_V02
15777 //#define REMOVE_QMI_LOC_DELETE_GEOFENCE_CONTEXT_V02
15778 //#define REMOVE_QMI_LOC_DELETE_GNSS_SERVICE_DATA_V02
15779 //#define REMOVE_QMI_LOC_DELETE_SUPL_CERTIFICATE_V02
15780 //#define REMOVE_QMI_LOC_EDIT_GEOFENCE_V02
15781 //#define REMOVE_QMI_LOC_EVENT_BATCHING_STATUS_V02
15782 //#define REMOVE_QMI_LOC_EVENT_BATCH_FULL_NOTIFICATION_V02
15783 //#define REMOVE_QMI_LOC_EVENT_DBT_POSITION_REPORT_V02
15784 //#define REMOVE_QMI_LOC_EVENT_DBT_SESSION_STATUS_V02
15785 //#define REMOVE_QMI_LOC_EVENT_ENGINE_STATE_V02
15786 //#define REMOVE_QMI_LOC_EVENT_FIX_SESSION_STATE_V02
15787 //#define REMOVE_QMI_LOC_EVENT_GDT_DOWNLOAD_BEGIN_REQ_V02
15788 //#define REMOVE_QMI_LOC_EVENT_GDT_DOWNLOAD_END_REQ_V02
15789 //#define REMOVE_QMI_LOC_EVENT_GDT_RECEIVE_DONE_V02
15790 //#define REMOVE_QMI_LOC_EVENT_GDT_UPLOAD_BEGIN_STATUS_REQ_V02
15791 //#define REMOVE_QMI_LOC_EVENT_GDT_UPLOAD_END_REQ_V02
15792 //#define REMOVE_QMI_LOC_EVENT_GEOFENCE_BATCHED_BREACH_NOTIFICATION_V02
15793 //#define REMOVE_QMI_LOC_EVENT_GEOFENCE_BATCHED_DWELL_NOTIFICATION_V02
15794 //#define REMOVE_QMI_LOC_EVENT_GEOFENCE_BREACH_NOTIFICATION_V02
15795 //#define REMOVE_QMI_LOC_EVENT_GEOFENCE_GEN_ALERT_V02
15796 //#define REMOVE_QMI_LOC_EVENT_GEOFENCE_PROXIMITY_NOTIFICATION_V02
15797 //#define REMOVE_QMI_LOC_EVENT_GET_TIME_ZONE_INFO_V02
15798 //#define REMOVE_QMI_LOC_EVENT_GNSS_MEASUREMENT_REPORT_IND_V02
15799 //#define REMOVE_QMI_LOC_EVENT_GNSS_SV_INFO_V02
15800 //#define REMOVE_QMI_LOC_EVENT_INJECT_POSITION_REQ_V02
15801 //#define REMOVE_QMI_LOC_EVENT_INJECT_PREDICTED_ORBITS_REQ_V02
15802 //#define REMOVE_QMI_LOC_EVENT_INJECT_TIME_REQ_V02
15803 //#define REMOVE_QMI_LOC_EVENT_INJECT_WIFI_AP_DATA_REQ_V02
15804 //#define REMOVE_QMI_LOC_EVENT_LIVE_BATCHED_POSITION_REPORT_V02
15805 //#define REMOVE_QMI_LOC_EVENT_LOCATION_SERVER_CONNECTION_REQ_V02
15806 //#define REMOVE_QMI_LOC_EVENT_MOTION_DATA_CONTROL_V02
15807 //#define REMOVE_QMI_LOC_EVENT_NI_GEOFENCE_NOTIFICATION_V02
15808 //#define REMOVE_QMI_LOC_EVENT_NI_NOTIFY_VERIFY_REQ_V02
15809 //#define REMOVE_QMI_LOC_EVENT_NMEA_V02
15810 //#define REMOVE_QMI_LOC_EVENT_PEDOMETER_CONTROL_V02
15811 //#define REMOVE_QMI_LOC_EVENT_POSITION_REPORT_V02
15812 //#define REMOVE_QMI_LOC_EVENT_SENSOR_STREAMING_READY_STATUS_V02
15813 //#define REMOVE_QMI_LOC_EVENT_SET_SPI_STREAMING_REPORT_V02
15814 //#define REMOVE_QMI_LOC_EVENT_SV_POLYNOMIAL_REPORT_IND_V02
15815 //#define REMOVE_QMI_LOC_EVENT_TIME_SYNC_REQ_V02
15816 //#define REMOVE_QMI_LOC_EVENT_VEHICLE_DATA_READY_STATUS_V02
15817 //#define REMOVE_QMI_LOC_EVENT_WIFI_REQ_V02
15818 //#define REMOVE_QMI_LOC_GDT_DOWNLOAD_BEGIN_STATUS_V02
15819 //#define REMOVE_QMI_LOC_GDT_DOWNLOAD_END_STATUS_V02
15820 //#define REMOVE_QMI_LOC_GDT_DOWNLOAD_READY_STATUS_V02
15821 //#define REMOVE_QMI_LOC_GDT_RECEIVE_DONE_STATUS_V02
15822 //#define REMOVE_QMI_LOC_GDT_UPLOAD_BEGIN_STATUS_V02
15823 //#define REMOVE_QMI_LOC_GDT_UPLOAD_END_V02
15824 //#define REMOVE_QMI_LOC_GET_AVAILABLE_WWAN_POSITION_V02
15825 //#define REMOVE_QMI_LOC_GET_BATCH_SIZE_V02
15826 //#define REMOVE_QMI_LOC_GET_BEST_AVAILABLE_POSITION_V02
15827 //#define REMOVE_QMI_LOC_GET_CRADLE_MOUNT_CONFIG_V02
15828 //#define REMOVE_QMI_LOC_GET_ENGINE_LOCK_V02
15829 //#define REMOVE_QMI_LOC_GET_EXTERNAL_POWER_CONFIG_V02
15830 //#define REMOVE_QMI_LOC_GET_FIX_CRITERIA_V02
15831 //#define REMOVE_QMI_LOC_GET_GEOFENCE_ENGINE_CONFIG_V02
15832 //#define REMOVE_QMI_LOC_GET_LOW_POWER_MODE_V02
15833 //#define REMOVE_QMI_LOC_GET_NI_GEOFENCE_ID_LIST_V02
15834 //#define REMOVE_QMI_LOC_GET_NMEA_TYPES_V02
15835 //#define REMOVE_QMI_LOC_GET_OPERATION_MODE_V02
15836 //#define REMOVE_QMI_LOC_GET_POSITION_ENGINE_CONFIG_PARAMETERS_V02
15837 //#define REMOVE_QMI_LOC_GET_PREDICTED_ORBITS_DATA_SOURCE_V02
15838 //#define REMOVE_QMI_LOC_GET_PREDICTED_ORBITS_DATA_VALIDITY_V02
15839 //#define REMOVE_QMI_LOC_GET_PROTOCOL_CONFIG_PARAMETERS_V02
15840 //#define REMOVE_QMI_LOC_GET_REGISTERED_EVENTS_V02
15841 //#define REMOVE_QMI_LOC_GET_SBAS_CONFIG_V02
15842 //#define REMOVE_QMI_LOC_GET_SENSOR_CONTROL_CONFIG_V02
15843 //#define REMOVE_QMI_LOC_GET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_V02
15844 //#define REMOVE_QMI_LOC_GET_SENSOR_PROPERTIES_V02
15845 //#define REMOVE_QMI_LOC_GET_SERVER_V02
15846 //#define REMOVE_QMI_LOC_GET_SERVICE_REVISION_V02
15847 //#define REMOVE_QMI_LOC_GET_SUPPORTED_FIELDS_V02
15848 //#define REMOVE_QMI_LOC_GET_SUPPORTED_MSGS_V02
15849 //#define REMOVE_QMI_LOC_GET_XTRA_T_SESSION_CONTROL_V02
15850 //#define REMOVE_QMI_LOC_GTP_AP_STATUS_V02
15851 //#define REMOVE_QMI_LOC_INFORM_CLIENT_REVISION_V02
15852 //#define REMOVE_QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_V02
15853 //#define REMOVE_QMI_LOC_INFORM_NI_USER_RESPONSE_V02
15854 //#define REMOVE_QMI_LOC_INJECT_APCACHE_DATA_V02
15855 //#define REMOVE_QMI_LOC_INJECT_APDONOTCACHE_DATA_V02
15856 //#define REMOVE_QMI_LOC_INJECT_GSM_CELL_INFO_V02
15857 //#define REMOVE_QMI_LOC_INJECT_GTP_CLIENT_DOWNLOADED_DATA_V02
15858 //#define REMOVE_QMI_LOC_INJECT_MOTION_DATA_V02
15859 //#define REMOVE_QMI_LOC_INJECT_NETWORK_INITIATED_MESSAGE_V02
15860 //#define REMOVE_QMI_LOC_INJECT_POSITION_V02
15861 //#define REMOVE_QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_V02
15862 //#define REMOVE_QMI_LOC_INJECT_SENSOR_DATA_V02
15863 //#define REMOVE_QMI_LOC_INJECT_SUBSCRIBER_ID_V02
15864 //#define REMOVE_QMI_LOC_INJECT_SUPL_CERTIFICATE_V02
15865 //#define REMOVE_QMI_LOC_INJECT_TDSCDMA_CELL_INFO_V02
15866 //#define REMOVE_QMI_LOC_INJECT_TIME_SYNC_DATA_V02
15867 //#define REMOVE_QMI_LOC_INJECT_TIME_ZONE_INFO_V02
15868 //#define REMOVE_QMI_LOC_INJECT_UTC_TIME_V02
15869 //#define REMOVE_QMI_LOC_INJECT_VEHICLE_SENSOR_DATA_V02
15870 //#define REMOVE_QMI_LOC_INJECT_WCDMA_CELL_INFO_V02
15871 //#define REMOVE_QMI_LOC_INJECT_WIFI_AP_DATA_V02
15872 //#define REMOVE_QMI_LOC_INJECT_WIFI_POSITION_V02
15873 //#define REMOVE_QMI_LOC_INJECT_XTRA_DATA_V02
15874 //#define REMOVE_QMI_LOC_INJECT_XTRA_PCID_V02
15875 //#define REMOVE_QMI_LOC_NOTIFY_WIFI_ATTACHMENT_STATUS_V02
15876 //#define REMOVE_QMI_LOC_NOTIFY_WIFI_ENABLED_STATUS_V02
15877 //#define REMOVE_QMI_LOC_NOTIFY_WIFI_STATUS_V02
15878 //#define REMOVE_QMI_LOC_PEDOMETER_REPORT_V02
15879 //#define REMOVE_QMI_LOC_QUERY_AON_CONFIG_V02
15880 //#define REMOVE_QMI_LOC_QUERY_GEOFENCE_V02
15881 //#define REMOVE_QMI_LOC_READ_FROM_BATCH_V02
15882 //#define REMOVE_QMI_LOC_REG_EVENTS_V02
15883 //#define REMOVE_QMI_LOC_RELEASE_BATCH_V02
15884 //#define REMOVE_QMI_LOC_SECURE_GET_AVAILABLE_POSITION_V02
15885 //#define REMOVE_QMI_LOC_SET_CRADLE_MOUNT_CONFIG_V02
15886 //#define REMOVE_QMI_LOC_SET_ENGINE_LOCK_V02
15887 //#define REMOVE_QMI_LOC_SET_EXTERNAL_POWER_CONFIG_V02
15888 //#define REMOVE_QMI_LOC_SET_GEOFENCE_ENGINE_CONFIG_V02
15889 //#define REMOVE_QMI_LOC_SET_GEOFENCE_ENGINE_CONTEXT_V02
15890 //#define REMOVE_QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG_V02
15891 //#define REMOVE_QMI_LOC_SET_LOW_POWER_MODE_V02
15892 //#define REMOVE_QMI_LOC_SET_NMEA_TYPES_V02
15893 //#define REMOVE_QMI_LOC_SET_OPERATION_MODE_V02
15894 //#define REMOVE_QMI_LOC_SET_POSITION_ENGINE_CONFIG_PARAMETERS_V02
15895 //#define REMOVE_QMI_LOC_SET_PREMIUM_SERVICES_CONFIG_V02
15896 //#define REMOVE_QMI_LOC_SET_PROTOCOL_CONFIG_PARAMETERS_V02
15897 //#define REMOVE_QMI_LOC_SET_SBAS_CONFIG_V02
15898 //#define REMOVE_QMI_LOC_SET_SENSOR_CONTROL_CONFIG_V02
15899 //#define REMOVE_QMI_LOC_SET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_V02
15900 //#define REMOVE_QMI_LOC_SET_SENSOR_PROPERTIES_V02
15901 //#define REMOVE_QMI_LOC_SET_SERVER_V02
15902 //#define REMOVE_QMI_LOC_SET_SPI_STATUS_V02
15903 //#define REMOVE_QMI_LOC_SET_XTRA_T_SESSION_CONTROL_V02
15904 //#define REMOVE_QMI_LOC_SET_XTRA_VERSION_CHECK_V02
15905 //#define REMOVE_QMI_LOC_START_V02
15906 //#define REMOVE_QMI_LOC_START_BATCHING_V02
15907 //#define REMOVE_QMI_LOC_START_DBT_V02
15908 //#define REMOVE_QMI_LOC_STOP_V02
15909 //#define REMOVE_QMI_LOC_STOP_BATCHING_V02
15910 //#define REMOVE_QMI_LOC_STOP_DBT_V02
15911 //#define REMOVE_QMI_LOC_WWAN_OUT_OF_SERVICE_NOTIFICATION_V02
15912 
15913 /*Service Message Definition*/
15914 /** @addtogroup loc_qmi_msg_ids
15915     @{
15916   */
15917 #define QMI_LOC_GET_SUPPORTED_MSGS_REQ_V02 0x001E
15918 #define QMI_LOC_GET_SUPPORTED_MSGS_RESP_V02 0x001E
15919 #define QMI_LOC_GET_SUPPORTED_FIELDS_REQ_V02 0x001F
15920 #define QMI_LOC_GET_SUPPORTED_FIELDS_RESP_V02 0x001F
15921 #define QMI_LOC_INFORM_CLIENT_REVISION_REQ_V02 0x0020
15922 #define QMI_LOC_INFORM_CLIENT_REVISION_RESP_V02 0x0020
15923 #define QMI_LOC_REG_EVENTS_REQ_V02 0x0021
15924 #define QMI_LOC_REG_EVENTS_RESP_V02 0x0021
15925 #define QMI_LOC_START_REQ_V02 0x0022
15926 #define QMI_LOC_START_RESP_V02 0x0022
15927 #define QMI_LOC_STOP_REQ_V02 0x0023
15928 #define QMI_LOC_STOP_RESP_V02 0x0023
15929 #define QMI_LOC_EVENT_POSITION_REPORT_IND_V02 0x0024
15930 #define QMI_LOC_EVENT_GNSS_SV_INFO_IND_V02 0x0025
15931 #define QMI_LOC_EVENT_NMEA_IND_V02 0x0026
15932 #define QMI_LOC_EVENT_NI_NOTIFY_VERIFY_REQ_IND_V02 0x0027
15933 #define QMI_LOC_EVENT_INJECT_TIME_REQ_IND_V02 0x0028
15934 #define QMI_LOC_EVENT_INJECT_PREDICTED_ORBITS_REQ_IND_V02 0x0029
15935 #define QMI_LOC_EVENT_INJECT_POSITION_REQ_IND_V02 0x002A
15936 #define QMI_LOC_EVENT_ENGINE_STATE_IND_V02 0x002B
15937 #define QMI_LOC_EVENT_FIX_SESSION_STATE_IND_V02 0x002C
15938 #define QMI_LOC_EVENT_WIFI_REQ_IND_V02 0x002D
15939 #define QMI_LOC_EVENT_SENSOR_STREAMING_READY_STATUS_IND_V02 0x002E
15940 #define QMI_LOC_EVENT_TIME_SYNC_REQ_IND_V02 0x002F
15941 #define QMI_LOC_EVENT_SET_SPI_STREAMING_REPORT_IND_V02 0x0030
15942 #define QMI_LOC_EVENT_LOCATION_SERVER_CONNECTION_REQ_IND_V02 0x0031
15943 #define QMI_LOC_GET_SERVICE_REVISION_REQ_V02 0x0032
15944 #define QMI_LOC_GET_SERVICE_REVISION_RESP_V02 0x0032
15945 #define QMI_LOC_GET_SERVICE_REVISION_IND_V02 0x0032
15946 #define QMI_LOC_GET_FIX_CRITERIA_REQ_V02 0x0033
15947 #define QMI_LOC_GET_FIX_CRITERIA_RESP_V02 0x0033
15948 #define QMI_LOC_GET_FIX_CRITERIA_IND_V02 0x0033
15949 #define QMI_LOC_NI_USER_RESPONSE_REQ_V02 0x0034
15950 #define QMI_LOC_NI_USER_RESPONSE_RESP_V02 0x0034
15951 #define QMI_LOC_NI_USER_RESPONSE_IND_V02 0x0034
15952 #define QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_REQ_V02 0x0035
15953 #define QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_RESP_V02 0x0035
15954 #define QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_IND_V02 0x0035
15955 #define QMI_LOC_GET_PREDICTED_ORBITS_DATA_SOURCE_REQ_V02 0x0036
15956 #define QMI_LOC_GET_PREDICTED_ORBITS_DATA_SOURCE_RESP_V02 0x0036
15957 #define QMI_LOC_GET_PREDICTED_ORBITS_DATA_SOURCE_IND_V02 0x0036
15958 #define QMI_LOC_GET_PREDICTED_ORBITS_DATA_VALIDITY_REQ_V02 0x0037
15959 #define QMI_LOC_GET_PREDICTED_ORBITS_DATA_VALIDITY_RESP_V02 0x0037
15960 #define QMI_LOC_GET_PREDICTED_ORBITS_DATA_VALIDITY_IND_V02 0x0037
15961 #define QMI_LOC_INJECT_UTC_TIME_REQ_V02 0x0038
15962 #define QMI_LOC_INJECT_UTC_TIME_RESP_V02 0x0038
15963 #define QMI_LOC_INJECT_UTC_TIME_IND_V02 0x0038
15964 #define QMI_LOC_INJECT_POSITION_REQ_V02 0x0039
15965 #define QMI_LOC_INJECT_POSITION_RESP_V02 0x0039
15966 #define QMI_LOC_INJECT_POSITION_IND_V02 0x0039
15967 #define QMI_LOC_SET_ENGINE_LOCK_REQ_V02 0x003A
15968 #define QMI_LOC_SET_ENGINE_LOCK_RESP_V02 0x003A
15969 #define QMI_LOC_SET_ENGINE_LOCK_IND_V02 0x003A
15970 #define QMI_LOC_GET_ENGINE_LOCK_REQ_V02 0x003B
15971 #define QMI_LOC_GET_ENGINE_LOCK_RESP_V02 0x003B
15972 #define QMI_LOC_GET_ENGINE_LOCK_IND_V02 0x003B
15973 #define QMI_LOC_SET_SBAS_CONFIG_REQ_V02 0x003C
15974 #define QMI_LOC_SET_SBAS_CONFIG_RESP_V02 0x003C
15975 #define QMI_LOC_SET_SBAS_CONFIG_IND_V02 0x003C
15976 #define QMI_LOC_GET_SBAS_CONFIG_REQ_V02 0x003D
15977 #define QMI_LOC_GET_SBAS_CONFIG_RESP_V02 0x003D
15978 #define QMI_LOC_GET_SBAS_CONFIG_IND_V02 0x003D
15979 #define QMI_LOC_SET_NMEA_TYPES_REQ_V02 0x003E
15980 #define QMI_LOC_SET_NMEA_TYPES_RESP_V02 0x003E
15981 #define QMI_LOC_SET_NMEA_TYPES_IND_V02 0x003E
15982 #define QMI_LOC_GET_NMEA_TYPES_REQ_V02 0x003F
15983 #define QMI_LOC_GET_NMEA_TYPES_RESP_V02 0x003F
15984 #define QMI_LOC_GET_NMEA_TYPES_IND_V02 0x003F
15985 #define QMI_LOC_SET_LOW_POWER_MODE_REQ_V02 0x0040
15986 #define QMI_LOC_SET_LOW_POWER_MODE_RESP_V02 0x0040
15987 #define QMI_LOC_SET_LOW_POWER_MODE_IND_V02 0x0040
15988 #define QMI_LOC_GET_LOW_POWER_MODE_REQ_V02 0x0041
15989 #define QMI_LOC_GET_LOW_POWER_MODE_RESP_V02 0x0041
15990 #define QMI_LOC_GET_LOW_POWER_MODE_IND_V02 0x0041
15991 #define QMI_LOC_SET_SERVER_REQ_V02 0x0042
15992 #define QMI_LOC_SET_SERVER_RESP_V02 0x0042
15993 #define QMI_LOC_SET_SERVER_IND_V02 0x0042
15994 #define QMI_LOC_GET_SERVER_REQ_V02 0x0043
15995 #define QMI_LOC_GET_SERVER_RESP_V02 0x0043
15996 #define QMI_LOC_GET_SERVER_IND_V02 0x0043
15997 #define QMI_LOC_DELETE_ASSIST_DATA_REQ_V02 0x0044
15998 #define QMI_LOC_DELETE_ASSIST_DATA_RESP_V02 0x0044
15999 #define QMI_LOC_DELETE_ASSIST_DATA_IND_V02 0x0044
16000 #define QMI_LOC_SET_XTRA_T_SESSION_CONTROL_REQ_V02 0x0045
16001 #define QMI_LOC_SET_XTRA_T_SESSION_CONTROL_RESP_V02 0x0045
16002 #define QMI_LOC_SET_XTRA_T_SESSION_CONTROL_IND_V02 0x0045
16003 #define QMI_LOC_GET_XTRA_T_SESSION_CONTROL_REQ_V02 0x0046
16004 #define QMI_LOC_GET_XTRA_T_SESSION_CONTROL_RESP_V02 0x0046
16005 #define QMI_LOC_GET_XTRA_T_SESSION_CONTROL_IND_V02 0x0046
16006 #define QMI_LOC_INJECT_WIFI_POSITION_REQ_V02 0x0047
16007 #define QMI_LOC_INJECT_WIFI_POSITION_RESP_V02 0x0047
16008 #define QMI_LOC_INJECT_WIFI_POSITION_IND_V02 0x0047
16009 #define QMI_LOC_NOTIFY_WIFI_STATUS_REQ_V02 0x0048
16010 #define QMI_LOC_NOTIFY_WIFI_STATUS_RESP_V02 0x0048
16011 #define QMI_LOC_NOTIFY_WIFI_STATUS_IND_V02 0x0048
16012 #define QMI_LOC_GET_REGISTERED_EVENTS_REQ_V02 0x0049
16013 #define QMI_LOC_GET_REGISTERED_EVENTS_RESP_V02 0x0049
16014 #define QMI_LOC_GET_REGISTERED_EVENTS_IND_V02 0x0049
16015 #define QMI_LOC_SET_OPERATION_MODE_REQ_V02 0x004A
16016 #define QMI_LOC_SET_OPERATION_MODE_RESP_V02 0x004A
16017 #define QMI_LOC_SET_OPERATION_MODE_IND_V02 0x004A
16018 #define QMI_LOC_GET_OPERATION_MODE_REQ_V02 0x004B
16019 #define QMI_LOC_GET_OPERATION_MODE_RESP_V02 0x004B
16020 #define QMI_LOC_GET_OPERATION_MODE_IND_V02 0x004B
16021 #define QMI_LOC_SET_SPI_STATUS_REQ_V02 0x004C
16022 #define QMI_LOC_SET_SPI_STATUS_RESP_V02 0x004C
16023 #define QMI_LOC_SET_SPI_STATUS_IND_V02 0x004C
16024 #define QMI_LOC_INJECT_SENSOR_DATA_REQ_V02 0x004D
16025 #define QMI_LOC_INJECT_SENSOR_DATA_RESP_V02 0x004D
16026 #define QMI_LOC_INJECT_SENSOR_DATA_IND_V02 0x004D
16027 #define QMI_LOC_INJECT_TIME_SYNC_DATA_REQ_V02 0x004E
16028 #define QMI_LOC_INJECT_TIME_SYNC_DATA_RESP_V02 0x004E
16029 #define QMI_LOC_INJECT_TIME_SYNC_DATA_IND_V02 0x004E
16030 #define QMI_LOC_SET_CRADLE_MOUNT_CONFIG_REQ_V02 0x004F
16031 #define QMI_LOC_SET_CRADLE_MOUNT_CONFIG_RESP_V02 0x004F
16032 #define QMI_LOC_SET_CRADLE_MOUNT_CONFIG_IND_V02 0x004F
16033 #define QMI_LOC_GET_CRADLE_MOUNT_CONFIG_REQ_V02 0x0050
16034 #define QMI_LOC_GET_CRADLE_MOUNT_CONFIG_RESP_V02 0x0050
16035 #define QMI_LOC_GET_CRADLE_MOUNT_CONFIG_IND_V02 0x0050
16036 #define QMI_LOC_SET_EXTERNAL_POWER_CONFIG_REQ_V02 0x0051
16037 #define QMI_LOC_SET_EXTERNAL_POWER_CONFIG_RESP_V02 0x0051
16038 #define QMI_LOC_SET_EXTERNAL_POWER_CONFIG_IND_V02 0x0051
16039 #define QMI_LOC_GET_EXTERNAL_POWER_CONFIG_REQ_V02 0x0052
16040 #define QMI_LOC_GET_EXTERNAL_POWER_CONFIG_RESP_V02 0x0052
16041 #define QMI_LOC_GET_EXTERNAL_POWER_CONFIG_IND_V02 0x0052
16042 #define QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_REQ_V02 0x0053
16043 #define QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_RESP_V02 0x0053
16044 #define QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_IND_V02 0x0053
16045 #define QMI_LOC_SET_PROTOCOL_CONFIG_PARAMETERS_REQ_V02 0x0054
16046 #define QMI_LOC_SET_PROTOCOL_CONFIG_PARAMETERS_RESP_V02 0x0054
16047 #define QMI_LOC_SET_PROTOCOL_CONFIG_PARAMETERS_IND_V02 0x0054
16048 #define QMI_LOC_GET_PROTOCOL_CONFIG_PARAMETERS_REQ_V02 0x0055
16049 #define QMI_LOC_GET_PROTOCOL_CONFIG_PARAMETERS_RESP_V02 0x0055
16050 #define QMI_LOC_GET_PROTOCOL_CONFIG_PARAMETERS_IND_V02 0x0055
16051 #define QMI_LOC_SET_SENSOR_CONTROL_CONFIG_REQ_V02 0x0056
16052 #define QMI_LOC_SET_SENSOR_CONTROL_CONFIG_RESP_V02 0x0056
16053 #define QMI_LOC_SET_SENSOR_CONTROL_CONFIG_IND_V02 0x0056
16054 #define QMI_LOC_GET_SENSOR_CONTROL_CONFIG_REQ_V02 0x0057
16055 #define QMI_LOC_GET_SENSOR_CONTROL_CONFIG_RESP_V02 0x0057
16056 #define QMI_LOC_GET_SENSOR_CONTROL_CONFIG_IND_V02 0x0057
16057 #define QMI_LOC_SET_SENSOR_PROPERTIES_REQ_V02 0x0058
16058 #define QMI_LOC_SET_SENSOR_PROPERTIES_RESP_V02 0x0058
16059 #define QMI_LOC_SET_SENSOR_PROPERTIES_IND_V02 0x0058
16060 #define QMI_LOC_GET_SENSOR_PROPERTIES_REQ_V02 0x0059
16061 #define QMI_LOC_GET_SENSOR_PROPERTIES_RESP_V02 0x0059
16062 #define QMI_LOC_GET_SENSOR_PROPERTIES_IND_V02 0x0059
16063 #define QMI_LOC_SET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_REQ_V02 0x005A
16064 #define QMI_LOC_SET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_RESP_V02 0x005A
16065 #define QMI_LOC_SET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_IND_V02 0x005A
16066 #define QMI_LOC_GET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_REQ_V02 0x005B
16067 #define QMI_LOC_GET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_RESP_V02 0x005B
16068 #define QMI_LOC_GET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_IND_V02 0x005B
16069 #define QMI_LOC_INJECT_SUPL_CERTIFICATE_REQ_V02 0x005C
16070 #define QMI_LOC_INJECT_SUPL_CERTIFICATE_RESP_V02 0x005C
16071 #define QMI_LOC_INJECT_SUPL_CERTIFICATE_IND_V02 0x005C
16072 #define QMI_LOC_DELETE_SUPL_CERTIFICATE_REQ_V02 0x005D
16073 #define QMI_LOC_DELETE_SUPL_CERTIFICATE_RESP_V02 0x005D
16074 #define QMI_LOC_DELETE_SUPL_CERTIFICATE_IND_V02 0x005D
16075 #define QMI_LOC_SET_POSITION_ENGINE_CONFIG_PARAMETERS_REQ_V02 0x005E
16076 #define QMI_LOC_SET_POSITION_ENGINE_CONFIG_PARAMETERS_RESP_V02 0x005E
16077 #define QMI_LOC_SET_POSITION_ENGINE_CONFIG_PARAMETERS_IND_V02 0x005E
16078 #define QMI_LOC_GET_POSITION_ENGINE_CONFIG_PARAMETERS_REQ_V02 0x005F
16079 #define QMI_LOC_GET_POSITION_ENGINE_CONFIG_PARAMETERS_RESP_V02 0x005F
16080 #define QMI_LOC_GET_POSITION_ENGINE_CONFIG_PARAMETERS_IND_V02 0x005F
16081 #define QMI_LOC_EVENT_NI_GEOFENCE_NOTIFICATION_IND_V02 0x0060
16082 #define QMI_LOC_EVENT_GEOFENCE_GEN_ALERT_IND_V02 0x0061
16083 #define QMI_LOC_EVENT_GEOFENCE_BREACH_NOTIFICATION_IND_V02 0x0062
16084 #define QMI_LOC_ADD_CIRCULAR_GEOFENCE_REQ_V02 0x0063
16085 #define QMI_LOC_ADD_CIRCULAR_GEOFENCE_RESP_V02 0x0063
16086 #define QMI_LOC_ADD_CIRCULAR_GEOFENCE_IND_V02 0x0063
16087 #define QMI_LOC_DELETE_GEOFENCE_REQ_V02 0x0064
16088 #define QMI_LOC_DELETE_GEOFENCE_RESP_V02 0x0064
16089 #define QMI_LOC_DELETE_GEOFENCE_IND_V02 0x0064
16090 #define QMI_LOC_QUERY_GEOFENCE_REQ_V02 0x0065
16091 #define QMI_LOC_QUERY_GEOFENCE_RESP_V02 0x0065
16092 #define QMI_LOC_QUERY_GEOFENCE_IND_V02 0x0065
16093 #define QMI_LOC_EDIT_GEOFENCE_REQ_V02 0x0066
16094 #define QMI_LOC_EDIT_GEOFENCE_RESP_V02 0x0066
16095 #define QMI_LOC_EDIT_GEOFENCE_IND_V02 0x0066
16096 #define QMI_LOC_GET_BEST_AVAILABLE_POSITION_REQ_V02 0x0067
16097 #define QMI_LOC_GET_BEST_AVAILABLE_POSITION_RESP_V02 0x0067
16098 #define QMI_LOC_GET_BEST_AVAILABLE_POSITION_IND_V02 0x0067
16099 #define QMI_LOC_INJECT_MOTION_DATA_REQ_V02 0x0068
16100 #define QMI_LOC_INJECT_MOTION_DATA_RESP_V02 0x0068
16101 #define QMI_LOC_INJECT_MOTION_DATA_IND_V02 0x0068
16102 #define QMI_LOC_GET_NI_GEOFENCE_ID_LIST_REQ_V02 0x0069
16103 #define QMI_LOC_GET_NI_GEOFENCE_ID_LIST_RESP_V02 0x0069
16104 #define QMI_LOC_GET_NI_GEOFENCE_ID_LIST_IND_V02 0x0069
16105 #define QMI_LOC_INJECT_GSM_CELL_INFO_REQ_V02 0x006A
16106 #define QMI_LOC_INJECT_GSM_CELL_INFO_RESP_V02 0x006A
16107 #define QMI_LOC_INJECT_GSM_CELL_INFO_IND_V02 0x006A
16108 #define QMI_LOC_INJECT_NETWORK_INITIATED_MESSAGE_REQ_V02 0x006B
16109 #define QMI_LOC_INJECT_NETWORK_INITIATED_MESSAGE_RESP_V02 0x006B
16110 #define QMI_LOC_INJECT_NETWORK_INITIATED_MESSAGE_IND_V02 0x006B
16111 #define QMI_LOC_WWAN_OUT_OF_SERVICE_NOTIFICATION_REQ_V02 0x006C
16112 #define QMI_LOC_WWAN_OUT_OF_SERVICE_NOTIFICATION_RESP_V02 0x006C
16113 #define QMI_LOC_WWAN_OUT_OF_SERVICE_NOTIFICATION_IND_V02 0x006C
16114 #define QMI_LOC_EVENT_PEDOMETER_CONTROL_IND_V02 0x006D
16115 #define QMI_LOC_EVENT_MOTION_DATA_CONTROL_IND_V02 0x006E
16116 #define QMI_LOC_PEDOMETER_REPORT_REQ_V02 0x006F
16117 #define QMI_LOC_PEDOMETER_REPORT_RESP_V02 0x006F
16118 #define QMI_LOC_PEDOMETER_REPORT_IND_V02 0x006F
16119 #define QMI_LOC_INJECT_WCDMA_CELL_INFO_REQ_V02 0x0070
16120 #define QMI_LOC_INJECT_WCDMA_CELL_INFO_RESP_V02 0x0070
16121 #define QMI_LOC_INJECT_WCDMA_CELL_INFO_IND_V02 0x0070
16122 #define QMI_LOC_INJECT_TDSCDMA_CELL_INFO_REQ_V02 0x0071
16123 #define QMI_LOC_INJECT_TDSCDMA_CELL_INFO_RESP_V02 0x0071
16124 #define QMI_LOC_INJECT_TDSCDMA_CELL_INFO_IND_V02 0x0071
16125 #define QMI_LOC_INJECT_SUBSCRIBER_ID_REQ_V02 0x0072
16126 #define QMI_LOC_INJECT_SUBSCRIBER_ID_RESP_V02 0x0072
16127 #define QMI_LOC_INJECT_SUBSCRIBER_ID_IND_V02 0x0072
16128 #define QMI_LOC_SET_GEOFENCE_ENGINE_CONFIG_REQ_V02 0x0073
16129 #define QMI_LOC_SET_GEOFENCE_ENGINE_CONFIG_RESP_V02 0x0073
16130 #define QMI_LOC_SET_GEOFENCE_ENGINE_CONFIG_IND_V02 0x0073
16131 #define QMI_LOC_GET_GEOFENCE_ENGINE_CONFIG_REQ_V02 0x0074
16132 #define QMI_LOC_GET_GEOFENCE_ENGINE_CONFIG_RESP_V02 0x0074
16133 #define QMI_LOC_GET_GEOFENCE_ENGINE_CONFIG_IND_V02 0x0074
16134 #define QMI_LOC_GET_BATCH_SIZE_REQ_V02 0x0075
16135 #define QMI_LOC_GET_BATCH_SIZE_RESP_V02 0x0075
16136 #define QMI_LOC_GET_BATCH_SIZE_IND_V02 0x0075
16137 #define QMI_LOC_START_BATCHING_REQ_V02 0x0076
16138 #define QMI_LOC_START_BATCHING_RESP_V02 0x0076
16139 #define QMI_LOC_START_BATCHING_IND_V02 0x0076
16140 #define QMI_LOC_EVENT_BATCH_FULL_NOTIFICATION_IND_V02 0x0077
16141 #define QMI_LOC_EVENT_LIVE_BATCHED_POSITION_REPORT_IND_V02 0x0078
16142 #define QMI_LOC_READ_FROM_BATCH_REQ_V02 0x0079
16143 #define QMI_LOC_READ_FROM_BATCH_RESP_V02 0x0079
16144 #define QMI_LOC_READ_FROM_BATCH_IND_V02 0x0079
16145 #define QMI_LOC_STOP_BATCHING_REQ_V02 0x007A
16146 #define QMI_LOC_STOP_BATCHING_RESP_V02 0x007A
16147 #define QMI_LOC_STOP_BATCHING_IND_V02 0x007A
16148 #define QMI_LOC_RELEASE_BATCH_REQ_V02 0x007B
16149 #define QMI_LOC_RELEASE_BATCH_RESP_V02 0x007B
16150 #define QMI_LOC_RELEASE_BATCH_IND_V02 0x007B
16151 #define QMI_LOC_EVENT_INJECT_WIFI_AP_DATA_REQ_IND_V02 0x007C
16152 #define QMI_LOC_INJECT_WIFI_AP_DATA_REQ_V02 0x007D
16153 #define QMI_LOC_INJECT_WIFI_AP_DATA_RESP_V02 0x007D
16154 #define QMI_LOC_INJECT_WIFI_AP_DATA_IND_V02 0x007D
16155 #define QMI_LOC_NOTIFY_WIFI_ATTACHMENT_STATUS_REQ_V02 0x007E
16156 #define QMI_LOC_NOTIFY_WIFI_ATTACHMENT_STATUS_RESP_V02 0x007E
16157 #define QMI_LOC_NOTIFY_WIFI_ATTACHMENT_STATUS_IND_V02 0x007E
16158 #define QMI_LOC_NOTIFY_WIFI_ENABLED_STATUS_REQ_V02 0x007F
16159 #define QMI_LOC_NOTIFY_WIFI_ENABLED_STATUS_RESP_V02 0x007F
16160 #define QMI_LOC_NOTIFY_WIFI_ENABLED_STATUS_IND_V02 0x007F
16161 #define QMI_LOC_EVENT_GEOFENCE_BATCHED_BREACH_NOTIFICATION_IND_V02 0x0080
16162 #define QMI_LOC_EVENT_VEHICLE_DATA_READY_STATUS_IND_V02 0x0081
16163 #define QMI_LOC_INJECT_VEHICLE_SENSOR_DATA_REQ_V02 0x0082
16164 #define QMI_LOC_INJECT_VEHICLE_SENSOR_DATA_RESP_V02 0x0082
16165 #define QMI_LOC_INJECT_VEHICLE_SENSOR_DATA_IND_V02 0x0082
16166 #define QMI_LOC_GET_AVAILABLE_WWAN_POSITION_REQ_V02 0x0083
16167 #define QMI_LOC_GET_AVAILABLE_WWAN_POSITION_RESP_V02 0x0083
16168 #define QMI_LOC_GET_AVAILABLE_WWAN_POSITION_IND_V02 0x0083
16169 #define QMI_LOC_SET_PREMIUM_SERVICES_CONFIG_REQ_V02 0x0084
16170 #define QMI_LOC_SET_PREMIUM_SERVICES_CONFIG_RESP_V02 0x0084
16171 #define QMI_LOC_SET_PREMIUM_SERVICES_CONFIG_IND_V02 0x0084
16172 #define QMI_LOC_SET_XTRA_VERSION_CHECK_REQ_V02 0x0085
16173 #define QMI_LOC_SET_XTRA_VERSION_CHECK_RESP_V02 0x0085
16174 #define QMI_LOC_SET_XTRA_VERSION_CHECK_IND_V02 0x0085
16175 #define QMI_LOC_EVENT_GNSS_MEASUREMENT_REPORT_IND_V02 0x0086
16176 #define QMI_LOC_EVENT_SV_POLYNOMIAL_REPORT_IND_V02 0x0087
16177 #define QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG_V02 0x0088
16178 #define QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG_RESP_V02 0x0088
16179 #define QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG_IND_V02 0x0088
16180 #define QMI_LOC_ADD_GEOFENCE_CONTEXT_REQ_V02 0x0089
16181 #define QMI_LOC_ADD_GEOFENCE_CONTEXT_RESP_V02 0x0089
16182 #define QMI_LOC_ADD_GEOFENCE_CONTEXT_IND_V02 0x0089
16183 #define QMI_LOC_SET_GEOFENCE_ENGINE_CONTEXT_REQ_V02 0x008A
16184 #define QMI_LOC_SET_GEOFENCE_ENGINE_CONTEXT_RESP_V02 0x008A
16185 #define QMI_LOC_SET_GEOFENCE_ENGINE_CONTEXT_IND_V02 0x008A
16186 #define QMI_LOC_DELETE_GEOFENCE_CONTEXT_REQ_V02 0x008B
16187 #define QMI_LOC_DELETE_GEOFENCE_CONTEXT_RESP_V02 0x008B
16188 #define QMI_LOC_DELETE_GEOFENCE_CONTEXT_IND_V02 0x008B
16189 #define QMI_LOC_EVENT_GEOFENCE_PROXIMITY_NOTIFICATION_IND_V02 0x008C
16190 #define QMI_LOC_INJECT_GTP_CLIENT_DOWNLOADED_DATA_REQ_V02 0x008D
16191 #define QMI_LOC_INJECT_GTP_CLIENT_DOWNLOADED_DATA_RESP_V02 0x008D
16192 #define QMI_LOC_INJECT_GTP_CLIENT_DOWNLOADED_DATA_IND_V02 0x008D
16193 #define QMI_LOC_GDT_UPLOAD_BEGIN_STATUS_REQ_V02 0x008E
16194 #define QMI_LOC_GDT_UPLOAD_BEGIN_STATUS_RESP_V02 0x008E
16195 #define QMI_LOC_GDT_UPLOAD_BEGIN_STATUS_IND_V02 0x008E
16196 #define QMI_LOC_GDT_UPLOAD_END_REQ_V02 0x008F
16197 #define QMI_LOC_GDT_UPLOAD_END_RESP_V02 0x008F
16198 #define QMI_LOC_GDT_UPLOAD_END_IND_V02 0x008F
16199 #define QMI_LOC_EVENT_GDT_UPLOAD_BEGIN_STATUS_REQ_IND_V02 0x0090
16200 #define QMI_LOC_EVENT_GDT_UPLOAD_END_REQ_IND_V02 0x0091
16201 #define QMI_LOC_START_DBT_REQ_V02 0x0092
16202 #define QMI_LOC_START_DBT_RESP_V02 0x0092
16203 #define QMI_LOC_START_DBT_IND_V02 0x0092
16204 #define QMI_LOC_EVENT_DBT_POSITION_REPORT_IND_V02 0x0093
16205 #define QMI_LOC_EVENT_DBT_SESSION_STATUS_IND_V02 0x0094
16206 #define QMI_LOC_STOP_DBT_REQ_V02 0x0095
16207 #define QMI_LOC_STOP_DBT_RESP_V02 0x0095
16208 #define QMI_LOC_STOP_DBT_IND_V02 0x0095
16209 #define QMI_LOC_SECURE_GET_AVAILABLE_POSITION_REQ_V02 0x0096
16210 #define QMI_LOC_SECURE_GET_AVAILABLE_POSITION_RESP_V02 0x0096
16211 #define QMI_LOC_SECURE_GET_AVAILABLE_POSITION_IND_V02 0x0096
16212 #define QMI_LOC_EVENT_GEOFENCE_BATCHED_DWELL_NOTIFICATION_IND_V02 0x0097
16213 #define QMI_LOC_EVENT_GET_TIME_ZONE_INFO_IND_V02 0x0098
16214 #define QMI_LOC_INJECT_TIME_ZONE_INFO_REQ_V02 0x0099
16215 #define QMI_LOC_INJECT_TIME_ZONE_INFO_RESP_V02 0x0099
16216 #define QMI_LOC_INJECT_TIME_ZONE_INFO_IND_V02 0x0099
16217 #define QMI_LOC_INJECT_APCACHE_DATA_REQ_V02 0x009A
16218 #define QMI_LOC_INJECT_APCACHE_DATA_RESP_V02 0x009A
16219 #define QMI_LOC_INJECT_APCACHE_DATA_IND_V02 0x009A
16220 #define QMI_LOC_INJECT_APDONOTCACHE_DATA_REQ_V02 0x009B
16221 #define QMI_LOC_INJECT_APDONOTCACHE_DATA_RESP_V02 0x009B
16222 #define QMI_LOC_INJECT_APDONOTCACHE_DATA_IND_V02 0x009B
16223 #define QMI_LOC_EVENT_BATCHING_STATUS_IND_V02 0x009C
16224 #define QMI_LOC_QUERY_AON_CONFIG_REQ_V02 0x009D
16225 #define QMI_LOC_QUERY_AON_CONFIG_RESP_V02 0x009D
16226 #define QMI_LOC_QUERY_AON_CONFIG_IND_V02 0x009D
16227 #define QMI_LOC_GTP_AP_STATUS_REQ_V02 0x009E
16228 #define QMI_LOC_GTP_AP_STATUS_RESP_V02 0x009E
16229 #define QMI_LOC_GTP_AP_STATUS_IND_V02 0x009E
16230 #define QMI_LOC_GDT_DOWNLOAD_BEGIN_STATUS_REQ_V02 0x009F
16231 #define QMI_LOC_GDT_DOWNLOAD_BEGIN_STATUS_RESP_V02 0x009F
16232 #define QMI_LOC_GDT_DOWNLOAD_BEGIN_STATUS_IND_V02 0x009F
16233 #define QMI_LOC_GDT_DOWNLOAD_READY_STATUS_REQ_V02 0x00A0
16234 #define QMI_LOC_GDT_DOWNLOAD_READY_STATUS_RESP_V02 0x00A0
16235 #define QMI_LOC_GDT_DOWNLOAD_READY_STATUS_IND_V02 0x00A0
16236 #define QMI_LOC_GDT_RECEIVE_DONE_STATUS_REQ_V02 0x00A1
16237 #define QMI_LOC_GDT_RECEIVE_DONE_STATUS_RESP_V02 0x00A1
16238 #define QMI_LOC_GDT_RECEIVE_DONE_STATUS_IND_V02 0x00A1
16239 #define QMI_LOC_GDT_DOWNLOAD_END_STATUS_REQ_V02 0x00A2
16240 #define QMI_LOC_GDT_DOWNLOAD_END_STATUS_RESP_V02 0x00A2
16241 #define QMI_LOC_GDT_DOWNLOAD_END_STATUS_IND_V02 0x00A2
16242 #define QMI_LOC_EVENT_GDT_DOWNLOAD_BEGIN_REQ_IND_V02 0x00A3
16243 #define QMI_LOC_EVENT_GDT_RECEIVE_DONE_IND_V02 0x00A4
16244 #define QMI_LOC_EVENT_GDT_DOWNLOAD_END_REQ_IND_V02 0x00A5
16245 #define QMI_LOC_DELETE_GNSS_SERVICE_DATA_REQ_V02 0x00A6
16246 #define QMI_LOC_DELETE_GNSS_SERVICE_DATA_RESP_V02 0x00A6
16247 #define QMI_LOC_DELETE_GNSS_SERVICE_DATA_IND_V02 0x00A6
16248 #define QMI_LOC_INJECT_XTRA_DATA_REQ_V02 0x00A7
16249 #define QMI_LOC_INJECT_XTRA_DATA_RESP_V02 0x00A7
16250 #define QMI_LOC_INJECT_XTRA_DATA_IND_V02 0x00A7
16251 #define QMI_LOC_INJECT_XTRA_PCID_REQ_V02 0x00A8
16252 #define QMI_LOC_INJECT_XTRA_PCID_RESP_V02 0x00A8
16253 #define QMI_LOC_INJECT_XTRA_PCID_IND_V02 0x00A8
16254 /**
16255     @}
16256   */
16257 
16258 /* Service Object Accessor */
16259 /** @addtogroup wms_qmi_accessor
16260     @{
16261   */
16262 /** This function is used internally by the autogenerated code.  Clients should use the
16263    macro loc_get_service_object_v02( ) that takes in no arguments. */
16264 qmi_idl_service_object_type loc_get_service_object_internal_v02
16265  ( int32_t idl_maj_version, int32_t idl_min_version, int32_t library_version );
16266 
16267 /** This macro should be used to get the service object */
16268 #define loc_get_service_object_v02( ) \
16269           loc_get_service_object_internal_v02( \
16270             LOC_V02_IDL_MAJOR_VERS, LOC_V02_IDL_MINOR_VERS, \
16271             LOC_V02_IDL_TOOL_VERS )
16272 /**
16273     @}
16274   */
16275 
16276 
16277 #ifdef __cplusplus
16278 }
16279 #endif
16280 #endif
16281 
16282