summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorqctecmdr Service <qctecmdr@qualcomm.com>2019-03-19 11:16:01 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2019-03-19 11:16:00 -0700
commit7d34cea4ca6de95a464ed0df0da46628b27de107 (patch)
tree2b97e63e5e1fcb093bbc1fba1bd0905d805054c8
parenta7953cd7eac3c6262b1b96bfdaa555da925b6f12 (diff)
parente22619060be72c2e5729612a2f811c8b252c5eec (diff)
downloadgps-7d34cea4ca6de95a464ed0df0da46628b27de107.tar.gz
Merge "Remove tracking redundanty and assure min interval"
-rw-r--r--core/LocAdapterBase.h2
-rw-r--r--gnss/GnssAdapter.cpp11
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);