xref: /aosp_15_r20/hardware/interfaces/gnss/2.0/IGnss.hal (revision 4d7e907c777eeecc4c5bd7cf640a754fac206ff7)
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};