Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 845f6d54 authored by Sasha Kuznetsov's avatar Sasha Kuznetsov
Browse files

Add support to blacklist IRNSS in HAL 2.1

Test: atest VtsHalGnssV2_1TargetTest
Bug: 135042665

Change-Id: I10a12f5171c640e400af4ee66ce9ab63cf6e94f2
parent dcd93513
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -595,8 +595,9 @@ f18695dd36ee205640b8326a17453858a7b4596653aaa6ef0016b0aef1bd4dac android.hardwar
4d85e814f94949dae4dc6cb82bbd7d6bb24ffafda6ddb2eac928d2a4fc2e21ce android.hardware.cas@1.2::types
66931c2506fbb5af61f20138cb05e0a09e7bf67d6964c231d27c648933bb33ec android.hardware.drm@1.3::ICryptoFactory
994d08ab27d613022c258a9ec48cece7adf2a305e92df5d76ef923e2c6665f64 android.hardware.drm@1.3::IDrmFactory
1bd8028b974bf1d65cfa102196a2b008afc5d42fe73fed2cb94fa7533d07f581 android.hardware.gnss@2.1::IGnss
3dacec7801968e1e4479724dc0180442d9e915466bff051f80996266b1a51c2c android.hardware.gnss@2.1::IGnss
ba62e1e8993bfb9f27fa04816fa0f2241ae2d01edfa3d0c04182e2e5de80045c android.hardware.gnss@2.1::IGnssCallback
ccdf3c0fb2c02a6d4dc57afb276c3497ae8172b80b00ebc0bf8a0238dd38b01d android.hardware.gnss@2.1::IGnssConfiguration
5a125c49ca83629e22afc8c39e865509343bfa2c38f0baea9a186bbac103492d android.hardware.gnss@2.1::IGnssMeasurement
0bfb291708dd4a7c6ec6b9883e2b8592357edde8d7e962ef83918e4a2154ce69 android.hardware.gnss@2.1::IGnssMeasurementCallback
ce8dbe76eb9ee94b46ef98f725be992e760a5751073d4f4912484026541371f3 android.hardware.health@2.1::IHealth
+1 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ hidl_interface {
        "IGnssCallback.hal",
        "IGnssMeasurement.hal",
        "IGnssMeasurementCallback.hal",
        "IGnssConfiguration.hal",
    ],
    interfaces: [
        "android.hardware.gnss.measurement_corrections@1.0",
+12 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import @2.0::IGnss;

import IGnssCallback;
import IGnssMeasurement;
import IGnssConfiguration;

/**
 * Represents the standard GNSS (Global Navigation Satellite System) interface.
@@ -50,4 +51,15 @@ interface IGnss extends @2.0::IGnss {
     * @return gnssMeasurementIface Handle to the IGnssMeasurement interface.
     */
    getExtensionGnssMeasurement_2_1() generates (IGnssMeasurement gnssMeasurementIface);

    /**
     * This method returns the IGnssConfiguration interface.
     *
     * At least one of getExtensionGnssConfiguration(), getExtensionGnssConfiguration_1_1(),
     * getExtensionGnssConfiguration_2_0(), and getExtensionGnssConfiguration_2_1() methods must
     * return a non-null handle, and the other methods must return nullptr.
     *
     * @return gnssConfigurationIface Handle to the IGnssConfiguration interface.
     */
    getExtensionGnssConfiguration_2_1() generates (IGnssConfiguration gnssConfigurationIface);
};
 No newline at end of file
+68 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 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.1;

import @2.0::IGnssConfiguration;
import @2.0::GnssConstellationType;

/**
 * Extended interface for GNSS Configuration support.
 */
interface IGnssConfiguration extends @2.0::IGnssConfiguration {
    /**
     * Represents a blacklisted source, updating the GnssConstellationType to 2.0, which supports
     * IRNSS.
     */
    struct BlacklistedSource {
        /**
         * Defines the constellation of the given satellite(s).
         */
        GnssConstellationType constellation;

        /**
         * Satellite (space vehicle) ID number, as defined in GnssSvInfo::svid
         *
         * Or 0 to blacklist all svid's for the specified constellation
         */
        int16_t svid;
    };

    /**
     * Injects a vector of BlacklistedSource(s) which the HAL must not use to calculate the
     * GNSS location output.
     *
     * The superset of all satellite sources provided, including wildcards, in the latest call
     * to this method, is the set of satellites sources that must not be used in calculating
     * location.
     *
     * All measurements from the specified satellites, across frequency bands, are blacklisted
     * together.
     *
     * If this method is never called after the IGnssConfiguration.hal connection is made on boot,
     * or is called with an empty vector, then no satellites are to be blacklisted as a result of
     * this API.
     *
     * This blacklist must be considered as an additional source of which satellites
     * should not be trusted for location on top of existing sources of similar information
     * such as satellite broadcast health being unhealthy and measurement outlier removal.
     *
     * @param blacklist The BlacklistedSource(s) of satellites the HAL must not use.
     *
     * @return success Whether the HAL accepts and abides by the provided blacklist.
     */
    setBlacklist_2_1(vec<BlacklistedSource> blacklist) generates (bool success);
};
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ cc_binary {
    srcs: [
        "Gnss.cpp",
        "GnssMeasurement.cpp",
        "GnssConfiguration.cpp",
        "service.cpp"
    ],
    shared_libs: [
Loading