2018-11-06 23:12:49 +01:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2018 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@2.0;
|
|
|
|
|
2018-12-02 11:49:10 +01:00
|
|
|
import android.hardware.gnss.measurement_corrections@1.0::IMeasurementCorrections;
|
2018-11-14 21:38:57 +01:00
|
|
|
import android.hardware.gnss.visibility_control@1.0::IGnssVisibilityControl;
|
2018-11-06 23:12:49 +01:00
|
|
|
import @1.1::IGnss;
|
|
|
|
|
2019-01-18 01:56:17 +01:00
|
|
|
import GnssLocation;
|
2018-12-02 11:49:10 +01:00
|
|
|
import IGnssCallback;
|
2018-12-20 00:22:13 +01:00
|
|
|
import IGnssConfiguration;
|
2019-03-14 19:08:43 +01:00
|
|
|
import IGnssDebug;
|
2018-11-06 23:12:49 +01:00
|
|
|
import IGnssMeasurement;
|
2018-11-14 18:35:14 +01:00
|
|
|
import IAGnss;
|
2018-11-14 19:23:45 +01:00
|
|
|
import IAGnssRil;
|
2018-11-06 23:12:49 +01:00
|
|
|
|
2018-11-14 21:38:57 +01:00
|
|
|
/**
|
|
|
|
* Represents the standard GNSS (Global Navigation Satellite System) interface.
|
|
|
|
*
|
|
|
|
* Due to the introduction of new GNSS HAL package android.hardware.gnss.visibility_control@1.0
|
|
|
|
* the interface @1.0::IGnssNi.hal and @1.0::IGnssNiCallback.hal are deprecated in this version
|
|
|
|
* and are not supported by the framework. The GNSS HAL implementation of this interface
|
|
|
|
* must return nullptr for the following @1.0::IGnss method.
|
|
|
|
* getExtensionGnssNi() generates (IGnssNi gnssNiIface);
|
|
|
|
*/
|
2018-11-06 23:12:49 +01:00
|
|
|
interface IGnss extends @1.1::IGnss {
|
2018-12-20 00:22:13 +01:00
|
|
|
/**
|
2018-12-02 11:49:10 +01:00
|
|
|
* Opens the interface and provides the callback routines to the implementation of this
|
|
|
|
* interface.
|
|
|
|
*
|
|
|
|
* @param callback Callback interface for IGnss.
|
|
|
|
*
|
|
|
|
* @return success Returns true on success.
|
|
|
|
*/
|
|
|
|
setCallback_2_0(IGnssCallback callback) generates (bool success);
|
|
|
|
|
2018-12-20 00:22:13 +01:00
|
|
|
/**
|
|
|
|
* This method returns the IGnssConfiguration interface.
|
|
|
|
*
|
|
|
|
* @return gnssConfigurationIface Handle to the IGnssConfiguration interface.
|
|
|
|
*/
|
|
|
|
getExtensionGnssConfiguration_2_0() generates (IGnssConfiguration gnssConfigurationIface);
|
|
|
|
|
2019-03-14 19:08:43 +01:00
|
|
|
/**
|
|
|
|
* This method returns the IGnssDebug interface.
|
|
|
|
*
|
|
|
|
* @return gnssDebugIface Handle to the IGnssDebug interface.
|
|
|
|
*/
|
|
|
|
getExtensionGnssDebug_2_0() generates (IGnssDebug gnssDebugIface);
|
|
|
|
|
2018-11-14 18:35:14 +01:00
|
|
|
/**
|
|
|
|
* This method returns the IAGnss Interface.
|
|
|
|
*
|
|
|
|
* The getExtensionAGnss() must return nullptr as the @1.0::IAGnss interface is
|
|
|
|
* deprecated.
|
|
|
|
*
|
|
|
|
* @return aGnssIface Handle to the IAGnss interface.
|
|
|
|
*/
|
|
|
|
getExtensionAGnss_2_0() generates (IAGnss aGnssIface);
|
|
|
|
|
2018-11-14 19:23:45 +01:00
|
|
|
/**
|
|
|
|
* This method returns the IAGnssRil Interface.
|
|
|
|
*
|
|
|
|
* @return aGnssRilIface Handle to the IAGnssRil interface.
|
|
|
|
*/
|
|
|
|
getExtensionAGnssRil_2_0() generates (IAGnssRil aGnssRilIface);
|
|
|
|
|
2018-11-06 23:12:49 +01:00
|
|
|
/**
|
|
|
|
* This method returns the IGnssMeasurement interface.
|
|
|
|
*
|
|
|
|
* Exactly one of getExtensionGnssMeasurement_1_1() and getExtensionGnssMeasurement_2_0() must
|
|
|
|
* return a non-null handle, and the other method must return nullptr.
|
|
|
|
*
|
|
|
|
* @return gnssMeasurementIface Handle to the IGnssMeasurement interface.
|
|
|
|
*/
|
|
|
|
getExtensionGnssMeasurement_2_0() generates (IGnssMeasurement gnssMeasurementIface);
|
2018-12-02 11:49:10 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* This method returns the IMeasurementCorrections interface.
|
|
|
|
*
|
|
|
|
* @return measurementCorrectionsIface Handle to the IMeasurementCorrections interface.
|
|
|
|
*/
|
2018-11-14 21:38:57 +01:00
|
|
|
getExtensionMeasurementCorrections()
|
2018-12-02 11:49:10 +01:00
|
|
|
generates (IMeasurementCorrections measurementCorrectionsIface);
|
2018-11-14 21:38:57 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* This method returns the IGnssVisibilityControl interface.
|
|
|
|
*
|
|
|
|
* @return visibilityControlIface Handle to the IGnssVisibilityControl interface.
|
|
|
|
*/
|
|
|
|
getExtensionVisibilityControl() generates (IGnssVisibilityControl visibilityControlIface);
|
2019-01-18 01:56:17 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Injects current location from the best available location provider.
|
|
|
|
*
|
|
|
|
* Unlike injectLocation, this method may inject a recent GNSS location from the HAL
|
|
|
|
* implementation, if that is the best available location known to the framework.
|
|
|
|
*
|
|
|
|
* @param location Location information from the best available location provider.
|
|
|
|
*
|
|
|
|
* @return success Returns true if successful.
|
|
|
|
*/
|
|
|
|
injectBestLocation_2_0(GnssLocation location) generates (bool success);
|
2018-11-14 21:38:57 +01:00
|
|
|
};
|