Merge "Remove tracking redundanty and assure min interval"

This commit is contained in:
qctecmdr Service 2019-03-19 11:16:01 -07:00 committed by Gerrit - the friendly Code Review server
commit 7d34cea4ca
2 changed files with 13 additions and 0 deletions

View file

@ -34,6 +34,8 @@
#include <LocationAPI.h>
#include <map>
#define MIN_TRACKING_INTERVAL (100) // 100 msec
typedef struct LocationSessionKey {
LocationAPI* client;
uint32_t id;

View file

@ -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);