diff -r e71858845f73 -r e1758cbb96ac posmsgpluginreferenceimpl/src/epos_tomasuplposutility.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/posmsgpluginreferenceimpl/src/epos_tomasuplposutility.cpp Mon Oct 04 00:04:35 2010 +0300 @@ -0,0 +1,182 @@ +/* +* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Helper class that provides SUPL information +* +*/ + + + +#include +#include +#include +#include +#include +#include +#include +#include "epos_tomasuplposutility.h" + + +// ----------------------------------------------------------------------------- +// TOmaSuplPosUtility::GetPositionEstimatesL +// Determines the position estimates +// ----------------------------------------------------------------------------- +// +void TOmaSuplPosUtility::GetPositionEstimatesL( COMASuplPosition*& aPosition ) + { + TDateTime dateTime( 2006, EJanuary, 5, 00, 00, 00, 000000); + TOMASuplUtcTime utcTime; + TInt zoneCode = 0; + TInt zone = 23; + + utcTime.SetUtcTime( dateTime, zoneCode, zone); + + TOMASuplPositionEstimate posEstimate; + + TInt latitude = 100; + TInt longitude = 100; + posEstimate.SetPositionEstimate( TOMASuplPositionEstimate::ENorth, latitude, + longitude); + aPosition->SetPosition( utcTime, posEstimate ); + COMASuplInfoRequest* req = COMASuplVelocity::NewL(); + GetVelocityL(req); + aPosition->SetSuplVelocity(STATIC_CAST(COMASuplVelocity*,req)); + } + + +// ----------------------------------------------------------------------------- +// TOmaSuplPosUtility::GetPosParametersL +// Determines the POS parameters +// ----------------------------------------------------------------------------- +// +void TOmaSuplPosUtility::GetPosParametersL( COMASuplInfoRequestList*& aInfoRequestList ) + { + TInt count = aInfoRequestList->GetCount(); + for ( TInt index = 0; index < count; index ++ ) + { + // Determine the type of the element + COMASuplInfoRequest *reqElement = aInfoRequestList->GetElement( index ); + COMASuplInfoRequest::TOMASuplInfoType infoReqType = reqElement->Type(); + + // Fill up the element with appropriate values + switch( infoReqType ) + { + case COMASuplInfoRequest::EOMASuplReqAsstData: + GetRequestedAsstData( reqElement ); + break; + + case COMASuplInfoRequest::EOMASuplVelocity: + TRAPD( err, GetVelocityL( reqElement ) ); + if ( KErrNone != err ) + { + reqElement->SetStatus( KErrOMASuplParamNotSet ); + } + break; + + case COMASuplInfoRequest::EOMASuplSETCapabilities: + GetSetCapabilities( reqElement ); + break; + + case COMASuplInfoRequest::EOMASuplPosPayload: + TRAP( err, GetPosPayloadL( reqElement ) ); + if ( KErrNone != err ) + { + reqElement->SetStatus( KErrOMASuplParamNotSet ); + } + else + { + reqElement->SetStatus( KErrOMASuplLastPosMsg ); + } + break; + + case COMASuplInfoRequest::EOMASuplPosition: + GetPositionL( reqElement ); + break; + + default: + reqElement->SetStatus( KErrOMASuplParamNotSet ); + break; + } + } + } + + +// ----------------------------------------------------------------------------- +// TOmaSuplPosUtility::GetRequestedAsstData +// Determines the requested assistance data +// ----------------------------------------------------------------------------- +// +void TOmaSuplPosUtility::GetRequestedAsstData( COMASuplInfoRequest*& aReqElement ) + { + COMASuplReqAsstData* reqAsstData = static_cast(aReqElement); + + reqAsstData->SetReqAsstData( ETrue, ETrue, ETrue, ETrue, ETrue, ETrue, + ETrue, ETrue ); + } + + +// ----------------------------------------------------------------------------- +// TOmaSuplPosUtility::GetVelocity +// Determines the velocity +// ----------------------------------------------------------------------------- +// +void TOmaSuplPosUtility::GetVelocityL( COMASuplInfoRequest*& aReqElement ) + { + COMASuplVelocity* velocity = static_cast( aReqElement ); + COMASuplHorizVelocity* horizVel = COMASuplHorizVelocity::NewL(); + horizVel->SetHorizVel(1,2); + velocity->SetVelocity( horizVel ); + } + + +// ----------------------------------------------------------------------------- +// TOmaSuplPosUtility::GetSetCapabilities +// Determines the SET capabilities +// ----------------------------------------------------------------------------- +// +void TOmaSuplPosUtility::GetSetCapabilities( COMASuplInfoRequest*& aReqElement ) + { + COMASuplSETCapabilities* setCap = static_cast( aReqElement ); + TOMASuplPosTechnology posTech; + posTech.SetPosTechnology( ETrue, ETrue, ETrue, ETrue, ETrue, ETrue ); + TOMASuplPosProtocol suplProtocol; + suplProtocol.SetPosProtocol( ETrue, ETrue, ETrue ); + setCap->SetSETCapabilities( + posTech, COMASuplSETCapabilities::EOMANoPreferred, suplProtocol ); + } + + +// ----------------------------------------------------------------------------- +// TOmaSuplPosUtility::GetPosPayload +// Determines the POS payload +// ----------------------------------------------------------------------------- +// +void TOmaSuplPosUtility::GetPosPayloadL( COMASuplInfoRequest*& aReqElement ) + { + COMASuplPosPayload* payload = static_cast( aReqElement ); + HBufC8* payloadData = HBufC8::NewL(20); + payloadData->Des().Copy( _L8( "PayLoadData" ) ); + payload->SetPosPayload( payloadData, COMASuplPosPayload::ETIA801 ); + } + + +// ----------------------------------------------------------------------------- +// TOmaSuplPosUtility::GetPositionL +// Determines the position estimates +// ----------------------------------------------------------------------------- +// +void TOmaSuplPosUtility::GetPositionL( COMASuplInfoRequest*& aReqElement ) + { + COMASuplPosition* position = static_cast( aReqElement ); + GetPositionEstimatesL( position ); + }