1*4d7e907cSAndroid Build Coastguard Worker/* 2*4d7e907cSAndroid Build Coastguard Worker * Copyright (C) 2018 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 Workerimport [email protected]::IMeasurementCorrections; 20*4d7e907cSAndroid Build Coastguard Workerimport [email protected]::IGnssVisibilityControl; 21*4d7e907cSAndroid Build Coastguard Workerimport @1.1::IGnss; 22*4d7e907cSAndroid Build Coastguard Worker 23*4d7e907cSAndroid Build Coastguard Workerimport GnssLocation; 24*4d7e907cSAndroid Build Coastguard Workerimport IGnssCallback; 25*4d7e907cSAndroid Build Coastguard Workerimport IGnssConfiguration; 26*4d7e907cSAndroid Build Coastguard Workerimport IGnssDebug; 27*4d7e907cSAndroid Build Coastguard Workerimport IGnssMeasurement; 28*4d7e907cSAndroid Build Coastguard Workerimport IAGnss; 29*4d7e907cSAndroid Build Coastguard Workerimport IAGnssRil; 30*4d7e907cSAndroid Build Coastguard Workerimport IGnssBatching; 31*4d7e907cSAndroid Build Coastguard Worker 32*4d7e907cSAndroid Build Coastguard Worker/** 33*4d7e907cSAndroid Build Coastguard Worker * Represents the standard GNSS (Global Navigation Satellite System) interface. 34*4d7e907cSAndroid Build Coastguard Worker * 35*4d7e907cSAndroid Build Coastguard Worker * Due to the introduction of new GNSS HAL package [email protected] 36*4d7e907cSAndroid Build Coastguard Worker * the interface @1.0::IGnssNi.hal and @1.0::IGnssNiCallback.hal are deprecated in this version 37*4d7e907cSAndroid Build Coastguard Worker * and are not supported by the framework. The GNSS HAL implementation of this interface 38*4d7e907cSAndroid Build Coastguard Worker * must return nullptr for the following @1.0::IGnss method. 39*4d7e907cSAndroid Build Coastguard Worker * getExtensionGnssNi() generates (IGnssNi gnssNiIface); 40*4d7e907cSAndroid Build Coastguard Worker */ 41*4d7e907cSAndroid Build Coastguard Workerinterface IGnss extends @1.1::IGnss { 42*4d7e907cSAndroid Build Coastguard Worker /** 43*4d7e907cSAndroid Build Coastguard Worker * Opens the interface and provides the callback routines to the implementation of this 44*4d7e907cSAndroid Build Coastguard Worker * interface. 45*4d7e907cSAndroid Build Coastguard Worker * 46*4d7e907cSAndroid Build Coastguard Worker * The framework calls this method to instruct the GPS engine to prepare for serving requests 47*4d7e907cSAndroid Build Coastguard Worker * from the framework. The GNSS HAL implementation must respond to all GNSS requests from the 48*4d7e907cSAndroid Build Coastguard Worker * framework upon successful return from this method until cleanup() method is called to 49*4d7e907cSAndroid Build Coastguard Worker * close this interface. 50*4d7e907cSAndroid Build Coastguard Worker * 51*4d7e907cSAndroid Build Coastguard Worker * @param callback Callback interface for IGnss. 52*4d7e907cSAndroid Build Coastguard Worker * 53*4d7e907cSAndroid Build Coastguard Worker * @return success Returns true on success. 54*4d7e907cSAndroid Build Coastguard Worker */ 55*4d7e907cSAndroid Build Coastguard Worker setCallback_2_0(IGnssCallback callback) generates (bool success); 56*4d7e907cSAndroid Build Coastguard Worker 57*4d7e907cSAndroid Build Coastguard Worker /** 58*4d7e907cSAndroid Build Coastguard Worker * This method returns the IGnssConfiguration interface. 59*4d7e907cSAndroid Build Coastguard Worker * 60*4d7e907cSAndroid Build Coastguard Worker * @return gnssConfigurationIface Handle to the IGnssConfiguration interface. 61*4d7e907cSAndroid Build Coastguard Worker */ 62*4d7e907cSAndroid Build Coastguard Worker getExtensionGnssConfiguration_2_0() generates (IGnssConfiguration gnssConfigurationIface); 63*4d7e907cSAndroid Build Coastguard Worker 64*4d7e907cSAndroid Build Coastguard Worker /** 65*4d7e907cSAndroid Build Coastguard Worker * This method returns the IGnssDebug interface. 66*4d7e907cSAndroid Build Coastguard Worker * 67*4d7e907cSAndroid Build Coastguard Worker * @return gnssDebugIface Handle to the IGnssDebug interface. 68*4d7e907cSAndroid Build Coastguard Worker */ 69*4d7e907cSAndroid Build Coastguard Worker getExtensionGnssDebug_2_0() generates (IGnssDebug gnssDebugIface); 70*4d7e907cSAndroid Build Coastguard Worker 71*4d7e907cSAndroid Build Coastguard Worker /** 72*4d7e907cSAndroid Build Coastguard Worker * This method returns the IAGnss Interface. 73*4d7e907cSAndroid Build Coastguard Worker * 74*4d7e907cSAndroid Build Coastguard Worker * The getExtensionAGnss() must return nullptr as the @1.0::IAGnss interface is 75*4d7e907cSAndroid Build Coastguard Worker * deprecated. 76*4d7e907cSAndroid Build Coastguard Worker * 77*4d7e907cSAndroid Build Coastguard Worker * @return aGnssIface Handle to the IAGnss interface. 78*4d7e907cSAndroid Build Coastguard Worker */ 79*4d7e907cSAndroid Build Coastguard Worker getExtensionAGnss_2_0() generates (IAGnss aGnssIface); 80*4d7e907cSAndroid Build Coastguard Worker 81*4d7e907cSAndroid Build Coastguard Worker /** 82*4d7e907cSAndroid Build Coastguard Worker * This method returns the IAGnssRil Interface. 83*4d7e907cSAndroid Build Coastguard Worker * 84*4d7e907cSAndroid Build Coastguard Worker * @return aGnssRilIface Handle to the IAGnssRil interface. 85*4d7e907cSAndroid Build Coastguard Worker */ 86*4d7e907cSAndroid Build Coastguard Worker getExtensionAGnssRil_2_0() generates (IAGnssRil aGnssRilIface); 87*4d7e907cSAndroid Build Coastguard Worker 88*4d7e907cSAndroid Build Coastguard Worker /** 89*4d7e907cSAndroid Build Coastguard Worker * This method returns the IGnssMeasurement interface. 90*4d7e907cSAndroid Build Coastguard Worker * 91*4d7e907cSAndroid Build Coastguard Worker * Exactly one of getExtensionGnssMeasurement(), getExtensionGnssMeasurement_1_1(), and 92*4d7e907cSAndroid Build Coastguard Worker * getExtensionGnssMeasurement_2_0() methods must return a non-null handle, and the other 93*4d7e907cSAndroid Build Coastguard Worker * methods must return nullptr. 94*4d7e907cSAndroid Build Coastguard Worker * 95*4d7e907cSAndroid Build Coastguard Worker * @return gnssMeasurementIface Handle to the IGnssMeasurement interface. 96*4d7e907cSAndroid Build Coastguard Worker */ 97*4d7e907cSAndroid Build Coastguard Worker getExtensionGnssMeasurement_2_0() generates (IGnssMeasurement gnssMeasurementIface); 98*4d7e907cSAndroid Build Coastguard Worker 99*4d7e907cSAndroid Build Coastguard Worker /** 100*4d7e907cSAndroid Build Coastguard Worker * This method returns the IMeasurementCorrections interface. 101*4d7e907cSAndroid Build Coastguard Worker * 102*4d7e907cSAndroid Build Coastguard Worker * @return measurementCorrectionsIface Handle to the IMeasurementCorrections interface. 103*4d7e907cSAndroid Build Coastguard Worker */ 104*4d7e907cSAndroid Build Coastguard Worker getExtensionMeasurementCorrections() 105*4d7e907cSAndroid Build Coastguard Worker generates (IMeasurementCorrections measurementCorrectionsIface); 106*4d7e907cSAndroid Build Coastguard Worker 107*4d7e907cSAndroid Build Coastguard Worker /** 108*4d7e907cSAndroid Build Coastguard Worker * This method returns the IGnssVisibilityControl interface. 109*4d7e907cSAndroid Build Coastguard Worker * 110*4d7e907cSAndroid Build Coastguard Worker * @return visibilityControlIface Handle to the IGnssVisibilityControl interface. 111*4d7e907cSAndroid Build Coastguard Worker */ 112*4d7e907cSAndroid Build Coastguard Worker getExtensionVisibilityControl() generates (IGnssVisibilityControl visibilityControlIface); 113*4d7e907cSAndroid Build Coastguard Worker 114*4d7e907cSAndroid Build Coastguard Worker /** 115*4d7e907cSAndroid Build Coastguard Worker * This method returns the IGnssBatching interface. 116*4d7e907cSAndroid Build Coastguard Worker * 117*4d7e907cSAndroid Build Coastguard Worker * @return batchingIface Handle to the IGnssBatching interface. 118*4d7e907cSAndroid Build Coastguard Worker */ 119*4d7e907cSAndroid Build Coastguard Worker getExtensionGnssBatching_2_0() generates (IGnssBatching batchingIface); 120*4d7e907cSAndroid Build Coastguard Worker 121*4d7e907cSAndroid Build Coastguard Worker /** 122*4d7e907cSAndroid Build Coastguard Worker * Injects current location from the best available location provider. 123*4d7e907cSAndroid Build Coastguard Worker * 124*4d7e907cSAndroid Build Coastguard Worker * Unlike injectLocation, this method may inject a recent GNSS location from the HAL 125*4d7e907cSAndroid Build Coastguard Worker * implementation, if that is the best available location known to the framework. 126*4d7e907cSAndroid Build Coastguard Worker * 127*4d7e907cSAndroid Build Coastguard Worker * @param location Location information from the best available location provider. 128*4d7e907cSAndroid Build Coastguard Worker * 129*4d7e907cSAndroid Build Coastguard Worker * @return success Returns true if successful. 130*4d7e907cSAndroid Build Coastguard Worker */ 131*4d7e907cSAndroid Build Coastguard Worker injectBestLocation_2_0(GnssLocation location) generates (bool success); 132*4d7e907cSAndroid Build Coastguard Worker};