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

Commit da433e03 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add isFullTracking to GnssData"

parents 27b6c2d4 c5d4f36a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ parcelable GnssData {
  android.hardware.gnss.GnssClock clock;
  android.hardware.gnss.ElapsedRealtime elapsedRealtime;
  android.hardware.gnss.GnssData.GnssAgc[] gnssAgcs = {};
  boolean isFullTracking;
  @VintfStability
  parcelable GnssAgc {
    double agcLevelDb;
+11 −0
Original line number Diff line number Diff line
@@ -99,4 +99,15 @@ parcelable GnssData {
     * weak to be acquired, the AGC value must still be reported.
     */
    GnssAgc[] gnssAgcs = {};

    /**
     * True indicates that the GNSS chipset switches off duty cycling. In such mode, no clock
     * discontinuities are expected and, when supported, carrier phase should be continuous in good
     * signal conditions. All non-blocklisted, healthy constellations, satellites and frequency
     * bands must be tracked and reported in this mode.
     *
     * False indicates that the GNSS chipset optimizes power via duty cycling, constellations and
     * frequency limits, etc.
     */
    boolean isFullTracking;
}
+2 −2
Original line number Diff line number Diff line
@@ -76,12 +76,12 @@ ScopedAStatus Gnss::setCallback(const std::shared_ptr<IGnssCallback>& callback)
    }
    GnssSignalType signalType1 = {
            .constellation = GnssConstellationType::GPS,
            .carrierFrequencyHz = 1.59975e+09,
            .carrierFrequencyHz = 1.57542e+09,
            .codeType = GnssSignalType::CODE_TYPE_C,
    };
    GnssSignalType signalType2 = {
            .constellation = GnssConstellationType::GLONASS,
            .carrierFrequencyHz = 1.59975e+09,
            .carrierFrequencyHz = 1.5980625e+09,
            .codeType = GnssSignalType::CODE_TYPE_C,
    };
    status = sGnssCallback->gnssSetSignalTypeCapabilitiesCb(
+7 −5
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ ndk::ScopedAStatus GnssMeasurementInterface::setCallback(
        ALOGW("GnssMeasurement callback already set. Resetting the callback...");
        stop();
    }
    start(enableCorrVecOutputs);
    start(enableCorrVecOutputs, enableFullTracking);

    return ndk::ScopedAStatus::ok();
}
@@ -73,7 +73,7 @@ ndk::ScopedAStatus GnssMeasurementInterface::setCallbackWithOptions(
        stop();
    }
    mIntervalMs = std::max(options.intervalMs, 1000);
    start(options.enableCorrVecOutputs);
    start(options.enableCorrVecOutputs, options.enableFullTracking);

    return ndk::ScopedAStatus::ok();
}
@@ -91,7 +91,8 @@ ndk::ScopedAStatus GnssMeasurementInterface::close() {
    return ndk::ScopedAStatus::ok();
}

void GnssMeasurementInterface::start(const bool enableCorrVecOutputs) {
void GnssMeasurementInterface::start(const bool enableCorrVecOutputs,
                                     const bool enableFullTracking) {
    ALOGD("start");

    if (mIsActive) {
@@ -103,7 +104,7 @@ void GnssMeasurementInterface::start(const bool enableCorrVecOutputs) {

    mIsActive = true;
    mThreadBlocker.reset();
    mThread = std::thread([this, enableCorrVecOutputs]() {
    mThread = std::thread([this, enableCorrVecOutputs, enableFullTracking]() {
        int intervalMs;
        do {
            if (!mIsActive) {
@@ -122,7 +123,8 @@ void GnssMeasurementInterface::start(const bool enableCorrVecOutputs) {
                    this->reportMeasurement(*measurement);
                }
            } else {
                auto measurement = Utils::getMockMeasurement(enableCorrVecOutputs);
                auto measurement =
                        Utils::getMockMeasurement(enableCorrVecOutputs, enableFullTracking);
                this->reportMeasurement(measurement);
            }
            intervalMs =
+1 −1
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ struct GnssMeasurementInterface : public BnGnssMeasurementInterface {
    void setLocationEnabled(const bool enabled);

  private:
    void start(const bool enableCorrVecOutputs);
    void start(const bool enableCorrVecOutputs, const bool enableFullTracking);
    void stop();
    void reportMeasurement(const GnssData&);
    void waitForStoppingThreads();
Loading