Loading gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/GnssData.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -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; Loading gnss/aidl/android/hardware/gnss/GnssData.aidl +11 −0 Original line number Diff line number Diff line Loading @@ -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; } gnss/aidl/default/Gnss.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -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( Loading gnss/aidl/default/GnssMeasurementInterface.cpp +7 −5 Original line number Diff line number Diff line Loading @@ -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(); } Loading @@ -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(); } Loading @@ -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) { Loading @@ -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) { Loading @@ -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 = Loading gnss/aidl/default/GnssMeasurementInterface.h +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
gnss/aidl/aidl_api/android.hardware.gnss/current/android/hardware/gnss/GnssData.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -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; Loading
gnss/aidl/android/hardware/gnss/GnssData.aidl +11 −0 Original line number Diff line number Diff line Loading @@ -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; }
gnss/aidl/default/Gnss.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -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( Loading
gnss/aidl/default/GnssMeasurementInterface.cpp +7 −5 Original line number Diff line number Diff line Loading @@ -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(); } Loading @@ -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(); } Loading @@ -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) { Loading @@ -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) { Loading @@ -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 = Loading
gnss/aidl/default/GnssMeasurementInterface.h +1 −1 Original line number Diff line number Diff line Loading @@ -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