1*4d7e907cSAndroid Build Coastguard Worker/* 2*4d7e907cSAndroid Build Coastguard Worker * Copyright (C) 2016 The Android Open Source Project 3*4d7e907cSAndroid Build Coastguard Worker * 4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*4d7e907cSAndroid Build Coastguard Worker * 8*4d7e907cSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*4d7e907cSAndroid Build Coastguard Worker * 10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License. 15*4d7e907cSAndroid Build Coastguard Worker */ 16*4d7e907cSAndroid Build Coastguard Worker 17*4d7e907cSAndroid Build Coastguard Workerpackage [email protected]; 18*4d7e907cSAndroid Build Coastguard Worker 19*4d7e907cSAndroid Build Coastguard Worker/** 20*4d7e907cSAndroid Build Coastguard Worker * Interface for passing GNSS configuration info from platform to HAL. 21*4d7e907cSAndroid Build Coastguard Worker */ 22*4d7e907cSAndroid Build Coastguard Workerinterface IGnssConfiguration { 23*4d7e907cSAndroid Build Coastguard Worker /** 24*4d7e907cSAndroid Build Coastguard Worker * Enum which holds the bit masks for SUPL_MODE configuration parameter. 25*4d7e907cSAndroid Build Coastguard Worker */ 26*4d7e907cSAndroid Build Coastguard Worker enum SuplMode : uint8_t { 27*4d7e907cSAndroid Build Coastguard Worker /** Mobile Station Based */ 28*4d7e907cSAndroid Build Coastguard Worker MSB = 0x01, 29*4d7e907cSAndroid Build Coastguard Worker 30*4d7e907cSAndroid Build Coastguard Worker /** Mobile Station Assisted */ 31*4d7e907cSAndroid Build Coastguard Worker MSA = 0x02 32*4d7e907cSAndroid Build Coastguard Worker }; 33*4d7e907cSAndroid Build Coastguard Worker 34*4d7e907cSAndroid Build Coastguard Worker /** 35*4d7e907cSAndroid Build Coastguard Worker * Enum which holds the bit masks for GPS_LOCK configuration parameter. 36*4d7e907cSAndroid Build Coastguard Worker */ 37*4d7e907cSAndroid Build Coastguard Worker enum GpsLock : uint8_t { 38*4d7e907cSAndroid Build Coastguard Worker /** Lock Mobile Originated GPS functionalitues. */ 39*4d7e907cSAndroid Build Coastguard Worker MO = 0x01, 40*4d7e907cSAndroid Build Coastguard Worker 41*4d7e907cSAndroid Build Coastguard Worker /** Lock Network initiated GPS functionalities. */ 42*4d7e907cSAndroid Build Coastguard Worker NI = 0x02 43*4d7e907cSAndroid Build Coastguard Worker }; 44*4d7e907cSAndroid Build Coastguard Worker 45*4d7e907cSAndroid Build Coastguard Worker /** 46*4d7e907cSAndroid Build Coastguard Worker * Enum that hold the bit masks for various LTE Positioning Profile settings (LPP_PROFILE 47*4d7e907cSAndroid Build Coastguard Worker * configuration parameter). If none of the bits in the enum are set, the default setting is 48*4d7e907cSAndroid Build Coastguard Worker * Radio Resource Location Protocol(RRLP). 49*4d7e907cSAndroid Build Coastguard Worker */ 50*4d7e907cSAndroid Build Coastguard Worker enum LppProfile : uint8_t { 51*4d7e907cSAndroid Build Coastguard Worker /** Enable LTE Positioning Protocol user plane */ 52*4d7e907cSAndroid Build Coastguard Worker USER_PLANE = 0x01, 53*4d7e907cSAndroid Build Coastguard Worker 54*4d7e907cSAndroid Build Coastguard Worker /** Enable LTE Positioning Protocol Control plane */ 55*4d7e907cSAndroid Build Coastguard Worker CONTROL_PLANE = 0x02 56*4d7e907cSAndroid Build Coastguard Worker }; 57*4d7e907cSAndroid Build Coastguard Worker 58*4d7e907cSAndroid Build Coastguard Worker /** 59*4d7e907cSAndroid Build Coastguard Worker * Enum which holds the bit masks for A_GLONASS_POS_PROTOCOL_SELECT 60*4d7e907cSAndroid Build Coastguard Worker * configuration parameter. 61*4d7e907cSAndroid Build Coastguard Worker */ 62*4d7e907cSAndroid Build Coastguard Worker enum GlonassPosProtocol : uint8_t { 63*4d7e907cSAndroid Build Coastguard Worker /** Radio Resource Control(RRC) control-plane. */ 64*4d7e907cSAndroid Build Coastguard Worker RRC_CPLANE = 0x01, 65*4d7e907cSAndroid Build Coastguard Worker 66*4d7e907cSAndroid Build Coastguard Worker /** Radio Resource Location user-plane. */ 67*4d7e907cSAndroid Build Coastguard Worker RRLP_CPLANE = 0x02, 68*4d7e907cSAndroid Build Coastguard Worker 69*4d7e907cSAndroid Build Coastguard Worker /** LTE Positioning Protocol User plane */ 70*4d7e907cSAndroid Build Coastguard Worker LPP_UPLANE = 0x04 71*4d7e907cSAndroid Build Coastguard Worker }; 72*4d7e907cSAndroid Build Coastguard Worker 73*4d7e907cSAndroid Build Coastguard Worker /** 74*4d7e907cSAndroid Build Coastguard Worker * IMPORTANT: GNSS HAL must expect the below methods to be called multiple 75*4d7e907cSAndroid Build Coastguard Worker * times. They can be called even when GnssLocationProvider is already 76*4d7e907cSAndroid Build Coastguard Worker * constructed and enabled. GNSS HAL must maintain the existing requests 77*4d7e907cSAndroid Build Coastguard Worker * for various callbacks regardless the change in configuration data. 78*4d7e907cSAndroid Build Coastguard Worker */ 79*4d7e907cSAndroid Build Coastguard Worker 80*4d7e907cSAndroid Build Coastguard Worker /** 81*4d7e907cSAndroid Build Coastguard Worker * This method enables or disables NI emergency SUPL restrictions. 82*4d7e907cSAndroid Build Coastguard Worker * 83*4d7e907cSAndroid Build Coastguard Worker * @param enabled True if the device must only accept NI Emergency SUPL requests when the 84*4d7e907cSAndroid Build Coastguard Worker * device is truly in emergency mode (e.g. the user has dialed 911, 112, 85*4d7e907cSAndroid Build Coastguard Worker * etc...) 86*4d7e907cSAndroid Build Coastguard Worker * False if the device must accept NI Emergency SUPL any time they are 87*4d7e907cSAndroid Build Coastguard Worker * received 88*4d7e907cSAndroid Build Coastguard Worker * 89*4d7e907cSAndroid Build Coastguard Worker * @return success True if operation was successful. 90*4d7e907cSAndroid Build Coastguard Worker */ 91*4d7e907cSAndroid Build Coastguard Worker setSuplEs(bool enabled) generates (bool success); 92*4d7e907cSAndroid Build Coastguard Worker 93*4d7e907cSAndroid Build Coastguard Worker /** 94*4d7e907cSAndroid Build Coastguard Worker * This method sets the SUPL version requested by Carrier. The GNSS HAL 95*4d7e907cSAndroid Build Coastguard Worker * must use this version of the SUPL protocol if supported. 96*4d7e907cSAndroid Build Coastguard Worker * 97*4d7e907cSAndroid Build Coastguard Worker * @param version SUPL version requested by carrier. This is a bit mask 98*4d7e907cSAndroid Build Coastguard Worker * with bits 0:7 representing a service indicator field, bits 8:15 99*4d7e907cSAndroid Build Coastguard Worker * representing the minor version and bits 16:23 representing the 100*4d7e907cSAndroid Build Coastguard Worker * major version. 101*4d7e907cSAndroid Build Coastguard Worker * 102*4d7e907cSAndroid Build Coastguard Worker * @return success True if operation was successful. 103*4d7e907cSAndroid Build Coastguard Worker */ 104*4d7e907cSAndroid Build Coastguard Worker setSuplVersion(uint32_t version) generates (bool success); 105*4d7e907cSAndroid Build Coastguard Worker 106*4d7e907cSAndroid Build Coastguard Worker /** 107*4d7e907cSAndroid Build Coastguard Worker * This method sets the SUPL mode. 108*4d7e907cSAndroid Build Coastguard Worker * 109*4d7e907cSAndroid Build Coastguard Worker * @param mode Bit mask that specifies the SUPL mode which is set with the SuplMode enum. 110*4d7e907cSAndroid Build Coastguard Worker * 111*4d7e907cSAndroid Build Coastguard Worker * @return success True if operation was successful. 112*4d7e907cSAndroid Build Coastguard Worker */ 113*4d7e907cSAndroid Build Coastguard Worker setSuplMode(bitfield<SuplMode> mode) generates (bool success); 114*4d7e907cSAndroid Build Coastguard Worker 115*4d7e907cSAndroid Build Coastguard Worker /** 116*4d7e907cSAndroid Build Coastguard Worker * This setting configures how GPS functionalities should be locked when 117*4d7e907cSAndroid Build Coastguard Worker * user turns off GPS On setting. 118*4d7e907cSAndroid Build Coastguard Worker * 119*4d7e907cSAndroid Build Coastguard Worker * @param lock Bitmask that specifies the GPS functionalities to be be 120*4d7e907cSAndroid Build Coastguard Worker * locked as per the GpsLock enum. 121*4d7e907cSAndroid Build Coastguard Worker * 122*4d7e907cSAndroid Build Coastguard Worker * @return success True if operation was successful. 123*4d7e907cSAndroid Build Coastguard Worker */ 124*4d7e907cSAndroid Build Coastguard Worker setGpsLock(bitfield<GpsLock> lock) generates (bool success); 125*4d7e907cSAndroid Build Coastguard Worker 126*4d7e907cSAndroid Build Coastguard Worker /** 127*4d7e907cSAndroid Build Coastguard Worker * This method sets the LTE Positioning Profile configuration. 128*4d7e907cSAndroid Build Coastguard Worker * 129*4d7e907cSAndroid Build Coastguard Worker * @param lppProfile Bitmask that specifies the LTE Positioning Profile 130*4d7e907cSAndroid Build Coastguard Worker * configuration to be set as per the LppProfile enum. 131*4d7e907cSAndroid Build Coastguard Worker * 132*4d7e907cSAndroid Build Coastguard Worker * @return success True if operation was successful. 133*4d7e907cSAndroid Build Coastguard Worker */ 134*4d7e907cSAndroid Build Coastguard Worker setLppProfile(bitfield<LppProfile> lppProfile) generates (bool success); 135*4d7e907cSAndroid Build Coastguard Worker 136*4d7e907cSAndroid Build Coastguard Worker /** 137*4d7e907cSAndroid Build Coastguard Worker * This method selects positioning protocol on A-Glonass system. 138*4d7e907cSAndroid Build Coastguard Worker * 139*4d7e907cSAndroid Build Coastguard Worker * @param protocol Bitmask that specifies the positioning protocol to be 140*4d7e907cSAndroid Build Coastguard Worker * set as per GlonassPosProtocol enum. 141*4d7e907cSAndroid Build Coastguard Worker * 142*4d7e907cSAndroid Build Coastguard Worker * @return success True if operation was successful. 143*4d7e907cSAndroid Build Coastguard Worker */ 144*4d7e907cSAndroid Build Coastguard Worker setGlonassPositioningProtocol(bitfield<GlonassPosProtocol> protocol) generates (bool success); 145*4d7e907cSAndroid Build Coastguard Worker 146*4d7e907cSAndroid Build Coastguard Worker /** 147*4d7e907cSAndroid Build Coastguard Worker * This method configures which PDN to use. 148*4d7e907cSAndroid Build Coastguard Worker * 149*4d7e907cSAndroid Build Coastguard Worker * @param enable Use emergency PDN if true and regular PDN if false. 150*4d7e907cSAndroid Build Coastguard Worker * @return success True if operation was successful. 151*4d7e907cSAndroid Build Coastguard Worker */ 152*4d7e907cSAndroid Build Coastguard Worker setEmergencySuplPdn(bool enable) generates (bool success); 153*4d7e907cSAndroid Build Coastguard Worker}; 154