xref: /aosp_15_r20/hardware/interfaces/gnss/1.0/IGnssConfiguration.hal (revision 4d7e907c777eeecc4c5bd7cf640a754fac206ff7)
1*4d7e907cSAndroid Build Coastguard Worker/*
2*4d7e907cSAndroid Build Coastguard Worker * Copyright (C) 2016 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 Worker/**
20*4d7e907cSAndroid Build Coastguard Worker * Interface for passing GNSS configuration info from platform to HAL.
21*4d7e907cSAndroid Build Coastguard Worker */
22*4d7e907cSAndroid Build Coastguard Workerinterface IGnssConfiguration {
23*4d7e907cSAndroid Build Coastguard Worker    /**
24*4d7e907cSAndroid Build Coastguard Worker     * Enum which holds the bit masks for SUPL_MODE configuration parameter.
25*4d7e907cSAndroid Build Coastguard Worker     */
26*4d7e907cSAndroid Build Coastguard Worker    enum SuplMode : uint8_t {
27*4d7e907cSAndroid Build Coastguard Worker        /** Mobile Station Based */
28*4d7e907cSAndroid Build Coastguard Worker        MSB = 0x01,
29*4d7e907cSAndroid Build Coastguard Worker
30*4d7e907cSAndroid Build Coastguard Worker        /** Mobile Station Assisted */
31*4d7e907cSAndroid Build Coastguard Worker        MSA = 0x02
32*4d7e907cSAndroid Build Coastguard Worker    };
33*4d7e907cSAndroid Build Coastguard Worker
34*4d7e907cSAndroid Build Coastguard Worker    /**
35*4d7e907cSAndroid Build Coastguard Worker     * Enum which holds the bit masks for GPS_LOCK configuration parameter.
36*4d7e907cSAndroid Build Coastguard Worker     */
37*4d7e907cSAndroid Build Coastguard Worker    enum GpsLock : uint8_t {
38*4d7e907cSAndroid Build Coastguard Worker        /** Lock Mobile Originated GPS functionalitues. */
39*4d7e907cSAndroid Build Coastguard Worker        MO    =  0x01,
40*4d7e907cSAndroid Build Coastguard Worker
41*4d7e907cSAndroid Build Coastguard Worker        /** Lock Network initiated GPS functionalities. */
42*4d7e907cSAndroid Build Coastguard Worker        NI    =  0x02
43*4d7e907cSAndroid Build Coastguard Worker    };
44*4d7e907cSAndroid Build Coastguard Worker
45*4d7e907cSAndroid Build Coastguard Worker    /**
46*4d7e907cSAndroid Build Coastguard Worker     * Enum that hold the bit masks for various LTE Positioning Profile settings (LPP_PROFILE
47*4d7e907cSAndroid Build Coastguard Worker     * configuration parameter). If none of the bits in the enum are set, the default setting is
48*4d7e907cSAndroid Build Coastguard Worker     * Radio Resource Location Protocol(RRLP).
49*4d7e907cSAndroid Build Coastguard Worker     */
50*4d7e907cSAndroid Build Coastguard Worker    enum LppProfile : uint8_t {
51*4d7e907cSAndroid Build Coastguard Worker        /** Enable LTE Positioning Protocol user plane */
52*4d7e907cSAndroid Build Coastguard Worker        USER_PLANE          = 0x01,
53*4d7e907cSAndroid Build Coastguard Worker
54*4d7e907cSAndroid Build Coastguard Worker        /** Enable LTE Positioning Protocol Control plane */
55*4d7e907cSAndroid Build Coastguard Worker        CONTROL_PLANE       = 0x02
56*4d7e907cSAndroid Build Coastguard Worker    };
57*4d7e907cSAndroid Build Coastguard Worker
58*4d7e907cSAndroid Build Coastguard Worker    /**
59*4d7e907cSAndroid Build Coastguard Worker     * Enum which holds the bit masks for A_GLONASS_POS_PROTOCOL_SELECT
60*4d7e907cSAndroid Build Coastguard Worker     * configuration parameter.
61*4d7e907cSAndroid Build Coastguard Worker     */
62*4d7e907cSAndroid Build Coastguard Worker    enum GlonassPosProtocol : uint8_t {
63*4d7e907cSAndroid Build Coastguard Worker        /** Radio Resource Control(RRC) control-plane. */
64*4d7e907cSAndroid Build Coastguard Worker        RRC_CPLANE                  = 0x01,
65*4d7e907cSAndroid Build Coastguard Worker
66*4d7e907cSAndroid Build Coastguard Worker        /** Radio Resource Location user-plane. */
67*4d7e907cSAndroid Build Coastguard Worker        RRLP_CPLANE                 = 0x02,
68*4d7e907cSAndroid Build Coastguard Worker
69*4d7e907cSAndroid Build Coastguard Worker        /** LTE Positioning Protocol User plane */
70*4d7e907cSAndroid Build Coastguard Worker        LPP_UPLANE                  = 0x04
71*4d7e907cSAndroid Build Coastguard Worker    };
72*4d7e907cSAndroid Build Coastguard Worker
73*4d7e907cSAndroid Build Coastguard Worker    /**
74*4d7e907cSAndroid Build Coastguard Worker     * IMPORTANT: GNSS HAL must expect the below methods to be called multiple
75*4d7e907cSAndroid Build Coastguard Worker     * times. They can be called even when GnssLocationProvider is already
76*4d7e907cSAndroid Build Coastguard Worker     * constructed and enabled. GNSS HAL must maintain the existing requests
77*4d7e907cSAndroid Build Coastguard Worker     * for various callbacks regardless the change in configuration data.
78*4d7e907cSAndroid Build Coastguard Worker     */
79*4d7e907cSAndroid Build Coastguard Worker
80*4d7e907cSAndroid Build Coastguard Worker     /**
81*4d7e907cSAndroid Build Coastguard Worker      * This method enables or disables NI emergency SUPL restrictions.
82*4d7e907cSAndroid Build Coastguard Worker      *
83*4d7e907cSAndroid Build Coastguard Worker      * @param enabled True if the device must only accept NI Emergency SUPL requests when the
84*4d7e907cSAndroid Build Coastguard Worker      *                     device is truly in emergency mode (e.g. the user has dialed 911, 112,
85*4d7e907cSAndroid Build Coastguard Worker      *                     etc...)
86*4d7e907cSAndroid Build Coastguard Worker      *                False if the device must accept NI Emergency SUPL any time they are
87*4d7e907cSAndroid Build Coastguard Worker      *                      received
88*4d7e907cSAndroid Build Coastguard Worker      *
89*4d7e907cSAndroid Build Coastguard Worker      * @return success True if operation was successful.
90*4d7e907cSAndroid Build Coastguard Worker      */
91*4d7e907cSAndroid Build Coastguard Worker     setSuplEs(bool enabled) generates (bool success);
92*4d7e907cSAndroid Build Coastguard Worker
93*4d7e907cSAndroid Build Coastguard Worker     /**
94*4d7e907cSAndroid Build Coastguard Worker      * This method sets the SUPL version requested by Carrier. The GNSS HAL
95*4d7e907cSAndroid Build Coastguard Worker      * must use this version of the SUPL protocol if supported.
96*4d7e907cSAndroid Build Coastguard Worker      *
97*4d7e907cSAndroid Build Coastguard Worker      * @param version SUPL version requested by carrier. This is a bit mask
98*4d7e907cSAndroid Build Coastguard Worker      * with bits 0:7 representing a service indicator field, bits 8:15
99*4d7e907cSAndroid Build Coastguard Worker      * representing the minor version and bits 16:23 representing the
100*4d7e907cSAndroid Build Coastguard Worker      * major version.
101*4d7e907cSAndroid Build Coastguard Worker      *
102*4d7e907cSAndroid Build Coastguard Worker      * @return success True if operation was successful.
103*4d7e907cSAndroid Build Coastguard Worker      */
104*4d7e907cSAndroid Build Coastguard Worker     setSuplVersion(uint32_t version) generates (bool success);
105*4d7e907cSAndroid Build Coastguard Worker
106*4d7e907cSAndroid Build Coastguard Worker     /**
107*4d7e907cSAndroid Build Coastguard Worker      * This method sets the SUPL mode.
108*4d7e907cSAndroid Build Coastguard Worker      *
109*4d7e907cSAndroid Build Coastguard Worker      * @param mode Bit mask that specifies the SUPL mode which is set with the SuplMode enum.
110*4d7e907cSAndroid Build Coastguard Worker      *
111*4d7e907cSAndroid Build Coastguard Worker      * @return success True if operation was successful.
112*4d7e907cSAndroid Build Coastguard Worker      */
113*4d7e907cSAndroid Build Coastguard Worker     setSuplMode(bitfield<SuplMode> mode) generates (bool success);
114*4d7e907cSAndroid Build Coastguard Worker
115*4d7e907cSAndroid Build Coastguard Worker     /**
116*4d7e907cSAndroid Build Coastguard Worker      * This setting configures how GPS functionalities should be locked when
117*4d7e907cSAndroid Build Coastguard Worker      * user turns off GPS On setting.
118*4d7e907cSAndroid Build Coastguard Worker      *
119*4d7e907cSAndroid Build Coastguard Worker      * @param lock Bitmask that specifies the GPS functionalities to be be
120*4d7e907cSAndroid Build Coastguard Worker      * locked as per the GpsLock enum.
121*4d7e907cSAndroid Build Coastguard Worker      *
122*4d7e907cSAndroid Build Coastguard Worker      * @return success True if operation was successful.
123*4d7e907cSAndroid Build Coastguard Worker      */
124*4d7e907cSAndroid Build Coastguard Worker     setGpsLock(bitfield<GpsLock> lock) generates (bool success);
125*4d7e907cSAndroid Build Coastguard Worker
126*4d7e907cSAndroid Build Coastguard Worker     /**
127*4d7e907cSAndroid Build Coastguard Worker      * This method sets the LTE Positioning Profile configuration.
128*4d7e907cSAndroid Build Coastguard Worker      *
129*4d7e907cSAndroid Build Coastguard Worker      * @param lppProfile Bitmask that specifies the LTE Positioning Profile
130*4d7e907cSAndroid Build Coastguard Worker      * configuration to be set as per the LppProfile enum.
131*4d7e907cSAndroid Build Coastguard Worker      *
132*4d7e907cSAndroid Build Coastguard Worker      * @return success True if operation was successful.
133*4d7e907cSAndroid Build Coastguard Worker      */
134*4d7e907cSAndroid Build Coastguard Worker     setLppProfile(bitfield<LppProfile> lppProfile) generates (bool success);
135*4d7e907cSAndroid Build Coastguard Worker
136*4d7e907cSAndroid Build Coastguard Worker     /**
137*4d7e907cSAndroid Build Coastguard Worker      * This method selects positioning protocol on A-Glonass system.
138*4d7e907cSAndroid Build Coastguard Worker      *
139*4d7e907cSAndroid Build Coastguard Worker      * @param protocol Bitmask that specifies the positioning protocol to be
140*4d7e907cSAndroid Build Coastguard Worker      * set as per GlonassPosProtocol enum.
141*4d7e907cSAndroid Build Coastguard Worker      *
142*4d7e907cSAndroid Build Coastguard Worker      * @return success True if operation was successful.
143*4d7e907cSAndroid Build Coastguard Worker      */
144*4d7e907cSAndroid Build Coastguard Worker     setGlonassPositioningProtocol(bitfield<GlonassPosProtocol> protocol) generates (bool success);
145*4d7e907cSAndroid Build Coastguard Worker
146*4d7e907cSAndroid Build Coastguard Worker     /**
147*4d7e907cSAndroid Build Coastguard Worker      * This method configures which PDN to use.
148*4d7e907cSAndroid Build Coastguard Worker      *
149*4d7e907cSAndroid Build Coastguard Worker      * @param enable Use emergency PDN if true and regular PDN if false.
150*4d7e907cSAndroid Build Coastguard Worker      * @return success True if operation was successful.
151*4d7e907cSAndroid Build Coastguard Worker      */
152*4d7e907cSAndroid Build Coastguard Worker     setEmergencySuplPdn(bool enable) generates (bool success);
153*4d7e907cSAndroid Build Coastguard Worker};
154