diff options
author | qctecmdr Service <qctecmdr@qualcomm.com> | 2019-03-19 11:16:01 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2019-03-19 11:16:00 -0700 |
commit | 7d34cea4ca6de95a464ed0df0da46628b27de107 (patch) | |
tree | 2b97e63e5e1fcb093bbc1fba1bd0905d805054c8 | |
parent | a7953cd7eac3c6262b1b96bfdaa555da925b6f12 (diff) | |
parent | e22619060be72c2e5729612a2f811c8b252c5eec (diff) | |
download | gps-7d34cea4ca6de95a464ed0df0da46628b27de107.tar.gz |
Merge "Remove tracking redundanty and assure min interval"
-rw-r--r-- | core/LocAdapterBase.h | 2 | ||||
-rw-r--r-- | gnss/GnssAdapter.cpp | 11 |
2 files changed, 13 insertions, 0 deletions
diff --git a/core/LocAdapterBase.h b/core/LocAdapterBase.h index 722947a..ca23e65 100644 --- a/core/LocAdapterBase.h +++ b/core/LocAdapterBase.h @@ -34,6 +34,8 @@ #include <LocationAPI.h> #include <map> +#define MIN_TRACKING_INTERVAL (100) // 100 msec + typedef struct LocationSessionKey { LocationAPI* client; uint32_t id; diff --git a/gnss/GnssAdapter.cpp b/gnss/GnssAdapter.cpp index fe02db1..dfb70da 100644 --- a/gnss/GnssAdapter.cpp +++ b/gnss/GnssAdapter.cpp @@ -2336,6 +2336,9 @@ GnssAdapter::startTrackingCommand(LocationAPI* client, TrackingOptions& options) mTrackingOptions.tbm, TRACKING_TBM_THRESHOLD_MILLIS); mTrackingOptions.powerMode = GNSS_POWER_MODE_M2; } + if (mTrackingOptions.minInterval < MIN_TRACKING_INTERVAL) { + mTrackingOptions.minInterval = MIN_TRACKING_INTERVAL; + } // Api doesn't support multiple clients for time based tracking, so mutiplex bool reportToClientWithNoWait = mAdapter.startTrackingMultiplex(mClient, mSessionId, mTrackingOptions); @@ -2394,6 +2397,7 @@ GnssAdapter::startTrackingMultiplex(LocationAPI* client, uint32_t sessionId, } if (updateOptions) { // restart time based tracking with the newly updated options + startTracking(client, sessionId, multiplexedOptions); // need to wait for QMI callback reportToClientWithNoWait = false; @@ -2408,6 +2412,10 @@ void GnssAdapter::startTracking(LocationAPI* client, uint32_t sessionId, const TrackingOptions& trackingOptions) { + LOC_LOGd("minInterval %u minDistance %u mode %u powermode %u tbm %u", + trackingOptions.minInterval, trackingOptions.minDistance, + trackingOptions.mode, trackingOptions.powerMode, trackingOptions.tbm); + LocPosMode locPosMode = {}; convertOptions(locPosMode, trackingOptions); @@ -2520,6 +2528,9 @@ GnssAdapter::updateTrackingOptionsCommand(LocationAPI* client, uint32_t id, mTrackingOptions.tbm, TRACKING_TBM_THRESHOLD_MILLIS); mTrackingOptions.powerMode = GNSS_POWER_MODE_M2; } + if (mTrackingOptions.minInterval < MIN_TRACKING_INTERVAL) { + mTrackingOptions.minInterval = MIN_TRACKING_INTERVAL; + } // Api doesn't support multiple clients for time based tracking, so mutiplex bool reportToClientWithNoWait = mAdapter.updateTrackingMultiplex(mClient, mSessionId, mTrackingOptions); |