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

Commit c5d4f36a authored by Yu-Han Yang's avatar Yu-Han Yang
Browse files

Add isFullTracking to GnssData

Bug: 257549183
Test: atest VtsHalGnssTargetTest
Change-Id: Icd2ad1e6905fcc76370216fafe34174475497b5f
parent f2c75edf
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