mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 16:50:18 +00:00
Merge "Restore gnss@1.1 HAL capability bits removed in gnss@2.0 (hal)" into qt-dev
This commit is contained in:
@@ -469,7 +469,7 @@ f27baaa587bc3dd9b740cb6928ab812b9b7d105b5187663938aee578105f3c39 android.hardwar
|
||||
4deafcdcffa2d002119e7f58810b767a84666e76475aae68e757ec2845d9756d android.hardware.gnss@2.0::IGnss
|
||||
db6bdf6dfc5edf6c85d2944976db899227abb51079c893874353c322342c50b6 android.hardware.gnss@2.0::IGnssBatching
|
||||
1f89392f1ebb693d8fa6f50324b1635fc79fab246d31900e63998e1b0e17511c android.hardware.gnss@2.0::IGnssBatchingCallback
|
||||
b11a5e4a1602d3f408716b6fe2c578a79f060d571aad8e828f9a4426d161fbcf android.hardware.gnss@2.0::IGnssCallback
|
||||
64232037109a5e5f53ab0377e755ec494ae93fcb5279e6eea71dec2e7ac6fbfc android.hardware.gnss@2.0::IGnssCallback
|
||||
ecc966c68bddbd95c8dae782b84204cf01c75734675e8769963f3b5106ec128b android.hardware.gnss@2.0::IGnssConfiguration
|
||||
b670bae2ab8517336290532e364502b4db9120340d75474ccc8442b1b15d6ab7 android.hardware.gnss@2.0::IGnssDebug
|
||||
c67759f5d6387d273b66729180d03690e827f0b6b8d4e13ce2ff42d31b224065 android.hardware.gnss@2.0::IGnssMeasurement
|
||||
|
||||
@@ -30,32 +30,13 @@ interface IGnssCallback extends @1.1::IGnssCallback {
|
||||
|
||||
/** Flags for the gnssSetCapabilities callback. */
|
||||
@export(name="", value_prefix="GPS_CAPABILITY_")
|
||||
enum Capabilities : uint32_t {
|
||||
/**
|
||||
* GNSS HAL schedules fixes for RECURRENCE_PERIODIC mode.
|
||||
* If this is not set, then the framework will use 1000ms for
|
||||
* minInterval and must call start() and stop() to schedule the GNSS.
|
||||
*/
|
||||
SCHEDULING = 1 << 0,
|
||||
/** GNSS supports MS-Based AGNSS mode */
|
||||
MSB = 1 << 1,
|
||||
/** GNSS supports MS-Assisted AGNSS mode */
|
||||
MSA = 1 << 2,
|
||||
/** GNSS supports single-shot fixes */
|
||||
SINGLE_SHOT = 1 << 3,
|
||||
/** GNSS supports on demand time injection */
|
||||
ON_DEMAND_TIME = 1 << 4,
|
||||
/**
|
||||
* Values for the flags removed from IGnssCallback.hal@1.0 Capabilities
|
||||
* enum are marked as reserved and not reused here to avoid confusion.
|
||||
*/
|
||||
RESERVED_1 = 1 << 5,
|
||||
RESERVED_2 = 1 << 6,
|
||||
RESERVED_3 = 1 << 7,
|
||||
enum Capabilities : @1.0::IGnssCallback.Capabilities {
|
||||
/** GNSS supports low power mode */
|
||||
LOW_POWER_MODE = 1 << 8,
|
||||
LOW_POWER_MODE = 1 << 8,
|
||||
/** GNSS supports blacklisting satellites */
|
||||
SATELLITE_BLACKLIST = 1 << 9
|
||||
SATELLITE_BLACKLIST = 1 << 9,
|
||||
/** GNSS supports measurement corrections */
|
||||
MEASUREMENT_CORRECTIONS = 1 << 10
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -280,7 +280,8 @@ Return<bool> Gnss::setCallback_2_0(const sp<V2_0::IGnssCallback>& callback) {
|
||||
sGnssCallback_2_0 = callback;
|
||||
|
||||
using Capabilities = V2_0::IGnssCallback::Capabilities;
|
||||
const auto capabilities = Capabilities::LOW_POWER_MODE | Capabilities::SATELLITE_BLACKLIST;
|
||||
const auto capabilities = Capabilities::MEASUREMENTS | Capabilities::MEASUREMENT_CORRECTIONS |
|
||||
Capabilities::LOW_POWER_MODE | Capabilities::SATELLITE_BLACKLIST;
|
||||
auto ret = sGnssCallback_2_0->gnssSetCapabilitiesCb_2_0(capabilities);
|
||||
if (!ret.isOk()) {
|
||||
ALOGE("%s: Unable to invoke callback", __func__);
|
||||
|
||||
@@ -289,19 +289,21 @@ TEST_F(GnssHalTest, TestGnssVisibilityControlExtension) {
|
||||
|
||||
/*
|
||||
* TestGnssMeasurementCorrectionsCapabilities:
|
||||
* If the GnssMeasurementCorrectionsExtension is not null, verifies that the measurement corrections
|
||||
* If measurement corrections capability is supported, verifies that the measurement corrections
|
||||
* capabilities are reported and the mandatory LOS_SATS or the EXCESS_PATH_LENGTH
|
||||
* capability flag is set.
|
||||
*/
|
||||
TEST_F(GnssHalTest, TestGnssMeasurementCorrectionsCapabilities) {
|
||||
// Setup measurement corrections callback.
|
||||
auto measurementCorrections = gnss_hal_->getExtensionMeasurementCorrections();
|
||||
ASSERT_TRUE(measurementCorrections.isOk());
|
||||
sp<IMeasurementCorrections> iMeasurementCorrections = measurementCorrections;
|
||||
if (iMeasurementCorrections == nullptr) {
|
||||
if (!(last_capabilities_ & IGnssCallback::Capabilities::MEASUREMENT_CORRECTIONS)) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto measurementCorrections = gnss_hal_->getExtensionMeasurementCorrections();
|
||||
ASSERT_TRUE(measurementCorrections.isOk());
|
||||
sp<IMeasurementCorrections> iMeasurementCorrections = measurementCorrections;
|
||||
ASSERT_NE(iMeasurementCorrections, nullptr);
|
||||
|
||||
// Setup measurement corrections callback.
|
||||
sp<IMeasurementCorrectionsCallback> iMeasurementCorrectionsCallback =
|
||||
new GnssMeasurementCorrectionsCallback(*this);
|
||||
iMeasurementCorrections->setCallback(iMeasurementCorrectionsCallback);
|
||||
@@ -316,17 +318,19 @@ TEST_F(GnssHalTest, TestGnssMeasurementCorrectionsCapabilities) {
|
||||
|
||||
/*
|
||||
* TestGnssMeasurementCorrections:
|
||||
* If the GnssMeasurementCorrectionsExtension is not null, verifies that it supports the
|
||||
* If measurement corrections capability is supported, verifies that it supports the
|
||||
* gnss.measurement_corrections@1.0::IMeasurementCorrections interface by invoking a method.
|
||||
*/
|
||||
TEST_F(GnssHalTest, TestGnssMeasurementCorrections) {
|
||||
if (!(last_capabilities_ & IGnssCallback::Capabilities::MEASUREMENT_CORRECTIONS)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Verify IMeasurementCorrections is supported.
|
||||
auto measurementCorrections = gnss_hal_->getExtensionMeasurementCorrections();
|
||||
ASSERT_TRUE(measurementCorrections.isOk());
|
||||
sp<IMeasurementCorrections> iMeasurementCorrections = measurementCorrections;
|
||||
if (iMeasurementCorrections == nullptr) {
|
||||
return;
|
||||
}
|
||||
ASSERT_NE(iMeasurementCorrections, nullptr);
|
||||
|
||||
sp<IMeasurementCorrectionsCallback> iMeasurementCorrectionsCallback =
|
||||
new GnssMeasurementCorrectionsCallback(*this);
|
||||
|
||||
Reference in New Issue
Block a user