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

Commit 996b0b19 authored by Anil Admal's avatar Anil Admal Committed by Android (Google) Code Review
Browse files

Merge "Add new GNSS capabilities for year of hardware deprecation (HAL)"

parents d80b5bb7 86450fa5
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -465,12 +465,13 @@ f27baaa587bc3dd9b740cb6928ab812b9b7d105b5187663938aee578105f3c39 android.hardwar
2e5ad983734069e84a760004b32da0d09e4170c05380abe27e6eb80e4aa70d5a android.hardware.gnss@2.0::IAGnssCallback
1f4ac068a88a72360280d94a7f6fd7c63813c1eea4891a0eb01394d3e7e775f2 android.hardware.gnss@2.0::IAGnssRil
6e2f9a44375a0ae0b49ca7d711cb88945189d398535078408269e1e85889061d android.hardware.gnss@2.0::IGnss
d815623a6d1ba4abf21248b84eca70a2bfab03058a88b68a29c063ce8aee6b5c android.hardware.gnss@2.0::IGnssCallback
782dfc724272f279985de348c824197357941382f73c0083f0344d8ec594d2a8 android.hardware.gnss@2.0::IGnssCallback
ecc966c68bddbd95c8dae782b84204cf01c75734675e8769963f3b5106ec128b android.hardware.gnss@2.0::IGnssConfiguration
c67759f5d6387d273b66729180d03690e827f0b6b8d4e13ce2ff42d31b224065 android.hardware.gnss@2.0::IGnssMeasurement
3dd30a3ca77ef5ab109a55ba603ff816ae5019436886093dccf8fd6a068f85f1 android.hardware.gnss@2.0::IGnssMeasurementCallback
9e66234e65bcde75733d75d8b5d5cc094c2a5e14b074a25cd3f9ad141dc56f60 android.hardware.gnss@2.0::types
50623a69a88b1c8a05738e4af7d5f78e905f415ccb0e84c99d0a71ea182e9393 android.hardware.gnss.measurement_corrections@1.0::IMeasurementCorrections
4bcd767dd05304b4722c6521c7ed8d4a05faf6022f228f2c088379c647871f7c android.hardware.gnss@2.0::types
d4cc8d91930d5a1a62deb0d97d398510a115ce3ede2d2978738651b9d01b11c3 android.hardware.gnss.measurement_corrections@1.0::IMeasurementCorrections
3eec9763db9b101644f14175b77c9954047445a468e9c743fd402d472d4aa97e android.hardware.gnss.measurement_corrections@1.0::IMeasurementCorrectionsCallback
6ef12cd95df73f8f80c25eb035d98ca4594f9cee571fdabea838a0b6016dd908 android.hardware.gnss.measurement_corrections@1.0::types
0d278956d7fc6fdf9ca9c42962ff2d73967bbb1c9f0b3e0b58d71b7095c286bc android.hardware.gnss.visibility_control@1.0::IGnssVisibilityControl
0d99e34500cfc2d40b684cb4dea7ebd89d4aff9f5315ed36b33442a7a88c138c android.hardware.gnss.visibility_control@1.0::IGnssVisibilityControlCallback
+29 −10
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ import @1.1::IGnssCallback;
import GnssLocation;

/**
 * The interface is required for the HAL to communicate certain information
 * This interface is required for the HAL to communicate certain information
 * like status and location info back to the platform, the platform implements
 * the interfaces and passes a handle to the HAL.
 */
@@ -29,17 +29,36 @@ interface IGnssCallback extends @1.1::IGnssCallback {

    /** Flags for the gnssSetCapabilities callback. */
    @export(name="", value_prefix="GPS_CAPABILITY_")
    enum Capabilities : @1.0::IGnssCallback.Capabilities {
        /** GNSS supports line-of-sight satellite identification measurement Corrections */
        MEASUREMENT_CORRECTIONS_LOS_SATS                        = 1 << 8,
        /** GNSS supports per satellite excess-path-length measurement Corrections */
        MEASUREMENT_CORRECTIONS_EXCESS_PATH_LENGTH              = 1 << 9,
        /** GNSS supports reflecting planes measurement Corrections */
        MEASUREMENT_CORRECTIONS_REFLECTING_PLANE                = 1 << 10
    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,
        /** GNSS supports low power mode */
        LOW_POWER_MODE                  = 1 << 8,
        /** GNSS supports blacklisting satellites */
        SATELLITE_BLACKLIST             = 1 << 9
    };

    /**
     * Callback to inform framework of the GNSS engine's capabilities.
     * Callback to inform framework of the GNSS HAL implementation's capabilities.
     *
     * @param capabilities Capability parameter is a bit field of the Capabilities enum.
     */
+3 −2
Original line number Diff line number Diff line
@@ -269,8 +269,9 @@ Return<bool> Gnss::setCallback_2_0(const sp<V2_0::IGnssCallback>& callback) {

    sGnssCallback_2_0 = callback;

    uint32_t capabilities = static_cast<uint32_t>(V1_0::IGnssCallback::Capabilities::MEASUREMENTS);
    auto ret = sGnssCallback_2_0->gnssSetCapabilitesCb(capabilities);
    using Capabilities = V2_0::IGnssCallback::Capabilities;
    const auto capabilities = 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__);
    }
+13 −0
Original line number Diff line number Diff line
@@ -54,6 +54,19 @@ Return<bool> GnssMeasurementCorrections::setCorrections(const MeasurementCorrect
    return true;
}

Return<bool> GnssMeasurementCorrections::setCallback(
        const sp<V1_0::IMeasurementCorrectionsCallback>& callback) {
    using Capabilities = V1_0::IMeasurementCorrectionsCallback::Capabilities;
    auto ret =
            callback->setCapabilitiesCb(Capabilities::LOS_SATS | Capabilities::EXCESS_PATH_LENGTH |
                                        Capabilities::REFLECTING_PLANE);
    if (!ret.isOk()) {
        ALOGE("%s: Unable to invoke callback", __func__);
        return false;
    }
    return true;
}

}  // namespace implementation
}  // namespace V1_0
}  // namespace measurement_corrections
+1 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ using ::android::hardware::Void;
struct GnssMeasurementCorrections : public IMeasurementCorrections {
    // Methods from V1_0::IMeasurementCorrections follow.
    Return<bool> setCorrections(const MeasurementCorrections& corrections) override;
    Return<bool> setCallback(const sp<V1_0::IMeasurementCorrectionsCallback>& callback) override;
};

}  // namespace implementation
Loading