| /* |
| * Copyright (C) 2016 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package android.hardware.gnss@1.0; |
| |
| /** |
| * Interface for passing GNSS configuration info from platform to HAL. |
| */ |
| interface IGnssConfiguration { |
| /** |
| * Enum which holds the bit masks for SUPL_MODE configuration parameter. |
| */ |
| enum SuplMode : uint8_t { |
| /** Mobile Station Based */ |
| MSB = 0x01, |
| |
| /** Mobile Station Assisted */ |
| MSA = 0x02 |
| }; |
| |
| /** |
| * Enum which holds the bit masks for GPS_LOCK configuration parameter. |
| */ |
| enum GpsLock : uint8_t { |
| /** Lock Mobile Originated GPS functionalitues. */ |
| MO = 0x01, |
| |
| /** Lock Network initiated GPS functionalities. */ |
| NI = 0x02 |
| }; |
| |
| /** |
| * Enum that hold the bit masks for various LTE Positioning Profile settings (LPP_PROFILE |
| * configuration parameter). If none of the bits in the enum are set, the default setting is |
| * Radio Resource Location Protocol(RRLP). |
| */ |
| enum LppProfile : uint8_t { |
| /** Enable LTE Positioning Protocol user plane */ |
| USER_PLANE = 0x01, |
| |
| /** Enable LTE Positioning Protocol Control plane */ |
| CONTROL_PLANE = 0x02 |
| }; |
| |
| /** |
| * Enum which holds the bit masks for A_GLONASS_POS_PROTOCOL_SELECT |
| * configuration parameter. |
| */ |
| enum GlonassPosProtocol : uint8_t { |
| /** Radio Resource Control(RRC) control-plane. */ |
| RRC_CPLANE = 0x01, |
| |
| /** Radio Resource Location user-plane. */ |
| RRLP_CPLANE = 0x02, |
| |
| /** LTE Positioning Protocol User plane */ |
| LPP_UPLANE = 0x04 |
| }; |
| |
| /** |
| * IMPORTANT: GNSS HAL must expect the below methods to be called multiple |
| * times. They can be called even when GnssLocationProvider is already |
| * constructed and enabled. GNSS HAL must maintain the existing requests |
| * for various callbacks regardless the change in configuration data. |
| */ |
| |
| /** |
| * This method enables or disables NI emergency SUPL restrictions. |
| * |
| * @param enabled True if the device must only accept NI Emergency SUPL requests when the |
| * device is truly in emergency mode (e.g. the user has dialed 911, 112, |
| * etc...) |
| * False if the device must accept NI Emergency SUPL any time they are |
| * received |
| * |
| * @return success True if operation was successful. |
| */ |
| setSuplEs(bool enabled) generates (bool success); |
| |
| /** |
| * This method sets the SUPL version requested by Carrier. The GNSS HAL |
| * must use this version of the SUPL protocol if supported. |
| * |
| * @param version SUPL version requested by carrier. This is a bit mask |
| * with bits 0:7 representing a service indicator field, bits 8:15 |
| * representing the minor version and bits 16:23 representing the |
| * major version. |
| * |
| * @return success True if operation was successful. |
| */ |
| setSuplVersion(uint32_t version) generates (bool success); |
| |
| /** |
| * This method sets the SUPL mode. |
| * |
| * @param mode Bit mask that specifies the SUPL mode which is set with the SuplMode enum. |
| * |
| * @return success True if operation was successful. |
| */ |
| setSuplMode(bitfield<SuplMode> mode) generates (bool success); |
| |
| /** |
| * This setting configures how GPS functionalities should be locked when |
| * user turns off GPS On setting. |
| * |
| * @param lock Bitmask that specifies the GPS functionalities to be be |
| * locked as per the GpsLock enum. |
| * |
| * @return success True if operation was successful. |
| */ |
| setGpsLock(bitfield<GpsLock> lock) generates (bool success); |
| |
| /** |
| * This method sets the LTE Positioning Profile configuration. |
| * |
| * @param lppProfile Bitmask that specifies the LTE Positioning Profile |
| * configuration to be set as per the LppProfile enum. |
| * |
| * @return success True if operation was successful. |
| */ |
| setLppProfile(bitfield<LppProfile> lppProfile) generates (bool success); |
| |
| /** |
| * This method selects positioning protocol on A-Glonass system. |
| * |
| * @param protocol Bitmask that specifies the positioning protocol to be |
| * set as per GlonassPosProtocol enum. |
| * |
| * @return success True if operation was successful. |
| */ |
| setGlonassPositioningProtocol(bitfield<GlonassPosProtocol> protocol) generates (bool success); |
| |
| /** |
| * This method configures which PDN to use. |
| * |
| * @param enable Use emergency PDN if true and regular PDN if false. |
| * @return success True if operation was successful. |
| */ |
| setEmergencySuplPdn(bool enable) generates (bool success); |
| }; |