diff options
Diffstat (limited to 'gnss/GnssAdapter.cpp')
-rw-r--r-- | gnss/GnssAdapter.cpp | 78 |
1 files changed, 17 insertions, 61 deletions
diff --git a/gnss/GnssAdapter.cpp b/gnss/GnssAdapter.cpp index 0235d2c..f3ccd99 100644 --- a/gnss/GnssAdapter.cpp +++ b/gnss/GnssAdapter.cpp @@ -170,6 +170,7 @@ GnssAdapter::GnssAdapter() : readConfigCommand(); initDefaultAgpsCommand(); initEngHubProxyCommand(); + // at last step, let us inform adapater base that we are done // with initialization, e.g.: ready to process handleEngineUpEvent doneInit(); @@ -2564,51 +2565,15 @@ GnssAdapter::updateClientsEventMask() } void -GnssAdapter::handleEngineLockStatusEvent(EngineLockState engineLockState) { - - LOC_LOGD("%s]: Old Engine state %d, New Engine state : %d,", - __func__, mLocApi->getEngineLockState(), engineLockState); - - struct MsgEngineLockStateEvent : public LocMsg { - GnssAdapter& mAdapter; - EngineLockState mEngineLockState; - - inline MsgEngineLockStateEvent(GnssAdapter& adapter, EngineLockState engineLockState) : - LocMsg(), - mAdapter(adapter), - mEngineLockState(engineLockState) {} - - virtual void proc() const { - mAdapter.handleEngineLockStatus(mEngineLockState); - } - }; - - sendMsg(new MsgEngineLockStateEvent(*this, engineLockState)); -} - -void -GnssAdapter::handleEngineLockStatus(EngineLockState engineLockState) { - - if (ENGINE_LOCK_STATE_ENABLED == engineLockState) { - for (auto msg: mPendingGnssEnabledMsgs) { - sendMsg(msg); - } - mPendingGnssEnabledMsgs.clear(); - } -} - -void GnssAdapter::handleEngineUpEvent() { LOC_LOGD("%s]: ", __func__); struct MsgHandleEngineUpEvent : public LocMsg { GnssAdapter& mAdapter; - LocApiBase& mApi; - inline MsgHandleEngineUpEvent(GnssAdapter& adapter, LocApiBase& api) : + inline MsgHandleEngineUpEvent(GnssAdapter& adapter) : LocMsg(), - mAdapter(adapter), - mApi(api) {} + mAdapter(adapter) {} virtual void proc() const { mAdapter.setEngineCapabilitiesKnown(true); mAdapter.broadcastCapabilities(mAdapter.getCapabilities()); @@ -2620,19 +2585,17 @@ GnssAdapter::handleEngineUpEvent() mAdapter.gnssSecondaryBandConfigUpdate(); // start CDFW service mAdapter.initCDFWService(); - - if (ENGINE_LOCK_STATE_ENABLED == mApi.getEngineLockState()) { - // restart sessions - mAdapter.restartSessions(true); - for (auto msg: mAdapter.mPendingMsgs) { - mAdapter.sendMsg(msg); - } + // restart sessions + mAdapter.restartSessions(true); + for (auto msg: mAdapter.mPendingMsgs) { + mAdapter.sendMsg(msg); } + mAdapter.mPendingMsgs.clear(); } }; readConfigCommand(); - sendMsg(new MsgHandleEngineUpEvent(*this, *mLocApi)); + sendMsg(new MsgHandleEngineUpEvent(*this)); } void @@ -3009,11 +2972,9 @@ GnssAdapter::startTrackingCommand(LocationAPI* client, TrackingOptions& options) mAdapter.saveTrackingSession(mClient, mSessionId, mOptions); mApi.startDistanceBasedTracking(mSessionId, mOptions, new LocApiResponse(*mAdapter.getContext(), - [&mAdapter = mAdapter, mSessionId = mSessionId, mClient = mClient, - &mApi = mApi] + [&mAdapter = mAdapter, mSessionId = mSessionId, mClient = mClient] (LocationError err) { - if (ENGINE_LOCK_STATE_ENABLED == mApi.getEngineLockState() && - LOCATION_ERROR_SUCCESS != err) { + if (LOCATION_ERROR_SUCCESS != err) { mAdapter.eraseTrackingSession(mClient, mSessionId); } mAdapter.reportResponse(mClient, err, mSessionId); @@ -3120,8 +3081,7 @@ GnssAdapter::startTimeBasedTracking(LocationAPI* client, uint32_t sessionId, if (!checkAndSetSPEToRunforNHz(tempOptions)) { mLocApi->startTimeBasedTracking(tempOptions, new LocApiResponse(*getContext(), [this, client, sessionId] (LocationError err) { - if (ENGINE_LOCK_STATE_ENABLED == mLocApi->getEngineLockState() && - LOCATION_ERROR_SUCCESS != err) { + if (LOCATION_ERROR_SUCCESS != err) { eraseTrackingSession(client, sessionId); } else { checkUpdateDgnssNtrip(false); @@ -3156,8 +3116,7 @@ GnssAdapter::updateTracking(LocationAPI* client, uint32_t sessionId, if(!checkAndSetSPEToRunforNHz(tempOptions)) { mLocApi->startTimeBasedTracking(tempOptions, new LocApiResponse(*getContext(), [this, client, sessionId, oldOptions] (LocationError err) { - if (ENGINE_LOCK_STATE_ENABLED == mLocApi->getEngineLockState() && - LOCATION_ERROR_SUCCESS != err) { + if (LOCATION_ERROR_SUCCESS != err) { // restore the old LocationOptions saveTrackingSession(client, sessionId, oldOptions); } @@ -3272,10 +3231,9 @@ GnssAdapter::updateTrackingOptionsCommand(LocationAPI* client, uint32_t id, if (LOCATION_ERROR_SUCCESS == err) { mApi.startDistanceBasedTracking(mSessionId, mOptions, new LocApiResponse(*mAdapter.getContext(), - [&mAdapter, mClient, mSessionId, mOptions, &mApi = mApi] + [&mAdapter, mClient, mSessionId, mOptions] (LocationError err) { - if (ENGINE_LOCK_STATE_DISABLED == mApi.getEngineLockState() || - LOCATION_ERROR_SUCCESS == err) { + if (LOCATION_ERROR_SUCCESS == err) { mAdapter.saveTrackingSession(mClient, mSessionId, mOptions); } mAdapter.reportResponse(mClient, err, mSessionId); @@ -3389,11 +3347,9 @@ GnssAdapter::stopTrackingCommand(LocationAPI* client, uint32_t id) } else if (isDistanceBased) { mApi.stopDistanceBasedTracking(mSessionId, new LocApiResponse( *mAdapter.getContext(), - [&mAdapter = mAdapter, mSessionId = mSessionId, mClient = mClient, - &mApi = mApi] + [&mAdapter = mAdapter, mSessionId = mSessionId, mClient = mClient] (LocationError err) { - if (ENGINE_LOCK_STATE_DISABLED == mApi.getEngineLockState() || - LOCATION_ERROR_SUCCESS == err) { + if (LOCATION_ERROR_SUCCESS == err) { mAdapter.eraseTrackingSession(mClient, mSessionId); } mAdapter.reportResponse(mClient, err, mSessionId); |