platform_hardware_interfaces/gnss/1.1/IGnssConfiguration.hal
Wyatt Riley 50e3327c46 GNSS Satellite Use Blacklist HAL
Adding .hal change IGnssConfiguration to enable
external (system) control of satellite usage.
Adding VTS tests of the new .hal (ready for
partners to integrate against.)

Bug: 38269641
Test: .hal & vts builds,
 vts test runs and fails fast (no 1.1 HAL on
 initial test device),
 vts test logs run as expected on a 1.0 device (with tests to make
 this run),
 on-device sanity check of GPS works,
 builds with JNI test code (to be submitted separately)
Change-Id: I72b5045eb0eea30d51ed5098248482cbbfc5aaff
2018-01-05 17:03:23 -08:00

64 lines
No EOL
2.4 KiB
Text

/*
* Copyright (C) 2017 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@1.1;
import @1.0::IGnssConfiguration;
import @1.0::GnssConstellationType;
/**
* Extended interface for GNSS Configuration support.
*/
interface IGnssConfiguration extends @1.0::IGnssConfiguration {
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(vec<BlacklistedSource> blacklist) generates (bool success);
};