networkprotocolmodules/common/suplrrlpasn1/src/suplstart.cpp
branchGCC_SURGE
changeset 49 5f20f71a57a3
parent 41 ec40843d536a
parent 45 15a2125aa2f3
--- a/networkprotocolmodules/common/suplrrlpasn1/src/suplstart.cpp	Tue Jun 15 14:56:45 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,260 +0,0 @@
-// Copyright (c) 2008-2009 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:
-//
-
-/**
- @file
- @internalTechnology
- 
-*/
-
-#include "ULP.h"
-#include "suplstart.h"
-#include "supldevloggermacros.h" 
-#include "suplrrlpasn1common.h"
-#include <math.h>
-
-/**
-Default minimum horizontal accuracy in meters
-*/
-const TInt KLbsSuplMinHorAccDefault = 20;
-
-
-/**
-Static factory constructor
-*/
-EXPORT_C CSuplStart* CSuplStart::NewL()
-	{
-	SUPLLOG(ELogP1, "CSuplStart::NewL() Begin\n");
-	CSuplStart* self = CSuplStart::NewLC();
-	SUPLLOG(ELogP1, "CSuplStart::NewL() End\n");
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-/**
-Static factory constructor
-*/
-EXPORT_C CSuplStart* CSuplStart::NewLC()
-	{
-	SUPLLOG(ELogP1, "CSuplStart::NewL() Begin\n");
-	CSuplStart* self = new (ELeave) CSuplStart();
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	SUPLLOG(ELogP1, "CSuplStart::NewLC() End\n");
-	return self;
-	}
-
-/** 
-Constructor 
-*/
-CSuplStart::CSuplStart()
- : CSuplMessageBase::CSuplMessageBase(ESuplStart, ETrue)
-	{
-	SUPLLOG(ELogP1, "CSuplMessageBase::CSuplMessageBase() Begin\n");
-	SUPLLOG(ELogP1, "CSuplMessageBase::CSuplMessageBase() End\n");
-	}
-	
-
-/** 
-Second stage constructor 
-*/
-void CSuplStart::ConstructL()
-	{
-	// call the base class ConstructL() to create data structures
-	CSuplMessageBase::ConstructL();
-
-	// local reference to context object
-	OSCTXT* pctxt = iControl->getCtxtPtr();
-
-	iData->message.t =  T_UlpMessage_msSUPLSTART;
-	iData->message.u.msSUPLSTART = (ASN1T_SUPLSTART*)rtxMemAllocZ(pctxt, sizeof(ASN1T_SUPLSTART));
-   	LeaveIfAllocErrorL();
-	}
-	
-
-/**
-Destructor
-*/
-CSuplStart::~CSuplStart()
-	{
-	SUPLLOG(ELogP1, "CSuplStart::~CSuplStart() Begin\n");
-	SUPLLOG(ELogP1, "CSuplStart::~CSuplStart() End\n");
-	}
-
-
-/** 
-SetCapabilities()
-
-Populates the SET Capabilities parameter of the outgoing SUPL START message.
-
-SET Capabilities
-	- Pos Technology (m) Bitmask indicating technologies the SET supports
-	- Pref Method (m)    which GPS mode the SET prefers (TA, TB, noPref)
-	- Pos Protocol (m)   which underlying positioning protocols are supported
-
-@param  aCapabilities, current capabilities reported by LBS subsystem
-@return error indication, KErrNone otherwise
-*/
-EXPORT_C TInt CSuplStart::SetCapabilities(TLbsNetPosCapabilities& aCapabilities)
-	{
-	SUPLLOG(ELogP1, "CSuplStart::SetCapabilities() Begin\n");
-	__ASSERT_DEBUG(iData->message.u.msSUPLSTART != NULL, User::Invariant());
-	
-	TInt err = PopulateSetCapabilities(aCapabilities, iData->message.u.msSUPLSTART->sETCapabilities);
-
-	SUPLLOG(ELogP1, "CSuplStart::SetCapabilities() End\n");
-	return err;
-	}
-	
-
-/**	
-SetLocationId()
-
-Set the location ID parameter 
-
-Location ID - Describes the globally unique cell identification of the most current serving cell.
-	Cell Info (m) The following cell IDs are supported:
-		- GSM Cell Info
-		- WCDMA Cell Info
-		- CDMA Cell Info
-	Status (m) Describes whether or not the cell info is:
-		- Not Current, last known cell info
-		- Current, the present cell info
-		- Unknown (ie not known whether the cell id is current or not current)
-
-Note: The Status parameter does NOT apply to WCDMA optional parameters 
-(Frequency Info, Primary Scrambling Code and Measured Results List). Frequency
-Info, Primary Scrambling Code and Measured Results List, if present, are always
-considered to be correct for the current cell.
-
-@param  aLocationId, describes the current location
-@return error indication, KErrNone otherwise
-*/
-EXPORT_C TInt CSuplStart::SetLocationId(const CSuplLocationId& aLocationId)
-	{
-	__ASSERT_DEBUG(iData->message.u.msSUPLSTART != NULL, User::Invariant());
-	SUPLLOG(ELogP1, "CSuplStart::SetLocationId() Begin\n");
-	
-	TInt err = PopulateLocationId(aLocationId, iData->message.u.msSUPLSTART->locationId);
-
-	SUPLLOG(ELogP1, "CSuplStart::SetLocationId() End\n");
-	return err;
-	}
-
-
-/**	
-SetQoP()
-
-Set the QoP parameter 
-
-QoP - the desired quality of position
-	horacc    (m) (0..127)
-	veracc    (o) (0..127)
-	maxLocAge (o) (0..65535)
-	delay     (o) (0..7)
-
-@param  aQuality, the required quality of position
-@return error indication, KErrNone otherwise
-*/
-EXPORT_C TInt CSuplStart::SetQoP(TLbsNetPosRequestQuality& aQuality)
-	{
-	__ASSERT_DEBUG(iData->message.u.msSUPLSTART != NULL, User::Invariant());
-	SUPLLOG(ELogP1, "CSuplStart::SetQoP() Begin\n");
-
-	// pointer to message body
-	ASN1T_SUPLSTART* msgBody = iData->message.u.msSUPLSTART;
-	
-	// local reference to context object
-	iControl->getCtxtPtr();
-	
-	// indicate that the optional QoP component is present
-   	msgBody->m.qoPPresent = 1;
-	
-	// Horizontal accuracy
-	if (aQuality.MinHorizontalAccuracy() != 0)
-		{
-		msgBody->qoP.horacc = Uncertainty(aQuality.MinHorizontalAccuracy());
-		}
-	else
-		{
-		msgBody->qoP.horacc = Uncertainty(KLbsSuplMinHorAccDefault);
-		}
-	
-	// vertical accuracy
-	if (aQuality.MinVerticalAccuracy() != 0)
-		{
-		msgBody->qoP.veracc = UncertaintyAltitude(aQuality.MinVerticalAccuracy());
-		msgBody->qoP.m.veraccPresent = 1;
-		}
-		
-	// max location age / max fix age
-	TTimeIntervalMicroSeconds maxAge = aQuality.MaxFixAge();
-	if (maxAge.Int64() != 0)
-		{
-		TInt64 maxAgeSeconds = maxAge.Int64() / KLbsMilliSeconds;
-		if (maxAgeSeconds > 65535)
-			{
-			// limit to 16 bits (65535 = 2^16 - 1)
-			maxAgeSeconds = 65535;
-			}
-		msgBody->qoP.maxLocAge = maxAgeSeconds;
-		msgBody->qoP.m.maxLocAgePresent = 1;
-		}
-	
-	// delay / max fix time
-	TTimeIntervalMicroSeconds maxFixTime = aQuality.MaxFixTime();
-	if (maxFixTime.Int64() != 0)
-		{
-		msgBody->qoP.m.delayPresent = 1;
-		TInt seconds = maxFixTime.Int64() / KLbsMilliSeconds;
-		if (seconds <= 1)
-			{
-			msgBody->qoP.delay = 0;
-			}
-		else if (seconds <= 2)
-			{
-			msgBody->qoP.delay = 1;
-			}
-		else if (seconds <= 4)
-			{
-			msgBody->qoP.delay = 2;
-			}
-		else if (seconds <= 8)
-			{
-			msgBody->qoP.delay = 3;
-			}
-		else if (seconds <= 16)
-			{
-			msgBody->qoP.delay = 4;
-			}
-		else if (seconds <= 32)
-			{
-			msgBody->qoP.delay = 5;
-			}
-		else if (seconds <= 64)
-			{
-			msgBody->qoP.delay = 6;
-			}
-		else
-			{
-			// maximum value
-			msgBody->qoP.delay = 7;
-			}
-		}
-
-	SUPLLOG(ELogP1, "CSuplStart::SetQoP() End\n");
-	return KErrNone;
-	}
-