void CSelfManagingPsy::IssueRequest(TTimeIntervalMicroSeconds aUpdInterval, TTimeIntervalMicroSeconds aTimeOut) { qDebug() << "CSelfManagingPsy::IssueRequest " << iPsyName ; if (IsActive()) Cancel(); TPositionQuality quality; iPsyModInfo->GetPositionQuality(quality); if (aUpdInterval < quality.TimeToNextFix()) aUpdInterval = quality.TimeToNextFix(); if (aTimeOut < quality.TimeToFirstFix()) aTimeOut = quality.TimeToFirstFix(); iUpdInterval = aUpdInterval; iTimeout = aTimeOut; if (!iPositioner) { qDebug() << "CSelfManagingPsy::IssueRequest " << iPsyName << " POSITIONER NOT AVBL"; return; } if (!iPsyAvailabilityStatus) { //PSY is not avbl so no point calling NotifyPositionUpdate //If the PSY becomes available, then NotifyPositionUpdate //will be called from NotifyPsyStatusChange qDebug() << "CSelfManagingPsy::IssueRequest " << iPsyName << " NOT AVBL"; return; } TPositionUpdateOptions updateOptions(iUpdInterval, iTimeout); iPositioner->SetUpdateOptions(updateOptions); iPositioner->NotifyPositionUpdate(iPosInfo, iStatus); SetActive(); }
// --------------------------------------------------------- // CT_LbsClientPosTp76::CheckModuleInfoL // // (other items were commented in a header). // --------------------------------------------------------- // void CT_LbsClientPosTp76::CheckModuleInfoL(const TPositionModuleInfo& dbInfo, const TPositionModuleInfo& clientInfo) { _LIT(KNotSame, "Module Info from settings is not the same as when read by GetModuleInfoById"); if (dbInfo.IsAvailable() != clientInfo.IsAvailable() || dbInfo.ModuleId() != clientInfo.ModuleId() || dbInfo.DeviceLocation() != clientInfo.DeviceLocation() || dbInfo.Capabilities() != clientInfo.Capabilities() || dbInfo.TechnologyType() != clientInfo.TechnologyType() || dbInfo.Version().iBuild != clientInfo.Version().iBuild || dbInfo.Version().iMajor != clientInfo.Version().iMajor || dbInfo.Version().iMinor != clientInfo.Version().iMinor || dbInfo.Version().Name() != clientInfo.Version().Name() || dbInfo.ClassesSupported(EPositionInfoFamily) != clientInfo.ClassesSupported(EPositionInfoFamily)) { LogErrorAndLeaveL(KNotSame); } TPositionQuality dbQuality; TPositionQuality clientQuality; dbInfo.GetPositionQuality(dbQuality); clientInfo.GetPositionQuality(clientQuality); if (dbQuality.TimeToFirstFix() != clientQuality.TimeToFirstFix() || dbQuality.TimeToNextFix() != clientQuality.TimeToNextFix() || dbQuality.HorizontalAccuracy() != clientQuality.HorizontalAccuracy() || dbQuality.VerticalAccuracy() != clientQuality.VerticalAccuracy() || dbQuality.CostIndicator() != clientQuality.CostIndicator() || dbQuality.PowerConsumption() != clientQuality.PowerConsumption() ) { LogErrorAndLeaveL(KNotSame); } TBuf<30> name1; TBuf<30> name2; dbInfo.GetModuleName(name1); clientInfo.GetModuleName(name2); if (name1 != name2) { LogErrorAndLeaveL(KNotSame); } }
/** * 2nd phase constructor * * @param aConstructionParameters Construction parameters for CPositioner. */ void CGpsPositioner::ConstructL(TAny* aConstructionParameters) { TRACESTRING("CGpsPositioner::ConstructL") // Must call BaseConstructL first thing during construction. BaseConstructL(aConstructionParameters); iEnvironment = CAgpsEnvironment::NewL(); iEnvironment->RegisterPSYL(this); iEnvironment->GetEnvCriteriaL(iCriteria, TUid::Uid(KPosGPSPSYImplUid)); iInactivityTimeout = iEnvironment->GetInactivityTimeoutL(TUid::Uid(KPosGPSPSYImplUid)); iRequestHandler = iEnvironment->GetRequestHandler(); // Get the request timeout from the LS: if(iEnvironment->ProfileInUse()) // default timeout was taken from profile, so let LS know { TPositionQuality quality; iCriteria.GetRequiredQuality(quality); iTimeOutInterval = quality.TimeToFirstFix(); SetPsyDefaultUpdateTimeOut(iTimeOutInterval); } iNetRegStatus.OpenL(); }