blob: 2c149b7a7b0ff285970d06205a44add9f8679dd5 [file] [log] [blame]
Yu-Han Yang9c6c20b2018-11-06 14:12:49 -08001/*
2 * Copyright (C) 2018 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.hardware.gnss@2.0;
18
gomo1da4b5c2018-12-02 02:49:10 -080019import android.hardware.gnss.measurement_corrections@1.0::IMeasurementCorrections;
Anil Admal4d739e72018-11-14 12:38:57 -080020import android.hardware.gnss.visibility_control@1.0::IGnssVisibilityControl;
Yu-Han Yang9c6c20b2018-11-06 14:12:49 -080021import @1.1::IGnss;
22
Pierre Fite-Georgel12ac2b52019-01-17 16:56:17 -080023import GnssLocation;
gomo1da4b5c2018-12-02 02:49:10 -080024import IGnssCallback;
Anil Admal4e50a4c2018-12-19 15:22:13 -080025import IGnssConfiguration;
Yu-Han Yang9c6c20b2018-11-06 14:12:49 -080026import IGnssMeasurement;
Anil Admal3a405c52018-11-14 09:35:14 -080027import IAGnss;
Anil Admalb02bcc12018-11-14 10:23:45 -080028import IAGnssRil;
Yu-Han Yang9c6c20b2018-11-06 14:12:49 -080029
Anil Admal4d739e72018-11-14 12:38:57 -080030/**
31 * Represents the standard GNSS (Global Navigation Satellite System) interface.
32 *
33 * Due to the introduction of new GNSS HAL package android.hardware.gnss.visibility_control@1.0
34 * the interface @1.0::IGnssNi.hal and @1.0::IGnssNiCallback.hal are deprecated in this version
35 * and are not supported by the framework. The GNSS HAL implementation of this interface
36 * must return nullptr for the following @1.0::IGnss method.
37 * getExtensionGnssNi() generates (IGnssNi gnssNiIface);
38 */
Yu-Han Yang9c6c20b2018-11-06 14:12:49 -080039interface IGnss extends @1.1::IGnss {
Anil Admal4e50a4c2018-12-19 15:22:13 -080040 /**
gomo1da4b5c2018-12-02 02:49:10 -080041 * Opens the interface and provides the callback routines to the implementation of this
42 * interface.
43 *
44 * @param callback Callback interface for IGnss.
45 *
46 * @return success Returns true on success.
47 */
48 setCallback_2_0(IGnssCallback callback) generates (bool success);
49
Yu-Han Yang9c6c20b2018-11-06 14:12:49 -080050 /**
Anil Admal4e50a4c2018-12-19 15:22:13 -080051 * This method returns the IGnssConfiguration interface.
52 *
53 * @return gnssConfigurationIface Handle to the IGnssConfiguration interface.
54 */
55 getExtensionGnssConfiguration_2_0() generates (IGnssConfiguration gnssConfigurationIface);
56
57 /**
Anil Admal3a405c52018-11-14 09:35:14 -080058 * This method returns the IAGnss Interface.
59 *
60 * The getExtensionAGnss() must return nullptr as the @1.0::IAGnss interface is
61 * deprecated.
62 *
63 * @return aGnssIface Handle to the IAGnss interface.
64 */
65 getExtensionAGnss_2_0() generates (IAGnss aGnssIface);
66
67 /**
Anil Admalb02bcc12018-11-14 10:23:45 -080068 * This method returns the IAGnssRil Interface.
69 *
70 * @return aGnssRilIface Handle to the IAGnssRil interface.
71 */
72 getExtensionAGnssRil_2_0() generates (IAGnssRil aGnssRilIface);
73
74 /**
Yu-Han Yang9c6c20b2018-11-06 14:12:49 -080075 * This method returns the IGnssMeasurement interface.
76 *
77 * Exactly one of getExtensionGnssMeasurement_1_1() and getExtensionGnssMeasurement_2_0() must
78 * return a non-null handle, and the other method must return nullptr.
79 *
80 * @return gnssMeasurementIface Handle to the IGnssMeasurement interface.
81 */
82 getExtensionGnssMeasurement_2_0() generates (IGnssMeasurement gnssMeasurementIface);
gomo1da4b5c2018-12-02 02:49:10 -080083
84 /**
85 * This method returns the IMeasurementCorrections interface.
86 *
87 * @return measurementCorrectionsIface Handle to the IMeasurementCorrections interface.
88 */
Anil Admal4d739e72018-11-14 12:38:57 -080089 getExtensionMeasurementCorrections()
gomo1da4b5c2018-12-02 02:49:10 -080090 generates (IMeasurementCorrections measurementCorrectionsIface);
Anil Admal4d739e72018-11-14 12:38:57 -080091
92 /**
93 * This method returns the IGnssVisibilityControl interface.
94 *
95 * @return visibilityControlIface Handle to the IGnssVisibilityControl interface.
96 */
97 getExtensionVisibilityControl() generates (IGnssVisibilityControl visibilityControlIface);
Pierre Fite-Georgel12ac2b52019-01-17 16:56:17 -080098
99 /**
100 * Injects current location from the best available location provider.
101 *
102 * Unlike injectLocation, this method may inject a recent GNSS location from the HAL
103 * implementation, if that is the best available location known to the framework.
104 *
105 * @param location Location information from the best available location provider.
106 *
107 * @return success Returns true if successful.
108 */
109 injectBestLocation_2_0(GnssLocation location) generates (bool success);
Anil Admal4d739e72018-11-14 12:38:57 -0800110};