Home | History | Annotate | Download | only in loc_api_v02
      1 /* Copyright (c) 2011-2014, 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.2
     66    It was generated on: Sat Dec 13 2014 (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 0x25
     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 0x0095
     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 GNSS Measurement Engine Firmware Version String length.  */
    168 #define QMI_LOC_GNSS_ME_VERSION_STRING_MAX_LENGTH_V02 127
    169 
    170 /**  Maximum GNSS Measurement Engine Hosted Software Version String length.  */
    171 #define QMI_LOC_GNSS_HOSTED_SW_VERSION_STRING_MAX_LENGTH_V02 127
    172 
    173 /**  Maximum GNSS Measurement Engine Full Version String length.  */
    174 #define QMI_LOC_GNSS_SW_VERSION_STRING_MAX_LENGTH_V02 255
    175 
    176 /**  Maximum part length that can be injected. The client should
    177      also look at the maxPartSize field in the predicted orbits injection
    178      request indication and pick the minimum of the two.  */
    179 #define QMI_LOC_MAX_PREDICTED_ORBITS_PART_LEN_V02 1024
    180 
    181 /**  Maximum length of the delete SV information list  */
    182 #define QMI_LOC_DELETE_MAX_SV_INFO_LENGTH_V02 128
    183 
    184 /**  Maximum length of the Delete BDS SV Information list.  */
    185 #define QMI_LOC_DELETE_MAX_BDS_SV_INFO_LENGTH_V02 37
    186 
    187 /**  MAC address length in bytes.  */
    188 #define QMI_LOC_WIFI_MAC_ADDR_LENGTH_V02 6
    189 
    190 /**  Wi-Fi SSID string maximum length.   */
    191 #define QMI_LOC_MAX_WIFI_AP_SSID_STR_LENGTH_V02 32
    192 
    193 /**  Maximum number of APs that the sender can report.  */
    194 #define QMI_LOC_WIFI_MAX_REPORTED_APS_PER_MSG_V02 50
    195 
    196 /**  Maximum number of samples that can be injected in a TLV.  */
    197 #define QMI_LOC_SENSOR_DATA_MAX_SAMPLES_V02 50
    198 
    199 /**  Maximum APN string length allowed.  */
    200 #define QMI_LOC_MAX_APN_NAME_LENGTH_V02 100
    201 
    202 /**  Maximum APN profiles supported. */
    203 #define QMI_LOC_MAX_APN_PROFILES_V02 6
    204 
    205 /**  Maximum length of the SUPL certificate. */
    206 #define QMI_LOC_MAX_SUPL_CERT_LENGTH_V02 2000
    207 
    208 /**  Maximum number of motion states used by the Geofence engine.  */
    209 #define QMI_LOC_GEOFENCE_MAX_MOTION_STATES_V02 20
    210 
    211 /**  Maximum length of the network-initiated Geofence ID
    212      list.  */
    213 #define QMI_LOC_MAX_NI_GEOFENCE_ID_LIST_LENGTH_V02 16
    214 
    215 /**  Maximum value of WDMA frequency for injection of WCDMA cell
    216      information.  */
    217 #define QMI_LOC_MAX_WCDMA_FREQ_V02 16383
    218 
    219 /**  Maximum value of PSC for injection of WCDMA cell information.  */
    220 #define QMI_LOC_MAX_WCDMA_PSC_V02 511
    221 
    222 /**  Maximum value of TDSCDMA frequency for injection of TDSCDMA cell
    223      information.  */
    224 #define QMI_LOC_MAX_TDSCDMA_FREQ_V02 16383
    225 
    226 /**  Maximum length of the injected network-initiated message.  */
    227 #define QMI_LOC_MAX_INJECTED_NETWORK_INITIATED_MESSAGE_LENGTH_V02 1024
    228 
    229 /**  Maximum number of entries returned from a batch in each indication.  */
    230 #define QMI_LOC_READ_FROM_BATCH_MAX_SIZE_V02 5
    231 
    232 /**  Maximum number of vehicle sensor samples that can be injected.  */
    233 #define QMI_LOC_VEHICLE_SENSOR_DATA_MAX_SAMPLES_V02 65
    234 
    235 /**  Maximum number of axes that can be provided in each sample.  */
    236 #define QMI_LOC_VEHICLE_SENSOR_DATA_MAX_AXES_V02 3
    237 
    238 /**  Maximum number of measurements from an odometer.  */
    239 #define QMI_LOC_VEHICLE_ODOMETRY_MAX_MEASUREMENTS_V02 3
    240 #define QMI_LOC_MEAS_STATUS_DONT_USE_BITS_V02 0xFFC0000000000000
    241 
    242 /**  Maximum number of satellites in a measurement block for a given system.  */
    243 #define QMI_LOC_SV_MEAS_LIST_MAX_SIZE_V02 16
    244 #define QMI_LOC_SV_POLY_VELOCITY_COEF_SIZE_V02 12
    245 #define QMI_LOC_SV_POLY_XYZ_0_TH_ORDER_COEFF_SIZE_V02 3
    246 #define QMI_LOC_SV_POLY_XYZ_N_TH_ORDER_COEFF_SIZE_V02 9
    247 #define QMI_LOC_SV_POLY_SV_CLKBIAS_COEFF_SIZE_V02 4
    248 
    249 /**  IBeacon string maximum length.   */
    250 #define QMI_LOC_MAX_IBEACON_UUID_STR_LENGTH_V02 32
    251 
    252 /**  Wi-Fi area ID list length.  */
    253 #define QMI_LOC_WIFI_AREA_ID_LIST_LENGTH_V02 20
    254 
    255 /**  Cell ID list length.   */
    256 #define QMI_LOC_CELL_ID_LIST_LENGTH_V02 20
    257 
    258 /**   IBeacon list length.   */
    259 #define QMI_LOC_IBEACON_LIST_LENGTH_V02 20
    260 
    261 /**  Maximum length that can be injected.   */
    262 #define QMI_LOC_MAX_GTP_WWAN_CLIENT_DOWNLOADED_DATA_LEN_V02 512
    263 /**
    264     @}
    265   */
    266 
    267 /** @addtogroup loc_qmi_messages
    268     @{
    269   */
    270 /** Response Message; Generic response definition. This message is used to tell
    271                     clients whether their message was accepted for further
    272                     processing or rejected. */
    273 typedef struct {
    274 
    275   /* Mandatory */
    276   /*  Result Code */
    277   qmi_response_type_v01 resp;
    278 }qmiLocGenRespMsgT_v02;  /* Message */
    279 /**
    280     @}
    281   */
    282 
    283 /** @addtogroup loc_qmi_messages
    284     @{
    285   */
    286 /** Request Message; Informs the service of the minor revision of the interface
    287                     definition that the control point implements. */
    288 typedef struct {
    289 
    290   /* Mandatory */
    291   /*  Revision */
    292   uint32_t revision;
    293   /**<   Revision that the control point is using. */
    294 }qmiLocInformClientRevisionReqMsgT_v02;  /* Message */
    295 /**
    296     @}
    297   */
    298 
    299 typedef uint64_t qmiLocEventRegMaskT_v02;
    300 #define QMI_LOC_EVENT_MASK_POSITION_REPORT_V02 ((qmiLocEventRegMaskT_v02)0x00000001ull) /**<  The control point must enable this mask to receive position report
    301        event indications.  */
    302 #define QMI_LOC_EVENT_MASK_GNSS_SV_INFO_V02 ((qmiLocEventRegMaskT_v02)0x00000002ull) /**<  The control point must enable this mask to receive satellite report
    303        event indications. These reports are sent at a 1 Hz rate.  */
    304 #define QMI_LOC_EVENT_MASK_NMEA_V02 ((qmiLocEventRegMaskT_v02)0x00000004ull) /**<  The control point must enable this mask to receive NMEA reports for
    305        position and satellites in view. The report is at a 1 Hz rate.  */
    306 #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
    307        event indications.  */
    308 #define QMI_LOC_EVENT_MASK_INJECT_TIME_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00000010ull) /**<  The control point must enable this mask to receive time injection request
    309        event indications.  */
    310 #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
    311        event indications.  */
    312 #define QMI_LOC_EVENT_MASK_INJECT_POSITION_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00000040ull) /**<  The control point must enable this mask to receive position injection request
    313        event indications.  */
    314 #define QMI_LOC_EVENT_MASK_ENGINE_STATE_V02 ((qmiLocEventRegMaskT_v02)0x00000080ull) /**<  The control point must enable this mask to receive engine state report
    315        event indications.  */
    316 #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
    317        event indications.  */
    318 #define QMI_LOC_EVENT_MASK_WIFI_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00000200ull) /**<  The control point must enable this mask to receive Wi-Fi position request
    319        event indications.  */
    320 #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
    321        location engine indicating its readiness to accept data from the
    322        sensors (accelerometer, gyroscope, etc.).  */
    323 #define QMI_LOC_EVENT_MASK_TIME_SYNC_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00000800ull) /**<  The control point must enable this mask to receive time sync requests
    324        from the GPS engine. Time sync enables the GPS engine to synchronize
    325        its clock with the sensor processor's clock.  */
    326 #define QMI_LOC_EVENT_MASK_SET_SPI_STREAMING_REPORT_V02 ((qmiLocEventRegMaskT_v02)0x00001000ull) /**<  The control point must enable this mask to receive Stationary Position
    327        Indicator (SPI) streaming report indications.  */
    328 #define QMI_LOC_EVENT_MASK_LOCATION_SERVER_CONNECTION_REQ_V02 ((qmiLocEventRegMaskT_v02)0x00002000ull) /**<  The control point must enable this mask to receive location server
    329        requests. These requests are generated when the service wishes to
    330        establish a connection with a location server. */
    331 #define QMI_LOC_EVENT_MASK_NI_GEOFENCE_NOTIFICATION_V02 ((qmiLocEventRegMaskT_v02)0x00004000ull) /**<  The control point must enable this mask to receive notifications
    332        related to network-initiated Geofences. These events notify the client
    333        when a network-initiated Geofence is added, deleted, or edited.  */
    334 #define QMI_LOC_EVENT_MASK_GEOFENCE_GEN_ALERT_V02 ((qmiLocEventRegMaskT_v02)0x00008000ull) /**<  The control point must enable this mask to receive Geofence alerts.
    335        These alerts are generated to inform the client of the changes that may
    336        affect a Geofence, e.g., if GPS is turned off or if the network is
    337        unavailable.  */
    338 #define QMI_LOC_EVENT_MASK_GEOFENCE_BREACH_NOTIFICATION_V02 ((qmiLocEventRegMaskT_v02)0x00010000ull) /**<  The control point must enable this mask to receive notifications when
    339        a Geofence is breached. These events are generated when a UE enters
    340        or leaves the perimeter of a Geofence. This breach report is for a single
    341        Geofence . */
    342 #define QMI_LOC_EVENT_MASK_PEDOMETER_CONTROL_V02 ((qmiLocEventRegMaskT_v02)0x00020000ull) /**<  The control point must enable this mask to register for pedometer
    343        control requests from the location engine. The location engine sends
    344        this event to control the injection of pedometer reports.  */
    345 #define QMI_LOC_EVENT_MASK_MOTION_DATA_CONTROL_V02 ((qmiLocEventRegMaskT_v02)0x00040000ull) /**<  The control point must enable this mask to register for motion data
    346        control requests from the location engine. The location engine sends
    347        this event to control the injection of motion data.  */
    348 #define QMI_LOC_EVENT_MASK_BATCH_FULL_NOTIFICATION_V02 ((qmiLocEventRegMaskT_v02)0x00080000ull) /**<  The control point must enable this mask to receive notification when
    349        a batch is full. The location engine sends this event to notify of Batch Full
    350        for ongoing batching session.  */
    351 #define QMI_LOC_EVENT_MASK_LIVE_BATCHED_POSITION_REPORT_V02 ((qmiLocEventRegMaskT_v02)0x00100000ull) /**<  The control point must enable this mask to receive position report
    352        indications along with an ongoing batching session. The location engine sends
    353        this event to notify the batched position report while a batching session
    354        is ongoing.  */
    355 #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
    356        event indications.  */
    357 #define QMI_LOC_EVENT_MASK_GEOFENCE_BATCH_BREACH_NOTIFICATION_V02 ((qmiLocEventRegMaskT_v02)0x00400000ull) /**<  The control point must enable this mask to receive notifications when
    358        a Geofence is breached. These events are generated when a UE enters
    359        or leaves the perimeter of a Geofence. This breach notification is for
    360        multiple Geofences. Breaches from multiple Geofences are all batched and
    361        sent in the same notification .    */
    362 #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
    363        location engine indicating its readiness to accept vehicle data (vehicle
    364        accelerometer, vehicle angular rate, vehicle odometry, etc.). */
    365 #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
    366        measurement report events (system clock, SV time, Doppler, etc.). Reports are
    367        generated only for the GNSS satellite constellations that are enabled using
    368        QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG.   */
    369 #define QMI_LOC_EVENT_MASK_GNSS_SV_POLYNOMIAL_REPORT_V02 ((qmiLocEventRegMaskT_v02)0x02000000ull) /**<  The control point must enable this mask to receive satellite position
    370         reports as polynomials. Reports are generated only for the GNSS satellite
    371         constellations that are enabled using QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG.  */
    372 #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
    373   and exited.  The proximity of a geofence may be due to different contexts . These contexts are identified
    374   using the context id in this indication. The context of a geofence may contain Wifi area ID lists, IBeacon lists,
    375   Cell-Id list etc.    */
    376 #define QMI_LOC_EVENT_MASK_GDT_UPLOAD_BEGIN_REQ_V02 ((qmiLocEventRegMaskT_v02)0x08000000ull) /**<  The control point must enable this mask to receive GDT (Generic Data Transport )
    377         session begin request event indications.  */
    378 #define QMI_LOC_EVENT_MASK_GDT_UPLOAD_END_REQ_V02 ((qmiLocEventRegMaskT_v02)0x10000000ull) /**<  The control point must enable this mask to receive GDT (Generic Data Transport )
    379         session end request
    380         event indications.  */
    381 /** @addtogroup loc_qmi_messages
    382     @{
    383   */
    384 /** Request Message; Used by the control point to register for events from the
    385                     location subsystem. */
    386 typedef struct {
    387 
    388   /* Mandatory */
    389   /*  Event Registration Mask */
    390   qmiLocEventRegMaskT_v02 eventRegMask;
    391   /**<   Specifies the events that the control point is interested in receiving.
    392  Valid bitmasks:
    393       - QMI_LOC_EVENT_MASK_POSITION_REPORT (0x00000001) --  The control point must enable this mask to receive position report
    394        event indications.
    395       - QMI_LOC_EVENT_MASK_GNSS_SV_INFO (0x00000002) --  The control point must enable this mask to receive satellite report
    396        event indications. These reports are sent at a 1 Hz rate.
    397       - QMI_LOC_EVENT_MASK_NMEA (0x00000004) --  The control point must enable this mask to receive NMEA reports for
    398        position and satellites in view. The report is at a 1 Hz rate.
    399       - QMI_LOC_EVENT_MASK_NI_NOTIFY_VERIFY_REQ (0x00000008) --  The control point must enable this mask to receive NI Notify/Verify request
    400        event indications.
    401       - QMI_LOC_EVENT_MASK_INJECT_TIME_REQ (0x00000010) --  The control point must enable this mask to receive time injection request
    402        event indications.
    403       - QMI_LOC_EVENT_MASK_INJECT_PREDICTED_ORBITS_REQ (0x00000020) --  The control point must enable this mask to receive predicted orbits request
    404        event indications.
    405       - QMI_LOC_EVENT_MASK_INJECT_POSITION_REQ (0x00000040) --  The control point must enable this mask to receive position injection request
    406        event indications.
    407       - QMI_LOC_EVENT_MASK_ENGINE_STATE (0x00000080) --  The control point must enable this mask to receive engine state report
    408        event indications.
    409       - QMI_LOC_EVENT_MASK_FIX_SESSION_STATE (0x00000100) --  The control point must enable this mask to receive fix session status report
    410        event indications.
    411       - QMI_LOC_EVENT_MASK_WIFI_REQ (0x00000200) --  The control point must enable this mask to receive Wi-Fi position request
    412        event indications.
    413       - QMI_LOC_EVENT_MASK_SENSOR_STREAMING_READY_STATUS (0x00000400) --  The control point must enable this mask to receive notifications from the
    414        location engine indicating its readiness to accept data from the
    415        sensors (accelerometer, gyroscope, etc.).
    416       - QMI_LOC_EVENT_MASK_TIME_SYNC_REQ (0x00000800) --  The control point must enable this mask to receive time sync requests
    417        from the GPS engine. Time sync enables the GPS engine to synchronize
    418        its clock with the sensor processor's clock.
    419       - QMI_LOC_EVENT_MASK_SET_SPI_STREAMING_REPORT (0x00001000) --  The control point must enable this mask to receive Stationary Position
    420        Indicator (SPI) streaming report indications.
    421       - QMI_LOC_EVENT_MASK_LOCATION_SERVER_CONNECTION_REQ (0x00002000) --  The control point must enable this mask to receive location server
    422        requests. These requests are generated when the service wishes to
    423        establish a connection with a location server.
    424       - QMI_LOC_EVENT_MASK_NI_GEOFENCE_NOTIFICATION (0x00004000) --  The control point must enable this mask to receive notifications
    425        related to network-initiated Geofences. These events notify the client
    426        when a network-initiated Geofence is added, deleted, or edited.
    427       - QMI_LOC_EVENT_MASK_GEOFENCE_GEN_ALERT (0x00008000) --  The control point must enable this mask to receive Geofence alerts.
    428        These alerts are generated to inform the client of the changes that may
    429        affect a Geofence, e.g., if GPS is turned off or if the network is
    430        unavailable.
    431       - QMI_LOC_EVENT_MASK_GEOFENCE_BREACH_NOTIFICATION (0x00010000) --  The control point must enable this mask to receive notifications when
    432        a Geofence is breached. These events are generated when a UE enters
    433        or leaves the perimeter of a Geofence. This breach report is for a single
    434        Geofence .
    435       - QMI_LOC_EVENT_MASK_PEDOMETER_CONTROL (0x00020000) --  The control point must enable this mask to register for pedometer
    436        control requests from the location engine. The location engine sends
    437        this event to control the injection of pedometer reports.
    438       - QMI_LOC_EVENT_MASK_MOTION_DATA_CONTROL (0x00040000) --  The control point must enable this mask to register for motion data
    439        control requests from the location engine. The location engine sends
    440        this event to control the injection of motion data.
    441       - QMI_LOC_EVENT_MASK_BATCH_FULL_NOTIFICATION (0x00080000) --  The control point must enable this mask to receive notification when
    442        a batch is full. The location engine sends this event to notify of Batch Full
    443        for ongoing batching session.
    444       - QMI_LOC_EVENT_MASK_LIVE_BATCHED_POSITION_REPORT (0x00100000) --  The control point must enable this mask to receive position report
    445        indications along with an ongoing batching session. The location engine sends
    446        this event to notify the batched position report while a batching session
    447        is ongoing.
    448       - 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
    449        event indications.
    450       - QMI_LOC_EVENT_MASK_GEOFENCE_BATCH_BREACH_NOTIFICATION (0x00400000) --  The control point must enable this mask to receive notifications when
    451        a Geofence is breached. These events are generated when a UE enters
    452        or leaves the perimeter of a Geofence. This breach notification is for
    453        multiple Geofences. Breaches from multiple Geofences are all batched and
    454        sent in the same notification .
    455       - QMI_LOC_EVENT_MASK_VEHICLE_DATA_READY_STATUS (0x00800000) --  The control point must enable this mask to receive notifications from the
    456        location engine indicating its readiness to accept vehicle data (vehicle
    457        accelerometer, vehicle angular rate, vehicle odometry, etc.).
    458       - QMI_LOC_EVENT_MASK_GNSS_MEASUREMENT_REPORT (0x01000000) --  The control point must enable this mask to receive system clock and satellite
    459        measurement report events (system clock, SV time, Doppler, etc.). Reports are
    460        generated only for the GNSS satellite constellations that are enabled using
    461        QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG.
    462       - QMI_LOC_EVENT_MASK_GNSS_SV_POLYNOMIAL_REPORT (0x02000000) --  The control point must enable this mask to receive satellite position
    463         reports as polynomials. Reports are generated only for the GNSS satellite
    464         constellations that are enabled using QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG.
    465       - QMI_LOC_EVENT_MASK_GEOFENCE_PROXIMITY_NOTIFICATION (0x04000000) --  The control point must enable this mask to receive notifications when a Geofence proximity is entered
    466   and exited.  The proximity of a geofence may be due to different contexts . These contexts are identified
    467   using the context id in this indication. The context of a geofence may contain Wifi area ID lists, IBeacon lists,
    468   Cell-Id list etc.
    469       - QMI_LOC_EVENT_MASK_GDT_UPLOAD_BEGIN_REQ (0x08000000) --  The control point must enable this mask to receive GDT (Generic Data Transport )
    470         session begin request event indications.
    471       - QMI_LOC_EVENT_MASK_GDT_UPLOAD_END_REQ (0x10000000) --  The control point must enable this mask to receive GDT (Generic Data Transport )
    472         session end request
    473         event indications.
    474 
    475  Multiple events can be registered by ORing the individual masks and
    476  sending them in this TLV. All unused bits in this mask must be set to 0.
    477  */
    478 }qmiLocRegEventsReqMsgT_v02;  /* Message */
    479 /**
    480     @}
    481   */
    482 
    483 /** @addtogroup loc_qmi_enums
    484     @{
    485   */
    486 typedef enum {
    487   QMILOCFIXRECURRENCEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
    488   eQMI_LOC_RECURRENCE_PERIODIC_V02 = 1, /**<  Request periodic position fixes  */
    489   eQMI_LOC_RECURRENCE_SINGLE_V02 = 2, /**<  Request a single position fix  */
    490   QMILOCFIXRECURRENCEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
    491 }qmiLocFixRecurrenceEnumT_v02;
    492 /**
    493     @}
    494   */
    495 
    496 /** @addtogroup loc_qmi_enums
    497     @{
    498   */
    499 typedef enum {
    500   QMILOCACCURACYLEVELENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
    501   eQMI_LOC_ACCURACY_LOW_V02 = 1, /**<  Low accuracy  */
    502   eQMI_LOC_ACCURACY_MED_V02 = 2, /**<  Medium accuracy  */
    503   eQMI_LOC_ACCURACY_HIGH_V02 = 3, /**<  High accuracy  */
    504   QMILOCACCURACYLEVELENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
    505 }qmiLocAccuracyLevelEnumT_v02;
    506 /**
    507     @}
    508   */
    509 
    510 /** @addtogroup loc_qmi_enums
    511     @{
    512   */
    513 typedef enum {
    514   QMILOCINTERMEDIATEREPORTSTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
    515   eQMI_LOC_INTERMEDIATE_REPORTS_ON_V02 = 1, /**<  Intermediate reports are turned on  */
    516   eQMI_LOC_INTERMEDIATE_REPORTS_OFF_V02 = 2, /**<  Intermediate reports are turned off  */
    517   QMILOCINTERMEDIATEREPORTSTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
    518 }qmiLocIntermediateReportStateEnumT_v02;
    519 /**
    520     @}
    521   */
    522 
    523 /** @addtogroup loc_qmi_enums
    524     @{
    525   */
    526 typedef enum {
    527   QMILOCCONFIGINCLUDEALTITUDEASSUMEDINGNSSSVINFOENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
    528   eQMI_LOC_ALTITUDE_ASSUMED_IN_GNSS_SV_INFO_ENABLED_V02 = 1, /**<  Enable Altitude Assumed information in GNSS SV Info Event.  */
    529   eQMI_LOC_ALTITUDE_ASSUMED_IN_GNSS_SV_INFO_DISABLED_V02 = 2, /**<  Disable Altitude Assumed information in GNSS SV Info Event.  */
    530   QMILOCCONFIGINCLUDEALTITUDEASSUMEDINGNSSSVINFOENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
    531 }qmiLocConfigIncludeAltitudeAssumedInGnssSvInfoEnumT_v02;
    532 /**
    533     @}
    534   */
    535 
    536 /** @addtogroup loc_qmi_aggregates
    537     @{
    538   */
    539 typedef struct {
    540 
    541   char applicationProvider[QMI_LOC_MAX_APP_ID_PROVIDER_LENGTH_V02 + 1];
    542   /**<   Application provider. */
    543 
    544   char applicationName[QMI_LOC_MAX_APP_ID_NAME_LENGTH_V02 + 1];
    545   /**<   Application name. */
    546 
    547   uint8_t applicationVersion_valid;
    548   /**<   Specifies whether the application version string contains
    549         a valid value: \begin{itemize1}
    550        \item    0x00 (FALSE) -- Application version string is invalid
    551        \item    0x01 (TRUE) -- Application version string is valid
    552        \vspace{-0.18in} \end{itemize1} */
    553 
    554   char applicationVersion[QMI_LOC_MAX_APP_ID_VERSION_LENGTH_V02 + 1];
    555   /**<   Application version. */
    556 }qmiLocApplicationIdStructT_v02;  /* Type */
    557 /**
    558     @}
    559   */
    560 
    561 /** @addtogroup loc_qmi_messages
    562     @{
    563   */
    564 /** Request Message; Used by the control point to initiate a GPS session. */
    565 typedef struct {
    566 
    567   /* Mandatory */
    568   /*  Session ID */
    569   uint8_t sessionId;
    570   /**<   ID of the session as identified by the control point. The session ID
    571        is reported back in the position reports. The control point must
    572        specify the same session ID in the QMI_LOC_STOP_REQ message. \n
    573        - Range: 0 to 255
    574   */
    575 
    576   /* Optional */
    577   /*  Recurrence Type */
    578   uint8_t fixRecurrence_valid;  /**< Must be set to true if fixRecurrence is being passed */
    579   qmiLocFixRecurrenceEnumT_v02 fixRecurrence;
    580   /**<   Specifies the type of session in which the control point is interested.
    581  If this TLV is not specified, recurrence defaults to SINGLE.
    582 
    583  Valid values: \n
    584       - eQMI_LOC_RECURRENCE_PERIODIC (1) --  Request periodic position fixes
    585       - eQMI_LOC_RECURRENCE_SINGLE (2) --  Request a single position fix
    586  */
    587 
    588   /* Optional */
    589   /*  Horizontal Accuracy */
    590   uint8_t horizontalAccuracyLevel_valid;  /**< Must be set to true if horizontalAccuracyLevel is being passed */
    591   qmiLocAccuracyLevelEnumT_v02 horizontalAccuracyLevel;
    592   /**<   Specifies the horizontal accuracy level required by the control point.
    593  If not specified, accuracy defaults to LOW.
    594 
    595  Valid values: \n
    596       - eQMI_LOC_ACCURACY_LOW (1) --  Low accuracy
    597       - eQMI_LOC_ACCURACY_MED (2) --  Medium accuracy
    598       - eQMI_LOC_ACCURACY_HIGH (3) --  High accuracy
    599  */
    600 
    601   /* Optional */
    602   /*  Enable/Disable Intermediate Reports */
    603   uint8_t intermediateReportState_valid;  /**< Must be set to true if intermediateReportState is being passed */
    604   qmiLocIntermediateReportStateEnumT_v02 intermediateReportState;
    605   /**<   Specifies if the control point is interested in receiving intermediate
    606  reports. The control point must explicitly set this field to OFF if it
    607  does not wish to receive intermediate position reports. Intermediate
    608  position reports are generated at 1 Hz and are ON by default. If
    609  intermediate reports are turned ON, the client receives position reports
    610  even if the accuracy criteria are not met. The status in such a position
    611  report is set to IN_PROGRESS in order for the control point to identify
    612  intermediate reports.
    613 
    614  Valid values: \n
    615       - eQMI_LOC_INTERMEDIATE_REPORTS_ON (1) --  Intermediate reports are turned on
    616       - eQMI_LOC_INTERMEDIATE_REPORTS_OFF (2) --  Intermediate reports are turned off
    617  */
    618 
    619   /* Optional */
    620   /*  Minimum Interval Between Final Position Reports */
    621   uint8_t minInterval_valid;  /**< Must be set to true if minInterval is being passed */
    622   uint32_t minInterval;
    623   /**<   Minimum time interval, specified by the control point, that must elapse between
    624        position reports. \n
    625        - Units: Milliseconds \n
    626        - Default: 1000 ms
    627   */
    628 
    629   /* Optional */
    630   /*  ID of the Application that Sent this Request */
    631   uint8_t applicationId_valid;  /**< Must be set to true if applicationId is being passed */
    632   qmiLocApplicationIdStructT_v02 applicationId;
    633   /**<   \n Application provider, name, and version.*/
    634 
    635   /* Optional */
    636   /*  Configuration for Altitude Assumed Info in GNSS SV Info Event */
    637   uint8_t configAltitudeAssumed_valid;  /**< Must be set to true if configAltitudeAssumed is being passed */
    638   qmiLocConfigIncludeAltitudeAssumedInGnssSvInfoEnumT_v02 configAltitudeAssumed;
    639   /**<   Specifies the configuration to include Altitude Assumed information in the GNSS SV Info Event.
    640  When enabled, an additional GNSS SV Info event indication is sent to the control
    641  point that also includes the altitude assumed information.
    642 
    643  If not specified, the configuration defaults to ENABLED.
    644 
    645  Valid values: \n
    646       - eQMI_LOC_ALTITUDE_ASSUMED_IN_GNSS_SV_INFO_ENABLED (1) --  Enable Altitude Assumed information in GNSS SV Info Event.
    647       - eQMI_LOC_ALTITUDE_ASSUMED_IN_GNSS_SV_INFO_DISABLED (2) --  Disable Altitude Assumed information in GNSS SV Info Event.
    648  */
    649 
    650   /* Optional */
    651   /*  Minimum Interval Between Intermediate Position Reports */
    652   uint8_t minIntermediatePositionReportInterval_valid;  /**< Must be set to true if minIntermediatePositionReportInterval is being passed */
    653   uint32_t minIntermediatePositionReportInterval;
    654   /**<   Minimum time interval for intermediate position reports, specified by the control point,
    655        that between position reports elapsed time must longer than the interval time.
    656        If this optional value is not set or set to default(0) value, GPS engine will report
    657        when an intermediate position is ready.
    658        - Units: Milliseconds \n
    659        - Default: 0 ms
    660   */
    661 }qmiLocStartReqMsgT_v02;  /* Message */
    662 /**
    663     @}
    664   */
    665 
    666 /** @addtogroup loc_qmi_messages
    667     @{
    668   */
    669 /** Request Message; Used by the control point to stop a GPS session. */
    670 typedef struct {
    671 
    672   /* Mandatory */
    673   /*   Session ID */
    674   uint8_t sessionId;
    675   /**<   ID of the session that was specified in the Start request
    676        (QMI_LOC_START_REQ).\n
    677        - Range: 0 to 255 */
    678 }qmiLocStopReqMsgT_v02;  /* Message */
    679 /**
    680     @}
    681   */
    682 
    683 typedef uint32_t qmiLocPosTechMaskT_v02;
    684 #define QMI_LOC_POS_TECH_MASK_SATELLITE_V02 ((qmiLocPosTechMaskT_v02)0x00000001) /**<  Satellites were used to generate the fix  */
    685 #define QMI_LOC_POS_TECH_MASK_CELLID_V02 ((qmiLocPosTechMaskT_v02)0x00000002) /**<  Cell towers were used to generate the fix  */
    686 #define QMI_LOC_POS_TECH_MASK_WIFI_V02 ((qmiLocPosTechMaskT_v02)0x00000004) /**<  Wi-Fi access points were used to generate the fix  */
    687 #define QMI_LOC_POS_TECH_MASK_SENSORS_V02 ((qmiLocPosTechMaskT_v02)0x00000008) /**<  Sensors were used to generate the fix  */
    688 #define QMI_LOC_POS_TECH_MASK_REFERENCE_LOCATION_V02 ((qmiLocPosTechMaskT_v02)0x00000010) /**<  Reference Location was used to generate the fix  */
    689 #define QMI_LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION_V02 ((qmiLocPosTechMaskT_v02)0x00000020) /**<  Coarse position injected into the location engine was used to
    690         generate the fix  */
    691 #define QMI_LOC_POS_TECH_MASK_AFLT_V02 ((qmiLocPosTechMaskT_v02)0x00000040) /**<  AFLT was used to generate the fix  */
    692 #define QMI_LOC_POS_TECH_MASK_HYBRID_V02 ((qmiLocPosTechMaskT_v02)0x00000080) /**<  GNSS and network-provided measurements were used to
    693         generate the fix  */
    694 /** @addtogroup loc_qmi_enums
    695     @{
    696   */
    697 typedef enum {
    698   QMILOCSESSIONSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
    699   eQMI_LOC_SESS_STATUS_SUCCESS_V02 = 0, /**<  Session was successful  */
    700   eQMI_LOC_SESS_STATUS_IN_PROGRESS_V02 = 1, /**<  Session is still in progress; further position reports will be generated
    701        until either the fix criteria specified by the client are met or the
    702        client response timeout occurs  */
    703   eQMI_LOC_SESS_STATUS_GENERAL_FAILURE_V02 = 2, /**<  Session failed  */
    704   eQMI_LOC_SESS_STATUS_TIMEOUT_V02 = 3, /**<  Fix request failed because the session timed out  */
    705   eQMI_LOC_SESS_STATUS_USER_END_V02 = 4, /**<  Fix request failed because the session was ended by the user  */
    706   eQMI_LOC_SESS_STATUS_BAD_PARAMETER_V02 = 5, /**<  Fix request failed due to bad parameters in the request  */
    707   eQMI_LOC_SESS_STATUS_PHONE_OFFLINE_V02 = 6, /**<  Fix request failed because the phone is offline  */
    708   eQMI_LOC_SESS_STATUS_ENGINE_LOCKED_V02 = 7, /**<  Fix request failed because the engine is locked  */
    709   QMILOCSESSIONSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
    710 }qmiLocSessionStatusEnumT_v02;
    711 /**
    712     @}
    713   */
    714 
    715 /** @addtogroup loc_qmi_aggregates
    716     @{
    717   */
    718 typedef struct {
    719 
    720   uint16_t gpsWeek;
    721   /**<   Current GPS week as calculated from midnight, Jan. 6, 1980. \n
    722        - Units: Weeks */
    723 
    724   uint32_t gpsTimeOfWeekMs;
    725   /**<   Amount of time into the current GPS week. \n
    726        - Units: Milliseconds */
    727 }qmiLocGPSTimeStructT_v02;  /* Type */
    728 /**
    729     @}
    730   */
    731 
    732 /** @addtogroup loc_qmi_aggregates
    733     @{
    734   */
    735 typedef struct {
    736 
    737   float PDOP;
    738   /**<   Position dilution of precision.
    739        \begin{itemize1}
    740        \item    Range: 1 (highest accuracy) to 50 (lowest accuracy)
    741        \item    PDOP = square root of (HDOP^2 + VDOP^2)
    742        \vspace{-0.18in} \end{itemize1} */
    743 
    744   float HDOP;
    745   /**<   Horizontal dilution of precision.
    746        \begin{itemize1}
    747        \item    Range: 1 (highest accuracy) to 50 (lowest accuracy)
    748        \vspace{-0.18in} \end{itemize1} */
    749 
    750   float VDOP;
    751   /**<   Vertical dilution of precision.
    752        \begin{itemize1}
    753        \item    Range: 1 (highest accuracy) to 50 (lowest accuracy)
    754        \vspace{-0.18in} \end{itemize1} */
    755 }qmiLocDOPStructT_v02;  /* Type */
    756 /**
    757     @}
    758   */
    759 
    760 typedef uint32_t qmiLocSensorUsageMaskT_v02;
    761 #define QMI_LOC_SENSOR_MASK_USED_ACCEL_V02 ((qmiLocSensorUsageMaskT_v02)0x00000001) /**<  Bitmask to specify whether an accelerometer was used.  */
    762 #define QMI_LOC_SENSOR_MASK_USED_GYRO_V02 ((qmiLocSensorUsageMaskT_v02)0x00000002) /**<  Bitmask to specify whether a gyroscope was used.  */
    763 typedef uint32_t qmiLocSensorAidedMaskT_v02;
    764 #define QMI_LOC_SENSOR_AIDED_MASK_HEADING_V02 ((qmiLocSensorAidedMaskT_v02)0x00000001) /**<  Bitmask to specify whether a sensor was used to calculate heading.  */
    765 #define QMI_LOC_SENSOR_AIDED_MASK_SPEED_V02 ((qmiLocSensorAidedMaskT_v02)0x00000002) /**<  Bitmask to specify whether a sensor was used to calculate speed.  */
    766 #define QMI_LOC_SENSOR_AIDED_MASK_POSITION_V02 ((qmiLocSensorAidedMaskT_v02)0x00000004) /**<  Bitmask to specify whether a sensor was used to calculate position.  */
    767 #define QMI_LOC_SENSOR_AIDED_MASK_VELOCITY_V02 ((qmiLocSensorAidedMaskT_v02)0x00000008) /**<  Bitmask to specify whether a sensor was used to calculate velocity.  */
    768 /** @addtogroup loc_qmi_aggregates
    769     @{
    770   */
    771 typedef struct {
    772 
    773   qmiLocSensorUsageMaskT_v02 usageMask;
    774   /**<   Specifies which sensors were used in calculating the position in the
    775        position report.
    776 
    777        Valid bitmasks: \begin{itemize1}
    778        \item    0x00000001 -- SENSOR_USED_ ACCEL
    779        \item    0x00000002 -- SENSOR_USED_ GYRO
    780        \vspace{-0.18in} \end{itemize1} */
    781 
    782   qmiLocSensorAidedMaskT_v02 aidingIndicatorMask;
    783   /**<   Specifies which results were aided by sensors.
    784 
    785        Valid bitmasks: \n
    786          - 0x00000001 -- AIDED_HEADING \n
    787          - 0x00000002 -- AIDED_SPEED \n
    788          - 0x00000004 -- AIDED_POSITION \n
    789          - 0x00000008 -- AIDED_VELOCITY */
    790 }qmiLocSensorUsageIndicatorStructT_v02;  /* Type */
    791 /**
    792     @}
    793   */
    794 
    795 /** @addtogroup loc_qmi_enums
    796     @{
    797   */
    798 typedef enum {
    799   QMILOCTIMESOURCEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
    800   eQMI_LOC_TIME_SRC_INVALID_V02 = 0, /**<  Invalid time.  */
    801   eQMI_LOC_TIME_SRC_NETWORK_TIME_TRANSFER_V02 = 1, /**<  Time is set by the 1X system  */
    802   eQMI_LOC_TIME_SRC_NETWORK_TIME_TAGGING_V02 = 2, /**<  Time is set by WCDMA/GSM time tagging (i.e.,
    803        associating network time with GPS time)  */
    804   eQMI_LOC_TIME_SRC_EXTERNAL_INPUT_V02 = 3, /**<  Time is set by an external injection  */
    805   eQMI_LOC_TIME_SRC_TOW_DECODE_V02 = 4, /**<  Time is set after decoding over-the-air GPS navigation data
    806        from one GPS satellite  */
    807   eQMI_LOC_TIME_SRC_TOW_CONFIRMED_V02 = 5, /**<  Time is set after decoding over-the-air GPS navigation data
    808        from multiple satellites  */
    809   eQMI_LOC_TIME_SRC_TOW_AND_WEEK_CONFIRMED_V02 = 6, /**<  Both time of the week and the GPS week number are known  */
    810   eQMI_LOC_TIME_SRC_NAV_SOLUTION_V02 = 7, /**<  Time is set by the position engine after the fix is obtained  */
    811   eQMI_LOC_TIME_SRC_SOLVE_FOR_TIME_V02 = 8, /**<  Time is set by the position engine after performing SFT;
    812        this is done when the clock time uncertainty is large  */
    813   eQMI_LOC_TIME_SRC_GLO_TOW_DECODE_V02 = 9, /**<  Time is set after decoding GLO satellites  */
    814   eQMI_LOC_TIME_SRC_TIME_TRANSFORM_V02 = 10, /**<  Time is set after transforming the GPS to GLO time  */
    815   eQMI_LOC_TIME_SRC_WCDMA_SLEEP_TIME_TAGGING_V02 = 11, /**<  Time is set by the sleep time tag provided by the WCDMA network  */
    816   eQMI_LOC_TIME_SRC_GSM_SLEEP_TIME_TAGGING_V02 = 12, /**<  Time is set by the sleep time tag provided by the GSM network  */
    817   eQMI_LOC_TIME_SRC_UNKNOWN_V02 = 13, /**<  Source of the time is unknown  */
    818   eQMI_LOC_TIME_SRC_SYSTEM_TIMETICK_V02 = 14, /**<  Time is derived from the system clock (better known as the slow clock);
    819        GNSS time is maintained irrespective of the GNSS receiver state  */
    820   eQMI_LOC_TIME_SRC_QZSS_TOW_DECODE_V02 = 15, /**<  Time is set after decoding QZSS satellites  */
    821   eQMI_LOC_TIME_SRC_BDS_TOW_DECODE_V02 = 16, /**<  Time is set after decoding BDS satellites  */
    822   QMILOCTIMESOURCEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
    823 }qmiLocTimeSourceEnumT_v02;
    824 /**
    825     @}
    826   */
    827 
    828 /** @addtogroup loc_qmi_enums
    829     @{
    830   */
    831 typedef enum {
    832   QMILOCRELIABILITYENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
    833   eQMI_LOC_RELIABILITY_NOT_SET_V02 = 0, /**<  Location reliability is not set  */
    834   eQMI_LOC_RELIABILITY_VERY_LOW_V02 = 1, /**<  Location reliability is very low; use it at your own risk  */
    835   eQMI_LOC_RELIABILITY_LOW_V02 = 2, /**<  Location reliability is low; little or no cross-checking is possible  */
    836   eQMI_LOC_RELIABILITY_MEDIUM_V02 = 3, /**<  Location reliability is medium; limited cross-check passed   */
    837   eQMI_LOC_RELIABILITY_HIGH_V02 = 4, /**<  Location reliability is high; strong cross-check passed  */
    838   QMILOCRELIABILITYENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
    839 }qmiLocReliabilityEnumT_v02;
    840 /**
    841     @}
    842   */
    843 
    844 /** @addtogroup loc_qmi_messages
    845     @{
    846   */
    847 /** Indication Message; Sends the position report to the control point. */
    848 typedef struct {
    849 
    850   /* Mandatory */
    851   /*   Session Status */
    852   qmiLocSessionStatusEnumT_v02 sessionStatus;
    853   /**<   Session status.
    854 
    855  Valid values: \n
    856       - eQMI_LOC_SESS_STATUS_SUCCESS (0) --  Session was successful
    857       - eQMI_LOC_SESS_STATUS_IN_PROGRESS (1) --  Session is still in progress; further position reports will be generated
    858        until either the fix criteria specified by the client are met or the
    859        client response timeout occurs
    860       - eQMI_LOC_SESS_STATUS_GENERAL_FAILURE (2) --  Session failed
    861       - eQMI_LOC_SESS_STATUS_TIMEOUT (3) --  Fix request failed because the session timed out
    862       - eQMI_LOC_SESS_STATUS_USER_END (4) --  Fix request failed because the session was ended by the user
    863       - eQMI_LOC_SESS_STATUS_BAD_PARAMETER (5) --  Fix request failed due to bad parameters in the request
    864       - eQMI_LOC_SESS_STATUS_PHONE_OFFLINE (6) --  Fix request failed because the phone is offline
    865       - eQMI_LOC_SESS_STATUS_ENGINE_LOCKED (7) --  Fix request failed because the engine is locked
    866  */
    867 
    868   /* Mandatory */
    869   /*   Session ID */
    870   uint8_t sessionId;
    871   /**<    ID of the session that was specified in the Start request
    872         QMI_LOC_START_REQ. \n
    873         - Range: 0 to 255 */
    874 
    875   /* Optional */
    876   /*  Latitude */
    877   uint8_t latitude_valid;  /**< Must be set to true if latitude is being passed */
    878   double latitude;
    879   /**<   Latitude (specified in WGS84 datum).
    880        \begin{itemize1}
    881        \item    Type: Floating point
    882        \item    Units: Degrees
    883        \item    Range: -90.0 to 90.0   \begin{itemize1}
    884          \item    Positive values indicate northern latitude
    885          \item    Negative values indicate southern latitude
    886        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
    887 
    888   /* Optional */
    889   /*   Longitude */
    890   uint8_t longitude_valid;  /**< Must be set to true if longitude is being passed */
    891   double longitude;
    892   /**<   Longitude (specified in WGS84 datum).
    893        \begin{itemize1}
    894        \item    Type: Floating point
    895        \item    Units: Degrees
    896        \item    Range: -180.0 to 180.0   \begin{itemize1}
    897          \item    Positive values indicate eastern longitude
    898          \item    Negative values indicate western longitude
    899        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
    900 
    901   /* Optional */
    902   /*   Circular Horizontal Position Uncertainty */
    903   uint8_t horUncCircular_valid;  /**< Must be set to true if horUncCircular is being passed */
    904   float horUncCircular;
    905   /**<   Horizontal position uncertainty (circular).\n
    906        - Units: Meters */
    907 
    908   /* Optional */
    909   /*  Horizontal Elliptical Uncertainty (Semi-Minor Axis) */
    910   uint8_t horUncEllipseSemiMinor_valid;  /**< Must be set to true if horUncEllipseSemiMinor is being passed */
    911   float horUncEllipseSemiMinor;
    912   /**<   Semi-minor axis of horizontal elliptical uncertainty.\n
    913        - Units: Meters */
    914 
    915   /* Optional */
    916   /*  Horizontal Elliptical Uncertainty (Semi-Major Axis) */
    917   uint8_t horUncEllipseSemiMajor_valid;  /**< Must be set to true if horUncEllipseSemiMajor is being passed */
    918   float horUncEllipseSemiMajor;
    919   /**<   Semi-major axis of horizontal elliptical uncertainty.\n
    920        - Units: Meters */
    921 
    922   /* Optional */
    923   /*  Elliptical Horizontal Uncertainty Azimuth */
    924   uint8_t horUncEllipseOrientAzimuth_valid;  /**< Must be set to true if horUncEllipseOrientAzimuth is being passed */
    925   float horUncEllipseOrientAzimuth;
    926   /**<   Elliptical horizontal uncertainty azimuth of orientation.\n
    927        - Units: Decimal degrees \n
    928        - Range: 0 to 180 */
    929 
    930   /* Optional */
    931   /*  Horizontal Confidence */
    932   uint8_t horConfidence_valid;  /**< Must be set to true if horConfidence is being passed */
    933   uint8_t horConfidence;
    934   /**<   Horizontal uncertainty confidence.
    935        If both elliptical and horizontal uncertainties are specified in this message,
    936        the confidence corresponds to the elliptical uncertainty. \n
    937        - Units: Percent \n
    938        - Range: 0 to 99 */
    939 
    940   /* Optional */
    941   /*  Horizontal Reliability */
    942   uint8_t horReliability_valid;  /**< Must be set to true if horReliability is being passed */
    943   qmiLocReliabilityEnumT_v02 horReliability;
    944   /**<   Specifies the reliability of the horizontal position.
    945  Valid values: \n
    946       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
    947       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
    948       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
    949       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
    950       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
    951  */
    952 
    953   /* Optional */
    954   /*  Horizontal Speed */
    955   uint8_t speedHorizontal_valid;  /**< Must be set to true if speedHorizontal is being passed */
    956   float speedHorizontal;
    957   /**<   Horizontal speed.\n
    958        - Units: Meters/second */
    959 
    960   /* Optional */
    961   /*  Speed Uncertainty */
    962   uint8_t speedUnc_valid;  /**< Must be set to true if speedUnc is being passed */
    963   float speedUnc;
    964   /**<   3-D Speed uncertainty.\n
    965        - Units: Meters/second */
    966 
    967   /* Optional */
    968   /*  Altitude With Respect to Ellipsoid */
    969   uint8_t altitudeWrtEllipsoid_valid;  /**< Must be set to true if altitudeWrtEllipsoid is being passed */
    970   float altitudeWrtEllipsoid;
    971   /**<   Altitude with respect to the WGS84 ellipsoid.\n
    972        - Units: Meters \n
    973        - Range: -500 to 15883 */
    974 
    975   /* Optional */
    976   /*  Altitude With Respect to Sea Level */
    977   uint8_t altitudeWrtMeanSeaLevel_valid;  /**< Must be set to true if altitudeWrtMeanSeaLevel is being passed */
    978   float altitudeWrtMeanSeaLevel;
    979   /**<   Altitude with respect to mean sea level.\n
    980        - Units: Meters */
    981 
    982   /* Optional */
    983   /*  Vertical Uncertainty */
    984   uint8_t vertUnc_valid;  /**< Must be set to true if vertUnc is being passed */
    985   float vertUnc;
    986   /**<   Vertical uncertainty.\n
    987        - Units: Meters */
    988 
    989   /* Optional */
    990   /*  Vertical Confidence */
    991   uint8_t vertConfidence_valid;  /**< Must be set to true if vertConfidence is being passed */
    992   uint8_t vertConfidence;
    993   /**<   Vertical uncertainty confidence.\n
    994        - Units: Percent \n
    995        - Range: 0 to 99 */
    996 
    997   /* Optional */
    998   /*  Vertical Reliability */
    999   uint8_t vertReliability_valid;  /**< Must be set to true if vertReliability is being passed */
   1000   qmiLocReliabilityEnumT_v02 vertReliability;
   1001   /**<   Specifies the reliability of the vertical position.
   1002  Valid values: \n
   1003       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
   1004       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
   1005       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
   1006       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
   1007       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
   1008  */
   1009 
   1010   /* Optional */
   1011   /*  Vertical Speed */
   1012   uint8_t speedVertical_valid;  /**< Must be set to true if speedVertical is being passed */
   1013   float speedVertical;
   1014   /**<   Vertical speed.\n
   1015          - Units: Meters/second */
   1016 
   1017   /* Optional */
   1018   /*  Heading */
   1019   uint8_t heading_valid;  /**< Must be set to true if heading is being passed */
   1020   float heading;
   1021   /**<   Heading.\n
   1022          - Units: Degrees \n
   1023          - Range: 0 to 359.999  */
   1024 
   1025   /* Optional */
   1026   /*  Heading Uncertainty */
   1027   uint8_t headingUnc_valid;  /**< Must be set to true if headingUnc is being passed */
   1028   float headingUnc;
   1029   /**<   Heading uncertainty.\n
   1030        - Units: Degrees \n
   1031        - Range: 0 to 359.999 */
   1032 
   1033   /* Optional */
   1034   /*  Magnetic Deviation */
   1035   uint8_t magneticDeviation_valid;  /**< Must be set to true if magneticDeviation is being passed */
   1036   float magneticDeviation;
   1037   /**<   Difference between the bearing to true north and the bearing shown
   1038       on a magnetic compass. The deviation is positive when the magnetic
   1039       north is east of true north. */
   1040 
   1041   /* Optional */
   1042   /*  Technology Used */
   1043   uint8_t technologyMask_valid;  /**< Must be set to true if technologyMask is being passed */
   1044   qmiLocPosTechMaskT_v02 technologyMask;
   1045   /**<   Technology used in computing this fix.
   1046  Valid bitmasks: \n
   1047       - QMI_LOC_POS_TECH_MASK_SATELLITE (0x00000001) --  Satellites were used to generate the fix
   1048       - QMI_LOC_POS_TECH_MASK_CELLID (0x00000002) --  Cell towers were used to generate the fix
   1049       - QMI_LOC_POS_TECH_MASK_WIFI (0x00000004) --  Wi-Fi access points were used to generate the fix
   1050       - QMI_LOC_POS_TECH_MASK_SENSORS (0x00000008) --  Sensors were used to generate the fix
   1051       - QMI_LOC_POS_TECH_MASK_REFERENCE_LOCATION (0x00000010) --  Reference Location was used to generate the fix
   1052       - QMI_LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION (0x00000020) --  Coarse position injected into the location engine was used to
   1053         generate the fix
   1054       - QMI_LOC_POS_TECH_MASK_AFLT (0x00000040) --  AFLT was used to generate the fix
   1055       - QMI_LOC_POS_TECH_MASK_HYBRID (0x00000080) --  GNSS and network-provided measurements were used to
   1056         generate the fix
   1057  */
   1058 
   1059   /* Optional */
   1060   /*  Dilution of Precision */
   1061   uint8_t DOP_valid;  /**< Must be set to true if DOP is being passed */
   1062   qmiLocDOPStructT_v02 DOP;
   1063   /**<   \vspace{0.06in} \n Dilution of precision associated with this position. */
   1064 
   1065   /* Optional */
   1066   /*  UTC Timestamp */
   1067   uint8_t timestampUtc_valid;  /**< Must be set to true if timestampUtc is being passed */
   1068   uint64_t timestampUtc;
   1069   /**<   UTC timestamp. \n
   1070        - Units: Milliseconds since Jan. 1, 1970 */
   1071 
   1072   /* Optional */
   1073   /*  Leap Seconds */
   1074   uint8_t leapSeconds_valid;  /**< Must be set to true if leapSeconds is being passed */
   1075   uint8_t leapSeconds;
   1076   /**<   Leap second information. If leapSeconds is not available,
   1077          timestampUtc is calculated based on a hard-coded value
   1078          for leap seconds. \n
   1079          - Units: Seconds */
   1080 
   1081   /* Optional */
   1082   /*  GPS Time */
   1083   uint8_t gpsTime_valid;  /**< Must be set to true if gpsTime is being passed */
   1084   qmiLocGPSTimeStructT_v02 gpsTime;
   1085   /**<   \vspace{0.06in} \n The number of weeks since Jan. 5, 1980, and
   1086        milliseconds into the current week. */
   1087 
   1088   /* Optional */
   1089   /*  Time Uncertainty */
   1090   uint8_t timeUnc_valid;  /**< Must be set to true if timeUnc is being passed */
   1091   float timeUnc;
   1092   /**<   Time uncertainty. \n
   1093        - Units: Milliseconds */
   1094 
   1095   /* Optional */
   1096   /*  Time Source */
   1097   uint8_t timeSrc_valid;  /**< Must be set to true if timeSrc is being passed */
   1098   qmiLocTimeSourceEnumT_v02 timeSrc;
   1099   /**<   Time source. Valid values: \n
   1100       - eQMI_LOC_TIME_SRC_INVALID (0) --  Invalid time.
   1101       - eQMI_LOC_TIME_SRC_NETWORK_TIME_TRANSFER (1) --  Time is set by the 1X system
   1102       - eQMI_LOC_TIME_SRC_NETWORK_TIME_TAGGING (2) --  Time is set by WCDMA/GSM time tagging (i.e.,
   1103        associating network time with GPS time)
   1104       - eQMI_LOC_TIME_SRC_EXTERNAL_INPUT (3) --  Time is set by an external injection
   1105       - eQMI_LOC_TIME_SRC_TOW_DECODE (4) --  Time is set after decoding over-the-air GPS navigation data
   1106        from one GPS satellite
   1107       - eQMI_LOC_TIME_SRC_TOW_CONFIRMED (5) --  Time is set after decoding over-the-air GPS navigation data
   1108        from multiple satellites
   1109       - eQMI_LOC_TIME_SRC_TOW_AND_WEEK_CONFIRMED (6) --  Both time of the week and the GPS week number are known
   1110       - eQMI_LOC_TIME_SRC_NAV_SOLUTION (7) --  Time is set by the position engine after the fix is obtained
   1111       - eQMI_LOC_TIME_SRC_SOLVE_FOR_TIME (8) --  Time is set by the position engine after performing SFT;
   1112        this is done when the clock time uncertainty is large
   1113       - eQMI_LOC_TIME_SRC_GLO_TOW_DECODE (9) --  Time is set after decoding GLO satellites
   1114       - eQMI_LOC_TIME_SRC_TIME_TRANSFORM (10) --  Time is set after transforming the GPS to GLO time
   1115       - eQMI_LOC_TIME_SRC_WCDMA_SLEEP_TIME_TAGGING (11) --  Time is set by the sleep time tag provided by the WCDMA network
   1116       - eQMI_LOC_TIME_SRC_GSM_SLEEP_TIME_TAGGING (12) --  Time is set by the sleep time tag provided by the GSM network
   1117       - eQMI_LOC_TIME_SRC_UNKNOWN (13) --  Source of the time is unknown
   1118       - eQMI_LOC_TIME_SRC_SYSTEM_TIMETICK (14) --  Time is derived from the system clock (better known as the slow clock);
   1119        GNSS time is maintained irrespective of the GNSS receiver state
   1120       - eQMI_LOC_TIME_SRC_QZSS_TOW_DECODE (15) --  Time is set after decoding QZSS satellites
   1121       - eQMI_LOC_TIME_SRC_BDS_TOW_DECODE (16) --  Time is set after decoding BDS satellites  */
   1122 
   1123   /* Optional */
   1124   /*  Sensor Data Usage */
   1125   uint8_t sensorDataUsage_valid;  /**< Must be set to true if sensorDataUsage is being passed */
   1126   qmiLocSensorUsageIndicatorStructT_v02 sensorDataUsage;
   1127   /**<   \vspace{0.06in} \n Indicates whether sensor data was used in computing the position in this
   1128        position report. */
   1129 
   1130   /* Optional */
   1131   /*  Fix Count for This Session */
   1132   uint8_t fixId_valid;  /**< Must be set to true if fixId is being passed */
   1133   uint32_t fixId;
   1134   /**<   Fix count for the session. Starts with 0 and increments by one
   1135        for each successive position report for a particular session. */
   1136 
   1137   /* Optional */
   1138   /*  SVs Used to Calculate the Fix */
   1139   uint8_t gnssSvUsedList_valid;  /**< Must be set to true if gnssSvUsedList is being passed */
   1140   uint32_t gnssSvUsedList_len;  /**< Must be set to # of elements in gnssSvUsedList */
   1141   uint16_t gnssSvUsedList[QMI_LOC_MAX_SV_USED_LIST_LENGTH_V02];
   1142   /**<   Each entry in the list contains the SV ID of a satellite
   1143       used for calculating this position report. The following
   1144       information is associated with each SV ID: \n
   1145       Range: \n
   1146       - For GPS:     1 to 32 \n
   1147       - For SBAS:    33 to 64 \n
   1148       - For GLONASS: 65 to 96 \n
   1149       - For QZSS:    193 to 197 \n
   1150       - For BDS:     201 to 237
   1151       */
   1152 
   1153   /* Optional */
   1154   /*  Altitude Assumed */
   1155   uint8_t altitudeAssumed_valid;  /**< Must be set to true if altitudeAssumed is being passed */
   1156   uint8_t altitudeAssumed;
   1157   /**<   Indicates whether altitude is assumed or calculated: \begin{itemize1}
   1158          \item    0x00 (FALSE) -- Altitude is calculated
   1159          \item    0x01 (TRUE) -- Altitude is assumed; there may not be enough
   1160                                  satellites to determine the precise altitude
   1161         \vspace{-0.18in} \end{itemize1}*/
   1162 }qmiLocEventPositionReportIndMsgT_v02;  /* Message */
   1163 /**
   1164     @}
   1165   */
   1166 
   1167 /** @addtogroup loc_qmi_enums
   1168     @{
   1169   */
   1170 typedef enum {
   1171   QMILOCSVSYSTEMENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   1172   eQMI_LOC_SV_SYSTEM_GPS_V02 = 1, /**<  GPS satellite  */
   1173   eQMI_LOC_SV_SYSTEM_GALILEO_V02 = 2, /**<  GALILEO satellite  */
   1174   eQMI_LOC_SV_SYSTEM_SBAS_V02 = 3, /**<  SBAS satellite  */
   1175   eQMI_LOC_SV_SYSTEM_COMPASS_V02 = 4, /**<  COMPASS satellite  */
   1176   eQMI_LOC_SV_SYSTEM_GLONASS_V02 = 5, /**<  GLONASS satellite  */
   1177   eQMI_LOC_SV_SYSTEM_BDS_V02 = 6, /**<  BDS satellite  */
   1178   QMILOCSVSYSTEMENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   1179 }qmiLocSvSystemEnumT_v02;
   1180 /**
   1181     @}
   1182   */
   1183 
   1184 /** @addtogroup loc_qmi_enums
   1185     @{
   1186   */
   1187 typedef enum {
   1188   QMILOCSVSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   1189   eQMI_LOC_SV_STATUS_IDLE_V02 = 1, /**<  SV is not being actively processed  */
   1190   eQMI_LOC_SV_STATUS_SEARCH_V02 = 2, /**<  The system is searching for this SV  */
   1191   eQMI_LOC_SV_STATUS_TRACK_V02 = 3, /**<  SV is being tracked  */
   1192   QMILOCSVSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   1193 }qmiLocSvStatusEnumT_v02;
   1194 /**
   1195     @}
   1196   */
   1197 
   1198 typedef uint32_t qmiLocSvInfoValidMaskT_v02;
   1199 #define QMI_LOC_SV_INFO_MASK_VALID_SYSTEM_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000001) /**<  System field is valid in SV information  */
   1200 #define QMI_LOC_SV_INFO_MASK_VALID_GNSS_SVID_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000002) /**<  gnssSvId field is valid in SV information  */
   1201 #define QMI_LOC_SV_INFO_MASK_VALID_HEALTH_STATUS_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000004) /**<  healthStatus field is valid in SV information  */
   1202 #define QMI_LOC_SV_INFO_MASK_VALID_PROCESS_STATUS_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000008) /**<  processStatus field is valid in SV information  */
   1203 #define QMI_LOC_SV_INFO_MASK_VALID_SVINFO_MASK_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000010) /**<  svInfoMask field is valid in SV information  */
   1204 #define QMI_LOC_SV_INFO_MASK_VALID_ELEVATION_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000020) /**<  Elevation field is valid in SV information  */
   1205 #define QMI_LOC_SV_INFO_MASK_VALID_AZIMUTH_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000040) /**<  Azimuth field is valid in SV information  */
   1206 #define QMI_LOC_SV_INFO_MASK_VALID_SNR_V02 ((qmiLocSvInfoValidMaskT_v02)0x00000080) /**<  SNR field is valid in SV information  */
   1207 typedef uint8_t qmiLocSvInfoMaskT_v02;
   1208 #define QMI_LOC_SVINFO_MASK_HAS_EPHEMERIS_V02 ((qmiLocSvInfoMaskT_v02)0x01) /**<  Ephemeris is available for this SV  */
   1209 #define QMI_LOC_SVINFO_MASK_HAS_ALMANAC_V02 ((qmiLocSvInfoMaskT_v02)0x02) /**<  Almanac is available for this SV  */
   1210 /** @addtogroup loc_qmi_aggregates
   1211     @{
   1212   */
   1213 typedef struct {
   1214 
   1215   qmiLocSvInfoValidMaskT_v02 validMask;
   1216   /**<   Bitmask indicating which of the fields in this TLV are valid.
   1217 
   1218          Valid bitmasks: \begin{itemize1}
   1219          \item    0x00000001 -- VALID_SYSTEM
   1220          \item    0x00000002 -- VALID_GNSS_SVID
   1221          \item    0x00000004 -- VALID_HEALTH_ STATUS
   1222          \item    0x00000008 -- VALID_PROCESS_ STATUS
   1223          \item    0x00000010 -- VALID_SVINFO_ MASK
   1224          \item    0x00000020 -- VALID_ELEVATION
   1225          \item    0x00000040 -- VALID_AZIMUTH
   1226          \item    0x00000080 -- VALID_SNR
   1227          \vspace{-0.18in} \end{itemize1}  */
   1228 
   1229   qmiLocSvSystemEnumT_v02 system;
   1230   /**<   Indicates to which constellation this SV belongs.
   1231 
   1232  Valid values: \n
   1233       - eQMI_LOC_SV_SYSTEM_GPS (1) --  GPS satellite
   1234       - eQMI_LOC_SV_SYSTEM_GALILEO (2) --  GALILEO satellite
   1235       - eQMI_LOC_SV_SYSTEM_SBAS (3) --  SBAS satellite
   1236       - eQMI_LOC_SV_SYSTEM_COMPASS (4) --  COMPASS satellite
   1237       - eQMI_LOC_SV_SYSTEM_GLONASS (5) --  GLONASS satellite
   1238       - eQMI_LOC_SV_SYSTEM_BDS (6) --  BDS satellite
   1239  */
   1240 
   1241   uint16_t gnssSvId;
   1242   /**<   GNSS SV ID.
   1243          \begin{itemize1}
   1244          \item Range:  \begin{itemize1}
   1245            \item For GPS:      1 to 32
   1246            \item For GLONASS:  1 to 32
   1247            \item For SBAS:     120 to 151
   1248            \item For BDS:      201 to 237
   1249          \end{itemize1} \end{itemize1}
   1250 
   1251         The GPS and GLONASS SVs can be disambiguated using the system field. */
   1252 
   1253   uint8_t healthStatus;
   1254   /**<   Health status.
   1255          \begin{itemize1}
   1256          \item    Range: 0 to 1; 0 = unhealthy, \n 1 = healthy
   1257          \vspace{-0.18in} \end{itemize1}*/
   1258 
   1259   qmiLocSvStatusEnumT_v02 svStatus;
   1260   /**<   SV processing status.
   1261 
   1262  Valid values: \n
   1263       - eQMI_LOC_SV_STATUS_IDLE (1) --  SV is not being actively processed
   1264       - eQMI_LOC_SV_STATUS_SEARCH (2) --  The system is searching for this SV
   1265       - eQMI_LOC_SV_STATUS_TRACK (3) --  SV is being tracked
   1266  */
   1267 
   1268   qmiLocSvInfoMaskT_v02 svInfoMask;
   1269   /**<   Indicates whether almanac and ephemeris information is available. \n
   1270          Valid bitmasks:
   1271 
   1272            - 0x01 -- SVINFO_HAS_EPHEMERIS \n
   1273            - 0x02 -- SVINFO_HAS_ALMANAC
   1274     */
   1275 
   1276   float elevation;
   1277   /**<   SV elevation angle.\n
   1278          - Units: Degrees \n
   1279          - Range: 0 to 90 */
   1280 
   1281   float azimuth;
   1282   /**<   SV azimuth angle.\n
   1283          - Units: Degrees \n
   1284          - Range: 0 to 360 */
   1285 
   1286   float snr;
   1287   /**<   SV signal-to-noise ratio. \n
   1288          - Units: dB-Hz */
   1289 }qmiLocSvInfoStructT_v02;  /* Type */
   1290 /**
   1291     @}
   1292   */
   1293 
   1294 /** @addtogroup loc_qmi_messages
   1295     @{
   1296   */
   1297 /** Indication Message; Sends a satellite report to the control point. */
   1298 typedef struct {
   1299 
   1300   /* Mandatory */
   1301   /*  Altitude Assumed */
   1302   uint8_t altitudeAssumed;
   1303   /**<   Indicates whether altitude is assumed or calculated: \begin{itemize1}
   1304          \item    0x00 (FALSE) -- Valid altitude is calculated
   1305          \item    0x01 (TRUE) -- Valid altitude is assumed; there may not be
   1306                                  enough satellites to determine precise altitude
   1307           \vspace{-0.18in} \end{itemize1}*/
   1308 
   1309   /* Optional */
   1310   /*  Satellite Info */
   1311   uint8_t svList_valid;  /**< Must be set to true if svList is being passed */
   1312   uint32_t svList_len;  /**< Must be set to # of elements in svList */
   1313   qmiLocSvInfoStructT_v02 svList[QMI_LOC_SV_INFO_LIST_MAX_SIZE_V02];
   1314   /**<   \vspace{0.06in} \n SV information list. */
   1315 }qmiLocEventGnssSvInfoIndMsgT_v02;  /* Message */
   1316 /**
   1317     @}
   1318   */
   1319 
   1320 /** @addtogroup loc_qmi_messages
   1321     @{
   1322   */
   1323 /** Indication Message; Sends NMEA sentences to the control point */
   1324 typedef struct {
   1325 
   1326   /* Mandatory */
   1327   /*  NMEA String */
   1328   char nmea[QMI_LOC_NMEA_STRING_MAX_LENGTH_V02 + 1];
   1329   /**<   NMEA string.
   1330        \begin{itemize1}
   1331        \item    Type: NULL-terminated string
   1332        \item    Maximum string length (including NULL terminator): 201
   1333        \vspace{-0.18in} \end{itemize1}*/
   1334 }qmiLocEventNmeaIndMsgT_v02;  /* Message */
   1335 /**
   1336     @}
   1337   */
   1338 
   1339 /** @addtogroup loc_qmi_enums
   1340     @{
   1341   */
   1342 typedef enum {
   1343   QMILOCNINOTIFYVERIFYENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   1344   eQMI_LOC_NI_USER_NO_NOTIFY_NO_VERIFY_V02 = 1, /**<  No notification and no verification required  */
   1345   eQMI_LOC_NI_USER_NOTIFY_ONLY_V02 = 2, /**<  Notify only; no verification required  */
   1346   eQMI_LOC_NI_USER_NOTIFY_VERIFY_ALLOW_NO_RESP_V02 = 3, /**<  Notify and verify, but no response required.  */
   1347   eQMI_LOC_NI_USER_NOTIFY_VERIFY_NOT_ALLOW_NO_RESP_V02 = 4, /**<  Notify and verify, and require a response  */
   1348   eQMI_LOC_NI_USER_NOTIFY_VERIFY_PRIVACY_OVERRIDE_V02 = 5, /**<  Notify and verify; privacy override  */
   1349   QMILOCNINOTIFYVERIFYENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   1350 }qmiLocNiNotifyVerifyEnumT_v02;
   1351 /**
   1352     @}
   1353   */
   1354 
   1355 /** @addtogroup loc_qmi_enums
   1356     @{
   1357   */
   1358 typedef enum {
   1359   QMILOCNIVXPOSMODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   1360   eQMI_LOC_NI_VX_MS_ASSISTED_ONLY_V02 = 1, /**<  MS-assisted only allowed  */
   1361   eQMI_LOC_NI_VX_MS_BASED_ONLY_V02 = 2, /**<  MS-based only allowed  */
   1362   eQMI_LOC_NI_VX_MS_ASSISTED_PREFERRED_MS_BASED_ALLOWED_V02 = 3, /**<  MS-assisted preferred, but MS-based allowed  */
   1363   eQMI_LOC_NI_VX_MS_BASED_PREFERRED_MS_ASSISTED_ALLOWED_V02 = 4, /**<  MS-based preferred, but MS-assisted allowed  */
   1364   QMILOCNIVXPOSMODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   1365 }qmiLocNiVxPosModeEnumT_v02;
   1366 /**
   1367     @}
   1368   */
   1369 
   1370 /** @addtogroup loc_qmi_enums
   1371     @{
   1372   */
   1373 typedef enum {
   1374   QMILOCNIVXREQUESTORIDENCODINGSCHEMEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   1375   eQMI_LOC_NI_VX_OCTET_V02 = 0, /**<  Encoding is Octet  */
   1376   eQMI_LOC_NI_VX_EXN_PROTOCOL_MSG_V02 = 1, /**<  Encoding is EXN protocol message  */
   1377   eQMI_LOC_NI_VX_ASCII_V02 = 2, /**<  Encoding is ASCII  */
   1378   eQMI_LOC_NI_VX_IA5_V02 = 3, /**<  Encoding is IA5  */
   1379   eQMI_LOC_NI_VX_UNICODE_V02 = 4, /**<  Encoding is Unicode  */
   1380   eQMI_LOC_NI_VX_SHIFT_JIS_V02 = 5, /**<  Encoding is Shift JIS  */
   1381   eQMI_LOC_NI_VX_KOREAN_V02 = 6, /**<  Encoding is Korean  */
   1382   eQMI_LOC_NI_VX_LATIN_HEBREW_V02 = 7, /**<  Encoding is Latin Hebrew  */
   1383   eQMI_LOC_NI_VX_LATIN_V02 = 8, /**<  Encoding is Latin  */
   1384   eQMI_LOC_NI_VX_GSM_V02 = 9, /**<  Encoding is GSM  */
   1385   QMILOCNIVXREQUESTORIDENCODINGSCHEMEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   1386 }qmiLocNiVxRequestorIdEncodingSchemeEnumT_v02;
   1387 /**
   1388     @}
   1389   */
   1390 
   1391 /** @addtogroup loc_qmi_aggregates
   1392     @{
   1393   */
   1394 typedef struct {
   1395 
   1396   uint8_t posQosIncl;
   1397   /**<   Indicates whether quality of service is included:\n
   1398          - 0x01 (TRUE) --  QoS is included \n
   1399          - 0x00 (FALSE) -- QoS is not included */
   1400 
   1401   uint8_t posQos;
   1402   /**<   Position QoS timeout. \n
   1403          - Units: Seconds \n
   1404          - Range: 0 to 255 */
   1405 
   1406   uint32_t numFixes;
   1407   /**<   Number of fixes allowed. */
   1408 
   1409   uint32_t timeBetweenFixes;
   1410   /**<   Time between fixes. \n
   1411          - Units: Seconds */
   1412 
   1413   qmiLocNiVxPosModeEnumT_v02 posMode;
   1414   /**<   Position mode.
   1415  Valid values:
   1416 
   1417       - eQMI_LOC_NI_VX_MS_ASSISTED_ONLY (1) --  MS-assisted only allowed
   1418       - eQMI_LOC_NI_VX_MS_BASED_ONLY (2) --  MS-based only allowed
   1419       - eQMI_LOC_NI_VX_MS_ASSISTED_PREFERRED_MS_BASED_ALLOWED (3) --  MS-assisted preferred, but MS-based allowed
   1420       - eQMI_LOC_NI_VX_MS_BASED_PREFERRED_MS_ASSISTED_ALLOWED (4) --  MS-based preferred, but MS-assisted allowed
   1421  */
   1422 
   1423   qmiLocNiVxRequestorIdEncodingSchemeEnumT_v02 encodingScheme;
   1424   /**<   VX encoding scheme.
   1425 
   1426  Valid values:
   1427 
   1428       - eQMI_LOC_NI_VX_OCTET (0) --  Encoding is Octet
   1429       - eQMI_LOC_NI_VX_EXN_PROTOCOL_MSG (1) --  Encoding is EXN protocol message
   1430       - eQMI_LOC_NI_VX_ASCII (2) --  Encoding is ASCII
   1431       - eQMI_LOC_NI_VX_IA5 (3) --  Encoding is IA5
   1432       - eQMI_LOC_NI_VX_UNICODE (4) --  Encoding is Unicode
   1433       - eQMI_LOC_NI_VX_SHIFT_JIS (5) --  Encoding is Shift JIS
   1434       - eQMI_LOC_NI_VX_KOREAN (6) --  Encoding is Korean
   1435       - eQMI_LOC_NI_VX_LATIN_HEBREW (7) --  Encoding is Latin Hebrew
   1436       - eQMI_LOC_NI_VX_LATIN (8) --  Encoding is Latin
   1437       - eQMI_LOC_NI_VX_GSM (9) --  Encoding is GSM
   1438  */
   1439 
   1440   uint32_t requestorId_len;  /**< Must be set to # of elements in requestorId */
   1441   uint8_t requestorId[QMI_LOC_NI_MAX_REQUESTOR_ID_LENGTH_V02];
   1442   /**<   Requestor ID. \n
   1443        - Type:  Array of bytes \n
   1444        - Maximum array length: 200
   1445   */
   1446 
   1447   uint16_t userRespTimerInSeconds;
   1448   /**<   Time to wait for the user to respond. \n
   1449          - Units: Seconds */
   1450 }qmiLocNiVxNotifyVerifyStructT_v02;  /* Type */
   1451 /**
   1452     @}
   1453   */
   1454 
   1455 /** @addtogroup loc_qmi_enums
   1456     @{
   1457   */
   1458 typedef enum {
   1459   QMILOCNISUPLPOSMETHODENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   1460   eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETASSISTED_V02 = 1, /**<  Set assisted  */
   1461   eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETBASED_V02 = 2, /**<  Set based  */
   1462   eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETASSISTED_PREF_V02 = 3, /**<  Set assisted preferred  */
   1463   eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETBASED_PREF_V02 = 4, /**<  Set based preferred  */
   1464   eQMI_LOC_NI_SUPL_POSMETHOD_AUTONOMOUS_GPS_V02 = 5, /**<  Standalone GPS  */
   1465   eQMI_LOC_NI_SUPL_POSMETHOD_AFLT_V02 = 6, /**<  Advanced forward link trilateration  */
   1466   eQMI_LOC_NI_SUPL_POSMETHOD_ECID_V02 = 7, /**<  Exclusive chip ID  */
   1467   eQMI_LOC_NI_SUPL_POSMETHOD_EOTD_V02 = 8, /**<  Enhnaced observed time difference  */
   1468   eQMI_LOC_NI_SUPL_POSMETHOD_OTDOA_V02 = 9, /**<  Observed time delay of arrival  */
   1469   eQMI_LOC_NI_SUPL_POSMETHOD_NO_POSITION_V02 = 10, /**<  No position  */
   1470   QMILOCNISUPLPOSMETHODENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   1471 }qmiLocNiSuplPosMethodEnumT_v02;
   1472 /**
   1473     @}
   1474   */
   1475 
   1476 /** @addtogroup loc_qmi_enums
   1477     @{
   1478   */
   1479 typedef enum {
   1480   QMILOCNIDATACODINGSCHEMEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   1481   eQMI_LOC_NI_SS_GERMAN_V02 = 12, /**<  Language is German  */
   1482   eQMI_LOC_NI_SS_ENGLISH_V02 = 13, /**<  Language is English  */
   1483   eQMI_LOC_NI_SS_ITALIAN_V02 = 14, /**<  Language is Italian  */
   1484   eQMI_LOC_NI_SS_FRENCH_V02 = 15, /**<  Language is French  */
   1485   eQMI_LOC_NI_SS_SPANISH_V02 = 16, /**<  Language is Spanish  */
   1486   eQMI_LOC_NI_SS_DUTCH_V02 = 17, /**<  Language is Dutch  */
   1487   eQMI_LOC_NI_SS_SWEDISH_V02 = 18, /**<  Language is Swedish  */
   1488   eQMI_LOC_NI_SS_DANISH_V02 = 19, /**<  Language is Danish  */
   1489   eQMI_LOC_NI_SS_PORTUGUESE_V02 = 20, /**<  Language is Portuguese  */
   1490   eQMI_LOC_NI_SS_FINNISH_V02 = 21, /**<  Language is Finnish  */
   1491   eQMI_LOC_NI_SS_NORWEGIAN_V02 = 22, /**<  Language is Norwegian  */
   1492   eQMI_LOC_NI_SS_GREEK_V02 = 23, /**<  Language is Greek  */
   1493   eQMI_LOC_NI_SS_TURKISH_V02 = 24, /**<  Language is Turkish  */
   1494   eQMI_LOC_NI_SS_HUNGARIAN_V02 = 25, /**<  Language is Hungarian  */
   1495   eQMI_LOC_NI_SS_POLISH_V02 = 26, /**<  Language is Polish  */
   1496   eQMI_LOC_NI_SS_LANGUAGE_UNSPEC_V02 = 27, /**<  Language is unspecified  */
   1497   eQMI_LOC_NI_SUPL_UTF8_V02 = 28, /**<  Encoding is UTF 8  */
   1498   eQMI_LOC_NI_SUPL_UCS2_V02 = 29, /**<  Encoding is UCS 2  */
   1499   eQMI_LOC_NI_SUPL_GSM_DEFAULT_V02 = 30, /**<  Encoding is GSM default  */
   1500   QMILOCNIDATACODINGSCHEMEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   1501 }qmiLocNiDataCodingSchemeEnumT_v02;
   1502 /**
   1503     @}
   1504   */
   1505 
   1506 /** @addtogroup loc_qmi_enums
   1507     @{
   1508   */
   1509 typedef enum {
   1510   QMILOCNISUPLFORMATENUMTYPE_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   1511   eQMI_LOC_NI_SUPL_FORMAT_LOGICAL_NAME_V02 = 0, /**<  SUPL logical name format  */
   1512   eQMI_LOC_NI_SUPL_FORMAT_EMAIL_ADDRESS_V02 = 1, /**<  SUPL email address format  */
   1513   eQMI_LOC_NI_SUPL_FORMAT_MSISDN_V02 = 2, /**<  SUPL MS-ISDN format  */
   1514   eQMI_LOC_NI_SUPL_FORMAT_URL_V02 = 3, /**<  SUPL URL format  */
   1515   eQMI_LOC_NI_SUPL_FORMAT_SIP_URL_V02 = 4, /**<  SUPL SIP URL format  */
   1516   eQMI_LOC_NI_SUPL_FORMAT_MIN_V02 = 5, /**<  SUPL MIN format  */
   1517   eQMI_LOC_NI_SUPL_FORMAT_MDN_V02 = 6, /**<  SUPL MDN format  */
   1518   eQMI_LOC_NI_SUPL_FORMAT_IMSPUBLIC_IDENTITY_V02 = 7, /**<  SUPL IMS public identity  */
   1519   eQMI_LOC_NI_SUPL_FORMAT_OSS_UNKNOWN_V02 = 2147483647, /**<  SUPL unknown format  */
   1520   QMILOCNISUPLFORMATENUMTYPE_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   1521 }qmiLocNiSuplFormatEnumType_v02;
   1522 /**
   1523     @}
   1524   */
   1525 
   1526 /** @addtogroup loc_qmi_aggregates
   1527     @{
   1528   */
   1529 typedef struct {
   1530 
   1531   qmiLocNiSuplFormatEnumType_v02 formatType;
   1532   /**<   Format of the formatted string.
   1533 
   1534  Valid values: \n
   1535       - eQMI_LOC_NI_SUPL_FORMAT_LOGICAL_NAME (0) --  SUPL logical name format
   1536       - eQMI_LOC_NI_SUPL_FORMAT_EMAIL_ADDRESS (1) --  SUPL email address format
   1537       - eQMI_LOC_NI_SUPL_FORMAT_MSISDN (2) --  SUPL MS-ISDN format
   1538       - eQMI_LOC_NI_SUPL_FORMAT_URL (3) --  SUPL URL format
   1539       - eQMI_LOC_NI_SUPL_FORMAT_SIP_URL (4) --  SUPL SIP URL format
   1540       - eQMI_LOC_NI_SUPL_FORMAT_MIN (5) --  SUPL MIN format
   1541       - eQMI_LOC_NI_SUPL_FORMAT_MDN (6) --  SUPL MDN format
   1542       - eQMI_LOC_NI_SUPL_FORMAT_IMSPUBLIC_IDENTITY (7) --  SUPL IMS public identity
   1543       - eQMI_LOC_NI_SUPL_FORMAT_OSS_UNKNOWN (2147483647) --  SUPL unknown format
   1544  */
   1545 
   1546   uint32_t formattedString_len;  /**< Must be set to # of elements in formattedString */
   1547   uint8_t formattedString[QMI_LOC_NI_MAX_CLIENT_NAME_LENGTH_V02];
   1548   /**<   Formatted string. \n
   1549         - Type: Byte array \n
   1550         - Maximum string length: 64
   1551    */
   1552 }qmiLocNiSuplFormattedStringStructT_v02;  /* Type */
   1553 /**
   1554     @}
   1555   */
   1556 
   1557 typedef uint8_t qmiLocSuplQopValidMaskT_v02;
   1558 #define QMI_LOC_NI_SUPL_MASK_QOP_HORZ_ACC_VALID_V02 ((qmiLocSuplQopValidMaskT_v02)0x01) /**<  Horizontal accuracy is valid in the Quality of Position (QoP)  */
   1559 #define QMI_LOC_NI_SUPL_MASK_QOP_VER_ACC_VALID_V02 ((qmiLocSuplQopValidMaskT_v02)0x02) /**<  Vertical accuracy is valid in the QoP  */
   1560 #define QMI_LOC_NI_SUPL_MASK_QOP_MAXAGE_VALID_V02 ((qmiLocSuplQopValidMaskT_v02)0x04) /**<  Vertical accuracy is valid in the QoP  */
   1561 #define QMI_LOC_NI_SUPL_MASK_QOP_DELAY_VALID_V02 ((qmiLocSuplQopValidMaskT_v02)0x08) /**<  Vertical accuracy is valid in the QoP  */
   1562 /** @addtogroup loc_qmi_aggregates
   1563     @{
   1564   */
   1565 typedef struct {
   1566 
   1567   qmiLocSuplQopValidMaskT_v02 validMask;
   1568   /**<   Bit field indicating which fields are valid in this value.
   1569 
   1570         Valid bitmasks: \n
   1571           - 0x01 -- QOP_HORZ_ACC_VALID \n
   1572           - 0x02 -- QOP_VER_ACC_VALID \n
   1573           - 0x04 -- QOP_MAXAGE_VALID \n
   1574           - 0x08 -- QOP_DELAY_VALID*/
   1575 
   1576   uint8_t horizontalAccuracy;
   1577   /**<   Horizontal accuracy. \n
   1578         - Units: Meters */
   1579 
   1580   uint8_t verticalAccuracy;
   1581   /**<   Vertical accuracy. \n
   1582         - Units: Meters */
   1583 
   1584   uint16_t maxLocAge;
   1585   /**<   Maximum age of the location if the engine sends a previously
   1586         computed position. \n
   1587         - Units: Seconds */
   1588 
   1589   uint8_t delay;
   1590   /**<   Delay the server is willing to tolerate for the fix. \n
   1591         - Units: Seconds */
   1592 }qmiLocNiSuplQopStructT_v02;  /* Type */
   1593 /**
   1594     @}
   1595   */
   1596 
   1597 typedef uint8_t qmiLocServerAddrTypeMaskT_v02;
   1598 #define QMI_LOC_SERVER_ADDR_TYPE_IPV4_MASK_V02 ((qmiLocServerAddrTypeMaskT_v02)0x01) /**<  IPv4 server address type  */
   1599 #define QMI_LOC_SERVER_ADDR_TYPE_IPV6_MASK_V02 ((qmiLocServerAddrTypeMaskT_v02)0x02) /**<  IPv6 server address type  */
   1600 #define QMI_LOC_SERVER_ADDR_TYPE_URL_MASK_V02 ((qmiLocServerAddrTypeMaskT_v02)0x04) /**<  URL server address type  */
   1601 /** @addtogroup loc_qmi_aggregates
   1602     @{
   1603   */
   1604 typedef struct {
   1605 
   1606   uint32_t addr;
   1607   /**<   IPv4 address. */
   1608 
   1609   uint16_t port;
   1610   /**<   IPv4 port. */
   1611 }qmiLocIpV4AddrStructType_v02;  /* Type */
   1612 /**
   1613     @}
   1614   */
   1615 
   1616 /** @addtogroup loc_qmi_aggregates
   1617     @{
   1618   */
   1619 typedef struct {
   1620 
   1621   uint16_t addr[QMI_LOC_IPV6_ADDR_LENGTH_V02];
   1622   /**<   IPv6 address. \n
   1623        - Type: Array of unsigned integers \n
   1624        - Maximum length of the array: 8 */
   1625 
   1626   uint32_t port;
   1627   /**<   IPv6 port. */
   1628 }qmiLocIpV6AddrStructType_v02;  /* Type */
   1629 /**
   1630     @}
   1631   */
   1632 
   1633 /** @addtogroup loc_qmi_aggregates
   1634     @{
   1635   */
   1636 typedef struct {
   1637 
   1638   qmiLocServerAddrTypeMaskT_v02 suplServerAddrTypeMask;
   1639   /**<   Mask specifying the valid fields in this value.
   1640 
   1641        Valid bitmasks: \n
   1642          - 0x01 -- IPv4 \n
   1643          - 0x02 -- IPv6 \n
   1644          - 0x04 -- URL
   1645   */
   1646 
   1647   qmiLocIpV4AddrStructType_v02 ipv4Addr;
   1648   /**<   IPv4 address and port. */
   1649 
   1650   qmiLocIpV6AddrStructType_v02 ipv6Addr;
   1651   /**<   IPv6 address and port. */
   1652 
   1653   char urlAddr[QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 + 1];
   1654   /**<   URL.
   1655        \begin{itemize1}
   1656        \item    Type: NULL-terminated string
   1657        \item    Maximum string length (including NULL terminator): 256
   1658        \vspace{-0.18in} \end{itemize1}
   1659         */
   1660 }qmiLocNiSuplServerInfoStructT_v02;  /* Type */
   1661 /**
   1662     @}
   1663   */
   1664 
   1665 typedef uint32_t qmiLocNiSuplNotifyVerifyValidMaskT_v02;
   1666 #define QMI_LOC_SUPL_SERVER_INFO_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000001) /**<  Mask to denote that the server information
   1667       is present in an NI SUPL Notify/Verify request event. This mask is set in
   1668      the valid_flags field of a Notify/Verify structure.  */
   1669 #define QMI_LOC_SUPL_SESSION_ID_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000002) /**<  Mask to denote that the SUPL session ID
   1670        is present in an NI SUPL Notify/Verify request event.
   1671       This mask is set in the valid_flags field of a
   1672       Notify/Verify structure.   */
   1673 #define QMI_LOC_SUPL_HASH_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000004) /**<  Mask to denote that the SUPL hash is present
   1674        in an NI Notify/Verify request event.
   1675       This mask is set in the valid_flags field of a
   1676       Notify/Verify structure.   */
   1677 #define QMI_LOC_SUPL_POS_METHOD_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000008) /**<  Mask to denote that the position method is present
   1678        in an NI SUPL Notify/Verify request event.
   1679       This mask is set in the valid_flags field of a
   1680       Notify/Verify structure.  */
   1681 #define QMI_LOC_SUPL_DATA_CODING_SCHEME_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000010) /**<  Mask to denote that the data coding scheme
   1682        is present in an NI SUPL Notify/Verify request event.
   1683       This mask is set in the valid_flags field of a
   1684       Notify/Verify structure.  */
   1685 #define QMI_LOC_SUPL_REQUESTOR_ID_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000020) /**<  Mask to denote that the requestor ID
   1686        is present in an NI Notify/Verify request event.
   1687       This mask is set in the valid_flags field of a
   1688       Notify/Verify structure.  */
   1689 #define QMI_LOC_SUPL_CLIENT_NAME_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000040) /**<  Mask to denote that the requestor ID
   1690        is present in an NI Notify/Verify request event.
   1691        This mask is set in the valid_flags field of a
   1692        Notify/Verify structure.  */
   1693 #define QMI_LOC_SUPL_QOP_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000080) /**<  Mask to denote that the quality of position
   1694        is present in an NI Notify/Verify request event.
   1695        This mask is set in the valid_flags field of a
   1696        Notify/Verify structure.  */
   1697 #define QMI_LOC_SUPL_USER_RESP_TIMER_MASK_V02 ((qmiLocNiSuplNotifyVerifyValidMaskT_v02)0x00000100) /**<  Mask to denote that the user response timer
   1698        is present in an NI Notify/Verify request event.
   1699        This mask is set in the valid_flags field of a
   1700        Notify/Verify structure.  */
   1701 /** @addtogroup loc_qmi_aggregates
   1702     @{
   1703   */
   1704 typedef struct {
   1705 
   1706   qmiLocNiSuplNotifyVerifyValidMaskT_v02 valid_flags;
   1707   /**<   Indicates which of the following fields are present in this value.
   1708 
   1709         Valid bitmasks: \begin{itemize1}
   1710         \item    0x00000001 -- SUPL_SERVER_INFO
   1711         \item    0x00000002 -- SUPL_SESSION_ID
   1712         \item    0x00000004 -- SUPL_HASH
   1713         \item    0x00000008 -- SUPL_POS_METHOD
   1714         \item    0x00000010 -- SUPL_DATA_ CODING_SCHEME
   1715         \item    0x00000020 -- SUPL_REQUESTOR_ ID
   1716         \item    0x00000040 -- SUPL_CLIENT_ NAME
   1717         \item    0x00000080 -- SUPL_QOP
   1718         \item    0x00000100 -- SUPL_USER_RESP_ TIMER
   1719         \vspace{-0.18in} \end{itemize1}
   1720   */
   1721 
   1722   qmiLocNiSuplServerInfoStructT_v02 suplServerInfo;
   1723   /**<   SUPL server information. */
   1724 
   1725   uint8_t suplSessionId[QMI_LOC_NI_SUPL_SLP_SESSION_ID_BYTE_LENGTH_V02];
   1726   /**<   SUPL session ID. \n
   1727        - Type: Array of unsigned integers \n
   1728        - Maximum length of the array: 4 */
   1729 
   1730   uint8_t suplHash[QMI_LOC_NI_SUPL_HASH_LENGTH_V02];
   1731   /**<   Hash for SUPL_INIT; used to validate that the message was not
   1732        corrupted. \n
   1733        - Type: Array of unsigned integers \n
   1734        - Length of the array: 8 */
   1735 
   1736   qmiLocNiSuplPosMethodEnumT_v02 posMethod;
   1737   /**<   GPS mode to be used for the fix.
   1738  Valid values:
   1739 
   1740       - eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETASSISTED (1) --  Set assisted
   1741       - eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETBASED (2) --  Set based
   1742       - eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETASSISTED_PREF (3) --  Set assisted preferred
   1743       - eQMI_LOC_NI_SUPL_POSMETHOD_AGPS_SETBASED_PREF (4) --  Set based preferred
   1744       - eQMI_LOC_NI_SUPL_POSMETHOD_AUTONOMOUS_GPS (5) --  Standalone GPS
   1745       - eQMI_LOC_NI_SUPL_POSMETHOD_AFLT (6) --  Advanced forward link trilateration
   1746       - eQMI_LOC_NI_SUPL_POSMETHOD_ECID (7) --  Exclusive chip ID
   1747       - eQMI_LOC_NI_SUPL_POSMETHOD_EOTD (8) --  Enhnaced observed time difference
   1748       - eQMI_LOC_NI_SUPL_POSMETHOD_OTDOA (9) --  Observed time delay of arrival
   1749       - eQMI_LOC_NI_SUPL_POSMETHOD_NO_POSITION (10) --  No position
   1750  */
   1751 
   1752   qmiLocNiDataCodingSchemeEnumT_v02 dataCodingScheme;
   1753   /**<   Data coding scheme applies to both the requestor ID and the client
   1754  name.
   1755 
   1756  Valid values: \n
   1757       - eQMI_LOC_NI_SS_GERMAN (12) --  Language is German
   1758       - eQMI_LOC_NI_SS_ENGLISH (13) --  Language is English
   1759       - eQMI_LOC_NI_SS_ITALIAN (14) --  Language is Italian
   1760       - eQMI_LOC_NI_SS_FRENCH (15) --  Language is French
   1761       - eQMI_LOC_NI_SS_SPANISH (16) --  Language is Spanish
   1762       - eQMI_LOC_NI_SS_DUTCH (17) --  Language is Dutch
   1763       - eQMI_LOC_NI_SS_SWEDISH (18) --  Language is Swedish
   1764       - eQMI_LOC_NI_SS_DANISH (19) --  Language is Danish
   1765       - eQMI_LOC_NI_SS_PORTUGUESE (20) --  Language is Portuguese
   1766       - eQMI_LOC_NI_SS_FINNISH (21) --  Language is Finnish
   1767       - eQMI_LOC_NI_SS_NORWEGIAN (22) --  Language is Norwegian
   1768       - eQMI_LOC_NI_SS_GREEK (23) --  Language is Greek
   1769       - eQMI_LOC_NI_SS_TURKISH (24) --  Language is Turkish
   1770       - eQMI_LOC_NI_SS_HUNGARIAN (25) --  Language is Hungarian
   1771       - eQMI_LOC_NI_SS_POLISH (26) --  Language is Polish
   1772       - eQMI_LOC_NI_SS_LANGUAGE_UNSPEC (27) --  Language is unspecified
   1773       - eQMI_LOC_NI_SUPL_UTF8 (28) --  Encoding is UTF 8
   1774       - eQMI_LOC_NI_SUPL_UCS2 (29) --  Encoding is UCS 2
   1775       - eQMI_LOC_NI_SUPL_GSM_DEFAULT (30) --  Encoding is GSM default
   1776  */
   1777 
   1778   qmiLocNiSuplFormattedStringStructT_v02 requestorId;
   1779   /**<   Requestor ID. The encoding scheme for requestor_id is specified in
   1780        the dataCodingScheme field. */
   1781 
   1782   qmiLocNiSuplFormattedStringStructT_v02 clientName;
   1783   /**<   Client name. The encoding scheme for client_name is specified in
   1784        the dataCodingScheme field. */
   1785 
   1786   qmiLocNiSuplQopStructT_v02 suplQop;
   1787   /**<   SUPL QoP. */
   1788 
   1789   uint16_t userResponseTimer;
   1790   /**<   Time to wait for the user to respond. \n
   1791        - Units: Seconds*/
   1792 }qmiLocNiSuplNotifyVerifyStructT_v02;  /* Type */
   1793 /**
   1794     @}
   1795   */
   1796 
   1797 /** @addtogroup loc_qmi_enums
   1798     @{
   1799   */
   1800 typedef enum {
   1801   QMILOCNILOCATIONTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   1802   eQMI_LOC_NI_LOCATIONTYPE_CURRENT_LOCATION_V02 = 1, /**<  Current location  */
   1803   eQMI_LOC_NI_LOCATIONTYPE_CURRENT_OR_LAST_KNOWN_LOCATION_V02 = 2, /**<  Last known location; may be the current location  */
   1804   eQMI_LOC_NI_LOCATIONTYPE_INITIAL_LOCATION_V02 = 3, /**<  Initial location  */
   1805   QMILOCNILOCATIONTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   1806 }qmiLocNiLocationTypeEnumT_v02;
   1807 /**
   1808     @}
   1809   */
   1810 
   1811 /** @addtogroup loc_qmi_aggregates
   1812     @{
   1813   */
   1814 typedef struct {
   1815 
   1816   qmiLocNiDataCodingSchemeEnumT_v02 dataCodingScheme;
   1817   /**<   Identifies the coding scheme of the coded string.
   1818 
   1819  Valid values: \n
   1820       - eQMI_LOC_NI_SS_GERMAN (12) --  Language is German
   1821       - eQMI_LOC_NI_SS_ENGLISH (13) --  Language is English
   1822       - eQMI_LOC_NI_SS_ITALIAN (14) --  Language is Italian
   1823       - eQMI_LOC_NI_SS_FRENCH (15) --  Language is French
   1824       - eQMI_LOC_NI_SS_SPANISH (16) --  Language is Spanish
   1825       - eQMI_LOC_NI_SS_DUTCH (17) --  Language is Dutch
   1826       - eQMI_LOC_NI_SS_SWEDISH (18) --  Language is Swedish
   1827       - eQMI_LOC_NI_SS_DANISH (19) --  Language is Danish
   1828       - eQMI_LOC_NI_SS_PORTUGUESE (20) --  Language is Portuguese
   1829       - eQMI_LOC_NI_SS_FINNISH (21) --  Language is Finnish
   1830       - eQMI_LOC_NI_SS_NORWEGIAN (22) --  Language is Norwegian
   1831       - eQMI_LOC_NI_SS_GREEK (23) --  Language is Greek
   1832       - eQMI_LOC_NI_SS_TURKISH (24) --  Language is Turkish
   1833       - eQMI_LOC_NI_SS_HUNGARIAN (25) --  Language is Hungarian
   1834       - eQMI_LOC_NI_SS_POLISH (26) --  Language is Polish
   1835       - eQMI_LOC_NI_SS_LANGUAGE_UNSPEC (27) --  Language is unspecified
   1836       - eQMI_LOC_NI_SUPL_UTF8 (28) --  Encoding is UTF 8
   1837       - eQMI_LOC_NI_SUPL_UCS2 (29) --  Encoding is UCS 2
   1838       - eQMI_LOC_NI_SUPL_GSM_DEFAULT (30) --  Encoding is GSM default
   1839  */
   1840 
   1841   uint32_t codedString_len;  /**< Must be set to # of elements in codedString */
   1842   uint8_t codedString[QMI_LOC_NI_CODEWORD_MAX_LENGTH_V02];
   1843   /**<   Coded string. \n
   1844        - Type: Array of bytes \n
   1845        - Maximum string length: 20 */
   1846 }qmiLocNiUmtsCpCodedStringStructT_v02;  /* Type */
   1847 /**
   1848     @}
   1849   */
   1850 
   1851 typedef uint16_t qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02;
   1852 #define QMI_LOC_UMTS_CP_INVOKE_ID_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0001) /**<  Mask to denote that the invoke ID
   1853        is present in an NI Notify/Verify request event.
   1854       This mask is set in the valid flags field of a
   1855        Notify/Verify structure.  */
   1856 #define QMI_LOC_UMTS_CP_DATA_CODING_SCHEME_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0002) /**<  Mask to denote that the data coding scheme
   1857        is present in an NI Notify/Verify request event.
   1858        This mask is set in the valid flags field of a
   1859        Notify/Verify structure.  */
   1860 #define QMI_LOC_UMTS_CP_NOTIFICATION_TEXT_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0004) /**<  Mask to denote that the notification text
   1861        is present in an NI Notify/Verify request event.
   1862       This mask is set in the valid flags field of a
   1863        Notify/Verify structure.  */
   1864 #define QMI_LOC_UMTS_CP_CLIENT_ADDRESS_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0008) /**<  Mask to denote that the client address
   1865        is present in an NI Notify/Verify request event.
   1866       This mask is set in the valid flags field of a
   1867        Notify/Verify structure.  */
   1868 #define QMI_LOC_UMTS_CP_LOCATION_TYPE_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0010) /**<  Mask to denote that the location type
   1869        is present in an NI Notify/Verify request event.
   1870        This mask is set in the valid flags field of a
   1871        Notify/Verify structure.  */
   1872 #define QMI_LOC_UMTS_CP_REQUESTOR_ID_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0020) /**<  Mask to denote that the requestor ID
   1873        is present in an NI Notify/Verify request event.
   1874        This mask is set in the valid flags field of a
   1875        Notify/Verify structure.  */
   1876 #define QMI_LOC_UMTS_CP_CODEWORD_STRING_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0040) /**<  Mask to denote that the code word string
   1877        is present in an NI Notify/Verify request event.
   1878        This mask is set in the valid flags field of a
   1879        Notify/Verify structure.  */
   1880 #define QMI_LOC_UMTS_CP_SERVICE_TYPE_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0080) /**<  Mask to denote that the service type
   1881        is present in an NI Notify/Verify request event.
   1882        This mask is set in the valid flags field of a
   1883        Notify/Verify structure.  */
   1884 #define QMI_LOC_UMTS_CP_USER_RESP_TIMER_MASK_V02 ((qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02)0x0100) /**<  Mask to denote that the user response timer
   1885        is present in an NI Notify/Verify request event.
   1886        This mask is set in the valid flags field of a
   1887        Notify/Verify structure.  */
   1888 /** @addtogroup loc_qmi_aggregates
   1889     @{
   1890   */
   1891 typedef struct {
   1892 
   1893   qmiLocNiUmtsCpNotifyVerifyValidMaskT_v02 valid_flags;
   1894   /**<   Fields that are valid in this value.
   1895 
   1896        Valid bitmasks: \begin{itemize1}
   1897        \item    0x0001 -- INVOKE_ID_MASK
   1898        \item    0x0002 -- DATA_CODING_ SCHEME_MASK
   1899        \item    0x0004 -- NOTIFICATION_TEXT_ MASK
   1900        \item    0x0008 -- CLIENT_ADDRESS_ MASK
   1901        \item    0x0010 -- LOCATION_TYPE_ MASK
   1902        \item    0x0020 -- REQUESTOR_ID_MASK
   1903        \item    0x0040 -- CODEWORD_STRING_ MASK
   1904        \item    0x0080 -- SERVICE_TYPE_MASK
   1905        \item    0x0100 -- USER_RESP_TIMER_ MASK
   1906        \vspace{-0.18in} \end{itemize1}
   1907   */
   1908 
   1909   uint8_t invokeId;
   1910   /**<   Supplementary Services invoke ID. */
   1911 
   1912   qmiLocNiDataCodingSchemeEnumT_v02 dataCodingScheme;
   1913   /**<   Type of data encoding scheme for the text.
   1914  Applies to both the notification text and the client address.
   1915 
   1916  Valid values: \n
   1917       - eQMI_LOC_NI_SS_GERMAN (12) --  Language is German
   1918       - eQMI_LOC_NI_SS_ENGLISH (13) --  Language is English
   1919       - eQMI_LOC_NI_SS_ITALIAN (14) --  Language is Italian
   1920       - eQMI_LOC_NI_SS_FRENCH (15) --  Language is French
   1921       - eQMI_LOC_NI_SS_SPANISH (16) --  Language is Spanish
   1922       - eQMI_LOC_NI_SS_DUTCH (17) --  Language is Dutch
   1923       - eQMI_LOC_NI_SS_SWEDISH (18) --  Language is Swedish
   1924       - eQMI_LOC_NI_SS_DANISH (19) --  Language is Danish
   1925       - eQMI_LOC_NI_SS_PORTUGUESE (20) --  Language is Portuguese
   1926       - eQMI_LOC_NI_SS_FINNISH (21) --  Language is Finnish
   1927       - eQMI_LOC_NI_SS_NORWEGIAN (22) --  Language is Norwegian
   1928       - eQMI_LOC_NI_SS_GREEK (23) --  Language is Greek
   1929       - eQMI_LOC_NI_SS_TURKISH (24) --  Language is Turkish
   1930       - eQMI_LOC_NI_SS_HUNGARIAN (25) --  Language is Hungarian
   1931       - eQMI_LOC_NI_SS_POLISH (26) --  Language is Polish
   1932       - eQMI_LOC_NI_SS_LANGUAGE_UNSPEC (27) --  Language is unspecified
   1933       - eQMI_LOC_NI_SUPL_UTF8 (28) --  Encoding is UTF 8
   1934       - eQMI_LOC_NI_SUPL_UCS2 (29) --  Encoding is UCS 2
   1935       - eQMI_LOC_NI_SUPL_GSM_DEFAULT (30) --  Encoding is GSM default
   1936  */
   1937 
   1938   uint32_t notificationText_len;  /**< Must be set to # of elements in notificationText */
   1939   uint8_t notificationText[QMI_LOC_NI_MAX_CLIENT_NAME_LENGTH_V02];
   1940   /**<   Notification text; the encoding method is specified in
   1941        dataCodingScheme. \n
   1942        - Type: Array of bytes \n
   1943        - Maximum array length: 64 */
   1944 
   1945   uint32_t clientAddress_len;  /**< Must be set to # of elements in clientAddress */
   1946   uint8_t clientAddress[QMI_LOC_NI_MAX_EXT_CLIENT_ADDRESS_V02];
   1947   /**<   Client address; the encoding method is specified in
   1948        dataCodingScheme. \n
   1949        - Maximum array length: 20 */
   1950 
   1951   qmiLocNiLocationTypeEnumT_v02 locationType;
   1952   /**<   Location type.
   1953 
   1954  Valid values: \n
   1955       - eQMI_LOC_NI_LOCATIONTYPE_CURRENT_LOCATION (1) --  Current location
   1956       - eQMI_LOC_NI_LOCATIONTYPE_CURRENT_OR_LAST_KNOWN_LOCATION (2) --  Last known location; may be the current location
   1957       - eQMI_LOC_NI_LOCATIONTYPE_INITIAL_LOCATION (3) --  Initial location
   1958  */
   1959 
   1960   qmiLocNiUmtsCpCodedStringStructT_v02 requestorId;
   1961   /**<   Requestor ID; the encoding method is specified in the
   1962        qmiLocNiUmtsCpCodedStringStructT.dataCodingScheme field. */
   1963 
   1964   qmiLocNiUmtsCpCodedStringStructT_v02 codewordString;
   1965   /**<   Codeword string; the encoding method is specified in the
   1966        qmiLocNiUmtsCpCodedStringStructT.dataCodingScheme field. */
   1967 
   1968   uint8_t lcsServiceTypeId;
   1969   /**<   Service type ID. */
   1970 
   1971   uint16_t userResponseTimer;
   1972   /**<   Time to wait for the user to respond. \n
   1973        - Units: Seconds */
   1974 }qmiLocNiUmtsCpNotifyVerifyStructT_v02;  /* Type */
   1975 /**
   1976     @}
   1977   */
   1978 
   1979 /** @addtogroup loc_qmi_enums
   1980     @{
   1981   */
   1982 typedef enum {
   1983   QMILOCNISERVICEINTERACTIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   1984   eQMI_LOC_NI_SERVICE_INTERACTION_ONGOING_NI_INCOMING_MO_V02 = 1, /**<  Service interaction between ongoing NI and incoming MO sessions.  */
   1985   QMILOCNISERVICEINTERACTIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   1986 }qmiLocNiServiceInteractionEnumT_v02;
   1987 /**
   1988     @}
   1989   */
   1990 
   1991 /** @addtogroup loc_qmi_aggregates
   1992     @{
   1993   */
   1994 typedef struct {
   1995 
   1996   qmiLocNiVxNotifyVerifyStructT_v02 niVxReq;
   1997   /**<   Ongoing NI session request; this information is currently not filled. */
   1998 
   1999   qmiLocNiServiceInteractionEnumT_v02 serviceInteractionType;
   2000   /**<   Service interaction type specified in qmiLocNiServiceInteractionEnumT.
   2001 
   2002  Valid values: \n
   2003       - eQMI_LOC_NI_SERVICE_INTERACTION_ONGOING_NI_INCOMING_MO (1) --  Service interaction between ongoing NI and incoming MO sessions.
   2004  */
   2005 }qmiLocNiVxServiceInteractionStructT_v02;  /* Type */
   2006 /**
   2007     @}
   2008   */
   2009 
   2010 typedef uint16_t qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02;
   2011 #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
   2012        and multiple location IDs in the SUPL_POS_INIT message.  */
   2013 #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
   2014        and multiple location ID in the SUPL_POS_INIT message.  */
   2015 #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
   2016        and multiple location ID in the SUPL_POS_INIT message.  */
   2017 #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
   2018        and multiple location ID in the SUPL_POS_INIT message.  */
   2019 #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
   2020        and multiple location ID in the SUPL_POS_INIT message.  */
   2021 #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
   2022        and multiple location ID in the SUPL_POS_INIT message.  */
   2023 #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
   2024        and multiple location ID in the SUPL_POS_INIT message.  */
   2025 #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
   2026        and multiple location ID in the SUPL_POS_INIT message.  */
   2027 #define QMI_LOC_SUPL_VER_2_EXT_MASK_SUPPORTED_NETWORK_HISTORIC_V02 ((qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02)0x0100) /**<  Denotes that historical information is allowed as part of
   2028        multiple location ID in the SUPL_POS_INIT message.  */
   2029 #define QMI_LOC_SUPL_VER_2_EXT_MASK_SUPPORTED_NETWORK_NONSVRV_V02 ((qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02)0x0200) /**<  Denotes that information about nonserving cells is allowed
   2030        as part of multiple location ID in the SUPL_POS_INIT message.  */
   2031 /** @addtogroup loc_qmi_enums
   2032     @{
   2033   */
   2034 typedef enum {
   2035   QMILOCNISUPLVER2EXTTRIGGERTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   2036   eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_SINGLE_SHOT_V02 = -1, /**<  SUPL INIT message indicates a request for a single shot
   2037        triggered session  */
   2038   eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_PERIODIC_V02 = 0, /**<  SUPL INIT message indicates a request for a periodic
   2039        triggered session  */
   2040   eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_AREA_EVENT_V02 = 1, /**<  SUPL INIT message indicates a request for an area event
   2041        triggered session  */
   2042   QMILOCNISUPLVER2EXTTRIGGERTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   2043 }qmiLocNiSuplVer2ExtTriggerTypeEnumT_v02;
   2044 /**
   2045     @}
   2046   */
   2047 
   2048 typedef uint16_t qmiLocNiSuplVer2ExtGnssTypeMaskT_v02;
   2049 #define QMI_LOC_SUPL_VER_2_EXT_MASK_GNSS_GPS_V02 ((qmiLocNiSuplVer2ExtGnssTypeMaskT_v02)0x0001) /**<  GPS is allowed to be used as the positioning technology  */
   2050 #define QMI_LOC_SUPL_VER_2_EXT_MASK_GNSS_GLONASS_V02 ((qmiLocNiSuplVer2ExtGnssTypeMaskT_v02)0x0002) /**<  GLONASS is allowed to be used as the positioning technology  */
   2051 #define QMI_LOC_SUPL_VER_2_EXT_MASK_GNSS_GALILEO_V02 ((qmiLocNiSuplVer2ExtGnssTypeMaskT_v02)0x0004) /**<  Galileo is allowed to be used as the positioning technology  */
   2052 #define QMI_LOC_SUPL_VER_2_EXT_MASK_GNSS_SBAS_V02 ((qmiLocNiSuplVer2ExtGnssTypeMaskT_v02)0x0008) /**<  SBAS is allowed to be used as the positioning technology  */
   2053 #define QMI_LOC_SUPL_VER_2_EXT_MASK_GNSS_QZSS_V02 ((qmiLocNiSuplVer2ExtGnssTypeMaskT_v02)0x0010) /**<  QZSS is allowed to be used as the positioning technology  */
   2054 #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  */
   2055 /** @addtogroup loc_qmi_aggregates
   2056     @{
   2057   */
   2058 typedef struct {
   2059 
   2060   qmiLocNiSuplVer2ExtSupportedNetworksMaskT_v02 supportedNetworksMask;
   2061   /**<   Specifies which type of network measurements are allowed to be sent as
   2062        part of the Location ID or Multiple Location IDs parameter in the
   2063        SUPL_POS_INIT message (see \hyperref[S4]{[S4]}).
   2064 
   2065        Valid bitmasks: \begin{itemize1}
   2066        \item    0x0001 -- SUPPORTED_NETWORK_ WLAN
   2067        \item    0x0002 -- SUPPORTED_NETWORK_ GSM
   2068        \item    0x0004 -- SUPPORTED_NETWORK_ WCDMA
   2069        \item    0x0008 -- SUPPORTED_NETWORK_ CDMA
   2070        \item    0x0010 -- SUPPORTED_NETWORK_ HRDP
   2071        \item    0x0020 -- SUPPORTED_NETWORK_ UMB
   2072        \item    0x0040 -- SUPPORTED_NETWORK_ LTE
   2073        \item    0x0080 -- SUPPORTED_NETWORK_ WIMAX
   2074        \item    0x0100 -- SUPPORTED_NETWORK_ HISTORIC
   2075        \item    0x0200 -- SUPPORTED_NETWORK_ NONSVRV
   2076        \vspace{-0.18in} \end{itemize1}
   2077    */
   2078 
   2079   qmiLocNiSuplVer2ExtTriggerTypeEnumT_v02 triggerType;
   2080   /**<   Specifies the type of session trigger requested in the
   2081  SUPL_POS_INIT message (refer to \hyperref[S4]{[S4]}).
   2082 
   2083  Valid values: \n
   2084       - eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_SINGLE_SHOT (-1) --  SUPL INIT message indicates a request for a single shot
   2085        triggered session
   2086       - eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_PERIODIC (0) --  SUPL INIT message indicates a request for a periodic
   2087        triggered session
   2088       - eQMI_LOC_SUPL_VER_2_EXT_TRIGGER_TYPE_AREA_EVENT (1) --  SUPL INIT message indicates a request for an area event
   2089        triggered session
   2090  */
   2091 
   2092   qmiLocNiSuplVer2ExtGnssTypeMaskT_v02 gnssType;
   2093   /**<   Specifies which GNSS technologies are allowed as positioning
   2094        technologies.
   2095 
   2096        Valid bitmasks: \n
   2097         - 0x0001 -- GNSS_GPS \n
   2098         - 0x0002 -- GNSS_GLONASS \n
   2099         - 0x0004 -- GNSS_GALILEO \n
   2100         - 0x0008 -- GNSS_SBAS \n
   2101         - 0x0010 -- GNSS_QZSS \n
   2102         - 0x0020 -- GNSS_MODERN_GPS
   2103   */
   2104 }qmiLocNiSuplVer2ExtStructT_v02;  /* Type */
   2105 /**
   2106     @}
   2107   */
   2108 
   2109 /** @addtogroup loc_qmi_aggregates
   2110     @{
   2111   */
   2112 typedef struct {
   2113 
   2114   char eslpUrl[QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 + 1];
   2115   /**<   ESLP URL. \n
   2116        Maximum length: 255 bytes */
   2117 }qmiLocEmergencyNotificationStructT_v02;  /* Type */
   2118 /**
   2119     @}
   2120   */
   2121 
   2122 /** @addtogroup loc_qmi_messages
   2123     @{
   2124   */
   2125 /** Indication Message; Indicates an NI Notify/Verify request to the control point. */
   2126 typedef struct {
   2127 
   2128   /* Mandatory */
   2129   /*  Notification Type */
   2130   qmiLocNiNotifyVerifyEnumT_v02 notificationType;
   2131   /**<   Type of notification/verification performed.
   2132 
   2133  Valid values: \n
   2134       - eQMI_LOC_NI_USER_NO_NOTIFY_NO_VERIFY (1) --  No notification and no verification required
   2135       - eQMI_LOC_NI_USER_NOTIFY_ONLY (2) --  Notify only; no verification required
   2136       - eQMI_LOC_NI_USER_NOTIFY_VERIFY_ALLOW_NO_RESP (3) --  Notify and verify, but no response required.
   2137       - eQMI_LOC_NI_USER_NOTIFY_VERIFY_NOT_ALLOW_NO_RESP (4) --  Notify and verify, and require a response
   2138       - eQMI_LOC_NI_USER_NOTIFY_VERIFY_PRIVACY_OVERRIDE (5) --  Notify and verify; privacy override
   2139  */
   2140 
   2141   /* Optional */
   2142   /*  Network Initiated Vx Request */
   2143   uint8_t NiVxInd_valid;  /**< Must be set to true if NiVxInd is being passed */
   2144   qmiLocNiVxNotifyVerifyStructT_v02 NiVxInd;
   2145   /**<   \vspace{0.06in} \n Optional NI Vx request payload. */
   2146 
   2147   /* Optional */
   2148   /*  Network Initiated SUPL Request */
   2149   uint8_t NiSuplInd_valid;  /**< Must be set to true if NiSuplInd is being passed */
   2150   qmiLocNiSuplNotifyVerifyStructT_v02 NiSuplInd;
   2151   /**<   \vspace{0.06in} \n Optional NI SUPL request payload. */
   2152 
   2153   /* Optional */
   2154   /*  Network Initiated UMTS Control Plane Request */
   2155   uint8_t NiUmtsCpInd_valid;  /**< Must be set to true if NiUmtsCpInd is being passed */
   2156   qmiLocNiUmtsCpNotifyVerifyStructT_v02 NiUmtsCpInd;
   2157   /**<   \vspace{0.06in} \n Optional NI UMTS-CP request payload. */
   2158 
   2159   /* Optional */
   2160   /*  Network Initiated Service Interaction Request */
   2161   uint8_t NiVxServiceInteractionInd_valid;  /**< Must be set to true if NiVxServiceInteractionInd is being passed */
   2162   qmiLocNiVxServiceInteractionStructT_v02 NiVxServiceInteractionInd;
   2163   /**<   \vspace{0.06in} \n Optional NI service interaction payload. */
   2164 
   2165   /* Optional */
   2166   /*  Network Initiated SUPL Version 2 Extension */
   2167   uint8_t NiSuplVer2ExtInd_valid;  /**< Must be set to true if NiSuplVer2ExtInd is being passed */
   2168   qmiLocNiSuplVer2ExtStructT_v02 NiSuplVer2ExtInd;
   2169   /**<   \vspace{0.06in} \n Optional NI SUPL Version 2 Extension payload. When present,
   2170           this payload is to be used in conjunction with the SUPL
   2171           indication payload. */
   2172 
   2173   /* Optional */
   2174   /*  SUPL Emergency Notification */
   2175   uint8_t suplEmergencyNotification_valid;  /**< Must be set to true if suplEmergencyNotification is being passed */
   2176   qmiLocEmergencyNotificationStructT_v02 suplEmergencyNotification;
   2177   /**<   \vspace{0.06in} \n This specifies that the corresponding NI notification is an
   2178         emergency notification. Emergency notification
   2179         can be given even without an Emergency SUPL Location Platform (ESLP)
   2180         address. */
   2181 }qmiLocEventNiNotifyVerifyReqIndMsgT_v02;  /* Message */
   2182 /**
   2183     @}
   2184   */
   2185 
   2186 /** @addtogroup loc_qmi_aggregates
   2187     @{
   2188   */
   2189 typedef struct {
   2190 
   2191   char serverUrl[QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 + 1];
   2192   /**<   Assistance server URL.
   2193        \begin{itemize1}
   2194        \item    Type: NULL-terminated string
   2195        \item    Maximum string length (including NULL terminator): 256
   2196        \vspace{-0.18in} \end{itemize1} */
   2197 }qmiLocAssistanceServerUrlStructT_v02;  /* Type */
   2198 /**
   2199     @}
   2200   */
   2201 
   2202 /** @addtogroup loc_qmi_aggregates
   2203     @{
   2204   */
   2205 typedef struct {
   2206 
   2207   uint32_t delayThreshold;
   2208   /**<   The time server is to be skipped if a one-way delay to the server
   2209        exceeds this threshold. \n
   2210        - Units: Milliseconds */
   2211 
   2212   uint32_t timeServerList_len;  /**< Must be set to # of elements in timeServerList */
   2213   qmiLocAssistanceServerUrlStructT_v02 timeServerList[QMI_LOC_MAX_NTP_SERVERS_V02];
   2214   /**<   List of Time Server URL's that are recommended by the service for time
   2215        information, the list is ordered, the client is to use the first
   2216        server specified in the list as the primary URL to fetch NTP time,
   2217        the second one as secondary, and so on. \n
   2218        - Maximum server list items: 3 */
   2219 }qmiLocTimeServerListStructT_v02;  /* Type */
   2220 /**
   2221     @}
   2222   */
   2223 
   2224 /** @addtogroup loc_qmi_messages
   2225     @{
   2226   */
   2227 /** Indication Message; Requests the control point to inject time information. */
   2228 typedef struct {
   2229 
   2230   /* Optional */
   2231   /*  Time Server Info */
   2232   uint8_t timeServerInfo_valid;  /**< Must be set to true if timeServerInfo is being passed */
   2233   qmiLocTimeServerListStructT_v02 timeServerInfo;
   2234   /**<   \vspace{0.06in} \n Contains information about the time servers recommended by the
   2235        location service for NTP time. */
   2236 }qmiLocEventInjectTimeReqIndMsgT_v02;  /* Message */
   2237 /**
   2238     @}
   2239   */
   2240 
   2241 /** @addtogroup loc_qmi_aggregates
   2242     @{
   2243   */
   2244 typedef struct {
   2245 
   2246   uint32_t maxFileSizeInBytes;
   2247   /**<   Maximum allowable predicted orbits file size (in bytes). */
   2248 
   2249   uint32_t maxPartSize;
   2250   /**<   Maximum allowable predicted orbits file chunk size (in bytes). */
   2251 }qmiLocPredictedOrbitsAllowedSizesStructT_v02;  /* Type */
   2252 /**
   2253     @}
   2254   */
   2255 
   2256 /** @addtogroup loc_qmi_aggregates
   2257     @{
   2258   */
   2259 typedef struct {
   2260 
   2261   uint32_t serverList_len;  /**< Must be set to # of elements in serverList */
   2262   qmiLocAssistanceServerUrlStructT_v02 serverList[QMI_LOC_MAX_PREDICTED_ORBITS_SERVERS_V02];
   2263   /**<   List of predicted orbits URLs. The list is ordered, so the client
   2264        must use the first server specified in the list as the primary URL
   2265        from which to download predicted orbits data, the second one as
   2266        secondary, and so on. \n
   2267        - Maximum number of servers that can be specified: 3 */
   2268 }qmiLocPredictedOrbitsServerListStructT_v02;  /* Type */
   2269 /**
   2270     @}
   2271   */
   2272 
   2273 /** @addtogroup loc_qmi_messages
   2274     @{
   2275   */
   2276 /** Indication Message; Requests the control point to inject predicted orbits data. */
   2277 typedef struct {
   2278 
   2279   /* Mandatory */
   2280   /*  Allowed Sizes */
   2281   qmiLocPredictedOrbitsAllowedSizesStructT_v02 allowedSizes;
   2282   /**<   \vspace{0.06in} \n Maximum part and file size allowed to be injected in the engine. */
   2283 
   2284   /* Optional */
   2285   /*  Server List */
   2286   uint8_t serverList_valid;  /**< Must be set to true if serverList is being passed */
   2287   qmiLocPredictedOrbitsServerListStructT_v02 serverList;
   2288   /**<   \vspace{0.06in} \n List of servers that can be used by the client to download
   2289        predicted orbits data. */
   2290 }qmiLocEventInjectPredictedOrbitsReqIndMsgT_v02;  /* Message */
   2291 /**
   2292     @}
   2293   */
   2294 
   2295 /** @addtogroup loc_qmi_messages
   2296     @{
   2297   */
   2298 /** Indication Message; Requests the control point to inject a position. */
   2299 typedef struct {
   2300 
   2301   /* Mandatory */
   2302   /*  Latitude */
   2303   double latitude;
   2304   /**<   Latitude (specified in WGS84 datum).
   2305        \begin{itemize1}
   2306        \item    Type: Floating point
   2307        \item    Units: Degrees
   2308        \item    Range: -90.0 to 90.0      \begin{itemize1}
   2309          \item    Positive values indicate northern latitude
   2310          \item    Negative values indicate southern latitude
   2311        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
   2312 
   2313   /* Mandatory */
   2314   /*  Longitude */
   2315   double longitude;
   2316   /**<   Longitude (specified in WGS84 datum).
   2317        \begin{itemize1}
   2318        \item    Type: Floating point
   2319        \item    Units: Degrees
   2320        \item    Range: -180.0 to 180.0     \begin{itemize1}
   2321          \item    Positive values indicate eastern longitude
   2322          \item    Negative values indicate western longitude
   2323        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
   2324 
   2325   /* Mandatory */
   2326   /*  Circular Horizontal Uncertainty */
   2327   float horUncCircular;
   2328   /**<   Horizontal position uncertainty (circular).\n
   2329        - Units: Meters */
   2330 
   2331   /* Mandatory */
   2332   /*  UTC Timestamp */
   2333   uint64_t timestampUtc;
   2334   /**<   UTC timestamp.
   2335        \begin{itemize1}
   2336        \item    Units: Milliseconds since Jan. 1, 1970
   2337        \vspace{-0.18in} \end{itemize1} */
   2338 }qmiLocEventInjectPositionReqIndMsgT_v02;  /* Message */
   2339 /**
   2340     @}
   2341   */
   2342 
   2343 /** @addtogroup loc_qmi_enums
   2344     @{
   2345   */
   2346 typedef enum {
   2347   QMILOCENGINESTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   2348   eQMI_LOC_ENGINE_STATE_ON_V02 = 1, /**<  Location engine is on  */
   2349   eQMI_LOC_ENGINE_STATE_OFF_V02 = 2, /**<  Location engine is off  */
   2350   QMILOCENGINESTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   2351 }qmiLocEngineStateEnumT_v02;
   2352 /**
   2353     @}
   2354   */
   2355 
   2356 /** @addtogroup loc_qmi_messages
   2357     @{
   2358   */
   2359 /** Indication Message; Sends the engine state to the control point. */
   2360 typedef struct {
   2361 
   2362   /* Mandatory */
   2363   /*  Engine State */
   2364   qmiLocEngineStateEnumT_v02 engineState;
   2365   /**<   Location engine state.
   2366 
   2367  Valid values: \n
   2368       - eQMI_LOC_ENGINE_STATE_ON (1) --  Location engine is on
   2369       - eQMI_LOC_ENGINE_STATE_OFF (2) --  Location engine is off
   2370  */
   2371 }qmiLocEventEngineStateIndMsgT_v02;  /* Message */
   2372 /**
   2373     @}
   2374   */
   2375 
   2376 /** @addtogroup loc_qmi_enums
   2377     @{
   2378   */
   2379 typedef enum {
   2380   QMILOCFIXSESSIONSTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   2381   eQMI_LOC_FIX_SESSION_STARTED_V02 = 1, /**<  Location fix session has started  */
   2382   eQMI_LOC_FIX_SESSION_FINISHED_V02 = 2, /**<  Location fix session has ended  */
   2383   QMILOCFIXSESSIONSTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   2384 }qmiLocFixSessionStateEnumT_v02;
   2385 /**
   2386     @}
   2387   */
   2388 
   2389 /** @addtogroup loc_qmi_messages
   2390     @{
   2391   */
   2392 /** Indication Message; Sends the fix session state to the control point. */
   2393 typedef struct {
   2394 
   2395   /* Mandatory */
   2396   /*  Session State */
   2397   qmiLocFixSessionStateEnumT_v02 sessionState;
   2398   /**<   LOC fix session state.
   2399 
   2400  Valid values: \n
   2401       - eQMI_LOC_FIX_SESSION_STARTED (1) --  Location fix session has started
   2402       - eQMI_LOC_FIX_SESSION_FINISHED (2) --  Location fix session has ended
   2403  */
   2404 
   2405   /* Optional */
   2406   /*  Session ID */
   2407   uint8_t sessionId_valid;  /**< Must be set to true if sessionId is being passed */
   2408   uint8_t sessionId;
   2409   /**<   ID of the session that was specified in the Start request.
   2410     This may not be specified for a fix session corresponding to
   2411     a network-initiated request. \n
   2412     - Range: 0 to 255 */
   2413 }qmiLocEventFixSessionStateIndMsgT_v02;  /* Message */
   2414 /**
   2415     @}
   2416   */
   2417 
   2418 /** @addtogroup loc_qmi_enums
   2419     @{
   2420   */
   2421 typedef enum {
   2422   QMILOCWIFIREQUESTENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   2423   eQMI_LOC_WIFI_START_PERIODIC_HI_FREQ_FIXES_V02 = 0, /**<  Start periodic fixes with high frequency  */
   2424   eQMI_LOC_WIFI_START_PERIODIC_KEEP_WARM_V02 = 1, /**<  Keep warm for low frequency fixes without data downloads  */
   2425   eQMI_LOC_WIFI_STOP_PERIODIC_FIXES_V02 = 2, /**<  Stop periodic fixes request  */
   2426   QMILOCWIFIREQUESTENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   2427 }qmiLocWifiRequestEnumT_v02;
   2428 /**
   2429     @}
   2430   */
   2431 
   2432 /** @addtogroup loc_qmi_messages
   2433     @{
   2434   */
   2435 /** Indication Message; Sends a Wi-Fi request to the control point. */
   2436 typedef struct {
   2437 
   2438   /* Mandatory */
   2439   /*  Request Type */
   2440   qmiLocWifiRequestEnumT_v02 requestType;
   2441   /**<   Request type.
   2442 
   2443  Valid values: \n
   2444       - eQMI_LOC_WIFI_START_PERIODIC_HI_FREQ_FIXES (0) --  Start periodic fixes with high frequency
   2445       - eQMI_LOC_WIFI_START_PERIODIC_KEEP_WARM (1) --  Keep warm for low frequency fixes without data downloads
   2446       - eQMI_LOC_WIFI_STOP_PERIODIC_FIXES (2) --  Stop periodic fixes request
   2447  */
   2448 
   2449   /* Optional */
   2450   /*  Time Between Fixes */
   2451   uint8_t tbfInMs_valid;  /**< Must be set to true if tbfInMs is being passed */
   2452   uint16_t tbfInMs;
   2453   /**<   Time between fixes for a periodic request.\n
   2454         - Units: Milliseconds */
   2455 }qmiLocEventWifiReqIndMsgT_v02;  /* Message */
   2456 /**
   2457     @}
   2458   */
   2459 
   2460 /** @addtogroup loc_qmi_aggregates
   2461     @{
   2462   */
   2463 typedef struct {
   2464 
   2465   uint16_t samplesPerBatch;
   2466   /**<   Specifies the number of samples per batch the GNSS location engine is to
   2467        receive. The sensor sampling frequency can be computed as follows: \vspace{-0.06in} \n
   2468 
   2469        samplingFrequency = samplesPerBatch * batchesPerSecond  \vspace{-0.06in} \n
   2470 
   2471        samplesPerBatch must be a nonzero positive value.
   2472   */
   2473 
   2474   uint16_t batchesPerSecond;
   2475   /**<   Number of sensor-data batches the GNSS location engine is to receive
   2476        per second. The rate is specified in an integral number of batches per
   2477        second (Hz).  \vspace{-0.06in} \n
   2478 
   2479        batchesPerSecond must be a nonzero positive value.
   2480   */
   2481 }qmiLocSensorControlConfigSamplingSpecStructT_v02;  /* Type */
   2482 /**
   2483     @}
   2484   */
   2485 
   2486 /** @addtogroup loc_qmi_aggregates
   2487     @{
   2488   */
   2489 typedef struct {
   2490 
   2491   uint8_t injectEnable;
   2492   /**<   Indicates whether the GNSS location engine is ready to accept data from this
   2493        sensor.
   2494 
   2495        Valid values: \begin{itemize1}
   2496        \item    0x01 (TRUE)  -- GNSS location engine is ready to accept sensor
   2497                                 data
   2498        \item    0x00 (FALSE) -- GNSS location engine is not ready to accept
   2499                                 sensor data
   2500         \vspace{-0.18in} \end{itemize1}
   2501   */
   2502 
   2503   qmiLocSensorControlConfigSamplingSpecStructT_v02 dataFrequency;
   2504   /**<   Rate at which the GNSS engine would like the sensor to be sampled. \n
   2505        The rate is specified in integral number of samples per second (Hz)\n
   2506        and batches per second.
   2507   */
   2508 }qmiLocSensorReadyStatusStructT_v02;  /* Type */
   2509 /**
   2510     @}
   2511   */
   2512 
   2513 /** @addtogroup loc_qmi_messages
   2514     @{
   2515   */
   2516 /** Indication Message; Notifies the control point if the GNSS location engine is
   2517                     ready to accept sensor data. */
   2518 typedef struct {
   2519 
   2520   /* Optional */
   2521   /*  Accelerometer Accept Ready */
   2522   uint8_t accelReady_valid;  /**< Must be set to true if accelReady is being passed */
   2523   qmiLocSensorReadyStatusStructT_v02 accelReady;
   2524   /**<   \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
   2525          to accept accelerometer sensor data.
   2526    */
   2527 
   2528   /* Optional */
   2529   /*  Gyroscope Accept Ready */
   2530   uint8_t gyroReady_valid;  /**< Must be set to true if gyroReady is being passed */
   2531   qmiLocSensorReadyStatusStructT_v02 gyroReady;
   2532   /**<   \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
   2533          to accept gyroscope sensor data.
   2534    */
   2535 
   2536   /* Optional */
   2537   /*  Accelerometer Temperature Accept Ready */
   2538   uint8_t accelTemperatureReady_valid;  /**< Must be set to true if accelTemperatureReady is being passed */
   2539   qmiLocSensorReadyStatusStructT_v02 accelTemperatureReady;
   2540   /**<   \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
   2541         to accept accelerometer temperature data.
   2542    */
   2543 
   2544   /* Optional */
   2545   /*  Gyroscope Temperature Accept Ready */
   2546   uint8_t gyroTemperatureReady_valid;  /**< Must be set to true if gyroTemperatureReady is being passed */
   2547   qmiLocSensorReadyStatusStructT_v02 gyroTemperatureReady;
   2548   /**<   \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
   2549          to accept gyroscope temperature data.
   2550    */
   2551 
   2552   /* Optional */
   2553   /*  Calibrated Magnetometer Accept Ready */
   2554   uint8_t calibratedMagReady_valid;  /**< Must be set to true if calibratedMagReady is being passed */
   2555   qmiLocSensorReadyStatusStructT_v02 calibratedMagReady;
   2556   /**<   \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
   2557          to accept calibrated magnetometer data.
   2558    */
   2559 
   2560   /* Optional */
   2561   /*  Uncalibrated Magnetometer Accept Ready */
   2562   uint8_t uncalibratedMagReady_valid;  /**< Must be set to true if uncalibratedMagReady is being passed */
   2563   qmiLocSensorReadyStatusStructT_v02 uncalibratedMagReady;
   2564   /**<   \vspace{0.06in} \n Indicates whether the GNSS location engine is ready
   2565          to accept uncalibrated magnetometer data.
   2566    */
   2567 }qmiLocEventSensorStreamingReadyStatusIndMsgT_v02;  /* Message */
   2568 /**
   2569     @}
   2570   */
   2571 
   2572 /** @addtogroup loc_qmi_messages
   2573     @{
   2574   */
   2575 /** Indication Message; Notifies the control point to inject time synchronization
   2576                     data. */
   2577 typedef struct {
   2578 
   2579   /* Mandatory */
   2580   /*  Opaque Time Sync Reference Counter */
   2581   uint32_t refCounter;
   2582   /**<   This TLV is sent to registered control points. It is sent by
   2583         the location engine when it needs to synchronize location engine and
   2584         control point (sensor processor) times.
   2585         This TLV must be echoed back in the Time Sync Inject request. */
   2586 }qmiLocEventTimeSyncReqIndMsgT_v02;  /* Message */
   2587 /**
   2588     @}
   2589   */
   2590 
   2591 /** @addtogroup loc_qmi_messages
   2592     @{
   2593   */
   2594 /** Indication Message; Requests the control point to enable Stationary Position
   2595                     Indicator (SPI) streaming reports. */
   2596 typedef struct {
   2597 
   2598   /* Mandatory */
   2599   /*  Enable/Disable SPI Requests */
   2600   uint8_t enable;
   2601   /**<   Indicates whether the client is to start or stop sending an SPI status stream.
   2602        \begin{itemize1}
   2603        \item    0x01 (TRUE)  -- Client is to start sending an SPI status stream
   2604        \item    0x00 (FALSE) -- Client is to stop sending an SPI status stream
   2605        \vspace{-0.18in} \end{itemize1}*/
   2606 }qmiLocEventSetSpiStreamingReportIndMsgT_v02;  /* Message */
   2607 /**
   2608     @}
   2609   */
   2610 
   2611 /** @addtogroup loc_qmi_enums
   2612     @{
   2613   */
   2614 typedef enum {
   2615   QMILOCWWANTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   2616   eQMI_LOC_WWAN_TYPE_INTERNET_V02 = 0, /**<  Bring up the WWAN type used for an Internet connection  */
   2617   eQMI_LOC_WWAN_TYPE_AGNSS_V02 = 1, /**<  Bring up the WWAN type used for AGNSS connections  */
   2618   eQMI_LOC_WWAN_TYPE_AGNSS_EMERGENCY_V02 = 2, /**<  Bring up the WWAN type used for AGNSS Emergency connections  */
   2619   QMILOCWWANTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   2620 }qmiLocWWANTypeEnumT_v02;
   2621 /**
   2622     @}
   2623   */
   2624 
   2625 /** @addtogroup loc_qmi_enums
   2626     @{
   2627   */
   2628 typedef enum {
   2629   QMILOCSERVERREQUESTENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   2630   eQMI_LOC_SERVER_REQUEST_OPEN_V02 = 1, /**<  Open a connection to the location server  */
   2631   eQMI_LOC_SERVER_REQUEST_CLOSE_V02 = 2, /**<  Close a connection to the location server  */
   2632   QMILOCSERVERREQUESTENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   2633 }qmiLocServerRequestEnumT_v02;
   2634 /**
   2635     @}
   2636   */
   2637 
   2638 /** @addtogroup loc_qmi_messages
   2639     @{
   2640   */
   2641 /** Indication Message; Requests the client to open or close a connection
   2642                     to the assisted GPS location server. */
   2643 typedef struct {
   2644 
   2645   /* Mandatory */
   2646   /*  Connection Handle */
   2647   uint32_t connHandle;
   2648   /**<   Identifies a connection across Open and Close request events. */
   2649 
   2650   /* Mandatory */
   2651   /*  Request Type */
   2652   qmiLocServerRequestEnumT_v02 requestType;
   2653   /**<   Open or close a connection to the location server.
   2654 
   2655  Valid values: \n
   2656       - eQMI_LOC_SERVER_REQUEST_OPEN (1) --  Open a connection to the location server
   2657       - eQMI_LOC_SERVER_REQUEST_CLOSE (2) --  Close a connection to the location server
   2658  */
   2659 
   2660   /* Mandatory */
   2661   /*  WWAN Type */
   2662   qmiLocWWANTypeEnumT_v02 wwanType;
   2663   /**<   Identifies the WWAN type for this request.
   2664  Valid values: \n
   2665       - eQMI_LOC_WWAN_TYPE_INTERNET (0) --  Bring up the WWAN type used for an Internet connection
   2666       - eQMI_LOC_WWAN_TYPE_AGNSS (1) --  Bring up the WWAN type used for AGNSS connections
   2667       - eQMI_LOC_WWAN_TYPE_AGNSS_EMERGENCY (2) --  Bring up the WWAN type used for AGNSS Emergency connections
   2668  */
   2669 }qmiLocEventLocationServerConnectionReqIndMsgT_v02;  /* Message */
   2670 /**
   2671     @}
   2672   */
   2673 
   2674 /** @addtogroup loc_qmi_enums
   2675     @{
   2676   */
   2677 typedef enum {
   2678   QMILOCNIGEOFENCEOPERATIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   2679   eQMI_LOC_NI_GEOFENCE_ADDED_V02 = 1, /**<  An NI Geofence was added  */
   2680   eQMI_LOC_NI_GEOFENCE_DELETED_V02 = 2, /**<  An NI Geofence was deleted  */
   2681   eQMI_LOC_NI_GEOFENCE_EDITED_V02 = 3, /**<  An NI Geofence was edited; the control point can query the
   2682        Geofence to find the its current state  */
   2683   QMILOCNIGEOFENCEOPERATIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   2684 }qmiLocNiGeofenceOperationEnumT_v02;
   2685 /**
   2686     @}
   2687   */
   2688 
   2689 /** @addtogroup loc_qmi_messages
   2690     @{
   2691   */
   2692 /** Indication Message; Informs the control point about
   2693                     network-initiated Geofences. */
   2694 typedef struct {
   2695 
   2696   /* Mandatory */
   2697   /*  Geofence ID */
   2698   uint32_t geofenceId;
   2699   /**<   ID of the Geofence for which this
   2700        notification was generated. */
   2701 
   2702   /* Mandatory */
   2703   /*  Operation Type */
   2704   qmiLocNiGeofenceOperationEnumT_v02 operationType;
   2705   /**<   Operation for which this notification was generated.
   2706 
   2707  Valid values: \n
   2708       - eQMI_LOC_NI_GEOFENCE_ADDED (1) --  An NI Geofence was added
   2709       - eQMI_LOC_NI_GEOFENCE_DELETED (2) --  An NI Geofence was deleted
   2710       - eQMI_LOC_NI_GEOFENCE_EDITED (3) --  An NI Geofence was edited; the control point can query the
   2711        Geofence to find the its current state
   2712  */
   2713 }qmiLocEventNiGeofenceNotificationIndMsgT_v02;  /* Message */
   2714 /**
   2715     @}
   2716   */
   2717 
   2718 /** @addtogroup loc_qmi_enums
   2719     @{
   2720   */
   2721 typedef enum {
   2722   QMILOCGEOFENCEGENALERTENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   2723   eQMI_LOC_GEOFENCE_GEN_ALERT_GNSS_UNAVAILABLE_V02 = 1, /**<  GNSS is unavailable and GNSS position fixes
   2724        cannot be used to monitor Geofences  */
   2725   eQMI_LOC_GEOFENCE_GEN_ALERT_GNSS_AVAILABLE_V02 = 2, /**<  GNSS is now available and GNSS postion fixes can
   2726        be used to monitor Geofences  */
   2727   eQMI_LOC_GEOFENCE_GEN_ALERT_OOS_V02 = 3, /**<  The engine is out of service and no cell ID coverage
   2728        information is available  */
   2729   eQMI_LOC_GEOFENCE_GEN_ALERT_TIME_INVALID_V02 = 4, /**<  The engine has an invalid time  */
   2730   QMILOCGEOFENCEGENALERTENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   2731 }qmiLocGeofenceGenAlertEnumT_v02;
   2732 /**
   2733     @}
   2734   */
   2735 
   2736 /** @addtogroup loc_qmi_messages
   2737     @{
   2738   */
   2739 /** Indication Message; Notifies the control point of the
   2740                     Geofence status. */
   2741 typedef struct {
   2742 
   2743   /* Mandatory */
   2744   /*  Geofence General Alert */
   2745   qmiLocGeofenceGenAlertEnumT_v02 geofenceAlert;
   2746   /**<   Specifies the Geofence general alert type.
   2747 
   2748  Valid values: \n
   2749       - eQMI_LOC_GEOFENCE_GEN_ALERT_GNSS_UNAVAILABLE (1) --  GNSS is unavailable and GNSS position fixes
   2750        cannot be used to monitor Geofences
   2751       - eQMI_LOC_GEOFENCE_GEN_ALERT_GNSS_AVAILABLE (2) --  GNSS is now available and GNSS postion fixes can
   2752        be used to monitor Geofences
   2753       - eQMI_LOC_GEOFENCE_GEN_ALERT_OOS (3) --  The engine is out of service and no cell ID coverage
   2754        information is available
   2755       - eQMI_LOC_GEOFENCE_GEN_ALERT_TIME_INVALID (4) --  The engine has an invalid time
   2756  */
   2757 }qmiLocEventGeofenceGenAlertIndMsgT_v02;  /* Message */
   2758 /**
   2759     @}
   2760   */
   2761 
   2762 /** @addtogroup loc_qmi_enums
   2763     @{
   2764   */
   2765 typedef enum {
   2766   QMILOCGEOFENCEBREACHTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   2767   eQMI_LOC_GEOFENCE_BREACH_TYPE_ENTERING_V02 = 1, /**<  Denotes that a client entered the Geofence  */
   2768   eQMI_LOC_GEOFENCE_BREACH_TYPE_LEAVING_V02 = 2, /**<  Denotes that a client left the Geofence  */
   2769   QMILOCGEOFENCEBREACHTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   2770 }qmiLocGeofenceBreachTypeEnumT_v02;
   2771 /**
   2772     @}
   2773   */
   2774 
   2775 /** @addtogroup loc_qmi_aggregates
   2776     @{
   2777   */
   2778 typedef struct {
   2779 
   2780   /*  UTC Timestamp */
   2781   uint64_t timestampUtc;
   2782   /**<   UTC timestamp.
   2783        \begin{itemize1}
   2784        \item    Units: Milliseconds since Jan. 1, 1970
   2785        \vspace{-0.18in} \end{itemize1} */
   2786 
   2787   /*  Latitude */
   2788   double latitude;
   2789   /**<   Latitude (specified in WGS84 datum).
   2790        \begin{itemize1}
   2791        \item    Type: Floating point
   2792        \item    Units: Degrees
   2793        \item    Range: -90.0 to 90.0       \begin{itemize1}
   2794          \item    Positive values indicate northern latitude
   2795          \item    Negative values indicate southern latitude
   2796        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
   2797 
   2798   /*   Longitude */
   2799   double longitude;
   2800   /**<   Longitude (specified in WGS84 datum).
   2801        \begin{itemize1}
   2802        \item    Type: Floating point
   2803        \item    Units: Degrees
   2804        \item    Range: -180.0 to 180.0     \begin{itemize1}
   2805          \item    Positive values indicate eastern longitude
   2806          \item    Negative values indicate western longitude
   2807        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
   2808 
   2809   /*  Horizontal Elliptical Uncertainty (Semi-Minor Axis) */
   2810   float horUncEllipseSemiMinor;
   2811   /**<   Semi-minor axis of horizontal elliptical uncertainty.\n
   2812        - Units: Meters */
   2813 
   2814   /*  Horizontal Elliptical Uncertainty (Semi-Major Axis) */
   2815   float horUncEllipseSemiMajor;
   2816   /**<   Semi-major axis of horizontal elliptical uncertainty.\n
   2817        - Units: Meters */
   2818 
   2819   /*  Elliptical Horizontal Uncertainty Azimuth */
   2820   float horUncEllipseOrientAzimuth;
   2821   /**<   Elliptical horizontal uncertainty azimuth of orientation.\n
   2822        - Units: Decimal degrees \n
   2823        - Range: 0 to 180 */
   2824 
   2825   /*  Horizontal Speed validity bit */
   2826   uint8_t speedHorizontal_valid;
   2827   /**<   Indicates whether the Horizontal speed field contains valid
   2828        information.
   2829        \begin{itemize1}
   2830        \item    0x01 (TRUE)  --  Horizontal speed is valid
   2831        \item    0x00 (FALSE) --  Horizontal speed is invalid
   2832                                  and is to be ignored
   2833        \vspace{-0.18in} \end{itemize1} */
   2834 
   2835   /*  Horizontal Speed */
   2836   float speedHorizontal;
   2837   /**<   Horizontal speed.\n
   2838        - Units: Meters/second */
   2839 
   2840   /*  Altitude validity bit */
   2841   uint8_t altitudeWrtEllipsoid_valid;
   2842   /**<   Indicates whether the altitude field contains valid
   2843        information.
   2844        \begin{itemize1}
   2845        \item    0x01 (TRUE)  --  Altitude field is valid
   2846        \item    0x00 (FALSE) --  Altitude field is invalid
   2847                                  and is to be ignored
   2848        \vspace{-0.18in} \end{itemize1}
   2849        */
   2850 
   2851   /*  Altitude With Respect to Ellipsoid */
   2852   float altitudeWrtEllipsoid;
   2853   /**<   Altitude with respect to the WGS84 ellipsoid.\n
   2854        - Units: Meters \n
   2855        - Range: -500 to 15883 */
   2856 
   2857   /*  Vertical Uncertainty validity bit */
   2858   uint8_t vertUnc_valid;
   2859   /**<   Indicates whether the Vertical Uncertainty field contains valid
   2860        information.
   2861        \begin{itemize1}
   2862        \item    0x01 (TRUE)  --  Vertical Uncertainty field is valid
   2863        \item    0x00 (FALSE) --  Vertical Uncertainty field is invalid
   2864                                  and is to be ignored
   2865        \vspace{-0.18in} \end{itemize1} */
   2866 
   2867   /*  Vertical Uncertainty */
   2868   float vertUnc;
   2869   /**<   Vertical uncertainty.\n
   2870        - Units: Meters */
   2871 
   2872   /*  Vertical Speed validity bit */
   2873   uint8_t speedVertical_valid;
   2874   /**<   Indicates whether the Vertical Speed field contains valid
   2875        information.
   2876        \begin{itemize1}
   2877        \item    0x01 (TRUE)  --  Vertical Speed field is valid
   2878        \item    0x00 (FALSE) --  Vertical Speed field is invalid
   2879                                  and is to be ignored
   2880        \vspace{-0.18in} \end{itemize1} */
   2881 
   2882   /*  Vertical Speed */
   2883   float speedVertical;
   2884   /**<   Vertical speed.\n
   2885        - Units: Meters/second */
   2886 
   2887   /*  heading validity bit */
   2888   uint8_t heading_valid;
   2889   /**<   Indicates whether the Heading field contains valid
   2890        information.
   2891        \begin{itemize1}
   2892        \item    0x01 (TRUE)  --  Heading field is valid
   2893        \item    0x00 (FALSE) --  Heading field is invalid
   2894                                  and is to be ignored
   2895        \vspace{-0.18in} \end{itemize1} */
   2896 
   2897   /*  Heading */
   2898   float heading;
   2899   /**<   Heading.\n
   2900         - Units: Degrees \n
   2901         - Range: 0 to 359.999  */
   2902 }qmiLocGeofencePositionStructT_v02;  /* Type */
   2903 /**
   2904     @}
   2905   */
   2906 
   2907 /** @addtogroup loc_qmi_enums
   2908     @{
   2909   */
   2910 typedef enum {
   2911   QMILOCGEOFENCECONFIDENCEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   2912   eQMI_LOC_GEOFENCE_CONFIDENCE_LOW_V02 = 0x01, /**<  Geofence engine indicates a breach with
   2913        low confidence; this setting results in lower
   2914        power usage, and it can impact the yield because
   2915        incorrect breach events may be sent  */
   2916   eQMI_LOC_GEOFENCE_CONFIDENCE_MED_V02 = 0x02, /**<  (Default) Geofence engine indicates a breach with
   2917        medium confidence  */
   2918   eQMI_LOC_GEOFENCE_CONFIDENCE_HIGH_V02 = 0x03, /**<  Geofence engine indicates a breach with
   2919        high confidence; this setting results in higher
   2920        power usage  */
   2921   QMILOCGEOFENCECONFIDENCEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   2922 }qmiLocGeofenceConfidenceEnumT_v02;
   2923 /**
   2924     @}
   2925   */
   2926 
   2927 /** @addtogroup loc_qmi_messages
   2928     @{
   2929   */
   2930 /** Indication Message; Notifies the control point of
   2931                     a Geofence breach event. */
   2932 typedef struct {
   2933 
   2934   /* Mandatory */
   2935   /*  Geofence ID */
   2936   uint32_t geofenceId;
   2937   /**<   ID of the Geofence for which this
   2938        notification was generated. */
   2939 
   2940   /* Mandatory */
   2941   /*  Geofence Breach Type */
   2942   qmiLocGeofenceBreachTypeEnumT_v02 breachType;
   2943   /**<   The type of breach that generated this event.
   2944 
   2945  Valid values: \n
   2946       - eQMI_LOC_GEOFENCE_BREACH_TYPE_ENTERING (1) --  Denotes that a client entered the Geofence
   2947       - eQMI_LOC_GEOFENCE_BREACH_TYPE_LEAVING (2) --  Denotes that a client left the Geofence
   2948  */
   2949 
   2950   /* Optional */
   2951   /*  Geofence Position */
   2952   uint8_t geofencePosition_valid;  /**< Must be set to true if geofencePosition is being passed */
   2953   qmiLocGeofencePositionStructT_v02 geofencePosition;
   2954   /**<   \vspace{0.06in} \n Position of the client when it breached the Geofence.
   2955        This TLV is included if the client configures the
   2956        Geofence to report position. The position is reported
   2957        at the same confidence level that was specified in the
   2958        Add Circular Geofence request. */
   2959 
   2960   /* Optional */
   2961   /*  Geofence Breach Confidence */
   2962   uint8_t breachConfidence_valid;  /**< Must be set to true if breachConfidence is being passed */
   2963   qmiLocGeofenceConfidenceEnumT_v02 breachConfidence;
   2964   /**<   \vspace{0.06in} \n
   2965  Given a breach event, the confidence determines the probability
   2966  that the breach happened at the Geofence boundary.
   2967  Valid values: \n
   2968       - eQMI_LOC_GEOFENCE_CONFIDENCE_LOW (0x01) --  Geofence engine indicates a breach with
   2969        low confidence; this setting results in lower
   2970        power usage, and it can impact the yield because
   2971        incorrect breach events may be sent
   2972       - eQMI_LOC_GEOFENCE_CONFIDENCE_MED (0x02) --  (Default) Geofence engine indicates a breach with
   2973        medium confidence
   2974       - eQMI_LOC_GEOFENCE_CONFIDENCE_HIGH (0x03) --  Geofence engine indicates a breach with
   2975        high confidence; this setting results in higher
   2976        power usage
   2977  */
   2978 }qmiLocEventGeofenceBreachIndMsgT_v02;  /* Message */
   2979 /**
   2980     @}
   2981   */
   2982 
   2983 /** @addtogroup loc_qmi_messages
   2984     @{
   2985   */
   2986 /** Indication Message; Recommends how pedometer reports are to be
   2987                     sent to the location engine. */
   2988 typedef struct {
   2989 
   2990   /* Mandatory */
   2991   /*  Request Pedometer Data */
   2992   uint8_t requestPedometerData;
   2993   /**<   Indicates whether the GNSS location engine is requesting the client to
   2994           send pedometer data.
   2995        \begin{itemize1}
   2996        \item    0x01 (TRUE)  -- GNSS location engine is requesting
   2997                                 pedometer data
   2998        \item    0x00 (FALSE) -- GNSS location engine is not requesting
   2999                                 pedometer data
   3000        \vspace{-0.18in} \end{itemize1}
   3001   */
   3002 
   3003   /* Optional */
   3004   /*  Reset Step Count */
   3005   uint8_t resetStepCount_valid;  /**< Must be set to true if resetStepCount is being passed */
   3006   uint8_t resetStepCount;
   3007   /**<   Indicates whether the location engine is to reset the step count.
   3008        \begin{itemize1}
   3009        \item    0x01 (TRUE)  -- Pedometer step count is to be reset
   3010        \item    0x00 (FALSE) -- Pedometer step count is not to be reset
   3011        \vspace{-0.18in} \end{itemize1} */
   3012 
   3013   /* Optional */
   3014   /*  Step Count Threshold */
   3015   uint8_t stepCountThreshold_valid;  /**< Must be set to true if stepCountThreshold is being passed */
   3016   uint32_t stepCountThreshold;
   3017   /**<   Specifies the number of steps to be sampled in a pedometer report,
   3018        as recommended by the the location engine. If the threshold is set to 0,
   3019        the location engine wants a pedometer report at every step event.
   3020   */
   3021 }qmiLocEventPedometerControlIndMsgT_v02;  /* Message */
   3022 /**
   3023     @}
   3024   */
   3025 
   3026 /** @addtogroup loc_qmi_messages
   3027     @{
   3028   */
   3029 /** Indication Message; Recommends how motion data reports are to be
   3030                     sent to the location engine. */
   3031 typedef struct {
   3032 
   3033   /* Mandatory */
   3034   /*  Request Motion Data */
   3035   uint8_t requestMotionData;
   3036   /**<   Indicates whether the GNSS location engine is requesting
   3037        the client to send motion data.
   3038        \begin{itemize1}
   3039        \item    0x01 (TRUE)  -- GNSS location engine is requesting
   3040                                 motion data
   3041        \item    0x00 (FALSE) -- GNSS location engine is not requesting
   3042                                 motion data
   3043        \vspace{-0.18in} \end{itemize1}
   3044   */
   3045 }qmiLocEventMotionDataControlIndMsgT_v02;  /* Message */
   3046 /**
   3047     @}
   3048   */
   3049 
   3050 /** @addtogroup loc_qmi_aggregates
   3051     @{
   3052   */
   3053 typedef struct {
   3054 
   3055   /*  Low Geofence ID */
   3056   uint32_t idLow;
   3057   /**<   Contains the starting ID of the Geofence in the range of the continuous
   3058        range of Geofences that were breached at the same position. */
   3059 
   3060   /*  High Geofence ID */
   3061   uint32_t idHigh;
   3062   /**<   Contains the ending ID of the Geofence in the range of the continuous
   3063          range of Geofences that were breached at the same position. */
   3064 }qmiLocGeofenceIdContinuousStructT_v02;  /* Type */
   3065 /**
   3066     @}
   3067   */
   3068 
   3069 /** @addtogroup loc_qmi_messages
   3070     @{
   3071   */
   3072 /** Indication Message; Notifies the control point of a Geofence breach event by
   3073                     batching all the Geofences that were breached. */
   3074 typedef struct {
   3075 
   3076   /* Mandatory */
   3077   /*  Geofence Breach Type */
   3078   qmiLocGeofenceBreachTypeEnumT_v02 breachType;
   3079   /**<   Type of breach that generated this event.
   3080 
   3081  Valid values: \n
   3082       - eQMI_LOC_GEOFENCE_BREACH_TYPE_ENTERING (1) --  Denotes that a client entered the Geofence
   3083       - eQMI_LOC_GEOFENCE_BREACH_TYPE_LEAVING (2) --  Denotes that a client left the Geofence
   3084  */
   3085 
   3086   /* Optional */
   3087   /*  Geofence ID Continuous */
   3088   uint8_t geofenceIdContinuousList_valid;  /**< Must be set to true if geofenceIdContinuousList is being passed */
   3089   uint32_t geofenceIdContinuousList_len;  /**< Must be set to # of elements in geofenceIdContinuousList */
   3090   qmiLocGeofenceIdContinuousStructT_v02 geofenceIdContinuousList[QMI_LOC_MAX_GEOFENCE_ID_CONTINUOUS_LIST_LENGTH_V02];
   3091   /**<   \vspace{0.06in} \n Each entry in the list contains the continuous range of Geofence IDs that were breached
   3092       at the same position. This list does not overlap with the discrete Geofence ID list. */
   3093 
   3094   /* Optional */
   3095   /*  Geofence ID Discrete */
   3096   uint8_t geofenceIdDiscreteList_valid;  /**< Must be set to true if geofenceIdDiscreteList is being passed */
   3097   uint32_t geofenceIdDiscreteList_len;  /**< Must be set to # of elements in geofenceIdDiscreteList */
   3098   uint32_t geofenceIdDiscreteList[QMI_LOC_MAX_GEOFENCE_ID_DISCRETE_LIST_LENGTH_V02];
   3099   /**<   This list contains the Geofence IDs that were breached at the same position.
   3100        This list does not overlap with the continuous Geofence ID list. */
   3101 
   3102   /* Optional */
   3103   /*  Geofence Position */
   3104   uint8_t geofencePosition_valid;  /**< Must be set to true if geofencePosition is being passed */
   3105   qmiLocGeofencePositionStructT_v02 geofencePosition;
   3106   /**<   \vspace{0.06in} \n Position of the client when it breached the Geofence.
   3107        This TLV is included if the client configures the
   3108        Geofence to report its position. The position is reported
   3109        at the same confidence level that was specified in the
   3110        Add Circular Geofence request. */
   3111 
   3112   /* Optional */
   3113   /*  Geofence Breach Confidence */
   3114   uint8_t breachConfidence_valid;  /**< Must be set to true if breachConfidence is being passed */
   3115   qmiLocGeofenceConfidenceEnumT_v02 breachConfidence;
   3116   /**<   \vspace{0.06in} \n
   3117  Given a breach event, the confidence determines the probability
   3118  that the breach happened at the Geofence boundary.
   3119  Valid values: \n
   3120       - eQMI_LOC_GEOFENCE_CONFIDENCE_LOW (0x01) --  Geofence engine indicates a breach with
   3121        low confidence; this setting results in lower
   3122        power usage, and it can impact the yield because
   3123        incorrect breach events may be sent
   3124       - eQMI_LOC_GEOFENCE_CONFIDENCE_MED (0x02) --  (Default) Geofence engine indicates a breach with
   3125        medium confidence
   3126       - eQMI_LOC_GEOFENCE_CONFIDENCE_HIGH (0x03) --  Geofence engine indicates a breach with
   3127        high confidence; this setting results in higher
   3128        power usage
   3129  */
   3130 
   3131   /* Optional */
   3132   /*  Heading Uncertainty */
   3133   uint8_t headingUnc_valid;  /**< Must be set to true if headingUnc is being passed */
   3134   float headingUnc;
   3135   /**<   Heading uncertainty.\n
   3136        - Units: Degrees \n
   3137        - Range: 0 to 359.999 */
   3138 
   3139   /* Optional */
   3140   /*  Vertical Uncertainty */
   3141   uint8_t vertUnc_valid;  /**< Must be set to true if vertUnc is being passed */
   3142   float vertUnc;
   3143   /**<   Vertical uncertainty.\n
   3144        - Units: Meters */
   3145 
   3146   /* Optional */
   3147   /*  Speed Uncertainty */
   3148   uint8_t speedUnc_valid;  /**< Must be set to true if speedUnc is being passed */
   3149   float speedUnc;
   3150   /**<   3-D speed uncertainty.\n
   3151        - Units: Meters/second */
   3152 
   3153   /* Optional */
   3154   /*  Horizontal Confidence */
   3155   uint8_t horConfidence_valid;  /**< Must be set to true if horConfidence is being passed */
   3156   uint8_t horConfidence;
   3157   /**<   Horizontal uncertainty confidence.\n
   3158        - Units: Percent \n
   3159        - Range: 0 to 99 */
   3160 
   3161   /* Optional */
   3162   /*  Vertical Confidence */
   3163   uint8_t vertConfidence_valid;  /**< Must be set to true if vertConfidence is being passed */
   3164   uint8_t vertConfidence;
   3165   /**<   Vertical uncertainty confidence.\n
   3166        - Units: Percent \n
   3167        - Range: 0 to 99 */
   3168 
   3169   /* Optional */
   3170   /*  Dilution of Precision */
   3171   uint8_t DOP_valid;  /**< Must be set to true if DOP is being passed */
   3172   qmiLocDOPStructT_v02 DOP;
   3173   /**<   \vspace{0.06in} \n Dilution of precision associated with this position. */
   3174 
   3175   /* Optional */
   3176   /*  SVs Used to Calculate the Fix */
   3177   uint8_t gnssSvUsedList_valid;  /**< Must be set to true if gnssSvUsedList is being passed */
   3178   uint32_t gnssSvUsedList_len;  /**< Must be set to # of elements in gnssSvUsedList */
   3179   uint16_t gnssSvUsedList[QMI_LOC_MAX_SV_USED_LIST_LENGTH_V02];
   3180   /**<   Each entry in the list contains the SV ID of a satellite
   3181       used for calculating this position report. The following
   3182       information is associated with each SV ID: \n
   3183          Range:    \n
   3184          - For GPS:     1 to 32 \n
   3185          - For SBAS:    33 to 64 \n
   3186          - For GLONASS: 65 to 96 \n
   3187          - For QZSS:    193 to 197 \n
   3188          - For BDS:     201 to 237
   3189         */
   3190 }qmiLocEventGeofenceBatchedBreachIndMsgT_v02;  /* Message */
   3191 /**
   3192     @}
   3193   */
   3194 
   3195 /** @addtogroup loc_qmi_enums
   3196     @{
   3197   */
   3198 typedef enum {
   3199   QMILOCGEOFENCEPROXIMITYTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   3200   eQMI_LOC_GEOFENCE_PROXIMITY_TYPE_IN_V02 = 1, /**<  Denotes that a client is in proximity of the Geofence \n  */
   3201   eQMI_LOC_GEOFENCE_PROXIMITY_TYPE_OUT_V02 = 2, /**<  Denotes that a client is out of proximity of the Geofence  */
   3202   QMILOCGEOFENCEPROXIMITYTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   3203 }qmiLocGeofenceProximityTypeEnumT_v02;
   3204 /**
   3205     @}
   3206   */
   3207 
   3208 /** @addtogroup loc_qmi_messages
   3209     @{
   3210   */
   3211 /** Indication Message; Notifies the control point of a Geofence proximity event. */
   3212 typedef struct {
   3213 
   3214   /* Mandatory */
   3215   /*  Geofence Breach Type */
   3216   qmiLocGeofenceProximityTypeEnumT_v02 proximityType;
   3217   /**<   Valid values: \n
   3218       - eQMI_LOC_GEOFENCE_PROXIMITY_TYPE_IN (1) --  Denotes that a client is in proximity of the Geofence \n
   3219       - eQMI_LOC_GEOFENCE_PROXIMITY_TYPE_OUT (2) --  Denotes that a client is out of proximity of the Geofence
   3220  */
   3221 
   3222   /* Mandatory */
   3223   /*  Geofence ID */
   3224   uint32_t geofenceId;
   3225   /**<   Identifier of the Geofence that is in proximity to the handset.
   3226   */
   3227 
   3228   /* Optional */
   3229   /*  Geofence Context ID */
   3230   uint8_t contextId_valid;  /**< Must be set to true if contextId is being passed */
   3231   uint32_t contextId;
   3232   /**<    Identifier for the context of the Geofence to which the handset is in proximity.
   3233         A single Geofence may be associated with different contexts.
   3234   */
   3235 }qmiLocEventGeofenceProximityIndMsgT_v02;  /* Message */
   3236 /**
   3237     @}
   3238   */
   3239 
   3240 /** @addtogroup loc_qmi_enums
   3241     @{
   3242   */
   3243 typedef enum {
   3244   QMILOCGDTSERVICEIDENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   3245   eQMI_LOC_GDT_SERVICE_WWAN_V02 = 1, /**<  GDT Service for WWAN   */
   3246   QMILOCGDTSERVICEIDENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   3247 }qmiLocGdtServiceIdEnumT_v02;
   3248 /**
   3249     @}
   3250   */
   3251 
   3252 /** @addtogroup loc_qmi_enums
   3253     @{
   3254   */
   3255 typedef enum {
   3256   QMILOCGDTACCESSSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   3257   eQMI_LOC_GDT_ACCESS_ALLOWED_V02 = 1, /**<  GDT ACCESS to the service is allowed   */
   3258   eQMI_LOC_GDT_ACCESS_FAILED_V02 = 2, /**<  Any type of GDT access error   */
   3259   eQMI_LOC_GDT_ACCESS_NOT_ALLOWED_V02 = 3, /**<  GDT ACCESS to the service is not allowed   */
   3260   QMILOCGDTACCESSSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   3261 }qmiLocGdtAccessStatusEnumT_v02;
   3262 /**
   3263     @}
   3264   */
   3265 
   3266 /** @addtogroup loc_qmi_messages
   3267     @{
   3268   */
   3269 /** Indication Message; Requests the control point to transfer data. */
   3270 typedef struct {
   3271 
   3272   /* Mandatory */
   3273   /*  GDT service ID */
   3274   qmiLocGdtServiceIdEnumT_v02 serviceId;
   3275 
   3276   /* Mandatory */
   3277   /*  Session ID */
   3278   uint32_t sessionId;
   3279 
   3280   /* Mandatory */
   3281   /*  Data */
   3282   uint32_t filePath_len;  /**< Must be set to # of elements in filePath */
   3283   char filePath[QMI_LOC_MAX_GDT_PATH_LEN_V02];
   3284   /**<   file path to the data. \n
   3285          - Type: Array of bytes \n
   3286          - Maximum length of the array: 255
   3287     */
   3288 }qmiLocEventGdtUploadBeginStatusReqIndMsgT_v02;  /* Message */
   3289 /**
   3290     @}
   3291   */
   3292 
   3293 /** @addtogroup loc_qmi_enums
   3294     @{
   3295   */
   3296 typedef enum {
   3297   QMILOCGDTENDSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   3298   eQMI_LOC_GDT_SUCCESS_V02 = 1, /**<  The sent data is accepeted   */
   3299   eQMI_LOC_GDT_FAILED_V02 = 2, /**<  The sent data was not accepted   */
   3300   eQMI_LOC_GDT_INVALID_V02 = 3, /**<  General error in received data  */
   3301   QMILOCGDTENDSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   3302 }qmiLocGdtEndStatusEnumT_v02;
   3303 /**
   3304     @}
   3305   */
   3306 
   3307 /** @addtogroup loc_qmi_messages
   3308     @{
   3309   */
   3310 /** Indication Message; Requests the control point to report the status of the
   3311                     transfered data. */
   3312 typedef struct {
   3313 
   3314   /* Mandatory */
   3315   /*  GDT service ID */
   3316   qmiLocGdtServiceIdEnumT_v02 serviceId;
   3317 
   3318   /* Mandatory */
   3319   /*  Session ID */
   3320   uint32_t sessionId;
   3321 
   3322   /* Mandatory */
   3323   /*  GDT End status */
   3324   qmiLocGdtEndStatusEnumT_v02 endStatus;
   3325 }qmiLocEventGdtUploadEndReqIndMsgT_v02;  /* Message */
   3326 /**
   3327     @}
   3328   */
   3329 
   3330 /** @addtogroup loc_qmi_enums
   3331     @{
   3332   */
   3333 typedef enum {
   3334   QMILOCSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   3335   eQMI_LOC_SUCCESS_V02 = 0, /**<  Request was completed successfully \n  */
   3336   eQMI_LOC_GENERAL_FAILURE_V02 = 1, /**<  Request failed because of a general failure \n  */
   3337   eQMI_LOC_UNSUPPORTED_V02 = 2, /**<  Request failed because it is not supported \n  */
   3338   eQMI_LOC_INVALID_PARAMETER_V02 = 3, /**<  Request failed because it contained invalid parameters \n  */
   3339   eQMI_LOC_ENGINE_BUSY_V02 = 4, /**<  Request failed because the engine is busy \n  */
   3340   eQMI_LOC_PHONE_OFFLINE_V02 = 5, /**<  Request failed because the phone is offline \n  */
   3341   eQMI_LOC_TIMEOUT_V02 = 6, /**<  Request failed because it timed out \n  */
   3342   eQMI_LOC_CONFIG_NOT_SUPPORTED_V02 = 7, /**<  Request failed because an undefined configuration was requested \n  */
   3343   eQMI_LOC_INSUFFICIENT_MEMORY_V02 = 8, /**<  Request failed because the engine could not allocate sufficient memory for the request \n  */
   3344   eQMI_LOC_MAX_GEOFENCE_PROGRAMMED_V02 = 9, /**<  Request failed because the maximum number of Geofences are already programmed \n  */
   3345   eQMI_LOC_XTRA_VERSION_CHECK_FAILURE_V02 = 10, /**<  Location service failed because of an XTRA version-based file format check failure  */
   3346   QMILOCSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   3347 }qmiLocStatusEnumT_v02;
   3348 /**
   3349     @}
   3350   */
   3351 
   3352 /** @addtogroup loc_qmi_messages
   3353     @{
   3354   */
   3355 /** Request Message; Client can query the service revision using this message. */
   3356 typedef struct {
   3357   /* This element is a placeholder to prevent the declaration of
   3358      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   3359   char __placeholder;
   3360 }qmiLocGetServiceRevisionReqMsgT_v02;
   3361 
   3362   /* Message */
   3363 /**
   3364     @}
   3365   */
   3366 
   3367 /** @addtogroup loc_qmi_messages
   3368     @{
   3369   */
   3370 /** Indication Message; Client can query the service revision using this message. */
   3371 typedef struct {
   3372 
   3373   /* Mandatory */
   3374   /*  Get Revision Status */
   3375   qmiLocStatusEnumT_v02 status;
   3376   /**<   Status of the Get Revision request.
   3377 
   3378  Valid values: \n
   3379       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   3380       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   3381       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   3382       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   3383       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   3384       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   3385       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   3386       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   3387       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   3388       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   3389       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   3390  */
   3391 
   3392   /* Mandatory */
   3393   /*  Interface Definition Minor Revision */
   3394   uint32_t revision;
   3395   /**<   Revision of the service. This is the minor revision of the interface that
   3396        the service implements. Minor revision updates of the service are always
   3397        backward compatible. */
   3398 
   3399   /* Optional */
   3400   /*  GNSS Measurement Engine Firmware Version String */
   3401   uint8_t gnssMeFWVerString_valid;  /**< Must be set to true if gnssMeFWVerString is being passed */
   3402   char gnssMeFWVerString[QMI_LOC_GNSS_ME_VERSION_STRING_MAX_LENGTH_V02 + 1];
   3403   /**<   Version of the GNSS measurement engine software running under the LOC API.
   3404        \begin{itemize1}
   3405        \item    Type: NULL-terminated string
   3406        \item    Maximum string length (including NULL terminator): 128
   3407        \vspace{0.1in} \end{itemize1}
   3408 
   3409        \textbf{Note:} This string is only provided on platforms that have
   3410        a measurement engine that supports this version string. On all other
   3411        platforms, this optional TLV is not provided. */
   3412 
   3413   /* Optional */
   3414   /*  GNSS Hosted Software Version String */
   3415   uint8_t gnssHostSWVerString_valid;  /**< Must be set to true if gnssHostSWVerString is being passed */
   3416   char gnssHostSWVerString[QMI_LOC_GNSS_HOSTED_SW_VERSION_STRING_MAX_LENGTH_V02 + 1];
   3417   /**<   Version of the GNSS hosted software running under the LOC API.
   3418        \begin{itemize1}
   3419        \item    Type: NULL-terminated string
   3420        \item    Maximum string length (including NULL terminator): 128
   3421        \vspace{0.1in}\end{itemize1}
   3422 
   3423        \textbf{Note:} This string is only provided on hosted architectures
   3424        (measurement and position engine running on different processors) that
   3425        support this version string. On all other platforms, this optional TLV
   3426        is not provided. */
   3427 
   3428   /* Optional */
   3429   /*  GNSS Software Version String */
   3430   uint8_t gnssSWVerString_valid;  /**< Must be set to true if gnssSWVerString is being passed */
   3431   char gnssSWVerString[QMI_LOC_GNSS_SW_VERSION_STRING_MAX_LENGTH_V02 + 1];
   3432   /**<   Aggregate version of the GNSS software.
   3433        \begin{itemize1}
   3434        \item    Type: NULL-terminated string
   3435        \item    Maximum string length (including NULL terminator): 256
   3436        \vspace{-0.18in} \end{itemize1} */
   3437 }qmiLocGetServiceRevisionIndMsgT_v02;  /* Message */
   3438 /**
   3439     @}
   3440   */
   3441 
   3442 /** @addtogroup loc_qmi_messages
   3443     @{
   3444   */
   3445 /** Request Message; Gets the fix criteria from the location engine. */
   3446 typedef struct {
   3447   /* This element is a placeholder to prevent the declaration of
   3448      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   3449   char __placeholder;
   3450 }qmiLocGetFixCriteriaReqMsgT_v02;
   3451 
   3452   /* Message */
   3453 /**
   3454     @}
   3455   */
   3456 
   3457 /** @addtogroup loc_qmi_messages
   3458     @{
   3459   */
   3460 /** Indication Message; Gets the fix criteria from the location engine. */
   3461 typedef struct {
   3462 
   3463   /* Mandatory */
   3464   /*  Get Fix Criteria Status */
   3465   qmiLocStatusEnumT_v02 status;
   3466   /**<   Status of the Get Fix Criteria request.
   3467 
   3468  Valid values: \n
   3469       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   3470       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   3471       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   3472       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   3473       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   3474       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   3475       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   3476       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   3477       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   3478       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   3479       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   3480  */
   3481 
   3482   /* Optional */
   3483   /*  Horizontal Accuracy */
   3484   uint8_t horizontalAccuracyLevel_valid;  /**< Must be set to true if horizontalAccuracyLevel is being passed */
   3485   qmiLocAccuracyLevelEnumT_v02 horizontalAccuracyLevel;
   3486   /**<   Horizontal accuracy level.
   3487 
   3488  Valid values: \n
   3489       - eQMI_LOC_ACCURACY_LOW (1) --  Low accuracy
   3490       - eQMI_LOC_ACCURACY_MED (2) --  Medium accuracy
   3491       - eQMI_LOC_ACCURACY_HIGH (3) --  High accuracy
   3492  */
   3493 
   3494   /* Optional */
   3495   /*  Enable/Disable Intermediate Fixes */
   3496   uint8_t intermediateReportState_valid;  /**< Must be set to true if intermediateReportState is being passed */
   3497   qmiLocIntermediateReportStateEnumT_v02 intermediateReportState;
   3498   /**<   Intermediate Report state (ON, OFF).\n
   3499  The client must explicitly set this field to OFF to stop receiving
   3500  intermediate position reports. Intermediate position reports are
   3501  generated at 1 Hz and are ON by default. If intermediate reports
   3502  are turned ON, the client receives position reports even if the
   3503  accuracy criteria is not met. The status in the position report is
   3504  set to IN_PROGRESS for intermediate reports.
   3505 
   3506  Valid values: \n
   3507       - eQMI_LOC_INTERMEDIATE_REPORTS_ON (1) --  Intermediate reports are turned on
   3508       - eQMI_LOC_INTERMEDIATE_REPORTS_OFF (2) --  Intermediate reports are turned off
   3509  */
   3510 
   3511   /* Optional */
   3512   /*  Minimum Interval Between Fixes */
   3513   uint8_t minInterval_valid;  /**< Must be set to true if minInterval is being passed */
   3514   uint32_t minInterval;
   3515   /**<   Time that must elapse before alerting the client. \n
   3516        - Units: Milliseconds */
   3517 
   3518   /* Optional */
   3519   /*  ID of the Application that Sent the Position Request */
   3520   uint8_t applicationId_valid;  /**< Must be set to true if applicationId is being passed */
   3521   qmiLocApplicationIdStructT_v02 applicationId;
   3522   /**<   \vspace{0.06in} \n Application provider, name, and version.*/
   3523 }qmiLocGetFixCriteriaIndMsgT_v02;  /* Message */
   3524 /**
   3525     @}
   3526   */
   3527 
   3528 /** @addtogroup loc_qmi_enums
   3529     @{
   3530   */
   3531 typedef enum {
   3532   QMILOCNIUSERRESPENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   3533   eQMI_LOC_NI_LCS_NOTIFY_VERIFY_ACCEPT_V02 = 1, /**<  User accepted the Notify/Verify request  */
   3534   eQMI_LOC_NI_LCS_NOTIFY_VERIFY_DENY_V02 = 2, /**<  User denied the Notify/Verify request  */
   3535   eQMI_LOC_NI_LCS_NOTIFY_VERIFY_NORESP_V02 = 3, /**<  User did not respond to the Notify/Verify request  */
   3536   QMILOCNIUSERRESPENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   3537 }qmiLocNiUserRespEnumT_v02;
   3538 /**
   3539     @}
   3540   */
   3541 
   3542 /** @addtogroup loc_qmi_messages
   3543     @{
   3544   */
   3545 /** Request Message; Sends the NI user response back to the engine; success or
   3546                     failure is reported in a separate indication. */
   3547 typedef struct {
   3548 
   3549   /* Mandatory */
   3550   /*  User Response */
   3551   qmiLocNiUserRespEnumT_v02 userResp;
   3552   /**<   User accepted or denied.
   3553 
   3554  Valid values: \n
   3555       - eQMI_LOC_NI_LCS_NOTIFY_VERIFY_ACCEPT (1) --  User accepted the Notify/Verify request
   3556       - eQMI_LOC_NI_LCS_NOTIFY_VERIFY_DENY (2) --  User denied the Notify/Verify request
   3557       - eQMI_LOC_NI_LCS_NOTIFY_VERIFY_NORESP (3) --  User did not respond to the Notify/Verify request
   3558  */
   3559 
   3560   /* Mandatory */
   3561   /*  Notification Type */
   3562   qmiLocNiNotifyVerifyEnumT_v02 notificationType;
   3563   /**<   Type of notification/verification performed.
   3564 
   3565  Valid values: \n
   3566       - eQMI_LOC_NI_USER_NO_NOTIFY_NO_VERIFY (1) --  No notification and no verification required
   3567       - eQMI_LOC_NI_USER_NOTIFY_ONLY (2) --  Notify only; no verification required
   3568       - eQMI_LOC_NI_USER_NOTIFY_VERIFY_ALLOW_NO_RESP (3) --  Notify and verify, but no response required.
   3569       - eQMI_LOC_NI_USER_NOTIFY_VERIFY_NOT_ALLOW_NO_RESP (4) --  Notify and verify, and require a response
   3570       - eQMI_LOC_NI_USER_NOTIFY_VERIFY_PRIVACY_OVERRIDE (5) --  Notify and verify; privacy override
   3571  */
   3572 
   3573   /* Optional */
   3574   /*  Network Initiated Vx Request */
   3575   uint8_t NiVxPayload_valid;  /**< Must be set to true if NiVxPayload is being passed */
   3576   qmiLocNiVxNotifyVerifyStructT_v02 NiVxPayload;
   3577   /**<   \vspace{0.06in} \n Optional NI VX request payload. */
   3578 
   3579   /* Optional */
   3580   /*  Network Initiated SUPL Request */
   3581   uint8_t NiSuplPayload_valid;  /**< Must be set to true if NiSuplPayload is being passed */
   3582   qmiLocNiSuplNotifyVerifyStructT_v02 NiSuplPayload;
   3583   /**<   \vspace{0.06in} \n Optional NI SUPL request payload. */
   3584 
   3585   /* Optional */
   3586   /*  Network Initiated UMTS Control Plane Request */
   3587   uint8_t NiUmtsCpPayload_valid;  /**< Must be set to true if NiUmtsCpPayload is being passed */
   3588   qmiLocNiUmtsCpNotifyVerifyStructT_v02 NiUmtsCpPayload;
   3589   /**<   \vspace{0.06in} \n Optional NI UMTS-CP request payload. */
   3590 
   3591   /* Optional */
   3592   /*  Network Initiated Service Interaction Request */
   3593   uint8_t NiVxServiceInteractionPayload_valid;  /**< Must be set to true if NiVxServiceInteractionPayload is being passed */
   3594   qmiLocNiVxServiceInteractionStructT_v02 NiVxServiceInteractionPayload;
   3595   /**<   \vspace{0.06in} \n Optional NI service interaction payload. */
   3596 
   3597   /* Optional */
   3598   /*  Network Initiated SUPL Version 2 Extension */
   3599   uint8_t NiSuplVer2ExtPayload_valid;  /**< Must be set to true if NiSuplVer2ExtPayload is being passed */
   3600   qmiLocNiSuplVer2ExtStructT_v02 NiSuplVer2ExtPayload;
   3601   /**<   \vspace{0.06in} \n Optional SUPL Version 2 Extension payload. */
   3602 
   3603   /* Optional */
   3604   /*  SUPL Emergency Notification */
   3605   uint8_t suplEmergencyNotification_valid;  /**< Must be set to true if suplEmergencyNotification is being passed */
   3606   qmiLocEmergencyNotificationStructT_v02 suplEmergencyNotification;
   3607   /**<    \vspace{0.06in} \n SUPL emergency notification payload. Emergency notification
   3608         can be given even without an ESLP address */
   3609 }qmiLocNiUserRespReqMsgT_v02;  /* Message */
   3610 /**
   3611     @}
   3612   */
   3613 
   3614 /** @addtogroup loc_qmi_messages
   3615     @{
   3616   */
   3617 /** Indication Message; Sends the NI user response back to the engine; success or
   3618                     failure is reported in a separate indication. */
   3619 typedef struct {
   3620 
   3621   /* Mandatory */
   3622   /*  NI User Response Status */
   3623   qmiLocStatusEnumT_v02 status;
   3624   /**<   Status of the NI User Response request.
   3625 
   3626  Valid values: \n
   3627       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   3628       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   3629       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   3630       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   3631       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   3632       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   3633       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   3634       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   3635       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   3636       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   3637       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   3638  */
   3639 }qmiLocNiUserRespIndMsgT_v02;  /* Message */
   3640 /**
   3641     @}
   3642   */
   3643 
   3644 /** @addtogroup loc_qmi_enums
   3645     @{
   3646   */
   3647 typedef enum {
   3648   QMILOCPREDICTEDORBITSDATAFORMATENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   3649   eQMI_LOC_PREDICTED_ORBITS_XTRA_V02 = 0, /**<  Default is QCOM-XTRA format.  */
   3650   QMILOCPREDICTEDORBITSDATAFORMATENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   3651 }qmiLocPredictedOrbitsDataFormatEnumT_v02;
   3652 /**
   3653     @}
   3654   */
   3655 
   3656 /** @addtogroup loc_qmi_messages
   3657     @{
   3658   */
   3659 /** Request Message; Injects predicted orbits data. */
   3660 typedef struct {
   3661 
   3662   /* Mandatory */
   3663   /*  Total Size */
   3664   uint32_t totalSize;
   3665   /**<   Total size of the predicted orbits data to be injected. \n
   3666         - Units: Bytes */
   3667 
   3668   /* Mandatory */
   3669   /*  Total Parts */
   3670   uint16_t totalParts;
   3671   /**<   Total number of parts into which the predicted orbits data is
   3672         divided. */
   3673 
   3674   /* Mandatory */
   3675   /*  Part Number */
   3676   uint16_t partNum;
   3677   /**<   Number of the current predicted orbits data part; starts at 1. */
   3678 
   3679   /* Mandatory */
   3680   /*  Data */
   3681   uint32_t partData_len;  /**< Must be set to # of elements in partData */
   3682   char partData[QMI_LOC_MAX_PREDICTED_ORBITS_PART_LEN_V02];
   3683   /**<   Predicted orbits data. \n
   3684          - Type: Array of bytes \n
   3685          - Maximum length of the array: 1024
   3686     */
   3687 
   3688   /* Optional */
   3689   /*  Format Type */
   3690   uint8_t formatType_valid;  /**< Must be set to true if formatType is being passed */
   3691   qmiLocPredictedOrbitsDataFormatEnumT_v02 formatType;
   3692   /**<   Predicted orbits data format. \n
   3693  Valid values: \n
   3694       - eQMI_LOC_PREDICTED_ORBITS_XTRA (0) --  Default is QCOM-XTRA format.
   3695  */
   3696 }qmiLocInjectPredictedOrbitsDataReqMsgT_v02;  /* Message */
   3697 /**
   3698     @}
   3699   */
   3700 
   3701 /** @addtogroup loc_qmi_messages
   3702     @{
   3703   */
   3704 /** Indication Message; Injects predicted orbits data. */
   3705 typedef struct {
   3706 
   3707   /* Mandatory */
   3708   /*  Data Injection Status */
   3709   qmiLocStatusEnumT_v02 status;
   3710   /**<   Status of the Data Injection request.
   3711 
   3712  Valid values: \n
   3713       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   3714       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   3715       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   3716       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   3717       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   3718       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   3719       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   3720       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   3721       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   3722       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   3723       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   3724  */
   3725 
   3726   /* Optional */
   3727   /*  Part Number */
   3728   uint8_t partNum_valid;  /**< Must be set to true if partNum is being passed */
   3729   uint16_t partNum;
   3730   /**<   Number of the predicted orbits data part for which this indication
   3731       is sent; starts at 1. */
   3732 }qmiLocInjectPredictedOrbitsDataIndMsgT_v02;  /* Message */
   3733 /**
   3734     @}
   3735   */
   3736 
   3737 /** @addtogroup loc_qmi_messages
   3738     @{
   3739   */
   3740 /** Request Message; Gets the predicted orbits data source. */
   3741 typedef struct {
   3742   /* This element is a placeholder to prevent the declaration of
   3743      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   3744   char __placeholder;
   3745 }qmiLocGetPredictedOrbitsDataSourceReqMsgT_v02;
   3746 
   3747   /* Message */
   3748 /**
   3749     @}
   3750   */
   3751 
   3752 /** @addtogroup loc_qmi_messages
   3753     @{
   3754   */
   3755 /** Indication Message; Gets the predicted orbits data source. */
   3756 typedef struct {
   3757 
   3758   /* Mandatory */
   3759   /*  Predicted Orbits Data Source Status */
   3760   qmiLocStatusEnumT_v02 status;
   3761   /**<   Status of the query request for a predicted orbits data source.
   3762 
   3763  Valid values: \n
   3764       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   3765       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   3766       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   3767       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   3768       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   3769       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   3770       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   3771       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   3772       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   3773       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   3774       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   3775  */
   3776 
   3777   /* Optional */
   3778   /*  Allowed Sizes */
   3779   uint8_t allowedSizes_valid;  /**< Must be set to true if allowedSizes is being passed */
   3780   qmiLocPredictedOrbitsAllowedSizesStructT_v02 allowedSizes;
   3781   /**<   \n Maximum part and file size allowed to be injected in the engine. */
   3782 
   3783   /* Optional */
   3784   /*  Server List */
   3785   uint8_t serverList_valid;  /**< Must be set to true if serverList is being passed */
   3786   qmiLocPredictedOrbitsServerListStructT_v02 serverList;
   3787   /**<   \n List of servers that can be used by the client to download
   3788        predicted orbits data. */
   3789 }qmiLocGetPredictedOrbitsDataSourceIndMsgT_v02;  /* Message */
   3790 /**
   3791     @}
   3792   */
   3793 
   3794 /** @addtogroup loc_qmi_messages
   3795     @{
   3796   */
   3797 /** Request Message; Gets the predicted orbits data validity. */
   3798 typedef struct {
   3799   /* This element is a placeholder to prevent the declaration of
   3800      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   3801   char __placeholder;
   3802 }qmiLocGetPredictedOrbitsDataValidityReqMsgT_v02;
   3803 
   3804   /* Message */
   3805 /**
   3806     @}
   3807   */
   3808 
   3809 /** @addtogroup loc_qmi_aggregates
   3810     @{
   3811   */
   3812 typedef struct {
   3813 
   3814   uint64_t startTimeInUTC;
   3815   /**<   Predicted orbits data is valid starting from this time. \n
   3816        - Units: Seconds (since Jan. 1, 1970)
   3817         */
   3818 
   3819   uint16_t durationHours;
   3820   /**<   Duration from the start time for which the data is valid.\n
   3821        - Units: Hours
   3822         */
   3823 }qmiLocPredictedOrbitsDataValidityStructT_v02;  /* Type */
   3824 /**
   3825     @}
   3826   */
   3827 
   3828 /** @addtogroup loc_qmi_messages
   3829     @{
   3830   */
   3831 /** Indication Message; Gets the predicted orbits data validity. */
   3832 typedef struct {
   3833 
   3834   /* Mandatory */
   3835   /*  Predicted Orbits Data Validity Status */
   3836   qmiLocStatusEnumT_v02 status;
   3837   /**<   Status of the query request for predicted orbits data validity.
   3838 
   3839  Valid values: \n
   3840       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   3841       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   3842       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   3843       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   3844       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   3845       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   3846       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   3847       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   3848       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   3849       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   3850       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   3851  */
   3852 
   3853   /* Optional */
   3854   /*  Validity Info */
   3855   uint8_t validityInfo_valid;  /**< Must be set to true if validityInfo is being passed */
   3856   qmiLocPredictedOrbitsDataValidityStructT_v02 validityInfo;
   3857 }qmiLocGetPredictedOrbitsDataValidityIndMsgT_v02;  /* Message */
   3858 /**
   3859     @}
   3860   */
   3861 
   3862 /** @addtogroup loc_qmi_messages
   3863     @{
   3864   */
   3865 /** Request Message; Injects UTC time in the location engine. */
   3866 typedef struct {
   3867 
   3868   /* Mandatory */
   3869   /*  UTC Time */
   3870   uint64_t timeUtc;
   3871   /**<   UTC time since Jan. 1, 1970.\n
   3872        - Units: Milliseconds */
   3873 
   3874   /* Mandatory */
   3875   /*  Time Uncertainty */
   3876   uint32_t timeUnc;
   3877   /**<   Time uncertainty.\n
   3878        - Units: Milliseconds */
   3879 }qmiLocInjectUtcTimeReqMsgT_v02;  /* Message */
   3880 /**
   3881     @}
   3882   */
   3883 
   3884 /** @addtogroup loc_qmi_messages
   3885     @{
   3886   */
   3887 /** Indication Message; Injects UTC time in the location engine. */
   3888 typedef struct {
   3889 
   3890   /* Mandatory */
   3891   /*  UTC Time Injection Status */
   3892   qmiLocStatusEnumT_v02 status;
   3893   /**<   Status of the UTC Time Injection request.
   3894 
   3895  Valid values: \n
   3896       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   3897       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   3898       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   3899       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   3900       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   3901       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   3902       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   3903       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   3904       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   3905       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   3906       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   3907  */
   3908 }qmiLocInjectUtcTimeIndMsgT_v02;  /* Message */
   3909 /**
   3910     @}
   3911   */
   3912 
   3913 /** @addtogroup loc_qmi_enums
   3914     @{
   3915   */
   3916 typedef enum {
   3917   QMILOCALTSRCENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   3918   eQMI_LOC_ALT_SRC_UNKNOWN_V02 = 0, /**<  Source is unknown  */
   3919   eQMI_LOC_ALT_SRC_GPS_V02 = 1, /**<  GPS is the source  */
   3920   eQMI_LOC_ALT_SRC_CELL_ID_V02 = 2, /**<  Cell ID provided the source  */
   3921   eQMI_LOC_ALT_SRC_ENHANCED_CELL_ID_V02 = 3, /**<  Source is enhanced cell ID  */
   3922   eQMI_LOC_ALT_SRC_WIFI_V02 = 4, /**<  Wi-Fi is the source  */
   3923   eQMI_LOC_ALT_SRC_TERRESTRIAL_V02 = 5, /**<  Terrestrial source  */
   3924   eQMI_LOC_ALT_SRC_TERRESTRIAL_HYBRID_V02 = 6, /**<  Hybrid terrestrial source  */
   3925   eQMI_LOC_ALT_SRC_ALTITUDE_DATABASE_V02 = 7, /**<  Altitude database is the source  */
   3926   eQMI_LOC_ALT_SRC_BAROMETRIC_ALTIMETER_V02 = 8, /**<  Barometric altimeter is the source  */
   3927   eQMI_LOC_ALT_SRC_OTHER_V02 = 9, /**<  Other sources  */
   3928   QMILOCALTSRCENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   3929 }qmiLocAltSrcEnumT_v02;
   3930 /**
   3931     @}
   3932   */
   3933 
   3934 /** @addtogroup loc_qmi_enums
   3935     @{
   3936   */
   3937 typedef enum {
   3938   QMILOCALTSRCLINKAGEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   3939   eQMI_LOC_ALT_SRC_LINKAGE_NOT_SPECIFIED_V02 = 0, /**<  Not specified  */
   3940   eQMI_LOC_ALT_SRC_LINKAGE_FULLY_INTERDEPENDENT_V02 = 1, /**<  Fully interdependent  */
   3941   eQMI_LOC_ALT_SRC_LINKAGE_DEPENDS_ON_LAT_LONG_V02 = 2, /**<  Depends on latitude and longitude  */
   3942   eQMI_LOC_ALT_SRC_LINKAGE_FULLY_INDEPENDENT_V02 = 3, /**<  Fully independent  */
   3943   QMILOCALTSRCLINKAGEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   3944 }qmiLocAltSrcLinkageEnumT_v02;
   3945 /**
   3946     @}
   3947   */
   3948 
   3949 /** @addtogroup loc_qmi_enums
   3950     @{
   3951   */
   3952 typedef enum {
   3953   QMILOCALTSRCUNCERTAINTYCOVERAGEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   3954   eQMI_LOC_ALT_UNCERTAINTY_NOT_SPECIFIED_V02 = 0, /**<  Not specified  */
   3955   eQMI_LOC_ALT_UNCERTAINTY_POINT_V02 = 1, /**<  Altitude uncertainty is valid at the injected horizontal
   3956        position coordinates only  */
   3957   eQMI_LOC_ALT_UNCERTAINTY_FULL_V02 = 2, /**<  Altitude uncertainty applies to the position of the device
   3958        regardless of horizontal position (within the horizontal
   3959        uncertainty region, if provided)  */
   3960   QMILOCALTSRCUNCERTAINTYCOVERAGEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   3961 }qmiLocAltSrcUncertaintyCoverageEnumT_v02;
   3962 /**
   3963     @}
   3964   */
   3965 
   3966 /** @addtogroup loc_qmi_aggregates
   3967     @{
   3968   */
   3969 typedef struct {
   3970 
   3971   qmiLocAltSrcEnumT_v02 source;
   3972   /**<   Specifies the source of the altitude.
   3973 
   3974  Valid values: \n
   3975       - eQMI_LOC_ALT_SRC_UNKNOWN (0) --  Source is unknown
   3976       - eQMI_LOC_ALT_SRC_GPS (1) --  GPS is the source
   3977       - eQMI_LOC_ALT_SRC_CELL_ID (2) --  Cell ID provided the source
   3978       - eQMI_LOC_ALT_SRC_ENHANCED_CELL_ID (3) --  Source is enhanced cell ID
   3979       - eQMI_LOC_ALT_SRC_WIFI (4) --  Wi-Fi is the source
   3980       - eQMI_LOC_ALT_SRC_TERRESTRIAL (5) --  Terrestrial source
   3981       - eQMI_LOC_ALT_SRC_TERRESTRIAL_HYBRID (6) --  Hybrid terrestrial source
   3982       - eQMI_LOC_ALT_SRC_ALTITUDE_DATABASE (7) --  Altitude database is the source
   3983       - eQMI_LOC_ALT_SRC_BAROMETRIC_ALTIMETER (8) --  Barometric altimeter is the source
   3984       - eQMI_LOC_ALT_SRC_OTHER (9) --  Other sources
   3985  */
   3986 
   3987   qmiLocAltSrcLinkageEnumT_v02 linkage;
   3988   /**<   Specifies the dependency between the horizontal and
   3989  altitude position components.
   3990 
   3991  Valid values: \n
   3992       - eQMI_LOC_ALT_SRC_LINKAGE_NOT_SPECIFIED (0) --  Not specified
   3993       - eQMI_LOC_ALT_SRC_LINKAGE_FULLY_INTERDEPENDENT (1) --  Fully interdependent
   3994       - eQMI_LOC_ALT_SRC_LINKAGE_DEPENDS_ON_LAT_LONG (2) --  Depends on latitude and longitude
   3995       - eQMI_LOC_ALT_SRC_LINKAGE_FULLY_INDEPENDENT (3) --  Fully independent
   3996  */
   3997 
   3998   qmiLocAltSrcUncertaintyCoverageEnumT_v02 coverage;
   3999   /**<   Specifies the region of uncertainty.
   4000 
   4001  Valid values: \n
   4002       - eQMI_LOC_ALT_UNCERTAINTY_NOT_SPECIFIED (0) --  Not specified
   4003       - eQMI_LOC_ALT_UNCERTAINTY_POINT (1) --  Altitude uncertainty is valid at the injected horizontal
   4004        position coordinates only
   4005       - eQMI_LOC_ALT_UNCERTAINTY_FULL (2) --  Altitude uncertainty applies to the position of the device
   4006        regardless of horizontal position (within the horizontal
   4007        uncertainty region, if provided)
   4008  */
   4009 }qmiLocAltitudeSrcInfoStructT_v02;  /* Type */
   4010 /**
   4011     @}
   4012   */
   4013 
   4014 /** @addtogroup loc_qmi_enums
   4015     @{
   4016   */
   4017 typedef enum {
   4018   QMILOCPOSITIONSRCENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   4019   eQMI_LOC_POSITION_SRC_GNSS_V02 = 0, /**<  Position source is GNSS  */
   4020   eQMI_LOC_POSITION_SRC_CELLID_V02 = 1, /**<  Position source is Cell ID  */
   4021   eQMI_LOC_POSITION_SRC_ENH_CELLID_V02 = 2, /**<  Position source is Enhanced Cell ID  */
   4022   eQMI_LOC_POSITION_SRC_WIFI_V02 = 3, /**<  Position source is Wi-Fi  */
   4023   eQMI_LOC_POSITION_SRC_TERRESTRIAL_V02 = 4, /**<  Position source is Terrestrial  */
   4024   eQMI_LOC_POSITION_SRC_GNSS_TERRESTRIAL_HYBRID_V02 = 5, /**<  Position source is GNSS Terrestrial Hybrid  */
   4025   eQMI_LOC_POSITION_SRC_OTHER_V02 = 6, /**<  Other sources  */
   4026   QMILOCPOSITIONSRCENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   4027 }qmiLocPositionSrcEnumT_v02;
   4028 /**
   4029     @}
   4030   */
   4031 
   4032 /** @addtogroup loc_qmi_messages
   4033     @{
   4034   */
   4035 /** Request Message; Injects a position to the location engine. */
   4036 typedef struct {
   4037 
   4038   /* Optional */
   4039   /*  Latitude */
   4040   uint8_t latitude_valid;  /**< Must be set to true if latitude is being passed */
   4041   double latitude;
   4042   /**<   Latitude (specified in WGS84 datum).
   4043        \begin{itemize1}
   4044        \item    Type: Floating point
   4045        \item    Units: Degrees
   4046        \item    Range: -90.0 to 90.0       \begin{itemize1}
   4047          \item    Positive values indicate northern latitude
   4048          \item    Negative values indicate southern latitude
   4049        \vspace{-0.18in} \end{itemize1} \end{itemize1}
   4050     */
   4051 
   4052   /* Optional */
   4053   /*  Longitude */
   4054   uint8_t longitude_valid;  /**< Must be set to true if longitude is being passed */
   4055   double longitude;
   4056   /**<   Longitude (specified in WGS84 datum).
   4057        \begin{itemize1}
   4058        \item    Type: Floating point
   4059        \item    Units: Degrees
   4060        \item    Range: -180.0 to 180.0     \begin{itemize1}
   4061          \item    Positive values indicate eastern longitude
   4062          \item    Negative values indicate western longitude
   4063        \vspace{-0.18in} \end{itemize1} \end{itemize1}
   4064    */
   4065 
   4066   /* Optional */
   4067   /*  Circular Horizontal Uncertainty */
   4068   uint8_t horUncCircular_valid;  /**< Must be set to true if horUncCircular is being passed */
   4069   float horUncCircular;
   4070   /**<   Horizontal position uncertainty (circular).\n
   4071         - Units: Meters */
   4072 
   4073   /* Optional */
   4074   /*  Horizontal Confidence */
   4075   uint8_t horConfidence_valid;  /**< Must be set to true if horConfidence is being passed */
   4076   uint8_t horConfidence;
   4077   /**<   Horizontal confidence, as defined by ETSI TS 101 109 (\hyperref[S4]{[S4]}).
   4078         \begin{itemize1}
   4079         \item    Units: Percent (1 to 99)
   4080         \item    0, 101 to 255 -- invalid value
   4081         \item    If 100 is received, reinterpret to 99
   4082         \end{itemize1}
   4083         This field must be specified together with horizontal uncertainty.
   4084         If not specified when horUncCircular is set, the default value is 50. */
   4085 
   4086   /* Optional */
   4087   /*  Horizontal Reliability */
   4088   uint8_t horReliability_valid;  /**< Must be set to true if horReliability is being passed */
   4089   qmiLocReliabilityEnumT_v02 horReliability;
   4090   /**<   Specifies the reliability of the horizontal position.
   4091 
   4092  Valid values: \n
   4093       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
   4094       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
   4095       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
   4096       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
   4097       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
   4098  */
   4099 
   4100   /* Optional */
   4101   /*  Altitude With Respect to Ellipsoid */
   4102   uint8_t altitudeWrtEllipsoid_valid;  /**< Must be set to true if altitudeWrtEllipsoid is being passed */
   4103   float altitudeWrtEllipsoid;
   4104   /**<   Altitude with respect to the WGS84 ellipsoid.
   4105         \begin{itemize1}
   4106         \item    Units: Meters    \begin{itemize1}
   4107           \item    Positive = height
   4108           \item    Negative = depth
   4109         \vspace{-0.18in} \end{itemize1} \end{itemize1}*/
   4110 
   4111   /* Optional */
   4112   /*  Altitude With Respect to Sea Level */
   4113   uint8_t altitudeWrtMeanSeaLevel_valid;  /**< Must be set to true if altitudeWrtMeanSeaLevel is being passed */
   4114   float altitudeWrtMeanSeaLevel;
   4115   /**<   Altitude with respect to mean sea level.\n
   4116        - Units: Meters */
   4117 
   4118   /* Optional */
   4119   /*  Vertical Uncertainty */
   4120   uint8_t vertUnc_valid;  /**< Must be set to true if vertUnc is being passed */
   4121   float vertUnc;
   4122   /**<   Vertical uncertainty. This is mandatory if either altitudeWrtEllipsoid
   4123         or altitudeWrtMeanSeaLevel is specified.\n
   4124         - Units: Meters */
   4125 
   4126   /* Optional */
   4127   /*  Vertical Confidence */
   4128   uint8_t vertConfidence_valid;  /**< Must be set to true if vertConfidence is being passed */
   4129   uint8_t vertConfidence;
   4130   /**<   Vertical confidence, as defined by  ETSI TS 101 109 (\hyperref[S4]{[S4]}).
   4131         \begin{itemize1}
   4132         \item    Units: Percent (0-99)
   4133         \item    0 -- invalid value
   4134         \item    100 to 256 -- not used
   4135         \item    If 100 is received, reinterpret to 99
   4136         \end{itemize1}
   4137         This field must be specified together with the vertical uncertainty.
   4138         If not specified, the default value will be 50. */
   4139 
   4140   /* Optional */
   4141   /*  Vertical Reliability */
   4142   uint8_t vertReliability_valid;  /**< Must be set to true if vertReliability is being passed */
   4143   qmiLocReliabilityEnumT_v02 vertReliability;
   4144   /**<   Specifies the reliability of the vertical position.
   4145 
   4146  Valid values: \n
   4147       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
   4148       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
   4149       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
   4150       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
   4151       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
   4152  */
   4153 
   4154   /* Optional */
   4155   /*  Altitude Source Info */
   4156   uint8_t altSourceInfo_valid;  /**< Must be set to true if altSourceInfo is being passed */
   4157   qmiLocAltitudeSrcInfoStructT_v02 altSourceInfo;
   4158   /**<   \vspace{0.06in} \n Specifies information regarding the altitude source. */
   4159 
   4160   /* Optional */
   4161   /*  UTC Timestamp */
   4162   uint8_t timestampUtc_valid;  /**< Must be set to true if timestampUtc is being passed */
   4163   uint64_t timestampUtc;
   4164   /**<   UTC timestamp. \n
   4165         - Units: Milliseconds (since Jan. 1, 1970) */
   4166 
   4167   /* Optional */
   4168   /*  Position Age */
   4169   uint8_t timestampAge_valid;  /**< Must be set to true if timestampAge is being passed */
   4170   int32_t timestampAge;
   4171   /**<   Position age, which is an estimate of how long ago this fix was made. \n
   4172         - Units: Milliseconds */
   4173 
   4174   /* Optional */
   4175   /*  Position Source */
   4176   uint8_t positionSrc_valid;  /**< Must be set to true if positionSrc is being passed */
   4177   qmiLocPositionSrcEnumT_v02 positionSrc;
   4178   /**<   Source from which this position was obtained.
   4179 
   4180  Valid values: \n
   4181       - eQMI_LOC_POSITION_SRC_GNSS (0) --  Position source is GNSS
   4182       - eQMI_LOC_POSITION_SRC_CELLID (1) --  Position source is Cell ID
   4183       - eQMI_LOC_POSITION_SRC_ENH_CELLID (2) --  Position source is Enhanced Cell ID
   4184       - eQMI_LOC_POSITION_SRC_WIFI (3) --  Position source is Wi-Fi
   4185       - eQMI_LOC_POSITION_SRC_TERRESTRIAL (4) --  Position source is Terrestrial
   4186       - eQMI_LOC_POSITION_SRC_GNSS_TERRESTRIAL_HYBRID (5) --  Position source is GNSS Terrestrial Hybrid
   4187       - eQMI_LOC_POSITION_SRC_OTHER (6) --  Other sources
   4188 
   4189  If altitude is specified and the altitude source is not specified, the engine
   4190  assumes that the altitude was obtained using the specified position source. \n
   4191  If both altitude and altitude source are specified, the engine assumes
   4192  that only latitude and longitude were obtained using the specified position
   4193  source.
   4194  */
   4195 
   4196   /* Optional */
   4197   /*  Raw Circular Horizontal Uncertainty */
   4198   uint8_t rawHorUncCircular_valid;  /**< Must be set to true if rawHorUncCircular is being passed */
   4199   float rawHorUncCircular;
   4200   /**<   Horizontal position uncertainty (circular) without any optimization.\n
   4201         - Units: Meters */
   4202 
   4203   /* Optional */
   4204   /*  Raw Horizontal Confidence */
   4205   uint8_t rawHorConfidence_valid;  /**< Must be set to true if rawHorConfidence is being passed */
   4206   uint8_t rawHorConfidence;
   4207   /**<   Horizontal confidence associated with raw horizontal uncertainty,
   4208         as defined by ETSI TS 101 109 (\hyperref[S4]{[S4]}).
   4209         \begin{itemize1}
   4210         \item    Units: Percent (1 to 99)
   4211         \item    0, 101 to 255 -- invalid value
   4212         \item    If 100 is received, reinterpret to 99
   4213         \end{itemize1}
   4214         This field must be specified together with raw horizontal uncertainty.
   4215         If not specified when rawHorUncCircular is set, the default value is 50. */
   4216 }qmiLocInjectPositionReqMsgT_v02;  /* Message */
   4217 /**
   4218     @}
   4219   */
   4220 
   4221 /** @addtogroup loc_qmi_messages
   4222     @{
   4223   */
   4224 /** Indication Message; Injects a position to the location engine. */
   4225 typedef struct {
   4226 
   4227   /* Mandatory */
   4228   /*  UTC Position Injection Status */
   4229   qmiLocStatusEnumT_v02 status;
   4230   /**<   Status of the UTC Position Injection request.
   4231 
   4232  Valid values: \n
   4233       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   4234       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   4235       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   4236       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   4237       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   4238       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   4239       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   4240       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   4241       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   4242       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   4243       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   4244  */
   4245 }qmiLocInjectPositionIndMsgT_v02;  /* Message */
   4246 /**
   4247     @}
   4248   */
   4249 
   4250 /** @addtogroup loc_qmi_enums
   4251     @{
   4252   */
   4253 typedef enum {
   4254   QMILOCLOCKENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   4255   eQMI_LOC_LOCK_NONE_V02 = 1, /**<  Do not lock any position sessions  */
   4256   eQMI_LOC_LOCK_MI_V02 = 2, /**<  Lock mobile-initiated position sessions  */
   4257   eQMI_LOC_LOCK_MT_V02 = 3, /**<  Lock mobile-terminated position sessions  */
   4258   eQMI_LOC_LOCK_ALL_V02 = 4, /**<  Lock all position sessions  */
   4259   QMILOCLOCKENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   4260 }qmiLocLockEnumT_v02;
   4261 /**
   4262     @}
   4263   */
   4264 
   4265 /** @addtogroup loc_qmi_messages
   4266     @{
   4267   */
   4268 /** Request Message; Sets the location engine lock. */
   4269 typedef struct {
   4270 
   4271   /* Mandatory */
   4272   /*  Lock Type */
   4273   qmiLocLockEnumT_v02 lockType;
   4274   /**<   Type of lock.
   4275 
   4276  Valid values: \n
   4277       - eQMI_LOC_LOCK_NONE (1) --  Do not lock any position sessions
   4278       - eQMI_LOC_LOCK_MI (2) --  Lock mobile-initiated position sessions
   4279       - eQMI_LOC_LOCK_MT (3) --  Lock mobile-terminated position sessions
   4280       - eQMI_LOC_LOCK_ALL (4) --  Lock all position sessions
   4281  */
   4282 }qmiLocSetEngineLockReqMsgT_v02;  /* Message */
   4283 /**
   4284     @}
   4285   */
   4286 
   4287 /** @addtogroup loc_qmi_messages
   4288     @{
   4289   */
   4290 /** Indication Message; Sets the location engine lock. */
   4291 typedef struct {
   4292 
   4293   /* Mandatory */
   4294   /*  Set Engine Lock Status */
   4295   qmiLocStatusEnumT_v02 status;
   4296   /**<   Status of the Set Engine Lock request.
   4297 
   4298  Valid values: \n
   4299       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   4300       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   4301       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   4302       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   4303       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   4304       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   4305       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   4306       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   4307       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   4308       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   4309       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   4310  */
   4311 }qmiLocSetEngineLockIndMsgT_v02;  /* Message */
   4312 /**
   4313     @}
   4314   */
   4315 
   4316 /** @addtogroup loc_qmi_messages
   4317     @{
   4318   */
   4319 /** Request Message; Gets the location engine lock. */
   4320 typedef struct {
   4321   /* This element is a placeholder to prevent the declaration of
   4322      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   4323   char __placeholder;
   4324 }qmiLocGetEngineLockReqMsgT_v02;
   4325 
   4326   /* Message */
   4327 /**
   4328     @}
   4329   */
   4330 
   4331 /** @addtogroup loc_qmi_messages
   4332     @{
   4333   */
   4334 /** Indication Message; Gets the location engine lock. */
   4335 typedef struct {
   4336 
   4337   /* Mandatory */
   4338   /*  Get Engine Lock Status */
   4339   qmiLocStatusEnumT_v02 status;
   4340   /**<   Status of the Get Engine Lock request.
   4341 
   4342  Valid values: \n
   4343       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   4344       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   4345       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   4346       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   4347       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   4348       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   4349       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   4350       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   4351       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   4352       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   4353       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   4354  */
   4355 
   4356   /* Optional */
   4357   /*  Lock Type */
   4358   uint8_t lockType_valid;  /**< Must be set to true if lockType is being passed */
   4359   qmiLocLockEnumT_v02 lockType;
   4360   /**<   Type of lock.
   4361 
   4362  Valid values: \n
   4363       - eQMI_LOC_LOCK_NONE (1) --  Do not lock any position sessions
   4364       - eQMI_LOC_LOCK_MI (2) --  Lock mobile-initiated position sessions
   4365       - eQMI_LOC_LOCK_MT (3) --  Lock mobile-terminated position sessions
   4366       - eQMI_LOC_LOCK_ALL (4) --  Lock all position sessions
   4367  */
   4368 }qmiLocGetEngineLockIndMsgT_v02;  /* Message */
   4369 /**
   4370     @}
   4371   */
   4372 
   4373 /** @addtogroup loc_qmi_messages
   4374     @{
   4375   */
   4376 /** Request Message; Sets the SBAS configuration. */
   4377 typedef struct {
   4378 
   4379   /* Mandatory */
   4380   /*  SBAS Config */
   4381   uint8_t sbasConfig;
   4382   /**<   Indicates whether SBAS configuration is enabled.
   4383        \begin{itemize1}
   4384        \item    0x01 (TRUE) -- SBAS configuration is enabled
   4385        \item    0x00 (FALSE) -- SBAS configuration is disabled
   4386        \vspace{-0.18in} \end{itemize1}*/
   4387 }qmiLocSetSbasConfigReqMsgT_v02;  /* Message */
   4388 /**
   4389     @}
   4390   */
   4391 
   4392 /** @addtogroup loc_qmi_messages
   4393     @{
   4394   */
   4395 /** Indication Message; Sets the SBAS configuration. */
   4396 typedef struct {
   4397 
   4398   /* Mandatory */
   4399   /*  Set SBAS Config Status */
   4400   qmiLocStatusEnumT_v02 status;
   4401   /**<   Status of the Set SBAS Configuration request.
   4402 
   4403  Valid values: \n
   4404       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   4405       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   4406       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   4407       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   4408       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   4409       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   4410       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   4411       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   4412       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   4413       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   4414       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   4415  */
   4416 }qmiLocSetSbasConfigIndMsgT_v02;  /* Message */
   4417 /**
   4418     @}
   4419   */
   4420 
   4421 /** @addtogroup loc_qmi_messages
   4422     @{
   4423   */
   4424 /** Request Message; Gets the SBAS configuration from the location engine. */
   4425 typedef struct {
   4426   /* This element is a placeholder to prevent the declaration of
   4427      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   4428   char __placeholder;
   4429 }qmiLocGetSbasConfigReqMsgT_v02;
   4430 
   4431   /* Message */
   4432 /**
   4433     @}
   4434   */
   4435 
   4436 /** @addtogroup loc_qmi_messages
   4437     @{
   4438   */
   4439 /** Indication Message; Gets the SBAS configuration from the location engine. */
   4440 typedef struct {
   4441 
   4442   /* Mandatory */
   4443   /*  Get SBAS Config Status */
   4444   qmiLocStatusEnumT_v02 status;
   4445   /**<   Status of the Get SBAS Configuration request.
   4446 
   4447  Valid values: \n
   4448       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   4449       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   4450       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   4451       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   4452       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   4453       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   4454       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   4455       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   4456       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   4457       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   4458       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   4459  */
   4460 
   4461   /* Optional */
   4462   /*  SBAS Config */
   4463   uint8_t sbasConfig_valid;  /**< Must be set to true if sbasConfig is being passed */
   4464   uint8_t sbasConfig;
   4465   /**<   Indicates whether SBAS configuration is enabled.
   4466        \begin{itemize1}
   4467        \item    0x01 (TRUE) -- SBAS configuration is enabled
   4468        \item    0x00 (FALSE) -- SBAS configuration is disabled
   4469        \vspace{-0.18in} \end{itemize1}*/
   4470 }qmiLocGetSbasConfigIndMsgT_v02;  /* Message */
   4471 /**
   4472     @}
   4473   */
   4474 
   4475 typedef uint32_t qmiLocNmeaSentenceMaskT_v02;
   4476 #define QMI_LOC_NMEA_MASK_GGA_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000001) /**<  Enable GGA type  */
   4477 #define QMI_LOC_NMEA_MASK_RMC_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000002) /**<  Enable RMC type  */
   4478 #define QMI_LOC_NMEA_MASK_GSV_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000004) /**<  Enable GSV type  */
   4479 #define QMI_LOC_NMEA_MASK_GSA_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000008) /**<  Enable GSA type  */
   4480 #define QMI_LOC_NMEA_MASK_VTG_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000010) /**<  Enable VTG type  */
   4481 #define QMI_LOC_NMEA_MASK_PQXFI_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000020) /**<  Enable PQXFI type  */
   4482 #define QMI_LOC_NMEA_MASK_PSTIS_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000040) /**<  Enable PSTIS type  */
   4483 #define QMI_LOC_NMEA_MASK_GLGSV_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000080) /**<  Enable GLGSV type  */
   4484 #define QMI_LOC_NMEA_MASK_GNGSA_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000100) /**<  Enable GNGSA type  */
   4485 #define QMI_LOC_NMEA_MASK_GNGNS_V02 ((qmiLocNmeaSentenceMaskT_v02)0x00000200) /**<  Enable GNGNS type  */
   4486 /** @addtogroup loc_qmi_messages
   4487     @{
   4488   */
   4489 /** Request Message; Sets the NMEA types. */
   4490 typedef struct {
   4491 
   4492   /* Mandatory */
   4493   /*  NMEA Sentence Types */
   4494   qmiLocNmeaSentenceMaskT_v02 nmeaSentenceType;
   4495   /**<   Bitmasks of NMEA types to enable.
   4496 
   4497  Valid bitmasks: \n
   4498       - QMI_LOC_NMEA_MASK_GGA (0x00000001) --  Enable GGA type
   4499       - QMI_LOC_NMEA_MASK_RMC (0x00000002) --  Enable RMC type
   4500       - QMI_LOC_NMEA_MASK_GSV (0x00000004) --  Enable GSV type
   4501       - QMI_LOC_NMEA_MASK_GSA (0x00000008) --  Enable GSA type
   4502       - QMI_LOC_NMEA_MASK_VTG (0x00000010) --  Enable VTG type
   4503       - QMI_LOC_NMEA_MASK_PQXFI (0x00000020) --  Enable PQXFI type
   4504       - QMI_LOC_NMEA_MASK_PSTIS (0x00000040) --  Enable PSTIS type
   4505       - QMI_LOC_NMEA_MASK_GLGSV (0x00000080) --  Enable GLGSV type
   4506       - QMI_LOC_NMEA_MASK_GNGSA (0x00000100) --  Enable GNGSA type
   4507       - QMI_LOC_NMEA_MASK_GNGNS (0x00000200) --  Enable GNGNS type
   4508  */
   4509 }qmiLocSetNmeaTypesReqMsgT_v02;  /* Message */
   4510 /**
   4511     @}
   4512   */
   4513 
   4514 /** @addtogroup loc_qmi_messages
   4515     @{
   4516   */
   4517 /** Indication Message; Sets the NMEA types. */
   4518 typedef struct {
   4519 
   4520   /* Mandatory */
   4521   /*  Set NMEA Types Status */
   4522   qmiLocStatusEnumT_v02 status;
   4523   /**<   Status of Set NMEA Types request.
   4524 
   4525  Valid values: \n
   4526       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   4527       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   4528       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   4529       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   4530       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   4531       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   4532       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   4533       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   4534       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   4535       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   4536       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   4537  */
   4538 }qmiLocSetNmeaTypesIndMsgT_v02;  /* Message */
   4539 /**
   4540     @}
   4541   */
   4542 
   4543 /** @addtogroup loc_qmi_messages
   4544     @{
   4545   */
   4546 /** Request Message; Gets the NMEA types from the location engine. */
   4547 typedef struct {
   4548   /* This element is a placeholder to prevent the declaration of
   4549      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   4550   char __placeholder;
   4551 }qmiLocGetNmeaTypesReqMsgT_v02;
   4552 
   4553   /* Message */
   4554 /**
   4555     @}
   4556   */
   4557 
   4558 /** @addtogroup loc_qmi_messages
   4559     @{
   4560   */
   4561 /** Indication Message; Gets the NMEA types from the location engine. */
   4562 typedef struct {
   4563 
   4564   /* Mandatory */
   4565   /*  Get NMEA Types Status */
   4566   qmiLocStatusEnumT_v02 status;
   4567   /**<   Status of the Get NMEA Types request.
   4568 
   4569  Valid values: \n
   4570       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   4571       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   4572       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   4573       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   4574       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   4575       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   4576       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   4577       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   4578       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   4579       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   4580       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   4581  */
   4582 
   4583   /* Optional */
   4584   /*  NMEA Sentence Types */
   4585   uint8_t nmeaSentenceType_valid;  /**< Must be set to true if nmeaSentenceType is being passed */
   4586   qmiLocNmeaSentenceMaskT_v02 nmeaSentenceType;
   4587   /**<   NMEA types to enable.
   4588 
   4589  Valid bitmasks: \n
   4590       - QMI_LOC_NMEA_MASK_GGA (0x00000001) --  Enable GGA type
   4591       - QMI_LOC_NMEA_MASK_RMC (0x00000002) --  Enable RMC type
   4592       - QMI_LOC_NMEA_MASK_GSV (0x00000004) --  Enable GSV type
   4593       - QMI_LOC_NMEA_MASK_GSA (0x00000008) --  Enable GSA type
   4594       - QMI_LOC_NMEA_MASK_VTG (0x00000010) --  Enable VTG type
   4595       - QMI_LOC_NMEA_MASK_PQXFI (0x00000020) --  Enable PQXFI type
   4596       - QMI_LOC_NMEA_MASK_PSTIS (0x00000040) --  Enable PSTIS type
   4597       - QMI_LOC_NMEA_MASK_GLGSV (0x00000080) --  Enable GLGSV type
   4598       - QMI_LOC_NMEA_MASK_GNGSA (0x00000100) --  Enable GNGSA type
   4599       - QMI_LOC_NMEA_MASK_GNGNS (0x00000200) --  Enable GNGNS type
   4600  */
   4601 }qmiLocGetNmeaTypesIndMsgT_v02;  /* Message */
   4602 /**
   4603     @}
   4604   */
   4605 
   4606 /** @addtogroup loc_qmi_messages
   4607     @{
   4608   */
   4609 /** Request Message; Enables/disables Low Power Mode (LPM) configuration. */
   4610 typedef struct {
   4611 
   4612   /* Mandatory */
   4613   /*  Enable Low Power Mode */
   4614   uint8_t lowPowerMode;
   4615   /**<   Indicates whether to enable Low Power mode:\n
   4616        - 0x01 (TRUE) -- Enable LPM \n
   4617        - 0x00 (FALSE) -- Disable LPM */
   4618 }qmiLocSetLowPowerModeReqMsgT_v02;  /* Message */
   4619 /**
   4620     @}
   4621   */
   4622 
   4623 /** @addtogroup loc_qmi_messages
   4624     @{
   4625   */
   4626 /** Indication Message; Enables/disables Low Power Mode (LPM) configuration. */
   4627 typedef struct {
   4628 
   4629   /* Mandatory */
   4630   /*  Set LPM Status */
   4631   qmiLocStatusEnumT_v02 status;
   4632   /**<   Status of the Set Low Power Mode request.
   4633 
   4634  Valid values: \n
   4635       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   4636       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   4637       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   4638       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   4639       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   4640       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   4641       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   4642       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   4643       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   4644       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   4645       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   4646  */
   4647 }qmiLocSetLowPowerModeIndMsgT_v02;  /* Message */
   4648 /**
   4649     @}
   4650   */
   4651 
   4652 /** @addtogroup loc_qmi_messages
   4653     @{
   4654   */
   4655 /** Request Message; Gets the LPM status from the location engine. */
   4656 typedef struct {
   4657   /* This element is a placeholder to prevent the declaration of
   4658      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   4659   char __placeholder;
   4660 }qmiLocGetLowPowerModeReqMsgT_v02;
   4661 
   4662   /* Message */
   4663 /**
   4664     @}
   4665   */
   4666 
   4667 /** @addtogroup loc_qmi_messages
   4668     @{
   4669   */
   4670 /** Indication Message; Gets the LPM status from the location engine. */
   4671 typedef struct {
   4672 
   4673   /* Mandatory */
   4674   /*  Get LPM Status */
   4675   qmiLocStatusEnumT_v02 status;
   4676   /**<   Status of the Get LPM request.
   4677 
   4678  Valid values: \n
   4679       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   4680       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   4681       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   4682       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   4683       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   4684       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   4685       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   4686       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   4687       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   4688       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   4689       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   4690  */
   4691 
   4692   /* Optional */
   4693   /*  Enable/Disable LPM */
   4694   uint8_t lowPowerMode_valid;  /**< Must be set to true if lowPowerMode is being passed */
   4695   uint8_t lowPowerMode;
   4696   /**<   Indicates whether to enable Low Power mode:\n
   4697        - 0x01 (TRUE) -- Enable LPM \n
   4698        - 0x00 (FALSE) -- Disable LPM */
   4699 }qmiLocGetLowPowerModeIndMsgT_v02;  /* Message */
   4700 /**
   4701     @}
   4702   */
   4703 
   4704 /** @addtogroup loc_qmi_enums
   4705     @{
   4706   */
   4707 typedef enum {
   4708   QMILOCSERVERTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   4709   eQMI_LOC_SERVER_TYPE_CDMA_PDE_V02 = 1, /**<  Server type is CDMA PDE  */
   4710   eQMI_LOC_SERVER_TYPE_CDMA_MPC_V02 = 2, /**<  Server type is CDMA MPC  */
   4711   eQMI_LOC_SERVER_TYPE_UMTS_SLP_V02 = 3, /**<  Server type is UMTS SLP  */
   4712   eQMI_LOC_SERVER_TYPE_CUSTOM_PDE_V02 = 4, /**<  Server type is custom PDE  */
   4713   QMILOCSERVERTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   4714 }qmiLocServerTypeEnumT_v02;
   4715 /**
   4716     @}
   4717   */
   4718 
   4719 /** @addtogroup loc_qmi_messages
   4720     @{
   4721   */
   4722 /** Request Message; Specifies the A-GPS server type and address. */
   4723 typedef struct {
   4724 
   4725   /* Mandatory */
   4726   /*  Server Type */
   4727   qmiLocServerTypeEnumT_v02 serverType;
   4728   /**<   Type of server.
   4729 
   4730  Valid values: \n
   4731       - eQMI_LOC_SERVER_TYPE_CDMA_PDE (1) --  Server type is CDMA PDE
   4732       - eQMI_LOC_SERVER_TYPE_CDMA_MPC (2) --  Server type is CDMA MPC
   4733       - eQMI_LOC_SERVER_TYPE_UMTS_SLP (3) --  Server type is UMTS SLP
   4734       - eQMI_LOC_SERVER_TYPE_CUSTOM_PDE (4) --  Server type is custom PDE
   4735  */
   4736 
   4737   /* Optional */
   4738   /*  IPv4 Address */
   4739   uint8_t ipv4Addr_valid;  /**< Must be set to true if ipv4Addr is being passed */
   4740   qmiLocIpV4AddrStructType_v02 ipv4Addr;
   4741   /**<   \vspace{0.06in} \n IPv4 address and port. */
   4742 
   4743   /* Optional */
   4744   /*  IPv6 Address */
   4745   uint8_t ipv6Addr_valid;  /**< Must be set to true if ipv6Addr is being passed */
   4746   qmiLocIpV6AddrStructType_v02 ipv6Addr;
   4747   /**<   \vspace{0.06in} \n IPv6 address and port. */
   4748 
   4749   /* Optional */
   4750   /*  Uniform Resource Locator */
   4751   uint8_t urlAddr_valid;  /**< Must be set to true if urlAddr is being passed */
   4752   char urlAddr[QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 + 1];
   4753   /**<   URL address.
   4754        \begin{itemize1}
   4755        \item    Type: NULL-terminated string
   4756        \item    Maximum string length (including NULL terminator): 256
   4757        \vspace{-0.18in} \end{itemize1}
   4758   */
   4759 }qmiLocSetServerReqMsgT_v02;  /* Message */
   4760 /**
   4761     @}
   4762   */
   4763 
   4764 /** @addtogroup loc_qmi_messages
   4765     @{
   4766   */
   4767 /** Indication Message; Specifies the A-GPS server type and address. */
   4768 typedef struct {
   4769 
   4770   /* Mandatory */
   4771   /*  Set Server Status */
   4772   qmiLocStatusEnumT_v02 status;
   4773   /**<   Status of the Set Server request.
   4774 
   4775  Valid values: \n
   4776       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   4777       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   4778       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   4779       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   4780       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   4781       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   4782       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   4783       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   4784       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   4785       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   4786       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   4787  */
   4788 }qmiLocSetServerIndMsgT_v02;  /* Message */
   4789 /**
   4790     @}
   4791   */
   4792 
   4793 /** @addtogroup loc_qmi_messages
   4794     @{
   4795   */
   4796 /** Request Message; Gets the location server from the location engine. */
   4797 typedef struct {
   4798 
   4799   /* Mandatory */
   4800   /*  Server Type */
   4801   qmiLocServerTypeEnumT_v02 serverType;
   4802   /**<   Type of server.
   4803 
   4804  Valid values: \n
   4805       - eQMI_LOC_SERVER_TYPE_CDMA_PDE (1) --  Server type is CDMA PDE
   4806       - eQMI_LOC_SERVER_TYPE_CDMA_MPC (2) --  Server type is CDMA MPC
   4807       - eQMI_LOC_SERVER_TYPE_UMTS_SLP (3) --  Server type is UMTS SLP
   4808       - eQMI_LOC_SERVER_TYPE_CUSTOM_PDE (4) --  Server type is custom PDE
   4809  */
   4810 
   4811   /* Optional */
   4812   /*  Server Address Type */
   4813   uint8_t serverAddrTypeMask_valid;  /**< Must be set to true if serverAddrTypeMask is being passed */
   4814   qmiLocServerAddrTypeMaskT_v02 serverAddrTypeMask;
   4815   /**<   Type of address the client wants. If unspecified, the
   4816        indication will contain all the types of addresses
   4817        it has for the specified server type.
   4818 
   4819        Valid bitmasks: \n
   4820          - 0x01 -- IPv4 \n
   4821          - 0x02 -- IPv6 \n
   4822          - 0x04 -- URL
   4823   */
   4824 }qmiLocGetServerReqMsgT_v02;  /* Message */
   4825 /**
   4826     @}
   4827   */
   4828 
   4829 /** @addtogroup loc_qmi_messages
   4830     @{
   4831   */
   4832 /** Indication Message; Gets the location server from the location engine. */
   4833 typedef struct {
   4834 
   4835   /* Mandatory */
   4836   /*  Get Server Status */
   4837   qmiLocStatusEnumT_v02 status;
   4838   /**<   Status of the Get Server request.
   4839 
   4840  Valid values: \n
   4841       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   4842       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   4843       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   4844       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   4845       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   4846       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   4847       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   4848       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   4849       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   4850       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   4851       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   4852  */
   4853 
   4854   /* Mandatory */
   4855   /*  Server Type */
   4856   qmiLocServerTypeEnumT_v02 serverType;
   4857   /**<   Type of server.
   4858 
   4859  Valid values: \n
   4860       - eQMI_LOC_SERVER_TYPE_CDMA_PDE (1) --  Server type is CDMA PDE
   4861       - eQMI_LOC_SERVER_TYPE_CDMA_MPC (2) --  Server type is CDMA MPC
   4862       - eQMI_LOC_SERVER_TYPE_UMTS_SLP (3) --  Server type is UMTS SLP
   4863       - eQMI_LOC_SERVER_TYPE_CUSTOM_PDE (4) --  Server type is custom PDE
   4864  */
   4865 
   4866   /* Optional */
   4867   /*  IPv4 Address */
   4868   uint8_t ipv4Addr_valid;  /**< Must be set to true if ipv4Addr is being passed */
   4869   qmiLocIpV4AddrStructType_v02 ipv4Addr;
   4870   /**<   \vspace{0.06in} \n IPv4 address and port. */
   4871 
   4872   /* Optional */
   4873   /*  IPv6 Address */
   4874   uint8_t ipv6Addr_valid;  /**< Must be set to true if ipv6Addr is being passed */
   4875   qmiLocIpV6AddrStructType_v02 ipv6Addr;
   4876   /**<   \vspace{0.06in} \n IPv6 address and port. */
   4877 
   4878   /* Optional */
   4879   /*  Uniform Resource Locator */
   4880   uint8_t urlAddr_valid;  /**< Must be set to true if urlAddr is being passed */
   4881   char urlAddr[QMI_LOC_MAX_SERVER_ADDR_LENGTH_V02 + 1];
   4882   /**<   URL.
   4883        \begin{itemize1}
   4884        \item    Type: NULL-terminated string
   4885        \item    Maximum string length (including NULL terminator): 256
   4886        \vspace{-0.18in} \end{itemize1}
   4887   */
   4888 }qmiLocGetServerIndMsgT_v02;  /* Message */
   4889 /**
   4890     @}
   4891   */
   4892 
   4893 typedef uint64_t qmiLocDeleteGnssDataMaskT_v02;
   4894 #define QMI_LOC_MASK_DELETE_GPS_SVDIR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000001ull) /**<  Mask to delete GPS SVDIR  */
   4895 #define QMI_LOC_MASK_DELETE_GPS_SVSTEER_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000002ull) /**<  Mask to delete GPS SVSTEER  */
   4896 #define QMI_LOC_MASK_DELETE_GPS_TIME_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000004ull) /**<  Mask to delete GPS time  */
   4897 #define QMI_LOC_MASK_DELETE_GPS_ALM_CORR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000008ull) /**<  Mask to delete almanac correlation  */
   4898 #define QMI_LOC_MASK_DELETE_GLO_SVDIR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000010ull) /**<  Mask to delete GLONASS SVDIR  */
   4899 #define QMI_LOC_MASK_DELETE_GLO_SVSTEER_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000020ull) /**<  Mask to delete GLONASS SVSTEER  */
   4900 #define QMI_LOC_MASK_DELETE_GLO_TIME_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000040ull) /**<  Mask to delete GLONASS time  */
   4901 #define QMI_LOC_MASK_DELETE_GLO_ALM_CORR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000080ull) /**<  Mask to delete GLONASS almanac correlation  */
   4902 #define QMI_LOC_MASK_DELETE_SBAS_SVDIR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000100ull) /**<  Mask to delete SBAS SVDIR  */
   4903 #define QMI_LOC_MASK_DELETE_SBAS_SVSTEER_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000200ull) /**<  Mask to delete SBAS SVSTEER  */
   4904 #define QMI_LOC_MASK_DELETE_POSITION_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000400ull) /**<  Mask to delete position estimate  */
   4905 #define QMI_LOC_MASK_DELETE_TIME_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00000800ull) /**<  Mask to delete time estimate  */
   4906 #define QMI_LOC_MASK_DELETE_IONO_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00001000ull) /**<  Mask to delete IONO  */
   4907 #define QMI_LOC_MASK_DELETE_UTC_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00002000ull) /**<  Mask to delete UTC estimate  */
   4908 #define QMI_LOC_MASK_DELETE_HEALTH_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00004000ull) /**<  Mask to delete SV health record  */
   4909 #define QMI_LOC_MASK_DELETE_SADATA_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00008000ull) /**<  Mask to delete SADATA  */
   4910 #define QMI_LOC_MASK_DELETE_RTI_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00010000ull) /**<  Mask to delete RTI  */
   4911 #define QMI_LOC_MASK_DELETE_SV_NO_EXIST_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00020000ull) /**<  Mask to delete SV_NO_EXIST  */
   4912 #define QMI_LOC_MASK_DELETE_FREQ_BIAS_EST_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00040000ull) /**<  Mask to delete frequency bias estimate  */
   4913 #define QMI_LOC_MASK_DELETE_BDS_SVDIR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00080000ull) /**<  Mask to delete BDS SVDIR  */
   4914 #define QMI_LOC_MASK_DELETE_BDS_SVSTEER_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00100000ull) /**<  Mask to delete BDS SVSTEER  */
   4915 #define QMI_LOC_MASK_DELETE_BDS_TIME_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00200000ull) /**<  Mask to delete BDS time  */
   4916 #define QMI_LOC_MASK_DELETE_BDS_ALM_CORR_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00400000ull) /**<  Mask to delete BDS almanac correlation  */
   4917 #define QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_GPS_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x00800000ull) /**<  Mask to delete GNSS SV blacklist GPS   */
   4918 #define QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_GLO_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x01000000ull) /**<  Mask to delete GNSS SV blacklist GLO   */
   4919 #define QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_BDS_V02 ((qmiLocDeleteGnssDataMaskT_v02)0x02000000ull) /**<  Mask to delete GNSS SV blacklist BDS   */
   4920 typedef uint32_t qmiLocDeleteCelldbDataMaskT_v02;
   4921 #define QMI_LOC_MASK_DELETE_CELLDB_POS_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000001) /**<  Mask to delete cell database position  */
   4922 #define QMI_LOC_MASK_DELETE_CELLDB_LATEST_GPS_POS_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000002) /**<  Mask to delete cell database latest GPS position  */
   4923 #define QMI_LOC_MASK_DELETE_CELLDB_OTA_POS_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000004) /**<  Mask to delete cell database OTA position  */
   4924 #define QMI_LOC_MASK_DELETE_CELLDB_EXT_REF_POS_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000008) /**<  Mask to delete cell database external reference position  */
   4925 #define QMI_LOC_MASK_DELETE_CELLDB_TIMETAG_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000010) /**<  Mask to delete cell database time tag  */
   4926 #define QMI_LOC_MASK_DELETE_CELLDB_CELLID_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000020) /**<  Mask to delete cell database cell ID  */
   4927 #define QMI_LOC_MASK_DELETE_CELLDB_CACHED_CELLID_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000040) /**<  Mask to delete cell database cached cell ID  */
   4928 #define QMI_LOC_MASK_DELETE_CELLDB_LAST_SRV_CELL_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000080) /**<  Mask to delete cell database last service cell  */
   4929 #define QMI_LOC_MASK_DELETE_CELLDB_CUR_SRV_CELL_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000100) /**<  Mask to delete cell database current service cell  */
   4930 #define QMI_LOC_MASK_DELETE_CELLDB_NEIGHBOR_INFO_V02 ((qmiLocDeleteCelldbDataMaskT_v02)0x00000200) /**<  Mask to delete cell database neighbor information  */
   4931 typedef uint32_t qmiLocDeleteClockInfoMaskT_v02;
   4932 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_TIME_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000001) /**<  Mask to delete time estimate from clock information  */
   4933 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_FREQ_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000002) /**<  Mask to delete frequency estimate from clock information  */
   4934 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_WEEK_NUMBER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000004) /**<  Mask to delete week number from clock information  */
   4935 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_RTC_TIME_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000008) /**<  Mask to delete RTC time from clock information  */
   4936 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_TIME_TRANSFER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000010) /**<  Mask to delete time transfer from clock information  */
   4937 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_GPSTIME_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000020) /**<  Mask to delete GPS time estimate from clock information  */
   4938 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_GLOTIME_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000040) /**<  Mask to delete GLONASS time estimate from clock information  */
   4939 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_GLODAY_NUMBER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000080) /**<  Mask to delete GLONASS day number from clock information  */
   4940 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_GLO4YEAR_NUMBER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000100) /**<  Mask to delete GLONASS four year number from clock information  */
   4941 #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  */
   4942 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_DISABLE_TT_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000400) /**<  Mask to delete disable TT from clock information  */
   4943 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_GG_LEAPSEC_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00000800) /**<  Mask to delete a BDS time estimate from the clock information  */
   4944 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_GG_GGTB_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00001000) /**<  Mask to delete a BDS time estimate from the clock information  */
   4945 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_BDSTIME_EST_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00002000) /**<  Mask to delete a BDS time estimate from the clock information  */
   4946 #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
   4947       clock information  */
   4948 #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
   4949        clock information  */
   4950 #define QMI_LOC_MASK_DELETE_CLOCK_INFO_BDSWEEK_NUMBER_V02 ((qmiLocDeleteClockInfoMaskT_v02)0x00010000) /**<  Mask to delete the BDS week number from the clock information  */
   4951 #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  */
   4952 typedef uint8_t qmiLocDeleteSvInfoMaskT_v02;
   4953 #define QMI_LOC_MASK_DELETE_EPHEMERIS_V02 ((qmiLocDeleteSvInfoMaskT_v02)0x01) /**<  Delete ephemeris for the satellite  */
   4954 #define QMI_LOC_MASK_DELETE_ALMANAC_V02 ((qmiLocDeleteSvInfoMaskT_v02)0x02) /**<  Delete almanac for the satellite  */
   4955 /** @addtogroup loc_qmi_aggregates
   4956     @{
   4957   */
   4958 typedef struct {
   4959 
   4960   uint16_t gnssSvId;
   4961   /**<   SV ID of the satellite whose data is to be deleted.
   4962        \begin{itemize1}
   4963        \item    Range:    \begin{itemize1}
   4964          \item    For GPS:     1 to 32
   4965          \item    For SBAS:    33 to 64
   4966          \item    For GLONASS: 65 to 96
   4967        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
   4968 
   4969   qmiLocSvSystemEnumT_v02 system;
   4970   /**<   Indicates to which constellation this SV belongs.
   4971 
   4972  Valid values: \n
   4973       - eQMI_LOC_SV_SYSTEM_GPS (1) --  GPS satellite
   4974       - eQMI_LOC_SV_SYSTEM_GALILEO (2) --  GALILEO satellite
   4975       - eQMI_LOC_SV_SYSTEM_SBAS (3) --  SBAS satellite
   4976       - eQMI_LOC_SV_SYSTEM_COMPASS (4) --  COMPASS satellite
   4977       - eQMI_LOC_SV_SYSTEM_GLONASS (5) --  GLONASS satellite
   4978       - eQMI_LOC_SV_SYSTEM_BDS (6) --  BDS satellite
   4979  */
   4980 
   4981   qmiLocDeleteSvInfoMaskT_v02 deleteSvInfoMask;
   4982   /**<   Indicates if the ephemeris or almanac for a satellite
   4983        is to be deleted. \n
   4984        Valid values: \n
   4985        - 0x01 -- DELETE_EPHEMERIS \n
   4986        - 0x02 -- DELETE_ALMANAC
   4987   */
   4988 }qmiLocDeleteSvInfoStructT_v02;  /* Type */
   4989 /**
   4990     @}
   4991   */
   4992 
   4993 /** @addtogroup loc_qmi_aggregates
   4994     @{
   4995   */
   4996 typedef struct {
   4997 
   4998   uint16_t gnssSvId;
   4999   /**<   SV ID of the satellite whose data is to be deleted. \n
   5000        Range for BDS:     201 to 237 */
   5001 
   5002   qmiLocDeleteSvInfoMaskT_v02 deleteSvInfoMask;
   5003   /**<   Indicates if the ephemeris or almanac for a satellite
   5004  is to be deleted. \n
   5005  Valid values: \n
   5006       - QMI_LOC_MASK_DELETE_EPHEMERIS (0x01) --  Delete ephemeris for the satellite
   5007       - QMI_LOC_MASK_DELETE_ALMANAC (0x02) --  Delete almanac for the satellite
   5008  */
   5009 }qmiLocDeleteBDSSvInfoStructT_v02;  /* Type */
   5010 /**
   5011     @}
   5012   */
   5013 
   5014 /** @addtogroup loc_qmi_messages
   5015     @{
   5016   */
   5017 /** Request Message; This command is used to delete the location engine
   5018                     assistance data */
   5019 typedef struct {
   5020 
   5021   /* Mandatory */
   5022   /*  Delete All */
   5023   uint8_t deleteAllFlag;
   5024   /**<   Indicates whether all assistance data is to be deleted.
   5025 
   5026        Valid values: \begin{itemize1}
   5027        \item    0x01 (TRUE)  -- All assistance data is to be deleted; if
   5028                                 this flag is set, all the other information
   5029                          contained in the optional fields for this
   5030                                 message are ignored
   5031        \item    0x00 (FALSE) -- The optional fields in the message are to be
   5032                                 used to determine which data is to be deleted
   5033        \vspace{-0.18in} \end{itemize1} */
   5034 
   5035   /* Optional */
   5036   /*  Delete SV Info */
   5037   uint8_t deleteSvInfoList_valid;  /**< Must be set to true if deleteSvInfoList is being passed */
   5038   uint32_t deleteSvInfoList_len;  /**< Must be set to # of elements in deleteSvInfoList */
   5039   qmiLocDeleteSvInfoStructT_v02 deleteSvInfoList[QMI_LOC_DELETE_MAX_SV_INFO_LENGTH_V02];
   5040   /**<   \vspace{0.06in} \n List of satellites for which the assistance data is to be deleted.
   5041   */
   5042 
   5043   /* Optional */
   5044   /*  Delete GNSS Data */
   5045   uint8_t deleteGnssDataMask_valid;  /**< Must be set to true if deleteGnssDataMask is being passed */
   5046   qmiLocDeleteGnssDataMaskT_v02 deleteGnssDataMask;
   5047   /**<   Mask for the GNSS data that is to be deleted.
   5048 
   5049  Valid values: \n
   5050       - QMI_LOC_MASK_DELETE_GPS_SVDIR (0x00000001) --  Mask to delete GPS SVDIR
   5051       - QMI_LOC_MASK_DELETE_GPS_SVSTEER (0x00000002) --  Mask to delete GPS SVSTEER
   5052       - QMI_LOC_MASK_DELETE_GPS_TIME (0x00000004) --  Mask to delete GPS time
   5053       - QMI_LOC_MASK_DELETE_GPS_ALM_CORR (0x00000008) --  Mask to delete almanac correlation
   5054       - QMI_LOC_MASK_DELETE_GLO_SVDIR (0x00000010) --  Mask to delete GLONASS SVDIR
   5055       - QMI_LOC_MASK_DELETE_GLO_SVSTEER (0x00000020) --  Mask to delete GLONASS SVSTEER
   5056       - QMI_LOC_MASK_DELETE_GLO_TIME (0x00000040) --  Mask to delete GLONASS time
   5057       - QMI_LOC_MASK_DELETE_GLO_ALM_CORR (0x00000080) --  Mask to delete GLONASS almanac correlation
   5058       - QMI_LOC_MASK_DELETE_SBAS_SVDIR (0x00000100) --  Mask to delete SBAS SVDIR
   5059       - QMI_LOC_MASK_DELETE_SBAS_SVSTEER (0x00000200) --  Mask to delete SBAS SVSTEER
   5060       - QMI_LOC_MASK_DELETE_POSITION (0x00000400) --  Mask to delete position estimate
   5061       - QMI_LOC_MASK_DELETE_TIME (0x00000800) --  Mask to delete time estimate
   5062       - QMI_LOC_MASK_DELETE_IONO (0x00001000) --  Mask to delete IONO
   5063       - QMI_LOC_MASK_DELETE_UTC (0x00002000) --  Mask to delete UTC estimate
   5064       - QMI_LOC_MASK_DELETE_HEALTH (0x00004000) --  Mask to delete SV health record
   5065       - QMI_LOC_MASK_DELETE_SADATA (0x00008000) --  Mask to delete SADATA
   5066       - QMI_LOC_MASK_DELETE_RTI (0x00010000) --  Mask to delete RTI
   5067       - QMI_LOC_MASK_DELETE_SV_NO_EXIST (0x00020000) --  Mask to delete SV_NO_EXIST
   5068       - QMI_LOC_MASK_DELETE_FREQ_BIAS_EST (0x00040000) --  Mask to delete frequency bias estimate
   5069       - QMI_LOC_MASK_DELETE_BDS_SVDIR (0x00080000) --  Mask to delete BDS SVDIR
   5070       - QMI_LOC_MASK_DELETE_BDS_SVSTEER (0x00100000) --  Mask to delete BDS SVSTEER
   5071       - QMI_LOC_MASK_DELETE_BDS_TIME (0x00200000) --  Mask to delete BDS time
   5072       - QMI_LOC_MASK_DELETE_BDS_ALM_CORR (0x00400000) --  Mask to delete BDS almanac correlation
   5073       - QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_GPS (0x00800000) --  Mask to delete GNSS SV blacklist GPS
   5074       - QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_GLO (0x01000000) --  Mask to delete GNSS SV blacklist GLO
   5075       - QMI_LOC_MASK_DELETE_GNSS_SV_BLACKLIST_BDS (0x02000000) --  Mask to delete GNSS SV blacklist BDS
   5076  */
   5077 
   5078   /* Optional */
   5079   /*  Delete Cell Database */
   5080   uint8_t deleteCellDbDataMask_valid;  /**< Must be set to true if deleteCellDbDataMask is being passed */
   5081   qmiLocDeleteCelldbDataMaskT_v02 deleteCellDbDataMask;
   5082   /**<   Mask for the cell database assistance data that is to be deleted.
   5083 
   5084        Valid values: \begin{itemize1}
   5085        \item    0x00000001 -- DELETE_CELLDB_ POS
   5086        \item    0x00000002 -- DELETE_CELLDB_ LATEST_GPS_POS
   5087        \item    0x00000004 -- DELETE_CELLDB_ OTA_POS
   5088        \item    0x00000008 -- DELETE_CELLDB_ EXT_REF_POS
   5089        \item    0x00000010 -- DELETE_CELLDB_ TIMETAG
   5090        \item    0x00000020 -- DELETE_CELLDB_ CELLID
   5091        \item    0x00000040 -- DELETE_CELLDB_ CACHED_CELLID
   5092        \item    0x00000080 -- DELETE_CELLDB_ LAST_SRV_CELL
   5093        \item    0x00000100 -- DELETE_CELLDB_ CUR_SRV_CELL
   5094        \item    0x00000200 -- DELETE_CELLDB_ NEIGHBOR_INFO
   5095        \vspace{-0.18in} \end{itemize1}
   5096   */
   5097 
   5098   /* Optional */
   5099   /*  Delete Clock Info */
   5100   uint8_t deleteClockInfoMask_valid;  /**< Must be set to true if deleteClockInfoMask is being passed */
   5101   qmiLocDeleteClockInfoMaskT_v02 deleteClockInfoMask;
   5102   /**<   Mask for the clock information assistance data that is to be deleted.
   5103 
   5104  Valid bitmasks: \n
   5105       - QMI_LOC_MASK_DELETE_CLOCK_INFO_TIME_EST (0x00000001) --  Mask to delete time estimate from clock information
   5106       - QMI_LOC_MASK_DELETE_CLOCK_INFO_FREQ_EST (0x00000002) --  Mask to delete frequency estimate from clock information
   5107       - QMI_LOC_MASK_DELETE_CLOCK_INFO_WEEK_NUMBER (0x00000004) --  Mask to delete week number from clock information
   5108       - QMI_LOC_MASK_DELETE_CLOCK_INFO_RTC_TIME (0x00000008) --  Mask to delete RTC time from clock information
   5109       - QMI_LOC_MASK_DELETE_CLOCK_INFO_TIME_TRANSFER (0x00000010) --  Mask to delete time transfer from clock information
   5110       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GPSTIME_EST (0x00000020) --  Mask to delete GPS time estimate from clock information
   5111       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GLOTIME_EST (0x00000040) --  Mask to delete GLONASS time estimate from clock information
   5112       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GLODAY_NUMBER (0x00000080) --  Mask to delete GLONASS day number from clock information
   5113       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GLO4YEAR_NUMBER (0x00000100) --  Mask to delete GLONASS four year number from clock information
   5114       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GLO_RF_GRP_DELAY (0x00000200) --  Mask to delete GLONASS RF GRP delay from clock information
   5115       - QMI_LOC_MASK_DELETE_CLOCK_INFO_DISABLE_TT (0x00000400) --  Mask to delete disable TT from clock information
   5116       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GG_LEAPSEC (0x00000800) --  Mask to delete a BDS time estimate from the clock information
   5117       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GG_GGTB (0x00001000) --  Mask to delete a BDS time estimate from the clock information
   5118       - QMI_LOC_MASK_DELETE_CLOCK_INFO_BDSTIME_EST (0x00002000) --  Mask to delete a BDS time estimate from the clock information
   5119       - QMI_LOC_MASK_DELETE_CLOCK_INFO_GB_GBTB (0x00004000) --  Mask to delete Glonass-to-BDS time bias-related information from the
   5120       clock information
   5121       - QMI_LOC_MASK_DELETE_CLOCK_INFO_BG_BGTB (0x00008000) --  Mask to delete BDS-to-GLONASS time bias-related information from the
   5122        clock information
   5123       - QMI_LOC_MASK_DELETE_CLOCK_INFO_BDSWEEK_NUMBER (0x00010000) --  Mask to delete the BDS week number from the clock information
   5124       - QMI_LOC_MASK_DELETE_CLOCK_INFO_BDS_RF_GRP_DELAY (0x00020000) --  Mask to delete the BDS RF GRP delay from the clock information
   5125  */
   5126 
   5127   /* Optional */
   5128   /*  Delete BDS SV Info */
   5129   uint8_t deleteBdsSvInfoList_valid;  /**< Must be set to true if deleteBdsSvInfoList is being passed */
   5130   uint32_t deleteBdsSvInfoList_len;  /**< Must be set to # of elements in deleteBdsSvInfoList */
   5131   qmiLocDeleteBDSSvInfoStructT_v02 deleteBdsSvInfoList[QMI_LOC_DELETE_MAX_BDS_SV_INFO_LENGTH_V02];
   5132   /**<   \vspace{0.06in} \n List of BDS satellites for which the assistance data is to be deleted.
   5133   */
   5134 }qmiLocDeleteAssistDataReqMsgT_v02;  /* Message */
   5135 /**
   5136     @}
   5137   */
   5138 
   5139 /** @addtogroup loc_qmi_messages
   5140     @{
   5141   */
   5142 /** Indication Message; This command is used to delete the location engine
   5143                     assistance data */
   5144 typedef struct {
   5145 
   5146   /* Mandatory */
   5147   /*  Delete Assist Data Status */
   5148   qmiLocStatusEnumT_v02 status;
   5149   /**<   Status of the Delete Assist Data request.
   5150 
   5151  Valid values: \n
   5152       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   5153       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   5154       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   5155       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   5156       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   5157       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   5158       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   5159       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   5160       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   5161       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   5162       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   5163  */
   5164 }qmiLocDeleteAssistDataIndMsgT_v02;  /* Message */
   5165 /**
   5166     @}
   5167   */
   5168 
   5169 /** @addtogroup loc_qmi_messages
   5170     @{
   5171   */
   5172 /** Request Message; Enables/disables XTRA-T session control. */
   5173 typedef struct {
   5174 
   5175   /* Mandatory */
   5176   /*  Enable XTRA-T */
   5177   uint8_t xtraTSessionControl;
   5178   /**<   Indicates whether to enable XTRA-T:\n
   5179        - 0x01 (TRUE) -- Enable XTRA-T \n
   5180        - 0x00 (FALSE) -- Disable XTRA-T */
   5181 }qmiLocSetXtraTSessionControlReqMsgT_v02;  /* Message */
   5182 /**
   5183     @}
   5184   */
   5185 
   5186 /** @addtogroup loc_qmi_messages
   5187     @{
   5188   */
   5189 /** Indication Message; Enables/disables XTRA-T session control. */
   5190 typedef struct {
   5191 
   5192   /* Mandatory */
   5193   /*  Set XTRA-T Session Control Status */
   5194   qmiLocStatusEnumT_v02 status;
   5195   /**<   Status of the Set XTRA-T Session Control request.
   5196 
   5197  Valid values: \n
   5198       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   5199       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   5200       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   5201       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   5202       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   5203       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   5204       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   5205       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   5206       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   5207       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   5208       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   5209  */
   5210 }qmiLocSetXtraTSessionControlIndMsgT_v02;  /* Message */
   5211 /**
   5212     @}
   5213   */
   5214 
   5215 /** @addtogroup loc_qmi_messages
   5216     @{
   5217   */
   5218 /** Request Message; Gets the XTRA-T session control value from the location
   5219                     engine. */
   5220 typedef struct {
   5221   /* This element is a placeholder to prevent the declaration of
   5222      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   5223   char __placeholder;
   5224 }qmiLocGetXtraTSessionControlReqMsgT_v02;
   5225 
   5226   /* Message */
   5227 /**
   5228     @}
   5229   */
   5230 
   5231 /** @addtogroup loc_qmi_messages
   5232     @{
   5233   */
   5234 /** Indication Message; Gets the XTRA-T session control value from the location
   5235                     engine. */
   5236 typedef struct {
   5237 
   5238   /* Mandatory */
   5239   /*  Get XTRA-T Session Control Status */
   5240   qmiLocStatusEnumT_v02 status;
   5241   /**<   Status of the Get XTRA-T Session Control request.
   5242 
   5243  Valid values: \n
   5244       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   5245       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   5246       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   5247       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   5248       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   5249       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   5250       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   5251       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   5252       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   5253       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   5254       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   5255  */
   5256 
   5257   /* Optional */
   5258   /*  Enable/Disable XTRA-T */
   5259   uint8_t xtraTSessionControl_valid;  /**< Must be set to true if xtraTSessionControl is being passed */
   5260   uint8_t xtraTSessionControl;
   5261   /**<   Indicates whether to enable XTRA-T:\n
   5262        - 0x01 (TRUE) -- Enable XTRA-T \n
   5263        - 0x00 (FALSE) -- Disable XTRA-T */
   5264 }qmiLocGetXtraTSessionControlIndMsgT_v02;  /* Message */
   5265 /**
   5266     @}
   5267   */
   5268 
   5269 /** @addtogroup loc_qmi_aggregates
   5270     @{
   5271   */
   5272 typedef struct {
   5273 
   5274   uint32_t wifiPositionTime;
   5275   /**<   Common counter (typically, the number of milliseconds since bootup).
   5276         This field is only to be provided if the modem and host processors are
   5277         synchronized. */
   5278 }qmiLocWifiFixTimeStructT_v02;  /* Type */
   5279 /**
   5280     @}
   5281   */
   5282 
   5283 /** @addtogroup loc_qmi_enums
   5284     @{
   5285   */
   5286 typedef enum {
   5287   QMILOCWIFIFIXERRORCODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   5288   eQMI_LOC_WIFI_FIX_ERROR_SUCCESS_V02 = 0, /**<  Wi-Fi fix is successful. */
   5289   eQMI_LOC_WIFI_FIX_ERROR_WIFI_NOT_AVAILABLE_V02 = 1, /**<  Wi-Fi fix failed because Wi-Fi is not available on the device.  */
   5290   eQMI_LOC_WIFI_FIX_ERROR_NO_AP_FOUND_V02 = 2, /**<  Wi-Fi fix failed because no access points were found.  */
   5291   eQMI_LOC_WIFI_FIX_ERROR_UNAUTHORIZED_V02 = 3, /**<  Wi-Fi fix failed because the server denied access due to bad authorization
   5292    code.  */
   5293   eQMI_LOC_WIFI_FIX_ERROR_SERVER_UNAVAILABLE_V02 = 4, /**<  Wi-Fi fix failed because the Wi-Fi server was unavailable.  */
   5294   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.
   5295    This may be because the APs found are not in the database.  */
   5296   eQMI_LOC_WIFI_FIX_ERROR_UNKNOWN_V02 = 6, /**<  Wi-Fi fix failed, but the cause could not be determined.  */
   5297   QMILOCWIFIFIXERRORCODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   5298 }qmiLocWifiFixErrorCodeEnumT_v02;
   5299 /**
   5300     @}
   5301   */
   5302 
   5303 /** @addtogroup loc_qmi_aggregates
   5304     @{
   5305   */
   5306 typedef struct {
   5307 
   5308   double lat;
   5309   /**<   Wi-Fi position latitude. \n
   5310         - Type: Floating point \n
   5311         - Units: Degrees */
   5312 
   5313   double lon;
   5314   /**<   Wi-Fi position longitude. \n
   5315         - Type: Floating point \n
   5316         - Units: Degrees */
   5317 
   5318   uint16_t hepe;
   5319   /**<   Wi-Fi position HEPE.\n
   5320         - Units: Meters */
   5321 
   5322   uint8_t numApsUsed;
   5323   /**<   Number of Access Points (AP) used to generate a fix. */
   5324 
   5325   qmiLocWifiFixErrorCodeEnumT_v02 fixErrorCode;
   5326   /**<   Wi-Fi position error code; set to 0 if the fix succeeds. This position
   5327  is only used by a module if the value is 0. If there was a failure,
   5328  the error code provided by the Wi-Fi positioning system can be provided
   5329  here.
   5330 
   5331  Valid values: \n
   5332       - eQMI_LOC_WIFI_FIX_ERROR_SUCCESS (0) --  Wi-Fi fix is successful.
   5333       - eQMI_LOC_WIFI_FIX_ERROR_WIFI_NOT_AVAILABLE (1) --  Wi-Fi fix failed because Wi-Fi is not available on the device.
   5334       - eQMI_LOC_WIFI_FIX_ERROR_NO_AP_FOUND (2) --  Wi-Fi fix failed because no access points were found.
   5335       - eQMI_LOC_WIFI_FIX_ERROR_UNAUTHORIZED (3) --  Wi-Fi fix failed because the server denied access due to bad authorization
   5336    code.
   5337       - eQMI_LOC_WIFI_FIX_ERROR_SERVER_UNAVAILABLE (4) --  Wi-Fi fix failed because the Wi-Fi server was unavailable.
   5338       - 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.
   5339    This may be because the APs found are not in the database.
   5340       - eQMI_LOC_WIFI_FIX_ERROR_UNKNOWN (6) --  Wi-Fi fix failed, but the cause could not be determined.
   5341  */
   5342 }qmiLocWifiFixPosStructT_v02;  /* Type */
   5343 /**
   5344     @}
   5345   */
   5346 
   5347 typedef uint8_t qmiLocWifiApQualifierMaskT_v02;
   5348 #define QMI_LOC_WIFI_AP_QUALIFIER_BEING_USED_V02 ((qmiLocWifiApQualifierMaskT_v02)0x01) /**<  Access point is being used by the WPS.  */
   5349 #define QMI_LOC_WIFI_AP_QUALIFIER_HIDDEN_SSID_V02 ((qmiLocWifiApQualifierMaskT_v02)0x02) /**<  AP does not broadcast SSID.  */
   5350 #define QMI_LOC_WIFI_AP_QUALIFIER_PRIVATE_V02 ((qmiLocWifiApQualifierMaskT_v02)0x04) /**<  AP has encryption turned on.  */
   5351 #define QMI_LOC_WIFI_AP_QUALIFIER_INFRASTRUCTURE_MODE_V02 ((qmiLocWifiApQualifierMaskT_v02)0x08) /**<  AP is in infrastructure mode and not in ad-hoc/unknown mode.  */
   5352 /** @addtogroup loc_qmi_aggregates
   5353     @{
   5354   */
   5355 typedef struct {
   5356 
   5357   uint8_t macAddr[QMI_LOC_WIFI_MAC_ADDR_LENGTH_V02];
   5358   /**<   Associated MAC address of the AP. \n
   5359         - Type: Array of unsigned integers \n
   5360         - Address length: 6
   5361    */
   5362 
   5363   int32_t rssi;
   5364   /**<   Receive signal strength indicator.\n
   5365         - Units: dBm (offset with +100 dB) */
   5366 
   5367   uint16_t channel;
   5368   /**<   Wi-Fi channel on which a beacon was received. */
   5369 
   5370   qmiLocWifiApQualifierMaskT_v02 apQualifier;
   5371   /**<   A bitmask of Boolean qualifiers for APs.
   5372         All unused bits in this mask must be set to 0.
   5373 
   5374         Valid values: \n
   5375           - 0x01 -- BEING_USED \n
   5376           - 0x02 -- HIDDEN_SSID \n
   5377           - 0x04 -- PRIVATE \n
   5378           - 0x08 -- INFRASTRUCTURE_MODE
   5379          */
   5380 }qmiLocWifiApInfoStructT_v02;  /* Type */
   5381 /**
   5382     @}
   5383   */
   5384 
   5385 /** @addtogroup loc_qmi_aggregates
   5386     @{
   5387   */
   5388 typedef struct {
   5389 
   5390   char ssid[QMI_LOC_MAX_WIFI_AP_SSID_STR_LENGTH_V02 + 1];
   5391   /**<   NULL-terminated SSID string of the Wi-Fi AP. Its maximum length according to the ASCII standard is 32 octets. */
   5392 }qmiLocWifiApSsidStructT_v02;  /* Type */
   5393 /**
   5394     @}
   5395   */
   5396 
   5397 /** @addtogroup loc_qmi_messages
   5398     @{
   5399   */
   5400 /** Request Message; Injects the Wi-Fi position. */
   5401 typedef struct {
   5402 
   5403   /* Optional */
   5404   /*  Wi-Fi Fix Time */
   5405   uint8_t wifiFixTime_valid;  /**< Must be set to true if wifiFixTime is being passed */
   5406   qmiLocWifiFixTimeStructT_v02 wifiFixTime;
   5407   /**<   \vspace{0.06in} \n Time of Wi-Fi position fix. */
   5408 
   5409   /* Optional */
   5410   /*  Wi-Fi Position */
   5411   uint8_t wifiFixPosition_valid;  /**< Must be set to true if wifiFixPosition is being passed */
   5412   qmiLocWifiFixPosStructT_v02 wifiFixPosition;
   5413   /**<   \vspace{0.06in} \n Wi-Fi position fix. */
   5414 
   5415   /* Optional */
   5416   /*  Wi-Fi Access Point Information */
   5417   uint8_t apInfo_valid;  /**< Must be set to true if apInfo is being passed */
   5418   uint32_t apInfo_len;  /**< Must be set to # of elements in apInfo */
   5419   qmiLocWifiApInfoStructT_v02 apInfo[QMI_LOC_WIFI_MAX_REPORTED_APS_PER_MSG_V02];
   5420   /**<   \vspace{0.06in} \n AP scan list.
   5421         SSID of the Wi-Fi AP.
   5422         The ordering of the Wi-Fi AP SSID list should matchthe Wi-Fi AP MAC address list if both are provided,
   5423         i.e., the first element of the Wi-Fi AP SSID list must be the SSID of the AP whose MAC
   5424         address is in the first element in the Wi-Fi AP Info MAC Address, and so on. */
   5425 
   5426   /* Optional */
   5427   /*  Horizontal Reliability */
   5428   uint8_t horizontalReliability_valid;  /**< Must be set to true if horizontalReliability is being passed */
   5429   qmiLocReliabilityEnumT_v02 horizontalReliability;
   5430   /**<   Specifies the reliability of the horizontal position.
   5431 
   5432  Valid values: \n
   5433       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
   5434       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
   5435       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
   5436       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
   5437       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
   5438  */
   5439 
   5440   /* Optional */
   5441   /*  Raw HEPE */
   5442   uint8_t rawHepe_valid;  /**< Must be set to true if rawHepe is being passed */
   5443   uint16_t rawHepe;
   5444   /**<   Wi-Fi position raw HEPE, which has no optimization.\n
   5445         - Units: Meters */
   5446 
   5447   /* Optional */
   5448   /*  Wi-Fi AP SSID String */
   5449   uint8_t wifiApSsidInfo_valid;  /**< Must be set to true if wifiApSsidInfo is being passed */
   5450   uint32_t wifiApSsidInfo_len;  /**< Must be set to # of elements in wifiApSsidInfo */
   5451   qmiLocWifiApSsidStructT_v02 wifiApSsidInfo[QMI_LOC_WIFI_MAX_REPORTED_APS_PER_MSG_V02];
   5452   /**<   \vspace{0.04in} \n
   5453         The ordering of the Wi-Fi AP SSID list should match the Wi-Fi AP MAC address list if both are provided,
   5454         i.e., the first element of the Wi-Fi AP SSID list must be the SSID of the AP whose MAC
   5455         address is in the first element in the Wi-Fi AP Info MAC address, and so on.*/
   5456 }qmiLocInjectWifiPositionReqMsgT_v02;  /* Message */
   5457 /**
   5458     @}
   5459   */
   5460 
   5461 /** @addtogroup loc_qmi_messages
   5462     @{
   5463   */
   5464 /** Indication Message; Injects the Wi-Fi position. */
   5465 typedef struct {
   5466 
   5467   /* Mandatory */
   5468   /*  Inject Wi-Fi Position Status */
   5469   qmiLocStatusEnumT_v02 status;
   5470   /**<   Status of the Inject Wi-Fi Position request.
   5471 
   5472  Valid values: \n
   5473       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   5474       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   5475       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   5476       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   5477       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   5478       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   5479       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   5480       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   5481       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   5482       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   5483       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   5484  */
   5485 }qmiLocInjectWifiPositionIndMsgT_v02;  /* Message */
   5486 /**
   5487     @}
   5488   */
   5489 
   5490 /** @addtogroup loc_qmi_enums
   5491     @{
   5492   */
   5493 typedef enum {
   5494   QMILOCWIFISTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   5495   eQMI_LOC_WIFI_STATUS_AVAILABLE_V02 = 1, /**<  Wi-Fi is available  */
   5496   eQMI_LOC_WIFI_STATUS_UNAVAILABLE_V02 = 2, /**<  Wi-Fi is not available  */
   5497   QMILOCWIFISTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   5498 }qmiLocWifiStatusEnumT_v02;
   5499 /**
   5500     @}
   5501   */
   5502 
   5503 /** @addtogroup loc_qmi_messages
   5504     @{
   5505   */
   5506 /** Request Message; Notifies the location engine of the Wi-Fi status. */
   5507 typedef struct {
   5508 
   5509   /* Mandatory */
   5510   /*  Availablility of Wi-Fi */
   5511   qmiLocWifiStatusEnumT_v02 wifiStatus;
   5512   /**<   Wi-Fi status information.
   5513 
   5514  Valid values: \n
   5515       - eQMI_LOC_WIFI_STATUS_AVAILABLE (1) --  Wi-Fi is available
   5516       - eQMI_LOC_WIFI_STATUS_UNAVAILABLE (2) --  Wi-Fi is not available
   5517  */
   5518 }qmiLocNotifyWifiStatusReqMsgT_v02;  /* Message */
   5519 /**
   5520     @}
   5521   */
   5522 
   5523 /** @addtogroup loc_qmi_messages
   5524     @{
   5525   */
   5526 /** Indication Message; Notifies the location engine of the Wi-Fi status. */
   5527 typedef struct {
   5528 
   5529   /* Mandatory */
   5530   /*  Status of Notify Wi-Fi Status Request */
   5531   qmiLocStatusEnumT_v02 status;
   5532   /**<   Status of the Notify Wi-Fi Status request.
   5533 
   5534  Valid values: \n
   5535       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   5536       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   5537       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   5538       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   5539       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   5540       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   5541       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   5542       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   5543       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   5544       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   5545       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   5546  */
   5547 }qmiLocNotifyWifiStatusIndMsgT_v02;  /* Message */
   5548 /**
   5549     @}
   5550   */
   5551 
   5552 /** @addtogroup loc_qmi_messages
   5553     @{
   5554   */
   5555 /** Request Message; Gets the mask of the events for which a client has
   5556                     registered. */
   5557 typedef struct {
   5558   /* This element is a placeholder to prevent the declaration of
   5559      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   5560   char __placeholder;
   5561 }qmiLocGetRegisteredEventsReqMsgT_v02;
   5562 
   5563   /* Message */
   5564 /**
   5565     @}
   5566   */
   5567 
   5568 /** @addtogroup loc_qmi_messages
   5569     @{
   5570   */
   5571 /** Indication Message; Gets the mask of the events for which a client has
   5572                     registered. */
   5573 typedef struct {
   5574 
   5575   /* Mandatory */
   5576   /*  Get Registered Events Status */
   5577   qmiLocStatusEnumT_v02 status;
   5578   /**<   Status of the Get Registered Events request.
   5579 
   5580  Valid values: \n
   5581       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   5582       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   5583       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   5584       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   5585       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   5586       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   5587       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   5588       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   5589       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   5590       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   5591       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   5592  */
   5593 
   5594   /* Optional */
   5595   /*  Event Registration Mask */
   5596   uint8_t eventRegMask_valid;  /**< Must be set to true if eventRegMask is being passed */
   5597   qmiLocEventRegMaskT_v02 eventRegMask;
   5598   /**<   Event registration mask.
   5599  Valid bitmasks: \n
   5600       - QMI_LOC_EVENT_MASK_POSITION_REPORT (0x00000001) --  The control point must enable this mask to receive position report
   5601        event indications.
   5602       - QMI_LOC_EVENT_MASK_GNSS_SV_INFO (0x00000002) --  The control point must enable this mask to receive satellite report
   5603        event indications. These reports are sent at a 1 Hz rate.
   5604       - QMI_LOC_EVENT_MASK_NMEA (0x00000004) --  The control point must enable this mask to receive NMEA reports for
   5605        position and satellites in view. The report is at a 1 Hz rate.
   5606       - QMI_LOC_EVENT_MASK_NI_NOTIFY_VERIFY_REQ (0x00000008) --  The control point must enable this mask to receive NI Notify/Verify request
   5607        event indications.
   5608       - QMI_LOC_EVENT_MASK_INJECT_TIME_REQ (0x00000010) --  The control point must enable this mask to receive time injection request
   5609        event indications.
   5610       - QMI_LOC_EVENT_MASK_INJECT_PREDICTED_ORBITS_REQ (0x00000020) --  The control point must enable this mask to receive predicted orbits request
   5611        event indications.
   5612       - QMI_LOC_EVENT_MASK_INJECT_POSITION_REQ (0x00000040) --  The control point must enable this mask to receive position injection request
   5613        event indications.
   5614       - QMI_LOC_EVENT_MASK_ENGINE_STATE (0x00000080) --  The control point must enable this mask to receive engine state report
   5615        event indications.
   5616       - QMI_LOC_EVENT_MASK_FIX_SESSION_STATE (0x00000100) --  The control point must enable this mask to receive fix session status report
   5617        event indications.
   5618       - QMI_LOC_EVENT_MASK_WIFI_REQ (0x00000200) --  The control point must enable this mask to receive Wi-Fi position request
   5619        event indications.
   5620       - QMI_LOC_EVENT_MASK_SENSOR_STREAMING_READY_STATUS (0x00000400) --  The control point must enable this mask to receive notifications from the
   5621        location engine indicating its readiness to accept data from the
   5622        sensors (accelerometer, gyroscope, etc.).
   5623       - QMI_LOC_EVENT_MASK_TIME_SYNC_REQ (0x00000800) --  The control point must enable this mask to receive time sync requests
   5624        from the GPS engine. Time sync enables the GPS engine to synchronize
   5625        its clock with the sensor processor's clock.
   5626       - QMI_LOC_EVENT_MASK_SET_SPI_STREAMING_REPORT (0x00001000) --  The control point must enable this mask to receive Stationary Position
   5627        Indicator (SPI) streaming report indications.
   5628       - QMI_LOC_EVENT_MASK_LOCATION_SERVER_CONNECTION_REQ (0x00002000) --  The control point must enable this mask to receive location server
   5629        requests. These requests are generated when the service wishes to
   5630        establish a connection with a location server.
   5631       - QMI_LOC_EVENT_MASK_NI_GEOFENCE_NOTIFICATION (0x00004000) --  The control point must enable this mask to receive notifications
   5632        related to network-initiated Geofences. These events notify the client
   5633        when a network-initiated Geofence is added, deleted, or edited.
   5634       - QMI_LOC_EVENT_MASK_GEOFENCE_GEN_ALERT (0x00008000) --  The control point must enable this mask to receive Geofence alerts.
   5635        These alerts are generated to inform the client of the changes that may
   5636        affect a Geofence, e.g., if GPS is turned off or if the network is
   5637        unavailable.
   5638       - QMI_LOC_EVENT_MASK_GEOFENCE_BREACH_NOTIFICATION (0x00010000) --  The control point must enable this mask to receive notifications when
   5639        a Geofence is breached. These events are generated when a UE enters
   5640        or leaves the perimeter of a Geofence. This breach report is for a single
   5641        Geofence .
   5642       - QMI_LOC_EVENT_MASK_PEDOMETER_CONTROL (0x00020000) --  The control point must enable this mask to register for pedometer
   5643        control requests from the location engine. The location engine sends
   5644        this event to control the injection of pedometer reports.
   5645       - QMI_LOC_EVENT_MASK_MOTION_DATA_CONTROL (0x00040000) --  The control point must enable this mask to register for motion data
   5646        control requests from the location engine. The location engine sends
   5647        this event to control the injection of motion data.
   5648       - QMI_LOC_EVENT_MASK_BATCH_FULL_NOTIFICATION (0x00080000) --  The control point must enable this mask to receive notification when
   5649        a batch is full. The location engine sends this event to notify of Batch Full
   5650        for ongoing batching session.
   5651       - QMI_LOC_EVENT_MASK_LIVE_BATCHED_POSITION_REPORT (0x00100000) --  The control point must enable this mask to receive position report
   5652        indications along with an ongoing batching session. The location engine sends
   5653        this event to notify the batched position report while a batching session
   5654        is ongoing.
   5655       - 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
   5656        event indications.
   5657       - QMI_LOC_EVENT_MASK_GEOFENCE_BATCH_BREACH_NOTIFICATION (0x00400000) --  The control point must enable this mask to receive notifications when
   5658        a Geofence is breached. These events are generated when a UE enters
   5659        or leaves the perimeter of a Geofence. This breach notification is for
   5660        multiple Geofences. Breaches from multiple Geofences are all batched and
   5661        sent in the same notification .
   5662       - QMI_LOC_EVENT_MASK_VEHICLE_DATA_READY_STATUS (0x00800000) --  The control point must enable this mask to receive notifications from the
   5663        location engine indicating its readiness to accept vehicle data (vehicle
   5664        accelerometer, vehicle angular rate, vehicle odometry, etc.).
   5665       - QMI_LOC_EVENT_MASK_GNSS_MEASUREMENT_REPORT (0x01000000) --  The control point must enable this mask to receive system clock and satellite
   5666        measurement report events (system clock, SV time, Doppler, etc.). Reports are
   5667        generated only for the GNSS satellite constellations that are enabled using
   5668        QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG.
   5669       - QMI_LOC_EVENT_MASK_GNSS_SV_POLYNOMIAL_REPORT (0x02000000) --  The control point must enable this mask to receive satellite position
   5670         reports as polynomials. Reports are generated only for the GNSS satellite
   5671         constellations that are enabled using QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG.
   5672       - QMI_LOC_EVENT_MASK_GEOFENCE_PROXIMITY_NOTIFICATION (0x04000000) --  The control point must enable this mask to receive notifications when a Geofence proximity is entered
   5673   and exited.  The proximity of a geofence may be due to different contexts . These contexts are identified
   5674   using the context id in this indication. The context of a geofence may contain Wifi area ID lists, IBeacon lists,
   5675   Cell-Id list etc.
   5676       - QMI_LOC_EVENT_MASK_GDT_UPLOAD_BEGIN_REQ (0x08000000) --  The control point must enable this mask to receive GDT (Generic Data Transport )
   5677         session begin request event indications.
   5678       - QMI_LOC_EVENT_MASK_GDT_UPLOAD_END_REQ (0x10000000) --  The control point must enable this mask to receive GDT (Generic Data Transport )
   5679         session end request
   5680         event indications.
   5681  */
   5682 }qmiLocGetRegisteredEventsIndMsgT_v02;  /* Message */
   5683 /**
   5684     @}
   5685   */
   5686 
   5687 /** @addtogroup loc_qmi_enums
   5688     @{
   5689   */
   5690 typedef enum {
   5691   QMILOCOPERATIONMODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   5692   eQMI_LOC_OPER_MODE_DEFAULT_V02 = 1, /**<  Use the default engine mode  */
   5693   eQMI_LOC_OPER_MODE_MSB_V02 = 2, /**<  Use the MS-based mode  */
   5694   eQMI_LOC_OPER_MODE_MSA_V02 = 3, /**<  Use the MS-assisted mode  */
   5695   eQMI_LOC_OPER_MODE_STANDALONE_V02 = 4, /**<  Use Standalone mode  */
   5696   eQMI_LOC_OPER_MODE_CELL_ID_V02 = 5, /**<  Use cell ID; this mode is only valid for GSM/UMTS networks  */
   5697   eQMI_LOC_OPER_MODE_WWAN_V02 = 6, /**<  Use WWAN measurements to calculate the position; if this mode is
   5698        set, AFLT will be used for 1X networks and OTDOA will be used
   5699        for LTE networks  */
   5700   QMILOCOPERATIONMODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   5701 }qmiLocOperationModeEnumT_v02;
   5702 /**
   5703     @}
   5704   */
   5705 
   5706 /** @addtogroup loc_qmi_messages
   5707     @{
   5708   */
   5709 /** Request Message; Tells the engine to use the specified operation mode while
   5710                     making the position fixes. */
   5711 typedef struct {
   5712 
   5713   /* Mandatory */
   5714   /*  Operation Mode */
   5715   qmiLocOperationModeEnumT_v02 operationMode;
   5716   /**<   Preferred operation mode.
   5717 
   5718  Valid values: \n
   5719       - eQMI_LOC_OPER_MODE_DEFAULT (1) --  Use the default engine mode
   5720       - eQMI_LOC_OPER_MODE_MSB (2) --  Use the MS-based mode
   5721       - eQMI_LOC_OPER_MODE_MSA (3) --  Use the MS-assisted mode
   5722       - eQMI_LOC_OPER_MODE_STANDALONE (4) --  Use Standalone mode
   5723       - eQMI_LOC_OPER_MODE_CELL_ID (5) --  Use cell ID; this mode is only valid for GSM/UMTS networks
   5724       - eQMI_LOC_OPER_MODE_WWAN (6) --  Use WWAN measurements to calculate the position; if this mode is
   5725        set, AFLT will be used for 1X networks and OTDOA will be used
   5726        for LTE networks
   5727  */
   5728 }qmiLocSetOperationModeReqMsgT_v02;  /* Message */
   5729 /**
   5730     @}
   5731   */
   5732 
   5733 /** @addtogroup loc_qmi_messages
   5734     @{
   5735   */
   5736 /** Indication Message; Tells the engine to use the specified operation mode while
   5737                     making the position fixes. */
   5738 typedef struct {
   5739 
   5740   /* Mandatory */
   5741   /*  Set Operation Mode Status */
   5742   qmiLocStatusEnumT_v02 status;
   5743   /**<   Status of the Set Operation Mode request.
   5744 
   5745  Valid values: \n
   5746       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   5747       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   5748       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   5749       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   5750       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   5751       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   5752       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   5753       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   5754       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   5755       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   5756       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   5757  */
   5758 }qmiLocSetOperationModeIndMsgT_v02;  /* Message */
   5759 /**
   5760     @}
   5761   */
   5762 
   5763 /** @addtogroup loc_qmi_messages
   5764     @{
   5765   */
   5766 /** Request Message; Gets the current operation mode from the engine. */
   5767 typedef struct {
   5768   /* This element is a placeholder to prevent the declaration of
   5769      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   5770   char __placeholder;
   5771 }qmiLocGetOperationModeReqMsgT_v02;
   5772 
   5773   /* Message */
   5774 /**
   5775     @}
   5776   */
   5777 
   5778 /** @addtogroup loc_qmi_messages
   5779     @{
   5780   */
   5781 /** Indication Message; Gets the current operation mode from the engine. */
   5782 typedef struct {
   5783 
   5784   /* Mandatory */
   5785   /*  Get Operation Mode Status */
   5786   qmiLocStatusEnumT_v02 status;
   5787   /**<   Status of the Get Operation Mode request.
   5788 
   5789  Valid values: \n
   5790       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   5791       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   5792       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   5793       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   5794       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   5795       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   5796       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   5797       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   5798       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   5799       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   5800       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   5801  */
   5802 
   5803   /* Optional */
   5804   /*  Operation Mode */
   5805   uint8_t operationMode_valid;  /**< Must be set to true if operationMode is being passed */
   5806   qmiLocOperationModeEnumT_v02 operationMode;
   5807   /**<   Current operation mode.
   5808 
   5809  Valid values: \n
   5810       - eQMI_LOC_OPER_MODE_DEFAULT (1) --  Use the default engine mode
   5811       - eQMI_LOC_OPER_MODE_MSB (2) --  Use the MS-based mode
   5812       - eQMI_LOC_OPER_MODE_MSA (3) --  Use the MS-assisted mode
   5813       - eQMI_LOC_OPER_MODE_STANDALONE (4) --  Use Standalone mode
   5814       - eQMI_LOC_OPER_MODE_CELL_ID (5) --  Use cell ID; this mode is only valid for GSM/UMTS networks
   5815       - eQMI_LOC_OPER_MODE_WWAN (6) --  Use WWAN measurements to calculate the position; if this mode is
   5816        set, AFLT will be used for 1X networks and OTDOA will be used
   5817        for LTE networks
   5818  */
   5819 }qmiLocGetOperationModeIndMsgT_v02;  /* Message */
   5820 /**
   5821     @}
   5822   */
   5823 
   5824 /** @addtogroup loc_qmi_messages
   5825     @{
   5826   */
   5827 /** Request Message; Used by the control point to set the SPI status, which
   5828                     indicates whether the device is stationary. */
   5829 typedef struct {
   5830 
   5831   /* Mandatory */
   5832   /*  Stationary Status */
   5833   uint8_t stationary;
   5834   /**<   Indicates whether the device is stationary:
   5835        \begin{itemize1}
   5836        \item    0x00 (FALSE) -- Device is not stationary
   5837        \item    0x01 (TRUE)  -- Device is stationary
   5838        \vspace{-0.18in} \end{itemize1}*/
   5839 
   5840   /* Optional */
   5841   /*  Confidence */
   5842   uint8_t confidenceStationary_valid;  /**< Must be set to true if confidenceStationary is being passed */
   5843   uint8_t confidenceStationary;
   5844   /**<   Confidence in the Stationary state expressed as a percentage.\n
   5845        - Range: 0 to 100 */
   5846 }qmiLocSetSpiStatusReqMsgT_v02;  /* Message */
   5847 /**
   5848     @}
   5849   */
   5850 
   5851 /** @addtogroup loc_qmi_messages
   5852     @{
   5853   */
   5854 /** Indication Message; Used by the control point to set the SPI status, which
   5855                     indicates whether the device is stationary. */
   5856 typedef struct {
   5857 
   5858   /* Mandatory */
   5859   /*  Status of SPI Status Request */
   5860   qmiLocStatusEnumT_v02 status;
   5861   /**<   Status of the SPI Status request.
   5862 
   5863  Valid values: \n
   5864       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   5865       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   5866       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   5867       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   5868       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   5869       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   5870       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   5871       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   5872       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   5873       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   5874       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   5875  */
   5876 }qmiLocSetSpiStatusIndMsgT_v02;  /* Message */
   5877 /**
   5878     @}
   5879   */
   5880 
   5881 typedef uint8_t qmiLocSensorDataFlagMaskT_v02;
   5882 #define QMI_LOC_SENSOR_DATA_FLAG_SIGN_REVERSAL_V02 ((qmiLocSensorDataFlagMaskT_v02)0x01) /**<  Bitmask to specify that a sign reversal is required while interpreting
   5883      the sensor data; only applies to the accelerometer samples  */
   5884 #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
   5885        time stamp  */
   5886 #define QMI_LOC_SENSOR_DATA_FLAG_CALIBRATED_DATA_V02 ((qmiLocSensorDataFlagMaskT_v02)0x04) /**<  Bitmask to specify that the injected sensor data is calibrated  */
   5887 /** @addtogroup loc_qmi_enums
   5888     @{
   5889   */
   5890 typedef enum {
   5891   QMILOCSENSORDATATIMESOURCEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   5892   eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED_V02 = 0, /**<  Sensor time source is unspecified  */
   5893   eQMI_LOC_SENSOR_TIME_SOURCE_COMMON_V02 = 1, /**<  Time source is common between the sensors and
   5894        the location engine  */
   5895   QMILOCSENSORDATATIMESOURCEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   5896 }qmiLocSensorDataTimeSourceEnumT_v02;
   5897 /**
   5898     @}
   5899   */
   5900 
   5901 /** @addtogroup loc_qmi_aggregates
   5902     @{
   5903   */
   5904 typedef struct {
   5905 
   5906   uint16_t timeOffset;
   5907   /**<   Sample time offset. This time offset must be
   5908        relative to the timestamp of the first sensor data sample.\n
   5909        - Units: Milliseconds */
   5910 
   5911   float xAxis;
   5912   /**<   Sensor x-axis sample. \n
   5913        - Units Accelerometer: Meters/seconds^2 \n
   5914        - Units Gyroscope:     Radians/second \n
   5915        - Units Magnetometer:  microTesla */
   5916 
   5917   float yAxis;
   5918   /**<   Sensor y-axis sample. \n
   5919        - Units Accelerometer: Meters/seconds^2 \n
   5920        - Units Gyroscope:     Radians/second \n
   5921        - Units Magnetometer:  microTesla */
   5922 
   5923   float zAxis;
   5924   /**<   Sensor z-axis sample. \n
   5925        - Units Accelerometer: Meters/seconds^2 ) \n
   5926        - Units Gyroscope:     Radians/second \n
   5927        - Units Magnetometer:  microTesla */
   5928 }qmiLoc3AxisSensorSampleStructT_v02;  /* Type */
   5929 /**
   5930     @}
   5931   */
   5932 
   5933 /** @addtogroup loc_qmi_aggregates
   5934     @{
   5935   */
   5936 typedef struct {
   5937 
   5938   uint32_t timeOfFirstSample;
   5939   /**<   Denotes a full 32-bit timestamp of the first (oldest) sample in this
   5940        message.The timestamp is in the time reference scale that is
   5941        used by the sensor time source.\n
   5942        - Units: Milliseconds */
   5943 
   5944   qmiLocSensorDataFlagMaskT_v02 flags;
   5945   /**<   Flags to indicate any deviation from the default measurement
   5946  assumptions. All unused bits in this field must be set to 0.
   5947 
   5948  Valid bitmasks:
   5949       - QMI_LOC_SENSOR_DATA_FLAG_SIGN_REVERSAL (0x01) --  Bitmask to specify that a sign reversal is required while interpreting
   5950      the sensor data; only applies to the accelerometer samples
   5951       - 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
   5952        time stamp
   5953       - QMI_LOC_SENSOR_DATA_FLAG_CALIBRATED_DATA (0x04) --  Bitmask to specify that the injected sensor data is calibrated  */
   5954 
   5955   uint32_t sensorData_len;  /**< Must be set to # of elements in sensorData */
   5956   qmiLoc3AxisSensorSampleStructT_v02 sensorData[QMI_LOC_SENSOR_DATA_MAX_SAMPLES_V02];
   5957   /**<   Variable length array to specify sensor samples. \n
   5958        - Maximum length of the array: 50 */
   5959 }qmiLoc3AxisSensorSampleListStructT_v02;  /* Type */
   5960 /**
   5961     @}
   5962   */
   5963 
   5964 /** @addtogroup loc_qmi_aggregates
   5965     @{
   5966   */
   5967 typedef struct {
   5968 
   5969   uint16_t timeOffset;
   5970   /**<   Sample time offset. This time offset must be
   5971        relative to the timestamp of the first sensor sample.\n
   5972        - Units: Milliseconds */
   5973 
   5974   float temperature;
   5975   /**<   Sensor temperature. \n
   5976        - Type: Floating point \n
   5977        - Units: Degrees Celsius \n
   5978        - Range: -50 to +100.00 */
   5979 }qmiLocSensorTemperatureSampleStructT_v02;  /* Type */
   5980 /**
   5981     @}
   5982   */
   5983 
   5984 /** @addtogroup loc_qmi_aggregates
   5985     @{
   5986   */
   5987 typedef struct {
   5988 
   5989   qmiLocSensorDataTimeSourceEnumT_v02 timeSource;
   5990   /**<   Denotes the time source of the sensor data. Location service will use
   5991  this field to identify the time reference used in the
   5992  sensor data timestamps.
   5993 
   5994  Valid values: \n
   5995       - eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED (0) --  Sensor time source is unspecified
   5996       - eQMI_LOC_SENSOR_TIME_SOURCE_COMMON (1) --  Time source is common between the sensors and
   5997        the location engine
   5998  */
   5999 
   6000   uint32_t timeOfFirstSample;
   6001   /**<   Denotes a full 32-bit timestamp of the first (oldest) sample in this
   6002        message. The timestamp is in the time reference scale that is
   6003        used by the sensor time source.\n
   6004        - Units: Milliseconds */
   6005 
   6006   uint32_t temperatureData_len;  /**< Must be set to # of elements in temperatureData */
   6007   qmiLocSensorTemperatureSampleStructT_v02 temperatureData[QMI_LOC_SENSOR_DATA_MAX_SAMPLES_V02];
   6008   /**<   Variable length array to specify sensor temperature samples. \n
   6009        - Maximum length of the array: 50 */
   6010 }qmiLocSensorTemperatureSampleListStructT_v02;  /* Type */
   6011 /**
   6012     @}
   6013   */
   6014 
   6015 /** @addtogroup loc_qmi_messages
   6016     @{
   6017   */
   6018 /** Request Message; Used by the control point to inject sensor data into the
   6019                     GNSS location engine. */
   6020 typedef struct {
   6021 
   6022   /* Optional */
   6023   /*  Opaque Identifier */
   6024   uint8_t opaqueIdentifier_valid;  /**< Must be set to true if opaqueIdentifier is being passed */
   6025   uint32_t opaqueIdentifier;
   6026   /**<   An opaque identifier that is sent in by the client that will be echoed
   6027        in the indication so the client can relate the indication to the
   6028        request. */
   6029 
   6030   /* Optional */
   6031   /*  3-Axis Accelerometer Data */
   6032   uint8_t threeAxisAccelData_valid;  /**< Must be set to true if threeAxisAccelData is being passed */
   6033   qmiLoc3AxisSensorSampleListStructT_v02 threeAxisAccelData;
   6034   /**<   \vspace{0.06in} \n Accelerometer sensor samples. */
   6035 
   6036   /* Optional */
   6037   /*  3-Axis Gyroscope Data */
   6038   uint8_t threeAxisGyroData_valid;  /**< Must be set to true if threeAxisGyroData is being passed */
   6039   qmiLoc3AxisSensorSampleListStructT_v02 threeAxisGyroData;
   6040   /**<   \vspace{0.06in} \n Gyroscope sensor samples. */
   6041 
   6042   /* Optional */
   6043   /*  3-Axis Accelerometer Data Time Source */
   6044   uint8_t threeAxisAccelDataTimeSource_valid;  /**< Must be set to true if threeAxisAccelDataTimeSource is being passed */
   6045   qmiLocSensorDataTimeSourceEnumT_v02 threeAxisAccelDataTimeSource;
   6046   /**<   Time source for the 3-axis accelerometer data. The location service uses
   6047  this field to identify the time reference used in the accelerometer data
   6048  timestamps. If not specified, the location service assumes that the
   6049  time source for the accelereometer data is unknown. \n
   6050  Values: \n
   6051       - eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED (0) --  Sensor time source is unspecified
   6052       - eQMI_LOC_SENSOR_TIME_SOURCE_COMMON (1) --  Time source is common between the sensors and
   6053        the location engine
   6054  */
   6055 
   6056   /* Optional */
   6057   /*  3-Axis Gyroscope Data Time Source */
   6058   uint8_t threeAxisGyroDataTimeSource_valid;  /**< Must be set to true if threeAxisGyroDataTimeSource is being passed */
   6059   qmiLocSensorDataTimeSourceEnumT_v02 threeAxisGyroDataTimeSource;
   6060   /**<   Time source for the 3-axis gyroscope data. The location service uses
   6061  this field to identify the time reference used in the gyroscope data
   6062  timestamps. If not specified, the location service assumes that the
   6063  time source for the gyroscope data is unknown. \n
   6064  Values: \n
   6065       - eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED (0) --  Sensor time source is unspecified
   6066       - eQMI_LOC_SENSOR_TIME_SOURCE_COMMON (1) --  Time source is common between the sensors and
   6067        the location engine
   6068  */
   6069 
   6070   /* Optional */
   6071   /*  Accelerometer Temperature Data */
   6072   uint8_t accelTemperatureData_valid;  /**< Must be set to true if accelTemperatureData is being passed */
   6073   qmiLocSensorTemperatureSampleListStructT_v02 accelTemperatureData;
   6074   /**<   \vspace{0.06in}  \nAccelerometer temperature samples. This data is optional and does not
   6075        have to be included in the message along with accelerometer data. */
   6076 
   6077   /* Optional */
   6078   /*  Gyroscope Temperature Data */
   6079   uint8_t gyroTemperatureData_valid;  /**< Must be set to true if gyroTemperatureData is being passed */
   6080   qmiLocSensorTemperatureSampleListStructT_v02 gyroTemperatureData;
   6081   /**<   \vspace{0.06in} \n Gyroscope temperature samples. This data is optional and does not
   6082        have to be included in the message along with gyroscope data. */
   6083 
   6084   /* Optional */
   6085   /*  3-Axis Magnetometer Data */
   6086   uint8_t threeAxisMagData_valid;  /**< Must be set to true if threeAxisMagData is being passed */
   6087   qmiLoc3AxisSensorSampleListStructT_v02 threeAxisMagData;
   6088   /**<   \vspace{0.06in} \n Magnetometer sensor samples. */
   6089 
   6090   /* Optional */
   6091   /*  3-Axis Magnetometer Data Time Source */
   6092   uint8_t threeAxisMagDataTimeSource_valid;  /**< Must be set to true if threeAxisMagDataTimeSource is being passed */
   6093   qmiLocSensorDataTimeSourceEnumT_v02 threeAxisMagDataTimeSource;
   6094   /**<   Time source for the 3-axis magnetometer data. The location service uses
   6095  this field to identify the time reference used in the magnetometer data
   6096  timestamps. If not specified, the location service assumes that the
   6097  time source for the magnetometer data is unknown. \n
   6098  Values: \n
   6099       - eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED (0) --  Sensor time source is unspecified
   6100       - eQMI_LOC_SENSOR_TIME_SOURCE_COMMON (1) --  Time source is common between the sensors and
   6101        the location engine
   6102  */
   6103 }qmiLocInjectSensorDataReqMsgT_v02;  /* Message */
   6104 /**
   6105     @}
   6106   */
   6107 
   6108 /** @addtogroup loc_qmi_messages
   6109     @{
   6110   */
   6111 /** Indication Message; Used by the control point to inject sensor data into the
   6112                     GNSS location engine. */
   6113 typedef struct {
   6114 
   6115   /* Mandatory */
   6116   /*  Inject Sensor Data Status */
   6117   qmiLocStatusEnumT_v02 status;
   6118   /**<   Status of the Inject Sensor Data request.
   6119 
   6120  Valid values: \n
   6121       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   6122       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   6123       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   6124       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   6125       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   6126       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   6127       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   6128       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   6129       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   6130       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   6131       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   6132  */
   6133 
   6134   /* Optional */
   6135   /*  Opaque Identifier */
   6136   uint8_t opaqueIdentifier_valid;  /**< Must be set to true if opaqueIdentifier is being passed */
   6137   uint32_t opaqueIdentifier;
   6138   /**<   Opaque identifier that was sent in by the client echoed
   6139        so the client can relate the indication to the request. */
   6140 
   6141   /* Optional */
   6142   /*  Accelerometer Samples Accepted */
   6143   uint8_t threeAxisAccelSamplesAccepted_valid;  /**< Must be set to true if threeAxisAccelSamplesAccepted is being passed */
   6144   uint8_t threeAxisAccelSamplesAccepted;
   6145   /**<   Lets the client know how many 3-axis accelerometer samples
   6146        were accepted. This field is present only if the accelerometer
   6147        samples were sent in the request. */
   6148 
   6149   /* Optional */
   6150   /*  Gyroscope Samples Accepted */
   6151   uint8_t threeAxisGyroSamplesAccepted_valid;  /**< Must be set to true if threeAxisGyroSamplesAccepted is being passed */
   6152   uint8_t threeAxisGyroSamplesAccepted;
   6153   /**<   Lets the client know how many 3-axis gyroscope samples were
   6154        accepted. This field is present only if the gyroscope
   6155        samples were sent in the request. */
   6156 
   6157   /* Optional */
   6158   /*  Accelerometer Temperature Samples Accepted */
   6159   uint8_t accelTemperatureSamplesAccepted_valid;  /**< Must be set to true if accelTemperatureSamplesAccepted is being passed */
   6160   uint8_t accelTemperatureSamplesAccepted;
   6161   /**<   Lets the client know how many accelerometer temperature
   6162        samples were accepted. This field is present only if the accelerometer
   6163        temperature samples were sent in the request. */
   6164 
   6165   /* Optional */
   6166   /*  Gyroscope Temperature Samples Accepted */
   6167   uint8_t gyroTemperatureSamplesAccepted_valid;  /**< Must be set to true if gyroTemperatureSamplesAccepted is being passed */
   6168   uint8_t gyroTemperatureSamplesAccepted;
   6169   /**<   Lets the client know how many gyroscope temperature samples
   6170        were accepted. This field is present only if the gyroscope
   6171        temperature samples were sent in the request. */
   6172 
   6173   /* Optional */
   6174   /*  Magnetometer Samples Accepted */
   6175   uint8_t threeAxisMagSamplesAccepted_valid;  /**< Must be set to true if threeAxisMagSamplesAccepted is being passed */
   6176   uint8_t threeAxisMagSamplesAccepted;
   6177   /**<   Lets the client know how many 3-axis magnetometer samples
   6178        were accepted. This field is present only if the magnetometer
   6179        samples were sent in the request. */
   6180 }qmiLocInjectSensorDataIndMsgT_v02;  /* Message */
   6181 /**
   6182     @}
   6183   */
   6184 
   6185 /** @addtogroup loc_qmi_messages
   6186     @{
   6187   */
   6188 /** Request Message; Used by the control point to inject time sync data. */
   6189 typedef struct {
   6190 
   6191   /* Mandatory */
   6192   /*  Reference Time Sync Counter */
   6193   uint32_t refCounter;
   6194   /**<   Must be set to the value that was sent to the control point when the
   6195        GNSS location engine requested time sync injection. */
   6196 
   6197   /* Mandatory */
   6198   /*  Sensor Receive Time */
   6199   uint32_t sensorProcRxTime;
   6200   /**<   Value of the sensor time when the control point received the
   6201        Time Sync Inject request from the GNSS location engine.
   6202 
   6203        Must be monotonically increasing, jitter @latexonly $\leq$ @endlatexonly 1
   6204        millisecond, never stopping until the process is rebooted.\n
   6205        - Units: Milliseconds */
   6206 
   6207   /* Mandatory */
   6208   /*  Sensor Transmit Time */
   6209   uint32_t sensorProcTxTime;
   6210   /**<   Value of the sensor time when the control point injects this message
   6211        for use by the GNSS location engine.
   6212 
   6213        Must be monotonically increasing, jitter @latexonly $\leq$ @endlatexonly 1
   6214        millisecond, never stopping until the process is rebooted.\n
   6215        - Units: Milliseconds */
   6216 }qmiLocInjectTimeSyncDataReqMsgT_v02;  /* Message */
   6217 /**
   6218     @}
   6219   */
   6220 
   6221 /** @addtogroup loc_qmi_messages
   6222     @{
   6223   */
   6224 /** Indication Message; Used by the control point to inject time sync data. */
   6225 typedef struct {
   6226 
   6227   /* Mandatory */
   6228   /*  Inject Time Sync Data Status */
   6229   qmiLocStatusEnumT_v02 status;
   6230   /**<   Status of the Inject Time Sync Data request.
   6231 
   6232  Valid values: \n
   6233       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   6234       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   6235       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   6236       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   6237       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   6238       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   6239       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   6240       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   6241       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   6242       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   6243       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   6244  */
   6245 }qmiLocInjectTimeSyncDataIndMsgT_v02;  /* Message */
   6246 /**
   6247     @}
   6248   */
   6249 
   6250 /** @addtogroup loc_qmi_enums
   6251     @{
   6252   */
   6253 typedef enum {
   6254   QMILOCCRADLEMOUNTSTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   6255   eQMI_LOC_CRADLE_STATE_NOT_MOUNTED_V02 = 0, /**<  Device is mounted on the cradle */
   6256   eQMI_LOC_CRADLE_STATE_MOUNTED_V02 = 1, /**<  Device is not mounted on the cradle */
   6257   eQMI_LOC_CRADLE_STATE_UNKNOWN_V02 = 2, /**<  Unknown cradle mount state */
   6258   QMILOCCRADLEMOUNTSTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   6259 }qmiLocCradleMountStateEnumT_v02;
   6260 /**
   6261     @}
   6262   */
   6263 
   6264 /** @addtogroup loc_qmi_messages
   6265     @{
   6266   */
   6267 /** Request Message; Used by the control point to get the current
   6268                     cradle mount configuration. */
   6269 typedef struct {
   6270   /* This element is a placeholder to prevent the declaration of
   6271      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   6272   char __placeholder;
   6273 }qmiLocGetCradleMountConfigReqMsgT_v02;
   6274 
   6275   /* Message */
   6276 /**
   6277     @}
   6278   */
   6279 
   6280 /** @addtogroup loc_qmi_messages
   6281     @{
   6282   */
   6283 /** Indication Message; Used by the control point to get the current
   6284                     cradle mount configuration. */
   6285 typedef struct {
   6286 
   6287   /* Mandatory */
   6288   /*  Get Cradle Mount Config Status */
   6289   qmiLocStatusEnumT_v02 status;
   6290   /**<   Status of the Get Cradle Mount Configuration request.
   6291 
   6292  Valid values: \n
   6293       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   6294       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   6295       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   6296       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   6297       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   6298       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   6299       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   6300       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   6301       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   6302       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   6303       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   6304  */
   6305 
   6306   /* Optional */
   6307   /*  Cradle Mount State */
   6308   uint8_t cradleMountState_valid;  /**< Must be set to true if cradleMountState is being passed */
   6309   qmiLocCradleMountStateEnumT_v02 cradleMountState;
   6310   /**<   Cradle Mount state set by the control point.
   6311 
   6312  Valid values: \n
   6313       - eQMI_LOC_CRADLE_STATE_NOT_MOUNTED (0) --  Device is mounted on the cradle
   6314       - eQMI_LOC_CRADLE_STATE_MOUNTED (1) --  Device is not mounted on the cradle
   6315       - eQMI_LOC_CRADLE_STATE_UNKNOWN (2) --  Unknown cradle mount state
   6316  */
   6317 
   6318   /* Optional */
   6319   /*  Cradle Mount Confidence */
   6320   uint8_t confidenceCradleMountState_valid;  /**< Must be set to true if confidenceCradleMountState is being passed */
   6321   uint8_t confidenceCradleMountState;
   6322   /**<   Confidence of the Cradle Mount state expressed as a percentage.\n
   6323        - Range: 0 to 100 */
   6324 }qmiLocGetCradleMountConfigIndMsgT_v02;  /* Message */
   6325 /**
   6326     @}
   6327   */
   6328 
   6329 /** @addtogroup loc_qmi_messages
   6330     @{
   6331   */
   6332 /** Request Message; Used by the control point to set the current
   6333                     cradle mount configuration. */
   6334 typedef struct {
   6335 
   6336   /* Mandatory */
   6337   /*  Cradle Mount State */
   6338   qmiLocCradleMountStateEnumT_v02 cradleMountState;
   6339   /**<   Cradle Mount state set by the control point.
   6340 
   6341  Valid values: \n
   6342       - eQMI_LOC_CRADLE_STATE_NOT_MOUNTED (0) --  Device is mounted on the cradle
   6343       - eQMI_LOC_CRADLE_STATE_MOUNTED (1) --  Device is not mounted on the cradle
   6344       - eQMI_LOC_CRADLE_STATE_UNKNOWN (2) --  Unknown cradle mount state
   6345  */
   6346 
   6347   /* Optional */
   6348   /*  Cradle Mount Confidence */
   6349   uint8_t confidenceCradleMountState_valid;  /**< Must be set to true if confidenceCradleMountState is being passed */
   6350   uint8_t confidenceCradleMountState;
   6351   /**<   Confidence in the Cradle Mount state expressed as a percentage.\n
   6352        - Range: 0 to 100 */
   6353 }qmiLocSetCradleMountConfigReqMsgT_v02;  /* Message */
   6354 /**
   6355     @}
   6356   */
   6357 
   6358 /** @addtogroup loc_qmi_messages
   6359     @{
   6360   */
   6361 /** Indication Message; Used by the control point to set the current
   6362                     cradle mount configuration. */
   6363 typedef struct {
   6364 
   6365   /* Mandatory */
   6366   /*  Set Cradle Mount Config Status */
   6367   qmiLocStatusEnumT_v02 status;
   6368   /**<   Status of the Set Cradle Mount Configuration request.
   6369 
   6370  Valid values: \n
   6371       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   6372       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   6373       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   6374       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   6375       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   6376       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   6377       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   6378       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   6379       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   6380       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   6381       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   6382  */
   6383 }qmiLocSetCradleMountConfigIndMsgT_v02;  /* Message */
   6384 /**
   6385     @}
   6386   */
   6387 
   6388 /** @addtogroup loc_qmi_enums
   6389     @{
   6390   */
   6391 typedef enum {
   6392   QMILOCEXTERNALPOWERCONFIGENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   6393   eQMI_LOC_EXTERNAL_POWER_NOT_CONNECTED_V02 = 0, /**<  Device is not connected to an external power source  */
   6394   eQMI_LOC_EXTERNAL_POWER_CONNECTED_V02 = 1, /**<  Device is connected to an external power source  */
   6395   eQMI_LOC_EXTERNAL_POWER_UNKNOWN_V02 = 2, /**<  Unknown external power state  */
   6396   QMILOCEXTERNALPOWERCONFIGENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   6397 }qmiLocExternalPowerConfigEnumT_v02;
   6398 /**
   6399     @}
   6400   */
   6401 
   6402 /** @addtogroup loc_qmi_messages
   6403     @{
   6404   */
   6405 /** Request Message; Used by the control point to get the current
   6406                     external power configuration. */
   6407 typedef struct {
   6408   /* This element is a placeholder to prevent the declaration of
   6409      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   6410   char __placeholder;
   6411 }qmiLocGetExternalPowerConfigReqMsgT_v02;
   6412 
   6413   /* Message */
   6414 /**
   6415     @}
   6416   */
   6417 
   6418 /** @addtogroup loc_qmi_messages
   6419     @{
   6420   */
   6421 /** Indication Message; Used by the control point to get the current
   6422                     external power configuration. */
   6423 typedef struct {
   6424 
   6425   /* Mandatory */
   6426   /*  Get Ext Power Config Status */
   6427   qmiLocStatusEnumT_v02 status;
   6428   /**<   Status of the Get External Power Configuration request.
   6429 
   6430  Valid values: \n
   6431       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   6432       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   6433       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   6434       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   6435       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   6436       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   6437       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   6438       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   6439       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   6440       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   6441       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   6442  */
   6443 
   6444   /* Optional */
   6445   /*  External Power State */
   6446   uint8_t externalPowerState_valid;  /**< Must be set to true if externalPowerState is being passed */
   6447   qmiLocExternalPowerConfigEnumT_v02 externalPowerState;
   6448   /**<   Power state; injected by the control point.
   6449 
   6450  Valid values: \n
   6451       - eQMI_LOC_EXTERNAL_POWER_NOT_CONNECTED (0) --  Device is not connected to an external power source
   6452       - eQMI_LOC_EXTERNAL_POWER_CONNECTED (1) --  Device is connected to an external power source
   6453       - eQMI_LOC_EXTERNAL_POWER_UNKNOWN (2) --  Unknown external power state
   6454  */
   6455 }qmiLocGetExternalPowerConfigIndMsgT_v02;  /* Message */
   6456 /**
   6457     @}
   6458   */
   6459 
   6460 /** @addtogroup loc_qmi_messages
   6461     @{
   6462   */
   6463 /** Request Message; Used by the control point to set the current
   6464                     external power configuration. */
   6465 typedef struct {
   6466 
   6467   /* Mandatory */
   6468   /*  External Power State */
   6469   qmiLocExternalPowerConfigEnumT_v02 externalPowerState;
   6470   /**<   Power state; injected by the control point.
   6471 
   6472  Valid values: \n
   6473       - eQMI_LOC_EXTERNAL_POWER_NOT_CONNECTED (0) --  Device is not connected to an external power source
   6474       - eQMI_LOC_EXTERNAL_POWER_CONNECTED (1) --  Device is connected to an external power source
   6475       - eQMI_LOC_EXTERNAL_POWER_UNKNOWN (2) --  Unknown external power state
   6476  */
   6477 }qmiLocSetExternalPowerConfigReqMsgT_v02;  /* Message */
   6478 /**
   6479     @}
   6480   */
   6481 
   6482 /** @addtogroup loc_qmi_messages
   6483     @{
   6484   */
   6485 /** Indication Message; Used by the control point to set the current
   6486                     external power configuration. */
   6487 typedef struct {
   6488 
   6489   /* Mandatory */
   6490   /*  Set Ext Power Config Status */
   6491   qmiLocStatusEnumT_v02 status;
   6492   /**<   Status of the Set External Power Configuration request.
   6493 
   6494  Valid values: \n
   6495       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   6496       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   6497       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   6498       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   6499       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   6500       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   6501       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   6502       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   6503       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   6504       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   6505       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   6506  */
   6507 }qmiLocSetExternalPowerConfigIndMsgT_v02;  /* Message */
   6508 /**
   6509     @}
   6510   */
   6511 
   6512 /** @addtogroup loc_qmi_enums
   6513     @{
   6514   */
   6515 typedef enum {
   6516   QMILOCSERVERPDNENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   6517   eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV4_V02 = 0x01, /**<  IPv4 PDN type  */
   6518   eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV6_V02 = 0x02, /**<  IPv6 PDN type  */
   6519   eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV4V6_V02 = 0x03, /**<  IPv4v6 PDN type  */
   6520   eQMI_LOC_APN_PROFILE_PDN_TYPE_PPP_V02 = 0x04, /**<  PPP PDN type  */
   6521   QMILOCSERVERPDNENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   6522 }qmiLocServerPDNEnumT_v02;
   6523 /**
   6524     @}
   6525   */
   6526 
   6527 /** @addtogroup loc_qmi_aggregates
   6528     @{
   6529   */
   6530 typedef struct {
   6531 
   6532   qmiLocServerPDNEnumT_v02 pdnType;
   6533   /**<   PDN type of the APN profile.
   6534 
   6535  Valid values: \n
   6536       - eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV4 (0x01) --  IPv4 PDN type
   6537       - eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV6 (0x02) --  IPv6 PDN type
   6538       - eQMI_LOC_APN_PROFILE_PDN_TYPE_IPV4V6 (0x03) --  IPv4v6 PDN type
   6539       - eQMI_LOC_APN_PROFILE_PDN_TYPE_PPP (0x04) --  PPP PDN type
   6540  */
   6541 
   6542   char apnName[QMI_LOC_MAX_APN_NAME_LENGTH_V02 + 1];
   6543   /**<   APN name.
   6544        \begin{itemize1}
   6545        \item    Type: NULL-terminated string
   6546        \item    Maximum string length (including NULL terminator): 101
   6547        \vspace{-0.18in} \end{itemize1}
   6548   */
   6549 }qmiLocApnProfilesStructT_v02;  /* Type */
   6550 /**
   6551     @}
   6552   */
   6553 
   6554 /** @addtogroup loc_qmi_enums
   6555     @{
   6556   */
   6557 typedef enum {
   6558   QMILOCSERVERREQSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   6559   eQMI_LOC_SERVER_REQ_STATUS_SUCCESS_V02 = 1, /**<  Location server request was successful  */
   6560   eQMI_LOC_SERVER_REQ_STATUS_FAILURE_V02 = 2, /**<  Location server request failed  */
   6561   QMILOCSERVERREQSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   6562 }qmiLocServerReqStatusEnumT_v02;
   6563 /**
   6564     @}
   6565   */
   6566 
   6567 /** @addtogroup loc_qmi_messages
   6568     @{
   6569   */
   6570 /** Request Message; Used by the control point to inform the service about the
   6571                     status of the location server connection request that the
   6572                     service may have sent via the
   6573                     QMI_LOC_EVENT_LOCATION_SERVER_CONNECTION_REQ_IND event. */
   6574 typedef struct {
   6575 
   6576   /* Mandatory */
   6577   /*  Connection Handle */
   6578   uint32_t connHandle;
   6579   /**<   Connection handle that the service specified in the
   6580        Location Server Connection request event. */
   6581 
   6582   /* Mandatory */
   6583   /*  Request Type */
   6584   qmiLocServerRequestEnumT_v02 requestType;
   6585   /**<   Type of connection request service that was specified in the
   6586  Location Server Connection Request event.
   6587 
   6588  Valid values: \n
   6589       - eQMI_LOC_SERVER_REQUEST_OPEN (1) --  Open a connection to the location server
   6590       - eQMI_LOC_SERVER_REQUEST_CLOSE (2) --  Close a connection to the location server
   6591  */
   6592 
   6593   /* Mandatory */
   6594   /*  Connection Status */
   6595   qmiLocServerReqStatusEnumT_v02 statusType;
   6596   /**<   Status of the Connection request.
   6597 
   6598  Valid values: \n
   6599       - eQMI_LOC_SERVER_REQ_STATUS_SUCCESS (1) --  Location server request was successful
   6600       - eQMI_LOC_SERVER_REQ_STATUS_FAILURE (2) --  Location server request failed
   6601  */
   6602 
   6603   /* Optional */
   6604   /*  APN Profile */
   6605   uint8_t apnProfile_valid;  /**< Must be set to true if apnProfile is being passed */
   6606   qmiLocApnProfilesStructT_v02 apnProfile;
   6607   /**<   \vspace{0.06in} \n Access Point Name (APN) profile information is present only when
   6608        requestType is OPEN and statusType is SUCCESS. */
   6609 }qmiLocInformLocationServerConnStatusReqMsgT_v02;  /* Message */
   6610 /**
   6611     @}
   6612   */
   6613 
   6614 /** @addtogroup loc_qmi_messages
   6615     @{
   6616   */
   6617 /** Indication Message; Used by the control point to inform the service about the
   6618                     status of the location server connection request that the
   6619                     service may have sent via the
   6620                     QMI_LOC_EVENT_LOCATION_SERVER_CONNECTION_REQ_IND event. */
   6621 typedef struct {
   6622 
   6623   /* Mandatory */
   6624   /*  Status of Inform Loc Server Conn Status */
   6625   qmiLocStatusEnumT_v02 status;
   6626   /**<   Status of the Inform Location Server Connection Status request.
   6627 
   6628  Valid values: \n
   6629       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   6630       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   6631       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   6632       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   6633       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   6634       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   6635       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   6636       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   6637       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   6638       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   6639       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   6640  */
   6641 }qmiLocInformLocationServerConnStatusIndMsgT_v02;  /* Message */
   6642 /**
   6643     @}
   6644   */
   6645 
   6646 /** @addtogroup loc_qmi_enums
   6647     @{
   6648   */
   6649 typedef enum {
   6650   QMILOCVXVERSIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   6651   eQMI_LOC_VX_VERSION_V1_ONLY_V02 = 1, /**<  V1 VX version  */
   6652   eQMI_LOC_VX_VERSION_V2_ONLY_V02 = 2, /**<  V2 VX version  */
   6653   QMILOCVXVERSIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   6654 }qmiLocVxVersionEnumT_v02;
   6655 /**
   6656     @}
   6657   */
   6658 
   6659 /** @addtogroup loc_qmi_enums
   6660     @{
   6661   */
   6662 typedef enum {
   6663   QMILOCSUPLVERSIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   6664   eQMI_LOC_SUPL_VERSION_1_0_V02 = 1, /**<  SUPL version 1.0  */
   6665   eQMI_LOC_SUPL_VERSION_2_0_V02 = 2, /**<  SUPL version 2.0  */
   6666   QMILOCSUPLVERSIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   6667 }qmiLocSuplVersionEnumT_v02;
   6668 /**
   6669     @}
   6670   */
   6671 
   6672 typedef uint32_t qmiLocLppConfigMaskT_v02;
   6673 #define QMI_LOC_LPP_CONFIG_ENABLE_USER_PLANE_V02 ((qmiLocLppConfigMaskT_v02)0x00000001) /**<  Enable user plane configuration for LTE Positioning Profile (LPP)  */
   6674 #define QMI_LOC_LPP_CONFIG_ENABLE_CONTROL_PLANE_V02 ((qmiLocLppConfigMaskT_v02)0x00000002) /**<  Enable control plane configuration for LPP  */
   6675 typedef uint32_t qmiLocAssistedGlonassProtocolMaskT_v02;
   6676 #define QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRC_CP_V02 ((qmiLocAssistedGlonassProtocolMaskT_v02)0x00000001) /**<  Assisted GLONASS is supported over RRC in the control plane  */
   6677 #define QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRLP_UP_V02 ((qmiLocAssistedGlonassProtocolMaskT_v02)0x00000002) /**<  Assisted GLONASS is supported over RRLP in the user plane  */
   6678 #define QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_UP_V02 ((qmiLocAssistedGlonassProtocolMaskT_v02)0x00000004) /**<  Assisted GLONASS is supported over LPP in the user plane;
   6679        QMI_LOC_LPP_CONFIG_ENABLE_USER_PLANE must be set
   6680        in the LPP configuration for this to take effect  */
   6681 #define QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_CP_V02 ((qmiLocAssistedGlonassProtocolMaskT_v02)0x00000008) /**<  Assisted GLONASS is supported over LPP in the control plane;
   6682        QMI_LOC_LPP_CONFIG_ENABLE_CONTROL_PLANE must be set
   6683        in the LPP configuration for this to take effect  */
   6684 /** @addtogroup loc_qmi_enums
   6685     @{
   6686   */
   6687 typedef enum {
   6688   QMILOCSUPLHASHALGOENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   6689   eQMI_LOC_SUPL_HASH_ALGO_SHA1_V02 = 0, /**<  SHA-1 hash algorithm for SUPL version 2.0 or later  */
   6690   eQMI_LOC_SUPL_HASH_ALGO_SHA256_V02 = 1, /**<  SHA-256 hash algorithm for SUPL version 2.0 or later  */
   6691   QMILOCSUPLHASHALGOENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   6692 }qmiLocSuplHashAlgoEnumT_v02;
   6693 /**
   6694     @}
   6695   */
   6696 
   6697 /** @addtogroup loc_qmi_enums
   6698     @{
   6699   */
   6700 typedef enum {
   6701   QMILOCSUPLTLSVERSIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   6702   eQMI_LOC_SUPL_TLS_VERSION_1_0_V02 = 0, /**<  SUPL TLS version 1.0  */
   6703   eQMI_LOC_SUPL_TLS_VERSION_1_1_V02 = 1, /**<  SUPL TLS version 1.1  */
   6704   QMILOCSUPLTLSVERSIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   6705 }qmiLocSuplTlsVersionEnumT_v02;
   6706 /**
   6707     @}
   6708   */
   6709 
   6710 /** @addtogroup loc_qmi_enums
   6711     @{
   6712   */
   6713 typedef enum {
   6714   QMILOCEMERGENCYPROTOCOLENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   6715   eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_CP_V02 = 0, /**<  Use Control Plane Protocol during an emergency while on WCDMA  */
   6716   eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_UP_V02 = 1, /**<  Use SUPL 2.0 emergency services during an emergency while on WCDMA  */
   6717   QMILOCEMERGENCYPROTOCOLENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   6718 }qmiLocEmergencyProtocolEnumT_v02;
   6719 /**
   6720     @}
   6721   */
   6722 
   6723 /** @addtogroup loc_qmi_messages
   6724     @{
   6725   */
   6726 /** Request Message; Used by the control point to configure parameters stored
   6727                     in the nonvolatile memory. */
   6728 typedef struct {
   6729 
   6730   /* Optional */
   6731   /*  SUPL Security */
   6732   uint8_t suplSecurity_valid;  /**< Must be set to true if suplSecurity is being passed */
   6733   uint8_t suplSecurity;
   6734   /**<   Indicates whether SUPL security is enabled.
   6735        \begin{itemize1}
   6736        \item    0x01 (TRUE) -- SUPL security is enabled
   6737        \item    0x00 (FALSE) -- SUPL security is disabled
   6738        \vspace{-0.18in} \end{itemize1} */
   6739 
   6740   /* Optional */
   6741   /*  VX Version */
   6742   uint8_t vxVersion_valid;  /**< Must be set to true if vxVersion is being passed */
   6743   qmiLocVxVersionEnumT_v02 vxVersion;
   6744   /**<   VX version.
   6745 
   6746  Valid values: \n
   6747       - eQMI_LOC_VX_VERSION_V1_ONLY (1) --  V1 VX version
   6748       - eQMI_LOC_VX_VERSION_V2_ONLY (2) --  V2 VX version
   6749  */
   6750 
   6751   /* Optional */
   6752   /*  SUPL Version */
   6753   uint8_t suplVersion_valid;  /**< Must be set to true if suplVersion is being passed */
   6754   qmiLocSuplVersionEnumT_v02 suplVersion;
   6755   /**<   SUPL version.
   6756 
   6757  Valid values: \n
   6758       - eQMI_LOC_SUPL_VERSION_1_0 (1) --  SUPL version 1.0
   6759       - eQMI_LOC_SUPL_VERSION_2_0 (2) --  SUPL version 2.0
   6760  */
   6761 
   6762   /* Optional */
   6763   /*  LPP Configuration */
   6764   uint8_t lppConfig_valid;  /**< Must be set to true if lppConfig is being passed */
   6765   qmiLocLppConfigMaskT_v02 lppConfig;
   6766   /**<   LTE Positioning Profile (LPP) configuration.
   6767 
   6768       Valid bitmasks: \begin{itemize1}
   6769       \item    0x00000001 -- LPP_CONFIG_ ENABLE_USER_PLANE
   6770       \item    0x00000002 -- LPP_CONFIG_ ENABLE_CONTROL_PLANE
   6771       \vspace{-0.18in} \end{itemize1}
   6772   */
   6773 
   6774   /* Optional */
   6775   /*  Assisted GLONASS Protocol Mask */
   6776   uint8_t assistedGlonassProtocolMask_valid;  /**< Must be set to true if assistedGlonassProtocolMask is being passed */
   6777   qmiLocAssistedGlonassProtocolMaskT_v02 assistedGlonassProtocolMask;
   6778   /**<   Configures the protocols that the location service supports
   6779  for assisted GLONASS.
   6780 
   6781  Valid bitmasks: \n
   6782       - QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRC_CP (0x00000001) --  Assisted GLONASS is supported over RRC in the control plane
   6783       - QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRLP_UP (0x00000002) --  Assisted GLONASS is supported over RRLP in the user plane
   6784       - QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_UP (0x00000004) --  Assisted GLONASS is supported over LPP in the user plane;
   6785        QMI_LOC_LPP_CONFIG_ENABLE_USER_PLANE must be set
   6786        in the LPP configuration for this to take effect
   6787       - QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_CP (0x00000008) --  Assisted GLONASS is supported over LPP in the control plane;
   6788        QMI_LOC_LPP_CONFIG_ENABLE_CONTROL_PLANE must be set
   6789        in the LPP configuration for this to take effect
   6790  */
   6791 
   6792   /* Optional */
   6793   /*  SUPL Hash Algorithm */
   6794   uint8_t suplHashAlgo_valid;  /**< Must be set to true if suplHashAlgo is being passed */
   6795   qmiLocSuplHashAlgoEnumT_v02 suplHashAlgo;
   6796   /**<   SUPL hash algorithm to be used.
   6797 
   6798  Valid values: \n
   6799       - eQMI_LOC_SUPL_HASH_ALGO_SHA1 (0) --  SHA-1 hash algorithm for SUPL version 2.0 or later
   6800       - eQMI_LOC_SUPL_HASH_ALGO_SHA256 (1) --  SHA-256 hash algorithm for SUPL version 2.0 or later
   6801  */
   6802 
   6803   /* Optional */
   6804   /*  SUPL TLS Version */
   6805   uint8_t suplTlsVersion_valid;  /**< Must be set to true if suplTlsVersion is being passed */
   6806   qmiLocSuplTlsVersionEnumT_v02 suplTlsVersion;
   6807   /**<   SUPL Transport Layer Security (TLS) version. This configuration is only
   6808  applicable to SUPL 2.0 or later, as SUPL 1.0 always uses TLS version 1.0.
   6809 
   6810  Valid values: \n
   6811       - eQMI_LOC_SUPL_TLS_VERSION_1_0 (0) --  SUPL TLS version 1.0
   6812       - eQMI_LOC_SUPL_TLS_VERSION_1_1 (1) --  SUPL TLS version 1.1
   6813  */
   6814 
   6815   /* Optional */
   6816   /*  Emergency Protocol */
   6817   uint8_t emergencyProtocol_valid;  /**< Must be set to true if emergencyProtocol is being passed */
   6818   qmiLocEmergencyProtocolEnumT_v02 emergencyProtocol;
   6819   /**<   Configures the protocol to be used during an emergency. \n
   6820  \textbf{Note:} Currently, this can only be selected on WCDMA. For GSM
   6821  and 1X, the UE only allows a control plane NI trigger for positioning.
   6822  For LTE, the UE allows either a SUPL or a control plane NI trigger.
   6823 
   6824  Valid values: \n
   6825       - eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_CP (0) --  Use Control Plane Protocol during an emergency while on WCDMA
   6826       - eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_UP (1) --  Use SUPL 2.0 emergency services during an emergency while on WCDMA
   6827  */
   6828 
   6829   /* Optional */
   6830   /*  Wi-Fi Scan Injection Timeout Period */
   6831   uint8_t wifiScanInjectTimeout_valid;  /**< Must be set to true if wifiScanInjectTimeout is being passed */
   6832   uint8_t wifiScanInjectTimeout;
   6833   /**<   Configures the timeout duration that the service waits for scan results
   6834   injection from the control point after the event notification is sent. \n
   6835        \textbf{Note:} The timeout value is in seconds. \n
   6836          Values: \n
   6837        0 to 10 seconds \n
   6838        The minimum value (0 seconds) is the default. At this value, the service
   6839        disables sending the Wi-Fi scan injection notification and ignores any
   6840        scan results injection request.
   6841   */
   6842 }qmiLocSetProtocolConfigParametersReqMsgT_v02;  /* Message */
   6843 /**
   6844     @}
   6845   */
   6846 
   6847 typedef uint64_t qmiLocProtocolConfigParamMaskT_v02;
   6848 #define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_SECURITY_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000001ull) /**<  Mask for the SUPL security configuration parameter  */
   6849 #define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_VX_VERSION_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000002ull) /**<  Mask for the VX version configuration parameter  */
   6850 #define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_VERSION_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000004ull) /**<  Mask for the SUPL version configuration parameter  */
   6851 #define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_LPP_CONFIG_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000008ull) /**<  Mask for the LPP configuration parameter  */
   6852 #define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_ASSISTED_GLONASS_PROTOCOL_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000010ull) /**<  Mask for the assisted GLONASS configuration parameter  */
   6853 #define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_HASH_ALGO_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000020ull) /**<  Mask for the SUPL hash algorithm configuration parameter  */
   6854 #define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_TLS_VERSION_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000040ull) /**<  Mask for the SUPL TLS version configuration parameter  */
   6855 #define QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_EMERGENCY_PROTOCOL_V02 ((qmiLocProtocolConfigParamMaskT_v02)0x0000000000000080ull) /**<  Mask for the emergency protocol configuration parameter  */
   6856 #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  */
   6857 /** @addtogroup loc_qmi_messages
   6858     @{
   6859   */
   6860 /** Indication Message; Used by the control point to configure parameters stored
   6861                     in the nonvolatile memory. */
   6862 typedef struct {
   6863 
   6864   /* Mandatory */
   6865   /*  Set Config Params Status */
   6866   qmiLocStatusEnumT_v02 status;
   6867   /**<   Status of the Set Configuration Parameters request.
   6868 
   6869  Valid values: \n
   6870       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   6871       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   6872       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   6873       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   6874       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   6875       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   6876       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   6877       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   6878       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   6879       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   6880       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   6881  */
   6882 
   6883   /* Optional */
   6884   /*  Failed Parameters */
   6885   uint8_t failedProtocolConfigParamMask_valid;  /**< Must be set to true if failedProtocolConfigParamMask is being passed */
   6886   qmiLocProtocolConfigParamMaskT_v02 failedProtocolConfigParamMask;
   6887   /**<   Identifies parameters that were not set successfully. This field
   6888  is sent only if the status is not SUCCESS.
   6889 
   6890  Valid bitmasks: \n
   6891       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_SECURITY (0x0000000000000001) --  Mask for the SUPL security configuration parameter
   6892       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_VX_VERSION (0x0000000000000002) --  Mask for the VX version configuration parameter
   6893       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_VERSION (0x0000000000000004) --  Mask for the SUPL version configuration parameter
   6894       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_LPP_CONFIG (0x0000000000000008) --  Mask for the LPP configuration parameter
   6895       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_ASSISTED_GLONASS_PROTOCOL (0x0000000000000010) --  Mask for the assisted GLONASS configuration parameter
   6896       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_HASH_ALGO (0x0000000000000020) --  Mask for the SUPL hash algorithm configuration parameter
   6897       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_TLS_VERSION (0x0000000000000040) --  Mask for the SUPL TLS version configuration parameter
   6898       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_EMERGENCY_PROTOCOL (0x0000000000000080) --  Mask for the emergency protocol configuration parameter
   6899       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_WIFI_SCAN_INJECT_TIMEOUT (0x0000000000000100) --  Mask for the Wi-Fi scan injection timeout configuration parameter
   6900  */
   6901 }qmiLocSetProtocolConfigParametersIndMsgT_v02;  /* Message */
   6902 /**
   6903     @}
   6904   */
   6905 
   6906 /** @addtogroup loc_qmi_messages
   6907     @{
   6908   */
   6909 /** Request Message; Used by the control point to get the configuration
   6910                     parameters stored in the nonvolatile memory. */
   6911 typedef struct {
   6912 
   6913   /* Mandatory */
   6914   /*  Config Parameters */
   6915   qmiLocProtocolConfigParamMaskT_v02 getProtocolConfigParamMask;
   6916   /**<   Mask denoting the configuration parameters to be retrieved.
   6917 
   6918  Valid bitmasks: \n
   6919       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_SECURITY (0x0000000000000001) --  Mask for the SUPL security configuration parameter
   6920       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_VX_VERSION (0x0000000000000002) --  Mask for the VX version configuration parameter
   6921       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_VERSION (0x0000000000000004) --  Mask for the SUPL version configuration parameter
   6922       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_LPP_CONFIG (0x0000000000000008) --  Mask for the LPP configuration parameter
   6923       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_ASSISTED_GLONASS_PROTOCOL (0x0000000000000010) --  Mask for the assisted GLONASS configuration parameter
   6924       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_HASH_ALGO (0x0000000000000020) --  Mask for the SUPL hash algorithm configuration parameter
   6925       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_SUPL_TLS_VERSION (0x0000000000000040) --  Mask for the SUPL TLS version configuration parameter
   6926       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_EMERGENCY_PROTOCOL (0x0000000000000080) --  Mask for the emergency protocol configuration parameter
   6927       - QMI_LOC_PROTOCOL_CONFIG_PARAM_MASK_WIFI_SCAN_INJECT_TIMEOUT (0x0000000000000100) --  Mask for the Wi-Fi scan injection timeout configuration parameter
   6928  */
   6929 }qmiLocGetProtocolConfigParametersReqMsgT_v02;  /* Message */
   6930 /**
   6931     @}
   6932   */
   6933 
   6934 /** @addtogroup loc_qmi_messages
   6935     @{
   6936   */
   6937 /** Indication Message; Used by the control point to get the configuration
   6938                     parameters stored in the nonvolatile memory. */
   6939 typedef struct {
   6940 
   6941   /* Mandatory */
   6942   /*  Get Config Params Status */
   6943   qmiLocStatusEnumT_v02 status;
   6944   /**<   Status of the Get Configuration Parameters request.
   6945 
   6946  Valid values: \n
   6947       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   6948       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   6949       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   6950       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   6951       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   6952       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   6953       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   6954       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   6955       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   6956       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   6957       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   6958  */
   6959 
   6960   /* Optional */
   6961   /*  SUPL Security */
   6962   uint8_t suplSecurity_valid;  /**< Must be set to true if suplSecurity is being passed */
   6963   uint8_t suplSecurity;
   6964   /**<   Indicates whether SUPL security is enabled.
   6965        \begin{itemize1}
   6966        \item    0x01 (TRUE) -- SUPL security is enabled
   6967        \item    0x00 (FALSE) -- SUPL security is disabled
   6968        \vspace{-0.18in} \end{itemize1}*/
   6969 
   6970   /* Optional */
   6971   /*  VX Version */
   6972   uint8_t vxVersion_valid;  /**< Must be set to true if vxVersion is being passed */
   6973   qmiLocVxVersionEnumT_v02 vxVersion;
   6974   /**<   VX version.
   6975 
   6976  Valid values: \n
   6977       - eQMI_LOC_VX_VERSION_V1_ONLY (1) --  V1 VX version
   6978       - eQMI_LOC_VX_VERSION_V2_ONLY (2) --  V2 VX version
   6979  */
   6980 
   6981   /* Optional */
   6982   /*  SUPL Version */
   6983   uint8_t suplVersion_valid;  /**< Must be set to true if suplVersion is being passed */
   6984   qmiLocSuplVersionEnumT_v02 suplVersion;
   6985   /**<   SUPL version.
   6986 
   6987  Valid values: \n
   6988       - eQMI_LOC_SUPL_VERSION_1_0 (1) --  SUPL version 1.0
   6989       - eQMI_LOC_SUPL_VERSION_2_0 (2) --  SUPL version 2.0
   6990  */
   6991 
   6992   /* Optional */
   6993   /*  LPP Configuration */
   6994   uint8_t lppConfig_valid;  /**< Must be set to true if lppConfig is being passed */
   6995   qmiLocLppConfigMaskT_v02 lppConfig;
   6996   /**<   LTE Positioning Profile (LPP) configuration.
   6997 
   6998       Valid bitmasks: \begin{itemize1}
   6999       \item    0x00000001 -- LPP_CONFIG_ ENABLE_USER_PLANE
   7000       \item    0x00000002 -- LPP_CONFIG_ ENABLE_CONTROL_PLANE
   7001       \vspace{-0.18in} \end{itemize1}
   7002   */
   7003 
   7004   /* Optional */
   7005   /*  Assisted GLONASS Protocol Mask */
   7006   uint8_t assistedGlonassProtocolMask_valid;  /**< Must be set to true if assistedGlonassProtocolMask is being passed */
   7007   qmiLocAssistedGlonassProtocolMaskT_v02 assistedGlonassProtocolMask;
   7008   /**<   Assisted GLONASS Protocol mask.
   7009 
   7010  Valid bitmasks: \n
   7011       - QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRC_CP (0x00000001) --  Assisted GLONASS is supported over RRC in the control plane
   7012       - QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_RRLP_UP (0x00000002) --  Assisted GLONASS is supported over RRLP in the user plane
   7013       - QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_UP (0x00000004) --  Assisted GLONASS is supported over LPP in the user plane;
   7014        QMI_LOC_LPP_CONFIG_ENABLE_USER_PLANE must be set
   7015        in the LPP configuration for this to take effect
   7016       - QMI_LOC_ASSISTED_GLONASS_PROTOCOL_MASK_LPP_CP (0x00000008) --  Assisted GLONASS is supported over LPP in the control plane;
   7017        QMI_LOC_LPP_CONFIG_ENABLE_CONTROL_PLANE must be set
   7018        in the LPP configuration for this to take effect
   7019  */
   7020 
   7021   /* Optional */
   7022   /*  SUPL Hash Algorithm */
   7023   uint8_t suplHashAlgo_valid;  /**< Must be set to true if suplHashAlgo is being passed */
   7024   qmiLocSuplHashAlgoEnumT_v02 suplHashAlgo;
   7025   /**<   SUPL hash algorithm to be used.
   7026 
   7027  Valid values: \n
   7028       - eQMI_LOC_SUPL_HASH_ALGO_SHA1 (0) --  SHA-1 hash algorithm for SUPL version 2.0 or later
   7029       - eQMI_LOC_SUPL_HASH_ALGO_SHA256 (1) --  SHA-256 hash algorithm for SUPL version 2.0 or later
   7030  */
   7031 
   7032   /* Optional */
   7033   /*  SUPL TLS Version */
   7034   uint8_t suplTlsVersion_valid;  /**< Must be set to true if suplTlsVersion is being passed */
   7035   qmiLocSuplTlsVersionEnumT_v02 suplTlsVersion;
   7036   /**<   SUPL TLS version. This configuration is only
   7037  applicable to SUPL 2.0 or later, as SUPL 1.0 always uses TLS version 1.0.
   7038 
   7039  Valid values: \n
   7040       - eQMI_LOC_SUPL_TLS_VERSION_1_0 (0) --  SUPL TLS version 1.0
   7041       - eQMI_LOC_SUPL_TLS_VERSION_1_1 (1) --  SUPL TLS version 1.1
   7042  */
   7043 
   7044   /* Optional */
   7045   /*  Emergency Protocol */
   7046   uint8_t emergencyProtocol_valid;  /**< Must be set to true if emergencyProtocol is being passed */
   7047   qmiLocEmergencyProtocolEnumT_v02 emergencyProtocol;
   7048   /**<   Protocol to be used during emergency.
   7049 
   7050  Valid values: \n
   7051       - eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_CP (0) --  Use Control Plane Protocol during an emergency while on WCDMA
   7052       - eQMI_LOC_EMERGENCY_PROTOCOL_WCDMA_UP (1) --  Use SUPL 2.0 emergency services during an emergency while on WCDMA
   7053  */
   7054 
   7055   /* Optional */
   7056   /*  Wi-Fi Scan Injection Timeout Period */
   7057   uint8_t wifiScanInjectTimeout_valid;  /**< Must be set to true if wifiScanInjectTimeout is being passed */
   7058   uint8_t wifiScanInjectTimeout;
   7059   /**<   Timeout duration that the service waits for a scan results
   7060   injection from the control point after the event notification is sent. \n
   7061        Values: \n
   7062        0 to 10 seconds
   7063   */
   7064 }qmiLocGetProtocolConfigParametersIndMsgT_v02;  /* Message */
   7065 /**
   7066     @}
   7067   */
   7068 
   7069 /** @addtogroup loc_qmi_enums
   7070     @{
   7071   */
   7072 typedef enum {
   7073   QMILOCSENSORSCONTROLCONFIGSENSORUSEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   7074   eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_ENABLE_V02 = 0, /**<  Sensors data should be requested whenever a position request is
   7075        received. If sensor data are injected, the positioning engine
   7076        attempts to improve the heading and positioning performance using sensors.
   7077        This is the default.
   7078   */
   7079   eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_DISABLE_V02 = 1, /**<  Inertial sensors are not to be used to aid heading and position
   7080        improvement.  */
   7081   QMILOCSENSORSCONTROLCONFIGSENSORUSEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   7082 }qmiLocSensorsControlConfigSensorUseEnumT_v02;
   7083 /**
   7084     @}
   7085   */
   7086 
   7087 /** @addtogroup loc_qmi_enums
   7088     @{
   7089   */
   7090 typedef enum {
   7091   QMILOCSENSORSCONTROLCONFIGSENSORPROVIDERENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   7092   eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_SSC_V02 = 0, /**<  Sensors data provider is Snapdragon Sensor Core (SSC);
   7093        this is the default
   7094    */
   7095   eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_NATIVE_V02 = 1, /**<  Sensors data provider is on the host processor  */
   7096   QMILOCSENSORSCONTROLCONFIGSENSORPROVIDERENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   7097 }qmiLocSensorsControlConfigSensorProviderEnumT_v02;
   7098 /**
   7099     @}
   7100   */
   7101 
   7102 /** @addtogroup loc_qmi_messages
   7103     @{
   7104   */
   7105 /** Request Message; Sets the sensor control configuration. */
   7106 typedef struct {
   7107 
   7108   /* Optional */
   7109   /*  Sensors Usage */
   7110   uint8_t sensorsUsage_valid;  /**< Must be set to true if sensorsUsage is being passed */
   7111   qmiLocSensorsControlConfigSensorUseEnumT_v02 sensorsUsage;
   7112   /**<   Controls how sensors are used to aid heading and positioning
   7113  performance.
   7114 
   7115  Valid values: \n
   7116       - eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_ENABLE (0) --  Sensors data should be requested whenever a position request is
   7117        received. If sensor data are injected, the positioning engine
   7118        attempts to improve the heading and positioning performance using sensors.
   7119        This is the default.
   7120 
   7121       - eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_DISABLE (1) --  Inertial sensors are not to be used to aid heading and position
   7122        improvement.
   7123  */
   7124 
   7125   /* Optional */
   7126   /*  Sensors Provider */
   7127   uint8_t sensorProvider_valid;  /**< Must be set to true if sensorProvider is being passed */
   7128   qmiLocSensorsControlConfigSensorProviderEnumT_v02 sensorProvider;
   7129   /**<   Controls which sensors data provider is to be used.
   7130 
   7131  Valid values: \n
   7132       - eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_SSC (0) --  Sensors data provider is Snapdragon Sensor Core (SSC);
   7133        this is the default
   7134 
   7135       - eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_NATIVE (1) --  Sensors data provider is on the host processor
   7136  */
   7137 }qmiLocSetSensorControlConfigReqMsgT_v02;  /* Message */
   7138 /**
   7139     @}
   7140   */
   7141 
   7142 /** @addtogroup loc_qmi_messages
   7143     @{
   7144   */
   7145 /** Indication Message; Sets the sensor control configuration. */
   7146 typedef struct {
   7147 
   7148   /* Mandatory */
   7149   /*  Set Sensor Control Config Status */
   7150   qmiLocStatusEnumT_v02 status;
   7151   /**<   Status of the Set Sensor Control Configuration request.
   7152 
   7153  Valid values: \n
   7154       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   7155       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   7156       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   7157       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   7158       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   7159       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   7160       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   7161       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   7162       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   7163       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   7164       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   7165  */
   7166 }qmiLocSetSensorControlConfigIndMsgT_v02;  /* Message */
   7167 /**
   7168     @}
   7169   */
   7170 
   7171 /** @addtogroup loc_qmi_messages
   7172     @{
   7173   */
   7174 /** Request Message; Retrieves the current sensor control configuration. */
   7175 typedef struct {
   7176   /* This element is a placeholder to prevent the declaration of
   7177      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   7178   char __placeholder;
   7179 }qmiLocGetSensorControlConfigReqMsgT_v02;
   7180 
   7181   /* Message */
   7182 /**
   7183     @}
   7184   */
   7185 
   7186 /** @addtogroup loc_qmi_messages
   7187     @{
   7188   */
   7189 /** Indication Message; Retrieves the current sensor control configuration. */
   7190 typedef struct {
   7191 
   7192   /* Mandatory */
   7193   /*  Get Sensor Control Config Status */
   7194   qmiLocStatusEnumT_v02 status;
   7195   /**<   Status of the Get Sensors Control Configuration request.
   7196 
   7197  Valid values: \n
   7198       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   7199       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   7200       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   7201       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   7202       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   7203       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   7204       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   7205       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   7206       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   7207       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   7208       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   7209  */
   7210 
   7211   /* Optional */
   7212   /*  Sensors Usage */
   7213   uint8_t sensorsUsage_valid;  /**< Must be set to true if sensorsUsage is being passed */
   7214   qmiLocSensorsControlConfigSensorUseEnumT_v02 sensorsUsage;
   7215   /**<   Controls how sensors are used to aid the heading and positioning
   7216  performance.
   7217 
   7218  Valid values: \n
   7219       - eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_ENABLE (0) --  Sensors data should be requested whenever a position request is
   7220        received. If sensor data are injected, the positioning engine
   7221        attempts to improve the heading and positioning performance using sensors.
   7222        This is the default.
   7223 
   7224       - eQMI_LOC_SENSOR_CONFIG_SENSOR_USE_DISABLE (1) --  Inertial sensors are not to be used to aid heading and position
   7225        improvement.
   7226  */
   7227 
   7228   /* Optional */
   7229   /*  Sensors Provider */
   7230   uint8_t sensorProvider_valid;  /**< Must be set to true if sensorProvider is being passed */
   7231   qmiLocSensorsControlConfigSensorProviderEnumT_v02 sensorProvider;
   7232   /**<   Controls which sensors data provider to be used.
   7233 
   7234  Valid values: \n
   7235       - eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_SSC (0) --  Sensors data provider is Snapdragon Sensor Core (SSC);
   7236        this is the default
   7237 
   7238       - eQMI_LOC_SENSOR_CONFIG_USE_PROVIDER_NATIVE (1) --  Sensors data provider is on the host processor
   7239  */
   7240 }qmiLocGetSensorControlConfigIndMsgT_v02;  /* Message */
   7241 /**
   7242     @}
   7243   */
   7244 
   7245 typedef uint32_t qmiLocSensorPropertiesMaskT_v02;
   7246 #define QMI_LOC_SENSOR_PROPERTIES_MASK_GYRO_BIAS_VARIANCE_RANDOM_WALK_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000001) /**<  Denotes the gyro bias variance random walk parameter  */
   7247 #define QMI_LOC_SENSOR_PROPERTIES_MASK_VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000002) /**<  Denotes the velocity random walk spectral density parameter  */
   7248 #define QMI_LOC_SENSOR_PROPERTIES_MASK_ACCELERATION_RANDOM_WALK_SPECTRAL_DENSITY_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000004) /**<  Denotes the acceleration random walk spectral density parameter  */
   7249 #define QMI_LOC_SENSOR_PROPERTIES_MASK_ANGLE_RANDOM_WALK_SPECTRAL_DENSITY_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000008) /**<  Denotes the angle random walk spectral density parameter  */
   7250 #define QMI_LOC_SENSOR_PROPERTIES_MASK_RATE_RANDOM_WALK_SPECTRAL_DENSITY_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000010) /**<  Denotes the rate random walk spectral density parameter  */
   7251 #define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_DATA_USE_CONTROL_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000020) /**<  Denotes the vehicle data use control parameter  */
   7252 #define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_VELOCITY_RWSD_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000040) /**<  Denotes the vehicle velocity random walk spectral density  */
   7253 #define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ACCEL_RWSD_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000080) /**<  Denotes the vehicle accelerometer random walk spectral density  */
   7254 #define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGLE_RWSD_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000100) /**<  Denotes the vehicle angle random walk spectral density   */
   7255 #define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGULAR_RATE_RWSD_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000200) /**<  Denotes the vehicle angular rate random walk spectral density   */
   7256 #define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_SCALE_RWSD_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000400) /**<  Denotes the vehicle odometry scale random walk spectral density   */
   7257 #define QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_VARIANCE_V02 ((qmiLocSensorPropertiesMaskT_v02)0x00000800) /**<  Denotes the vehicle odometry variance   */
   7258 typedef uint64_t qmiLocVehicleDataUseControlMaskT_v02;
   7259 #define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_X_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000001ull) /**<  Enable use of X-axis vehicle acceleration sensor data  */
   7260 #define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Y_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000002ull) /**<  Enable use of Y-axis vehicle acceleration sensor data  */
   7261 #define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Z_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000004ull) /**<  Enable use of Z-axis vehicle acceleration sensor data  */
   7262 #define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_X_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000010ull) /**<  Enable use of X-axis vehicle gyroscope data  */
   7263 #define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Y_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000020ull) /**<  Enable use of Y-axis vehicle gyroscope data  */
   7264 #define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Z_AXIS_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000040ull) /**<  Enable use of Z-axis vehicle gyroscope data  */
   7265 #define QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ODOMETRY_V02 ((qmiLocVehicleDataUseControlMaskT_v02)0x0000000000000100ull) /**<  Enable use of odometry data  */
   7266 /** @addtogroup loc_qmi_messages
   7267     @{
   7268   */
   7269 /** Request Message; Sets the properties specific to the type of sensor used.
   7270                     The control point must set sensor properties before they can be
   7271                     used to aid in heading and positioning performance improvement.
   7272    */
   7273 typedef struct {
   7274 
   7275   /* Optional */
   7276   /*  Gyro Bias Random Walk Variance */
   7277   uint8_t gyroBiasVarianceRandomWalk_valid;  /**< Must be set to true if gyroBiasVarianceRandomWalk is being passed */
   7278   float gyroBiasVarianceRandomWalk;
   7279   /**<   Specifies the gyro bias random walk variance parameter as a positive
   7280        floating-point value. This value has internal default value 1.0e-5 radian^2/second^4.
   7281        The gyro bias variance random walk parameter is derived from either the
   7282        sensors data sheet or a sensors conformance test. \n
   7283        - Units: Radians^2/seconds^4
   7284 
   7285   */
   7286 
   7287   /* Optional */
   7288   /*  Velocity Random Walk Spectral Density */
   7289   uint8_t velocityRandomWalkSpectralDensity_valid;  /**< Must be set to true if velocityRandomWalkSpectralDensity is being passed */
   7290   float velocityRandomWalkSpectralDensity;
   7291   /**<   Specifies the velocity random walk spectral density parameter as a positive
   7292        floating-point value. This value does not have any internal defaults.
   7293        The velocity random walk spectral density parameter is derived from either the
   7294        sensors data sheet or a sensors conformance test. \n
   7295        - Units: Meters/seconds^2/Hertz^0.5
   7296 
   7297   */
   7298 
   7299   /* Optional */
   7300   /*  Acceleration Random Walk Spectral Density */
   7301   uint8_t accelerationRandomWalkSpectralDensity_valid;  /**< Must be set to true if accelerationRandomWalkSpectralDensity is being passed */
   7302   float accelerationRandomWalkSpectralDensity;
   7303   /**<   Specifies the acceleration random walk spectral density parameter as a positive
   7304        floating-point value. This value does not have any internal defaults.
   7305        The acceleration random walk spectral density parameter is derived from either the
   7306        sensors data sheet or a sensors conformance test. \n
   7307        - Units: Meters/seconds^3/Hertz^0.5
   7308 
   7309   */
   7310 
   7311   /* Optional */
   7312   /*  Angle Random Walk Spectral Density */
   7313   uint8_t angleRandomWalkSpectralDensity_valid;  /**< Must be set to true if angleRandomWalkSpectralDensity is being passed */
   7314   float angleRandomWalkSpectralDensity;
   7315   /**<   Specifies the angle random walk spectral density parameter as a positive
   7316        floating-point value. This value does not have any internal defaults.
   7317        The angle random walk spectral density parameter is derived from either the
   7318        sensors data sheet or a sensors conformance test. \n
   7319        - Units: Radians/seconds/Hertz^0.5
   7320 
   7321   */
   7322 
   7323   /* Optional */
   7324   /*  Rate Random Walk Spectral Density */
   7325   uint8_t rateRandomWalkSpectralDensity_valid;  /**< Must be set to true if rateRandomWalkSpectralDensity is being passed */
   7326   float rateRandomWalkSpectralDensity;
   7327   /**<   Specifies the rate random walk spectral density parameter as a positive
   7328        floating-point value. This value does not have any internal defaults.
   7329        The rate random walk spectral density parameter is derived from either the
   7330        sensors data sheet or a sensors conformance test. \n
   7331        - Units: Radians/seconds^2/Hertz^0.5
   7332 
   7333   */
   7334 
   7335   /* Optional */
   7336   /*  Vehicle Data Use Control */
   7337   uint8_t vehicleDataUse_valid;  /**< Must be set to true if vehicleDataUse is being passed */
   7338   qmiLocVehicleDataUseControlMaskT_v02 vehicleDataUse;
   7339   /**<   Identifies which portions of the vehicle data to use in location
   7340  estimation (information provided by the message
   7341  QMI_LOC_INJECT_VEHICLE_SENSOR_DATA). Valid bitmasks: \n
   7342       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_X_AXIS (0x0000000000000001) --  Enable use of X-axis vehicle acceleration sensor data
   7343       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Y_AXIS (0x0000000000000002) --  Enable use of Y-axis vehicle acceleration sensor data
   7344       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Z_AXIS (0x0000000000000004) --  Enable use of Z-axis vehicle acceleration sensor data
   7345       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_X_AXIS (0x0000000000000010) --  Enable use of X-axis vehicle gyroscope data
   7346       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Y_AXIS (0x0000000000000020) --  Enable use of Y-axis vehicle gyroscope data
   7347       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Z_AXIS (0x0000000000000040) --  Enable use of Z-axis vehicle gyroscope data
   7348       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ODOMETRY (0x0000000000000100) --  Enable use of odometry data
   7349  \b Note: All other bits are reserved for future use and are to be set to 0. */
   7350 
   7351   /* Optional */
   7352   /*  Vehicle Velocity Random Walk Spectral Density */
   7353   uint8_t vehicleVelocityRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleVelocityRandomWalkSpectralDensity is being passed */
   7354   float vehicleVelocityRandomWalkSpectralDensity;
   7355   /**<   Vehicle velocity random walk spectral density. \n
   7356        - Type: 32-bit float    \n
   7357        - Units: Meters/seconds^2/Hz^0.5     \n
   7358        - Valid values: Positive values  \n
   7359        - Default: None
   7360   */
   7361 
   7362   /* Optional */
   7363   /*  Vehicle Acceleration Random Walk Spectral Density */
   7364   uint8_t vehicleAccelRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleAccelRandomWalkSpectralDensity is being passed */
   7365   float vehicleAccelRandomWalkSpectralDensity;
   7366   /**<   Vehicle accelerometer random walk spectral density. \n
   7367        - Type: 32-bit float    \n
   7368        - Units: Meters/seconds^3/Hz^0.5     \n
   7369        - Valid values: Positive values  \n
   7370        - Default: None
   7371   */
   7372 
   7373   /* Optional */
   7374   /*  Vehicle Angle Random Walk Spectral Density */
   7375   uint8_t vehicleAngleRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleAngleRandomWalkSpectralDensity is being passed */
   7376   float vehicleAngleRandomWalkSpectralDensity;
   7377   /**<   Vehicle angle random walk spectral density. \n
   7378        - Type: 32-bit float    \n
   7379        - Units: Radians/seconds/Hz^0.5     \n
   7380        - Valid values: Positive values  \n
   7381        - Default: None
   7382   */
   7383 
   7384   /* Optional */
   7385   /*  Vehicle Angular Rate Random Walk Spectral Density */
   7386   uint8_t vehicleAngularRateRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleAngularRateRandomWalkSpectralDensity is being passed */
   7387   float vehicleAngularRateRandomWalkSpectralDensity;
   7388   /**<   Vehicle angular rate random walk spectral density. \n
   7389        - Type: 32-bit float    \n
   7390        - Units: Radians/seconds^2/Hz^0.5 \n
   7391        - Valid values: Positive values  \n
   7392        - Default: None
   7393   */
   7394 
   7395   /* Optional */
   7396   /*  Vehicle Odometry Scale Factor Random Walk Spectral Density */
   7397   uint8_t vehicleOdometryScaleFactorRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleOdometryScaleFactorRandomWalkSpectralDensity is being passed */
   7398   float vehicleOdometryScaleFactorRandomWalkSpectralDensity;
   7399   /**<   Vehicle odometry scale factor random walk spectral density. \n
   7400        - Type: 32-bit float    \n
   7401        - Units: (1/seconds)/Hz^0.5      \n
   7402        - Range: Approximately 0.0001 to 0.001 \n
   7403        - Default: 0.001 (actual calibration recommended)
   7404   */
   7405 
   7406   /* Optional */
   7407   /*  Vehicle Odometry Variance */
   7408   uint8_t vehicleOdometryVariance_valid;  /**< Must be set to true if vehicleOdometryVariance is being passed */
   7409   float vehicleOdometryVariance;
   7410   /**<   Vehicle odometry variance of each odometry sample
   7411       (coarseness of measurement). \n
   7412        - Type: 32-bit float    \n
   7413        - Units: Meters^2    \n
   7414        - Valid values: Positive values  \n
   7415        - Default: None
   7416   */
   7417 }qmiLocSetSensorPropertiesReqMsgT_v02;  /* Message */
   7418 /**
   7419     @}
   7420   */
   7421 
   7422 /** @addtogroup loc_qmi_messages
   7423     @{
   7424   */
   7425 /** Indication Message; Sets the properties specific to the type of sensor used.
   7426                     The control point must set sensor properties before they can be
   7427                     used to aid in heading and positioning performance improvement.
   7428    */
   7429 typedef struct {
   7430 
   7431   /* Mandatory */
   7432   /*  Set Sensor Properties Status */
   7433   qmiLocStatusEnumT_v02 status;
   7434   /**<   Status of the Set Sensor Properties request.
   7435 
   7436  Valid values: \n
   7437       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   7438       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   7439       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   7440       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   7441       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   7442       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   7443       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   7444       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   7445       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   7446       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   7447       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   7448 
   7449   /* Optional */
   7450   /*  Failed Set Sensor Properties */
   7451   uint8_t failedSensorPropertiesMask_valid;  /**< Must be set to true if failedSensorPropertiesMask is being passed */
   7452   qmiLocSensorPropertiesMaskT_v02 failedSensorPropertiesMask;
   7453   /**<   This field is sent only if the status is not SUCCESS.
   7454  Identifies the parameters that were not set successfully.
   7455 
   7456  Valid bitmasks:
   7457       - QMI_LOC_SENSOR_PROPERTIES_MASK_GYRO_BIAS_VARIANCE_RANDOM_WALK (0x00000001) --  Denotes the gyro bias variance random walk parameter
   7458       - QMI_LOC_SENSOR_PROPERTIES_MASK_VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY (0x00000002) --  Denotes the velocity random walk spectral density parameter
   7459       - QMI_LOC_SENSOR_PROPERTIES_MASK_ACCELERATION_RANDOM_WALK_SPECTRAL_DENSITY (0x00000004) --  Denotes the acceleration random walk spectral density parameter
   7460       - QMI_LOC_SENSOR_PROPERTIES_MASK_ANGLE_RANDOM_WALK_SPECTRAL_DENSITY (0x00000008) --  Denotes the angle random walk spectral density parameter
   7461       - QMI_LOC_SENSOR_PROPERTIES_MASK_RATE_RANDOM_WALK_SPECTRAL_DENSITY (0x00000010) --  Denotes the rate random walk spectral density parameter
   7462       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_DATA_USE_CONTROL (0x00000020) --  Denotes the vehicle data use control parameter
   7463       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_VELOCITY_RWSD (0x00000040) --  Denotes the vehicle velocity random walk spectral density
   7464       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ACCEL_RWSD (0x00000080) --  Denotes the vehicle accelerometer random walk spectral density
   7465       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGLE_RWSD (0x00000100) --  Denotes the vehicle angle random walk spectral density
   7466       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGULAR_RATE_RWSD (0x00000200) --  Denotes the vehicle angular rate random walk spectral density
   7467       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_SCALE_RWSD (0x00000400) --  Denotes the vehicle odometry scale random walk spectral density
   7468       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_VARIANCE (0x00000800) --  Denotes the vehicle odometry variance
   7469  \vspace{-0.18in} \end{itemize1}
   7470  */
   7471 }qmiLocSetSensorPropertiesIndMsgT_v02;  /* Message */
   7472 /**
   7473     @}
   7474   */
   7475 
   7476 /** @addtogroup loc_qmi_messages
   7477     @{
   7478   */
   7479 /** Request Message; Retrieves the current sensor properties. */
   7480 typedef struct {
   7481 
   7482   /* Mandatory */
   7483   /*  Sensor Properties Config Parameters */
   7484   qmiLocSensorPropertiesMaskT_v02 getSensorPropertiesMask;
   7485   /**<   Mask denoting the sensor properties parameters to be retrieved.
   7486 
   7487  Valid bitmasks:
   7488       - QMI_LOC_SENSOR_PROPERTIES_MASK_GYRO_BIAS_VARIANCE_RANDOM_WALK (0x00000001) --  Denotes the gyro bias variance random walk parameter
   7489       - QMI_LOC_SENSOR_PROPERTIES_MASK_VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY (0x00000002) --  Denotes the velocity random walk spectral density parameter
   7490       - QMI_LOC_SENSOR_PROPERTIES_MASK_ACCELERATION_RANDOM_WALK_SPECTRAL_DENSITY (0x00000004) --  Denotes the acceleration random walk spectral density parameter
   7491       - QMI_LOC_SENSOR_PROPERTIES_MASK_ANGLE_RANDOM_WALK_SPECTRAL_DENSITY (0x00000008) --  Denotes the angle random walk spectral density parameter
   7492       - QMI_LOC_SENSOR_PROPERTIES_MASK_RATE_RANDOM_WALK_SPECTRAL_DENSITY (0x00000010) --  Denotes the rate random walk spectral density parameter
   7493       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_DATA_USE_CONTROL (0x00000020) --  Denotes the vehicle data use control parameter
   7494       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_VELOCITY_RWSD (0x00000040) --  Denotes the vehicle velocity random walk spectral density
   7495       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ACCEL_RWSD (0x00000080) --  Denotes the vehicle accelerometer random walk spectral density
   7496       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGLE_RWSD (0x00000100) --  Denotes the vehicle angle random walk spectral density
   7497       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ANGULAR_RATE_RWSD (0x00000200) --  Denotes the vehicle angular rate random walk spectral density
   7498       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_SCALE_RWSD (0x00000400) --  Denotes the vehicle odometry scale random walk spectral density
   7499       - QMI_LOC_SENSOR_PROPERTIES_MASK_VEHICLE_ODOMETRY_VARIANCE (0x00000800) --  Denotes the vehicle odometry variance
   7500  */
   7501 }qmiLocGetSensorPropertiesReqMsgT_v02;  /* Message */
   7502 /**
   7503     @}
   7504   */
   7505 
   7506 /** @addtogroup loc_qmi_messages
   7507     @{
   7508   */
   7509 /** Indication Message; Retrieves the current sensor properties. */
   7510 typedef struct {
   7511 
   7512   /* Mandatory */
   7513   /*  Get Sensor Properties Status */
   7514   qmiLocStatusEnumT_v02 status;
   7515   /**<   Status of the Get Sensors Properties request.
   7516 
   7517  Valid values: \n
   7518       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   7519       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   7520       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   7521       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   7522       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   7523       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   7524       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   7525       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   7526       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   7527       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   7528       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   7529  */
   7530 
   7531   /* Optional */
   7532   /*  Gyro Bias Random Walk Variance */
   7533   uint8_t gyroBiasVarianceRandomWalk_valid;  /**< Must be set to true if gyroBiasVarianceRandomWalk is being passed */
   7534   float gyroBiasVarianceRandomWalk;
   7535   /**<   Specifies the gyro bias random walk variance parameter as a positive
   7536        floating-point value. This value has internal default value 1.0e-5 radian^2/second^4.
   7537        The gyro bias variance random walk parameter is derived from either the
   7538        sensors data sheet or a sensors conformance test. \n
   7539        - Units: Radians^2/seconds^4
   7540 
   7541   */
   7542 
   7543   /* Optional */
   7544   /*  Velocity Random Walk Spectral Density */
   7545   uint8_t velocityRandomWalkSpectralDensity_valid;  /**< Must be set to true if velocityRandomWalkSpectralDensity is being passed */
   7546   float velocityRandomWalkSpectralDensity;
   7547   /**<   Specifies the velocity random walk spectral density parameter as a positive
   7548        floating-point value. This value does not have any internal defaults.
   7549        The velocity random walk spectral density parameter is derived from either the
   7550        sensors data sheet or a sensors conformance test. \n
   7551        - Units: Meters/seconds^2/Hertz^0.5
   7552 
   7553   */
   7554 
   7555   /* Optional */
   7556   /*  Acceleration Random Walk Spectral Density */
   7557   uint8_t accelerationRandomWalkSpectralDensity_valid;  /**< Must be set to true if accelerationRandomWalkSpectralDensity is being passed */
   7558   float accelerationRandomWalkSpectralDensity;
   7559   /**<   Specifies the acceleration random walk spectral density parameter as a positive
   7560        floating-point value. This value does not have any internal defaults.
   7561        The acceleration random walk spectral density parameter is derived from either the
   7562        sensors data sheet or a sensors conformance test. \n
   7563        - Units: Meters/seconds^3/Hertz^0.5
   7564 
   7565   */
   7566 
   7567   /* Optional */
   7568   /*  Angle Random Walk Spectral Density */
   7569   uint8_t angleRandomWalkSpectralDensity_valid;  /**< Must be set to true if angleRandomWalkSpectralDensity is being passed */
   7570   float angleRandomWalkSpectralDensity;
   7571   /**<   Specifies the angle random walk spectral density parameter as a positive
   7572        floating-point value. This value does not have any internal defaults.
   7573        The angle random walk spectral density parameter is derived from either the
   7574        sensors data sheet or a sensors conformance test. \n
   7575        - Units: Radians/seconds/Hertz^0.5
   7576 
   7577   */
   7578 
   7579   /* Optional */
   7580   /*  Rate Random Walk Spectral Density */
   7581   uint8_t rateRandomWalkSpectralDensity_valid;  /**< Must be set to true if rateRandomWalkSpectralDensity is being passed */
   7582   float rateRandomWalkSpectralDensity;
   7583   /**<   Specifies the rate random walk spectral density parameter as a positive
   7584        floating-point value. This value does not have any internal defaults.
   7585        The rate random walk spectral density parameter is derived from either the
   7586        sensors data sheet or a sensors conformance test. \n
   7587        - Units: Radians/seconds^2/Hertz^0.5
   7588 
   7589   */
   7590 
   7591   /* Optional */
   7592   /*  Vehicle Data Use Control */
   7593   uint8_t vehicleDataUse_valid;  /**< Must be set to true if vehicleDataUse is being passed */
   7594   qmiLocVehicleDataUseControlMaskT_v02 vehicleDataUse;
   7595   /**<   Identifies which portions of the vehicle data to use in location
   7596  estimation (information provided by message
   7597  QMI_LOC_INJECT_VEHICLE_SENSOR_DATA). Valid bitmasks: \n
   7598       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_X_AXIS (0x0000000000000001) --  Enable use of X-axis vehicle acceleration sensor data
   7599       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Y_AXIS (0x0000000000000002) --  Enable use of Y-axis vehicle acceleration sensor data
   7600       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ACCEL_Z_AXIS (0x0000000000000004) --  Enable use of Z-axis vehicle acceleration sensor data
   7601       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_X_AXIS (0x0000000000000010) --  Enable use of X-axis vehicle gyroscope data
   7602       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Y_AXIS (0x0000000000000020) --  Enable use of Y-axis vehicle gyroscope data
   7603       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_GYRO_Z_AXIS (0x0000000000000040) --  Enable use of Z-axis vehicle gyroscope data
   7604       - QMI_LOC_VEHICLE_DATA_ENABLE_USE_MASK_ODOMETRY (0x0000000000000100) --  Enable use of odometry data
   7605  @note1 All other bits are reserved for future use and are to be set to 0. */
   7606 
   7607   /* Optional */
   7608   /*  Vehicle Velocity Random Walk Spectral Density */
   7609   uint8_t vehicleVelocityRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleVelocityRandomWalkSpectralDensity is being passed */
   7610   float vehicleVelocityRandomWalkSpectralDensity;
   7611   /**<   Vehicle velocity random walk spectral density. \n
   7612        - Type: 32-bit float    \n
   7613        - Units: Meters/seconds^2/Hz^0.5     \n
   7614        - Valid values: Positive values  \n
   7615        - Default: None
   7616   */
   7617 
   7618   /* Optional */
   7619   /*  Vehicle Acceleration Random Walk Spectral Density */
   7620   uint8_t vehicleAccelRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleAccelRandomWalkSpectralDensity is being passed */
   7621   float vehicleAccelRandomWalkSpectralDensity;
   7622   /**<   Vehicle accelerometer random walk spectral density. \n
   7623        - Type: 32-bit float    \n
   7624        - Units: Meters/seconds^3/Hz^0.5     \n
   7625        - Valid values: Positive values  \n
   7626        - Default: None
   7627   */
   7628 
   7629   /* Optional */
   7630   /*  Vehicle Angle Random Walk Spectral Density */
   7631   uint8_t vehicleAngleRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleAngleRandomWalkSpectralDensity is being passed */
   7632   float vehicleAngleRandomWalkSpectralDensity;
   7633   /**<   Vehicle angle random walk spectral density. \n
   7634        - Type: 32-bit float    \n
   7635        - Units: Radians/seconds/Hz^0.5     \n
   7636        - Valid values: Positive values  \n
   7637        - Default: None
   7638   */
   7639 
   7640   /* Optional */
   7641   /*  Vehicle Angular Rate Random Walk Spectral Density */
   7642   uint8_t vehicleAngularRateRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleAngularRateRandomWalkSpectralDensity is being passed */
   7643   float vehicleAngularRateRandomWalkSpectralDensity;
   7644   /**<   Vehicle angular rate random walk spectral density. \n
   7645        - Type: 32-bit float    \n
   7646        - Units: Radians/seconds^2/Hz^0.5 \n
   7647        - Valid values: Positive values  \n
   7648        - Default: None
   7649   */
   7650 
   7651   /* Optional */
   7652   /*  Vehicle Odometry Scale Factor Random Walk Spectral Density */
   7653   uint8_t vehicleOdometryScaleFactorRandomWalkSpectralDensity_valid;  /**< Must be set to true if vehicleOdometryScaleFactorRandomWalkSpectralDensity is being passed */
   7654   float vehicleOdometryScaleFactorRandomWalkSpectralDensity;
   7655   /**<   Vehicle odometry scale factor random walk spectral density. \n
   7656        - Type: 32-bit float    \n
   7657        - Units: (1/seconds)/Hz^0.5      \n
   7658        - Range: Approximately 0.0001 to 0.001 \n
   7659        - Default: 0.001 (actual calibration recommended)
   7660   */
   7661 
   7662   /* Optional */
   7663   /*  Vehicle Odometry Variance */
   7664   uint8_t vehicleOdometryVariance_valid;  /**< Must be set to true if vehicleOdometryVariance is being passed */
   7665   float vehicleOdometryVariance;
   7666   /**<   Vehicle odometry variance of each odometry sample
   7667       (coarseness of measurement). \n
   7668        - Type: 32-bit float    \n
   7669        - Units: Meters^2    \n
   7670        - Valid values: Positive values  \n
   7671        - Default: None
   7672   */
   7673 }qmiLocGetSensorPropertiesIndMsgT_v02;  /* Message */
   7674 /**
   7675     @}
   7676   */
   7677 
   7678 /** @addtogroup loc_qmi_enums
   7679     @{
   7680   */
   7681 typedef enum {
   7682   QMILOCSENSORPERFORMANCECONTROLMODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   7683   eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_AUTO_V02 = 0, /**<  Sensors usage is to be determined by the GNSS location engine.
   7684        This mode can optimize power consumption and give a
   7685        power-balanced positioning and heading enhancement using
   7686        inertial sensors  */
   7687   eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_FORCED_V02 = 1, /**<  Sensors usage is to be forced ON.
   7688        This mode can be requested by the control point when
   7689        power consumption is not a restriction to the use of
   7690        inertial sensors.  */
   7691   QMILOCSENSORPERFORMANCECONTROLMODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   7692 }qmiLocSensorPerformanceControlModeEnumT_v02;
   7693 /**
   7694     @}
   7695   */
   7696 
   7697 typedef uint32_t qmiLocSensorAlgorithmMaskT_v02;
   7698 #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
   7699        GNSS. They can still be used for aiding in heading improvements.  */
   7700 /** @addtogroup loc_qmi_messages
   7701     @{
   7702   */
   7703 /** Request Message; Provides fine-grained control of sensor based positioning
   7704                     performance. */
   7705 typedef struct {
   7706 
   7707   /* Optional */
   7708   /*  Sensor Performance Control Mode */
   7709   uint8_t performanceControlMode_valid;  /**< Must be set to true if performanceControlMode is being passed */
   7710   qmiLocSensorPerformanceControlModeEnumT_v02 performanceControlMode;
   7711   /**<   Controls when sensors data is requested during GNSS fix processing.
   7712  This field is relevant only when sensors have been enabled using the
   7713  sensors control configuration.
   7714 
   7715  Valid values: \n
   7716       - eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_AUTO (0) --  Sensors usage is to be determined by the GNSS location engine.
   7717        This mode can optimize power consumption and give a
   7718        power-balanced positioning and heading enhancement using
   7719        inertial sensors
   7720       - eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_FORCED (1) --  Sensors usage is to be forced ON.
   7721        This mode can be requested by the control point when
   7722        power consumption is not a restriction to the use of
   7723        inertial sensors.
   7724  */
   7725 
   7726   /* Optional */
   7727   /*  Accelerometer Sampling Specification */
   7728   uint8_t accelSamplingSpec_valid;  /**< Must be set to true if accelSamplingSpec is being passed */
   7729   qmiLocSensorControlConfigSamplingSpecStructT_v02 accelSamplingSpec;
   7730   /**<   \vspace{0.06in} \n Sets the nominal rate at which the GNSS location
   7731        engine is to request acceleration data to be used by the low data rate
   7732        filter. The sensor data rate is specified in terms of the nominal number
   7733        of samples per batch and the number of batches per second.
   7734        However, the final control of the actual requested rate resides with
   7735        the Sensors Manager Module/GNSS location engine. \n
   7736        Default: 10 Hz sampling rate and 2 Hz batching rate.
   7737   */
   7738 
   7739   /* Optional */
   7740   /*  Gyroscope Sampling Specification */
   7741   uint8_t gyroSamplingSpec_valid;  /**< Must be set to true if gyroSamplingSpec is being passed */
   7742   qmiLocSensorControlConfigSamplingSpecStructT_v02 gyroSamplingSpec;
   7743   /**<   \vspace{0.06in} \n Sets the nominal rate at which the GNSS location
   7744        engine is to request gyro data to be used by the high data rate filter.
   7745        The sensor data rate is specified in terms of the nominal number of
   7746        samples per batch and the number of batches per second.
   7747        However, the final control of the actual requested rate resides with
   7748        the Sensors Manager Module/GNSS location engine. \n
   7749        Default: 10 Hz sampling rate and 2 Hz batching rate.
   7750   */
   7751 
   7752   /* Optional */
   7753   /*  Algorithm Configuration */
   7754   uint8_t algorithmConfig_valid;  /**< Must be set to true if algorithmConfig is being passed */
   7755   qmiLocSensorAlgorithmMaskT_v02 algorithmConfig;
   7756   /**<   Sets which sensor algorithms are to be used when processing sensor data.
   7757 
   7758        Valid bitmasks: \begin{itemize1}
   7759        \item    0x00000001 -- DISABLE_INS_ POSITIONING_FILTER
   7760        \vspace{-0.18in} \end{itemize1}
   7761   */
   7762 
   7763   /* Optional */
   7764   /*  High Data Rate Filter Accelerometer Sampling Specification */
   7765   uint8_t accelSamplingSpecHigh_valid;  /**< Must be set to true if accelSamplingSpecHigh is being passed */
   7766   qmiLocSensorControlConfigSamplingSpecStructT_v02 accelSamplingSpecHigh;
   7767   /**<   \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
   7768        acceleration data to be used by the high data rate filter. The sensor
   7769        data rate is specified in terms of the nominal number of samples per
   7770        batch and the number of batches per second.
   7771        However, the final control of the actual requested rate resides with
   7772        the Sensors Manager Module/GNSS location engine. \n
   7773        Default: 100 Hz sampling rate and 4 Hz batching rate.
   7774   */
   7775 
   7776   /* Optional */
   7777   /*  High Data Rate Filter Gyroscope Sampling Specification */
   7778   uint8_t gyroSamplingSpecHigh_valid;  /**< Must be set to true if gyroSamplingSpecHigh is being passed */
   7779   qmiLocSensorControlConfigSamplingSpecStructT_v02 gyroSamplingSpecHigh;
   7780   /**<   \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
   7781        gyro data to be used by the high data rate filter. The sensor data rate
   7782        is specified in terms of the nominal number of samples per batch and the
   7783        number of batches per second.
   7784        However, the final control of the actual requested rate resides with
   7785        the Sensors Manager Module/GNSS location engine. \n
   7786        Default: 100 Hz sampling rate and 4 Hz batching rate.
   7787   */
   7788 }qmiLocSetSensorPerformanceControlConfigReqMsgT_v02;  /* Message */
   7789 /**
   7790     @}
   7791   */
   7792 
   7793 typedef uint32_t qmiLocSensorPerformanceControlConfigFailureMaskT_v02;
   7794 #define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_PERFORMANCE_MODE_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000001) /**<  Failed to set the performance mode  */
   7795 #define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_ACCEL_SAMPLING_SPEC_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000002) /**<  Failed to set the accelerometer sampling specification  */
   7796 #define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_GYRO_SAMPLING_SPEC_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000004) /**<  Failed to set the gyroscope sampling specification  */
   7797 #define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_ALGORITHM_CONFIG_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000008) /**<  Failed to set the algorithm configuration  */
   7798 #define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_ACCEL_SAMPLING_SPEC_HIGH_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000010) /**<  Failed to set the accelerometer sampling specification  */
   7799 #define QMI_LOC_SENSOR_PERFORMANCE_CONTROL_CONFIG_PARAM_MASK_GYRO_SAMPLING_SPEC_HIGH_V02 ((qmiLocSensorPerformanceControlConfigFailureMaskT_v02)0x00000020) /**<  Failed to set the gyroscope sampling specification  */
   7800 /** @addtogroup loc_qmi_messages
   7801     @{
   7802   */
   7803 /** Indication Message; Provides fine-grained control of sensor based positioning
   7804                     performance. */
   7805 typedef struct {
   7806 
   7807   /* Mandatory */
   7808   /*  Set Sensor Perf Control Config Status */
   7809   qmiLocStatusEnumT_v02 status;
   7810   /**<   Status of the Set Sensor Performance Control Configuration request.
   7811 
   7812  Valid values: \n
   7813       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   7814       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   7815       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   7816       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   7817       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   7818       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   7819       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   7820       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   7821       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   7822       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   7823       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   7824  */
   7825 
   7826   /* Optional */
   7827   /*  Failed Configuration */
   7828   uint8_t failedConfiguration_valid;  /**< Must be set to true if failedConfiguration is being passed */
   7829   qmiLocSensorPerformanceControlConfigFailureMaskT_v02 failedConfiguration;
   7830   /**<   Identifies parameters that were not configured successfully. This field
   7831        is sent only if the status is not a success.
   7832 
   7833 
   7834        Valid bitmasks: \begin{itemize1}
   7835        \item    0x00000001 -- PERFORMANCE_ MODE
   7836        \item    0x00000002 -- ACCEL_SAMPLING_ SPEC
   7837        \item    0x00000004 -- GYRO_SAMPLING_ SPEC
   7838        \item    0x00000008 -- ALGORITHM_ CONFIG
   7839        \item    0x00000010 -- ACCEL_SAMPLING_ SPEC_HIGH
   7840        \item    0x00000020 -- GYRO_SAMPLING_ SPEC_HIGH
   7841        \vspace{-0.18in} \end{itemize1}
   7842   */
   7843 }qmiLocSetSensorPerformanceControlConfigIndMsgT_v02;  /* Message */
   7844 /**
   7845     @}
   7846   */
   7847 
   7848 /** @addtogroup loc_qmi_messages
   7849     @{
   7850   */
   7851 /** Request Message; Retrieves the current sensor performance control
   7852                     configuration. */
   7853 typedef struct {
   7854   /* This element is a placeholder to prevent the declaration of
   7855      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   7856   char __placeholder;
   7857 }qmiLocGetSensorPerformanceControlConfigReqMsgT_v02;
   7858 
   7859   /* Message */
   7860 /**
   7861     @}
   7862   */
   7863 
   7864 /** @addtogroup loc_qmi_messages
   7865     @{
   7866   */
   7867 /** Indication Message; Retrieves the current sensor performance control
   7868                     configuration. */
   7869 typedef struct {
   7870 
   7871   /* Mandatory */
   7872   /*  Get Sensor Perf Control Config Status */
   7873   qmiLocStatusEnumT_v02 status;
   7874   /**<   Status of the Get Sensor Performance Control Configuration request.
   7875 
   7876  Valid values: \n
   7877       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   7878       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   7879       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   7880       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   7881       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   7882       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   7883       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   7884       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   7885       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   7886       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   7887       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   7888  */
   7889 
   7890   /* Optional */
   7891   /*  Performance Control Mode */
   7892   uint8_t performanceControlMode_valid;  /**< Must be set to true if performanceControlMode is being passed */
   7893   qmiLocSensorPerformanceControlModeEnumT_v02 performanceControlMode;
   7894   /**<   Controls when sensor data is requested during GNSS fix processing.
   7895  This field is relevant only when sensors have been enabled using the
   7896  sensor control configuration.
   7897 
   7898  Valid values: \n
   7899       - eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_AUTO (0) --  Sensors usage is to be determined by the GNSS location engine.
   7900        This mode can optimize power consumption and give a
   7901        power-balanced positioning and heading enhancement using
   7902        inertial sensors
   7903       - eQMI_LOC_SENSOR_PERFORMANCE_CONTROL_MODE_FORCED (1) --  Sensors usage is to be forced ON.
   7904        This mode can be requested by the control point when
   7905        power consumption is not a restriction to the use of
   7906        inertial sensors.
   7907  */
   7908 
   7909   /* Optional */
   7910   /*  Accelerometer Sampling Specification */
   7911   uint8_t accelSamplingSpec_valid;  /**< Must be set to true if accelSamplingSpec is being passed */
   7912   qmiLocSensorControlConfigSamplingSpecStructT_v02 accelSamplingSpec;
   7913   /**<   \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
   7914        acceleration data to be used by the high data rate filter. The sensor
   7915        data rate is specified in terms of the nominal number of samples per
   7916        batch and the number of batches per second.
   7917        However, the final control of the actual requested rate resides with
   7918        the Sensors Manager Module/GNSS location engine. \n
   7919        Default: 10 Hz sampling rate and 2 Hz batching rate.
   7920   */
   7921 
   7922   /* Optional */
   7923   /*  Gyroscope Sampling Specification */
   7924   uint8_t gyroSamplingSpec_valid;  /**< Must be set to true if gyroSamplingSpec is being passed */
   7925   qmiLocSensorControlConfigSamplingSpecStructT_v02 gyroSamplingSpec;
   7926   /**<   \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
   7927        gyro data to be used by the high data rate filter. The sensor data
   7928        rate is specified in terms of the nominal number of samples per batch
   7929        and the number of batches per second.
   7930        However, the final control of the actual requested rate resides with
   7931        the Sensors Manager Module/GNSS location engine. \n
   7932        Default: 10 Hz sampling rate and 2 Hz batching rate.
   7933   */
   7934 
   7935   /* Optional */
   7936   /*  Algorithm Configuration */
   7937   uint8_t algorithmConfig_valid;  /**< Must be set to true if algorithmConfig is being passed */
   7938   qmiLocSensorAlgorithmMaskT_v02 algorithmConfig;
   7939   /**<   Informs which sensor algorithms are currently set.
   7940 
   7941        Valid bitmasks: \begin{itemize1}
   7942        \item    0x00000001 -- DISABLE_INS_ POSITIONING_FILTER
   7943        \vspace{-0.18in} \end{itemize1}
   7944   */
   7945 
   7946   /* Optional */
   7947   /*  High Data Rate Filter Accelerometer Sampling Specification */
   7948   uint8_t accelSamplingSpecHigh_valid;  /**< Must be set to true if accelSamplingSpecHigh is being passed */
   7949   qmiLocSensorControlConfigSamplingSpecStructT_v02 accelSamplingSpecHigh;
   7950   /**<   \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
   7951        acceleration data to be used by the high data rate filter. The sensor
   7952        data rate is specified in terms of the nominal number of samples per
   7953        batch and the number of batches per second.
   7954        However, the final control of the actual requested rate resides with
   7955        the Sensors Manager Module/GNSS location engine. \n
   7956        Default: 100 Hz sampling rate and 4 Hz batching rate.
   7957   */
   7958 
   7959   /* Optional */
   7960   /*  High Data Rate Filter Gyroscope Sampling Specification */
   7961   uint8_t gyroSamplingSpecHigh_valid;  /**< Must be set to true if gyroSamplingSpecHigh is being passed */
   7962   qmiLocSensorControlConfigSamplingSpecStructT_v02 gyroSamplingSpecHigh;
   7963   /**<   \vspace{0.06in} \n Sets the nominal rate at which the GNSS location engine is to request
   7964        gyro data to be used by the high data rate filter. The sensor data rate
   7965        is specified in terms of the nominal number of samples per batch and the
   7966        number of batches per second.
   7967        However, the final control of the actual requested rate resides with
   7968        the Sensors Manager Module/GNSS location engine. \n
   7969        Default: 100 Hz sampling rate and 4 Hz batching rate.
   7970   */
   7971 }qmiLocGetSensorPerformanceControlConfigIndMsgT_v02;  /* Message */
   7972 /**
   7973     @}
   7974   */
   7975 
   7976 /** @addtogroup loc_qmi_messages
   7977     @{
   7978   */
   7979 /** Request Message; Injects a SUPL certificate to be used in AGNSS sessions. */
   7980 typedef struct {
   7981 
   7982   /* Mandatory */
   7983   /*  SUPL Certificate ID */
   7984   uint8_t suplCertId;
   7985   /**<   Certificate ID of the SUPL certificate. \n
   7986        - Units: Bytes \n
   7987        - Range: 0 to 9  */
   7988 
   7989   /* Mandatory */
   7990   /*  SUPL Certificate Data */
   7991   uint32_t suplCertData_len;  /**< Must be set to # of elements in suplCertData */
   7992   uint8_t suplCertData[QMI_LOC_MAX_SUPL_CERT_LENGTH_V02];
   7993   /**<   SUPL certificate contents. \n
   7994        - Type: Array of bytes \n
   7995        - Maximum certificate size: 2000 bytes */
   7996 }qmiLocInjectSuplCertificateReqMsgT_v02;  /* Message */
   7997 /**
   7998     @}
   7999   */
   8000 
   8001 /** @addtogroup loc_qmi_messages
   8002     @{
   8003   */
   8004 /** Indication Message; Injects a SUPL certificate to be used in AGNSS sessions. */
   8005 typedef struct {
   8006 
   8007   /* Mandatory */
   8008   /*  SUPL Certificate Injection Status */
   8009   qmiLocStatusEnumT_v02 status;
   8010   /**<   Status of the Inject SUPL Certificate request.
   8011 
   8012  Valid values: \n
   8013       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   8014       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   8015       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   8016       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   8017       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   8018       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   8019       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   8020       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   8021       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   8022       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   8023       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   8024  */
   8025 }qmiLocInjectSuplCertificateIndMsgT_v02;  /* Message */
   8026 /**
   8027     @}
   8028   */
   8029 
   8030 /** @addtogroup loc_qmi_messages
   8031     @{
   8032   */
   8033 /** Request Message; Deletes a SUPL certificate. */
   8034 typedef struct {
   8035 
   8036   /* Optional */
   8037   /*  SUPL Certificate ID */
   8038   uint8_t suplCertId_valid;  /**< Must be set to true if suplCertId is being passed */
   8039   uint8_t suplCertId;
   8040   /**<   Certificate ID of the SUPL certificate to be deleted. \n
   8041        - Units: Bytes \n
   8042        - Range: 0 to 9 \n
   8043        If suplCertId is not specified,
   8044        all SUPL certificates are deleted. */
   8045 }qmiLocDeleteSuplCertificateReqMsgT_v02;  /* Message */
   8046 /**
   8047     @}
   8048   */
   8049 
   8050 /** @addtogroup loc_qmi_messages
   8051     @{
   8052   */
   8053 /** Indication Message; Deletes a SUPL certificate. */
   8054 typedef struct {
   8055 
   8056   /* Mandatory */
   8057   /*  SUPL Certificate Deletion Status */
   8058   qmiLocStatusEnumT_v02 status;
   8059   /**<   Status of the Delete SUPL Certificate request.
   8060 
   8061  Valid values: \n
   8062       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   8063       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   8064       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   8065       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   8066       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   8067       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   8068       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   8069       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   8070       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   8071       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   8072       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   8073  */
   8074 }qmiLocDeleteSuplCertificateIndMsgT_v02;  /* Message */
   8075 /**
   8076     @}
   8077   */
   8078 
   8079 typedef uint32_t qmiLocPositionEngineConfigParamMaskT_v02;
   8080 #define QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_INJECTED_POSITION_CONTROL_V02 ((qmiLocPositionEngineConfigParamMaskT_v02)0x00000001) /**<  Denotes whether the position engine uses the
   8081        injected position in a direct position calculation.  */
   8082 #define QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_FILTER_SV_USAGE_V02 ((qmiLocPositionEngineConfigParamMaskT_v02)0x00000002) /**<  Denotes whether the position engine filters the
   8083        SV usage in the fix.  */
   8084 #define QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_STORE_ASSIST_DATA_V02 ((qmiLocPositionEngineConfigParamMaskT_v02)0x00000004) /**<  Denotes whether the position engine stores assistance data
   8085        in persistent memory.  */
   8086 #define QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_ENABLE_FASTER_TTFF_V02 ((qmiLocPositionEngineConfigParamMaskT_v02)0x00000008) /**<  Denotes whether the position engine stays on to optimize
   8087        the TTFF for the subsequent position fix.  */
   8088 /** @addtogroup loc_qmi_messages
   8089     @{
   8090   */
   8091 /** Request Message; Used by the control point to configure position engine
   8092                     functionality. */
   8093 typedef struct {
   8094 
   8095   /* Optional */
   8096   /*  Injected Position Control */
   8097   uint8_t injectedPositionControl_valid;  /**< Must be set to true if injectedPositionControl is being passed */
   8098   uint8_t injectedPositionControl;
   8099   /**<   Controls how the injected position is used in the position engine.
   8100 
   8101        Valid values: \begin{itemize1}
   8102        \item    0x01 (TRUE) -- Use the injected position in a direct position
   8103                                calculation
   8104        \item    0x00 (FALSE) -- Do not use the injected position in a direct
   8105                                 position calculation
   8106        \end{itemize1}
   8107        The default value is TRUE.
   8108   */
   8109 
   8110   /* Optional */
   8111   /*  Filter SV Usage */
   8112   uint8_t filterSvUsage_valid;  /**< Must be set to true if filterSvUsage is being passed */
   8113   uint8_t filterSvUsage;
   8114   /**<   Controls whether SV usage is filtered in a position fix.
   8115 
   8116        Valid values: \begin{itemize1}
   8117        \item    0x01 (TRUE) -- Filter the usage of SVs in the fix
   8118        \item    0x00 (FALSE) -- Do not filter the usage of SVs in the fix
   8119        \end{itemize1}
   8120        The default value is FALSE.
   8121   */
   8122 
   8123   /* Optional */
   8124   /*  Store Assist Data */
   8125   uint8_t storeAssistData_valid;  /**< Must be set to true if storeAssistData is being passed */
   8126   uint8_t storeAssistData;
   8127   /**<   Controls whether assistance data is to be stored in
   8128        persistent memory.
   8129 
   8130        Valid values: \begin{itemize1}
   8131        \item    0x01 (TRUE) -- Store assistance data in persistent memory
   8132        \item    0x00 (FALSE) -- Do not store assistance data in persistent memory
   8133        \end{itemize1}
   8134        The default value is TRUE.
   8135   */
   8136 
   8137   /* Optional */
   8138   /*  Enable Faster TTFF */
   8139   uint8_t enableFasterTTFF_valid;  /**< Must be set to true if enableFasterTTFF is being passed */
   8140   uint8_t enableFasterTTFF;
   8141   /**<   Allows the receiver to stay on after a position session in order to
   8142        collect information that will help reduce the Time To First Fix (TTFF)
   8143        when the next position request is made. The receiver will stay
   8144        on only if  the engine determines that it needs to collect some
   8145        information. The receiver will stay on for the duration needed to
   8146        collect the information.
   8147        If enabled, the clients may see a delay in receiving the Engine Off
   8148        event after the position session ends.
   8149 
   8150        Valid values: \begin{itemize1}
   8151        \item    0x01 (TRUE) -- Allow the engine to stay on for reduced TTFF
   8152        \item    0x00 (FALSE) -- Do not allow the engine to stay on for reduced
   8153                                TTFF
   8154        \end{itemize1}
   8155        The default value is TRUE.*/
   8156 }qmiLocSetPositionEngineConfigParametersReqMsgT_v02;  /* Message */
   8157 /**
   8158     @}
   8159   */
   8160 
   8161 /** @addtogroup loc_qmi_messages
   8162     @{
   8163   */
   8164 /** Indication Message; Used by the control point to configure position engine
   8165                     functionality. */
   8166 typedef struct {
   8167 
   8168   /* Mandatory */
   8169   /*  Set Position Engine Configuration Status */
   8170   qmiLocStatusEnumT_v02 status;
   8171   /**<   Status of the Set Configuration Parameters request.
   8172 
   8173  Valid values: \n
   8174       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   8175       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   8176       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   8177       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   8178       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   8179       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   8180       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   8181       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   8182       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   8183       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   8184       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   8185  */
   8186 
   8187   /* Optional */
   8188   /*  Failed Parameters */
   8189   uint8_t failedPositionEngineConfigParamMask_valid;  /**< Must be set to true if failedPositionEngineConfigParamMask is being passed */
   8190   qmiLocPositionEngineConfigParamMaskT_v02 failedPositionEngineConfigParamMask;
   8191   /**<   Identifies the parameters that were not set successfully.
   8192  This field is sent only if the status is other than SUCCESS.
   8193 
   8194  Valid bitmasks:\n
   8195       - QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_INJECTED_POSITION_CONTROL (0x00000001) --  Denotes whether the position engine uses the
   8196        injected position in a direct position calculation.
   8197       - QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_FILTER_SV_USAGE (0x00000002) --  Denotes whether the position engine filters the
   8198        SV usage in the fix.
   8199       - QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_STORE_ASSIST_DATA (0x00000004) --  Denotes whether the position engine stores assistance data
   8200        in persistent memory.
   8201       - QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_ENABLE_FASTER_TTFF (0x00000008) --  Denotes whether the position engine stays on to optimize
   8202        the TTFF for the subsequent position fix.
   8203  */
   8204 }qmiLocSetPositionEngineConfigParametersIndMsgT_v02;  /* Message */
   8205 /**
   8206     @}
   8207   */
   8208 
   8209 /** @addtogroup loc_qmi_messages
   8210     @{
   8211   */
   8212 /** Request Message; Used by the control point to get the position engine
   8213                     configuration parameters. */
   8214 typedef struct {
   8215 
   8216   /* Mandatory */
   8217   /*  Config Parameters */
   8218   qmiLocPositionEngineConfigParamMaskT_v02 getPositionEngineConfigParamMask;
   8219   /**<   Mask denoting the configuration parameters to be retrieved.
   8220 
   8221  Valid bitmasks:
   8222       - QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_INJECTED_POSITION_CONTROL (0x00000001) --  Denotes whether the position engine uses the
   8223        injected position in a direct position calculation.
   8224       - QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_FILTER_SV_USAGE (0x00000002) --  Denotes whether the position engine filters the
   8225        SV usage in the fix.
   8226       - QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_STORE_ASSIST_DATA (0x00000004) --  Denotes whether the position engine stores assistance data
   8227        in persistent memory.
   8228       - QMI_LOC_POSITION_ENGINE_CONFIG_PARAM_MASK_ENABLE_FASTER_TTFF (0x00000008) --  Denotes whether the position engine stays on to optimize
   8229        the TTFF for the subsequent position fix.
   8230  */
   8231 }qmiLocGetPositionEngineConfigParametersReqMsgT_v02;  /* Message */
   8232 /**
   8233     @}
   8234   */
   8235 
   8236 /** @addtogroup loc_qmi_messages
   8237     @{
   8238   */
   8239 /** Indication Message; Used by the control point to get the position engine
   8240                     configuration parameters. */
   8241 typedef struct {
   8242 
   8243   /* Mandatory */
   8244   /*  Get Position Engine Configuration Status */
   8245   qmiLocStatusEnumT_v02 status;
   8246   /**<   Status of the Get Configuration Parameters request.
   8247 
   8248  Valid values: \n
   8249       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   8250       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   8251       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   8252       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   8253       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   8254       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   8255       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   8256       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   8257       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   8258       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   8259       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   8260  */
   8261 
   8262   /* Optional */
   8263   /*  Injected Position Control */
   8264   uint8_t injectedPositionControl_valid;  /**< Must be set to true if injectedPositionControl is being passed */
   8265   uint8_t injectedPositionControl;
   8266   /**<   Specifies whether the injected position is used for a direct calculation
   8267        in the position engine.
   8268 
   8269        Valid values: \begin{itemize1}
   8270        \item    0x01 (TRUE) -- The injected position is used in a direct
   8271                                position calculation
   8272        \item    0x00 (FALSE) -- The injected position is not used in a direct
   8273                                 position calculation
   8274        \end{itemize1}
   8275        The default value is TRUE.
   8276   */
   8277 
   8278   /* Optional */
   8279   /*  Filter SV Usage */
   8280   uint8_t filterSvUsage_valid;  /**< Must be set to true if filterSvUsage is being passed */
   8281   uint8_t filterSvUsage;
   8282   /**<   Specifies whether SV usage is filtered in a position fix.
   8283 
   8284        Valid values: \begin{itemize1}
   8285        \item    0x01 (TRUE) -- SV usage is filtered in the fix
   8286        \item    0x00 (FALSE) -- SV usage is not filtered in the fix
   8287        \end{itemize1}
   8288        The default value is FALSE.
   8289   */
   8290 
   8291   /* Optional */
   8292   /*  Store Assist Data */
   8293   uint8_t storeAssistData_valid;  /**< Must be set to true if storeAssistData is being passed */
   8294   uint8_t storeAssistData;
   8295   /**<   Specifies whether assistance data is stored in persistent memory.
   8296 
   8297        Valid values: \begin{itemize1}
   8298        \item    0x01 (TRUE) -- Assistance data is stored in persistent memory
   8299        \item    0x00 (FALSE) -- Assistance data is not stored in persistent
   8300                                 memory
   8301        \end{itemize1}
   8302        The default value is TRUE.
   8303   */
   8304 
   8305   /* Optional */
   8306   /*  Enable Faster TTFF */
   8307   uint8_t enableFasterTTFF_valid;  /**< Must be set to true if enableFasterTTFF is being passed */
   8308   uint8_t enableFasterTTFF;
   8309   /**<   Allows the receiver to stay on after a position session in order to
   8310        collect information that will help reduce the TTFF
   8311        when the next position request is made. The receiver will stay
   8312        on only if  the engine determines that it needs to collect some
   8313        information. The receiver will stay on for the duration needed to
   8314        collect the information.
   8315        If enabled, the clients may see a delay in receiving the Engine Off
   8316        event after the position session ends.
   8317 
   8318        Valid values: \begin{itemize1}
   8319        \item    0x01 (TRUE) -- Allow the engine to stay on for reduced TTFF
   8320        \item    0x00 (FALSE) -- Do not allow the engine to stay on for reduced
   8321                                TTFF
   8322        \end{itemize1}
   8323         The default value is TRUE.*/
   8324 }qmiLocGetPositionEngineConfigParametersIndMsgT_v02;  /* Message */
   8325 /**
   8326     @}
   8327   */
   8328 
   8329 typedef uint8_t qmiLocGeofenceBreachMaskT_v02;
   8330 #define QMI_LOC_GEOFENCE_BREACH_ENTERING_MASK_V02 ((qmiLocGeofenceBreachMaskT_v02)0x01) /**<  If this mask is set, a breach event is reported
   8331        when the Geofence is entered  */
   8332 #define QMI_LOC_GEOFENCE_BREACH_LEAVING_MASK_V02 ((qmiLocGeofenceBreachMaskT_v02)0x02) /**<  If this mask is set, a breach event is reported
   8333        when the Geofence is exited  */
   8334 /** @addtogroup loc_qmi_enums
   8335     @{
   8336   */
   8337 typedef enum {
   8338   QMILOCGEOFENCERESPONSIVENESSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   8339   eQMI_LOC_GEOFENCE_RESPONSIVENESS_LOW_V02 = 0x01, /**<  The Geofence is monitored for a breach at a
   8340        low rate of 15 minutes. The gap between the actual breach and
   8341        the time it is reported is higher. This
   8342        setting results in lower power usage.  */
   8343   eQMI_LOC_GEOFENCE_RESPONSIVENESS_MED_V02 = 0x02, /**<  The Geofence is monitored for a breach at a
   8344        medium rate of 2 minutes. This is the default setting.  */
   8345   eQMI_LOC_GEOFENCE_RESPONSIVENESS_HIGH_V02 = 0x03, /**<  The Geofence is monitored for a breach at a
   8346        high rate of 10 seconds. The gap between the actual breach and
   8347        the time it is reported is low. This results
   8348        in higher power usage.  */
   8349   eQMI_LOC_GEOFENCE_RESPONSIVENESS_ULTRA_HIGH_V02 = 0x04, /**<  The Geofence is monitored for a breach at a
   8350        very high rate of 1 second. The gap between the actual breach and
   8351        the time it is reported is very low. This results
   8352        in very high power usage. This setting must be avoided whenever
   8353        possible because of the drastic power implications.  */
   8354   QMILOCGEOFENCERESPONSIVENESSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   8355 }qmiLocGeofenceResponsivenessEnumT_v02;
   8356 /**
   8357     @}
   8358   */
   8359 
   8360 /** @addtogroup loc_qmi_aggregates
   8361     @{
   8362   */
   8363 typedef struct {
   8364 
   8365   double latitude;
   8366   /**<   Latitude of the center of the Geofence.*/
   8367 
   8368   double longitude;
   8369   /**<   Longitude of the center of the Geofence.*/
   8370 
   8371   uint32_t radius;
   8372   /**<   Radius of the circular Geofence in meters. */
   8373 }qmiLocCircularGeofenceArgsStructT_v02;  /* Type */
   8374 /**
   8375     @}
   8376   */
   8377 
   8378 /** @addtogroup loc_qmi_enums
   8379     @{
   8380   */
   8381 typedef enum {
   8382   QMILOCGEOFENCEPOSITIONENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   8383   eQMI_LOC_GEOFENCE_POSITION_INSIDE_V02 = 0x01, /**<  Position is inside a Geofence  */
   8384   eQMI_LOC_GEOFENCE_POSITION_OUTSIDE_V02 = 0x02, /**<  Position is outside a Geofence  */
   8385   QMILOCGEOFENCEPOSITIONENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   8386 }qmiLocGeofencePositionEnumT_v02;
   8387 /**
   8388     @}
   8389   */
   8390 
   8391 /** @addtogroup loc_qmi_messages
   8392     @{
   8393   */
   8394 /** Request Message; Used by the control point to add a circular Geofence. */
   8395 typedef struct {
   8396 
   8397   /* Mandatory */
   8398   /*  Transaction ID */
   8399   uint32_t transactionId;
   8400   /**<   Identifies the transaction. The transaction ID
   8401        is returned in the Add Circular Geofence
   8402        indication. */
   8403 
   8404   /* Mandatory */
   8405   /*  Circular Geofence Arguments */
   8406   qmiLocCircularGeofenceArgsStructT_v02 circularGeofenceArgs;
   8407 
   8408   /* Mandatory */
   8409   /*  Breach Event Mask */
   8410   qmiLocGeofenceBreachMaskT_v02 breachMask;
   8411   /**<   Specifies the breach events in which the client is interested.
   8412 
   8413        Valid values: \begin{itemize1}
   8414        \item    0x01 -- GEOFENCE_BREACH_ ENTERING_MASK
   8415        \item    0x02 -- GEOFENCE_BREACH_ LEAVING_MASK
   8416        \vspace{-0.18in} \end{itemize1} */
   8417 
   8418   /* Mandatory */
   8419   /*  Include Position in Breach Event */
   8420   uint8_t includePosition;
   8421   /**<   Specifies whether the Geofence engine is to include the position
   8422        in a breach event.
   8423 
   8424        Valid values: \begin{itemize1}
   8425        \item    0x01 (TRUE) -- Position will be reported with the breach event
   8426        \item    0x00 (FALSE) -- Position will not be reported with the breach
   8427                                 event
   8428        \vspace{-0.18in} \end{itemize1} */
   8429 
   8430   /* Optional */
   8431   /*  Responsiveness */
   8432   uint8_t responsiveness_valid;  /**< Must be set to true if responsiveness is being passed */
   8433   qmiLocGeofenceResponsivenessEnumT_v02 responsiveness;
   8434   /**<   Specifies the rate of detection for a Geofence breach.
   8435  This may impact the time lag between the actual breach event and
   8436  when it is reported. This parameter has power implications
   8437  and is to be fine-tuned to optimize power savings.
   8438 
   8439  Valid values: \n
   8440       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_LOW (0x01) --  The Geofence is monitored for a breach at a
   8441        low rate of 15 minutes. The gap between the actual breach and
   8442        the time it is reported is higher. This
   8443        setting results in lower power usage.
   8444       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_MED (0x02) --  The Geofence is monitored for a breach at a
   8445        medium rate of 2 minutes. This is the default setting.
   8446       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_HIGH (0x03) --  The Geofence is monitored for a breach at a
   8447        high rate of 10 seconds. The gap between the actual breach and
   8448        the time it is reported is low. This results
   8449        in higher power usage.
   8450       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_ULTRA_HIGH (0x04) --  The Geofence is monitored for a breach at a
   8451        very high rate of 1 second. The gap between the actual breach and
   8452        the time it is reported is very low. This results
   8453        in very high power usage. This setting must be avoided whenever
   8454        possible because of the drastic power implications.
   8455  */
   8456 
   8457   /* Optional */
   8458   /*  Confidence */
   8459   uint8_t confidence_valid;  /**< Must be set to true if confidence is being passed */
   8460   qmiLocGeofenceConfidenceEnumT_v02 confidence;
   8461   /**<   Given a breach event, the confidence determines the probability
   8462  that the breach happened at the Geofence boundary.
   8463  This parameter has power implications and
   8464  is to be fine-tuned to optimize power savings.
   8465 
   8466  Valid values: \n
   8467       - eQMI_LOC_GEOFENCE_CONFIDENCE_LOW (0x01) --  Geofence engine indicates a breach with
   8468        low confidence; this setting results in lower
   8469        power usage, and it can impact the yield because
   8470        incorrect breach events may be sent
   8471       - eQMI_LOC_GEOFENCE_CONFIDENCE_MED (0x02) --  (Default) Geofence engine indicates a breach with
   8472        medium confidence
   8473       - eQMI_LOC_GEOFENCE_CONFIDENCE_HIGH (0x03) --  Geofence engine indicates a breach with
   8474        high confidence; this setting results in higher
   8475        power usage
   8476  */
   8477 }qmiLocAddCircularGeofenceReqMsgT_v02;  /* Message */
   8478 /**
   8479     @}
   8480   */
   8481 
   8482 /** @addtogroup loc_qmi_messages
   8483     @{
   8484   */
   8485 /** Indication Message; Used by the control point to add a circular Geofence. */
   8486 typedef struct {
   8487 
   8488   /* Mandatory */
   8489   /*  Add Circular Geofence Status */
   8490   qmiLocStatusEnumT_v02 status;
   8491   /**<   Status of the Add Circular Geofence request.
   8492 
   8493  Valid values: \n
   8494       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   8495       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   8496       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   8497       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   8498       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   8499       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   8500       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   8501       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   8502       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   8503       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   8504       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   8505  */
   8506 
   8507   /* Optional */
   8508   /*  Transaction ID */
   8509   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
   8510   uint32_t transactionId;
   8511   /**<   Transaction ID that was specified in the Add Circular
   8512        Geofence request. This parameter will always be present
   8513        if the status field is set to SUCCESS. */
   8514 
   8515   /* Optional */
   8516   /*  Geofence ID */
   8517   uint8_t geofenceId_valid;  /**< Must be set to true if geofenceId is being passed */
   8518   uint32_t geofenceId;
   8519   /**<   Geofence identifier allocated by the engine.
   8520        The client must include this identifier in all transactions
   8521        pertaining to this Geofence. */
   8522 }qmiLocAddCircularGeofenceIndMsgT_v02;  /* Message */
   8523 /**
   8524     @}
   8525   */
   8526 
   8527 /** @addtogroup loc_qmi_messages
   8528     @{
   8529   */
   8530 /** Request Message; Used by the control point to delete a Geofence. */
   8531 typedef struct {
   8532 
   8533   /* Mandatory */
   8534   /*  Geofence ID */
   8535   uint32_t geofenceId;
   8536   /**<   Identifier for the Geofence that is to be deleted. */
   8537 
   8538   /* Mandatory */
   8539   /*  Transaction ID */
   8540   uint32_t transactionId;
   8541   /**<   Identifies the transaction. The transaction ID
   8542        is returned in the Delete Geofence
   8543        indication. */
   8544 }qmiLocDeleteGeofenceReqMsgT_v02;  /* Message */
   8545 /**
   8546     @}
   8547   */
   8548 
   8549 /** @addtogroup loc_qmi_messages
   8550     @{
   8551   */
   8552 /** Indication Message; Used by the control point to delete a Geofence. */
   8553 typedef struct {
   8554 
   8555   /* Mandatory */
   8556   /*  Delete Geofence Status */
   8557   qmiLocStatusEnumT_v02 status;
   8558   /**<   Status of the Delete Geofence request.
   8559 
   8560  Valid values: \n
   8561       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   8562       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   8563       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   8564       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   8565       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   8566       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   8567       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   8568       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   8569       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   8570       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   8571       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   8572  */
   8573 
   8574   /* Optional */
   8575   /*  Geofence ID */
   8576   uint8_t geofenceId_valid;  /**< Must be set to true if geofenceId is being passed */
   8577   uint32_t geofenceId;
   8578   /**<   Identifier for the Geofence that was deleted. */
   8579 
   8580   /* Optional */
   8581   /*  Transaction ID */
   8582   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
   8583   uint32_t transactionId;
   8584   /**<   Transaction ID that was specified in the Delete
   8585        Geofence request. This parameter will always be present
   8586        if the status field is set to SUCCESS. */
   8587 }qmiLocDeleteGeofenceIndMsgT_v02;  /* Message */
   8588 /**
   8589     @}
   8590   */
   8591 
   8592 /** @addtogroup loc_qmi_enums
   8593     @{
   8594   */
   8595 typedef enum {
   8596   QMILOCGEOFENCEORIGINENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   8597   eQMI_LOC_GEOFENCE_ORIGIN_NETWORK_V02 = 1, /**<  Geofence was initiated by a network-initiated client  */
   8598   eQMI_LOC_GEOFENCE_ORIGIN_DEVICE_V02 = 2, /**<  Geofence was initiated by the device  */
   8599   QMILOCGEOFENCEORIGINENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   8600 }qmiLocGeofenceOriginEnumT_v02;
   8601 /**
   8602     @}
   8603   */
   8604 
   8605 /** @addtogroup loc_qmi_enums
   8606     @{
   8607   */
   8608 typedef enum {
   8609   QMILOCGEOFENCESTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   8610   eQMI_LOC_GEOFENCE_STATE_ACTIVE_V02 = 1, /**<  Geofence is being actively monitored  */
   8611   eQMI_LOC_GEOFENCE_STATE_SUSPEND_V02 = 2, /**<  Geofence monitoring is suspended  */
   8612   QMILOCGEOFENCESTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   8613 }qmiLocGeofenceStateEnumT_v02;
   8614 /**
   8615     @}
   8616   */
   8617 
   8618 /** @addtogroup loc_qmi_messages
   8619     @{
   8620   */
   8621 /** Request Message; Used by the control point to query a Geofence. */
   8622 typedef struct {
   8623 
   8624   /* Mandatory */
   8625   /*  Geofence ID */
   8626   uint32_t geofenceId;
   8627   /**<   Identifier for the Geofence that is to be queried. */
   8628 
   8629   /* Mandatory */
   8630   /*  Transaction ID */
   8631   uint32_t transactionId;
   8632   /**<   Identifies the transaction. The transaction ID
   8633        is returned with the Query Geofence
   8634        indication. */
   8635 }qmiLocQueryGeofenceReqMsgT_v02;  /* Message */
   8636 /**
   8637     @}
   8638   */
   8639 
   8640 /** @addtogroup loc_qmi_messages
   8641     @{
   8642   */
   8643 /** Indication Message; Used by the control point to query a Geofence. */
   8644 typedef struct {
   8645 
   8646   /* Mandatory */
   8647   /*  Query Geofence Status */
   8648   qmiLocStatusEnumT_v02 status;
   8649   /**<   Status of the Query Geofence request.
   8650 
   8651  Valid values: \n
   8652       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   8653       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   8654       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   8655       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   8656       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   8657       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   8658       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   8659       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   8660       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   8661       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   8662       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   8663  */
   8664 
   8665   /* Optional */
   8666   /*  Geofence ID */
   8667   uint8_t geofenceId_valid;  /**< Must be set to true if geofenceId is being passed */
   8668   uint32_t geofenceId;
   8669   /**<   Identifier for the Geofence that was queried. */
   8670 
   8671   /* Optional */
   8672   /*  Transaction ID */
   8673   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
   8674   uint32_t transactionId;
   8675   /**<   Transaction ID that was specified in the Query
   8676        Geofence request. This parameter will always be present
   8677        if the status field is set to SUCCESS. */
   8678 
   8679   /* Optional */
   8680   /*  Geofence Origin */
   8681   uint8_t geofenceOrigin_valid;  /**< Must be set to true if geofenceOrigin is being passed */
   8682   qmiLocGeofenceOriginEnumT_v02 geofenceOrigin;
   8683   /**<   Originator of the Geofence.
   8684 
   8685  Valid values: \n
   8686       - eQMI_LOC_GEOFENCE_ORIGIN_NETWORK (1) --  Geofence was initiated by a network-initiated client
   8687       - eQMI_LOC_GEOFENCE_ORIGIN_DEVICE (2) --  Geofence was initiated by the device
   8688  */
   8689 
   8690   /* Optional */
   8691   /*  Position with Respect to Geofence */
   8692   uint8_t posWrtGeofence_valid;  /**< Must be set to true if posWrtGeofence is being passed */
   8693   qmiLocGeofencePositionEnumT_v02 posWrtGeofence;
   8694   /**<   Indicates if the client is currently inside or outside
   8695  the Geofence.
   8696 
   8697  Valid values: \n
   8698       - eQMI_LOC_GEOFENCE_POSITION_INSIDE (0x01) --  Position is inside a Geofence
   8699       - eQMI_LOC_GEOFENCE_POSITION_OUTSIDE (0x02) --  Position is outside a Geofence
   8700  */
   8701 
   8702   /* Optional */
   8703   /*  Circular Geofence Parameters */
   8704   uint8_t circularGeofenceArgs_valid;  /**< Must be set to true if circularGeofenceArgs is being passed */
   8705   qmiLocCircularGeofenceArgsStructT_v02 circularGeofenceArgs;
   8706 
   8707   /* Optional */
   8708   /*  Geofence State */
   8709   uint8_t geofenceState_valid;  /**< Must be set to true if geofenceState is being passed */
   8710   qmiLocGeofenceStateEnumT_v02 geofenceState;
   8711   /**<   Specifies whether the Geofence is to be actively monitored.
   8712 
   8713  Valid values: \n
   8714       - eQMI_LOC_GEOFENCE_STATE_ACTIVE (1) --  Geofence is being actively monitored
   8715       - eQMI_LOC_GEOFENCE_STATE_SUSPEND (2) --  Geofence monitoring is suspended
   8716  */
   8717 }qmiLocQueryGeofenceIndMsgT_v02;  /* Message */
   8718 /**
   8719     @}
   8720   */
   8721 
   8722 typedef uint32_t qmiLocMotionDetectionSourceMaskT_v02;
   8723 #define QMI_LOC_MOTION_DETECTION_SOURCE_SENSORS_V02 ((qmiLocMotionDetectionSourceMaskT_v02)0x00000001) /**<  Sensors are used for motion detection  */
   8724 #define QMI_LOC_MOTION_DETECTION_SOURCE_WIFI_V02 ((qmiLocMotionDetectionSourceMaskT_v02)0x00000002) /**<  Wi-Fi is used for motion detection  */
   8725 #define QMI_LOC_MOTION_DETECTION_SOURCE_WWAN_V02 ((qmiLocMotionDetectionSourceMaskT_v02)0x00000004) /**<  Wireless WAN is used for motion detection  */
   8726 /** @addtogroup loc_qmi_enums
   8727     @{
   8728   */
   8729 typedef enum {
   8730   QMILOCGEOFENCEMOTIONSTATESENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   8731   eQMI_LOC_GEOFENCE_MOTION_STATE_STATIONARY_V02 = 0, /**<  Motion state Stationary -- Handset is completely stationary  */
   8732   eQMI_LOC_GEOFENCE_MOTION_STATE_FIDDLE_V02 = 1, /**<  Motion state Fiddle -- Handset is not in motion but is being "fiddled" with  */
   8733   eQMI_LOC_GEOFENCE_MOTION_STATE_WALK_V02 = 2, /**<  Motion state Walk -- User is walking with the handset  */
   8734   eQMI_LOC_GEOFENCE_MOTION_STATE_RUN_V02 = 3, /**<  Motion state Run -- User is running with the handset  */
   8735   eQMI_LOC_GEOFENCE_MOTION_STATE_DRIVE_V02 = 4, /**<  Motion state Drive -- User is driving with the handset    */
   8736   QMILOCGEOFENCEMOTIONSTATESENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   8737 }qmiLocGeofenceMotionStatesEnumT_v02;
   8738 /**
   8739     @}
   8740   */
   8741 
   8742 /** @addtogroup loc_qmi_aggregates
   8743     @{
   8744   */
   8745 typedef struct {
   8746 
   8747   qmiLocGeofenceMotionStatesEnumT_v02 motionState;
   8748   /**<   Motion state for which information is being configured. */
   8749 
   8750   float motionStateSpeed;
   8751   /**<    Motion state speed in milliseconds.
   8752 
   8753            These are positive floating values.
   8754            The state speed must be configured carefully. Very low speed
   8755            configuration for a state may result in missing Geofence
   8756            breaches in some scenarios.
   8757 
   8758            Typical motion state speeds: \n
   8759            - Stationary speed -- 0 meters/sec
   8760            - Fiddle speed -- 0 meters/sec \n
   8761            - Walk speed -- 3 meters/sec    \n
   8762            - Run speed -- 8 meters/sec \n
   8763            - Drive speed -- 56 meters/sec
   8764   */
   8765 }qmiLocGeofenceMotionStateConfigStructT_v02;  /* Type */
   8766 /**
   8767     @}
   8768   */
   8769 
   8770 /** @addtogroup loc_qmi_messages
   8771     @{
   8772   */
   8773 /** Request Message; Used by the control point to set the Geofence engine configuration. */
   8774 typedef struct {
   8775 
   8776   /* Mandatory */
   8777   /*  Transaction ID */
   8778   uint32_t transactionId;
   8779   /**<   Identifies the transaction. The transaction ID
   8780        is returned with the Set Geofence Configuration
   8781        indication. */
   8782 
   8783   /* Optional */
   8784   /*  GNSS Unavailable Indication Timeout */
   8785   uint8_t gnssUnavailableIndicationTimeout_valid;  /**< Must be set to true if gnssUnavailableIndicationTimeout is being passed */
   8786   uint32_t gnssUnavailableIndicationTimeout;
   8787   /**<   In a bad GNSS environment, this is the timeout after which the Geofence
   8788        engine sends out a GNSS Unavailable indication. The GNSS Unavailable
   8789        indication is sent under the following conditions: \begin{itemize1}
   8790        \item If gnssUnavailableIndicationTimeout is less than
   8791              gnssPositionSessionTimeout, the GNSS
   8792              Unavailable timeout indication is sent after
   8793              gnssPositionSessionTimeout expires
   8794        \item If gnssPositionSessionTimeout is less than
   8795              gnssUnavailableIndicationTimeout, the
   8796              GNSS Unavailable timeout indication is sent after
   8797              gnssUnavailableIndicationTimeout expires
   8798         \vspace{-0.18in} \end{itemize1} */
   8799 
   8800   /* Optional */
   8801   /*  Max Geofences */
   8802   uint8_t maxGeofences_valid;  /**< Must be set to true if maxGeofences is being passed */
   8803   uint32_t maxGeofences;
   8804   /**<   Identifies the maximum number of Geofences that can be supported by
   8805        the Geofence engine. If this number is less than the currently deployed
   8806        Geofences, this command fails.
   8807 
   8808        If the command succeeds, the engine supports the maximum number of
   8809        Geofences requested, provided there is enough memory to support that
   8810        many Geofences. Increasing this value to a very large number in a
   8811        constrained memory environment might affect other modules negatively.
   8812        This value is determined by phone manufacturers. The default value
   8813        is 200. */
   8814 
   8815   /* Optional */
   8816   /*  Enable Motion Detection Sources */
   8817   uint8_t enableMotionDetectionSources_valid;  /**< Must be set to true if enableMotionDetectionSources is being passed */
   8818   qmiLocMotionDetectionSourceMaskT_v02 enableMotionDetectionSources;
   8819   /**<   Identifies the sources that can be enabled for motion detection by
   8820  the Geofence engine. The sources of motion detection that are enabled
   8821  by the Geofence engine are dependent on the platform.
   8822  These sources can only be set once at boot time and they are not expected to be changed after that.
   8823  Any attempt to set the value of the motion detection sources at runtime results in an undefined behavior.
   8824  Valid values: \n
   8825       - QMI_LOC_MOTION_DETECTION_SOURCE_SENSORS (0x00000001) --  Sensors are used for motion detection
   8826       - QMI_LOC_MOTION_DETECTION_SOURCE_WIFI (0x00000002) --  Wi-Fi is used for motion detection
   8827       - QMI_LOC_MOTION_DETECTION_SOURCE_WWAN (0x00000004) --  Wireless WAN is used for motion detection  */
   8828 
   8829   /* Optional */
   8830   /*  Enable Coarse Position Injection Usage */
   8831   uint8_t enableCpiUsage_valid;  /**< Must be set to true if enableCpiUsage is being passed */
   8832   uint8_t enableCpiUsage;
   8833   /**<   Indicates whether external Coarse Position Injection (CPI) is used
   8834        by the Geofence engine.
   8835        \begin{itemize1}
   8836        \item    0x01 (TRUE)  -- CPI is enabled (default)
   8837        \item    0x00 (FALSE) -- CPI is disabled
   8838        \vspace{-0.18in} \end{itemize1}*/
   8839 
   8840   /* Optional */
   8841   /*  GNSS Position QOS Session Timeout */
   8842   uint8_t gnssPositionSessionTimeout_valid;  /**< Must be set to true if gnssPositionSessionTimeout is being passed */
   8843   uint32_t gnssPositionSessionTimeout;
   8844   /**<   Identifies the session timeout value (in seconds) for requesting a
   8845          position in a bad GNSS environment.
   8846 
   8847          Valid values: \begin{itemize1}
   8848    \item If the gnssUnavailableIndicationTimeout value is less than
   8849          gnssPositionSessionTimeout, in a bad GNSS environment, the GNSS
   8850          Unavailable timeout indication is sent after
   8851          gnssPositionSessionTimeout expires.
   8852    \item If gnssPositionSessionTimeout is less than gnssUnavailableIndicationTimeout,
   8853          in a bad GNSS environment, the GNSS Unavailable timeout indication
   8854          is sent after gnssUnavailableIndicationTimeout expires. \vspace{-0.18in} \end{itemize1}
   8855     */
   8856 
   8857   /* Optional */
   8858   /*  GNSS Position Maximum Position Uncertainity Acceptable */
   8859   uint8_t gnssPositionMaxPuncAcceptable_valid;  /**< Must be set to true if gnssPositionMaxPuncAcceptable is being passed */
   8860   uint32_t gnssPositionMaxPuncAcceptable;
   8861   /**<   GNSS maximum position uncertainity in meters acceptable by
   8862          the Geofence engine.
   8863 
   8864          Valid values: \n
   8865          - All positive values
   8866     */
   8867 
   8868   /* Optional */
   8869   /*  Medium Responsiveness Value */
   8870   uint8_t mediumResponsivenessValue_valid;  /**< Must be set to true if mediumResponsivenessValue is being passed */
   8871   uint32_t mediumResponsivenessValue;
   8872   /**<   Medium responsiveness value in seconds that the Geofence engine
   8873          uses for all medium responsiveness Geofences in the Geofence engine.
   8874 
   8875          Valid values: \begin{itemize1}
   8876          \item Positive values (in seconds)
   8877          \item If the value is configured for less than 30 sec, the value is
   8878                set at 30 sec
   8879          \item If the value is configured for more than 600 sec, the value is
   8880                set at 600 sec
   8881          \item Default -- The Geofence engine uses 120 sec as the medium
   8882                           responsiveness value
   8883          \end{itemize1}
   8884 
   8885          If the medium responsiveness value is changed, the responsiveness
   8886          of the existing medium responsiveness Geofence does not change until the next
   8887          position fix, which is based on the previous medium responsiveness
   8888          setting.
   8889     */
   8890 
   8891   /* Optional */
   8892   /*  Challenging GNSS Environment Minimmum CPI Wait Interval */
   8893   uint8_t chalGnssEnvMinCpiWaitInterval_valid;  /**< Must be set to true if chalGnssEnvMinCpiWaitInterval is being passed */
   8894   uint32_t chalGnssEnvMinCpiWaitInterval;
   8895   /**<   Number of seconds that the Geofence engine is to wait between
   8896          CPI requests in challenging a GNSS environment.
   8897 
   8898          Valid values: \n
   8899          - Positive values (in seconds)
   8900      */
   8901 
   8902   /* Optional */
   8903   /*  Geofence Motion State Information */
   8904   uint8_t motionStateInfo_valid;  /**< Must be set to true if motionStateInfo is being passed */
   8905   uint32_t motionStateInfo_len;  /**< Must be set to # of elements in motionStateInfo */
   8906   qmiLocGeofenceMotionStateConfigStructT_v02 motionStateInfo[QMI_LOC_GEOFENCE_MAX_MOTION_STATES_V02];
   8907   /**<   \vspace{4pt} \n  Motion state informatino (e.g., motion state speed) that the
   8908          Geofence engine is to use.
   8909    */
   8910 }qmiLocSetGeofenceEngineConfigReqMsgT_v02;  /* Message */
   8911 /**
   8912     @}
   8913   */
   8914 
   8915 /** @addtogroup loc_qmi_messages
   8916     @{
   8917   */
   8918 /** Indication Message; Used by the control point to set the Geofence engine configuration. */
   8919 typedef struct {
   8920 
   8921   /* Mandatory */
   8922   /*  Set Geofence Engine Configuration Status. */
   8923   qmiLocStatusEnumT_v02 status;
   8924   /**<   Status of the Set Geofence Engine Configuration request.
   8925 
   8926  Valid values: \n
   8927       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   8928       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   8929       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   8930       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   8931       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   8932       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   8933       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   8934       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   8935       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   8936       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   8937       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   8938 
   8939   /* Optional */
   8940   /*  Transaction ID */
   8941   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
   8942   uint32_t transactionId;
   8943   /**<   Transaction ID that was specified in the Set Geofence Configuration
   8944        request. This parameter is always present if the status
   8945        field is set to SUCCESS. */
   8946 }qmiLocSetGeofenceEngineConfigIndMsgT_v02;  /* Message */
   8947 /**
   8948     @}
   8949   */
   8950 
   8951 /** @addtogroup loc_qmi_messages
   8952     @{
   8953   */
   8954 /** Request Message; Used by the control point to get the Geofence engine configuration. */
   8955 typedef struct {
   8956 
   8957   /* Mandatory */
   8958   /*  Transaction ID */
   8959   uint32_t transactionId;
   8960   /**<   Identifies the transaction. The transaction ID
   8961        is returned with the Get Geofence Engine Configuration
   8962        indication. */
   8963 }qmiLocGetGeofenceEngineConfigReqMsgT_v02;  /* Message */
   8964 /**
   8965     @}
   8966   */
   8967 
   8968 /** @addtogroup loc_qmi_messages
   8969     @{
   8970   */
   8971 /** Indication Message; Used by the control point to get the Geofence engine configuration. */
   8972 typedef struct {
   8973 
   8974   /* Mandatory */
   8975   /*  Get Geofence Engine Configuration Status */
   8976   qmiLocStatusEnumT_v02 status;
   8977   /**<   Status of the Get Geofence Engine Configuration request.
   8978 
   8979  Valid values: \n
   8980       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   8981       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   8982       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   8983       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   8984       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   8985       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   8986       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   8987       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   8988       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   8989       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   8990       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   8991 
   8992   /* Optional */
   8993   /*  Transaction ID */
   8994   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
   8995   uint32_t transactionId;
   8996   /**<   Transaction ID that was specified in the Get Geofence Engine Configuration
   8997        request. This parameter is always present
   8998        if the status field is set to SUCCESS. */
   8999 
   9000   /* Optional */
   9001   /*  GPS Unavailable Indication Timeout */
   9002   uint8_t gnssUnavailableIndicationTimeout_valid;  /**< Must be set to true if gnssUnavailableIndicationTimeout is being passed */
   9003   uint32_t gnssUnavailableIndicationTimeout;
   9004   /**<   In a bad GNSS environment, the timeout after which the Geofence engine
   9005        sends out a GNSS unavailable indication. */
   9006 
   9007   /* Optional */
   9008   /*  Max Geofences */
   9009   uint8_t maxGeofences_valid;  /**< Must be set to true if maxGeofences is being passed */
   9010   uint32_t maxGeofences;
   9011   /**<   Identifies the maximum number of Geofences that are currently supported
   9012        in the Geofence engine.  */
   9013 
   9014   /* Optional */
   9015   /*  Enabled Motion Detection Sources */
   9016   uint8_t enabledMotionDetectionSources_valid;  /**< Must be set to true if enabledMotionDetectionSources is being passed */
   9017   qmiLocMotionDetectionSourceMaskT_v02 enabledMotionDetectionSources;
   9018   /**<   Identifies the sources that are currently enabled for motion detection
   9019  by the Geofence engine.
   9020 
   9021  Valid values: \n
   9022       - QMI_LOC_MOTION_DETECTION_SOURCE_SENSORS (0x00000001) --  Sensors are used for motion detection
   9023       - QMI_LOC_MOTION_DETECTION_SOURCE_WIFI (0x00000002) --  Wi-Fi is used for motion detection
   9024       - QMI_LOC_MOTION_DETECTION_SOURCE_WWAN (0x00000004) --  Wireless WAN is used for motion detection  */
   9025 
   9026   /* Optional */
   9027   /*  Enabled for CPI Position Injection Usage */
   9028   uint8_t enabledCpiUsage_valid;  /**< Must be set to true if enabledCpiUsage is being passed */
   9029   uint8_t enabledCpiUsage;
   9030   /**<   Indicates whether CPI usage is enabled.
   9031        \begin{itemize1}
   9032        \item    0x01 (TRUE)  -- CPI usage is enabled
   9033        \item    0x00 (FALSE) -- CPI usage is disabled
   9034        \vspace{-0.18in} \end{itemize1}*/
   9035 }qmiLocGetGeofenceEngineConfigIndMsgT_v02;  /* Message */
   9036 /**
   9037     @}
   9038   */
   9039 
   9040 /** @addtogroup loc_qmi_messages
   9041     @{
   9042   */
   9043 /** Request Message; Used by the control point to edit a Geofence. */
   9044 typedef struct {
   9045 
   9046   /* Mandatory */
   9047   /*  Geofence ID */
   9048   uint32_t geofenceId;
   9049   /**<   Identifier for the Geofence to be edited. */
   9050 
   9051   /* Mandatory */
   9052   /*  Transaction ID */
   9053   uint32_t transactionId;
   9054   /**<   Transaction ID that was specified in the Edit Geofence
   9055        request. This parameter will always be present if the
   9056        status field is set to SUCCESS.
   9057  */
   9058 
   9059   /* Optional */
   9060   /*  Geofence State */
   9061   uint8_t geofenceState_valid;  /**< Must be set to true if geofenceState is being passed */
   9062   qmiLocGeofenceStateEnumT_v02 geofenceState;
   9063   /**<   Specifies whether the Geofence is to be actively monitored.
   9064 
   9065  Valid values: \n
   9066       - eQMI_LOC_GEOFENCE_STATE_ACTIVE (1) --  Geofence is being actively monitored
   9067       - eQMI_LOC_GEOFENCE_STATE_SUSPEND (2) --  Geofence monitoring is suspended
   9068  */
   9069 
   9070   /* Optional */
   9071   /*  Breach Event Mask */
   9072   uint8_t breachMask_valid;  /**< Must be set to true if breachMask is being passed */
   9073   qmiLocGeofenceBreachMaskT_v02 breachMask;
   9074   /**<   Specifies the breach events in which the client is interested.
   9075 
   9076        Valid values: \begin{itemize1}
   9077        \item    0x01 -- GEOFENCE_BREACH_ ENTERING_MASK
   9078        \item    0x02 -- GEOFENCE_BREACH_ LEAVING_MASK
   9079        \vspace{-0.18in} \end{itemize1} */
   9080 
   9081   /* Optional */
   9082   /*  Responsiveness */
   9083   uint8_t responsiveness_valid;  /**< Must be set to true if responsiveness is being passed */
   9084   qmiLocGeofenceResponsivenessEnumT_v02 responsiveness;
   9085   /**<   Specifies the rate of detection for a Geofence breach.
   9086  This may impact the time lag between the actual breach event and
   9087  when it is reported. This parameter has power implications
   9088  and is to be fine-tuned to optimize power savings.
   9089 
   9090  Valid values: \n
   9091       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_LOW (0x01) --  The Geofence is monitored for a breach at a
   9092        low rate of 15 minutes. The gap between the actual breach and
   9093        the time it is reported is higher. This
   9094        setting results in lower power usage.
   9095       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_MED (0x02) --  The Geofence is monitored for a breach at a
   9096        medium rate of 2 minutes. This is the default setting.
   9097       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_HIGH (0x03) --  The Geofence is monitored for a breach at a
   9098        high rate of 10 seconds. The gap between the actual breach and
   9099        the time it is reported is low. This results
   9100        in higher power usage.
   9101       - eQMI_LOC_GEOFENCE_RESPONSIVENESS_ULTRA_HIGH (0x04) --  The Geofence is monitored for a breach at a
   9102        very high rate of 1 second. The gap between the actual breach and
   9103        the time it is reported is very low. This results
   9104        in very high power usage. This setting must be avoided whenever
   9105        possible because of the drastic power implications.
   9106  */
   9107 }qmiLocEditGeofenceReqMsgT_v02;  /* Message */
   9108 /**
   9109     @}
   9110   */
   9111 
   9112 typedef uint32_t qmiLocGeofenceConfigParamMaskT_v02;
   9113 #define QMI_LOC_GEOFENCE_PARAM_MASK_GEOFENCE_STATE_V02 ((qmiLocGeofenceConfigParamMaskT_v02)0x00000001) /**<  Mask for the Geofence state parameter.  */
   9114 #define QMI_LOC_GEOFENCE_PARAM_MASK_BREACH_MASK_V02 ((qmiLocGeofenceConfigParamMaskT_v02)0x00000002) /**<  Mask for Geofence breach mask parameter.  */
   9115 /** @addtogroup loc_qmi_messages
   9116     @{
   9117   */
   9118 /** Indication Message; Used by the control point to edit a Geofence. */
   9119 typedef struct {
   9120 
   9121   /* Mandatory */
   9122   /*  Edit Geofence Status */
   9123   qmiLocStatusEnumT_v02 status;
   9124   /**<   Status of the Edit Geofence request.
   9125 
   9126  Valid values: \n
   9127       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   9128       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   9129       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   9130       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   9131       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   9132       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   9133       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   9134       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   9135       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   9136       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   9137       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   9138 
   9139   /* Optional */
   9140   /*  Geofence ID */
   9141   uint8_t geofenceId_valid;  /**< Must be set to true if geofenceId is being passed */
   9142   uint32_t geofenceId;
   9143   /**<   Identifier for the Geofence that was edited. */
   9144 
   9145   /* Optional */
   9146   /*  Transaction ID */
   9147   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
   9148   uint32_t transactionId;
   9149   /**<   Identifies the transaction. The transaction ID
   9150        is specified in the Edit Geofence request. */
   9151 
   9152   /* Optional */
   9153   /*  Failed Parameters */
   9154   uint8_t failedParams_valid;  /**< Must be set to true if failedParams is being passed */
   9155   qmiLocGeofenceConfigParamMaskT_v02 failedParams;
   9156   /**<   Specified only when the status is not set to SUCCESS. If
   9157        the mask corresponding to a field is set, it indicates that
   9158        the Geofence parameter could not be edited.
   9159 
   9160        Valid values: \begin{itemize1}
   9161        \item    0x00000001 -- GEOFENCE_PARAM_ MASK_GEOFENCE_STATE
   9162        \item    0x00000002 -- GEOFENCE_PARAM_ MASK_BREACH_MASK
   9163        \vspace{-0.18in} \end{itemize1} */
   9164 }qmiLocEditGeofenceIndMsgT_v02;  /* Message */
   9165 /**
   9166     @}
   9167   */
   9168 
   9169 /** @addtogroup loc_qmi_messages
   9170     @{
   9171   */
   9172 /** Request Message; Used by the control point to get the best available
   9173                     position estimate from the location engine. */
   9174 typedef struct {
   9175 
   9176   /* Mandatory */
   9177   /*  Transaction ID */
   9178   uint32_t transactionId;
   9179   /**<   Identifies the transaction. The transaction ID
   9180        is returned in the Get Best Available Position indication. */
   9181 }qmiLocGetBestAvailablePositionReqMsgT_v02;  /* Message */
   9182 /**
   9183     @}
   9184   */
   9185 
   9186 /** @addtogroup loc_qmi_messages
   9187     @{
   9188   */
   9189 /** Indication Message; Used by the control point to get the best available
   9190                     position estimate from the location engine. */
   9191 typedef struct {
   9192 
   9193   /* Mandatory */
   9194   /*  Get Best Available Position Status */
   9195   qmiLocStatusEnumT_v02 status;
   9196   /**<   Status of the Get Best Available Position request.
   9197 
   9198  Valid values: \n
   9199       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   9200       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   9201       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   9202       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   9203       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   9204       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   9205       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   9206       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   9207       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   9208       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   9209       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   9210 
   9211   /* Optional */
   9212   /*  Transaction ID */
   9213   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
   9214   uint32_t transactionId;
   9215   /**<   Transaction ID that was specified in the Get Best
   9216        Available Position request. This parameter will
   9217        always be present if the status field is set to
   9218        SUCCESS. */
   9219 
   9220   /* Optional */
   9221   /*  Latitude */
   9222   uint8_t latitude_valid;  /**< Must be set to true if latitude is being passed */
   9223   double latitude;
   9224   /**<   Latitude (specified in WGS84 datum).
   9225        \begin{itemize1}
   9226        \item    Type: Floating point
   9227        \item    Units: Degrees
   9228        \item     Range: -90.0 to 90.0      \begin{itemize1}
   9229          \item    Positive values indicate northern latitude
   9230          \item    Negative values indicate southern latitude
   9231        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
   9232 
   9233   /* Optional */
   9234   /*   Longitude */
   9235   uint8_t longitude_valid;  /**< Must be set to true if longitude is being passed */
   9236   double longitude;
   9237   /**<   Longitude (specified in WGS84 datum).
   9238        \begin{itemize1}
   9239        \item    Type: Floating point
   9240        \item    Units: Degrees
   9241        \item    Range: -180.0 to 180.0     \begin{itemize1}
   9242          \item    Positive values indicate eastern longitude
   9243          \item    Negative values indicate western longitude
   9244        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
   9245 
   9246   /* Optional */
   9247   /*   Circular Horizontal Position Uncertainty */
   9248   uint8_t horUncCircular_valid;  /**< Must be set to true if horUncCircular is being passed */
   9249   float horUncCircular;
   9250   /**<   Horizontal position uncertainty (circular).\n
   9251        - Units: Meters */
   9252 
   9253   /* Optional */
   9254   /*  Altitude With Respect to Ellipsoid */
   9255   uint8_t altitudeWrtEllipsoid_valid;  /**< Must be set to true if altitudeWrtEllipsoid is being passed */
   9256   float altitudeWrtEllipsoid;
   9257   /**<   Altitude with respect to the WGS84 ellipsoid.\n
   9258        - Units: Meters \n
   9259        - Range: -500 to 15883 */
   9260 
   9261   /* Optional */
   9262   /*  Vertical Uncertainty */
   9263   uint8_t vertUnc_valid;  /**< Must be set to true if vertUnc is being passed */
   9264   float vertUnc;
   9265   /**<   Vertical uncertainty.\n
   9266        - Units: Meters */
   9267 
   9268   /* Optional */
   9269   /*  UTC Timestamp */
   9270   uint8_t timestampUtc_valid;  /**< Must be set to true if timestampUtc is being passed */
   9271   uint64_t timestampUtc;
   9272   /**<   UTC timestamp.
   9273        \begin{itemize1}
   9274        \item Units: Milliseconds since Jan. 1, 1970
   9275        \vspace{-0.18in} \end{itemize1} */
   9276 
   9277   /* Optional */
   9278   /*  Time Uncertainty */
   9279   uint8_t timeUnc_valid;  /**< Must be set to true if timeUnc is being passed */
   9280   float timeUnc;
   9281   /**<   Time uncertainty. \n
   9282        - Units: Milliseconds */
   9283 
   9284   /* Optional */
   9285   /*  Horizontal Elliptical Uncertainty Semi-Minor Axis */
   9286   uint8_t horUncEllipseSemiMinor_valid;  /**< Must be set to true if horUncEllipseSemiMinor is being passed */
   9287   float horUncEllipseSemiMinor;
   9288   /**<   Semi-minor axis of horizontal elliptical uncertainty. \n
   9289        - Units: Meters */
   9290 
   9291   /* Optional */
   9292   /*  Horizontal Elliptical Uncertainty Semi-Major Axis */
   9293   uint8_t horUncEllipseSemiMajor_valid;  /**< Must be set to true if horUncEllipseSemiMajor is being passed */
   9294   float horUncEllipseSemiMajor;
   9295   /**<   Semi-major axis of horizontal elliptical uncertainty. \n
   9296        - Units: Meters */
   9297 
   9298   /* Optional */
   9299   /*  Horizontal Elliptical Uncertainty Azimuth */
   9300   uint8_t horUncEllipseOrientAzimuth_valid;  /**< Must be set to true if horUncEllipseOrientAzimuth is being passed */
   9301   float horUncEllipseOrientAzimuth;
   9302   /**<   Elliptical horizontal uncertainty azimuth of orientation. \n
   9303        - Units: Decimal degrees \n
   9304        - Range: 0 to 180 */
   9305 
   9306   /* Optional */
   9307   /*  Horizontal Circular Confidence */
   9308   uint8_t horCircularConfidence_valid;  /**< Must be set to true if horCircularConfidence is being passed */
   9309   uint8_t horCircularConfidence;
   9310   /**<   Horizontal circular uncertainty confidence. \n
   9311        - Units: Percent \n
   9312        - Range: 0 to 99 */
   9313 
   9314   /* Optional */
   9315   /*  Horizontal Elliptical Confidence */
   9316   uint8_t horEllipticalConfidence_valid;  /**< Must be set to true if horEllipticalConfidence is being passed */
   9317   uint8_t horEllipticalConfidence;
   9318   /**<   Horizontal elliptical uncertainty confidence. \n
   9319        - Units: Percent \n
   9320        - Range: 0 to 99 */
   9321 
   9322   /* Optional */
   9323   /*  Horizontal Reliability */
   9324   uint8_t horReliability_valid;  /**< Must be set to true if horReliability is being passed */
   9325   qmiLocReliabilityEnumT_v02 horReliability;
   9326   /**<   Specifies the reliability of the horizontal position.
   9327 
   9328  Valid values: \n
   9329       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
   9330       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
   9331       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
   9332       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
   9333       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
   9334  */
   9335 
   9336   /* Optional */
   9337   /*  Horizontal Speed */
   9338   uint8_t horSpeed_valid;  /**< Must be set to true if horSpeed is being passed */
   9339   float horSpeed;
   9340   /**<   Horizontal speed. \n
   9341        - Units: Meters/second */
   9342 
   9343   /* Optional */
   9344   /*  Horizontal Speed Uncertainty */
   9345   uint8_t horSpeedUnc_valid;  /**< Must be set to true if horSpeedUnc is being passed */
   9346   float horSpeedUnc;
   9347   /**<   Horizontal speed uncertainty. \n
   9348        - Units: Meters/second */
   9349 
   9350   /* Optional */
   9351   /*  Altitude With Respect to Sea Level */
   9352   uint8_t altitudeWrtMeanSeaLevel_valid;  /**< Must be set to true if altitudeWrtMeanSeaLevel is being passed */
   9353   float altitudeWrtMeanSeaLevel;
   9354   /**<   Altitude with respect to mean sea level. \n
   9355        - Units: Meters */
   9356 
   9357   /* Optional */
   9358   /*  Vertical Confidence */
   9359   uint8_t vertConfidence_valid;  /**< Must be set to true if vertConfidence is being passed */
   9360   uint8_t vertConfidence;
   9361   /**<   Vertical uncertainty confidence. \n
   9362        - Units: Percent \n
   9363        - Range: 0 to 99 */
   9364 
   9365   /* Optional */
   9366   /*  Vertical Reliability */
   9367   uint8_t vertReliability_valid;  /**< Must be set to true if vertReliability is being passed */
   9368   qmiLocReliabilityEnumT_v02 vertReliability;
   9369   /**<   Specifies the reliability of the vertical position.
   9370 
   9371  Valid values: \n
   9372       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
   9373       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
   9374       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
   9375       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
   9376       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
   9377  */
   9378 
   9379   /* Optional */
   9380   /*  Vertical Speed */
   9381   uint8_t vertSpeed_valid;  /**< Must be set to true if vertSpeed is being passed */
   9382   float vertSpeed;
   9383   /**<   Vertical speed. \n
   9384          - Units: Meters/second */
   9385 
   9386   /* Optional */
   9387   /*  Vertical Speed Uncertainty */
   9388   uint8_t vertSpeedUnc_valid;  /**< Must be set to true if vertSpeedUnc is being passed */
   9389   float vertSpeedUnc;
   9390   /**<   Vertical speed uncertainty. \n
   9391        - Units: Meters/second */
   9392 
   9393   /* Optional */
   9394   /*  Heading */
   9395   uint8_t heading_valid;  /**< Must be set to true if heading is being passed */
   9396   float heading;
   9397   /**<   Heading. \n
   9398          - Units: Degrees \n
   9399          - Range: 0 to 359.999  */
   9400 
   9401   /* Optional */
   9402   /*  Heading Uncertainty */
   9403   uint8_t headingUnc_valid;  /**< Must be set to true if headingUnc is being passed */
   9404   float headingUnc;
   9405   /**<   Heading uncertainty. \n
   9406        - Type: Floating point \n
   9407        - Range: 0 to 359.999 */
   9408 
   9409   /* Optional */
   9410   /*  Magnetic Deviation */
   9411   uint8_t magneticDeviation_valid;  /**< Must be set to true if magneticDeviation is being passed */
   9412   float magneticDeviation;
   9413   /**<   Difference between the bearing to true north and the bearing shown
   9414       on a magnetic compass. The deviation is positive when the magnetic
   9415       north is east of true north. */
   9416 
   9417   /* Optional */
   9418   /*  Technology Used Mask */
   9419   uint8_t technologyMask_valid;  /**< Must be set to true if technologyMask is being passed */
   9420   qmiLocPosTechMaskT_v02 technologyMask;
   9421   /**<   Technology used in computing this fix.
   9422  Valid bitmasks: \n
   9423       - QMI_LOC_POS_TECH_MASK_SATELLITE (0x00000001) --  Satellites were used to generate the fix
   9424       - QMI_LOC_POS_TECH_MASK_CELLID (0x00000002) --  Cell towers were used to generate the fix
   9425       - QMI_LOC_POS_TECH_MASK_WIFI (0x00000004) --  Wi-Fi access points were used to generate the fix
   9426       - QMI_LOC_POS_TECH_MASK_SENSORS (0x00000008) --  Sensors were used to generate the fix
   9427       - QMI_LOC_POS_TECH_MASK_REFERENCE_LOCATION (0x00000010) --  Reference Location was used to generate the fix
   9428       - QMI_LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION (0x00000020) --  Coarse position injected into the location engine was used to
   9429         generate the fix
   9430       - QMI_LOC_POS_TECH_MASK_AFLT (0x00000040) --  AFLT was used to generate the fix
   9431       - QMI_LOC_POS_TECH_MASK_HYBRID (0x00000080) --  GNSS and network-provided measurements were used to
   9432         generate the fix
   9433  */
   9434 
   9435   /* Optional */
   9436   /*  Dilution of Precision */
   9437   uint8_t DOP_valid;  /**< Must be set to true if DOP is being passed */
   9438   qmiLocDOPStructT_v02 DOP;
   9439 
   9440   /* Optional */
   9441   /*  GPS Time */
   9442   uint8_t gpsTime_valid;  /**< Must be set to true if gpsTime is being passed */
   9443   qmiLocGPSTimeStructT_v02 gpsTime;
   9444 
   9445   /* Optional */
   9446   /*  Time Source */
   9447   uint8_t timeSrc_valid;  /**< Must be set to true if timeSrc is being passed */
   9448   qmiLocTimeSourceEnumT_v02 timeSrc;
   9449   /**<   Time source.
   9450  Valid values: \n
   9451       - eQMI_LOC_TIME_SRC_INVALID (0) --  Invalid time.
   9452       - eQMI_LOC_TIME_SRC_NETWORK_TIME_TRANSFER (1) --  Time is set by the 1X system
   9453       - eQMI_LOC_TIME_SRC_NETWORK_TIME_TAGGING (2) --  Time is set by WCDMA/GSM time tagging (i.e.,
   9454        associating network time with GPS time)
   9455       - eQMI_LOC_TIME_SRC_EXTERNAL_INPUT (3) --  Time is set by an external injection
   9456       - eQMI_LOC_TIME_SRC_TOW_DECODE (4) --  Time is set after decoding over-the-air GPS navigation data
   9457        from one GPS satellite
   9458       - eQMI_LOC_TIME_SRC_TOW_CONFIRMED (5) --  Time is set after decoding over-the-air GPS navigation data
   9459        from multiple satellites
   9460       - eQMI_LOC_TIME_SRC_TOW_AND_WEEK_CONFIRMED (6) --  Both time of the week and the GPS week number are known
   9461       - eQMI_LOC_TIME_SRC_NAV_SOLUTION (7) --  Time is set by the position engine after the fix is obtained
   9462       - eQMI_LOC_TIME_SRC_SOLVE_FOR_TIME (8) --  Time is set by the position engine after performing SFT;
   9463        this is done when the clock time uncertainty is large
   9464       - eQMI_LOC_TIME_SRC_GLO_TOW_DECODE (9) --  Time is set after decoding GLO satellites
   9465       - eQMI_LOC_TIME_SRC_TIME_TRANSFORM (10) --  Time is set after transforming the GPS to GLO time
   9466       - eQMI_LOC_TIME_SRC_WCDMA_SLEEP_TIME_TAGGING (11) --  Time is set by the sleep time tag provided by the WCDMA network
   9467       - eQMI_LOC_TIME_SRC_GSM_SLEEP_TIME_TAGGING (12) --  Time is set by the sleep time tag provided by the GSM network
   9468       - eQMI_LOC_TIME_SRC_UNKNOWN (13) --  Source of the time is unknown
   9469       - eQMI_LOC_TIME_SRC_SYSTEM_TIMETICK (14) --  Time is derived from the system clock (better known as the slow clock);
   9470        GNSS time is maintained irrespective of the GNSS receiver state
   9471       - eQMI_LOC_TIME_SRC_QZSS_TOW_DECODE (15) --  Time is set after decoding QZSS satellites
   9472       - eQMI_LOC_TIME_SRC_BDS_TOW_DECODE (16) --  Time is set after decoding BDS satellites
   9473  */
   9474 
   9475   /* Optional */
   9476   /*  Sensor Data Usage */
   9477   uint8_t sensorDataUsage_valid;  /**< Must be set to true if sensorDataUsage is being passed */
   9478   qmiLocSensorUsageIndicatorStructT_v02 sensorDataUsage;
   9479 
   9480   /* Optional */
   9481   /*  SVs Used to Calculate the Fix */
   9482   uint8_t gnssSvUsedList_valid;  /**< Must be set to true if gnssSvUsedList is being passed */
   9483   uint32_t gnssSvUsedList_len;  /**< Must be set to # of elements in gnssSvUsedList */
   9484   uint16_t gnssSvUsedList[QMI_LOC_MAX_SV_USED_LIST_LENGTH_V02];
   9485   /**<   Each entry in the list contains the SV ID of a satellite
   9486        used for calculating this position report. The following
   9487        information is associated with each SV ID: \n
   9488        Range: \n
   9489        - For GPS:     1 to 32 \n
   9490        - For SBAS:    33 to 64 \n
   9491        - For GLONASS: 65 to 96 \n
   9492        - For QZSS:    193 to 197 \n
   9493        - For BDS:     201 to 237
   9494     */
   9495 }qmiLocGetBestAvailablePositionIndMsgT_v02;  /* Message */
   9496 /**
   9497     @}
   9498   */
   9499 
   9500 /** @addtogroup loc_qmi_enums
   9501     @{
   9502   */
   9503 typedef enum {
   9504   QMILOCMOTIONSTATEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   9505   eQMI_LOC_MOTION_STATE_UNKNOWN_V02 = 0, /**<  Device state is not known  */
   9506   eQMI_LOC_MOTION_STATE_STATIONARY_V02 = 1, /**<  Device state is Stationary  */
   9507   eQMI_LOC_MOTION_STATE_IN_MOTION_V02 = 2, /**<  Device state is In Motion  */
   9508   QMILOCMOTIONSTATEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   9509 }qmiLocMotionStateEnumT_v02;
   9510 /**
   9511     @}
   9512   */
   9513 
   9514 /** @addtogroup loc_qmi_enums
   9515     @{
   9516   */
   9517 typedef enum {
   9518   QMILOCMOTIONMODEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   9519   eQMI_LOC_MOTION_MODE_UNKNOWN_V02 = 0, /**<  Device movement is not known  */
   9520   eQMI_LOC_MOTION_MODE_STATIONARY_V02 = 1, /**<  Device is not moving  */
   9521   eQMI_LOC_MOTION_MODE_PEDESTRIAN_UNKNOWN_V02 = 200, /**<  Device movement is in Pedestrian mode; nothing else is known about the movement  */
   9522   eQMI_LOC_MOTION_MODE_PEDESTRIAN_WALKING_V02 = 201, /**<  Device movement is in pedestrian Walking mode  */
   9523   eQMI_LOC_MOTION_MODE_PEDESTRIAN_RUNNING_V02 = 202, /**<  Device movement is in pedestrian Running mode  */
   9524   eQMI_LOC_MOTION_MODE_VEHICLE_UNKNOWN_V02 = 300, /**<  Device movement is in Vehicular mode; nothing else is known about the movement  */
   9525   QMILOCMOTIONMODEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   9526 }qmiLocMotionModeEnumT_v02;
   9527 /**
   9528     @}
   9529   */
   9530 
   9531 /** @addtogroup loc_qmi_aggregates
   9532     @{
   9533   */
   9534 typedef struct {
   9535 
   9536   qmiLocMotionStateEnumT_v02 motion_state;
   9537   /**<   Current motion state of the user.
   9538 
   9539  Valid values: \n
   9540       - eQMI_LOC_MOTION_STATE_UNKNOWN (0) --  Device state is not known
   9541       - eQMI_LOC_MOTION_STATE_STATIONARY (1) --  Device state is Stationary
   9542       - eQMI_LOC_MOTION_STATE_IN_MOTION (2) --  Device state is In Motion
   9543  */
   9544 
   9545   qmiLocMotionModeEnumT_v02 motion_mode;
   9546   /**<   Modes of user motion.
   9547 
   9548  Valid values: \n
   9549       - eQMI_LOC_MOTION_MODE_UNKNOWN (0) --  Device movement is not known
   9550       - eQMI_LOC_MOTION_MODE_STATIONARY (1) --  Device is not moving
   9551       - eQMI_LOC_MOTION_MODE_PEDESTRIAN_UNKNOWN (200) --  Device movement is in Pedestrian mode; nothing else is known about the movement
   9552       - eQMI_LOC_MOTION_MODE_PEDESTRIAN_WALKING (201) --  Device movement is in pedestrian Walking mode
   9553       - eQMI_LOC_MOTION_MODE_PEDESTRIAN_RUNNING (202) --  Device movement is in pedestrian Running mode
   9554       - eQMI_LOC_MOTION_MODE_VEHICLE_UNKNOWN (300) --  Device movement is in Vehicular mode; nothing else is known about the movement
   9555  */
   9556 
   9557   float probability_of_state;
   9558   /**<   Probability that the device is actually undergoing the motion state
   9559        specified by the combination of the values of motion_state, motion_mode,
   9560        and motion_sub_mode. \vspace{0.1in}
   9561 
   9562        This value is a floating point number in the range of 0 to 100, in
   9563        units of percent probability. Any value greater than 99.9999 is
   9564        applied as 99.9999. \vspace{0.1in}
   9565 
   9566        It is recommended that if a particular combination of motion_state and
   9567        motion_mode cannot be determined with more than 50 percent confidence,
   9568        that a more general statement of user motion be made.
   9569        For example, if the mode of In-Motion + Pedestrian-Running can only be
   9570        determined with 50 percent probability, and the simpler statement of In-Motion
   9571        can be determined with 90 percent probability, it is recommended that this field
   9572        be used to simply state In-Motion with 90 percent probability. \vspace{0.1in}
   9573 
   9574        If the motion_state is not known, the value in this field is not used.
   9575   */
   9576 
   9577   uint16_t age;
   9578   /**<   Age of the motion data in milliseconds at the time of injection.
   9579   */
   9580 
   9581   uint16_t timeout;
   9582   /**<   If the age of the motion data input exceeds the timeout value, the data
   9583        will no longer be used. The timeout value is in units of milliseconds.
   9584        Values in the range of 0 to 10000 are accepted. If 65535 is provided,
   9585        the motion data input is applied until the next input is
   9586        received. \n
   9587 
   9588        If the determination of motion data is an instantaneous observation
   9589        and no notice is guaranteed to be given via the QMI on a change in the
   9590        state of the motion data, it is recommended that this field be set to 0. \vspace{0.1in}
   9591 
   9592        If the determination of motion data is continuously monitored
   9593        external to the QMI and an update is always applied to the QMI upon any
   9594        change in state, a value of 65535 is used for this field.
   9595        Note that in this case, if a certain mode is set and is not later
   9596        unset (e.g., by sending in the request message with a user motion
   9597        state of Unknown), the value is applied indefinitely.
   9598   */
   9599 }qmiLocMotionDataStructT_v02;  /* Type */
   9600 /**
   9601     @}
   9602   */
   9603 
   9604 /** @addtogroup loc_qmi_messages
   9605     @{
   9606   */
   9607 /** Request Message; Injects motion data for MSM GPS service use. */
   9608 typedef struct {
   9609 
   9610   /* Mandatory */
   9611   /*  Motion Data */
   9612   qmiLocMotionDataStructT_v02 motion_data;
   9613 }qmiLocInjectMotionDataReqMsgT_v02;  /* Message */
   9614 /**
   9615     @}
   9616   */
   9617 
   9618 /** @addtogroup loc_qmi_messages
   9619     @{
   9620   */
   9621 /** Indication Message; Injects motion data for MSM GPS service use. */
   9622 typedef struct {
   9623 
   9624   /* Mandatory */
   9625   /*  Inject Motion Data Request Status */
   9626   qmiLocStatusEnumT_v02 status;
   9627   /**<   Status of the Inject Motion Data request.
   9628 
   9629  Valid values: \n
   9630       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   9631       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   9632       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   9633       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   9634       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   9635       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   9636       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   9637       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   9638       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   9639       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   9640       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   9641  */
   9642 }qmiLocInjectMotionDataIndMsgT_v02;  /* Message */
   9643 /**
   9644     @}
   9645   */
   9646 
   9647 /** @addtogroup loc_qmi_messages
   9648     @{
   9649   */
   9650 /** Request Message; Used by the control point to retrieve the list of network
   9651                     initiated Geofence IDs. */
   9652 typedef struct {
   9653 
   9654   /* Mandatory */
   9655   /*  Transaction ID */
   9656   uint32_t transactionId;
   9657   /**<   Identifies the transaction. The same transaction ID
   9658        will be returned in the Get NI Geofence ID List indication. */
   9659 }qmiLocGetNiGeofenceIdListReqMsgT_v02;  /* Message */
   9660 /**
   9661     @}
   9662   */
   9663 
   9664 /** @addtogroup loc_qmi_messages
   9665     @{
   9666   */
   9667 /** Indication Message; Used by the control point to retrieve the list of network
   9668                     initiated Geofence IDs. */
   9669 typedef struct {
   9670 
   9671   /* Mandatory */
   9672   /*  Get NI Geofence ID List Status */
   9673   qmiLocStatusEnumT_v02 status;
   9674   /**<   Status of the Get NI Geofence ID List request.
   9675 
   9676  Valid values: \n
   9677       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   9678       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   9679       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   9680       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   9681       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   9682       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   9683       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   9684       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   9685       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   9686       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   9687       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   9688 
   9689   /* Optional */
   9690   /*  Transaction ID */
   9691   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
   9692   uint32_t transactionId;
   9693   /**<   Transaction ID that was specified in the Get NI
   9694        Geofence ID List request. */
   9695 
   9696   /* Optional */
   9697   /*  NI Geofence ID List */
   9698   uint8_t niGeofenceIdList_valid;  /**< Must be set to true if niGeofenceIdList is being passed */
   9699   uint32_t niGeofenceIdList_len;  /**< Must be set to # of elements in niGeofenceIdList */
   9700   uint32_t niGeofenceIdList[QMI_LOC_MAX_NI_GEOFENCE_ID_LIST_LENGTH_V02];
   9701   /**<   List containing the NI Geofence IDs.
   9702        - Type: Array of unsigned 32-bit integers \n
   9703        - Maximum NI Geofence ID List length: 16 */
   9704 }qmiLocGetNiGeofenceIdListIndMsgT_v02;  /* Message */
   9705 /**
   9706     @}
   9707   */
   9708 
   9709 /** @addtogroup loc_qmi_aggregates
   9710     @{
   9711   */
   9712 typedef struct {
   9713 
   9714   uint32_t MCC;
   9715   /**<   GSM mobile country code. Refer to ITU-T E.212 \hyperref[S6]{[S6]}. */
   9716 
   9717   uint32_t MNC;
   9718   /**<   GSM mobile network code. Refer to \hyperref[S6]{[S6]}. */
   9719 
   9720   uint32_t LAC;
   9721   /**<   GSM location area code. Refer to \hyperref[S6]{[S6]}. */
   9722 
   9723   uint32_t CID;
   9724   /**<   GSM cell identification. Refer to \hyperref[S6]{[S6]}. */
   9725 }qmiLocGSMCellIdStructT_v02;  /* Type */
   9726 /**
   9727     @}
   9728   */
   9729 
   9730 /** @addtogroup loc_qmi_messages
   9731     @{
   9732   */
   9733 /** Request Message; Injects GSM cell information into the location
   9734                     engine. */
   9735 typedef struct {
   9736 
   9737   /* Mandatory */
   9738   /*  GSM Cell ID */
   9739   qmiLocGSMCellIdStructT_v02 gsmCellId;
   9740   /**<   \vspace{0.06in} \n Identifies the GSM cell on which the device is currently camped. */
   9741 
   9742   /* Mandatory */
   9743   /*  Roaming Status */
   9744   uint8_t roamingStatus;
   9745   /**<   Indicates whether the device is roaming.
   9746        \begin{itemize1}
   9747        \item    0x01 (TRUE)  -- Device is roaming
   9748        \item    0x00 (FALSE) -- Device is not roaming
   9749        \vspace{-0.18in} \end{itemize1}*/
   9750 
   9751   /* Optional */
   9752   /*  Timing Advance */
   9753   uint8_t timingAdvance_valid;  /**< Must be set to true if timingAdvance is being passed */
   9754   uint32_t timingAdvance;
   9755   /**<   Round trip delay between the MS and the BS, in units of 3.69 microseconds.
   9756        Refer to 3GPP TS 05.10 and TS 45.010. */
   9757 }qmiLocInjectGSMCellInfoReqMsgT_v02;  /* Message */
   9758 /**
   9759     @}
   9760   */
   9761 
   9762 /** @addtogroup loc_qmi_messages
   9763     @{
   9764   */
   9765 /** Indication Message; Injects GSM cell information into the location
   9766                     engine. */
   9767 typedef struct {
   9768 
   9769   /* Mandatory */
   9770   /*  Inject GSM Cell Info Status */
   9771   qmiLocStatusEnumT_v02 status;
   9772   /**<   Status of the Inject GSM Cell Info request.
   9773 
   9774  Valid values: \n
   9775       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   9776       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   9777       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   9778       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   9779       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   9780       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   9781       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   9782       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   9783       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   9784       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   9785       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   9786 }qmiLocInjectGSMCellInfoIndMsgT_v02;  /* Message */
   9787 /**
   9788     @}
   9789   */
   9790 
   9791 /** @addtogroup loc_qmi_enums
   9792     @{
   9793   */
   9794 typedef enum {
   9795   QMILOCROAMINGSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   9796   eQMI_LOC_PHONE_NOT_ROAMING_V02 = 1, /**<  Modem is camped on a home network  */
   9797   eQMI_LOC_PHONE_ROAMING_V02 = 2, /**<  Modem is camped on a roaming network  */
   9798   QMILOCROAMINGSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   9799 }qmiLocRoamingStatusEnumT_v02;
   9800 /**
   9801     @}
   9802   */
   9803 
   9804 /** @addtogroup loc_qmi_aggregates
   9805     @{
   9806   */
   9807 typedef struct {
   9808 
   9809   uint32_t mcc;
   9810   /**<   WCDMA mobile country code. Refer to ITU-T E.212 \hyperref[S6]{[S6]}. */
   9811 
   9812   uint32_t mnc;
   9813   /**<   WCDMA mobile network code. Refer to \hyperref[S6]{[S6]}. */
   9814 
   9815   uint32_t cid;
   9816   /**<   WCDMA cell identity. Refer to \hyperref[S6]{[S6]}. */
   9817 }qmiLocWCDMACellIdStructT_v02;  /* Type */
   9818 /**
   9819     @}
   9820   */
   9821 
   9822 /** @addtogroup loc_qmi_messages
   9823     @{
   9824   */
   9825 /** Request Message; Injects WCDMA cell information into the location
   9826                     engine. */
   9827 typedef struct {
   9828 
   9829   /* Mandatory */
   9830   /*  WCDMA Cell ID */
   9831   qmiLocWCDMACellIdStructT_v02 wcdmaCellId;
   9832   /**<   \n Identifies the WCDMA cell on which the device is currently camped. */
   9833 
   9834   /* Mandatory */
   9835   /*  Roaming Status */
   9836   qmiLocRoamingStatusEnumT_v02 roamingStatus;
   9837   /**<   Indicates whether the device is roaming.
   9838 
   9839  Valid values: \n
   9840       - eQMI_LOC_PHONE_NOT_ROAMING (1) --  Modem is camped on a home network
   9841       - eQMI_LOC_PHONE_ROAMING (2) --  Modem is camped on a roaming network
   9842  */
   9843 
   9844   /* Optional */
   9845   /*  Cell Frequency */
   9846   uint8_t freq_valid;  /**< Must be set to true if freq is being passed */
   9847   uint32_t freq;
   9848   /**<   Frequency information of the serving cell. \n
   9849        Valid range: 0 to 16383 \n
   9850        Refer to TS 25.331 \hyperref[S7]{[S7]}. */
   9851 
   9852   /* Optional */
   9853   /*  Primary Scrambling Code */
   9854   uint8_t psc_valid;  /**< Must be set to true if psc is being passed */
   9855   uint32_t psc;
   9856   /**<   Primary scrambling code of the serving cell. \n
   9857        Valid range: 0 to 511 \n
   9858        Refer to \hyperref[S7]{[S7]}. */
   9859 }qmiLocInjectWCDMACellInfoReqMsgT_v02;  /* Message */
   9860 /**
   9861     @}
   9862   */
   9863 
   9864 /** @addtogroup loc_qmi_messages
   9865     @{
   9866   */
   9867 /** Indication Message; Injects WCDMA cell information into the location
   9868                     engine. */
   9869 typedef struct {
   9870 
   9871   /* Mandatory */
   9872   /*  Inject WCDMA Cell Info Status */
   9873   qmiLocStatusEnumT_v02 status;
   9874   /**<   Status of the Inject WCDMA Cell Info request.
   9875 
   9876  Valid values: \n
   9877       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   9878       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   9879       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   9880       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   9881       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   9882       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   9883       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   9884       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   9885       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   9886       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   9887       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   9888 }qmiLocInjectWCDMACellInfoIndMsgT_v02;  /* Message */
   9889 /**
   9890     @}
   9891   */
   9892 
   9893 /** @addtogroup loc_qmi_aggregates
   9894     @{
   9895   */
   9896 typedef struct {
   9897 
   9898   uint32_t mcc;
   9899   /**<   TDSCDMA mobile country code. Refer to ITU-T E.212 \hyperref[S6]{[S6]}. */
   9900 
   9901   uint32_t mnc;
   9902   /**<   TDSCDMA mobile network code. Refer to \hyperref[S6]{[S6]}. */
   9903 
   9904   uint32_t cid;
   9905   /**<   TDSCDMA cell identity. Refer to TS 25.331 \hyperref[S7]{[S7]}. */
   9906 
   9907   uint32_t lac;
   9908   /**<   TDSCDMA location area code. Refer to \hyperref[S6]{[S6]}. */
   9909 }qmiLocTDSCDMACellIdStructT_v02;  /* Type */
   9910 /**
   9911     @}
   9912   */
   9913 
   9914 /** @addtogroup loc_qmi_messages
   9915     @{
   9916   */
   9917 /** Request Message; Injects TDSCDMA cell information into the location
   9918                     engine. */
   9919 typedef struct {
   9920 
   9921   /* Mandatory */
   9922   /*  TDSCDMA Cell ID */
   9923   qmiLocTDSCDMACellIdStructT_v02 tdscdmaCellId;
   9924   /**<   \n Identifies the TDSCDMA cell on which the device is currently camped. */
   9925 
   9926   /* Mandatory */
   9927   /*  Roaming Status */
   9928   qmiLocRoamingStatusEnumT_v02 roamingStatus;
   9929   /**<   Indicates whether the device is roaming.
   9930 
   9931  Valid values: \n
   9932       - eQMI_LOC_PHONE_NOT_ROAMING (1) --  Modem is camped on a home network
   9933       - eQMI_LOC_PHONE_ROAMING (2) --  Modem is camped on a roaming network
   9934  */
   9935 
   9936   /* Optional */
   9937   /*  Cell Frequency */
   9938   uint8_t freq_valid;  /**< Must be set to true if freq is being passed */
   9939   uint32_t freq;
   9940   /**<   Frequency information of the serving cell. \n
   9941        Valid range: 0 to 16383 \n
   9942        Refer to \hyperref[S7]{[S7]}. */
   9943 }qmiLocInjectTDSCDMACellInfoReqMsgT_v02;  /* Message */
   9944 /**
   9945     @}
   9946   */
   9947 
   9948 /** @addtogroup loc_qmi_messages
   9949     @{
   9950   */
   9951 /** Indication Message; Injects TDSCDMA cell information into the location
   9952                     engine. */
   9953 typedef struct {
   9954 
   9955   /* Mandatory */
   9956   /*  Inject TDSCDMA Cell Info Status */
   9957   qmiLocStatusEnumT_v02 status;
   9958   /**<   Status of the Inject TDSCDMA Cell Info request.
   9959 
   9960  Valid values: \n
   9961       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   9962       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   9963       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   9964       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   9965       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   9966       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   9967       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   9968       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   9969       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   9970       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   9971       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   9972 }qmiLocInjectTDSCDMACellInfoIndMsgT_v02;  /* Message */
   9973 /**
   9974     @}
   9975   */
   9976 
   9977 /** @addtogroup loc_qmi_messages
   9978     @{
   9979   */
   9980 /** Request Message; Injects the phone's subscriber ID into the location engine. */
   9981 typedef struct {
   9982 
   9983   /* Optional */
   9984   /*  Preferred IMSI */
   9985   uint8_t preferredIMSI_valid;  /**< Must be set to true if preferredIMSI is being passed */
   9986   uint64_t preferredIMSI;
   9987   /**<   IMSI number of the preferred RAT. Refer to \hyperref[S6]{[S6]}.*/
   9988 
   9989   /* Optional */
   9990   /*  Preferred MSISDN */
   9991   uint8_t preferredMSISDN_valid;  /**< Must be set to true if preferredMSISDN is being passed */
   9992   uint64_t preferredMSISDN;
   9993   /**<   MSISDN number of the preferred RAT. Refer to \hyperref[S6]{[S6]}.*/
   9994 }qmiLocInjectSubscriberIDReqMsgT_v02;  /* Message */
   9995 /**
   9996     @}
   9997   */
   9998 
   9999 /** @addtogroup loc_qmi_messages
   10000     @{
   10001   */
   10002 /** Indication Message; Injects the phone's subscriber ID into the location engine. */
   10003 typedef struct {
   10004 
   10005   /* Mandatory */
   10006   /*  Inject Subscriber ID Status */
   10007   qmiLocStatusEnumT_v02 status;
   10008   /**<   Status of the Inject Subscriber ID request.
   10009 
   10010  Valid values: \n
   10011       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   10012       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   10013       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   10014       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   10015       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   10016       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   10017       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   10018       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   10019       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   10020       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   10021       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   10022 }qmiLocInjectSubscriberIDIndMsgT_v02;  /* Message */
   10023 /**
   10024     @}
   10025   */
   10026 
   10027 /** @addtogroup loc_qmi_enums
   10028     @{
   10029   */
   10030 typedef enum {
   10031   QMILOCINJECTEDNETWORKINITIATEDMESSAGETYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   10032   eQMI_LOC_INJECTED_NETWORK_INITIATED_MESSAGE_TYPE_SUPL_V02 = 0, /**<  SUPL network-initiated message is being injected.  */
   10033   QMILOCINJECTEDNETWORKINITIATEDMESSAGETYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   10034 }qmiLocInjectedNetworkInitiatedMessageTypeEnumT_v02;
   10035 /**
   10036     @}
   10037   */
   10038 
   10039 /** @addtogroup loc_qmi_messages
   10040     @{
   10041   */
   10042 /** Request Message; Injects a network-initiated message into the location
   10043                     engine. */
   10044 typedef struct {
   10045 
   10046   /* Mandatory */
   10047   /*  Injected Network Initiated Message Type */
   10048   qmiLocInjectedNetworkInitiatedMessageTypeEnumT_v02 injectedNIMessageType;
   10049   /**<   Type of the network-initiated message being injected.
   10050 
   10051  Valid values: \n
   10052       - eQMI_LOC_INJECTED_NETWORK_INITIATED_MESSAGE_TYPE_SUPL (0) --  SUPL network-initiated message is being injected.  */
   10053 
   10054   /* Mandatory */
   10055   /*  Injected Network Initiated Message */
   10056   uint32_t injectedNIMessage_len;  /**< Must be set to # of elements in injectedNIMessage */
   10057   uint8_t injectedNIMessage[QMI_LOC_MAX_INJECTED_NETWORK_INITIATED_MESSAGE_LENGTH_V02];
   10058   /**<   Network-initiated message body.
   10059        If the inject NI message type is TYPE_SUPL, the message contains
   10060        a SUPL INIT message as defined in OMA-TS-ULP-V2_0-20110527-C \hyperref[S5]{[S5]}. */
   10061 }qmiLocInjectNetworkInitiatedMessageReqMsgT_v02;  /* Message */
   10062 /**
   10063     @}
   10064   */
   10065 
   10066 /** @addtogroup loc_qmi_messages
   10067     @{
   10068   */
   10069 /** Indication Message; Injects a network-initiated message into the location
   10070                     engine. */
   10071 typedef struct {
   10072 
   10073   /* Mandatory */
   10074   /*  Inject Network Initiated Message Status */
   10075   qmiLocStatusEnumT_v02 status;
   10076   /**<   Status of the Inject Network Initiated Message request.
   10077 
   10078  Valid values: \n
   10079       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   10080       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   10081       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   10082       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   10083       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   10084       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   10085       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   10086       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   10087       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   10088       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   10089       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   10090 }qmiLocInjectNetworkInitiatedMessageIndMsgT_v02;  /* Message */
   10091 /**
   10092     @}
   10093   */
   10094 
   10095 /** @addtogroup loc_qmi_messages
   10096     @{
   10097   */
   10098 /** Request Message; Notifies the location engine that the device is out of
   10099                     service. */
   10100 typedef struct {
   10101   /* This element is a placeholder to prevent the declaration of
   10102      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   10103   char __placeholder;
   10104 }qmiLocWWANOutOfServiceNotificationReqMsgT_v02;
   10105 
   10106   /* Message */
   10107 /**
   10108     @}
   10109   */
   10110 
   10111 /** @addtogroup loc_qmi_messages
   10112     @{
   10113   */
   10114 /** Indication Message; Notifies the location engine that the device is out of
   10115                     service. */
   10116 typedef struct {
   10117 
   10118   /* Mandatory */
   10119   /*  Notify WWAN Out of Service Status */
   10120   qmiLocStatusEnumT_v02 status;
   10121   /**<   Status of the Notify WWAN Out of Service request.
   10122 
   10123  Valid values: \n
   10124       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   10125       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   10126       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   10127       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   10128       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   10129       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   10130       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   10131       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   10132       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   10133       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   10134       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   10135  */
   10136 }qmiLocWWANOutOfServiceNotificationIndMsgT_v02;  /* Message */
   10137 /**
   10138     @}
   10139   */
   10140 
   10141 /** @addtogroup loc_qmi_messages
   10142     @{
   10143   */
   10144 /** Request Message; Used by the control point to inject pedometer data
   10145                     into the location engine. */
   10146 typedef struct {
   10147 
   10148   /* Mandatory */
   10149   /*  Time Source */
   10150   qmiLocSensorDataTimeSourceEnumT_v02 timeSource;
   10151   /**<   Time source for the pedometer. The location service uses
   10152  this field to identify the time reference used in the
   10153  pedometer data time stamp.
   10154 
   10155  Valid values: \n
   10156       - eQMI_LOC_SENSOR_TIME_SOURCE_UNSPECIFIED (0) --  Sensor time source is unspecified
   10157       - eQMI_LOC_SENSOR_TIME_SOURCE_COMMON (1) --  Time source is common between the sensors and
   10158        the location engine
   10159  */
   10160 
   10161   /* Mandatory */
   10162   /*  Pedometer Report Timestamp */
   10163   uint32_t timestamp;
   10164   /**<   Time stamp of the last step event in this report, i.e., the time stamp
   10165        of the step event that caused this report to be generated.
   10166        The time stamp is in the time reference scale that is
   10167        used by the pedometer time source. \n
   10168        - Units: Milliseconds */
   10169 
   10170   /* Mandatory */
   10171   /*  Time Interval */
   10172   uint32_t timeInterval;
   10173   /**<   Time interval during which the step count was calculated. Subtracting
   10174        timeInterval from the timestamp field yields the time when
   10175        the step detection for the first step in this report started. \n
   10176        - Units: Milliseconds */
   10177 
   10178   /* Mandatory */
   10179   /*  Step Count */
   10180   uint32_t stepCount;
   10181   /**<   Number of steps counted during the time interval. */
   10182 
   10183   /* Optional */
   10184   /*  Step Confidence */
   10185   uint8_t stepConfidence_valid;  /**< Must be set to true if stepConfidence is being passed */
   10186   uint8_t stepConfidence;
   10187   /**<   Confidence associated with the step. This field is only applicable
   10188        for a single step report, i.e., if the step count is one. \n
   10189        - Range: 0 to 100 \n
   10190        \textbf{Note:} The report is ignored if confidence is 0. */
   10191 
   10192   /* Optional */
   10193   /*  Step Count Uncertainty */
   10194   uint8_t stepCountUncertainty_valid;  /**< Must be set to true if stepCountUncertainty is being passed */
   10195   float stepCountUncertainty;
   10196   /**<   Uncertainty (in steps) associated with the step count. */
   10197 
   10198   /* Optional */
   10199   /*  Step Rate */
   10200   uint8_t stepRate_valid;  /**< Must be set to true if stepRate is being passed */
   10201   float stepRate;
   10202   /**<   Current estimate for the rate of steps per second. \n
   10203        - Units: steps/second \n
   10204        - Range: >= 0.0 */
   10205 }qmiLocPedometerReportReqMsgT_v02;  /* Message */
   10206 /**
   10207     @}
   10208   */
   10209 
   10210 /** @addtogroup loc_qmi_messages
   10211     @{
   10212   */
   10213 /** Indication Message; Used by the control point to inject pedometer data
   10214                     into the location engine. */
   10215 typedef struct {
   10216 
   10217   /* Mandatory */
   10218   /*  Status of Pedometer Report Request */
   10219   qmiLocStatusEnumT_v02 status;
   10220   /**<   Status of the Pedometer Report request.
   10221 
   10222  Valid values: \n
   10223       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   10224       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   10225       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   10226       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   10227       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   10228       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   10229       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   10230       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   10231       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   10232       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   10233       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   10234  */
   10235 }qmiLocPedometerReportIndMsgT_v02;  /* Message */
   10236 /**
   10237     @}
   10238   */
   10239 
   10240 /** @addtogroup loc_qmi_messages
   10241     @{
   10242   */
   10243 /** Request Message; Used by the control point to get the batching size. */
   10244 typedef struct {
   10245 
   10246   /* Mandatory */
   10247   /*  Transaction ID */
   10248   uint32_t transactionId;
   10249   /**<   Identifies the transaction. The transaction ID is returned in the Get
   10250        Batch Size indication. */
   10251 
   10252   /* Mandatory */
   10253   /*  Requested Batch Size */
   10254   uint32_t batchSize;
   10255   /**<   Request the service with the number of location fixes to be batched. */
   10256 }qmiLocGetBatchSizeReqMsgT_v02;  /* Message */
   10257 /**
   10258     @}
   10259   */
   10260 
   10261 /** @addtogroup loc_qmi_messages
   10262     @{
   10263   */
   10264 /** Indication Message; Used by the control point to get the batching size. */
   10265 typedef struct {
   10266 
   10267   /* Mandatory */
   10268   /*  Get Batch Size Status */
   10269   qmiLocStatusEnumT_v02 status;
   10270   /**<   Status of the Get Batch Size request.
   10271 
   10272  Valid values: \n
   10273       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   10274       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   10275       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   10276       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   10277       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   10278       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   10279       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   10280       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   10281       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   10282       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   10283       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   10284  */
   10285 
   10286   /* Mandatory */
   10287   /*  Transaction ID */
   10288   uint32_t transactionId;
   10289   /**<   Transaction ID that was specified in the Get Batch
   10290        Size request.
   10291        */
   10292 
   10293   /* Mandatory */
   10294   /*  Batch Size Supported */
   10295   uint32_t batchSize;
   10296   /**<   Number of location fixes that the service is able to batch.
   10297        The batch size value is returned as 0 in the case of a failure status.
   10298   */
   10299 }qmiLocGetBatchSizeIndMsgT_v02;  /* Message */
   10300 /**
   10301     @}
   10302   */
   10303 
   10304 /** @addtogroup loc_qmi_messages
   10305     @{
   10306   */
   10307 /** Request Message; Used by the control point to initiate a batching session. */
   10308 typedef struct {
   10309 
   10310   /* Optional */
   10311   /*  Minimum Interval Between Position Reports */
   10312   uint8_t minInterval_valid;  /**< Must be set to true if minInterval is being passed */
   10313   uint32_t minInterval;
   10314   /**<   Minimum time interval, specified by the control point, that must elapse between
   10315        position reports. \n
   10316        - Units: milliseconds \n
   10317        - Default: 60000 ms
   10318   */
   10319 
   10320   /* Optional */
   10321   /*  Horizontal Accuracy Level */
   10322   uint8_t horizontalAccuracyLevel_valid;  /**< Must be set to true if horizontalAccuracyLevel is being passed */
   10323   qmiLocAccuracyLevelEnumT_v02 horizontalAccuracyLevel;
   10324   /**<   Specifies the horizontal accuracy level required by the control point.
   10325  If not specified, accuracy defaults to LOW.
   10326 
   10327  Valid values: \n
   10328       - eQMI_LOC_ACCURACY_LOW (1) --  Low accuracy
   10329       - eQMI_LOC_ACCURACY_MED (2) --  Medium accuracy
   10330       - eQMI_LOC_ACCURACY_HIGH (3) --  High accuracy
   10331  */
   10332 
   10333   /* Optional */
   10334   /*  Fix Session Timeout Period */
   10335   uint8_t fixSessionTimeout_valid;  /**< Must be set to true if fixSessionTimeout is being passed */
   10336   uint32_t fixSessionTimeout;
   10337   /**<   Configures the fix session timeout duration. \n
   10338        - Units: Milliseconds \n
   10339        - Default: 20,000 ms
   10340   */
   10341 }qmiLocStartBatchingReqMsgT_v02;  /* Message */
   10342 /**
   10343     @}
   10344   */
   10345 
   10346 /** @addtogroup loc_qmi_messages
   10347     @{
   10348   */
   10349 /** Indication Message; Used by the control point to initiate a batching session. */
   10350 typedef struct {
   10351 
   10352   /* Mandatory */
   10353   /*  Start Batching Status */
   10354   qmiLocStatusEnumT_v02 status;
   10355   /**<   Status of the Start Batching request.
   10356 
   10357  Valid values: \n
   10358       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   10359       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   10360       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   10361       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   10362       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   10363       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   10364       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   10365       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   10366       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   10367       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   10368       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   10369  */
   10370 }qmiLocStartBatchingIndMsgT_v02;  /* Message */
   10371 /**
   10372     @}
   10373   */
   10374 
   10375 /** @addtogroup loc_qmi_messages
   10376     @{
   10377   */
   10378 /** Indication Message; Used to notify the control point that the batched buffer is full. */
   10379 typedef struct {
   10380 
   10381   /* Mandatory */
   10382   /*  Number of Entries in the Batch During Full Event */
   10383   uint32_t batchCount;
   10384   /**<   Number of entries in the batch during a full event.
   10385   */
   10386 }qmiLocEventBatchFullIndMsgT_v02;  /* Message */
   10387 /**
   10388     @}
   10389   */
   10390 
   10391 typedef uint64_t qmiLocBatchedReportValidFieldsMaskT_v02;
   10392 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_LATITUDE_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000001ull) /**<  Latitude field is valid for this fix  */
   10393 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_LONGITUDE_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000002ull) /**<  Longitude field is valid for this fix  */
   10394 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_HOR_CIR_UNC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000004ull) /**<  Horizontal circular uncertainty field is valid for this fix  */
   10395 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_HOR_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000008ull) /**<  Horizontal speed field is valid for this fix  */
   10396 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_UNC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000010ull) /**<  Speed uncertainty field is valid for this fix  */
   10397 #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  */
   10398 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_VER_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000040ull) /**<  Vertical speed field is valid for this fix  */
   10399 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_HEADING_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000080ull) /**<  Heading field is valid for this fix  */
   10400 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_HEADING_UNC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000100ull) /**<  Heading uncertainty field is valid for this fix  */
   10401 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_TECH_MASK_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000200ull) /**<  Technology source mask field is valid for this fix  */
   10402 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_TIMESTAMP_UTC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000400ull) /**<  UTC timestamp field is valid for this fix  */
   10403 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_TIME_UNC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00000800ull) /**<  Time uncertainty field is valid for this fix  */
   10404 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_MAGNETIC_DEV_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00001000ull) /**<  Magnetic deviation field is valid for this fix  */
   10405 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_VERT_UNC_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00002000ull) /**<  Vertical uncertainty field is valid for this fix  */
   10406 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_HOR_CONF_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00004000ull) /**<  Horizontal confidence field is valid for this fix  */
   10407 #define QMI_LOC_BATCHED_REPORT_MASK_VALID_TIMESTAMP_GPS_V02 ((qmiLocBatchedReportValidFieldsMaskT_v02)0x00008000ull) /**<  GPS timestamp field is valid for this fix  */
   10408 /** @addtogroup loc_qmi_aggregates
   10409     @{
   10410   */
   10411 typedef struct {
   10412 
   10413   uint32_t fixId;
   10414   /**<   Fix count for the session. The count starts at 0 and increments by one for
   10415   each successive batched position report for a particular session. */
   10416 
   10417   qmiLocBatchedReportValidFieldsMaskT_v02 validFields;
   10418   /**<   Mask of all valid fields for this fix.
   10419  Valid bitmasks: \n
   10420       - QMI_LOC_BATCHED_REPORT_MASK_VALID_LATITUDE (0x00000001) --  Latitude field is valid for this fix
   10421       - QMI_LOC_BATCHED_REPORT_MASK_VALID_LONGITUDE (0x00000002) --  Longitude field is valid for this fix
   10422       - QMI_LOC_BATCHED_REPORT_MASK_VALID_HOR_CIR_UNC (0x00000004) --  Horizontal circular uncertainty field is valid for this fix
   10423       - QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_HOR (0x00000008) --  Horizontal speed field is valid for this fix
   10424       - QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_UNC (0x00000010) --  Speed uncertainty field is valid for this fix
   10425       - QMI_LOC_BATCHED_REPORT_MASK_VALID_ALT_WRT_ELP (0x00000020) --  Altitude with respect to ellipsoid field is valid for this fix
   10426       - QMI_LOC_BATCHED_REPORT_MASK_VALID_SPEED_VER (0x00000040) --  Vertical speed field is valid for this fix
   10427       - QMI_LOC_BATCHED_REPORT_MASK_VALID_HEADING (0x00000080) --  Heading field is valid for this fix
   10428       - QMI_LOC_BATCHED_REPORT_MASK_VALID_HEADING_UNC (0x00000100) --  Heading uncertainty field is valid for this fix
   10429       - QMI_LOC_BATCHED_REPORT_MASK_VALID_TECH_MASK (0x00000200) --  Technology source mask field is valid for this fix
   10430       - QMI_LOC_BATCHED_REPORT_MASK_VALID_TIMESTAMP_UTC (0x00000400) --  UTC timestamp field is valid for this fix
   10431       - QMI_LOC_BATCHED_REPORT_MASK_VALID_TIME_UNC (0x00000800) --  Time uncertainty field is valid for this fix
   10432       - QMI_LOC_BATCHED_REPORT_MASK_VALID_MAGNETIC_DEV (0x00001000) --  Magnetic deviation field is valid for this fix
   10433       - QMI_LOC_BATCHED_REPORT_MASK_VALID_VERT_UNC (0x00002000) --  Vertical uncertainty field is valid for this fix
   10434       - QMI_LOC_BATCHED_REPORT_MASK_VALID_HOR_CONF (0x00004000) --  Horizontal confidence field is valid for this fix
   10435       - QMI_LOC_BATCHED_REPORT_MASK_VALID_TIMESTAMP_GPS (0x00008000) --  GPS timestamp field is valid for this fix
   10436  */
   10437 
   10438   double latitude;
   10439   /**<   Latitude (specified in WGS84 datum).
   10440        \begin{itemize1}
   10441        \item    Type: Floating point
   10442        \item    Units: Degrees
   10443        \item    Range: -90.0 to 90.0   \begin{itemize1}
   10444          \item    Positive values indicate northern latitude
   10445          \item    Negative values indicate southern latitude
   10446        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
   10447 
   10448   double longitude;
   10449   /**<   Longitude (specified in WGS84 datum).
   10450        \begin{itemize1}
   10451        \item    Type: Floating point
   10452        \item    Units: Degrees
   10453        \item    Range: -180.0 to 180.0   \begin{itemize1}
   10454          \item    Positive values indicate eastern longitude
   10455          \item    Negative values indicate western longitude
   10456        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
   10457 
   10458   float horUncCircular;
   10459   /**<   Horizontal position uncertainty (circular).\n
   10460        - Units: Meters */
   10461 
   10462   float speedHorizontal;
   10463   /**<   Horizontal speed.\n
   10464        - Units: Meters/second */
   10465 
   10466   float speedUnc;
   10467   /**<   3-D Speed uncertainty.\n
   10468        - Units: Meters/second */
   10469 
   10470   float altitudeWrtEllipsoid;
   10471   /**<   Altitude with respect to the WGS84 ellipsoid.\n
   10472        - Units: Meters \n
   10473        - Range: -500 to 15883 */
   10474 
   10475   float speedVertical;
   10476   /**<   Vertical speed.\n
   10477          - Units: Meters/second */
   10478 
   10479   float heading;
   10480   /**<   Heading.\n
   10481          - Units: Degrees \n
   10482          - Range: 0 to 359.999  */
   10483 
   10484   float headingUnc;
   10485   /**<   Heading uncertainty.\n
   10486        - Units: Degrees \n
   10487        - Range: 0 to 359.999 */
   10488 
   10489   qmiLocPosTechMaskT_v02 technologyMask;
   10490   /**<   Technology used in computing this fix.
   10491  Valid bitmasks: \n
   10492       - QMI_LOC_POS_TECH_MASK_SATELLITE (0x00000001) --  Satellites were used to generate the fix
   10493       - QMI_LOC_POS_TECH_MASK_CELLID (0x00000002) --  Cell towers were used to generate the fix
   10494       - QMI_LOC_POS_TECH_MASK_WIFI (0x00000004) --  Wi-Fi access points were used to generate the fix
   10495       - QMI_LOC_POS_TECH_MASK_SENSORS (0x00000008) --  Sensors were used to generate the fix
   10496       - QMI_LOC_POS_TECH_MASK_REFERENCE_LOCATION (0x00000010) --  Reference Location was used to generate the fix
   10497       - QMI_LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION (0x00000020) --  Coarse position injected into the location engine was used to
   10498         generate the fix
   10499       - QMI_LOC_POS_TECH_MASK_AFLT (0x00000040) --  AFLT was used to generate the fix
   10500       - QMI_LOC_POS_TECH_MASK_HYBRID (0x00000080) --  GNSS and network-provided measurements were used to
   10501         generate the fix
   10502  */
   10503 
   10504   uint64_t timestampUtc;
   10505   /**<   UTC timestamp. \n
   10506        - Units: Milliseconds since Jan. 1, 1970 */
   10507 
   10508   float timeUnc;
   10509   /**<   Time uncertainty. \n
   10510        - Units: Milliseconds */
   10511 
   10512   float magneticDeviation;
   10513   /**<   Difference between the bearing to true north and the bearing shown
   10514       on a magnetic compass. The deviation is positive when the magnetic
   10515       north is east of true north. */
   10516 
   10517   float vertUnc;
   10518   /**<   Vertical uncertainty.\n
   10519        - Units: Meters */
   10520 
   10521   uint8_t horConfidence;
   10522   /**<   Horizontal confidence.
   10523        - Units: Percent
   10524        - Range: 0 to 99 */
   10525 
   10526   qmiLocGPSTimeStructT_v02 gpsTime;
   10527   /**<   Number of weeks since Jan. 5, 1980, and milliseconds into the current week. */
   10528 }qmiLocBatchedReportStructT_v02;  /* Type */
   10529 /**
   10530     @}
   10531   */
   10532 
   10533 /** @addtogroup loc_qmi_messages
   10534     @{
   10535   */
   10536 /** Indication Message; Used to notify the control point with the live batched
   10537                     position report. */
   10538 typedef struct {
   10539 
   10540   /* Mandatory */
   10541   /*  Batched Position Report */
   10542   qmiLocBatchedReportStructT_v02 liveBatchedReport;
   10543   /**<   \n Live position report that is also batched. */
   10544 }qmiLocEventLiveBatchedPositionReportIndMsgT_v02;  /* Message */
   10545 /**
   10546     @}
   10547   */
   10548 
   10549 /** @addtogroup loc_qmi_messages
   10550     @{
   10551   */
   10552 /** Request Message; Used by the control point to retrieve fixes from the batch. */
   10553 typedef struct {
   10554 
   10555   /* Mandatory */
   10556   /*  Number of Fix Entries to be Retrieved from the Batch */
   10557   uint32_t numberOfEntries;
   10558   /**<   Number of fix entries to be retrieved from the batch. \n
   10559   Maximum limit -- QMI_LOC_READ_FROM_BATCH_MAX_SIZE.
   10560   */
   10561 
   10562   /* Mandatory */
   10563   /*  Transaction ID */
   10564   uint32_t transactionId;
   10565   /**<   Identifies the transaction. The transaction ID is returned in the Read
   10566        from Batch indication. */
   10567 
   10568   /* Optional */
   10569   /*  Bread Crumb Buffer Id */
   10570   uint8_t bufferId_valid;  /**< Must be set to true if bufferId is being passed */
   10571   uint16_t bufferId;
   10572   /**<   The buffer id that was received by the control point in
   10573        QMI_LOC_EVENT_DBT_POSITION_REPORT*/
   10574 }qmiLocReadFromBatchReqMsgT_v02;  /* Message */
   10575 /**
   10576     @}
   10577   */
   10578 
   10579 /** @addtogroup loc_qmi_messages
   10580     @{
   10581   */
   10582 /** Indication Message; Used by the control point to retrieve fixes from the batch. */
   10583 typedef struct {
   10584 
   10585   /* Mandatory */
   10586   /*  Read from Batch Status */
   10587   qmiLocStatusEnumT_v02 status;
   10588   /**<   Status of the Read from Batch request.
   10589 
   10590  Valid values: \n
   10591       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   10592       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   10593       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   10594       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   10595       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   10596       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   10597       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   10598       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   10599       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   10600       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   10601       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   10602  */
   10603 
   10604   /* Mandatory */
   10605   /*  Transaction ID */
   10606   uint32_t transactionId;
   10607   /**<   Transaction ID that was specified in the Read from Batch
   10608        request.
   10609        */
   10610 
   10611   /* Optional */
   10612   /*  Number of Fix Entries Returned from the Batch */
   10613   uint8_t numberOfEntries_valid;  /**< Must be set to true if numberOfEntries is being passed */
   10614   uint32_t numberOfEntries;
   10615   /**<   Number of fix entries returned from the batch. */
   10616 
   10617   /* Optional */
   10618   /*  List of Batched Position Reports Returned */
   10619   uint8_t batchedReportList_valid;  /**< Must be set to true if batchedReportList is being passed */
   10620   uint32_t batchedReportList_len;  /**< Must be set to # of elements in batchedReportList */
   10621   qmiLocBatchedReportStructT_v02 batchedReportList[QMI_LOC_READ_FROM_BATCH_MAX_SIZE_V02];
   10622   /**<   \n List of fix reports returned from the batch. */
   10623 }qmiLocReadFromBatchIndMsgT_v02;  /* Message */
   10624 /**
   10625     @}
   10626   */
   10627 
   10628 /** @addtogroup loc_qmi_messages
   10629     @{
   10630   */
   10631 /** Request Message; Used by the control point to stop an ongoing batching session. */
   10632 typedef struct {
   10633 
   10634   /* Mandatory */
   10635   /*  Transaction ID */
   10636   uint32_t transactionId;
   10637   /**<   Transaction ID of the request. */
   10638 }qmiLocStopBatchingReqMsgT_v02;  /* Message */
   10639 /**
   10640     @}
   10641   */
   10642 
   10643 /** @addtogroup loc_qmi_messages
   10644     @{
   10645   */
   10646 /** Indication Message; Used by the control point to stop an ongoing batching session. */
   10647 typedef struct {
   10648 
   10649   /* Mandatory */
   10650   /*  Stop Batching Status */
   10651   qmiLocStatusEnumT_v02 status;
   10652   /**<   Status of the Stop Batching request.
   10653 
   10654  Valid values: \n
   10655       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   10656       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   10657       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   10658       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   10659       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   10660       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   10661       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   10662       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   10663       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   10664       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   10665       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   10666  */
   10667 
   10668   /* Mandatory */
   10669   /*  Transaction ID */
   10670   uint32_t transactionId;
   10671   /**<   Transaction ID that was specified in the Stop Batching request.
   10672   */
   10673 }qmiLocStopBatchingIndMsgT_v02;  /* Message */
   10674 /**
   10675     @}
   10676   */
   10677 
   10678 /** @addtogroup loc_qmi_messages
   10679     @{
   10680   */
   10681 /** Request Message; Used by the control point to release the batching buffer. */
   10682 typedef struct {
   10683 
   10684   /* Mandatory */
   10685   /*  Transaction ID */
   10686   uint32_t transactionId;
   10687   /**<   Identifies the transaction. */
   10688 }qmiLocReleaseBatchReqMsgT_v02;  /* Message */
   10689 /**
   10690     @}
   10691   */
   10692 
   10693 /** @addtogroup loc_qmi_messages
   10694     @{
   10695   */
   10696 /** Indication Message; Used by the control point to release the batching buffer. */
   10697 typedef struct {
   10698 
   10699   /* Mandatory */
   10700   /*  Release Batch Status */
   10701   qmiLocStatusEnumT_v02 status;
   10702   /**<   Status of the Release Batch request.
   10703 
   10704  Valid values: \n
   10705       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   10706       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   10707       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   10708       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   10709       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   10710       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   10711       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   10712       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   10713       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   10714       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   10715       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   10716  */
   10717 
   10718   /* Mandatory */
   10719   /*  Transaction ID */
   10720   uint32_t transactionId;
   10721   /**<   Transaction ID that was specified in the Release Batch request.
   10722   */
   10723 }qmiLocReleaseBatchIndMsgT_v02;  /* Message */
   10724 /**
   10725     @}
   10726   */
   10727 
   10728 /** @addtogroup loc_qmi_messages
   10729     @{
   10730   */
   10731 /** Indication Message; Requests the control point to inject Wi-Fi AP data. */
   10732 typedef struct {
   10733   /* This element is a placeholder to prevent the declaration of
   10734      an empty struct.  DO NOT USE THIS FIELD UNDER ANY CIRCUMSTANCE */
   10735   char __placeholder;
   10736 }qmiLocEventInjectWifiApDataReqIndMsgT_v02;
   10737 
   10738   /* Message */
   10739 /**
   10740     @}
   10741   */
   10742 
   10743 /** @addtogroup loc_qmi_enums
   10744     @{
   10745   */
   10746 typedef enum {
   10747   QMILOCWIFIAPDATADEVICETYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   10748   eQMI_LOC_WIFI_AP_DATA_DEVICE_TYPE_WLAN_802_11_A_V02 = 0, /**<  Wi-Fi AP device is 802.11a.  */
   10749   eQMI_LOC_WIFI_AP_DATA_DEVICE_TYPE_WLAN_802_11_B_V02 = 1, /**<  Wi-Fi AP device is 802.11b.  */
   10750   eQMI_LOC_WIFI_AP_DATA_DEVICE_TYPE_WLAN_802_11_G_V02 = 2, /**<  Wi-Fi AP device is 802.11g.  */
   10751   QMILOCWIFIAPDATADEVICETYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   10752 }qmiLocWifiApDataDeviceTypeEnumT_v02;
   10753 /**
   10754     @}
   10755   */
   10756 
   10757 /** @addtogroup loc_qmi_enums
   10758     @{
   10759   */
   10760 typedef enum {
   10761   QMILOCWIFIAPDATARTDUNITTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   10762   eQMI_LOC_WIFI_AP_DATA_RTD_UNIT_MICROSEC_V02 = 0, /**<  Wi-Fi AP data Round-trip Delay (RTD) is in microseconds.  */
   10763   eQMI_LOC_WIFI_AP_DATA_RTD_UNIT_HUNDREDS_OF_NANOSEC_V02 = 1, /**<  Wi-Fi AP data RTD is in hundreds of nanoseconds.  */
   10764   eQMI_LOC_WIFI_AP_DATA_RTD_UNIT_TENS_OF_NANOSEC_V02 = 2, /**<  Wi-Fi AP data RTD is in tens of nanoseconds.  */
   10765   eQMI_LOC_WIFI_AP_DATA_RTD_UNIT_NANOSEC_V02 = 3, /**<  Wi-Fi AP data RTD is in nanoseconds.  */
   10766   eQMI_LOC_WIFI_AP_DATA_RTD_UNIT_TENTH_OF_NANOSEC_V02 = 4, /**<  Wi-Fi AP data RTD is in tenths of nanoseconds.  */
   10767   QMILOCWIFIAPDATARTDUNITTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   10768 }qmiLocWifiApDataRtdUnitTypeEnumT_v02;
   10769 /**
   10770     @}
   10771   */
   10772 
   10773 typedef uint32_t qmiLocWifiApDataMaskT_v02;
   10774 #define QMI_LOC_WIFI_APDATA_MASK_AP_TRANSMIT_POWER_V02 ((qmiLocWifiApDataMaskT_v02)0x00000001) /**<  AP transmit power is valid  */
   10775 #define QMI_LOC_WIFI_APDATA_MASK_AP_ANTENNA_GAIN_V02 ((qmiLocWifiApDataMaskT_v02)0x00000002) /**<  AP antenna gain is valid  */
   10776 #define QMI_LOC_WIFI_APDATA_MASK_AP_SNR_V02 ((qmiLocWifiApDataMaskT_v02)0x00000004) /**<  AP signal-to-noise ratio is valid  */
   10777 #define QMI_LOC_WIFI_APDATA_MASK_AP_DEVICE_TYPE_V02 ((qmiLocWifiApDataMaskT_v02)0x00000008) /**<  AP device type is valid  */
   10778 #define QMI_LOC_WIFI_APDATA_MASK_AP_RSSI_V02 ((qmiLocWifiApDataMaskT_v02)0x00000010) /**<  AP RSSI is valid  */
   10779 #define QMI_LOC_WIFI_APDATA_MASK_AP_CHANNEL_V02 ((qmiLocWifiApDataMaskT_v02)0x00000020) /**<  AP channel is valid    */
   10780 #define QMI_LOC_WIFI_APDATA_MASK_AP_ROUNDTRIP_DELAY_V02 ((qmiLocWifiApDataMaskT_v02)0x00000040) /**<  AP roundtrip delay is valid    */
   10781 #define QMI_LOC_WIFI_APDATA_MASK_AP_ROUNDTRIP_DELAY_ACCURACY_V02 ((qmiLocWifiApDataMaskT_v02)0x00000080) /**<  AP roundtrip delay accuracy is valid   */
   10782 #define QMI_LOC_WIFI_APDATA_MASK_MOBILE_SNR_V02 ((qmiLocWifiApDataMaskT_v02)0x00000100) /**<  Mobile signal-to-noise ratio is valid   */
   10783 #define QMI_LOC_WIFI_APDATA_MASK_MOBILE_RSSI_V02 ((qmiLocWifiApDataMaskT_v02)0x00000200) /**<  Mobile RSSI is valid  */
   10784 /** @addtogroup loc_qmi_aggregates
   10785     @{
   10786   */
   10787 typedef struct {
   10788 
   10789   qmiLocWifiApDataMaskT_v02 wifiApDataMask;
   10790   /**<   Specifies which Wi-Fi AP scan information types are being used.
   10791 
   10792  Valid values: \n
   10793       - QMI_LOC_WIFI_APDATA_MASK_AP_TRANSMIT_POWER (0x00000001) --  AP transmit power is valid
   10794       - QMI_LOC_WIFI_APDATA_MASK_AP_ANTENNA_GAIN (0x00000002) --  AP antenna gain is valid
   10795       - QMI_LOC_WIFI_APDATA_MASK_AP_SNR (0x00000004) --  AP signal-to-noise ratio is valid
   10796       - QMI_LOC_WIFI_APDATA_MASK_AP_DEVICE_TYPE (0x00000008) --  AP device type is valid
   10797       - QMI_LOC_WIFI_APDATA_MASK_AP_RSSI (0x00000010) --  AP RSSI is valid
   10798       - QMI_LOC_WIFI_APDATA_MASK_AP_CHANNEL (0x00000020) --  AP channel is valid
   10799       - QMI_LOC_WIFI_APDATA_MASK_AP_ROUNDTRIP_DELAY (0x00000040) --  AP roundtrip delay is valid
   10800       - QMI_LOC_WIFI_APDATA_MASK_AP_ROUNDTRIP_DELAY_ACCURACY (0x00000080) --  AP roundtrip delay accuracy is valid
   10801       - QMI_LOC_WIFI_APDATA_MASK_MOBILE_SNR (0x00000100) --  Mobile signal-to-noise ratio is valid
   10802       - QMI_LOC_WIFI_APDATA_MASK_MOBILE_RSSI (0x00000200) --  Mobile RSSI is valid  */
   10803 
   10804   uint8_t macAddress[QMI_LOC_WIFI_MAC_ADDR_LENGTH_V02];
   10805   /**<   MAC address. \n
   10806   Each address is of length QMI_LOC_WIFI_MAC_ADDR_LENGTH.
   10807   */
   10808 
   10809   int32_t apTransmitPower;
   10810   /**<   AP transmit power in dBm.  */
   10811 
   10812   int32_t apAntennaGain;
   10813   /**<   AP antenna gain in dBI. */
   10814 
   10815   int32_t apSignalToNoise;
   10816   /**<   AP SNR received at the mobile device. */
   10817 
   10818   qmiLocWifiApDataDeviceTypeEnumT_v02 apDeviceType;
   10819   /**<   List of AP device types. */
   10820 
   10821   int32_t apRssi;
   10822   /**<   AP signal strength indicator in dBm. */
   10823 
   10824   uint16_t apChannel;
   10825   /**<   AP Wi-Fi channel on which a beacon was received. */
   10826 
   10827   uint32_t apRoundTripDelay;
   10828   /**<   Round trip delay between the mobile device and the AP, in units of
   10829        apRoundTripDelayUnit. */
   10830 
   10831   qmiLocWifiApDataRtdUnitTypeEnumT_v02 apRoundTripDelayUnit;
   10832   /**<   Units of apRoundTripDelay and its accuracy; mandatory if apRoundTripDelay
   10833        is present. */
   10834 
   10835   uint8_t apRoundTripDelayAccuracy;
   10836   /**<   AP's accuracy of round trip delay apRoundTripDelay, in units of
   10837        apRoundTripDelayUnit. */
   10838 
   10839   int32_t mobileSignalToNoise;
   10840   /**<   Mobile SNR received at the AP. */
   10841 
   10842   int32_t mobileRssi;
   10843   /**<   Mobile signal strength at the AP. */
   10844 }qmiLocWifiApDataStructT_v02;  /* Type */
   10845 /**
   10846     @}
   10847   */
   10848 
   10849 /** @addtogroup loc_qmi_messages
   10850     @{
   10851   */
   10852 /** Request Message; Injects Wi-Fi AP data. */
   10853 typedef struct {
   10854 
   10855   /* Mandatory */
   10856   /*  Wi-Fi AP Scan Data */
   10857   uint32_t wifiApInfo_len;  /**< Must be set to # of elements in wifiApInfo */
   10858   qmiLocWifiApDataStructT_v02 wifiApInfo[QMI_LOC_WIFI_MAX_REPORTED_APS_PER_MSG_V02];
   10859   /**<   \n List of Wi-Fi AP scan information entered by the control point. */
   10860 }qmiLocInjectWifiApDataReqMsgT_v02;  /* Message */
   10861 /**
   10862     @}
   10863   */
   10864 
   10865 /** @addtogroup loc_qmi_messages
   10866     @{
   10867   */
   10868 /** Indication Message; Injects Wi-Fi AP data. */
   10869 typedef struct {
   10870 
   10871   /* Mandatory */
   10872   /*  Wi-Fi AP Scan Information Injection Status */
   10873   qmiLocStatusEnumT_v02 status;
   10874   /**<   Status of the Inject Wi-Fi AP Scan Information request.
   10875 
   10876  Valid values: \n
   10877       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   10878       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   10879       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   10880       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   10881       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   10882       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   10883       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   10884       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   10885       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   10886       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   10887       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   10888 }qmiLocInjectWifiApDataIndMsgT_v02;  /* Message */
   10889 /**
   10890     @}
   10891   */
   10892 
   10893 /** @addtogroup loc_qmi_enums
   10894     @{
   10895   */
   10896 typedef enum {
   10897   QMILOCWIFIACCESSPOINTATTACHSTATESENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   10898   eQMI_LOC_WIFI_ACCESS_POINT_ATTACHED_V02 = 0, /**<  Attached to an access point  */
   10899   eQMI_LOC_WIFI_ACCESS_POINT_DETACHED_V02 = 1, /**<  Detached from an access point  */
   10900   eQMI_LOC_WIFI_ACCESS_POINT_HANDOVER_V02 = 2, /**<  Handed over to another access point  */
   10901   QMILOCWIFIACCESSPOINTATTACHSTATESENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   10902 }qmiLocWifiAccessPointAttachStatesEnumT_v02;
   10903 /**
   10904     @}
   10905   */
   10906 
   10907 /** @addtogroup loc_qmi_messages
   10908     @{
   10909   */
   10910 /** Request Message; Used by the control point to inject the Wi-Fi attachment status. */
   10911 typedef struct {
   10912 
   10913   /* Mandatory */
   10914   /*  Attach State */
   10915   qmiLocWifiAccessPointAttachStatesEnumT_v02 attachState;
   10916   /**<   Wi.Fi access point attach state.
   10917 
   10918  Valid values: \n
   10919       - eQMI_LOC_WIFI_ACCESS_POINT_ATTACHED (0) --  Attached to an access point
   10920       - eQMI_LOC_WIFI_ACCESS_POINT_DETACHED (1) --  Detached from an access point
   10921       - eQMI_LOC_WIFI_ACCESS_POINT_HANDOVER (2) --  Handed over to another access point  */
   10922 
   10923   /* Optional */
   10924   /*  Access Point MAC Address */
   10925   uint8_t accessPointMacAddress_valid;  /**< Must be set to true if accessPointMacAddress is being passed */
   10926   uint8_t accessPointMacAddress[QMI_LOC_WIFI_MAC_ADDR_LENGTH_V02];
   10927   /**<   MAC address of the access point to which the Wi-Fi is attached.
   10928         This must always be specified if the attach state is Handover.
   10929         */
   10930 
   10931   /* Optional */
   10932   /*  Wi-Fi AP SSID String */
   10933   uint8_t wifiApSsid_valid;  /**< Must be set to true if wifiApSsid is being passed */
   10934   char wifiApSsid[QMI_LOC_MAX_WIFI_AP_SSID_STR_LENGTH_V02 + 1];
   10935   /**<   The NULL-terminated SSID of the Wi-Fi AP. Its maximum length according to the ASCII standard is 32 octets. */
   10936 }qmiLocNotifyWifiAttachmentStatusReqMsgT_v02;  /* Message */
   10937 /**
   10938     @}
   10939   */
   10940 
   10941 /** @addtogroup loc_qmi_messages
   10942     @{
   10943   */
   10944 /** Request Message; Used by the control point to inject the Wi-Fi attachment status. */
   10945 typedef struct {
   10946 
   10947   /* Mandatory */
   10948   /*  Status of Wi-Fi Attachment Status Request */
   10949   qmiLocStatusEnumT_v02 status;
   10950   /**<   Status of Wi-Fi Attachment Status request.
   10951 
   10952  Valid values: \n
   10953       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   10954       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   10955       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   10956       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   10957       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   10958       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   10959       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   10960       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   10961       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   10962       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   10963       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   10964 }qmiLocNotifyWifiAttachmentStatusIndMsgT_v02;  /* Message */
   10965 /**
   10966     @}
   10967   */
   10968 
   10969 /** @addtogroup loc_qmi_enums
   10970     @{
   10971   */
   10972 typedef enum {
   10973   QMILOCWIFIENABLEDSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   10974   eQMI_LOC_WIFI_ENABLED_FALSE_V02 = 0, /**<  Wi-Fi is disabled on the device  */
   10975   eQMI_LOC_WIFI_ENABLED_TRUE_V02 = 1, /**<  Wi-Fi is enabled on the device  */
   10976   QMILOCWIFIENABLEDSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   10977 }qmiLocWifiEnabledStatusEnumT_v02;
   10978 /**
   10979     @}
   10980   */
   10981 
   10982 /** @addtogroup loc_qmi_messages
   10983     @{
   10984   */
   10985 /** Request Message; Used by the control point to inject the Wi-Fi enabled status. */
   10986 typedef struct {
   10987 
   10988   /* Mandatory */
   10989   /*  Enabled Status */
   10990   qmiLocWifiEnabledStatusEnumT_v02 enabledStatus;
   10991   /**<   Wi-Fi enabled status on the device.
   10992 
   10993  Valid values: \n
   10994       - eQMI_LOC_WIFI_ENABLED_FALSE (0) --  Wi-Fi is disabled on the device
   10995       - eQMI_LOC_WIFI_ENABLED_TRUE (1) --  Wi-Fi is enabled on the device  */
   10996 }qmiLocNotifyWifiEnabledStatusReqMsgT_v02;  /* Message */
   10997 /**
   10998     @}
   10999   */
   11000 
   11001 /** @addtogroup loc_qmi_messages
   11002     @{
   11003   */
   11004 /** Indication Message; Used by the control point to inject the Wi-Fi enabled status. */
   11005 typedef struct {
   11006 
   11007   /* Mandatory */
   11008   /*  Status of Wi-Fi Enabled Status Request */
   11009   qmiLocStatusEnumT_v02 status;
   11010   /**<   Status of the Wi-Fi Enabled Status request.
   11011 
   11012  Valid values: \n
   11013       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   11014       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   11015       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   11016       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   11017       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   11018       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   11019       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   11020       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   11021       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   11022       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   11023       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   11024 }qmiLocNotifyWifiEnabledStatusIndMsgT_v02;  /* Message */
   11025 /**
   11026     @}
   11027   */
   11028 
   11029 /** @addtogroup loc_qmi_messages
   11030     @{
   11031   */
   11032 /** Indication Message; Notifies the control point whether the GNSS location engine is
   11033                     ready to accept vehicle data. */
   11034 typedef struct {
   11035 
   11036   /* Optional */
   11037   /*  Vehicle Accelerometer Ready Status */
   11038   uint8_t vehicleAccelReadyStatus_valid;  /**< Must be set to true if vehicleAccelReadyStatus is being passed */
   11039   uint8_t vehicleAccelReadyStatus;
   11040   /**<   The location service uses this TLV to let a control point know when it is
   11041        ready or not ready to receive vehicle accelerometer data input.
   11042        Values: \n
   11043        - 0x00 -- Not ready  \n
   11044        - 0x01 -- Ready */
   11045 
   11046   /* Optional */
   11047   /*  Vehicle Angular Rate Ready Status */
   11048   uint8_t vehicleAngularRateReadyStatus_valid;  /**< Must be set to true if vehicleAngularRateReadyStatus is being passed */
   11049   uint8_t vehicleAngularRateReadyStatus;
   11050   /**<   The location service uses this TLV to let a control point know when it is
   11051        ready or not ready to receive vehicle angular rate data input.
   11052        Values: \n
   11053        - 0x00 -- Not ready \n
   11054        - 0x01 -- Ready */
   11055 
   11056   /* Optional */
   11057   /*  Vehicle Odometry Ready Status */
   11058   uint8_t vehicleOdometryReadyStatus_valid;  /**< Must be set to true if vehicleOdometryReadyStatus is being passed */
   11059   uint8_t vehicleOdometryReadyStatus;
   11060   /**<   The location service uses this TLV to let a control point know when it is
   11061        ready or not ready to receive vehicle odometry data input.
   11062        Values: \n
   11063        - 0x00 -- Not ready \n
   11064        - 0x01 -- Ready*/
   11065 }qmiLocEventVehicleDataReadyIndMsgT_v02;  /* Message */
   11066 /**
   11067     @}
   11068   */
   11069 
   11070 /** @addtogroup loc_qmi_aggregates
   11071     @{
   11072   */
   11073 typedef struct {
   11074 
   11075   uint32_t timeOffset;
   11076   /**<   Sample time offset. This time offset must be
   11077        relative to the vehicle sensor time of the first sample. \n
   11078        - Units: Microseconds \n
   11079        - Range: Up to over 4000 seconds */
   11080 
   11081   uint32_t axisSample_len;  /**< Must be set to # of elements in axisSample */
   11082   float axisSample[QMI_LOC_VEHICLE_SENSOR_DATA_MAX_AXES_V02];
   11083   /**<   Sensor axis sample.        \n
   11084        - Type: Floating point     \n
   11085        - Units accelerometer: Meters/seconds^2 \n
   11086        - Units gyroscope: Radians/seconds \vspace{4pt}
   11087 
   11088        Note: The axes samples must be in the following order: \n
   11089              1. X-Axis \n
   11090              2. Y-Axis \n
   11091              3. Z-Axis */
   11092 }qmiLocVehicleSensorSampleStructT_v02;  /* Type */
   11093 /**
   11094     @}
   11095   */
   11096 
   11097 typedef uint8_t qmiLocAxesMaskT_v02;
   11098 #define QMI_LOC_MASK_X_AXIS_V02 ((qmiLocAxesMaskT_v02)0x01) /**<  X-axis is valid  */
   11099 #define QMI_LOC_MASK_Y_AXIS_V02 ((qmiLocAxesMaskT_v02)0x02) /**<  Y-axis is valid  */
   11100 #define QMI_LOC_MASK_Z_AXIS_V02 ((qmiLocAxesMaskT_v02)0x04) /**<  Z-axis is valid  */
   11101 /** @addtogroup loc_qmi_aggregates
   11102     @{
   11103   */
   11104 typedef struct {
   11105 
   11106   uint32_t sampleTimeBase;
   11107   /**<   Denotes a 32-bit time tag of the reference time from which
   11108        all samples in this message are offset. This time must
   11109        be the same as or (slightly) earlier than the first (oldest)
   11110        sample in this message. \n
   11111        - Units: Milliseconds \n
   11112        - Range: ~4 million seconds, or almost 50 days between rollovers */
   11113 
   11114   qmiLocAxesMaskT_v02 axesValidity;
   11115   /**<   Identifies the axes that are valid for all sensor samples.
   11116 
   11117  Valid values: \n
   11118       - QMI_LOC_MASK_X_AXIS (0x01) --  X-axis is valid
   11119       - QMI_LOC_MASK_Y_AXIS (0x02) --  Y-axis is valid
   11120       - QMI_LOC_MASK_Z_AXIS (0x04) --  Z-axis is valid  */
   11121 
   11122   uint32_t sensorData_len;  /**< Must be set to # of elements in sensorData */
   11123   qmiLocVehicleSensorSampleStructT_v02 sensorData[QMI_LOC_VEHICLE_SENSOR_DATA_MAX_SAMPLES_V02];
   11124 }qmiLocVehicleSensorSampleListStructType_v02;  /* Type */
   11125 /**
   11126     @}
   11127   */
   11128 
   11129 typedef uint32_t qmiLocVehicleOdometryMeasDeviationMaskType_v02;
   11130 #define QMI_LOC_MASK_VEHICLE_ODOMETRY_REVERSE_MOVEMENT_V02 ((qmiLocVehicleOdometryMeasDeviationMaskType_v02)0x00000001) /**<  Odometry data in this message includes at least some data where
   11131        the vehicle may have been moving in the reverse direction; this
   11132        bit must be set if odometry data may be in reverse, and should
   11133        not be set if odometry data is all in the forward direction  */
   11134 #define QMI_LOC_MASK_VEHICLE_ODOMETRY_AFFECTED_BY_ERRORS_V02 ((qmiLocVehicleOdometryMeasDeviationMaskType_v02)0x00000002) /**<  Odometry data in this message includes at least some data affected
   11135        by a major error source affecting distance-travelled accuracy,
   11136        such as wheel slippage due to skidding, gravel, snow, or ice, as
   11137        detected by the vehicle, e.g., via an ABS or other system  */
   11138 #define QMI_LOC_MASK_VEHICLE_ODOMETRY_ABSOLUTE_MEASUREMENT_V02 ((qmiLocVehicleOdometryMeasDeviationMaskType_v02)0x00000004) /**<  Odometry data in this message is an absolute amount since the vehicle
   11139        began service, and is the same vehicle that is regularly used with
   11140        this device (so that the offset of this value, since the last time
   11141        this measurement was used by the location engine, can safely be used
   11142        as a likely correct estimate of distance travelled since last
   11143        use)  */
   11144 typedef uint32_t qmiLocVehicleOdometryWheelFlagsMaskT_v02;
   11145 #define QMI_LOC_MASK_VEHICLE_ODOMETRY_LEFT_AND_RIGHT_AVERAGE_V02 ((qmiLocVehicleOdometryWheelFlagsMaskT_v02)0x00000001) /**<  Average of left and right non-turning wheels  */
   11146 #define QMI_LOC_MASK_VEHICLE_ODOMETRY_LEFT_V02 ((qmiLocVehicleOdometryWheelFlagsMaskT_v02)0x00000002) /**<  Left side, non-turning wheel  */
   11147 #define QMI_LOC_MASK_VEHICLE_ODOMETRY_RIGHT_V02 ((qmiLocVehicleOdometryWheelFlagsMaskT_v02)0x00000004) /**<  Right side, non-turning wheel  */
   11148 /** @addtogroup loc_qmi_aggregates
   11149     @{
   11150   */
   11151 typedef struct {
   11152 
   11153   uint32_t timeOffset;
   11154   /**<   Sample time offset. This time offset must be
   11155        relative to the sensor time of the first sample. \n
   11156        - Units: Microseconds \n
   11157        - Range: Up to over 4000 seconds */
   11158 
   11159   uint32_t distanceTravelled_len;  /**< Must be set to # of elements in distanceTravelled */
   11160   uint32_t distanceTravelled[QMI_LOC_VEHICLE_ODOMETRY_MAX_MEASUREMENTS_V02];
   11161   /**<    Distance travelled (odometry) sample offset. \n
   11162         - Units of accumulated distance: Millimeters \n
   11163         - Range: Over 4000 kilometers
   11164 
   11165         This measurement (with units in millimeters) is added to
   11166         the distance_travelled_base measurement (in meters) to
   11167         get the total distance travelled sample value.
   11168 
   11169         Note: The order of measurements must be as follows: \n
   11170         1. Left and right average \n
   11171         2. Left \n
   11172         3. Right
   11173    */
   11174 }qmiLocVehicleOdometrySampleStructT_v02;  /* Type */
   11175 /**
   11176     @}
   11177   */
   11178 
   11179 /** @addtogroup loc_qmi_aggregates
   11180     @{
   11181   */
   11182 typedef struct {
   11183 
   11184   uint32_t sampleTimeBase;
   11185   /**<   Denotes a 32-bit time tag of a reference time, from which
   11186        all samples in this message are offset.  Note this time must
   11187        be the same or (slightly) earlier than the first (oldest)
   11188        sample in this message. \n
   11189        - Units: 1 millisecond \n
   11190        - Range: ~4 million seconds, or almost 50 days between rollovers */
   11191 
   11192   qmiLocVehicleOdometryMeasDeviationMaskType_v02 flags;
   11193   /**<   Flags to indicate any deviation from the default measurement
   11194  assumptions. Valid bitmasks: \n
   11195       - QMI_LOC_MASK_VEHICLE_ODOMETRY_REVERSE_MOVEMENT (0x00000001) --  Odometry data in this message includes at least some data where
   11196        the vehicle may have been moving in the reverse direction; this
   11197        bit must be set if odometry data may be in reverse, and should
   11198        not be set if odometry data is all in the forward direction
   11199       - QMI_LOC_MASK_VEHICLE_ODOMETRY_AFFECTED_BY_ERRORS (0x00000002) --  Odometry data in this message includes at least some data affected
   11200        by a major error source affecting distance-travelled accuracy,
   11201        such as wheel slippage due to skidding, gravel, snow, or ice, as
   11202        detected by the vehicle, e.g., via an ABS or other system
   11203       - QMI_LOC_MASK_VEHICLE_ODOMETRY_ABSOLUTE_MEASUREMENT (0x00000004) --  Odometry data in this message is an absolute amount since the vehicle
   11204        began service, and is the same vehicle that is regularly used with
   11205        this device (so that the offset of this value, since the last time
   11206        this measurement was used by the location engine, can safely be used
   11207        as a likely correct estimate of distance travelled since last
   11208        use)  */
   11209 
   11210   qmiLocVehicleOdometryWheelFlagsMaskT_v02 wheelFlags;
   11211   /**<   Delineates for which wheels measurements are being provided
   11212  in the following samples, where one or more of the following
   11213  bits must be set, and data samples aligned with these axes must
   11214  appear in groups, in this order.
   11215 
   11216  Valid bitmasks: \n
   11217       - QMI_LOC_MASK_VEHICLE_ODOMETRY_LEFT_AND_RIGHT_AVERAGE (0x00000001) --  Average of left and right non-turning wheels
   11218       - QMI_LOC_MASK_VEHICLE_ODOMETRY_LEFT (0x00000002) --  Left side, non-turning wheel
   11219       - QMI_LOC_MASK_VEHICLE_ODOMETRY_RIGHT (0x00000004) --  Right side, non-turning wheel  */
   11220 
   11221   uint32_t distanceTravelledBase;
   11222   /**<   Distance traveled base. \n
   11223         - Units of accumulated distance: Meters \n
   11224         - Range: Over 4,000,0000 kilometers \vspace{0.06in} \n
   11225 
   11226         Distance travelled (odometry) is to be reported in a continuously
   11227         accumulating way from device power up. It may be incremental distance
   11228         starting at 0, or another arbitrary point, from device power up, or the
   11229         absolute distance traveled by the vehicle
   11230         (and if so, set QMI_LOC_MASK_VEHICLE_ODOMETRY_ABSOLUTE_MEASUREMENT),
   11231         as long as it grows incrementally from device power up.
   11232 
   11233         This distance_travelled_base is added to the distrance_travelled_offset
   11234         of each sample (below) to get the absolute distance of each sample
   11235         point.
   11236 
   11237         Distance travelled errors are expected to be primarily due to the
   11238         scale factor, with some allowance for noise due to minor slippage
   11239         events (e.g., gravel.)
   11240         Major wheel slippage events that affect odometry
   11241         must be flagged -- see the flags field.
   11242 
   11243         Note that other events, such as a vehicle travelling in reverse, may
   11244         also affect the available accuracy of this information, and notification
   11245         of those events must be provided -- see the flags field. */
   11246 
   11247   uint32_t odometryData_len;  /**< Must be set to # of elements in odometryData */
   11248   qmiLocVehicleOdometrySampleStructT_v02 odometryData[QMI_LOC_VEHICLE_SENSOR_DATA_MAX_SAMPLES_V02];
   11249   /**<   Variable length array to specify the odometry samples.
   11250        Maximum length of the array is 50. */
   11251 }qmiLocVehicleOdometrySampleListStructT_v02;  /* Type */
   11252 /**
   11253     @}
   11254   */
   11255 
   11256 /** @addtogroup loc_qmi_messages
   11257     @{
   11258   */
   11259 /** Request Message; Injects on-vehicle sensor data into the location engine. */
   11260 typedef struct {
   11261 
   11262   /* Optional */
   11263   /*  On-Vehicle Accelerometer Data */
   11264   uint8_t accelData_valid;  /**< Must be set to true if accelData is being passed */
   11265   qmiLocVehicleSensorSampleListStructType_v02 accelData;
   11266   /**<   \vspace{0.06in} \n Vehicle accelerometer sensor samples. */
   11267 
   11268   /* Optional */
   11269   /*  On-Vehicle Angular Rotation Data */
   11270   uint8_t angRotationData_valid;  /**< Must be set to true if angRotationData is being passed */
   11271   qmiLocVehicleSensorSampleListStructType_v02 angRotationData;
   11272   /**<   \vspace{0.06in} \n Vehicle angular rotation data sensor samples. */
   11273 
   11274   /* Optional */
   11275   /*  Odometry Data */
   11276   uint8_t odometryData_valid;  /**< Must be set to true if odometryData is being passed */
   11277   qmiLocVehicleOdometrySampleListStructT_v02 odometryData;
   11278   /**<   \vspace{0.06in} \n Odometer sensor samples. */
   11279 
   11280   /* Optional */
   11281   /*  External Time Sync Information */
   11282   uint8_t changeInTimeScales_valid;  /**< Must be set to true if changeInTimeScales is being passed */
   11283   int32_t changeInTimeScales;
   11284   /**<   This field is to be used in conjunction with an external
   11285        time-sync mechanism that is aligning the vehicle sensor time scale
   11286        with the on-device sensor time scale to ensure that updates in
   11287        that time offset do not appear as jumps in the relative sensor time
   11288        of the samples provided in this message. If there is no such sync
   11289        mechanism, e.g., if only the vehicle time is provided, this field
   11290        may be left at 0.
   11291 
   11292        This field is defined as the change from the previously-sent QMI
   11293        message with similar TLVs 0x10, 0x11, or 0x12 in it, to this QMI
   11294        message in the amount that the sensor_time is ahead of an
   11295        external vehicle time. \n
   11296 
   11297        - Units: Microseconds \n
   11298        - Range: Approximately -2100 seconds to + 2100 seconds, where
   11299                 full-scale (minimum and maximum value) is interpreted
   11300                 as equal to or greater than this value of an offset change
   11301                 (unlikely to be reached in practice, unless there is a
   11302                 startup, major resync, or some other rollover event). */
   11303 }qmiLocInjectVehicleSensorDataReqMsgT_v02;  /* Message */
   11304 /**
   11305     @}
   11306   */
   11307 
   11308 /** @addtogroup loc_qmi_messages
   11309     @{
   11310   */
   11311 /** Indication Message; Injects on-vehicle sensor data into the location engine. */
   11312 typedef struct {
   11313 
   11314   /* Mandatory */
   11315   /*  Inject Vehicle Sensor Data Status */
   11316   qmiLocStatusEnumT_v02 status;
   11317   /**<   Status of the Inject Vehicle Sensor Data request.
   11318 
   11319  Valid values: \n
   11320       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   11321       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   11322       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   11323       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   11324       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   11325       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   11326       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   11327       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   11328       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   11329       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   11330       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   11331 }qmiLocInjectVehicleSensorDataIndMsgT_v02;  /* Message */
   11332 /**
   11333     @}
   11334   */
   11335 
   11336 /** @addtogroup loc_qmi_messages
   11337     @{
   11338   */
   11339 /** Request Message; Used by the control point to get the first available WWAN
   11340                     position from the location engine. */
   11341 typedef struct {
   11342 
   11343   /* Mandatory */
   11344   /*  Transaction ID */
   11345   uint32_t transactionId;
   11346   /**<   Identifies the transaction. The transaction ID
   11347        is returned in the Get Available WWAN Position indication. */
   11348 }qmiLocGetAvailWwanPositionReqMsgT_v02;  /* Message */
   11349 /**
   11350     @}
   11351   */
   11352 
   11353 /** @addtogroup loc_qmi_messages
   11354     @{
   11355   */
   11356 /** Indication Message; Used by the control point to get the first available WWAN
   11357                     position from the location engine. */
   11358 typedef struct {
   11359 
   11360   /* Mandatory */
   11361   /*  Get Available WWAN Position Status */
   11362   qmiLocStatusEnumT_v02 status;
   11363   /**<   Status of the Get Available WWAN Position request.
   11364 
   11365  Valid values: \n
   11366       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   11367       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   11368       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   11369       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   11370       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   11371       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   11372       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   11373       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   11374       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   11375       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   11376       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   11377 
   11378   /* Optional */
   11379   /*  Transaction ID */
   11380   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
   11381   uint32_t transactionId;
   11382   /**<   Transaction ID that was specified in the Get Available
   11383        WWAN Position request. This parameter will
   11384        always be present if the status field is set to
   11385        SUCCESS. */
   11386 
   11387   /* Optional */
   11388   /*  Latitude */
   11389   uint8_t latitude_valid;  /**< Must be set to true if latitude is being passed */
   11390   double latitude;
   11391   /**<   Latitude (specified in WGS84 datum).
   11392        \begin{itemize1}
   11393        \item    Type: Floating point
   11394        \item    Units: Degrees
   11395        \item     Range: -90.0 to 90.0      \begin{itemize1}
   11396          \item    Positive values indicate northern latitude
   11397          \item    Negative values indicate southern latitude
   11398        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
   11399 
   11400   /* Optional */
   11401   /*  Longitude */
   11402   uint8_t longitude_valid;  /**< Must be set to true if longitude is being passed */
   11403   double longitude;
   11404   /**<   Longitude (specified in WGS84 datum).
   11405        \begin{itemize1}
   11406        \item    Type: Floating point
   11407        \item    Units: Degrees
   11408        \item    Range: -180.0 to 180.0     \begin{itemize1}
   11409          \item    Positive values indicate eastern longitude
   11410          \item    Negative values indicate western longitude
   11411        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
   11412 
   11413   /* Optional */
   11414   /*  Circular Horizontal Position Uncertainty */
   11415   uint8_t horUncCircular_valid;  /**< Must be set to true if horUncCircular is being passed */
   11416   float horUncCircular;
   11417   /**<   Horizontal position uncertainty (circular).\n
   11418        - Units: Meters */
   11419 
   11420   /* Optional */
   11421   /*  Altitude With Respect to Ellipsoid */
   11422   uint8_t altitudeWrtEllipsoid_valid;  /**< Must be set to true if altitudeWrtEllipsoid is being passed */
   11423   float altitudeWrtEllipsoid;
   11424   /**<   Altitude with respect to the WGS84 ellipsoid.\n
   11425        - Units: Meters \n
   11426        - Range: -500 to 15883 */
   11427 
   11428   /* Optional */
   11429   /*  Vertical Uncertainty */
   11430   uint8_t vertUnc_valid;  /**< Must be set to true if vertUnc is being passed */
   11431   float vertUnc;
   11432   /**<   Vertical uncertainty.\n
   11433        - Units: Meters */
   11434 
   11435   /* Optional */
   11436   /*  UTC Timestamp */
   11437   uint8_t timestampUtc_valid;  /**< Must be set to true if timestampUtc is being passed */
   11438   uint64_t timestampUtc;
   11439   /**<   UTC timestamp. \n
   11440        - Units: Milliseconds since Jan. 1, 1970 */
   11441 
   11442   /* Optional */
   11443   /*  Time Uncertainty */
   11444   uint8_t timeUnc_valid;  /**< Must be set to true if timeUnc is being passed */
   11445   float timeUnc;
   11446   /**<   Time uncertainty. \n
   11447        - Units: Milliseconds */
   11448 
   11449   /* Optional */
   11450   /*  Horizontal Elliptical Uncertainty Semi-Minor Axis */
   11451   uint8_t horUncEllipseSemiMinor_valid;  /**< Must be set to true if horUncEllipseSemiMinor is being passed */
   11452   float horUncEllipseSemiMinor;
   11453   /**<   Semi-minor axis of horizontal elliptical uncertainty. \n
   11454        - Units: Meters */
   11455 
   11456   /* Optional */
   11457   /*  Horizontal Elliptical Uncertainty Semi-Major Axis */
   11458   uint8_t horUncEllipseSemiMajor_valid;  /**< Must be set to true if horUncEllipseSemiMajor is being passed */
   11459   float horUncEllipseSemiMajor;
   11460   /**<   Semi-major axis of horizontal elliptical uncertainty. \n
   11461        - Units: Meters */
   11462 
   11463   /* Optional */
   11464   /*  Horizontal Elliptical Uncertainty Azimuth */
   11465   uint8_t horUncEllipseOrientAzimuth_valid;  /**< Must be set to true if horUncEllipseOrientAzimuth is being passed */
   11466   float horUncEllipseOrientAzimuth;
   11467   /**<   Elliptical horizontal uncertainty azimuth of orientation. \n
   11468        - Units: Decimal degrees \n
   11469        - Range: 0 to 180 */
   11470 
   11471   /* Optional */
   11472   /*  Horizontal Circular Confidence */
   11473   uint8_t horCircularConfidence_valid;  /**< Must be set to true if horCircularConfidence is being passed */
   11474   uint8_t horCircularConfidence;
   11475   /**<   Horizontal circular uncertainty confidence. \n
   11476        - Units: Percent \n
   11477        - Range: 0 to 99 */
   11478 
   11479   /* Optional */
   11480   /*  Horizontal Elliptical Confidence */
   11481   uint8_t horEllipticalConfidence_valid;  /**< Must be set to true if horEllipticalConfidence is being passed */
   11482   uint8_t horEllipticalConfidence;
   11483   /**<   Horizontal elliptical uncertainty confidence. \n
   11484        - Units: Percent \n
   11485        - Range: 0 to 99 */
   11486 
   11487   /* Optional */
   11488   /*  Horizontal Reliability */
   11489   uint8_t horReliability_valid;  /**< Must be set to true if horReliability is being passed */
   11490   qmiLocReliabilityEnumT_v02 horReliability;
   11491   /**<   Specifies the reliability of the horizontal position.
   11492  Valid values: \n
   11493       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
   11494       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
   11495       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
   11496       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
   11497       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
   11498  */
   11499 
   11500   /* Optional */
   11501   /*  Altitude With Respect to Sea Level */
   11502   uint8_t altitudeWrtMeanSeaLevel_valid;  /**< Must be set to true if altitudeWrtMeanSeaLevel is being passed */
   11503   float altitudeWrtMeanSeaLevel;
   11504   /**<   Altitude with respect to mean sea level. \n
   11505        - Units: Meters */
   11506 
   11507   /* Optional */
   11508   /*  Vertical Confidence */
   11509   uint8_t vertConfidence_valid;  /**< Must be set to true if vertConfidence is being passed */
   11510   uint8_t vertConfidence;
   11511   /**<   Vertical uncertainty confidence. \n
   11512        - Units: Percent \n
   11513        - Range: 0 to 99 */
   11514 
   11515   /* Optional */
   11516   /*  Vertical Reliability */
   11517   uint8_t vertReliability_valid;  /**< Must be set to true if vertReliability is being passed */
   11518   qmiLocReliabilityEnumT_v02 vertReliability;
   11519   /**<   Specifies the reliability of the vertical position.
   11520 
   11521  Valid values: \n
   11522       - eQMI_LOC_RELIABILITY_NOT_SET (0) --  Location reliability is not set
   11523       - eQMI_LOC_RELIABILITY_VERY_LOW (1) --  Location reliability is very low; use it at your own risk
   11524       - eQMI_LOC_RELIABILITY_LOW (2) --  Location reliability is low; little or no cross-checking is possible
   11525       - eQMI_LOC_RELIABILITY_MEDIUM (3) --  Location reliability is medium; limited cross-check passed
   11526       - eQMI_LOC_RELIABILITY_HIGH (4) --  Location reliability is high; strong cross-check passed
   11527  */
   11528 
   11529   /* Optional */
   11530   /*  GPS Time */
   11531   uint8_t gpsTime_valid;  /**< Must be set to true if gpsTime is being passed */
   11532   qmiLocGPSTimeStructT_v02 gpsTime;
   11533 
   11534   /* Optional */
   11535   /*  Time Source */
   11536   uint8_t timeSrc_valid;  /**< Must be set to true if timeSrc is being passed */
   11537   qmiLocTimeSourceEnumT_v02 timeSrc;
   11538   /**<   Time source.
   11539 
   11540  Valid values: \n
   11541       - eQMI_LOC_TIME_SRC_INVALID (0) --  Invalid time.
   11542       - eQMI_LOC_TIME_SRC_NETWORK_TIME_TRANSFER (1) --  Time is set by the 1X system
   11543       - eQMI_LOC_TIME_SRC_NETWORK_TIME_TAGGING (2) --  Time is set by WCDMA/GSM time tagging (i.e.,
   11544        associating network time with GPS time)
   11545       - eQMI_LOC_TIME_SRC_EXTERNAL_INPUT (3) --  Time is set by an external injection
   11546       - eQMI_LOC_TIME_SRC_TOW_DECODE (4) --  Time is set after decoding over-the-air GPS navigation data
   11547        from one GPS satellite
   11548       - eQMI_LOC_TIME_SRC_TOW_CONFIRMED (5) --  Time is set after decoding over-the-air GPS navigation data
   11549        from multiple satellites
   11550       - eQMI_LOC_TIME_SRC_TOW_AND_WEEK_CONFIRMED (6) --  Both time of the week and the GPS week number are known
   11551       - eQMI_LOC_TIME_SRC_NAV_SOLUTION (7) --  Time is set by the position engine after the fix is obtained
   11552       - eQMI_LOC_TIME_SRC_SOLVE_FOR_TIME (8) --  Time is set by the position engine after performing SFT;
   11553        this is done when the clock time uncertainty is large
   11554       - eQMI_LOC_TIME_SRC_GLO_TOW_DECODE (9) --  Time is set after decoding GLO satellites
   11555       - eQMI_LOC_TIME_SRC_TIME_TRANSFORM (10) --  Time is set after transforming the GPS to GLO time
   11556       - eQMI_LOC_TIME_SRC_WCDMA_SLEEP_TIME_TAGGING (11) --  Time is set by the sleep time tag provided by the WCDMA network
   11557       - eQMI_LOC_TIME_SRC_GSM_SLEEP_TIME_TAGGING (12) --  Time is set by the sleep time tag provided by the GSM network
   11558       - eQMI_LOC_TIME_SRC_UNKNOWN (13) --  Source of the time is unknown
   11559       - eQMI_LOC_TIME_SRC_SYSTEM_TIMETICK (14) --  Time is derived from the system clock (better known as the slow clock);
   11560        GNSS time is maintained irrespective of the GNSS receiver state
   11561       - eQMI_LOC_TIME_SRC_QZSS_TOW_DECODE (15) --  Time is set after decoding QZSS satellites
   11562       - eQMI_LOC_TIME_SRC_BDS_TOW_DECODE (16) --  Time is set after decoding BDS satellites
   11563  */
   11564 }qmiLocGetAvailWwanPositionIndMsgT_v02;  /* Message */
   11565 /**
   11566     @}
   11567   */
   11568 
   11569 /** @addtogroup loc_qmi_enums
   11570     @{
   11571   */
   11572 typedef enum {
   11573   QMILOCPREMIUMSERVICEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   11574   eQMI_LOC_PREMIUM_SERVICE_GTP_CELL_V02 = 0, /**<  Premium service -- Global terrestrial positioning for the cell  */
   11575   eQMI_LOC_PREMIUM_SERVICE_SAP_V02 = 1, /**<  Premium service -- Sensor-assisted positioning  */
   11576   eQMI_LOC_PREMIUM_SERVICE_GTP_ENH_CELL_V02 = 2, /**<  Premium service -- Global terrestrial positioning enhanced cell  */
   11577   QMILOCPREMIUMSERVICEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   11578 }qmiLocPremiumServiceEnumT_v02;
   11579 /**
   11580     @}
   11581   */
   11582 
   11583 /** @addtogroup loc_qmi_enums
   11584     @{
   11585   */
   11586 typedef enum {
   11587   QMILOCPREMIUMSERVICECFGENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   11588   eQMI_LOC_PREMIUM_SERVICE_DISABLED_V02 = 0, /**<  Premium service disabled  */
   11589   eQMI_LOC_PREMIUM_SERVICE_ENABLED_BASIC_V02 = 1, /**<  Premium service enabled for basic  */
   11590   eQMI_LOC_PREMIUM_SERVICE_ENABLED_PREMIUM_V02 = 2, /**<  Premium service enabled for premium  */
   11591   QMILOCPREMIUMSERVICECFGENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   11592 }qmiLocPremiumServiceCfgEnumT_v02;
   11593 /**
   11594     @}
   11595   */
   11596 
   11597 /** @addtogroup loc_qmi_messages
   11598     @{
   11599   */
   11600 /** Request Message; Used by the control point to set the configuration
   11601                     information for all iZat premium services to the location
   11602                     engine. */
   11603 typedef struct {
   11604 
   11605   /* Mandatory */
   11606   /*  Set Premium Service Type */
   11607   qmiLocPremiumServiceEnumT_v02 premiumServiceType;
   11608   /**<   Specifies the premium service to configure.
   11609 
   11610  Valid values: \n
   11611       - eQMI_LOC_PREMIUM_SERVICE_GTP_CELL (0) --  Premium service -- Global terrestrial positioning for the cell
   11612       - eQMI_LOC_PREMIUM_SERVICE_SAP (1) --  Premium service -- Sensor-assisted positioning
   11613       - eQMI_LOC_PREMIUM_SERVICE_GTP_ENH_CELL (2) --  Premium service -- Global terrestrial positioning enhanced cell
   11614  */
   11615 
   11616   /* Mandatory */
   11617   /*  Set Premium Service Configuration */
   11618   qmiLocPremiumServiceCfgEnumT_v02 premiumServiceCfg;
   11619   /**<   Specifies the premium service configuration mode.
   11620 
   11621  Valid values: \n
   11622       - eQMI_LOC_PREMIUM_SERVICE_DISABLED (0) --  Premium service disabled
   11623       - eQMI_LOC_PREMIUM_SERVICE_ENABLED_BASIC (1) --  Premium service enabled for basic
   11624       - eQMI_LOC_PREMIUM_SERVICE_ENABLED_PREMIUM (2) --  Premium service enabled for premium
   11625  */
   11626 }qmiLocSetPremiumServicesCfgReqMsgT_v02;  /* Message */
   11627 /**
   11628     @}
   11629   */
   11630 
   11631 /** @addtogroup loc_qmi_messages
   11632     @{
   11633   */
   11634 /** Indication Message; Used by the control point to set the configuration
   11635                     information for all iZat premium services to the location
   11636                     engine. */
   11637 typedef struct {
   11638 
   11639   /* Mandatory */
   11640   /*  Set Premium Service Configuration Status */
   11641   qmiLocStatusEnumT_v02 status;
   11642   /**<   Status of the Set Premium Services Configuration request.
   11643 
   11644  Valid values: \n
   11645       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   11646       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   11647       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   11648       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   11649       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   11650       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   11651       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   11652       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   11653       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   11654       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   11655       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure  */
   11656 }qmiLocSetPremiumServicesCfgIndMsgT_v02;  /* Message */
   11657 /**
   11658     @}
   11659   */
   11660 
   11661 /** @addtogroup loc_qmi_enums
   11662     @{
   11663   */
   11664 typedef enum {
   11665   QMILOCXTRAVERSIONCHECKENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   11666   eQMI_LOC_XTRA_VERSION_CHECK_DISABLE_V02 = 0, /**<  XTRA file version check is not required   */
   11667   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  */
   11668   eQMI_LOC_XTRA_VERSION_CHECK_XTRA2_V02 = 2, /**<  Check the XTRA file against XTRA2 format  */
   11669   eQMI_LOC_XTRA_VERSION_CHECK_XTRA3_V02 = 3, /**<  Check the XTRA file against XTRA3 format  */
   11670   QMILOCXTRAVERSIONCHECKENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   11671 }qmiLocXtraVersionCheckEnumT_v02;
   11672 /**
   11673     @}
   11674   */
   11675 
   11676 /** @addtogroup loc_qmi_messages
   11677     @{
   11678   */
   11679 /** Request Message; Used by the control point to enable or disable XTRA version
   11680                     verification. */
   11681 typedef struct {
   11682 
   11683   /* Mandatory */
   11684   /*  Set XTRA Version Check Mode */
   11685   qmiLocXtraVersionCheckEnumT_v02 xtraVersionCheckMode;
   11686   /**<   Specifies XTRA version check mode.
   11687 
   11688  Valid values: \n
   11689       - eQMI_LOC_XTRA_VERSION_CHECK_DISABLE (0) --  XTRA file version check is not required
   11690       - 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
   11691       - eQMI_LOC_XTRA_VERSION_CHECK_XTRA2 (2) --  Check the XTRA file against XTRA2 format
   11692       - eQMI_LOC_XTRA_VERSION_CHECK_XTRA3 (3) --  Check the XTRA file against XTRA3 format
   11693  */
   11694 }qmiLocSetXtraVersionCheckReqMsgT_v02;  /* Message */
   11695 /**
   11696     @}
   11697   */
   11698 
   11699 /** @addtogroup loc_qmi_messages
   11700     @{
   11701   */
   11702 /** Indication Message; Used by the control point to enable or disable XTRA version
   11703                     verification. */
   11704 typedef struct {
   11705 
   11706   /* Mandatory */
   11707   /*  Set XTRA Version Check Mode Status */
   11708   qmiLocStatusEnumT_v02 status;
   11709   /**<   Status of the Set XTRA version check 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 }qmiLocSetXtraVersionCheckIndMsgT_v02;  /* Message */
   11724 /**
   11725     @}
   11726   */
   11727 
   11728 typedef uint64_t qmiLocGNSSConstellEnumT_v02;
   11729 #define eQMI_SYSTEM_GPS_V02 ((qmiLocGNSSConstellEnumT_v02)0x01ull) /**<  Enable GPS \n  */
   11730 #define eQMI_SYSTEM_GLO_V02 ((qmiLocGNSSConstellEnumT_v02)0x02ull) /**<  Enable GLONASS \n  */
   11731 #define eQMI_SYSTEM_BDS_V02 ((qmiLocGNSSConstellEnumT_v02)0x04ull) /**<  Enable BDS \n  */
   11732 #define eQMI_SYSTEM_GAL_V02 ((qmiLocGNSSConstellEnumT_v02)0x08ull) /**<  Enable Galileo  */
   11733 /** @addtogroup loc_qmi_messages
   11734     @{
   11735   */
   11736 /** Request Message; Sets satellite constellations of interest for reporting. */
   11737 typedef struct {
   11738 
   11739   /* Optional */
   11740   /*  GNSS Measurement Report Constellation Control */
   11741   uint8_t measReportConfig_valid;  /**< Must be set to true if measReportConfig is being passed */
   11742   qmiLocGNSSConstellEnumT_v02 measReportConfig;
   11743   /**<   GNSS measurement report constellation control. \n
   11744  Valid values: \n
   11745       - eQMI_SYSTEM_GPS (0x01) --  Enable GPS \n
   11746       - eQMI_SYSTEM_GLO (0x02) --  Enable GLONASS \n
   11747       - eQMI_SYSTEM_BDS (0x04) --  Enable BDS \n
   11748       - eQMI_SYSTEM_GAL (0x08) --  Enable Galileo
   11749  */
   11750 
   11751   /* Optional */
   11752   /*  SV Polynomial Report Constellation Control */
   11753   uint8_t svPolyReportConfig_valid;  /**< Must be set to true if svPolyReportConfig is being passed */
   11754   qmiLocGNSSConstellEnumT_v02 svPolyReportConfig;
   11755   /**<   SV polynomial report constellation control. \n
   11756  Valid values: \n
   11757       - eQMI_SYSTEM_GPS (0x01) --  Enable GPS \n
   11758       - eQMI_SYSTEM_GLO (0x02) --  Enable GLONASS \n
   11759       - eQMI_SYSTEM_BDS (0x04) --  Enable BDS \n
   11760       - eQMI_SYSTEM_GAL (0x08) --  Enable Galileo
   11761  */
   11762 }qmiLocSetGNSSConstRepConfigReqMsgT_v02;  /* Message */
   11763 /**
   11764     @}
   11765   */
   11766 
   11767 /** @addtogroup loc_qmi_messages
   11768     @{
   11769   */
   11770 /** Indication Message; Sets satellite constellations of interest for reporting. */
   11771 typedef struct {
   11772 
   11773   /* Mandatory */
   11774   /*  Set GNSS Constellation Status */
   11775   qmiLocStatusEnumT_v02 status;
   11776   /**<   Status of the GNSS constellation.
   11777 
   11778  Valid values: \n
   11779       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   11780       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   11781       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   11782       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   11783       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   11784       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   11785       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   11786       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   11787       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   11788       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   11789       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   11790  */
   11791 }qmiLocSetGNSSConstRepConfigIndMsgT_v02;  /* Message */
   11792 /**
   11793     @}
   11794   */
   11795 
   11796 /** @addtogroup loc_qmi_enums
   11797     @{
   11798   */
   11799 typedef enum {
   11800   QMILOCSOURCEOFFREQENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   11801   eQMI_LOC_FREQ_SOURCE_INVALID_V02 = 0, /**<  Source of the frequency is invalid  */
   11802   eQMI_LOC_FREQ_SOURCE_EXTERNAL_V02 = 1, /**<  Source of the frequency is from an external injection  */
   11803   eQMI_LOC_FREQ_SOURCE_PE_CLK_REPORT_V02 = 2, /**<  Source of the frequency is from the GNSS navigation engine  */
   11804   eQMI_LOC_FREQ_SOURCE_UNKNOWN_V02 = 3, /**<  Source of the frequency is unknown  */
   11805   QMILOCSOURCEOFFREQENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   11806 }qmiLocSourceofFreqEnumT_v02;
   11807 /**
   11808     @}
   11809   */
   11810 
   11811 /** @addtogroup loc_qmi_aggregates
   11812     @{
   11813   */
   11814 typedef struct {
   11815 
   11816   float clockDrift;
   11817   /**<   Receiver clock drift. \n
   11818          - Units: Meters per second
   11819     */
   11820 
   11821   float clockDriftUnc;
   11822   /**<   Receiver clock frift uncertainty. \n
   11823          - Units: Meters per second
   11824     */
   11825 
   11826   qmiLocSourceofFreqEnumT_v02 sourceOfFreq;
   11827   /**<   Source of the clock frequency information.
   11828 
   11829  Valid values: \n
   11830       - eQMI_LOC_FREQ_SOURCE_INVALID (0) --  Source of the frequency is invalid
   11831       - eQMI_LOC_FREQ_SOURCE_EXTERNAL (1) --  Source of the frequency is from an external injection
   11832       - eQMI_LOC_FREQ_SOURCE_PE_CLK_REPORT (2) --  Source of the frequency is from the GNSS navigation engine
   11833       - eQMI_LOC_FREQ_SOURCE_UNKNOWN (3) --  Source of the frequency is unknown
   11834  */
   11835 }qmiLocRcvrClockFrequencyInfoStructT_v02;  /* Type */
   11836 /**
   11837     @}
   11838   */
   11839 
   11840 /** @addtogroup loc_qmi_aggregates
   11841     @{
   11842   */
   11843 typedef struct {
   11844 
   11845   uint8_t leapSec;
   11846   /**<   GPS time leap second delta to UTC time.  \n
   11847          For nonzero values of leapSecUnc, leapSec must be treated as unknown. \n
   11848              - Units: Seconds
   11849     */
   11850 
   11851   uint8_t leapSecUnc;
   11852   /**<   Uncertainty for the GPS leap second. \n
   11853              - Units: Seconds
   11854     */
   11855 }qmiLocLeapSecondInfoStructT_v02;  /* Type */
   11856 /**
   11857     @}
   11858   */
   11859 
   11860 typedef uint8_t qmiLocInterSystemBiasValidMaskT_v02;
   11861 #define QMI_LOC_SYS_TIME_BIAS_VALID_V02 ((qmiLocInterSystemBiasValidMaskT_v02)0x01) /**<  System time bias is valid \n  */
   11862 #define QMI_LOC_SYS_TIME_BIAS_UNC_VALID_V02 ((qmiLocInterSystemBiasValidMaskT_v02)0x02) /**<  System time bias uncertainty is valid  */
   11863 /** @addtogroup loc_qmi_aggregates
   11864     @{
   11865   */
   11866 typedef struct {
   11867 
   11868   qmiLocInterSystemBiasValidMaskT_v02 validMask;
   11869   /**<   Fields that are valid. \n
   11870  Valid values: \n
   11871       - QMI_LOC_SYS_TIME_BIAS_VALID (0x01) --  System time bias is valid \n
   11872       - QMI_LOC_SYS_TIME_BIAS_UNC_VALID (0x02) --  System time bias uncertainty is valid  \n
   11873  */
   11874 
   11875   float timeBias;
   11876   /**<   System 1 to System 2 time bias.  \n
   11877              - Units: Milliseconds
   11878     */
   11879 
   11880   float timeBiasUnc;
   11881   /**<   System 1 to System 2 time bias uncertainty.  \n
   11882              - Units: Milliseconds
   11883     */
   11884 }qmiLocInterSystemBiasStructT_v02;  /* Type */
   11885 /**
   11886     @}
   11887   */
   11888 
   11889 /** @addtogroup loc_qmi_aggregates
   11890     @{
   11891   */
   11892 typedef struct {
   11893 
   11894   qmiLocSvSystemEnumT_v02 system;
   11895   /**<   Specifies the satellite system constellation. */
   11896 
   11897   uint16_t systemWeek;
   11898   /**<   Current system week. \n
   11899       - For GPS: Calculated from midnight, Jan. 6, 1980 \n
   11900       - For BDS: Calculated from 00:00:00 on January 1, 2006 of Coordinated Universal Time (UTC) \n
   11901       - For GAL: Calculated from 00:00 UT on Sunday August 22, 1999 (midnight between August 21 and August 22) \n
   11902       If the week is unknown, set this value to 65535. \n
   11903        - Units: Weeks */
   11904 
   11905   uint32_t systemMsec;
   11906   /**<   Amount of time into the current week. \n
   11907        - Units: Milliseconds */
   11908 
   11909   float systemClkTimeBias;
   11910   /**<   System clock time bias (submilliseconds). \n
   11911             - Units: Milliseconds
   11912         (system time = systemMsec - systemClkTimeBias)
   11913     */
   11914 
   11915   float systemClkTimeUncMs;
   11916   /**<   Single-sided maximum time bias uncertainty. \n
   11917                 - Units: Milliseconds
   11918     */
   11919 }qmiLocGnssTimeStructT_v02;  /* Type */
   11920 /**
   11921     @}
   11922   */
   11923 
   11924 /** @addtogroup loc_qmi_aggregates
   11925     @{
   11926   */
   11927 typedef struct {
   11928 
   11929   uint8_t gloFourYear;
   11930   /**<   GLONASS four year number from 1996. Refer to GLONASS ICD. \n
   11931         Applicable only for GLONASS and is to be ignored for other constellations. \n
   11932         If unknown, set this value to 255.
   11933     */
   11934 
   11935   uint16_t gloDays;
   11936   /**<   GLONASS day number in four years. Refer to GLONASS ICD. \n
   11937         Applicable only for GLONASS and is to be ignored for other constellations. \n
   11938         If unknown, set this value to 65535.
   11939     */
   11940 
   11941   uint32_t gloMsec;
   11942   /**<   GLONASS time of day in msec. Refer to GLONASS ICD.    \n
   11943         - Units: Milliseconds
   11944     */
   11945 
   11946   float gloClkTimeBias;
   11947   /**<   System clock time bias (submillisecond). \n
   11948             - Units: Milliseconds
   11949         (system time = systemMsec - systemClkTimeBias)
   11950     */
   11951 
   11952   float gloClkTimeUncMs;
   11953   /**<   Single-sided maximum time bias uncertainty. \n
   11954                 - Units: Milliseconds
   11955     */
   11956 }qmiLocGloTimeStructT_v02;  /* Type */
   11957 /**
   11958     @}
   11959   */
   11960 
   11961 /** @addtogroup loc_qmi_aggregates
   11962     @{
   11963   */
   11964 typedef struct {
   11965 
   11966   uint32_t refFCount;
   11967   /**<   Receiver frame counter value at a reference tick. */
   11968 
   11969   uint8_t systemRtc_valid;
   11970   /**<   Validity indicator for the system RTC. */
   11971 
   11972   uint64_t systemRtcMs;
   11973   /**<   Platform system RTC value. \n
   11974         - Units: Milliseconds
   11975     */
   11976 
   11977   qmiLocTimeSourceEnumT_v02 sourceOfTime;
   11978   /**<   Source of the time information.
   11979 
   11980  Valid values: \n
   11981       - eQMI_LOC_TIME_SRC_INVALID (0) --  Invalid time.
   11982       - eQMI_LOC_TIME_SRC_NETWORK_TIME_TRANSFER (1) --  Time is set by the 1X system
   11983       - eQMI_LOC_TIME_SRC_NETWORK_TIME_TAGGING (2) --  Time is set by WCDMA/GSM time tagging (i.e.,
   11984        associating network time with GPS time)
   11985       - eQMI_LOC_TIME_SRC_EXTERNAL_INPUT (3) --  Time is set by an external injection
   11986       - eQMI_LOC_TIME_SRC_TOW_DECODE (4) --  Time is set after decoding over-the-air GPS navigation data
   11987        from one GPS satellite
   11988       - eQMI_LOC_TIME_SRC_TOW_CONFIRMED (5) --  Time is set after decoding over-the-air GPS navigation data
   11989        from multiple satellites
   11990       - eQMI_LOC_TIME_SRC_TOW_AND_WEEK_CONFIRMED (6) --  Both time of the week and the GPS week number are known
   11991       - eQMI_LOC_TIME_SRC_NAV_SOLUTION (7) --  Time is set by the position engine after the fix is obtained
   11992       - eQMI_LOC_TIME_SRC_SOLVE_FOR_TIME (8) --  Time is set by the position engine after performing SFT;
   11993        this is done when the clock time uncertainty is large
   11994       - eQMI_LOC_TIME_SRC_GLO_TOW_DECODE (9) --  Time is set after decoding GLO satellites
   11995       - eQMI_LOC_TIME_SRC_TIME_TRANSFORM (10) --  Time is set after transforming the GPS to GLO time
   11996       - eQMI_LOC_TIME_SRC_WCDMA_SLEEP_TIME_TAGGING (11) --  Time is set by the sleep time tag provided by the WCDMA network
   11997       - eQMI_LOC_TIME_SRC_GSM_SLEEP_TIME_TAGGING (12) --  Time is set by the sleep time tag provided by the GSM network
   11998       - eQMI_LOC_TIME_SRC_UNKNOWN (13) --  Source of the time is unknown
   11999       - eQMI_LOC_TIME_SRC_SYSTEM_TIMETICK (14) --  Time is derived from the system clock (better known as the slow clock);
   12000        GNSS time is maintained irrespective of the GNSS receiver state
   12001       - eQMI_LOC_TIME_SRC_QZSS_TOW_DECODE (15) --  Time is set after decoding QZSS satellites
   12002       - eQMI_LOC_TIME_SRC_BDS_TOW_DECODE (16) --  Time is set after decoding BDS satellites
   12003  */
   12004 }qmiLocGnssTimeExtStructT_v02;  /* Type */
   12005 /**
   12006     @}
   12007   */
   12008 
   12009 typedef uint64_t qmiLocSvMeasStatusValidMaskT_v02;
   12010 #define QMI_LOC_MASK_MEAS_STATUS_SM_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000001ull) /**<  Satellite time in submilliseconds (code-phase)  */
   12011 #define QMI_LOC_MASK_MEAS_STATUS_SB_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000002ull) /**<  Satellite sub-bit time  */
   12012 #define QMI_LOC_MASK_MEAS_STATUS_MS_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000004ull) /**<  Satellite time in milliseconds  */
   12013 #define QMI_LOC_MASK_MEAS_STATUS_BE_CONFIRM_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000008ull) /**<  Signal bit edge is confirmed  */
   12014 #define QMI_LOC_MASK_MEAS_STATUS_VEL_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000010ull) /**<  Satellite Doppler is measured  */
   12015 #define QMI_LOC_MASK_MEAS_STATUS_VEL_FINE_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000020ull) /**<  Fine/coarse Doppler measurement indicator  */
   12016 #define QMI_LOC_MASK_MEAS_STATUS_FROM_RNG_DIFF_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000200ull) /**<  Range update from satellite differences  */
   12017 #define QMI_LOC_MASK_MEAS_STATUS_FROM_VE_DIFF_STAT_BIT_VALID_V02 ((qmiLocSvMeasStatusValidMaskT_v02)0x00000400ull) /**<  Doppler update from satellite differences  */
   12018 typedef uint64_t qmiLocSvMeasStatusMaskT_v02;
   12019 #define QMI_LOC_MASK_MEAS_STATUS_SM_VALID_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000001ull) /**<  Satellite time in submilliseconds (code phase) is known  */
   12020 #define QMI_LOC_MASK_MEAS_STATUS_SB_VALID_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000002ull) /**<  Satellite sub-bit time is known  */
   12021 #define QMI_LOC_MASK_MEAS_STATUS_MS_VALID_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000004ull) /**<  Satellite time in milliseconds is known  */
   12022 #define QMI_LOC_MASK_MEAS_STATUS_BE_CONFIRM_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000008ull) /**<  Signal bit edge is confirmed   */
   12023 #define QMI_LOC_MASK_MEAS_STATUS_VELOCITY_VALID_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000010ull) /**<  Satellite Doppler is measured  */
   12024 #define QMI_LOC_MASK_MEAS_STATUS_VELOCITY_FINE_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000020ull) /**<  TRUE: Fine Doppler is measured, FALSE: Coarse Doppler is measured  */
   12025 #define QMI_LOC_MASK_MEAS_STATUS_FROM_RNG_DIFF_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000200ull) /**<  Range update from satellite differences is measured  */
   12026 #define QMI_LOC_MASK_MEAS_STATUS_FROM_VE_DIFF_V02 ((qmiLocSvMeasStatusMaskT_v02)0x00000400ull) /**<  Doppler update from satellite differences is measured  */
   12027 /** @addtogroup loc_qmi_aggregates
   12028     @{
   12029   */
   12030 typedef struct {
   12031 
   12032   uint32_t svTimeMs;
   12033   /**<       Satellite time in milliseconds. \n
   12034             - For GPS, BDS, and GAL: Range is 0 thru (604800000-1) \n
   12035             - For GLONASS: Range is 0 thru (86400000-1) \n
   12036             - Units: Milliseconds \vspace{4pt} \n
   12037 
   12038             This is valid when the QMI_LOC_MEAS_STATUS_MS_VALID bit is set
   12039             in the measurement status. \vspace{4pt} \n
   12040 
   12041             @note1hang All SV times in the current measurement block are
   12042             alredy propagated to a common reference time epoch. \n
   12043     */
   12044 
   12045   float svTimeSubMs;
   12046   /**<       Satellite time in submilliseconds. \n
   12047             Total SV Time = svMs + svSubMs \n
   12048                 - Units: Milliseconds
   12049     */
   12050 
   12051   float svTimeUncMs;
   12052   /**<    Satellite time uncertainty. \n
   12053                 - Units: Milliseconds
   12054     */
   12055 
   12056   float dopplerShift;
   12057   /**<   Satellite Doppler. \n
   12058              - Units: Meters per second
   12059     */
   12060 
   12061   float dopplerShiftUnc;
   12062   /**<   Satellite Doppler uncertainty. \n
   12063              - Units: Meters per second
   12064     */
   12065 
   12066   uint8_t dopplerAccel_valid;
   12067   /**<   Validity for Doppler acceleration. */
   12068 
   12069   float dopplerAccel;
   12070   /**<   Satellite Doppler acceleration. \n
   12071              - Units: Hz/second
   12072     */
   12073 }qmiLocSVTimeSpeedStructT_v02;  /* Type */
   12074 /**
   12075     @}
   12076   */
   12077 
   12078 typedef uint16_t qmiLocMeasFieldsValidMaskT_v02;
   12079 #define QMI_LOC_SV_HEALTH_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x01) /**<  SV health information is valid  */
   12080 #define QMI_LOC_SV_MULTIPATH_EST_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x02) /**<  Multipath estimate for SV is valid  */
   12081 #define QMI_LOC_SV_FINE_SPEED_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x04) /**<  Fine speed for SV is valid  */
   12082 #define QMI_LOC_SV_FINE_SPEED_UNC_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x08) /**<  Fine speed uncertainty for SV is valid  */
   12083 #define QMI_LOC_SV_CARRIER_PHASE_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x10) /**<  Carrier phase for SV is valid  */
   12084 #define QMI_LOC_SV_SV_DIRECTION_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x20) /**<  SV direction information for SV is valid  */
   12085 #define QMI_LOC_SV_CYCLESLIP_COUNT_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x40) /**<  Cycle slip count information is valid  */
   12086 #define QMI_LOC_SV_LOSSOFLOCK_VALID_V02 ((qmiLocMeasFieldsValidMaskT_v02)0x80) /**<  Loss of lock information is valid  */
   12087 /** @addtogroup loc_qmi_aggregates
   12088     @{
   12089   */
   12090 typedef struct {
   12091 
   12092   uint16_t gnssSvId;
   12093   /**<   GNSS SV ID.
   12094        \begin{itemize1}
   12095        \item    Range: \begin{itemize1}
   12096          \item    For GPS:     1 to 32
   12097          \item    For SBAS:    33 to 64
   12098          \item    For GLONASS: 65 to 96. When slot-number to SV ID mapping is unknown, set as 255.
   12099          \item    For BDS:     201 to 237
   12100        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
   12101 
   12102   uint8_t gloFrequency;
   12103   /**<   GLONASS frequency number + 7. \n
   12104          Valid only for a GLONASS system and
   12105          is to be ignored for all other systems. \n
   12106              - Range: 1 to 14
   12107     */
   12108 
   12109   qmiLocSvStatusEnumT_v02 svStatus;
   12110   /**<   Satellite search state.
   12111 
   12112  Valid values: \n
   12113       - eQMI_LOC_SV_STATUS_IDLE (1) --  SV is not being actively processed
   12114       - eQMI_LOC_SV_STATUS_SEARCH (2) --  The system is searching for this SV
   12115       - eQMI_LOC_SV_STATUS_TRACK (3) --  SV is being tracked
   12116  */
   12117 
   12118   qmiLocMeasFieldsValidMaskT_v02 validMask;
   12119   /**<   Validity mask (0 = Not valid; 1 = Valid). \n
   12120 
   12121       - QMI_LOC_SV_HEALTH_VALID (0x01) --  SV health information is valid
   12122       - QMI_LOC_SV_MULTIPATH_EST_VALID (0x02) --  Multipath estimate for SV is valid
   12123       - QMI_LOC_SV_FINE_SPEED_VALID (0x04) --  Fine speed for SV is valid
   12124       - QMI_LOC_SV_FINE_SPEED_UNC_VALID (0x08) --  Fine speed uncertainty for SV is valid
   12125       - QMI_LOC_SV_CARRIER_PHASE_VALID (0x10) --  Carrier phase for SV is valid
   12126       - QMI_LOC_SV_SV_DIRECTION_VALID (0x20) --  SV direction information for SV is valid
   12127       - QMI_LOC_SV_CYCLESLIP_COUNT_VALID (0x40) --  Cycle slip count information is valid
   12128       - QMI_LOC_SV_LOSSOFLOCK_VALID (0x80) --  Loss of lock information is valid
   12129  */
   12130 
   12131   uint8_t healthStatus;
   12132   /**<   Health status. \n
   12133          \begin{itemize1}
   12134          - Range: 0 to 1, where  0 = unhealthy, 1 = healthy
   12135     */
   12136 
   12137   qmiLocSvInfoMaskT_v02 svInfoMask;
   12138   /**<   Indicates whether almanac and ephemeris information is available.
   12139 
   12140  Valid values: \n
   12141       - QMI_LOC_SVINFO_MASK_HAS_EPHEMERIS (0x01) --  Ephemeris is available for this SV
   12142       - QMI_LOC_SVINFO_MASK_HAS_ALMANAC (0x02) --  Almanac is available for this SV
   12143  */
   12144 
   12145   qmiLocSvMeasStatusValidMaskT_v02 validMeasStatusMask;
   12146   /**<   Validity mask for measurement status information. \n
   12147  A set bit in validMeasStatusMask indicates that the corresponding bit
   12148  in measurementStatus has valid status information: \n
   12149  Valid masks: \n
   12150       - QMI_LOC_MASK_MEAS_STATUS_SM_STAT_BIT_VALID (0x00000001) --  Satellite time in submilliseconds (code-phase)
   12151       - QMI_LOC_MASK_MEAS_STATUS_SB_STAT_BIT_VALID (0x00000002) --  Satellite sub-bit time
   12152       - QMI_LOC_MASK_MEAS_STATUS_MS_STAT_BIT_VALID (0x00000004) --  Satellite time in milliseconds
   12153       - QMI_LOC_MASK_MEAS_STATUS_BE_CONFIRM_STAT_BIT_VALID (0x00000008) --  Signal bit edge is confirmed
   12154       - QMI_LOC_MASK_MEAS_STATUS_VEL_STAT_BIT_VALID (0x00000010) --  Satellite Doppler is measured
   12155       - QMI_LOC_MASK_MEAS_STATUS_VEL_FINE_STAT_BIT_VALID (0x00000020) --  Fine/coarse Doppler measurement indicator
   12156       - QMI_LOC_MASK_MEAS_STATUS_FROM_RNG_DIFF_STAT_BIT_VALID (0x00000200) --  Range update from satellite differences
   12157       - QMI_LOC_MASK_MEAS_STATUS_FROM_VE_DIFF_STAT_BIT_VALID (0x00000400) --  Doppler update from satellite differences
   12158 \vspace{4pt}
   12159  Additionally, MSB 0xFFC0000000000000 bits indicate the validity of DONT_USE bits. \n
   12160 
   12161  */
   12162 
   12163   qmiLocSvMeasStatusMaskT_v02 measurementStatus;
   12164   /**<   Bitmask indicating the SV measurement status.
   12165 
   12166  Valid bitmasks: \n
   12167       - QMI_LOC_MASK_MEAS_STATUS_SM_VALID (0x00000001) --  Satellite time in submilliseconds (code phase) is known
   12168       - QMI_LOC_MASK_MEAS_STATUS_SB_VALID (0x00000002) --  Satellite sub-bit time is known
   12169       - QMI_LOC_MASK_MEAS_STATUS_MS_VALID (0x00000004) --  Satellite time in milliseconds is known
   12170       - QMI_LOC_MASK_MEAS_STATUS_BE_CONFIRM (0x00000008) --  Signal bit edge is confirmed
   12171       - QMI_LOC_MASK_MEAS_STATUS_VELOCITY_VALID (0x00000010) --  Satellite Doppler is measured
   12172       - QMI_LOC_MASK_MEAS_STATUS_VELOCITY_FINE (0x00000020) --  TRUE: Fine Doppler is measured, FALSE: Coarse Doppler is measured
   12173       - QMI_LOC_MASK_MEAS_STATUS_FROM_RNG_DIFF (0x00000200) --  Range update from satellite differences is measured
   12174       - QMI_LOC_MASK_MEAS_STATUS_FROM_VE_DIFF (0x00000400) --  Doppler update from satellite differences is measured
   12175 
   12176  If any MSB bit in 0xFFC0000000000000 DONT_USE is set, the measurement
   12177  must not be used by the client.
   12178  */
   12179 
   12180   uint16_t CNo;
   12181   /**<   Carrier to noise ratio.  \n
   12182              - Units: dBHz \n
   12183              - Scale: 0.1
   12184     */
   12185 
   12186   uint16_t gloRfLoss;
   12187   /**<   GLONASS RF loss reference to the antenna. \n
   12188                  - Units: dB \n
   12189                  - Scale: 0.1
   12190     */
   12191 
   12192   int32_t measLatency;
   12193   /**<   Age of the measurement. A positive value means the measurement precedes the reference time. \n
   12194                  - Units: Milliseconds
   12195     */
   12196 
   12197   qmiLocSVTimeSpeedStructT_v02 svTimeSpeed;
   12198   /**<   SV time and speed information. */
   12199 
   12200   uint8_t lossOfLock;
   12201   /**<   Loss of signal lock indicator.  \n
   12202              - 0: Signal is in continuous track \n
   12203              - 1: Signal is not in track
   12204     */
   12205 
   12206   float multipathEstimate;
   12207   /**<   Estimate of multipath in a measurement. \n
   12208              - Units: Meters
   12209     */
   12210 
   12211   float fineSpeed;
   12212   /**<   Carrier phase derived speed. \n
   12213              - Units: Meters per second
   12214     */
   12215 
   12216   float fineSpeedUnc;
   12217   /**<   Carrier phase derived speed uncertainty. \n
   12218              - Units: Meters per second
   12219     */
   12220 
   12221   double carrierPhase;
   12222   /**<   Carrier phase measurement (L1 cycles).
   12223     */
   12224 
   12225   uint8_t cycleSlipCount;
   12226   /**<   Increments when a cycle slip is detected. */
   12227 
   12228   float svAzimuth;
   12229   /**<   Satellite azimuth. \n
   12230                 - Units: Radians \n
   12231                 - Range: 0 to 2*pi()
   12232     */
   12233 
   12234   float svElevation;
   12235   /**<   Satellite elevation. \n
   12236                 - Units: Radians \n
   12237                 - Range: 0 to pi()/2
   12238     */
   12239 }qmiLocSVMeasurementStructT_v02;  /* Type */
   12240 /**
   12241     @}
   12242   */
   12243 
   12244 /** @addtogroup loc_qmi_messages
   12245     @{
   12246   */
   12247 /** Indication Message; Sends a satellite measurement report to the control point. */
   12248 typedef struct {
   12249 
   12250   /* Mandatory */
   12251   /*  Current Message Sequence Number  */
   12252   uint8_t seqNum;
   12253   /**<   Current message number. Used for segmentation/assembly of measurement reports. */
   12254 
   12255   /* Mandatory */
   12256   /*  Maximum Number of Messages to be Sent for Present Time Epoch */
   12257   uint8_t maxMessageNum;
   12258   /**<   Maximum number of messages that are to be sent for the present time epoch. */
   12259 
   12260   /* Mandatory */
   12261   /*   Specifies Satellite System Constellation of This Report */
   12262   qmiLocSvSystemEnumT_v02 system;
   12263   /**<   Specifies the satellite system constellation of this report.
   12264 
   12265  Valid values: \n
   12266       - eQMI_LOC_SV_SYSTEM_GPS (1) --  GPS satellite
   12267       - eQMI_LOC_SV_SYSTEM_GALILEO (2) --  GALILEO satellite
   12268       - eQMI_LOC_SV_SYSTEM_SBAS (3) --  SBAS satellite
   12269       - eQMI_LOC_SV_SYSTEM_COMPASS (4) --  COMPASS satellite
   12270       - eQMI_LOC_SV_SYSTEM_GLONASS (5) --  GLONASS satellite
   12271       - eQMI_LOC_SV_SYSTEM_BDS (6) --  BDS satellite
   12272  */
   12273 
   12274   /* Optional */
   12275   /*  GNSS Receiver Clock Frequency Information */
   12276   uint8_t rcvrClockFrequencyInfo_valid;  /**< Must be set to true if rcvrClockFrequencyInfo is being passed */
   12277   qmiLocRcvrClockFrequencyInfoStructT_v02 rcvrClockFrequencyInfo;
   12278 
   12279   /* Optional */
   12280   /*  Leap Second Information */
   12281   uint8_t leapSecondInfo_valid;  /**< Must be set to true if leapSecondInfo is being passed */
   12282   qmiLocLeapSecondInfoStructT_v02 leapSecondInfo;
   12283 
   12284   /* Optional */
   12285   /*  GPS to GLONASS Intersystem Time Bias */
   12286   uint8_t gpsGloInterSystemBias_valid;  /**< Must be set to true if gpsGloInterSystemBias is being passed */
   12287   qmiLocInterSystemBiasStructT_v02 gpsGloInterSystemBias;
   12288   /**<   \vspace{4pt} \n
   12289        This is reported if both GPS and GLONASS system
   12290        information reporting are enabled. \n
   12291        - System 1: GPS \n
   12292        - System 2: GLONASS
   12293   */
   12294 
   12295   /* Optional */
   12296   /*  GPS to BDS Intersystem Time Bias */
   12297   uint8_t gpsBdsInterSystemBias_valid;  /**< Must be set to true if gpsBdsInterSystemBias is being passed */
   12298   qmiLocInterSystemBiasStructT_v02 gpsBdsInterSystemBias;
   12299   /**<   \vspace{4pt} \n
   12300        This is reported if both GPS and BDS system
   12301        information reporting are enabled. \n
   12302        - System 1: GPS \n
   12303        - System 2: BDS
   12304   */
   12305 
   12306   /* Optional */
   12307   /*  GPS to GALILEO Intersystem Time Bias */
   12308   uint8_t gpsGalInterSystemBias_valid;  /**< Must be set to true if gpsGalInterSystemBias is being passed */
   12309   qmiLocInterSystemBiasStructT_v02 gpsGalInterSystemBias;
   12310   /**<   \vspace{4pt} \n
   12311        This is reported if both GPS and GALILEO system
   12312        information reporting are enabled. \n
   12313        - System 1: GPS \n
   12314        - System 2: GALILEO
   12315   */
   12316 
   12317   /* Optional */
   12318   /*  BDS to GLONASS Intersystem Time Bias */
   12319   uint8_t bdsGloInterSystemBias_valid;  /**< Must be set to true if bdsGloInterSystemBias is being passed */
   12320   qmiLocInterSystemBiasStructT_v02 bdsGloInterSystemBias;
   12321   /**<   \vspace{4pt} \n
   12322        This is reported if both BDS and GLONASS system
   12323        information reporting are enabled. \n
   12324        - System 1: BDS \n
   12325        - System 2: GLONASS
   12326   */
   12327 
   12328   /* Optional */
   12329   /*  GAL to GLONASS Intersystem Time Bias */
   12330   uint8_t galGloInterSystemBias_valid;  /**< Must be set to true if galGloInterSystemBias is being passed */
   12331   qmiLocInterSystemBiasStructT_v02 galGloInterSystemBias;
   12332   /**<   \vspace{4pt} \n
   12333        This is reported if both GAL and GLONASS system
   12334        information reporting are enabled. \n
   12335        - System 1: GAL \n
   12336        - System 2: GLONASS
   12337   */
   12338 
   12339   /* Optional */
   12340   /*  GAL to BDS Intersystem Time Bias */
   12341   uint8_t galBdsInterSystemBias_valid;  /**< Must be set to true if galBdsInterSystemBias is being passed */
   12342   qmiLocInterSystemBiasStructT_v02 galBdsInterSystemBias;
   12343   /**<   \vspace{4pt} \n
   12344        This is reported if both GAL and BDS system
   12345        information reporting are enabled. \n
   12346        - System 1: GAL \n
   12347        - System 2: BDS
   12348   */
   12349 
   12350   /* Optional */
   12351   /*  Satellite System Time Information for GPS, BDS, GAL Constellation */
   12352   uint8_t systemTime_valid;  /**< Must be set to true if systemTime is being passed */
   12353   qmiLocGnssTimeStructT_v02 systemTime;
   12354 
   12355   /* Optional */
   12356   /*  GLONASS System Time Information */
   12357   uint8_t gloTime_valid;  /**< Must be set to true if gloTime is being passed */
   12358   qmiLocGloTimeStructT_v02 gloTime;
   12359 
   12360   /* Optional */
   12361   /*  Extended Time Information */
   12362   uint8_t systemTimeExt_valid;  /**< Must be set to true if systemTimeExt is being passed */
   12363   qmiLocGnssTimeExtStructT_v02 systemTimeExt;
   12364 
   12365   /* Optional */
   12366   /*  Satellite System Measurement Report for Enabled Constellation */
   12367   uint8_t svMeasurement_valid;  /**< Must be set to true if svMeasurement is being passed */
   12368   uint32_t svMeasurement_len;  /**< Must be set to # of elements in svMeasurement */
   12369   qmiLocSVMeasurementStructT_v02 svMeasurement[QMI_LOC_SV_MEAS_LIST_MAX_SIZE_V02];
   12370 }qmiLocEventGnssSvMeasInfoIndMsgT_v02;  /* Message */
   12371 /**
   12372     @}
   12373   */
   12374 
   12375 typedef uint16_t qmiLocSvPolyStatusMaskT_v02;
   12376 #define QMI_LOC_SV_POLY_SRC_ALM_CORR_V02 ((qmiLocSvPolyStatusMaskT_v02)0x01) /**<  Polynomials based on XTRA  */
   12377 #define QMI_LOC_SV_POLY_GLO_STR4_V02 ((qmiLocSvPolyStatusMaskT_v02)0x02) /**<  GLONASS string 4 has been received  */
   12378 typedef uint16_t qmiLocSvPolyStatusMaskValidityT_v02;
   12379 #define QMI_LOC_SV_POLY_SRC_ALM_CORR_VALID_V02 ((qmiLocSvPolyStatusMaskValidityT_v02)0x01) /**<  Validity status for QMI_LOC_SV_POLY_SRC_ALM_CORR  */
   12380 #define QMI_LOC_SV_POLY_GLO_STR4_VALID_V02 ((qmiLocSvPolyStatusMaskValidityT_v02)0x02) /**<  Validity status for QMI_LOC_SV_POLY_GLO_STR4   */
   12381 /** @addtogroup loc_qmi_messages
   12382     @{
   12383   */
   12384 /** Indication Message; Sends a satellite polynomial report to the control point. */
   12385 typedef struct {
   12386 
   12387   /* Mandatory */
   12388   /*  GNSS SV Polynomial Report */
   12389   uint16_t gnssSvId;
   12390   /**<   GNSS SV ID. \begin{itemize1}
   12391        \item    Range:    \begin{itemize1}
   12392          \item    For GPS:     1 to 32
   12393          \item    For SBAS:    33 to 64
   12394          \item    For GLONASS: 65 to 96 (when the slot number to SV ID mapping is unknown, set to 255)
   12395          \item    For BDS:     201 to 237
   12396        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
   12397 
   12398   /* Mandatory */
   12399   /*  Reference Time for Polynomial Calculations */
   12400   double T0;
   12401   /**<    Reference time for polynomial calculations. \n
   12402            - GPS: Seconds in the week \n
   12403            - GLO: Full seconds since Jan. 1, 1996 \n
   12404            - BDS: Full seconds since Jan. 1, 2006
   12405     */
   12406 
   12407   /* Mandatory */
   12408   /*  SV Polynomial Validity Status */
   12409   qmiLocSvPolyStatusMaskValidityT_v02 svPolyFlagValid;
   12410   /**<   Validity mask for bits in svPolyFlags. A set bit in svPolyFlagValid indicates that a
   12411  corresponding bit in svPolyFlags has valid status information.
   12412 
   12413  Valid bitmasks: \n
   12414       - QMI_LOC_SV_POLY_SRC_ALM_CORR_VALID (0x01) --  Validity status for QMI_LOC_SV_POLY_SRC_ALM_CORR
   12415       - QMI_LOC_SV_POLY_GLO_STR4_VALID (0x02) --  Validity status for QMI_LOC_SV_POLY_GLO_STR4   */
   12416 
   12417   /* Mandatory */
   12418   /*  SV Polynomial Report Status */
   12419   qmiLocSvPolyStatusMaskT_v02 svPolyFlags;
   12420   /**<   Flags indicating the status of a polynomial report.
   12421 
   12422  Valid bitmasks: \n
   12423       - QMI_LOC_SV_POLY_SRC_ALM_CORR (0x01) --  Polynomials based on XTRA
   12424       - QMI_LOC_SV_POLY_GLO_STR4 (0x02) --  GLONASS string 4 has been received  */
   12425 
   12426   /* Optional */
   12427   /*  Polynomial Coefficient's 0th Term for X, Y, and Z Coordinates */
   12428   uint8_t polyCoeffXYZ0_valid;  /**< Must be set to true if polyCoeffXYZ0 is being passed */
   12429   double polyCoeffXYZ0[QMI_LOC_SV_POLY_XYZ_0_TH_ORDER_COEFF_SIZE_V02];
   12430   /**<   Polynomial coefficient's 0th term for X, Y, and Z coordinates (C0X, C0Y, C0Z). \n
   12431              - Units: Meters
   12432     */
   12433 
   12434   /* Optional */
   12435   /*  Polynomial Coefficient's 1st, 2nd, and 3rd Terms for X, Y, and Z Coordinates */
   12436   uint8_t polyCoefXYZN_valid;  /**< Must be set to true if polyCoefXYZN is being passed */
   12437   double polyCoefXYZN[QMI_LOC_SV_POLY_XYZ_N_TH_ORDER_COEFF_SIZE_V02];
   12438   /**<    Polynomial coefficient's 1st, 2nd, and 3rd terms for X, Y, and Z coordinates (C1X, C2X,... C2Z, C3Z). \begin{itemize1}
   12439           \item Units: \begin{itemize1}
   12440              \item 1st term -- Meters/second
   12441              \item 2nd term -- Meters/second^2
   12442              \item 3rd term -- Meters/seconds^3 \vspace{-0.18in} \end{itemize1} end{itemize1}
   12443     */
   12444 
   12445   /* Optional */
   12446   /*  Polynomial Coefficients for Satellite Clock Bias Correction */
   12447   uint8_t polyCoefClockBias_valid;  /**< Must be set to true if polyCoefClockBias is being passed */
   12448   float polyCoefClockBias[QMI_LOC_SV_POLY_SV_CLKBIAS_COEFF_SIZE_V02];
   12449   /**<    Polynomial coefficients for satellite clock bias correction (C0T, C1T, C2T, C3T). \begin{itemize1}
   12450           \item Units: \begin{itemize1}
   12451              \item 0th term -- Milliseconds/second
   12452              \item 1st term -- Milliseconds/second^2
   12453              \item 2nd term -- Milliseconds/second^3
   12454              \item 3rd term -- Milliseconds/second^4 \vspace{-0.18in} \end{itemize1} end{itemize1}
   12455     */
   12456 
   12457   /* Optional */
   12458   /*  GLONASS Frequency Number */
   12459   uint8_t gloFrequency_valid;  /**< Must be set to true if gloFrequency is being passed */
   12460   uint8_t gloFrequency;
   12461   /**<   GLONASS frequency number + 7. \n
   12462          Valid only for GLONASS systems and
   12463          must be ignored for all other systems. \n
   12464              - Range: 1 to 14
   12465     */
   12466 
   12467   /* Optional */
   12468   /*  Ephemeris Reference Time */
   12469   uint8_t IODE_valid;  /**< Must be set to true if IODE is being passed */
   12470   uint16_t IODE;
   12471   /**<   Ephemeris reference time. \n
   12472          - GPS -- Issue of data ephemeris used (unitless) \n
   12473          - GLONASS -- Tb 7-bit
   12474     */
   12475 
   12476   /* Optional */
   12477   /*  Enhanced Reference Time */
   12478   uint8_t enhancedIOD_valid;  /**< Must be set to true if enhancedIOD is being passed */
   12479   uint32_t enhancedIOD;
   12480   /**<   For BDS ephemeris, this is TOE.
   12481     */
   12482 
   12483   /* Optional */
   12484   /*  SV Position Uncertainty */
   12485   uint8_t svPosUnc_valid;  /**< Must be set to true if svPosUnc is being passed */
   12486   float svPosUnc;
   12487   /**<    SV position uncertainty. \n
   12488              - Units: Meters
   12489     */
   12490 
   12491   /* Optional */
   12492   /*  Iono Delay */
   12493   uint8_t ionoDelay_valid;  /**< Must be set to true if ionoDelay is being passed */
   12494   float ionoDelay;
   12495   /**<   Ionospheric delay at T0. \n
   12496              - Units: Meters
   12497     */
   12498 
   12499   /* Optional */
   12500   /*  Iono Delay Rate */
   12501   uint8_t ionoDot_valid;  /**< Must be set to true if ionoDot is being passed */
   12502   float ionoDot;
   12503   /**<   Ionospheric delay rate. \n
   12504              - Units: Meters/second
   12505     */
   12506 
   12507   /* Optional */
   12508   /*  SBAS Iono Delay */
   12509   uint8_t sbasIonoDelay_valid;  /**< Must be set to true if sbasIonoDelay is being passed */
   12510   float sbasIonoDelay;
   12511   /**<   SBAS ionospheric delay at T0. \n
   12512              - Units: Meters
   12513     */
   12514 
   12515   /* Optional */
   12516   /*  SBAS Iono Delay Rate */
   12517   uint8_t sbasIonoDot_valid;  /**< Must be set to true if sbasIonoDot is being passed */
   12518   float sbasIonoDot;
   12519   /**<   SBAS ionospheric delay rate. \n
   12520              - Units: Meters/second
   12521     */
   12522 
   12523   /* Optional */
   12524   /*  Tropospheric Delay */
   12525   uint8_t tropoDelay_valid;  /**< Must be set to true if tropoDelay is being passed */
   12526   float tropoDelay;
   12527   /**<   Tropospheric delay. \n
   12528              - Units: Meters
   12529     */
   12530 
   12531   /* Optional */
   12532   /*  Satellite Elevation */
   12533   uint8_t elevation_valid;  /**< Must be set to true if elevation is being passed */
   12534   float elevation;
   12535   /**<   Satellite elevation at T0. \n
   12536              - Units: Radians
   12537     */
   12538 
   12539   /* Optional */
   12540   /*  Satellite Elevation Rate */
   12541   uint8_t elevationDot_valid;  /**< Must be set to true if elevationDot is being passed */
   12542   float elevationDot;
   12543   /**<   Satellite elevation rate. \n
   12544              - Units: Radians/second
   12545     */
   12546 
   12547   /* Optional */
   12548   /*  Satellite Elevation Uncertainty */
   12549   uint8_t elenationUnc_valid;  /**< Must be set to true if elenationUnc is being passed */
   12550   float elenationUnc;
   12551   /**<   SV elevation uncertainty. \n
   12552              - Units: Radians
   12553     */
   12554 
   12555   /* Optional */
   12556   /*  Polynomial Coefficients for SV Velocity */
   12557   uint8_t velCoef_valid;  /**< Must be set to true if velCoef is being passed */
   12558   double velCoef[QMI_LOC_SV_POLY_VELOCITY_COEF_SIZE_V02];
   12559   /**<   Polynomial coefficients for SV velocity (C0X, C1X, C2X, C3X,... C2Z, C3Z). \begin{itemize1}
   12560          \item Units: \begin{itemize1}
   12561             \item 0th term -- Meters/second
   12562             \item 1st term -- Meters/second^2
   12563             \item 2nd term -- Meters/second^3
   12564             \item 3rd term -- Meters/second^4 \vspace{-0.18in} \end{itemize1} end{itemize1}
   12565     */
   12566 }qmiLocEventGnssSvPolyIndMsgT_v02;  /* Message */
   12567 /**
   12568     @}
   12569   */
   12570 
   12571 /** @addtogroup loc_qmi_aggregates
   12572     @{
   12573   */
   12574 typedef struct {
   12575 
   12576   uint8_t wifiApMacAddress[QMI_LOC_WIFI_MAC_ADDR_LENGTH_V02];
   12577   /**<   MAC address of the Wi-Fi AP. */
   12578 }qmiLocWifiApMacAddressStructT_v02;  /* Type */
   12579 /**
   12580     @}
   12581   */
   12582 
   12583 /** @addtogroup loc_qmi_aggregates
   12584     @{
   12585   */
   12586 typedef struct {
   12587 
   12588   char uuid[QMI_LOC_MAX_IBEACON_UUID_STR_LENGTH_V02 + 1];
   12589   /**<   NULL-terminated IBeacon identifier string; a 128-bit value. */
   12590 
   12591   uint32_t majorNumber;
   12592   /**<   IBeacon major number.*/
   12593 
   12594   uint32_t minorNumber;
   12595   /**<   IBeacon minor number.*/
   12596 }qmiLocIBeaconIdStructT_v02;  /* Type */
   12597 /**
   12598     @}
   12599   */
   12600 
   12601 /** @addtogroup loc_qmi_messages
   12602     @{
   12603   */
   12604 /** Request Message; Used by the control point to inject the Geofence context. */
   12605 typedef struct {
   12606 
   12607   /* Mandatory */
   12608   /*  Transaction ID */
   12609   uint32_t transactionId;
   12610   /**<   Identifies the transaction. The transaction ID
   12611        is returned in the Add Geofence Context indication. */
   12612 
   12613   /* Optional */
   12614   /*  Geofence ID */
   12615   uint8_t geofenceId_valid;  /**< Must be set to true if geofenceId is being passed */
   12616   uint32_t geofenceId;
   12617   /**<   Geofence identifier allocated by the engine.    \n
   12618        If the Geofence ID is not provided, a Geofence is created with an Area ID
   12619        list only (e.g., Wi-Fi only list Geofence). \n
   12620        If the Geofence ID is provided, the added list is used as assistance data
   12621        to the existing Geofence. */
   12622 
   12623   /* Optional */
   12624   /*  Wi-Fi AP SSID String */
   12625   uint8_t wifiApSsidInfo_valid;  /**< Must be set to true if wifiApSsidInfo is being passed */
   12626   uint32_t wifiApSsidInfo_len;  /**< Must be set to # of elements in wifiApSsidInfo */
   12627   qmiLocWifiApSsidStructT_v02 wifiApSsidInfo[QMI_LOC_WIFI_AREA_ID_LIST_LENGTH_V02];
   12628   /**<   \vspace{4pt} \n The ordering of the Wi-Fi AP SSID list should match the Wi-Fi AP MAC address
   12629        list when both are provided,
   12630        i.e., the first element of the Wi-Fi AP SSID list must be the SSID of the AP whose MAC
   12631        address is in the first element in the Wi-Fi AP MAC address, etc.  */
   12632 
   12633   /* Optional */
   12634   /*  Wi-Fi AP MAC Address List for the Geofence */
   12635   uint8_t wifiApMacAddressList_valid;  /**< Must be set to true if wifiApMacAddressList is being passed */
   12636   uint32_t wifiApMacAddressList_len;  /**< Must be set to # of elements in wifiApMacAddressList */
   12637   qmiLocWifiApMacAddressStructT_v02 wifiApMacAddressList[QMI_LOC_WIFI_AREA_ID_LIST_LENGTH_V02];
   12638   /**<   The ordering of the Wi-Fi AP SSID list should match the Wi-Fi AP MAC address
   12639        list when both are provided,
   12640        i.e., the first element of the Wi-Fi AP SSID list must be the SSID of the AP whose MAC
   12641        address is in the first element in the Wi-Fi AP MAC address, etc.  */
   12642 
   12643   /* Optional */
   12644   /*  TDSCDMA Cell ID List for the Geofence */
   12645   uint8_t tdsCdmaCellIDList_valid;  /**< Must be set to true if tdsCdmaCellIDList is being passed */
   12646   qmiLocTDSCDMACellIdStructT_v02 tdsCdmaCellIDList[QMI_LOC_CELL_ID_LIST_LENGTH_V02];
   12647   /**<   \n Identifies the TDSCDMA cell on which the device is currently camped. */
   12648 
   12649   /* Optional */
   12650   /*  WCDMA Cell ID List for the Geofence */
   12651   uint8_t wcdmaCellIDList_valid;  /**< Must be set to true if wcdmaCellIDList is being passed */
   12652   uint32_t wcdmaCellIDList_len;  /**< Must be set to # of elements in wcdmaCellIDList */
   12653   qmiLocWCDMACellIdStructT_v02 wcdmaCellIDList[QMI_LOC_CELL_ID_LIST_LENGTH_V02];
   12654   /**<   \n Identifies the WCDMA cell on which the device is currently camped. */
   12655 
   12656   /* Optional */
   12657   /*  GSM Cell ID List for the Geofence */
   12658   uint8_t gsmCellIDList_valid;  /**< Must be set to true if gsmCellIDList is being passed */
   12659   uint32_t gsmCellIDList_len;  /**< Must be set to # of elements in gsmCellIDList */
   12660   qmiLocGSMCellIdStructT_v02 gsmCellIDList[QMI_LOC_CELL_ID_LIST_LENGTH_V02];
   12661   /**<   \n Identifies the GSM cell on which the device is currently camped. */
   12662 
   12663   /* Optional */
   12664   /*  IBeacon List of the Geofence */
   12665   uint8_t iBeaconList_valid;  /**< Must be set to true if iBeaconList is being passed */
   12666   uint32_t iBeaconList_len;  /**< Must be set to # of elements in iBeaconList */
   12667   qmiLocIBeaconIdStructT_v02 iBeaconList[QMI_LOC_IBEACON_LIST_LENGTH_V02];
   12668 }qmiLocAddGeofenceContextReqMsgT_v02;  /* Message */
   12669 /**
   12670     @}
   12671   */
   12672 
   12673 /** @addtogroup loc_qmi_messages
   12674     @{
   12675   */
   12676 /** Indication Message; Used by the control point to inject the Geofence context. */
   12677 typedef struct {
   12678 
   12679   /* Mandatory */
   12680   /*  Status of the Add Geofence Context Request */
   12681   qmiLocStatusEnumT_v02 status;
   12682   /**<   Status of the Add Geofence Context request.
   12683 
   12684  Valid values: \n
   12685       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   12686       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   12687       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   12688       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   12689       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   12690       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   12691       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   12692       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   12693       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   12694       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   12695       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   12696  */
   12697 
   12698   /* Optional */
   12699   /*  Transaction ID */
   12700   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
   12701   uint32_t transactionId;
   12702   /**<   Transaction ID that was specified in the Add Geofence Context
   12703        request. This parameter is always present
   12704        if the status field is set to SUCCESS. */
   12705 
   12706   /* Optional */
   12707   /*  Geofence ID */
   12708   uint8_t geofenceId_valid;  /**< Must be set to true if geofenceId is being passed */
   12709   uint32_t geofenceId;
   12710   /**<   Geofence identifier allocated by the engine.    \n
   12711        If the client specifies the Geofence ID during the Add Geofence Context request,
   12712        the same ID is returned.    \n
   12713        If the client does not specify the Geofence ID during the Add Geofence Context request,
   12714        a new Geofence ID is created by the Geofence engine and returned. */
   12715 
   12716   /* Optional */
   12717   /*  Context ID */
   12718   uint8_t contextId_valid;  /**< Must be set to true if contextId is being passed */
   12719   uint32_t contextId;
   12720   /**<   Geofence context ID allocated by the engine.
   12721        The context ID is generated by the Geofence engine to identify the context
   12722        for a particular Geofence ID.
   12723        The same Geofence ID may be associated with multiple contexts.  */
   12724 }qmiLocAddGeofenceContextIndMsgT_v02;  /* Message */
   12725 /**
   12726     @}
   12727   */
   12728 
   12729 /** @addtogroup loc_qmi_messages
   12730     @{
   12731   */
   12732 /** Request Message; Used by the control point to inject the Geofence engine context. */
   12733 typedef struct {
   12734 
   12735   /* Mandatory */
   12736   /*  Transaction ID */
   12737   uint32_t transactionId;
   12738   /**<   Identifies the transaction. The transaction ID
   12739        is returned in the Set Geofence Engine Context indication. */
   12740 
   12741   /* Optional */
   12742   /*  UTC Timestamp of the Day */
   12743   uint8_t utcTimeOfDay_valid;  /**< Must be set to true if utcTimeOfDay is being passed */
   12744   uint64_t utcTimeOfDay;
   12745   /**<   The UTC time of the day.  */
   12746 
   12747   /* Optional */
   12748   /*  Temperature of the Day in Fahrenheit */
   12749   uint8_t temperature_valid;  /**< Must be set to true if temperature is being passed */
   12750   int32_t temperature;
   12751   /**<   The temperature of the day in degrees Fahrenheit.  */
   12752 }qmiLocSetGeofenceEngineContextReqMsgT_v02;  /* Message */
   12753 /**
   12754     @}
   12755   */
   12756 
   12757 /** @addtogroup loc_qmi_messages
   12758     @{
   12759   */
   12760 /** Indication Message; Used by the control point to inject the Geofence engine context. */
   12761 typedef struct {
   12762 
   12763   /* Mandatory */
   12764   /*  Status of the Set Geofence Engine Context Request */
   12765   qmiLocStatusEnumT_v02 status;
   12766   /**<   Status of the Set Geofence Engine Context request.
   12767 
   12768  Valid values: \n
   12769       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   12770       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   12771       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   12772       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   12773       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   12774       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   12775       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   12776       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   12777       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   12778       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   12779       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   12780  */
   12781 
   12782   /* Optional */
   12783   /*  Transaction ID */
   12784   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
   12785   uint32_t transactionId;
   12786   /**<   Transaction ID that was specified in the Set Geofence Engine Context
   12787        request. This parameter will always be present
   12788        if the status field is set to SUCCESS. */
   12789 }qmiLocSetGeofenceEngineContextIndMsgT_v02;  /* Message */
   12790 /**
   12791     @}
   12792   */
   12793 
   12794 /** @addtogroup loc_qmi_messages
   12795     @{
   12796   */
   12797 /** Request Message; Used by the control point to Delete the geofence context. */
   12798 typedef struct {
   12799 
   12800   /* Mandatory */
   12801   /*  Transaction ID */
   12802   uint32_t transactionId;
   12803   /**<   Identifies the transaction. The transaction ID
   12804        is returned in the Delete Geofence Context indication. */
   12805 
   12806   /* Mandatory */
   12807   /*  Geofence ID */
   12808   uint32_t geofenceId;
   12809   /**<   Identifies the Geofence whose context is to be deleted.  */
   12810 
   12811   /* Optional */
   12812   /*  Context ID */
   12813   uint8_t contextId_valid;  /**< Must be set to true if contextId is being passed */
   12814   uint32_t contextId;
   12815   /**<   Identifies the context associated with the Geofence to be deleted.
   12816        If not specified, all contexts associated with this Geofence are deleted. */
   12817 }qmiLocDeleteGeofenceContextReqMsgT_v02;  /* Message */
   12818 /**
   12819     @}
   12820   */
   12821 
   12822 /** @addtogroup loc_qmi_messages
   12823     @{
   12824   */
   12825 /** Indication Message; Used by the control point to Delete the geofence context. */
   12826 typedef struct {
   12827 
   12828   /* Mandatory */
   12829   /*  Status of the Delete Geofence Context Request */
   12830   qmiLocStatusEnumT_v02 status;
   12831   /**<   Status of the Delete Geofence Context request.
   12832 
   12833  Valid values: \n
   12834       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   12835       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   12836       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   12837       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   12838       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   12839       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   12840       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   12841       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   12842       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   12843       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   12844       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   12845  */
   12846 
   12847   /* Optional */
   12848   /*  Transaction ID */
   12849   uint8_t transactionId_valid;  /**< Must be set to true if transactionId is being passed */
   12850   uint32_t transactionId;
   12851   /**<   Transaction ID that was specified in the Delete Geofence Context request.
   12852        This parameter will always be present
   12853        if the status field is set to SUCCESS. */
   12854 
   12855   /* Optional */
   12856   /*  Geofence ID */
   12857   uint8_t geofenceId_valid;  /**< Must be set to true if geofenceId is being passed */
   12858   uint32_t geofenceId;
   12859   /**<   Identifier for the Geofence whose context was deleted. */
   12860 
   12861   /* Optional */
   12862   /*  Context ID */
   12863   uint8_t contextId_valid;  /**< Must be set to true if contextId is being passed */
   12864   uint32_t contextId;
   12865   /**<   Identifier for the context of the Geofence that was deleted. */
   12866 }qmiLocDeleteGeofenceContextIndMsgT_v02;  /* Message */
   12867 /**
   12868     @}
   12869   */
   12870 
   12871 /** @addtogroup loc_qmi_messages
   12872     @{
   12873   */
   12874 /** Request Message; Injects GTP WWAN client downloaded data. */
   12875 typedef struct {
   12876 
   12877   /* Mandatory */
   12878   /*  Data */
   12879   uint32_t ClientDownloadedData_len;  /**< Must be set to # of elements in ClientDownloadedData */
   12880   char ClientDownloadedData[QMI_LOC_MAX_GTP_WWAN_CLIENT_DOWNLOADED_DATA_LEN_V02];
   12881   /**<   WWAN client downloaded data. \n
   12882          - Type: Array of bytes \n
   12883          - Maximum length of the array: 512
   12884     */
   12885 }qmiLocInjectGtpClientDownloadedDataReqMsgT_v02;  /* Message */
   12886 /**
   12887     @}
   12888   */
   12889 
   12890 /** @addtogroup loc_qmi_messages
   12891     @{
   12892   */
   12893 /** Indication Message; Injects GTP WWAN client downloaded data. */
   12894 typedef struct {
   12895 
   12896   /* Mandatory */
   12897   /*  GTP client downloaded data injection Status */
   12898   qmiLocStatusEnumT_v02 status;
   12899   /**<   Status of the GTP client downloaded data injection.
   12900  Valid values: \n
   12901       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   12902       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   12903       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   12904       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   12905       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   12906       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   12907       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   12908       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   12909       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   12910       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   12911       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   12912  */
   12913 }qmiLocInjectGtpClientDownloadedDataIndMsgT_v02;  /* Message */
   12914 /**
   12915     @}
   12916   */
   12917 
   12918 /** @addtogroup loc_qmi_messages
   12919     @{
   12920   */
   12921 /** Request Message; Sends a GDT upload begin response to GDT MP. */
   12922 typedef struct {
   12923 
   12924   /* Mandatory */
   12925   /*  GDT service ID */
   12926   qmiLocGdtServiceIdEnumT_v02 serviceId;
   12927 
   12928   /* Mandatory */
   12929   /*  Session ID */
   12930   uint32_t sessionId;
   12931 
   12932   /* Mandatory */
   12933   /*  Access status to GDT */
   12934   qmiLocGdtAccessStatusEnumT_v02 gdtAccessStatus;
   12935   /**<   GDT status information for this serviceId.
   12936 
   12937  Valid values: \n
   12938       - eQMI_LOC_GDT_ACCESS_ALLOWED (1) --  GDT ACCESS to the service is allowed
   12939       - eQMI_LOC_GDT_ACCESS_FAILED (2) --  Any type of GDT access error
   12940       - eQMI_LOC_GDT_ACCESS_NOT_ALLOWED (3) --  GDT ACCESS to the service is not allowed
   12941  */
   12942 }qmiLocGdtUploadBeginStatusReqMsgT_v02;  /* Message */
   12943 /**
   12944     @}
   12945   */
   12946 
   12947 /** @addtogroup loc_qmi_messages
   12948     @{
   12949   */
   12950 /** Indication Message; Sends a GDT upload begin response to GDT MP. */
   12951 typedef struct {
   12952 
   12953   /* Mandatory */
   12954   /*  GDT upload begin Status */
   12955   qmiLocStatusEnumT_v02 status;
   12956   /**<   Status of the GDT begin request.
   12957  Valid values: \n
   12958       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   12959       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   12960       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   12961       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   12962       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   12963       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   12964       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   12965       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   12966       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   12967       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   12968       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   12969  */
   12970 }qmiLocGdtUploadBeginStatusIndMsgT_v02;  /* Message */
   12971 /**
   12972     @}
   12973   */
   12974 
   12975 /** @addtogroup loc_qmi_enums
   12976     @{
   12977   */
   12978 typedef enum {
   12979   QMILOCGDTENDACKENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   12980   eQMI_LOC_GDT_ACK_SUCCESS_V02 = 1, /**<  The sent data is accepeted   */
   12981   eQMI_LOC_GDT_ACK_FAILED_V02 = 2, /**<  The sent data was not accepted   */
   12982   eQMI_LOC_GDT_ACK_INVALID_V02 = 3, /**<  General error in received data  */
   12983   QMILOCGDTENDACKENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   12984 }qmiLocGdtEndAckEnumT_v02;
   12985 /**
   12986     @}
   12987   */
   12988 
   12989 /** @addtogroup loc_qmi_messages
   12990     @{
   12991   */
   12992 /** Request Message; Sends a GDT upload end response to GDT MP. */
   12993 typedef struct {
   12994 
   12995   /* Mandatory */
   12996   /*  GDT service ID */
   12997   qmiLocGdtServiceIdEnumT_v02 serviceId;
   12998 
   12999   /* Mandatory */
   13000   /*  Session ID */
   13001   uint32_t sessionId;
   13002 
   13003   /* Mandatory */
   13004   /*  Access status to GDT */
   13005   qmiLocGdtEndAckEnumT_v02 gdtEndStatus;
   13006   /**<   GDT end status information for this serviceId.
   13007 
   13008  Valid values: \n
   13009       - eQMI_LOC_GDT_ACK_SUCCESS (1) --  The sent data is accepeted
   13010       - eQMI_LOC_GDT_ACK_FAILED (2) --  The sent data was not accepted
   13011       - eQMI_LOC_GDT_ACK_INVALID (3) --  General error in received data
   13012  */
   13013 }qmiLocGdtUploadEndReqMsgT_v02;  /* Message */
   13014 /**
   13015     @}
   13016   */
   13017 
   13018 /** @addtogroup loc_qmi_messages
   13019     @{
   13020   */
   13021 /** Indication Message; Sends a GDT upload end response to GDT MP. */
   13022 typedef struct {
   13023 
   13024   /* Mandatory */
   13025   /*  UTC GDP upload end Status */
   13026   qmiLocStatusEnumT_v02 status;
   13027   /**<   Status of the GDT upload end request.
   13028 
   13029  Valid values: \n
   13030       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   13031       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   13032       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   13033       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   13034       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   13035       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   13036       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   13037       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   13038       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   13039       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   13040       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   13041  */
   13042 }qmiLocGdtUploadEndIndMsgT_v02;  /* Message */
   13043 /**
   13044     @}
   13045   */
   13046 
   13047 /** @addtogroup loc_qmi_enums
   13048     @{
   13049   */
   13050 typedef enum {
   13051   QMILOCDBTUSAGEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   13052   eQMI_LOC_DBT_USAGE_NAVIGATION_V02 = 1, /**<  Navigation usage type  */
   13053   QMILOCDBTUSAGEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   13054 }qmiLocDbtUsageEnumT_v02;
   13055 /**
   13056     @}
   13057   */
   13058 
   13059 /** @addtogroup loc_qmi_enums
   13060     @{
   13061   */
   13062 typedef enum {
   13063   QMILOCDBDISTANCETYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   13064   eQMI_LOC_DBT_DISTANCE_TYPE_STRAIGHT_LINE_V02 = 1, /**<  Straight line distance between
   13065        location updates   */
   13066   QMILOCDBDISTANCETYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   13067 }qmiLocDbDistanceTypeEnumT_v02;
   13068 /**
   13069     @}
   13070   */
   13071 
   13072 /** @addtogroup loc_qmi_messages
   13073     @{
   13074   */
   13075 /** Request Message; Used by the control point to initiate a DBT session. */
   13076 typedef struct {
   13077 
   13078   /* Mandatory */
   13079   /*  Request ID */
   13080   uint8_t reqId;
   13081   /**<   ID of the request as identified by the control point. The request ID
   13082        is reported back in the position reports. The control point must
   13083        specify the same request ID in the QMI_LOC_STOP_DBT_REQ message. \n
   13084        - Range: 0 to 255
   13085   */
   13086 
   13087   /* Mandatory */
   13088   /*  Minimum Distance Between Position Reports */
   13089   uint32_t minDistance;
   13090   /**<   Minimum distance, specified by the control point,
   13091        that must be traversed between position reports. \n
   13092        - Units: Meters \n
   13093   */
   13094 
   13095   /* Mandatory */
   13096   /*  Type of distance to be tracked */
   13097   qmiLocDbDistanceTypeEnumT_v02 distanceType;
   13098   /**<   Straight line distance or distance accumulated\n
   13099 
   13100  Valid values: \n
   13101       - eQMI_LOC_DBT_DISTANCE_TYPE_STRAIGHT_LINE (1) --  Straight line distance between
   13102        location updates
   13103  */
   13104 
   13105   /* Mandatory */
   13106   /*  Start Breadcrumb Operation */
   13107   uint8_t needBreadCrumbs;
   13108   /**<   Indicates whether the control point wants the bread crumb
   13109        (position history) information
   13110        \begin{itemize1}
   13111        \item    0x01 (TRUE)  -- Control point is requesting bread crumb
   13112                                 information
   13113        \item    0x00 (FALSE) -- Control point is not requesting bread
   13114                                 crumb information
   13115        \vspace{-0.18in} \end{itemize1}
   13116   */
   13117 
   13118   /* Mandatory */
   13119   /*  Need Origin Location */
   13120   uint8_t needOriginLocation;
   13121   /**<   Indicates whether the control point wants the position
   13122        corresponding to the origin
   13123        \begin{itemize1}
   13124        \item    0x01 (TRUE)  -- Control point is requesting origin
   13125                                 location
   13126        \item    0x00 (FALSE) -- Control point is not requesting origin
   13127                                 location
   13128        \vspace{-0.18in} \end{itemize1}
   13129   */
   13130 
   13131   /* Optional */
   13132   /*  Maximum Latency threshold for Position Reports */
   13133   uint8_t maxLatency_valid;  /**< Must be set to true if maxLatency is being passed */
   13134   uint32_t maxLatency;
   13135   /**<   Maximum time period , specified by the control point, after the min
   13136        distance criteria has been met within which a location update needs
   13137        to be provided. If not specified a ideal value will be assumed by the
   13138        engine  \n
   13139        - Units: seconds \n
   13140   */
   13141 
   13142   /* Optional */
   13143   /*  Usage Type */
   13144   uint8_t usageType_valid;  /**< Must be set to true if usageType is being passed */
   13145   qmiLocDbtUsageEnumT_v02 usageType;
   13146   /**<   Specifies the type of usage by the control point. It refers specifically
   13147  to the use case category of the client. For eg a navigation client should
   13148  set this to QMI_LOC_USAGE_NAVIGATION for better performance in difficult
   13149  signal conditions such as tunnels."
   13150 
   13151  If not specified, the service will use default algorithms to provide an ideal
   13152  performance.
   13153 
   13154  Valid values: \n
   13155       - eQMI_LOC_DBT_USAGE_NAVIGATION (1) --  Navigation usage type
   13156  */
   13157 }qmiLocStartDbtReqMsgT_v02;  /* Message */
   13158 /**
   13159     @}
   13160   */
   13161 
   13162 /** @addtogroup loc_qmi_messages
   13163     @{
   13164   */
   13165 /** Indication Message; Used by the control point to initiate a DBT session. */
   13166 typedef struct {
   13167 
   13168   /* Mandatory */
   13169   /*  Start DBT Status */
   13170   qmiLocStatusEnumT_v02 status;
   13171   /**<   Status of the Start DBT request.
   13172 
   13173  Valid values: \n
   13174       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   13175       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   13176       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   13177       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   13178       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   13179       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   13180       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   13181       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   13182       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   13183       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   13184       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   13185  */
   13186 }qmiLocStartDbtIndMsgT_v02;  /* Message */
   13187 /**
   13188     @}
   13189   */
   13190 
   13191 /** @addtogroup loc_qmi_messages
   13192     @{
   13193   */
   13194 /** Request Message; Used by the control point to stop a DBT session. */
   13195 typedef struct {
   13196 
   13197   /* Mandatory */
   13198   /*  Request ID */
   13199   uint8_t reqId;
   13200   /**<   ID of the request that was specified in the Start DBT
   13201         request (QMI_LOC_START_DBT_REQ).\n
   13202        - Range: 0 to 255 */
   13203 }qmiLocStopDbtReqMsgT_v02;  /* Message */
   13204 /**
   13205     @}
   13206   */
   13207 
   13208 /** @addtogroup loc_qmi_messages
   13209     @{
   13210   */
   13211 /** Indication Message; Used by the control point to stop a DBT session. */
   13212 typedef struct {
   13213 
   13214   /* Mandatory */
   13215   /*  Stop DBT Status */
   13216   qmiLocStatusEnumT_v02 status;
   13217   /**<   Status of the Stop DBT request.
   13218 
   13219  Valid values: \n
   13220       - eQMI_LOC_SUCCESS (0) --  Request was completed successfully \n
   13221       - eQMI_LOC_GENERAL_FAILURE (1) --  Request failed because of a general failure \n
   13222       - eQMI_LOC_UNSUPPORTED (2) --  Request failed because it is not supported \n
   13223       - eQMI_LOC_INVALID_PARAMETER (3) --  Request failed because it contained invalid parameters \n
   13224       - eQMI_LOC_ENGINE_BUSY (4) --  Request failed because the engine is busy \n
   13225       - eQMI_LOC_PHONE_OFFLINE (5) --  Request failed because the phone is offline \n
   13226       - eQMI_LOC_TIMEOUT (6) --  Request failed because it timed out \n
   13227       - eQMI_LOC_CONFIG_NOT_SUPPORTED (7) --  Request failed because an undefined configuration was requested \n
   13228       - eQMI_LOC_INSUFFICIENT_MEMORY (8) --  Request failed because the engine could not allocate sufficient memory for the request \n
   13229       - eQMI_LOC_MAX_GEOFENCE_PROGRAMMED (9) --  Request failed because the maximum number of Geofences are already programmed \n
   13230       - eQMI_LOC_XTRA_VERSION_CHECK_FAILURE (10) --  Location service failed because of an XTRA version-based file format check failure
   13231  */
   13232 }qmiLocStopDbtIndMsgT_v02;  /* Message */
   13233 /**
   13234     @}
   13235   */
   13236 
   13237 /** @addtogroup loc_qmi_enums
   13238     @{
   13239   */
   13240 typedef enum {
   13241   QMILOCDBTPOSITIONTYPEENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   13242   eQMI_LOC_DBT_POSITION_TYPE_ORIGIN_V02 = 1, /**<  Position reported is at the origin  */
   13243   eQMI_LOC_DBT_POSITION_TYPE_TRACKING_V02 = 2, /**<  Position reported is of tracking type
   13244        where the origin location has already
   13245        been reported  */
   13246   QMILOCDBTPOSITIONTYPEENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   13247 }qmiLocDbtPositionTypeEnumT_v02;
   13248 /**
   13249     @}
   13250   */
   13251 
   13252 /** @addtogroup loc_qmi_aggregates
   13253     @{
   13254   */
   13255 typedef struct {
   13256 
   13257   /*  UTC Timestamp */
   13258   uint64_t timestampUtc;
   13259   /**<   UTC timestamp.
   13260        \begin{itemize1}
   13261        \item    Units: Milliseconds since Jan. 1, 1970
   13262        \vspace{-0.18in} \end{itemize1} */
   13263 
   13264   /*  Latitude */
   13265   double latitude;
   13266   /**<   Latitude (specified in WGS84 datum).
   13267        \begin{itemize1}
   13268        \item    Type: Floating point
   13269        \item    Units: Degrees
   13270        \item    Range: -90.0 to 90.0       \begin{itemize1}
   13271          \item    Positive values indicate northern latitude
   13272          \item    Negative values indicate southern latitude
   13273        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
   13274 
   13275   /*   Longitude */
   13276   double longitude;
   13277   /**<   Longitude (specified in WGS84 datum).
   13278        \begin{itemize1}
   13279        \item    Type: Floating point
   13280        \item    Units: Degrees
   13281        \item    Range: -180.0 to 180.0     \begin{itemize1}
   13282          \item    Positive values indicate eastern longitude
   13283          \item    Negative values indicate western longitude
   13284        \vspace{-0.18in} \end{itemize1} \end{itemize1} */
   13285 
   13286   /*  Horizontal Elliptical Uncertainty (Semi-Minor Axis) */
   13287   float horUncEllipseSemiMinor;
   13288   /**<   Semi-minor axis of horizontal elliptical uncertainty.\n
   13289        - Units: Meters */
   13290 
   13291   /*  Horizontal Elliptical Uncertainty (Semi-Major Axis) */
   13292   float horUncEllipseSemiMajor;
   13293   /**<   Semi-major axis of horizontal elliptical uncertainty.\n
   13294        - Units: Meters */
   13295 
   13296   /*  Elliptical Horizontal Uncertainty Azimuth */
   13297   float horUncEllipseOrientAzimuth;
   13298   /**<   Elliptical horizontal uncertainty azimuth of orientation.\n
   13299        - Units: Decimal degrees \n
   13300        - Range: 0 to 180 */
   13301 
   13302   /*  Horizontal Speed validity bit */
   13303   uint8_t speedHorizontal_valid;
   13304   /**<   Indicates whether the Horizontal speed field contains valid
   13305        information.
   13306        \begin{itemize1}
   13307        \item    0x01 (TRUE)  --  Horizontal speed is valid
   13308        \item    0x00 (FALSE) --  Horizontal speed is invalid
   13309                                  and is to be ignored
   13310        \vspace{-0.18in} \end{itemize1} */
   13311 
   13312   /*  Horizontal Speed */
   13313   float speedHorizontal;
   13314   /**<   Horizontal speed.\n
   13315        - Units: Meters/second */
   13316 
   13317   /*  Altitude validity bit */
   13318   uint8_t altitudeWrtEllipsoid_valid;
   13319   /**<   Indicates whether the altitude field contains valid
   13320        information.
   13321        \begin{itemize1}
   13322        \item    0x01 (TRUE)  --  Altitude field is valid
   13323        \item    0x00 (FALSE) --  Altitude field is invalid
   13324                                  and is to be ignored
   13325        \vspace{-0.18in} \end{itemize1}
   13326        */
   13327 
   13328   /*  Altitude With Respect to Ellipsoid */
   13329   float altitudeWrtEllipsoid;
   13330   /**<   Altitude with respect to the WGS84 ellipsoid.\n
   13331        - Units: Meters \n
   13332        - Range: -500 to 15883 */
   13333 
   13334   /*  Vertical Uncertainty validity bit */
   13335   uint8_t vertUnc_valid;
   13336   /**<   Indicates whether the Vertical Uncertainty field contains valid
   13337        information.
   13338        \begin{itemize1}
   13339        \item    0x01 (TRUE)  --  Vertical Uncertainty field is valid
   13340        \item    0x00 (FALSE) --  Vertical Uncertainty field is invalid
   13341                                  and is to be ignored
   13342        \vspace{-0.18in} \end{itemize1} */
   13343 
   13344   /*  Vertical Uncertainty */
   13345   float vertUnc;
   13346   /**<   Vertical uncertainty.\n
   13347        - Units: Meters */
   13348 
   13349   /*  Vertical Speed validity bit */
   13350   uint8_t speedVertical_valid;
   13351   /**<   Indicates whether the Vertical Speed field contains valid
   13352        information.
   13353        \begin{itemize1}
   13354        \item    0x01 (TRUE)  --  Vertical Speed field is valid
   13355        \item    0x00 (FALSE) --  Vertical Speed field is invalid
   13356                                  and is to be ignored
   13357        \vspace{-0.18in} \end{itemize1} */
   13358 
   13359   /*  Vertical Speed */
   13360   float speedVertical;
   13361   /**<   Vertical speed.\n
   13362        - Units: Meters/second */
   13363 
   13364   /*  heading validity bit */
   13365   uint8_t heading_valid;
   13366   /**<   Indicates whether the Heading field contains valid
   13367        information.
   13368        \begin{itemize1}
   13369        \item    0x01 (TRUE)  --  Heading field is valid
   13370        \item    0x00 (FALSE) --  Heading field is invalid
   13371                                  and is to be ignored
   13372        \vspace{-0.18in} \end{itemize1} */
   13373 
   13374   /*  Heading */
   13375   float heading;
   13376   /**<   Heading.\n
   13377         - Units: Degrees \n
   13378         - Range: 0 to 359.999  */
   13379 }qmiLocDbtPositionStructT_v02;  /* Type */
   13380 /**
   13381     @}
   13382   */
   13383 
   13384 /** @addtogroup loc_qmi_messages
   13385     @{
   13386   */
   13387 /** Indication Message; Notifies the control point of
   13388                     a Distance Based Tracking Position Report */
   13389 typedef struct {
   13390 
   13391   /* Mandatory */
   13392   /*  Request ID */
   13393   uint8_t reqId;
   13394   /**<   ID of the DBT request for which this
   13395        report was generated. */
   13396 
   13397   /* Mandatory */
   13398   /*  DBT Position */
   13399   qmiLocDbtPositionStructT_v02 dbtPosition;
   13400   /**<   Position of the client when it has traversed the
   13401        distance specified.
   13402        */
   13403 
   13404   /* Mandatory */
   13405   /*  DBT Position */
   13406   qmiLocDbtPositionTypeEnumT_v02 positionType;
   13407   /**<   Specifies if the position reported is at the
   13408        origin of the DBT session or during the tracking
   13409        duration of the session */
   13410 
   13411   /* Optional */
   13412   /*  Heading Uncertainty */
   13413   uint8_t headingUnc_valid;  /**< Must be set to true if headingUnc is being passed */
   13414   float headingUnc;
   13415   /**<   Heading uncertainty.\n
   13416        - Units: Degrees \n
   13417        - Range: 0 to 359.999 */
   13418 
   13419   /* Optional */
   13420   /*  Speed Uncertainty */
   13421   uint8_t speedUnc_valid;  /**< Must be set to true if speedUnc is being passed */
   13422   float speedUnc;
   13423   /**<   3-D speed uncertainty.\n
   13424        - Units: Meters/second */
   13425 
   13426   /* Optional */
   13427   /*  Horizontal Confidence */
   13428   uint8_t horConfidence_valid;  /**< Must be set to true if horConfidence is being passed */
   13429   uint8_t horConfidence;
   13430   /**<   Horizontal uncertainty confidence.\n
   13431        - Units: Percent \n
   13432        - Range: 0 to 99 */
   13433 
   13434   /* Optional */
   13435   /*  Vertical Confidence */
   13436   uint8_t vertConfidence_valid;  /**< Must be set to true if vertConfidence is being passed */
   13437   uint8_t vertConfidence;
   13438   /**<   Vertical uncertainty confidence.\n
   13439        - Units: Percent \n
   13440        - Range: 0 to 99 */
   13441 
   13442   /* Optional */
   13443   /*  Dilution of Precision */
   13444   uint8_t DOP_valid;  /**< Must be set to true if DOP is being passed */
   13445   qmiLocDOPStructT_v02 DOP;
   13446   /**<   \vspace{0.06in} \n Dilution of precision associated with this position. */
   13447 
   13448   /* Optional */
   13449   /*  SVs Used to Calculate the Fix */
   13450   uint8_t gnssSvUsedList_valid;  /**< Must be set to true if gnssSvUsedList is being passed */
   13451   uint32_t gnssSvUsedList_len;  /**< Must be set to # of elements in gnssSvUsedList */
   13452   uint16_t gnssSvUsedList[QMI_LOC_MAX_SV_USED_LIST_LENGTH_V02];
   13453   /**<   Each entry in the list contains the SV ID of a satellite
   13454       used for calculating this position report. The following
   13455       information is associated with each SV ID: \n
   13456          Range:    \n
   13457          - For GPS:     1 to 32 \n
   13458          - For SBAS:    33 to 64 \n
   13459          - For GLONASS: 65 to 96 \n
   13460          - For QZSS:    193 to 197 \n
   13461          - For BDS:     201 to 237
   13462         */
   13463 
   13464   /* Optional */
   13465   /*  DBT Bread Crumb Entries */
   13466   uint8_t numBreadCrumbEntries_valid;  /**< Must be set to true if numBreadCrumbEntries is being passed */
   13467   uint32_t numBreadCrumbEntries;
   13468   /**<   The number of bread crumb(position history) entries available for
   13469        extraction. Bread crumb refers to positions that were obtained by
   13470        the location engine before the distance threshold specified by the
   13471        control point had not been traveresed */
   13472 
   13473   /* Optional */
   13474   /*  DBT Bread Crumb Buffer Id */
   13475   uint8_t bufferId_valid;  /**< Must be set to true if bufferId is being passed */
   13476   uint16_t bufferId;
   13477   /**<   The buffer id associated with bread crumb or position history
   13478        preceeding the current position report. The control point can use
   13479        the command QMI_LOC_READ_BREADCRUMB with the buffer id to retrieve
   13480        the position history*/
   13481 }qmiLocEventDbtPositionReportIndMsgT_v02;  /* Message */
   13482 /**
   13483     @}
   13484   */
   13485 
   13486 /** @addtogroup loc_qmi_enums
   13487     @{
   13488   */
   13489 typedef enum {
   13490   QMILOCDBTSESSIONSTATUSENUMT_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
   13491   eQMI_LOC_DBT_UNABLE_TO_TRACK_V02 = 1, /**<  Distance based tracking  is unavailable and DBT fixes
   13492        cannot be obtained currently  */
   13493   eQMI_LOC_DBT_ABLE_TO_TRACK_V02 = 2, /**<  Distance based tracking  is available and DBT fixes
   13494        can be obtained currently  */
   13495   QMILOCDBTSESSIONSTATUSENUMT_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
   13496 }qmiLocDbtSessionStatusEnumT_v02;
   13497 /**
   13498     @}
   13499   */
   13500 
   13501 /** @addtogroup loc_qmi_messages
   13502     @{
   13503   */
   13504 /** Indication Message; Notifies the control point of the
   13505                     DBT session status. */
   13506 typedef struct {
   13507 
   13508   /* Mandatory */
   13509   /*  DBT Session Status */
   13510   qmiLocDbtSessionStatusEnumT_v02 dbtSessionStatus;
   13511   /**<   Specifies the DBT Session Status type.
   13512 
   13513  Valid values: \n
   13514       - eQMI_LOC_DBT_UNABLE_TO_TRACK (1) --  Distance based tracking  is unavailable and DBT fixes
   13515        cannot be obtained currently
   13516       - eQMI_LOC_DBT_ABLE_TO_TRACK (2) --  Distance based tracking  is available and DBT fixes
   13517        can be obtained currently
   13518  */
   13519 }qmiLocEventDbtSessionStatusIndMsgT_v02;  /* Message */
   13520 /**
   13521     @}
   13522   */
   13523 
   13524 /* Conditional compilation tags for message removal */
   13525 //#define REMOVE_QMI_LOC_ADD_CIRCULAR_GEOFENCE_V02
   13526 //#define REMOVE_QMI_LOC_ADD_GEOFENCE_CONTEXT_V02
   13527 //#define REMOVE_QMI_LOC_DELETE_ASSIST_DATA_V02
   13528 //#define REMOVE_QMI_LOC_DELETE_GEOFENCE_V02
   13529 //#define REMOVE_QMI_LOC_DELETE_GEOFENCE_CONTEXT_V02
   13530 //#define REMOVE_QMI_LOC_DELETE_SUPL_CERTIFICATE_V02
   13531 //#define REMOVE_QMI_LOC_EDIT_GEOFENCE_V02
   13532 //#define REMOVE_QMI_LOC_EVENT_BATCH_FULL_NOTIFICATION_V02
   13533 //#define REMOVE_QMI_LOC_EVENT_DBT_POSITION_REPORT_V02
   13534 //#define REMOVE_QMI_LOC_EVENT_DBT_SESSION_STATUS_V02
   13535 //#define REMOVE_QMI_LOC_EVENT_ENGINE_STATE_V02
   13536 //#define REMOVE_QMI_LOC_EVENT_FIX_SESSION_STATE_V02
   13537 //#define REMOVE_QMI_LOC_EVENT_GDT_UPLOAD_BEGIN_STATUS_REQ_V02
   13538 //#define REMOVE_QMI_LOC_EVENT_GDT_UPLOAD_END_REQ_V02
   13539 //#define REMOVE_QMI_LOC_EVENT_GEOFENCE_BATCHED_BREACH_NOTIFICATION_V02
   13540 //#define REMOVE_QMI_LOC_EVENT_GEOFENCE_BREACH_NOTIFICATION_V02
   13541 //#define REMOVE_QMI_LOC_EVENT_GEOFENCE_GEN_ALERT_V02
   13542 //#define REMOVE_QMI_LOC_EVENT_GEOFENCE_PROXIMITY_NOTIFICATION_V02
   13543 //#define REMOVE_QMI_LOC_EVENT_GNSS_MEASUREMENT_REPORT_IND_V02
   13544 //#define REMOVE_QMI_LOC_EVENT_GNSS_SV_INFO_V02
   13545 //#define REMOVE_QMI_LOC_EVENT_INJECT_POSITION_REQ_V02
   13546 //#define REMOVE_QMI_LOC_EVENT_INJECT_PREDICTED_ORBITS_REQ_V02
   13547 //#define REMOVE_QMI_LOC_EVENT_INJECT_TIME_REQ_V02
   13548 //#define REMOVE_QMI_LOC_EVENT_INJECT_WIFI_AP_DATA_REQ_V02
   13549 //#define REMOVE_QMI_LOC_EVENT_LIVE_BATCHED_POSITION_REPORT_V02
   13550 //#define REMOVE_QMI_LOC_EVENT_LOCATION_SERVER_CONNECTION_REQ_V02
   13551 //#define REMOVE_QMI_LOC_EVENT_MOTION_DATA_CONTROL_V02
   13552 //#define REMOVE_QMI_LOC_EVENT_NI_GEOFENCE_NOTIFICATION_V02
   13553 //#define REMOVE_QMI_LOC_EVENT_NI_NOTIFY_VERIFY_REQ_V02
   13554 //#define REMOVE_QMI_LOC_EVENT_NMEA_V02
   13555 //#define REMOVE_QMI_LOC_EVENT_PEDOMETER_CONTROL_V02
   13556 //#define REMOVE_QMI_LOC_EVENT_POSITION_REPORT_V02
   13557 //#define REMOVE_QMI_LOC_EVENT_SENSOR_STREAMING_READY_STATUS_V02
   13558 //#define REMOVE_QMI_LOC_EVENT_SET_SPI_STREAMING_REPORT_V02
   13559 //#define REMOVE_QMI_LOC_EVENT_SV_POLYNOMIAL_REPORT_IND_V02
   13560 //#define REMOVE_QMI_LOC_EVENT_TIME_SYNC_REQ_V02
   13561 //#define REMOVE_QMI_LOC_EVENT_VEHICLE_DATA_READY_STATUS_V02
   13562 //#define REMOVE_QMI_LOC_EVENT_WIFI_REQ_V02
   13563 //#define REMOVE_QMI_LOC_GDT_UPLOAD_BEGIN_STATUS_V02
   13564 //#define REMOVE_QMI_LOC_GDT_UPLOAD_END_V02
   13565 //#define REMOVE_QMI_LOC_GET_AVAILABLE_WWAN_POSITION_V02
   13566 //#define REMOVE_QMI_LOC_GET_BATCH_SIZE_V02
   13567 //#define REMOVE_QMI_LOC_GET_BEST_AVAILABLE_POSITION_V02
   13568 //#define REMOVE_QMI_LOC_GET_CRADLE_MOUNT_CONFIG_V02
   13569 //#define REMOVE_QMI_LOC_GET_ENGINE_LOCK_V02
   13570 //#define REMOVE_QMI_LOC_GET_EXTERNAL_POWER_CONFIG_V02
   13571 //#define REMOVE_QMI_LOC_GET_FIX_CRITERIA_V02
   13572 //#define REMOVE_QMI_LOC_GET_GEOFENCE_ENGINE_CONFIG_V02
   13573 //#define REMOVE_QMI_LOC_GET_LOW_POWER_MODE_V02
   13574 //#define REMOVE_QMI_LOC_GET_NI_GEOFENCE_ID_LIST_V02
   13575 //#define REMOVE_QMI_LOC_GET_NMEA_TYPES_V02
   13576 //#define REMOVE_QMI_LOC_GET_OPERATION_MODE_V02
   13577 //#define REMOVE_QMI_LOC_GET_POSITION_ENGINE_CONFIG_PARAMETERS_V02
   13578 //#define REMOVE_QMI_LOC_GET_PREDICTED_ORBITS_DATA_SOURCE_V02
   13579 //#define REMOVE_QMI_LOC_GET_PREDICTED_ORBITS_DATA_VALIDITY_V02
   13580 //#define REMOVE_QMI_LOC_GET_PROTOCOL_CONFIG_PARAMETERS_V02
   13581 //#define REMOVE_QMI_LOC_GET_REGISTERED_EVENTS_V02
   13582 //#define REMOVE_QMI_LOC_GET_SBAS_CONFIG_V02
   13583 //#define REMOVE_QMI_LOC_GET_SENSOR_CONTROL_CONFIG_V02
   13584 //#define REMOVE_QMI_LOC_GET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_V02
   13585 //#define REMOVE_QMI_LOC_GET_SENSOR_PROPERTIES_V02
   13586 //#define REMOVE_QMI_LOC_GET_SERVER_V02
   13587 //#define REMOVE_QMI_LOC_GET_SERVICE_REVISION_V02
   13588 //#define REMOVE_QMI_LOC_GET_SUPPORTED_FIELDS_V02
   13589 //#define REMOVE_QMI_LOC_GET_SUPPORTED_MSGS_V02
   13590 //#define REMOVE_QMI_LOC_GET_XTRA_T_SESSION_CONTROL_V02
   13591 //#define REMOVE_QMI_LOC_INFORM_CLIENT_REVISION_V02
   13592 //#define REMOVE_QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_V02
   13593 //#define REMOVE_QMI_LOC_INFORM_NI_USER_RESPONSE_V02
   13594 //#define REMOVE_QMI_LOC_INJECT_GSM_CELL_INFO_V02
   13595 //#define REMOVE_QMI_LOC_INJECT_GTP_CLIENT_DOWNLOADED_DATA_V02
   13596 //#define REMOVE_QMI_LOC_INJECT_MOTION_DATA_V02
   13597 //#define REMOVE_QMI_LOC_INJECT_NETWORK_INITIATED_MESSAGE_V02
   13598 //#define REMOVE_QMI_LOC_INJECT_POSITION_V02
   13599 //#define REMOVE_QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_V02
   13600 //#define REMOVE_QMI_LOC_INJECT_SENSOR_DATA_V02
   13601 //#define REMOVE_QMI_LOC_INJECT_SUBSCRIBER_ID_V02
   13602 //#define REMOVE_QMI_LOC_INJECT_SUPL_CERTIFICATE_V02
   13603 //#define REMOVE_QMI_LOC_INJECT_TDSCDMA_CELL_INFO_V02
   13604 //#define REMOVE_QMI_LOC_INJECT_TIME_SYNC_DATA_V02
   13605 //#define REMOVE_QMI_LOC_INJECT_UTC_TIME_V02
   13606 //#define REMOVE_QMI_LOC_INJECT_VEHICLE_SENSOR_DATA_V02
   13607 //#define REMOVE_QMI_LOC_INJECT_WCDMA_CELL_INFO_V02
   13608 //#define REMOVE_QMI_LOC_INJECT_WIFI_AP_DATA_V02
   13609 //#define REMOVE_QMI_LOC_INJECT_WIFI_POSITION_V02
   13610 //#define REMOVE_QMI_LOC_NOTIFY_WIFI_ATTACHMENT_STATUS_V02
   13611 //#define REMOVE_QMI_LOC_NOTIFY_WIFI_ENABLED_STATUS_V02
   13612 //#define REMOVE_QMI_LOC_NOTIFY_WIFI_STATUS_V02
   13613 //#define REMOVE_QMI_LOC_PEDOMETER_REPORT_V02
   13614 //#define REMOVE_QMI_LOC_QUERY_GEOFENCE_V02
   13615 //#define REMOVE_QMI_LOC_READ_FROM_BATCH_V02
   13616 //#define REMOVE_QMI_LOC_REG_EVENTS_V02
   13617 //#define REMOVE_QMI_LOC_RELEASE_BATCH_V02
   13618 //#define REMOVE_QMI_LOC_SET_CRADLE_MOUNT_CONFIG_V02
   13619 //#define REMOVE_QMI_LOC_SET_ENGINE_LOCK_V02
   13620 //#define REMOVE_QMI_LOC_SET_EXTERNAL_POWER_CONFIG_V02
   13621 //#define REMOVE_QMI_LOC_SET_GEOFENCE_ENGINE_CONFIG_V02
   13622 //#define REMOVE_QMI_LOC_SET_GEOFENCE_ENGINE_CONTEXT_V02
   13623 //#define REMOVE_QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG_V02
   13624 //#define REMOVE_QMI_LOC_SET_LOW_POWER_MODE_V02
   13625 //#define REMOVE_QMI_LOC_SET_NMEA_TYPES_V02
   13626 //#define REMOVE_QMI_LOC_SET_OPERATION_MODE_V02
   13627 //#define REMOVE_QMI_LOC_SET_POSITION_ENGINE_CONFIG_PARAMETERS_V02
   13628 //#define REMOVE_QMI_LOC_SET_PREMIUM_SERVICES_CONFIG_V02
   13629 //#define REMOVE_QMI_LOC_SET_PROTOCOL_CONFIG_PARAMETERS_V02
   13630 //#define REMOVE_QMI_LOC_SET_SBAS_CONFIG_V02
   13631 //#define REMOVE_QMI_LOC_SET_SENSOR_CONTROL_CONFIG_V02
   13632 //#define REMOVE_QMI_LOC_SET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_V02
   13633 //#define REMOVE_QMI_LOC_SET_SENSOR_PROPERTIES_V02
   13634 //#define REMOVE_QMI_LOC_SET_SERVER_V02
   13635 //#define REMOVE_QMI_LOC_SET_SPI_STATUS_V02
   13636 //#define REMOVE_QMI_LOC_SET_XTRA_T_SESSION_CONTROL_V02
   13637 //#define REMOVE_QMI_LOC_SET_XTRA_VERSION_CHECK_V02
   13638 //#define REMOVE_QMI_LOC_START_V02
   13639 //#define REMOVE_QMI_LOC_START_BATCHING_V02
   13640 //#define REMOVE_QMI_LOC_START_DBT_V02
   13641 //#define REMOVE_QMI_LOC_STOP_V02
   13642 //#define REMOVE_QMI_LOC_STOP_BATCHING_V02
   13643 //#define REMOVE_QMI_LOC_STOP_DBT_V02
   13644 //#define REMOVE_QMI_LOC_WWAN_OUT_OF_SERVICE_NOTIFICATION_V02
   13645 
   13646 /*Service Message Definition*/
   13647 /** @addtogroup loc_qmi_msg_ids
   13648     @{
   13649   */
   13650 #define QMI_LOC_GET_SUPPORTED_MSGS_REQ_V02 0x001E
   13651 #define QMI_LOC_GET_SUPPORTED_MSGS_RESP_V02 0x001E
   13652 #define QMI_LOC_GET_SUPPORTED_FIELDS_REQ_V02 0x001F
   13653 #define QMI_LOC_GET_SUPPORTED_FIELDS_RESP_V02 0x001F
   13654 #define QMI_LOC_INFORM_CLIENT_REVISION_REQ_V02 0x0020
   13655 #define QMI_LOC_INFORM_CLIENT_REVISION_RESP_V02 0x0020
   13656 #define QMI_LOC_REG_EVENTS_REQ_V02 0x0021
   13657 #define QMI_LOC_REG_EVENTS_RESP_V02 0x0021
   13658 #define QMI_LOC_START_REQ_V02 0x0022
   13659 #define QMI_LOC_START_RESP_V02 0x0022
   13660 #define QMI_LOC_STOP_REQ_V02 0x0023
   13661 #define QMI_LOC_STOP_RESP_V02 0x0023
   13662 #define QMI_LOC_EVENT_POSITION_REPORT_IND_V02 0x0024
   13663 #define QMI_LOC_EVENT_GNSS_SV_INFO_IND_V02 0x0025
   13664 #define QMI_LOC_EVENT_NMEA_IND_V02 0x0026
   13665 #define QMI_LOC_EVENT_NI_NOTIFY_VERIFY_REQ_IND_V02 0x0027
   13666 #define QMI_LOC_EVENT_INJECT_TIME_REQ_IND_V02 0x0028
   13667 #define QMI_LOC_EVENT_INJECT_PREDICTED_ORBITS_REQ_IND_V02 0x0029
   13668 #define QMI_LOC_EVENT_INJECT_POSITION_REQ_IND_V02 0x002A
   13669 #define QMI_LOC_EVENT_ENGINE_STATE_IND_V02 0x002B
   13670 #define QMI_LOC_EVENT_FIX_SESSION_STATE_IND_V02 0x002C
   13671 #define QMI_LOC_EVENT_WIFI_REQ_IND_V02 0x002D
   13672 #define QMI_LOC_EVENT_SENSOR_STREAMING_READY_STATUS_IND_V02 0x002E
   13673 #define QMI_LOC_EVENT_TIME_SYNC_REQ_IND_V02 0x002F
   13674 #define QMI_LOC_EVENT_SET_SPI_STREAMING_REPORT_IND_V02 0x0030
   13675 #define QMI_LOC_EVENT_LOCATION_SERVER_CONNECTION_REQ_IND_V02 0x0031
   13676 #define QMI_LOC_GET_SERVICE_REVISION_REQ_V02 0x0032
   13677 #define QMI_LOC_GET_SERVICE_REVISION_RESP_V02 0x0032
   13678 #define QMI_LOC_GET_SERVICE_REVISION_IND_V02 0x0032
   13679 #define QMI_LOC_GET_FIX_CRITERIA_REQ_V02 0x0033
   13680 #define QMI_LOC_GET_FIX_CRITERIA_RESP_V02 0x0033
   13681 #define QMI_LOC_GET_FIX_CRITERIA_IND_V02 0x0033
   13682 #define QMI_LOC_NI_USER_RESPONSE_REQ_V02 0x0034
   13683 #define QMI_LOC_NI_USER_RESPONSE_RESP_V02 0x0034
   13684 #define QMI_LOC_NI_USER_RESPONSE_IND_V02 0x0034
   13685 #define QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_REQ_V02 0x0035
   13686 #define QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_RESP_V02 0x0035
   13687 #define QMI_LOC_INJECT_PREDICTED_ORBITS_DATA_IND_V02 0x0035
   13688 #define QMI_LOC_GET_PREDICTED_ORBITS_DATA_SOURCE_REQ_V02 0x0036
   13689 #define QMI_LOC_GET_PREDICTED_ORBITS_DATA_SOURCE_RESP_V02 0x0036
   13690 #define QMI_LOC_GET_PREDICTED_ORBITS_DATA_SOURCE_IND_V02 0x0036
   13691 #define QMI_LOC_GET_PREDICTED_ORBITS_DATA_VALIDITY_REQ_V02 0x0037
   13692 #define QMI_LOC_GET_PREDICTED_ORBITS_DATA_VALIDITY_RESP_V02 0x0037
   13693 #define QMI_LOC_GET_PREDICTED_ORBITS_DATA_VALIDITY_IND_V02 0x0037
   13694 #define QMI_LOC_INJECT_UTC_TIME_REQ_V02 0x0038
   13695 #define QMI_LOC_INJECT_UTC_TIME_RESP_V02 0x0038
   13696 #define QMI_LOC_INJECT_UTC_TIME_IND_V02 0x0038
   13697 #define QMI_LOC_INJECT_POSITION_REQ_V02 0x0039
   13698 #define QMI_LOC_INJECT_POSITION_RESP_V02 0x0039
   13699 #define QMI_LOC_INJECT_POSITION_IND_V02 0x0039
   13700 #define QMI_LOC_SET_ENGINE_LOCK_REQ_V02 0x003A
   13701 #define QMI_LOC_SET_ENGINE_LOCK_RESP_V02 0x003A
   13702 #define QMI_LOC_SET_ENGINE_LOCK_IND_V02 0x003A
   13703 #define QMI_LOC_GET_ENGINE_LOCK_REQ_V02 0x003B
   13704 #define QMI_LOC_GET_ENGINE_LOCK_RESP_V02 0x003B
   13705 #define QMI_LOC_GET_ENGINE_LOCK_IND_V02 0x003B
   13706 #define QMI_LOC_SET_SBAS_CONFIG_REQ_V02 0x003C
   13707 #define QMI_LOC_SET_SBAS_CONFIG_RESP_V02 0x003C
   13708 #define QMI_LOC_SET_SBAS_CONFIG_IND_V02 0x003C
   13709 #define QMI_LOC_GET_SBAS_CONFIG_REQ_V02 0x003D
   13710 #define QMI_LOC_GET_SBAS_CONFIG_RESP_V02 0x003D
   13711 #define QMI_LOC_GET_SBAS_CONFIG_IND_V02 0x003D
   13712 #define QMI_LOC_SET_NMEA_TYPES_REQ_V02 0x003E
   13713 #define QMI_LOC_SET_NMEA_TYPES_RESP_V02 0x003E
   13714 #define QMI_LOC_SET_NMEA_TYPES_IND_V02 0x003E
   13715 #define QMI_LOC_GET_NMEA_TYPES_REQ_V02 0x003F
   13716 #define QMI_LOC_GET_NMEA_TYPES_RESP_V02 0x003F
   13717 #define QMI_LOC_GET_NMEA_TYPES_IND_V02 0x003F
   13718 #define QMI_LOC_SET_LOW_POWER_MODE_REQ_V02 0x0040
   13719 #define QMI_LOC_SET_LOW_POWER_MODE_RESP_V02 0x0040
   13720 #define QMI_LOC_SET_LOW_POWER_MODE_IND_V02 0x0040
   13721 #define QMI_LOC_GET_LOW_POWER_MODE_REQ_V02 0x0041
   13722 #define QMI_LOC_GET_LOW_POWER_MODE_RESP_V02 0x0041
   13723 #define QMI_LOC_GET_LOW_POWER_MODE_IND_V02 0x0041
   13724 #define QMI_LOC_SET_SERVER_REQ_V02 0x0042
   13725 #define QMI_LOC_SET_SERVER_RESP_V02 0x0042
   13726 #define QMI_LOC_SET_SERVER_IND_V02 0x0042
   13727 #define QMI_LOC_GET_SERVER_REQ_V02 0x0043
   13728 #define QMI_LOC_GET_SERVER_RESP_V02 0x0043
   13729 #define QMI_LOC_GET_SERVER_IND_V02 0x0043
   13730 #define QMI_LOC_DELETE_ASSIST_DATA_REQ_V02 0x0044
   13731 #define QMI_LOC_DELETE_ASSIST_DATA_RESP_V02 0x0044
   13732 #define QMI_LOC_DELETE_ASSIST_DATA_IND_V02 0x0044
   13733 #define QMI_LOC_SET_XTRA_T_SESSION_CONTROL_REQ_V02 0x0045
   13734 #define QMI_LOC_SET_XTRA_T_SESSION_CONTROL_RESP_V02 0x0045
   13735 #define QMI_LOC_SET_XTRA_T_SESSION_CONTROL_IND_V02 0x0045
   13736 #define QMI_LOC_GET_XTRA_T_SESSION_CONTROL_REQ_V02 0x0046
   13737 #define QMI_LOC_GET_XTRA_T_SESSION_CONTROL_RESP_V02 0x0046
   13738 #define QMI_LOC_GET_XTRA_T_SESSION_CONTROL_IND_V02 0x0046
   13739 #define QMI_LOC_INJECT_WIFI_POSITION_REQ_V02 0x0047
   13740 #define QMI_LOC_INJECT_WIFI_POSITION_RESP_V02 0x0047
   13741 #define QMI_LOC_INJECT_WIFI_POSITION_IND_V02 0x0047
   13742 #define QMI_LOC_NOTIFY_WIFI_STATUS_REQ_V02 0x0048
   13743 #define QMI_LOC_NOTIFY_WIFI_STATUS_RESP_V02 0x0048
   13744 #define QMI_LOC_NOTIFY_WIFI_STATUS_IND_V02 0x0048
   13745 #define QMI_LOC_GET_REGISTERED_EVENTS_REQ_V02 0x0049
   13746 #define QMI_LOC_GET_REGISTERED_EVENTS_RESP_V02 0x0049
   13747 #define QMI_LOC_GET_REGISTERED_EVENTS_IND_V02 0x0049
   13748 #define QMI_LOC_SET_OPERATION_MODE_REQ_V02 0x004A
   13749 #define QMI_LOC_SET_OPERATION_MODE_RESP_V02 0x004A
   13750 #define QMI_LOC_SET_OPERATION_MODE_IND_V02 0x004A
   13751 #define QMI_LOC_GET_OPERATION_MODE_REQ_V02 0x004B
   13752 #define QMI_LOC_GET_OPERATION_MODE_RESP_V02 0x004B
   13753 #define QMI_LOC_GET_OPERATION_MODE_IND_V02 0x004B
   13754 #define QMI_LOC_SET_SPI_STATUS_REQ_V02 0x004C
   13755 #define QMI_LOC_SET_SPI_STATUS_RESP_V02 0x004C
   13756 #define QMI_LOC_SET_SPI_STATUS_IND_V02 0x004C
   13757 #define QMI_LOC_INJECT_SENSOR_DATA_REQ_V02 0x004D
   13758 #define QMI_LOC_INJECT_SENSOR_DATA_RESP_V02 0x004D
   13759 #define QMI_LOC_INJECT_SENSOR_DATA_IND_V02 0x004D
   13760 #define QMI_LOC_INJECT_TIME_SYNC_DATA_REQ_V02 0x004E
   13761 #define QMI_LOC_INJECT_TIME_SYNC_DATA_RESP_V02 0x004E
   13762 #define QMI_LOC_INJECT_TIME_SYNC_DATA_IND_V02 0x004E
   13763 #define QMI_LOC_SET_CRADLE_MOUNT_CONFIG_REQ_V02 0x004F
   13764 #define QMI_LOC_SET_CRADLE_MOUNT_CONFIG_RESP_V02 0x004F
   13765 #define QMI_LOC_SET_CRADLE_MOUNT_CONFIG_IND_V02 0x004F
   13766 #define QMI_LOC_GET_CRADLE_MOUNT_CONFIG_REQ_V02 0x0050
   13767 #define QMI_LOC_GET_CRADLE_MOUNT_CONFIG_RESP_V02 0x0050
   13768 #define QMI_LOC_GET_CRADLE_MOUNT_CONFIG_IND_V02 0x0050
   13769 #define QMI_LOC_SET_EXTERNAL_POWER_CONFIG_REQ_V02 0x0051
   13770 #define QMI_LOC_SET_EXTERNAL_POWER_CONFIG_RESP_V02 0x0051
   13771 #define QMI_LOC_SET_EXTERNAL_POWER_CONFIG_IND_V02 0x0051
   13772 #define QMI_LOC_GET_EXTERNAL_POWER_CONFIG_REQ_V02 0x0052
   13773 #define QMI_LOC_GET_EXTERNAL_POWER_CONFIG_RESP_V02 0x0052
   13774 #define QMI_LOC_GET_EXTERNAL_POWER_CONFIG_IND_V02 0x0052
   13775 #define QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_REQ_V02 0x0053
   13776 #define QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_RESP_V02 0x0053
   13777 #define QMI_LOC_INFORM_LOCATION_SERVER_CONN_STATUS_IND_V02 0x0053
   13778 #define QMI_LOC_SET_PROTOCOL_CONFIG_PARAMETERS_REQ_V02 0x0054
   13779 #define QMI_LOC_SET_PROTOCOL_CONFIG_PARAMETERS_RESP_V02 0x0054
   13780 #define QMI_LOC_SET_PROTOCOL_CONFIG_PARAMETERS_IND_V02 0x0054
   13781 #define QMI_LOC_GET_PROTOCOL_CONFIG_PARAMETERS_REQ_V02 0x0055
   13782 #define QMI_LOC_GET_PROTOCOL_CONFIG_PARAMETERS_RESP_V02 0x0055
   13783 #define QMI_LOC_GET_PROTOCOL_CONFIG_PARAMETERS_IND_V02 0x0055
   13784 #define QMI_LOC_SET_SENSOR_CONTROL_CONFIG_REQ_V02 0x0056
   13785 #define QMI_LOC_SET_SENSOR_CONTROL_CONFIG_RESP_V02 0x0056
   13786 #define QMI_LOC_SET_SENSOR_CONTROL_CONFIG_IND_V02 0x0056
   13787 #define QMI_LOC_GET_SENSOR_CONTROL_CONFIG_REQ_V02 0x0057
   13788 #define QMI_LOC_GET_SENSOR_CONTROL_CONFIG_RESP_V02 0x0057
   13789 #define QMI_LOC_GET_SENSOR_CONTROL_CONFIG_IND_V02 0x0057
   13790 #define QMI_LOC_SET_SENSOR_PROPERTIES_REQ_V02 0x0058
   13791 #define QMI_LOC_SET_SENSOR_PROPERTIES_RESP_V02 0x0058
   13792 #define QMI_LOC_SET_SENSOR_PROPERTIES_IND_V02 0x0058
   13793 #define QMI_LOC_GET_SENSOR_PROPERTIES_REQ_V02 0x0059
   13794 #define QMI_LOC_GET_SENSOR_PROPERTIES_RESP_V02 0x0059
   13795 #define QMI_LOC_GET_SENSOR_PROPERTIES_IND_V02 0x0059
   13796 #define QMI_LOC_SET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_REQ_V02 0x005A
   13797 #define QMI_LOC_SET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_RESP_V02 0x005A
   13798 #define QMI_LOC_SET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_IND_V02 0x005A
   13799 #define QMI_LOC_GET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_REQ_V02 0x005B
   13800 #define QMI_LOC_GET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_RESP_V02 0x005B
   13801 #define QMI_LOC_GET_SENSOR_PERFORMANCE_CONTROL_CONFIGURATION_IND_V02 0x005B
   13802 #define QMI_LOC_INJECT_SUPL_CERTIFICATE_REQ_V02 0x005C
   13803 #define QMI_LOC_INJECT_SUPL_CERTIFICATE_RESP_V02 0x005C
   13804 #define QMI_LOC_INJECT_SUPL_CERTIFICATE_IND_V02 0x005C
   13805 #define QMI_LOC_DELETE_SUPL_CERTIFICATE_REQ_V02 0x005D
   13806 #define QMI_LOC_DELETE_SUPL_CERTIFICATE_RESP_V02 0x005D
   13807 #define QMI_LOC_DELETE_SUPL_CERTIFICATE_IND_V02 0x005D
   13808 #define QMI_LOC_SET_POSITION_ENGINE_CONFIG_PARAMETERS_REQ_V02 0x005E
   13809 #define QMI_LOC_SET_POSITION_ENGINE_CONFIG_PARAMETERS_RESP_V02 0x005E
   13810 #define QMI_LOC_SET_POSITION_ENGINE_CONFIG_PARAMETERS_IND_V02 0x005E
   13811 #define QMI_LOC_GET_POSITION_ENGINE_CONFIG_PARAMETERS_REQ_V02 0x005F
   13812 #define QMI_LOC_GET_POSITION_ENGINE_CONFIG_PARAMETERS_RESP_V02 0x005F
   13813 #define QMI_LOC_GET_POSITION_ENGINE_CONFIG_PARAMETERS_IND_V02 0x005F
   13814 #define QMI_LOC_EVENT_NI_GEOFENCE_NOTIFICATION_IND_V02 0x0060
   13815 #define QMI_LOC_EVENT_GEOFENCE_GEN_ALERT_IND_V02 0x0061
   13816 #define QMI_LOC_EVENT_GEOFENCE_BREACH_NOTIFICATION_IND_V02 0x0062
   13817 #define QMI_LOC_ADD_CIRCULAR_GEOFENCE_REQ_V02 0x0063
   13818 #define QMI_LOC_ADD_CIRCULAR_GEOFENCE_RESP_V02 0x0063
   13819 #define QMI_LOC_ADD_CIRCULAR_GEOFENCE_IND_V02 0x0063
   13820 #define QMI_LOC_DELETE_GEOFENCE_REQ_V02 0x0064
   13821 #define QMI_LOC_DELETE_GEOFENCE_RESP_V02 0x0064
   13822 #define QMI_LOC_DELETE_GEOFENCE_IND_V02 0x0064
   13823 #define QMI_LOC_QUERY_GEOFENCE_REQ_V02 0x0065
   13824 #define QMI_LOC_QUERY_GEOFENCE_RESP_V02 0x0065
   13825 #define QMI_LOC_QUERY_GEOFENCE_IND_V02 0x0065
   13826 #define QMI_LOC_EDIT_GEOFENCE_REQ_V02 0x0066
   13827 #define QMI_LOC_EDIT_GEOFENCE_RESP_V02 0x0066
   13828 #define QMI_LOC_EDIT_GEOFENCE_IND_V02 0x0066
   13829 #define QMI_LOC_GET_BEST_AVAILABLE_POSITION_REQ_V02 0x0067
   13830 #define QMI_LOC_GET_BEST_AVAILABLE_POSITION_RESP_V02 0x0067
   13831 #define QMI_LOC_GET_BEST_AVAILABLE_POSITION_IND_V02 0x0067
   13832 #define QMI_LOC_INJECT_MOTION_DATA_REQ_V02 0x0068
   13833 #define QMI_LOC_INJECT_MOTION_DATA_RESP_V02 0x0068
   13834 #define QMI_LOC_INJECT_MOTION_DATA_IND_V02 0x0068
   13835 #define QMI_LOC_GET_NI_GEOFENCE_ID_LIST_REQ_V02 0x0069
   13836 #define QMI_LOC_GET_NI_GEOFENCE_ID_LIST_RESP_V02 0x0069
   13837 #define QMI_LOC_GET_NI_GEOFENCE_ID_LIST_IND_V02 0x0069
   13838 #define QMI_LOC_INJECT_GSM_CELL_INFO_REQ_V02 0x006A
   13839 #define QMI_LOC_INJECT_GSM_CELL_INFO_RESP_V02 0x006A
   13840 #define QMI_LOC_INJECT_GSM_CELL_INFO_IND_V02 0x006A
   13841 #define QMI_LOC_INJECT_NETWORK_INITIATED_MESSAGE_REQ_V02 0x006B
   13842 #define QMI_LOC_INJECT_NETWORK_INITIATED_MESSAGE_RESP_V02 0x006B
   13843 #define QMI_LOC_INJECT_NETWORK_INITIATED_MESSAGE_IND_V02 0x006B
   13844 #define QMI_LOC_WWAN_OUT_OF_SERVICE_NOTIFICATION_REQ_V02 0x006C
   13845 #define QMI_LOC_WWAN_OUT_OF_SERVICE_NOTIFICATION_RESP_V02 0x006C
   13846 #define QMI_LOC_WWAN_OUT_OF_SERVICE_NOTIFICATION_IND_V02 0x006C
   13847 #define QMI_LOC_EVENT_PEDOMETER_CONTROL_IND_V02 0x006D
   13848 #define QMI_LOC_EVENT_MOTION_DATA_CONTROL_IND_V02 0x006E
   13849 #define QMI_LOC_PEDOMETER_REPORT_REQ_V02 0x006F
   13850 #define QMI_LOC_PEDOMETER_REPORT_RESP_V02 0x006F
   13851 #define QMI_LOC_PEDOMETER_REPORT_IND_V02 0x006F
   13852 #define QMI_LOC_INJECT_WCDMA_CELL_INFO_REQ_V02 0x0070
   13853 #define QMI_LOC_INJECT_WCDMA_CELL_INFO_RESP_V02 0x0070
   13854 #define QMI_LOC_INJECT_WCDMA_CELL_INFO_IND_V02 0x0070
   13855 #define QMI_LOC_INJECT_TDSCDMA_CELL_INFO_REQ_V02 0x0071
   13856 #define QMI_LOC_INJECT_TDSCDMA_CELL_INFO_RESP_V02 0x0071
   13857 #define QMI_LOC_INJECT_TDSCDMA_CELL_INFO_IND_V02 0x0071
   13858 #define QMI_LOC_INJECT_SUBSCRIBER_ID_REQ_V02 0x0072
   13859 #define QMI_LOC_INJECT_SUBSCRIBER_ID_RESP_V02 0x0072
   13860 #define QMI_LOC_INJECT_SUBSCRIBER_ID_IND_V02 0x0072
   13861 #define QMI_LOC_SET_GEOFENCE_ENGINE_CONFIG_REQ_V02 0x0073
   13862 #define QMI_LOC_SET_GEOFENCE_ENGINE_CONFIG_RESP_V02 0x0073
   13863 #define QMI_LOC_SET_GEOFENCE_ENGINE_CONFIG_IND_V02 0x0073
   13864 #define QMI_LOC_GET_GEOFENCE_ENGINE_CONFIG_REQ_V02 0x0074
   13865 #define QMI_LOC_GET_GEOFENCE_ENGINE_CONFIG_RESP_V02 0x0074
   13866 #define QMI_LOC_GET_GEOFENCE_ENGINE_CONFIG_IND_V02 0x0074
   13867 #define QMI_LOC_GET_BATCH_SIZE_REQ_V02 0x0075
   13868 #define QMI_LOC_GET_BATCH_SIZE_RESP_V02 0x0075
   13869 #define QMI_LOC_GET_BATCH_SIZE_IND_V02 0x0075
   13870 #define QMI_LOC_START_BATCHING_REQ_V02 0x0076
   13871 #define QMI_LOC_START_BATCHING_RESP_V02 0x0076
   13872 #define QMI_LOC_START_BATCHING_IND_V02 0x0076
   13873 #define QMI_LOC_EVENT_BATCH_FULL_NOTIFICATION_IND_V02 0x0077
   13874 #define QMI_LOC_EVENT_LIVE_BATCHED_POSITION_REPORT_IND_V02 0x0078
   13875 #define QMI_LOC_READ_FROM_BATCH_REQ_V02 0x0079
   13876 #define QMI_LOC_READ_FROM_BATCH_RESP_V02 0x0079
   13877 #define QMI_LOC_READ_FROM_BATCH_IND_V02 0x0079
   13878 #define QMI_LOC_STOP_BATCHING_REQ_V02 0x007A
   13879 #define QMI_LOC_STOP_BATCHING_RESP_V02 0x007A
   13880 #define QMI_LOC_STOP_BATCHING_IND_V02 0x007A
   13881 #define QMI_LOC_RELEASE_BATCH_REQ_V02 0x007B
   13882 #define QMI_LOC_RELEASE_BATCH_RESP_V02 0x007B
   13883 #define QMI_LOC_RELEASE_BATCH_IND_V02 0x007B
   13884 #define QMI_LOC_EVENT_INJECT_WIFI_AP_DATA_REQ_IND_V02 0x007C
   13885 #define QMI_LOC_INJECT_WIFI_AP_DATA_REQ_V02 0x007D
   13886 #define QMI_LOC_INJECT_WIFI_AP_DATA_RESP_V02 0x007D
   13887 #define QMI_LOC_INJECT_WIFI_AP_DATA_IND_V02 0x007D
   13888 #define QMI_LOC_NOTIFY_WIFI_ATTACHMENT_STATUS_REQ_V02 0x007E
   13889 #define QMI_LOC_NOTIFY_WIFI_ATTACHMENT_STATUS_RESP_V02 0x007E
   13890 #define QMI_LOC_NOTIFY_WIFI_ATTACHMENT_STATUS_IND_V02 0x007E
   13891 #define QMI_LOC_NOTIFY_WIFI_ENABLED_STATUS_REQ_V02 0x007F
   13892 #define QMI_LOC_NOTIFY_WIFI_ENABLED_STATUS_RESP_V02 0x007F
   13893 #define QMI_LOC_NOTIFY_WIFI_ENABLED_STATUS_IND_V02 0x007F
   13894 #define QMI_LOC_EVENT_GEOFENCE_BATCHED_BREACH_NOTIFICATION_IND_V02 0x0080
   13895 #define QMI_LOC_EVENT_VEHICLE_DATA_READY_STATUS_IND_V02 0x0081
   13896 #define QMI_LOC_INJECT_VEHICLE_SENSOR_DATA_REQ_V02 0x0082
   13897 #define QMI_LOC_INJECT_VEHICLE_SENSOR_DATA_RESP_V02 0x0082
   13898 #define QMI_LOC_INJECT_VEHICLE_SENSOR_DATA_IND_V02 0x0082
   13899 #define QMI_LOC_GET_AVAILABLE_WWAN_POSITION_REQ_V02 0x0083
   13900 #define QMI_LOC_GET_AVAILABLE_WWAN_POSITION_RESP_V02 0x0083
   13901 #define QMI_LOC_GET_AVAILABLE_WWAN_POSITION_IND_V02 0x0083
   13902 #define QMI_LOC_SET_PREMIUM_SERVICES_CONFIG_REQ_V02 0x0084
   13903 #define QMI_LOC_SET_PREMIUM_SERVICES_CONFIG_RESP_V02 0x0084
   13904 #define QMI_LOC_SET_PREMIUM_SERVICES_CONFIG_IND_V02 0x0084
   13905 #define QMI_LOC_SET_XTRA_VERSION_CHECK_REQ_V02 0x0085
   13906 #define QMI_LOC_SET_XTRA_VERSION_CHECK_RESP_V02 0x0085
   13907 #define QMI_LOC_SET_XTRA_VERSION_CHECK_IND_V02 0x0085
   13908 #define QMI_LOC_EVENT_GNSS_MEASUREMENT_REPORT_IND_V02 0x0086
   13909 #define QMI_LOC_EVENT_SV_POLYNOMIAL_REPORT_IND_V02 0x0087
   13910 #define QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG_V02 0x0088
   13911 #define QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG_RESP_V02 0x0088
   13912 #define QMI_LOC_SET_GNSS_CONSTELL_REPORT_CONFIG_IND_V02 0x0088
   13913 #define QMI_LOC_ADD_GEOFENCE_CONTEXT_REQ_V02 0x0089
   13914 #define QMI_LOC_ADD_GEOFENCE_CONTEXT_RESP_V02 0x0089
   13915 #define QMI_LOC_ADD_GEOFENCE_CONTEXT_IND_V02 0x0089
   13916 #define QMI_LOC_SET_GEOFENCE_ENGINE_CONTEXT_REQ_V02 0x008A
   13917 #define QMI_LOC_SET_GEOFENCE_ENGINE_CONTEXT_RESP_V02 0x008A
   13918 #define QMI_LOC_SET_GEOFENCE_ENGINE_CONTEXT_IND_V02 0x008A
   13919 #define QMI_LOC_DELETE_GEOFENCE_CONTEXT_REQ_V02 0x008B
   13920 #define QMI_LOC_DELETE_GEOFENCE_CONTEXT_RESP_V02 0x008B
   13921 #define QMI_LOC_DELETE_GEOFENCE_CONTEXT_IND_V02 0x008B
   13922 #define QMI_LOC_EVENT_GEOFENCE_PROXIMITY_NOTIFICATION_IND_V02 0x008C
   13923 #define QMI_LOC_INJECT_GTP_CLIENT_DOWNLOADED_DATA_REQ_V02 0x008D
   13924 #define QMI_LOC_INJECT_GTP_CLIENT_DOWNLOADED_DATA_RESP_V02 0x008D
   13925 #define QMI_LOC_INJECT_GTP_CLIENT_DOWNLOADED_DATA_IND_V02 0x008D
   13926 #define QMI_LOC_GDT_UPLOAD_BEGIN_STATUS_REQ_V02 0x008E
   13927 #define QMI_LOC_GDT_UPLOAD_BEGIN_STATUS_RESP_V02 0x008E
   13928 #define QMI_LOC_GDT_UPLOAD_BEGIN_STATUS_IND_V02 0x008E
   13929 #define QMI_LOC_GDT_UPLOAD_END_REQ_V02 0x008F
   13930 #define QMI_LOC_GDT_UPLOAD_END_RESP_V02 0x008F
   13931 #define QMI_LOC_GDT_UPLOAD_END_IND_V02 0x008F
   13932 #define QMI_LOC_EVENT_GDT_UPLOAD_BEGIN_STATUS_REQ_IND_V02 0x0090
   13933 #define QMI_LOC_EVENT_GDT_UPLOAD_END_REQ_IND_V02 0x0091
   13934 #define QMI_LOC_START_DBT_REQ_V02 0x0092
   13935 #define QMI_LOC_START_DBT_RESP_V02 0x0092
   13936 #define QMI_LOC_START_DBT_IND_V02 0x0092
   13937 #define QMI_LOC_EVENT_DBT_POSITION_REPORT_IND_V02 0x0093
   13938 #define QMI_LOC_EVENT_DBT_SESSION_STATUS_IND_V02 0x0094
   13939 #define QMI_LOC_STOP_DBT_REQ_V02 0x0095
   13940 #define QMI_LOC_STOP_DBT_RESP_V02 0x0095
   13941 #define QMI_LOC_STOP_DBT_IND_V02 0x0095
   13942 /**
   13943     @}
   13944   */
   13945 
   13946 /* Service Object Accessor */
   13947 /** @addtogroup wms_qmi_accessor
   13948     @{
   13949   */
   13950 /** This function is used internally by the autogenerated code.  Clients should use the
   13951    macro loc_get_service_object_v02( ) that takes in no arguments. */
   13952 qmi_idl_service_object_type loc_get_service_object_internal_v02
   13953  ( int32_t idl_maj_version, int32_t idl_min_version, int32_t library_version );
   13954 
   13955 /** This macro should be used to get the service object */
   13956 #define loc_get_service_object_v02( ) \
   13957           loc_get_service_object_internal_v02( \
   13958             LOC_V02_IDL_MAJOR_VERS, LOC_V02_IDL_MINOR_VERS, \
   13959             LOC_V02_IDL_TOOL_VERS )
   13960 /**
   13961     @}
   13962   */
   13963 
   13964 
   13965 #ifdef __cplusplus
   13966 }
   13967 #endif
   13968 #endif
   13969 
   13970