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