blob: 1f1858e940a06a88ce293f76271f3b6c8f3e58b3 [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
gomo1da4b5c2018-12-02 02:49:10 -080023import IGnssCallback;
Anil Admal4e50a4c2018-12-19 15:22:13 -080024import IGnssConfiguration;
Yu-Han Yang9c6c20b2018-11-06 14:12:49 -080025import IGnssMeasurement;
Anil Admal3a405c52018-11-14 09:35:14 -080026import IAGnss;
Anil Admalb02bcc12018-11-14 10:23:45 -080027import IAGnssRil;
Yu-Han Yang9c6c20b2018-11-06 14:12:49 -080028
Anil Admal4d739e72018-11-14 12:38:57 -080029/**
30 * Represents the standard GNSS (Global Navigation Satellite System) interface.
31 *
32 * Due to the introduction of new GNSS HAL package android.hardware.gnss.visibility_control@1.0
33 * the interface @1.0::IGnssNi.hal and @1.0::IGnssNiCallback.hal are deprecated in this version
34 * and are not supported by the framework. The GNSS HAL implementation of this interface
35 * must return nullptr for the following @1.0::IGnss method.
36 * getExtensionGnssNi() generates (IGnssNi gnssNiIface);
37 */
Yu-Han Yang9c6c20b2018-11-06 14:12:49 -080038interface IGnss extends @1.1::IGnss {
Anil Admal4e50a4c2018-12-19 15:22:13 -080039 /**
gomo1da4b5c2018-12-02 02:49:10 -080040 * Opens the interface and provides the callback routines to the implementation of this
41 * interface.
42 *
43 * @param callback Callback interface for IGnss.
44 *
45 * @return success Returns true on success.
46 */
47 setCallback_2_0(IGnssCallback callback) generates (bool success);
48
Yu-Han Yang9c6c20b2018-11-06 14:12:49 -080049 /**
Anil Admal4e50a4c2018-12-19 15:22:13 -080050 * This method returns the IGnssConfiguration interface.
51 *
52 * @return gnssConfigurationIface Handle to the IGnssConfiguration interface.
53 */
54 getExtensionGnssConfiguration_2_0() generates (IGnssConfiguration gnssConfigurationIface);
55
56 /**
Anil Admal3a405c52018-11-14 09:35:14 -080057 * This method returns the IAGnss Interface.
58 *
59 * The getExtensionAGnss() must return nullptr as the @1.0::IAGnss interface is
60 * deprecated.
61 *
62 * @return aGnssIface Handle to the IAGnss interface.
63 */
64 getExtensionAGnss_2_0() generates (IAGnss aGnssIface);
65
66 /**
Anil Admalb02bcc12018-11-14 10:23:45 -080067 * This method returns the IAGnssRil Interface.
68 *
69 * @return aGnssRilIface Handle to the IAGnssRil interface.
70 */
71 getExtensionAGnssRil_2_0() generates (IAGnssRil aGnssRilIface);
72
73 /**
Yu-Han Yang9c6c20b2018-11-06 14:12:49 -080074 * This method returns the IGnssMeasurement interface.
75 *
76 * Exactly one of getExtensionGnssMeasurement_1_1() and getExtensionGnssMeasurement_2_0() must
77 * return a non-null handle, and the other method must return nullptr.
78 *
79 * @return gnssMeasurementIface Handle to the IGnssMeasurement interface.
80 */
81 getExtensionGnssMeasurement_2_0() generates (IGnssMeasurement gnssMeasurementIface);
gomo1da4b5c2018-12-02 02:49:10 -080082
83 /**
84 * This method returns the IMeasurementCorrections interface.
85 *
86 * @return measurementCorrectionsIface Handle to the IMeasurementCorrections interface.
87 */
Anil Admal4d739e72018-11-14 12:38:57 -080088 getExtensionMeasurementCorrections()
gomo1da4b5c2018-12-02 02:49:10 -080089 generates (IMeasurementCorrections measurementCorrectionsIface);
Anil Admal4d739e72018-11-14 12:38:57 -080090
91 /**
92 * This method returns the IGnssVisibilityControl interface.
93 *
94 * @return visibilityControlIface Handle to the IGnssVisibilityControl interface.
95 */
96 getExtensionVisibilityControl() generates (IGnssVisibilityControl visibilityControlIface);
97};