本文整理汇总了C++中TPositionInfo::PositionClassType方法的典型用法代码示例。如果您正苦于以下问题:C++ TPositionInfo::PositionClassType方法的具体用法?C++ TPositionInfo::PositionClassType怎么用?C++ TPositionInfo::PositionClassType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TPositionInfo
的用法示例。
在下文中一共展示了TPositionInfo::PositionClassType方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TransmitPosition
void RNrhSession::TransmitPosition(const TDesC& aDestinationId,
TUint aTransmitPriority,
TRequestStatus& aStatus,
TPositionInfo& aTransmittedPosInfo)
{
// iDestinationId is too big to fit in the buffer;
// complete the request early with an error code
if (aDestinationId.Length() > iTransmitPositionParams.iDestinationId.MaxLength())
{
TRequestStatus* status = &aStatus;
User::RequestComplete(status, KErrTooBig);
}
iTransmitPositionParams.iDestinationId = aDestinationId;
iTransmitPositionParams.iPriority = aTransmitPriority;
iTransmitPositionParams.iPositionInfoClassType = aTransmittedPosInfo.PositionClassType();
iTransmitPositionParams.iPositionInfoClassSize = aTransmittedPosInfo.PositionClassSize();
iTransmitPositionParamsPtr.Set(reinterpret_cast<TUint8*>(&iTransmitPositionParams),
sizeof(iTransmitPositionParams),
sizeof(iTransmitPositionParams));
iTransmittedPosInfoPtr.Set(reinterpret_cast<TUint8*>(&aTransmittedPosInfo),
aTransmittedPosInfo.PositionClassSize(),
aTransmittedPosInfo.PositionClassSize());
TIpcArgs args(&iTransmitPositionParamsPtr, &iTransmittedPosInfoPtr);
SendReceive(EX3pTransmitPosition, args, aStatus);
}
示例2: ReportReferenceLocation
void RNrhSession::ReportReferenceLocation(TRequestStatus& aRefPosStatus, TPositionInfo& aReferencePosInfo)
{
iReferencePositionParams.iPositionInfoClassType = aReferencePosInfo.PositionClassType();
iReferencePositionParams.iPositionInfoClassSize = aReferencePosInfo.PositionClassSize();
iReferencePositionParamsPtr.Set(reinterpret_cast<TUint8*>(&iReferencePositionParams),
sizeof(iReferencePositionParams),
sizeof(iReferencePositionParams));
iReferencePosInfoPtr.Set(reinterpret_cast<TUint8*>(&aReferencePosInfo),
aReferencePosInfo.PositionClassSize(),
aReferencePosInfo.PositionClassSize());
TIpcArgs args(&iReferencePositionParamsPtr, &iReferencePosInfoPtr);
SendReceive(EX3pReportReferenceLocation , args, aRefPosStatus);
}
示例3: PrintPosInfo
EXPORT_C void MTe_LbsPsyStaticData::PrintPosInfo(const TPositionInfo& aPosInfo) const
{
_LIT(KTimeFormat, "%H:%T:%S.%C");
TBuf<100> cTimeStr;
INFO_PRINTF2(_L("classSize=%d"), aPosInfo.PositionClassSize());
INFO_PRINTF2(_L("classType=0x%x"), aPosInfo.PositionClassType());
INFO_PRINTF2(_L("moduleId=0x%x"), aPosInfo.ModuleId());
INFO_PRINTF2(_L("updateType=%d"), aPosInfo.UpdateType());
INFO_PRINTF2(_L("positionMode=%d"), aPosInfo.PositionMode());
INFO_PRINTF2(_L("positionModeReason=%d"), aPosInfo.PositionModeReason());
TPosition pos;
aPosInfo.GetPosition(pos);
INFO_PRINTF2(_L("pos altitude=%f"), pos.Altitude());
INFO_PRINTF2(_L("pos latitude=%f"), pos.Latitude());
INFO_PRINTF2(_L("pos longitude=%f"), pos.Longitude());
INFO_PRINTF2(_L("pos datum=0x%x"), pos.Datum());
INFO_PRINTF2(_L("pos horAccuracy=%f"), pos.HorizontalAccuracy());
INFO_PRINTF2(_L("pos verAccuracy=%f"), pos.VerticalAccuracy());
TRAP_IGNORE(pos.Time().FormatL(cTimeStr, KTimeFormat);)
示例4: RunL
//.........这里部分代码省略.........
microseconds = stopTime.MicroSecondsFrom(iAlpha2StartTime);
TInt64 timeElapsed = microseconds.Int64();
// Test that we do not get response before alpha2 has expired:
TInt timeOut = KAlphaTimer - timeElapsed - KDelta > 0 ? KAlphaTimer - timeElapsed - KDelta : 0;
iProxy->WaitForResponseL(timeOut, iStatus);
SetActive();
}
break;
}
case ENetMsgTimeoutExpired:
{
// >> Alpha2 timeout
iStep.INFO_PRINTF1(_L("NetworkProtocolProxy - Network expecting measurements after timeout"));
iNetworkProtocolProxyStep = ENetworkProtocolProxyStepSessionWaitingForFirstMeasurments;
iProxy->WaitForResponseL(2 * 1000* KDelta, iStatus);
SetActive();
break;
}
case ENetMsgRespondLocationRequest:
{ // If the module sends an accurate enough position then the Alpha2 timer might not time-out so check we received positions
// >> RespondLocationRequest(gpspos)
iStep.INFO_PRINTF1(_L("NetworkProtocolProxy >> RespondLocationRequest(gpspos)"));
RequestNetworkMethod();
DecideWhatNetworkDoesntReceive();
iStep.TESTL(iNetworkExpectsPositions);
TLbsNetSessionId* sessionId = NULL;
TPositionInfo* positionInfo = NULL;
TInt reason;
TInt cleanupCnt = iProxy->GetArgsLC(ENetMsgRespondLocationRequest, &sessionId, &reason, &positionInfo);
// check it is a position
iStep.TESTL(positionInfo->PositionClassType() == (EPositionInfoClass|EPositionCourseInfoClass|EPositionSatelliteInfoClass|EPositionExtendedSatelliteInfoClass));
iStep.TESTL(sessionId->SessionNum() == iSessionId.SessionNum());
iStep.TESTL(reason == KErrNone);
// << ProcessLocationUpdate(FNP)
iStep.INFO_PRINTF1(_L("NetworkProtocolProxy << ProcessLocationUpdate(SessionId, FinalNetworkPosition)"));
iProxy->CallL(ENetMsgProcessLocationUpdate, &iSessionId, positionInfo);
CleanupStack::PopAndDestroy(cleanupCnt);
iNetworkProtocolProxyStep = ENetworkProtocolProxyStepSessionPositionSent;
iProxy->WaitForResponseL(KSmallTimeOut, iStatus);
SetActive();
break;
}
default:
{
iStep.INFO_PRINTF2(_L("Network in state ENetworkProtocolProxyStepSessionWaitingForFirstMeasurmentsTimeOut received unexpected response: %d"), response);
User::Leave(KErrNotSupported);
}
}
break;
}
case ENetworkProtocolProxyStepSessionWaitingForFirstMeasurments:
{
switch(response)
{
case ENetMsgRequestAssistanceData:
{
// >> RequestAssistanceData(0)
iStep.INFO_PRINTF1(_L("NetworkProtocolProxy >> RequestAssistanceData(0)"));
TLbsAsistanceDataGroup dataMask;
TInt cleanupCnt = iProxy->GetArgsLC(ENetMsgRequestAssistanceData, &dataMask);
iStep.TESTL(dataMask == EAssistanceDataNone);
示例5: doTestStepL
//.........这里部分代码省略.........
CleanupStack::PopAndDestroy(cleanupCnt);
//Send: ProcessStatusUpdate(EServiceSelfLocation)
MLbsNetworkProtocolObserver::TLbsNetProtocolServiceMask activeServiceMask = MLbsNetworkProtocolObserver::EServiceSelfLocation;
proxy->CallL(ENetMsgProcessStatusUpdate, &activeServiceMask);
// Client Recv: (KPositionPartialUpdate, GPS Info)
// in TAP mode dont get any AGPS psotions! CheckForObserverEventTestsL(KTimeOut, *this);
// TESTL(iState == EGpsPartialInitReceived);
//Client Send: Notify Position Update
// pWatch->IssueNotifyPositionUpdate();
//Recv: RequestAssistanceData(Mask=0) - as result of the second client noitfy update request.
TLbsAsistanceDataGroup dataMask;
TESTL(proxy->WaitForResponse(KTimeOut) == ENetMsgRequestAssistanceData);
cleanupCnt = proxy->GetArgsLC(ENetMsgRequestAssistanceData, &dataMask);
TESTL(dataMask == EAssistanceDataNone);
CleanupStack::PopAndDestroy(cleanupCnt);
//Client Send: CompleteRequest
TESTL(pos.CompleteRequest(EPositionerNotifyPositionUpdate) == KErrNone);
// Client Recv: Second Partial update position - This should return with KPositionEarlyComplete
CheckForObserverEventTestsL(KTimeOut, *this);
TESTL(iState == EGpsPartialEarlyReceived);
//Send: ProcessLocationUpdate(SessionId, RefPosition)
TPositionInfo refPosInfo = ArgUtils::MolrReferencePositionInfo();
proxy->CallL(ENetMsgProcessLocationUpdate, &iSessionId, &refPosInfo);
//Send: ProcessAssistanceData()
dataMask = EAssistanceDataReferenceTime;
RLbsAssistanceDataBuilderSet assistanceData;
ArgUtils::PopulateLC(assistanceData);
TInt reason = KErrNone;
proxy->CallL(ENetMsgProcessAssistanceData, &dataMask, &assistanceData, &reason);
CleanupStack::PopAndDestroy();
//Send: ProcessLocationRequest(SessionId, HybridMode, alpha2)
TBool emergency = EFalse;
MLbsNetworkProtocolObserver::TLbsNetProtocolService service = MLbsNetworkProtocolObserver::EServiceSelfLocation;
TLbsNetPosRequestQuality quality = ArgUtils::Quality();
quality.SetMaxFixTime(ArgUtils::Alpha2());
TLbsNetPosRequestMethod method = ArgUtils::RequestHybridMethod();
proxy->CallL(ENetMsgProcessLocationRequest, &iSessionId, &emergency, &service, &quality, &method);
//Recv: RequestAssistanceData(Mask=0)
TESTL(proxy->WaitForResponse(KTimeOut) == ENetMsgRequestAssistanceData);
cleanupCnt = proxy->GetArgsLC(ENetMsgRequestAssistanceData, &dataMask);
TESTL(dataMask == EAssistanceDataNone);
CleanupStack::PopAndDestroy(cleanupCnt);
//Recv: Wait for and process the response (SessionId=1, KErrNone, GpsPos2)
TESTL(proxy->WaitForResponse(KTimeOut) == ENetMsgRespondLocationRequest);
TPositionInfo* positionInfo = NULL;
sessionId = NULL;
cleanupCnt = proxy->GetArgsLC(ENetMsgRespondLocationRequest, &sessionId, &reason, &positionInfo);
TESTL(positionInfo->PositionClassType() == (EPositionInfoClass|EPositionCourseInfoClass|EPositionSatelliteInfoClass));
TESTL(sessionId->SessionNum() == iSessionId.SessionNum());
TESTL(reason == KErrNone);
CleanupStack::PopAndDestroy(cleanupCnt);
//Send: ProcessLocationUpdate(SessionId, FinalNetworkPosition)
TPositionInfo networkPosInfo = ArgUtils::MolrNetworkPositionInfo();
proxy->CallL(ENetMsgProcessLocationUpdate, &iSessionId, &networkPosInfo);
//Send: ProcessSessionComplete(SessionId, KErrNone)
reason = KErrNone;
proxy->CallL(ENetMsgProcessSessionComplete, &iSessionId, &reason);
//Send: ENetMsgProcessStatusUpdate()
MLbsNetworkProtocolObserver::TLbsNetProtocolServiceMask serviceMask = MLbsNetworkProtocolObserver::EServiceNone;
proxy->CallL(ENetMsgProcessStatusUpdate, &serviceMask);
// Wait for 10 seconds to ensure no additional responses turn up.
TInt delta = 10 * 1000 * 1000;
TNetProtocolResponseType mType = proxy->WaitForResponse(delta);
TESTL(mType == ENetMsgTimeoutExpired);
//Done. Now cleanup...
CleanupStack::PopAndDestroy(pWatch);
CleanupStack::PopAndDestroy(); // pos
CleanupStack::PopAndDestroy(); // server
CleanupStack::PopAndDestroy(proxy);
return TestStepResult();
}
示例6: posOpts
//.........这里部分代码省略.........
// Wait for and process the response.
TESTL(proxy->WaitForResponse(2 * delta) == ENetMsgRespondLocationRequest); // DONT get because the measurement data bus has not been created...
sessionId = NULL;
TPositionGpsMeasurementInfo* measurementInfo = NULL;
cleanupCnt = proxy->GetArgsLC(ENetMsgRespondLocationRequest, &sessionId, &reason, &measurementInfo);
TESTL(sessionId->SessionNum() == iSessionId.SessionNum());
TESTL(reason == KErrNone);
CleanupStack::PopAndDestroy(cleanupCnt);//sessionId, measurementInfo
// Recv -> RequestAssistanceData - we get an extra msg as the result of the A-GPS manager re-issueing a location request when it's
// max fix time timer expries.
TESTL(proxy->WaitForResponse(KTimeOut) == ENetMsgRequestAssistanceData);
cleanupCnt = proxy->GetArgsLC(ENetMsgRequestAssistanceData, &dataMask);
TESTL(dataMask == EAssistanceDataNone);
CleanupStack::PopAndDestroy(cleanupCnt);
const TInt t = 8 * 1000 * 1000; // 8 secs.
quality.SetMaxFixTime(t);
TPositionInfo* positionInfo = NULL;
for (TInt i = 0; i < KN; i++)
{
// << ProcessLocationRequest(SessionId, HybridMode, t)
proxy->CallL(ENetMsgProcessLocationRequest, &iSessionId, &emergency, &service, &quality, &method);
// >> RequestAssistanceData(0)
TESTL(proxy->WaitForResponse(KTimeOut) == ENetMsgRequestAssistanceData);
cleanupCnt = proxy->GetArgsLC(ENetMsgRequestAssistanceData, &dataMask);
TESTL(dataMask == EAssistanceDataNone);
CleanupStack::PopAndDestroy(cleanupCnt);
// >> RespondLocationRequest() - first measurement, second position.
TESTL(proxy->WaitForResponse(t + delta) == ENetMsgRespondLocationRequest);
sessionId = NULL;
// Expect measurement first time.
if (i < (KN-1))
{
measurementInfo = NULL;
cleanupCnt = proxy->GetArgsLC(ENetMsgRespondLocationRequest, &sessionId, &reason, &measurementInfo);
// Check it is measurement
TESTL(measurementInfo->PositionClassType() == EPositionGpsMeasurementInfoClass);
// >> RequestAssistanceData - we get an extra msg as the result of the A-GPS manager re-issueing a location request when it's
// max fix time timer expries.
TESTL(proxy->WaitForResponse(KTimeOut) == ENetMsgRequestAssistanceData);
cleanupCnt += proxy->GetArgsLC(ENetMsgRequestAssistanceData, &dataMask);
TESTL(dataMask == EAssistanceDataNone);
TESTL(sessionId->SessionNum() == iSessionId.SessionNum());
TESTL(reason == KErrNone);
}
// Expect position second time.
else
{
cleanupCnt = proxy->GetArgsLC(ENetMsgRespondLocationRequest, &sessionId, &reason, &positionInfo);
// check it is a position
TESTL(positionInfo->PositionClassType() == (EPositionInfoClass|EPositionCourseInfoClass|EPositionSatelliteInfoClass|EPositionExtendedSatelliteInfoClass));
TESTL(sessionId->SessionNum() == iSessionId.SessionNum());
TESTL(reason == KErrNone);
// Client recv - the gps position determined by the gps module.
CheckForObserverEventTestsL(KTimeOut, *this);
TESTL(iState == EGpsLocReceived);
// << ProcessLocationUpdate(SessionId, FinalNetworkPosition)
// Return modules' position as FinalNetworkPosition
proxy->CallL(ENetMsgProcessLocationUpdate, &iSessionId, positionInfo);
}
CleanupStack::PopAndDestroy(cleanupCnt);// sessionId, measurementInfo/positionInfo
}
// << ProcessSessionComplete(SessionId, KErrNone)
reason = KErrNone;
proxy->CallL(ENetMsgProcessSessionComplete, &iSessionId, &reason);
// << ENetMsgProcessStatusUpdate()
MLbsNetworkProtocolObserver::TLbsNetProtocolServiceMask serviceMask = MLbsNetworkProtocolObserver::EServiceNone;
proxy->CallL(ENetMsgProcessStatusUpdate, &serviceMask);
// Done. Now cleanup...
CleanupStack::PopAndDestroy(pWatch);
CleanupStack::PopAndDestroy(); // pos
CleanupStack::PopAndDestroy(); // server
CleanupStack::PopAndDestroy(proxy);
return TestStepResult();
}
示例7: DoNetworkProtocolProxyStepL
//.........这里部分代码省略.........
ArgUtils::PopulateLC(assistanceData);
TInt reason = KErrNone;
iProxy->CallL(ENetMsgProcessAssistanceData, &dataMask, &assistanceData, &reason);
CleanupStack::PopAndDestroy(); // assistanceData
if(!iWarmUpModule && iStepForSendingReset == EAfterAssistanceData)
{
iExpectExtraRequestForAssistanceData = SendResetAssistanceDataL();
}
// << ProcessLocationRequest()
TBool emergency = EFalse;
MLbsNetworkProtocolObserver::TLbsNetProtocolService service = MLbsNetworkProtocolObserver::EServiceSelfLocation;
TLbsNetPosRequestQuality quality = ArgUtils::Quality();
//quality.SetMaxFixTime(ArgUtils::Alpha2()/10);
quality.SetMaxFixTime(ArgUtils::Alpha2()/4);
TLbsNetPosRequestMethod method = RequestNetworkMethod();
INFO_PRINTF1(_L("CT_LbsMolrResetAssistance::DoNetworkProtocolProxyStepL() << ProcessLocationRequest()"));
iProxy->CallL(ENetMsgProcessLocationRequest, &iSessionId, &emergency, &service, &quality, &method);
// Now that the hybrid/alpha2 has been requested, record current time to verify alpha2 timer expires correctly.
TTime startTime;
startTime.HomeTime();
TInt response = iProxy->WaitForResponse(KTimeOut);
TLbsNetSessionId* sessionId = NULL;
if(response == ENetMsgRespondLocationRequest)
{
// >> RespondLocationRequest(KErrNotSupported) - as a result of the NRH request conflicting with the module capabilities
INFO_PRINTF1(_L("CT_LbsMolrResetAssistance::DoNetworkProtocolProxyStepL() >> RespondLocationRequest(KErrNotSupported)"));
sessionId = NULL;
TPositionInfo* positionInfo = NULL;
reason = KErrNone;
cleanupCnt = iProxy->GetArgsLC(ENetMsgRespondLocationRequest, &sessionId, &reason, &positionInfo);
TESTL(positionInfo->PositionClassType() == EPositionInfoClass);
TESTL(sessionId->SessionNum() == iSessionId.SessionNum());
TESTL(reason == KErrNotSupported);
CleanupStack::PopAndDestroy(cleanupCnt);
// << ProcessSessionComplete()
INFO_PRINTF1(_L("CT_LbsMolrResetAssistance::DoNetworkProtocolProxyStepL() << ProcessSessionComplete()"));
iProxy->CallL(ENetMsgProcessSessionComplete, &iSessionId, &reason);
iGPSModeNotSupported = ETrue;
// << ProcessStatusUpdate()
MLbsNetworkProtocolObserver::TLbsNetProtocolServiceMask activeServiceMask2 = MLbsNetworkProtocolObserver::EServiceNone;
INFO_PRINTF1(_L("CT_LbsMolrResetAssistance::DoNetworkProtocolProxyStepL() << ProcessStatusUpdate(EServiceNone)"));
iProxy->CallL(ENetMsgProcessStatusUpdate, &activeServiceMask2);
iNetworkProtocolProxyStep = ENetworkProtocolProxyStepInitial;
}
else
{
// >> RequestAssistanceData() - as a result of the NRH request.
TESTL(response == ENetMsgRequestAssistanceData);
cleanupCnt = iProxy->GetArgsLC(ENetMsgRequestAssistanceData, &dataMask);
if(!iExpectExtraRequestForAssistanceData || (iNetworkMethod == EAutonomousNetworkMethod && !iWarmUpModule))
{
INFO_PRINTF1(_L("CT_LbsMolrResetAssistance::DoNetworkProtocolProxyStepL() >> RequestAssistanceData(0)"));
TESTL(dataMask == EAssistanceDataNone);
}
else
{
iExpectExtraRequestForAssistanceData = EFalse;
INFO_PRINTF1(_L("CT_LbsMolrResetAssistance::DoNetworkProtocolProxyStepL() >> RequestAssistanceData(EAssistanceDataReferenceTime)"));
TESTL(dataMask == EAssistanceDataReferenceTime);
// << ProcessAssistanceData(EAssistanceDataReferenceTime)
示例8: doTestStepL
//.........这里部分代码省略.........
proxy->CallL(ENetMsgProcessLocationRequest, &iSessionId, &emergency, &service, &quality, &method);
// Now that the hybrid/alpha2 has been requested, record current time to verify alpha2 timer expires correctly.
TTime startTime;
startTime.HomeTime();
// Recv --> RequestAssistanceData.
TESTL(proxy->WaitForResponse(KTimeOut) == ENetMsgRequestAssistanceData);
cleanupCnt = proxy->GetArgsLC(ENetMsgRequestAssistanceData, &dataMask);
TESTL(dataMask == EAssistanceDataNone);
CleanupStack::PopAndDestroy(cleanupCnt);
// Determine the value to take off the alpha2 value. This is required because we had to wait for the assistance data response.
TTimeIntervalMicroSeconds microseconds;
TTime stopTime;
stopTime.HomeTime();
microseconds = stopTime.MicroSecondsFrom(startTime);
TInt64 timeElapsed = microseconds.Int64();
// Recv --> RespondLocationRequest.
// First ensure we don't recv response before Alpha2.
TInt delta = 2 * 1000 * 1000; // 2 secs.
TESTL(proxy->WaitForResponse(ArgUtils::Alpha2() - timeElapsed - delta) == ENetMsgTimeoutExpired);
// Wait for and process the response.
TESTL(proxy->WaitForResponse(2 * delta) == ENetMsgRespondLocationRequest);
TPositionGpsMeasurementInfo* measurementInfo = NULL;
cleanupCnt = proxy->GetArgsLC(ENetMsgRespondLocationRequest, &sessionId, &reason, &measurementInfo);
TESTL(sessionId->SessionNum() == iSessionId.SessionNum());
TESTL(reason == KErrNone);
TESTL(measurementInfo->PositionClassType() == EPositionGpsMeasurementInfoClass);
CleanupStack::PopAndDestroy(cleanupCnt);
sessionId = NULL;
measurementInfo = NULL;
// Recv -> RequestAssistanceData - we get an extra msg as the result of the A-GPS manager re-issueing a location request when it's
// max fix time timer expries.
TESTL(proxy->WaitForResponse(KTimeOut) == ENetMsgRequestAssistanceData);
cleanupCnt = proxy->GetArgsLC(ENetMsgRequestAssistanceData, &dataMask);
TESTL(dataMask == EAssistanceDataNone);
CleanupStack::PopAndDestroy(cleanupCnt);
const TInt t = 8 * 1000 * 1000; // 8 secs.
quality.SetMaxFixTime(t);
// Send <-- ProcessLocationUpdate - return network calculated pos.
TPositionInfo networkPosInfo = ArgUtils::MolrNetworkPositionInfo();
proxy->CallL(ENetMsgProcessLocationUpdate, &iSessionId, &networkPosInfo);
// Client Recv: Second update position - This should return with KPositionEarlyComplete
CheckForObserverEventTestsL(KTimeOut, *this);
// Wait to ensure no additional responses turn up.
delta = 10 * 1000 * 1000;
TNetProtocolResponseType rtype = proxy->WaitForResponse(delta);
if (rtype == ENetMsgTimeoutExpired)
{
INFO_PRINTF1(_L("No additional messages turned up"));