Merge "Remove tracking redundanty and assure min interval"
This commit is contained in:
commit
7d34cea4ca
2 changed files with 13 additions and 0 deletions
|
@ -34,6 +34,8 @@
|
|||
#include <LocationAPI.h>
|
||||
#include <map>
|
||||
|
||||
#define MIN_TRACKING_INTERVAL (100) // 100 msec
|
||||
|
||||
typedef struct LocationSessionKey {
|
||||
LocationAPI* client;
|
||||
uint32_t id;
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue